| Copyright | Will Thompson and Iñaki García Etxebarria |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
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
- newtype Texture = Texture (ManagedPtr Texture)
- class (GObject o, IsDescendantOf Texture o) => IsTexture o
- toTexture :: (MonadIO m, IsTexture o) => o -> m Texture
- textureDownload :: (HasCallStack, MonadIO m, IsTexture a) => a -> Ptr Word8 -> Word64 -> m ()
- textureGetHeight :: (HasCallStack, MonadIO m, IsTexture a) => a -> m Int32
- textureGetWidth :: (HasCallStack, MonadIO m, IsTexture a) => a -> m Int32
- textureNewForPixbuf :: (HasCallStack, MonadIO m, IsPixbuf a) => a -> m Texture
- textureNewFromFile :: (HasCallStack, MonadIO m, IsFile a) => a -> m Texture
- textureNewFromResource :: (HasCallStack, MonadIO m) => Text -> m Texture
- textureSaveToPng :: (HasCallStack, MonadIO m, IsTexture a) => a -> [Char] -> m Bool
- constructTextureHeight :: (IsTexture o, MonadIO m) => Int32 -> m (GValueConstruct o)
- getTextureHeight :: (MonadIO m, IsTexture o) => o -> m Int32
- constructTextureWidth :: (IsTexture o, MonadIO m) => Int32 -> m (GValueConstruct o)
- getTextureWidth :: (MonadIO m, IsTexture o) => o -> m Int32
Exported types
Memory-managed wrapper type.
Constructors
| Texture (ManagedPtr Texture) |
Instances
| Eq Texture Source # | |
| GObject Texture Source # | |
Defined in GI.Gdk.Objects.Texture | |
| ManagedPtrNewtype Texture Source # | |
Defined in GI.Gdk.Objects.Texture Methods toManagedPtr :: Texture -> ManagedPtr Texture # | |
| TypedObject Texture Source # | |
Defined in GI.Gdk.Objects.Texture | |
| HasParentTypes Texture Source # | |
Defined in GI.Gdk.Objects.Texture | |
| IsGValue (Maybe Texture) Source # | Convert |
Defined in GI.Gdk.Objects.Texture | |
| type ParentTypes Texture Source # | |
Defined in GI.Gdk.Objects.Texture | |
class (GObject o, IsDescendantOf Texture o) => IsTexture o Source #
Instances
| (GObject o, IsDescendantOf Texture o) => IsTexture o Source # | |
Defined in GI.Gdk.Objects.Texture | |
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, computeConcreteSize, download, forceFloating, freezeNotify, getv, invalidateContents, invalidateSize, isFloating, notify, notifyByPspec, ref, refSink, runDispose, saveToPng, snapshot, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getCurrentImage, getData, getFlags, getHeight, getIntrinsicAspectRatio, getIntrinsicHeight, getIntrinsicWidth, getProperty, getQdata, getWidth.
Setters
download
Arguments
| :: (HasCallStack, MonadIO m, IsTexture a) | |
| => a |
|
| -> Ptr Word8 |
|
| -> Word64 |
|
| -> 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
Arguments
| :: (HasCallStack, MonadIO m, IsTexture a) | |
| => a |
|
| -> m Int32 | Returns: the height of the |
Returns the height of the texture, in pixels.
getWidth
Arguments
| :: (HasCallStack, MonadIO m, IsTexture a) | |
| => a |
|
| -> m Int32 | Returns: the width of the |
Returns the width of texture, in pixels.
newForPixbuf
Arguments
| :: (HasCallStack, MonadIO m, IsPixbuf a) | |
| => a |
|
| -> m Texture | Returns: a new |
Creates a new texture object representing the GdkPixbuf.
newFromFile
Arguments
| :: (HasCallStack, MonadIO m, IsFile a) | |
| => a |
|
| -> m Texture | Returns: A newly-created |
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 |
|
| -> m Texture | Returns: A newly-created |
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
Arguments
| :: (HasCallStack, MonadIO m, IsTexture a) | |
| => a |
|
| -> [Char] |
|
| -> m Bool |
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