gi-gdk-4.0.4: Gdk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gdk.Objects.Texture

Description

GdkTexture is the basic element used to refer to pixel data.

It is primarily meant for pixel data that will not change over multiple frames, and will be used for a long time.

There are various ways to create GdkTexture objects from a GdkPixbuf, or a Cairo surface, or other pixel data.

The ownership of the pixel data is transferred to the GdkTexture instance; you can only make a copy of it, via textureDownload.

GdkTexture is an immutable object: That means you cannot change anything about it other than increasing the reference count via objectRef.

Synopsis

Exported types

newtype Texture Source #

Memory-managed wrapper type.

Constructors

Texture (ManagedPtr Texture) 

Instances

Instances details
Eq Texture Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

Methods

(==) :: Texture -> Texture -> Bool #

(/=) :: Texture -> Texture -> Bool #

GObject Texture Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

ManagedPtrNewtype Texture Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

TypedObject Texture Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

Methods

glibType :: IO GType #

HasParentTypes Texture Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

IsGValue (Maybe Texture) Source #

Convert Texture to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gdk.Objects.Texture

type ParentTypes Texture Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

class (GObject o, IsDescendantOf Texture o) => IsTexture o Source #

Type class for types which can be safely cast to Texture, for instance with toTexture.

Instances

Instances details
(GObject o, IsDescendantOf Texture o) => IsTexture o Source # 
Instance details

Defined in GI.Gdk.Objects.Texture

toTexture :: (MonadIO m, IsTexture o) => o -> m Texture Source #

Cast to Texture, for types for which this is known to be safe. For general casts, use castTo.

Methods

download

textureDownload Source #

Arguments

:: (HasCallStack, MonadIO m, IsTexture a) 
=> a

texture: a GdkTexture

-> Ptr Word8

data: pointer to enough memory to be filled with the downloaded data of texture

-> Word64

stride: rowstride in bytes

-> m () 

Downloads the texture into local memory.

This may be an expensive operation, as the actual texture data may reside on a GPU or on a remote display server.

The data format of the downloaded data is equivalent to FormatArgb32, so every downloaded pixel requires 4 bytes of memory.

Downloading a texture into a Cairo image surface:

c code

surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
                                      gdk_texture_get_width (texture),
                                      gdk_texture_get_height (texture));
gdk_texture_download (texture,
                      cairo_image_surface_get_data (surface),
                      cairo_image_surface_get_stride (surface));
cairo_surface_mark_dirty (surface);

getHeight

textureGetHeight Source #

Arguments

:: (HasCallStack, MonadIO m, IsTexture a) 
=> a

texture: a GdkTexture

-> m Int32

Returns: the height of the GdkTexture

Returns the height of the texture, in pixels.

getWidth

textureGetWidth Source #

Arguments

:: (HasCallStack, MonadIO m, IsTexture a) 
=> a

texture: a GdkTexture

-> m Int32

Returns: the width of the GdkTexture

Returns the width of texture, in pixels.

newForPixbuf

textureNewForPixbuf Source #

Arguments

:: (HasCallStack, MonadIO m, IsPixbuf a) 
=> a

pixbuf: a GdkPixbuf

-> m Texture

Returns: a new GdkTexture

Creates a new texture object representing the GdkPixbuf.

newFromFile

textureNewFromFile Source #

Arguments

:: (HasCallStack, MonadIO m, IsFile a) 
=> a

file: GFile to load

-> m Texture

Returns: A newly-created GdkTexture (Can throw GError)

Creates a new texture by loading an image from a file.

The file format is detected automatically. The supported formats are PNG and JPEG, though more formats might be available.

If Nothing is returned, then error will be set.

newFromResource

textureNewFromResource Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

resourcePath: the path of the resource file

-> m Texture

Returns: A newly-created GdkTexture

Creates a new texture by loading an image from a resource.

The file format is detected automatically. The supported formats are PNG and JPEG, though more formats might be available.

It is a fatal error if resourcePath does not specify a valid image resource and the program will abort if that happens. If you are unsure about the validity of a resource, use textureNewFromFile to load it.

saveToPng

textureSaveToPng Source #

Arguments

:: (HasCallStack, MonadIO m, IsTexture a) 
=> a

texture: a GdkTexture

-> [Char]

filename: the filename to store to

-> m Bool

Returns: True if saving succeeded, False on failure.

Store the given texture to the filename as a PNG file.

This is a utility function intended for debugging and testing. If you want more control over formats, proper error handling or want to store to a GFile or other location, you might want to look into using the gdk-pixbuf library.

Properties

height

The height of the texture, in pixels.

constructTextureHeight :: (IsTexture o, MonadIO m) => Int32 -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “height” property. This is rarely needed directly, but it is used by new.

getTextureHeight :: (MonadIO m, IsTexture o) => o -> m Int32 Source #

Get the value of the “height” property. When overloading is enabled, this is equivalent to

get texture #height

width

The width of the texture, in pixels.

constructTextureWidth :: (IsTexture o, MonadIO m) => Int32 -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “width” property. This is rarely needed directly, but it is used by new.

getTextureWidth :: (MonadIO m, IsTexture o) => o -> m Int32 Source #

Get the value of the “width” property. When overloading is enabled, this is equivalent to

get texture #width