gi-gdk-4.0.1: Gdk bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gdk.Objects.Texture

Description

A GdkTexture represents image data that can be displayed on screen.

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

An important aspect of GdkTextures is that they are immutable - once the image data has been wrapped in a GdkTexture, it may be uploaded to the GPU or used in other ways that make it impractical to allow modification.

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

Methods

gobjectType :: IO GType #

IsGValue Texture Source #

Convert Texture to and from GValue with toGValue and fromGValue.

Instance details

Defined in GI.Gdk.Objects.Texture

HasParentTypes Texture Source # 
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.

noTexture :: Maybe Texture Source #

A convenience alias for Nothing :: Maybe Texture.

Methods

Overloaded methods

download

textureDownload Source #

Arguments

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

texture: a Texture

-> 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 Texture

-> m Int32

Returns: the height of the Texture

Returns the height of the texture.

getWidth

textureGetWidth Source #

Arguments

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

texture: a Texture

-> m Int32

Returns: the width of the Texture

Returns the width of texture.

newForPixbuf

textureNewForPixbuf Source #

Arguments

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

pixbuf: a Pixbuf

-> m Texture

Returns: a new Texture

Creates a new texture object representing the GdkPixbuf.

newFromFile

textureNewFromFile Source #

Arguments

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

file: File to load

-> m Texture

Returns: A newly-created Texture or Nothing if an error occured. (Can throw GError)

Creates a new texture by loading an image from a file. The file format is detected automatically. 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 texture

Creates a new texture by loading an image from a resource. The file format is detected automatically.

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 Texture

-> Text

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 File or other location, you might want to look into using the gdk-pixbuf library.

Properties

height

The height of the texture.

constructTextureHeight :: IsTexture o => Int32 -> IO (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.

constructTextureWidth :: IsTexture o => Int32 -> IO (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