Safe Haskell | None |
---|---|
Language | Haskell98 |
Graphics.GLUtil.Textures
Description
Utilities for loading texture data.
- data TexColor
- data TexInfo a = TexInfo {}
- texInfo :: Int -> Int -> TexColor -> a -> TexInfo a
- class HasGLType (Elem a) => IsPixelData a where
- newtype ShortString = ShortString ByteString
- freshTexture :: forall a proxy. HasGLType a => Int -> Int -> TexColor -> proxy a -> IO TextureObject
- freshTextureWord8 :: Int -> Int -> TexColor -> IO TextureObject
- freshTextureFloat :: Int -> Int -> TexColor -> IO TextureObject
- loadTexture :: IsPixelData a => TexInfo a -> IO TextureObject
- reloadTexture :: forall a. IsPixelData a => TextureObject -> TexInfo a -> IO ()
- texture2DWrap :: StateVar (Repetition, Clamping)
- texture3DWrap :: StateVar (Repetition, Clamping)
- withTextures :: BindableTextureTarget t => t -> [TextureObject] -> IO a -> IO a
- withTextures2D :: [TextureObject] -> IO a -> IO a
- withTexturesAt :: BindableTextureTarget t => t -> [(TextureObject, GLuint)] -> IO a -> IO a
Documentation
A basic texture information record.
class HasGLType (Elem a) => IsPixelData a where Source
Class for containers of texture data.
Instances
IsPixelData ByteString | |
IsPixelData ShortString | |
HasGLType b => IsPixelData [b] | |
HasGLType b => IsPixelData (Ptr b) | |
HasGLType b => IsPixelData (ForeignPtr b) | |
HasGLType b => IsPixelData (Vector b) | |
HasGLType b => IsPixelData (StorableArray i b) |
newtype ShortString Source
Wrapper whose IsPixelData
instance treats the pointer underlying
a ByteString
as an array of Word16
s.
Constructors
ShortString ByteString |
Instances
IsPixelData ShortString | |
type Elem ShortString = Word16 |
freshTexture :: forall a proxy. HasGLType a => Int -> Int -> TexColor -> proxy a -> IO TextureObject Source
Create a new 2D texture with uninitialized contents.
freshTextureWord8 :: Int -> Int -> TexColor -> IO TextureObject Source
Create a new 2D texture with uninitialized Word8
contents.
freshTextureFloat :: Int -> Int -> TexColor -> IO TextureObject Source
Create a new 2D texture with uninitialized GLfloat
contents.
loadTexture :: IsPixelData a => TexInfo a -> IO TextureObject Source
Create a new 2D texture with data from a TexInfo
.
reloadTexture :: forall a. IsPixelData a => TextureObject -> TexInfo a -> IO () Source
Replace a 2D texture's pixel data with data from a TexInfo
.
withTextures :: BindableTextureTarget t => t -> [TextureObject] -> IO a -> IO a Source
Bind each of the given textures to successive texture units at
the given TextureTarget
starting with texture unit 0.
withTextures2D :: [TextureObject] -> IO a -> IO a Source
Bind each of the given 2D textures to successive texture units starting with texture unit 0.
withTexturesAt :: BindableTextureTarget t => t -> [(TextureObject, GLuint)] -> IO a -> IO a Source
Bind each of the given textures to the texture unit they are
paired with. The given action is run with these bindings, then the
texture bindings are reset. If you don't care which texture units
are used, consider using withTextures
or withTextures2D
.