GLUtil-0.6.7.1: Miscellaneous OpenGL utilities.

Safe HaskellNone

Graphics.GLUtil.Textures

Description

Utilities for loading texture data.

Synopsis

Documentation

data TexColor Source

Pixel format of image data.

Constructors

TexMono 
TexRGB 
TexBGR 
TexRGBA 

data TexInfo a Source

A basic texture information record.

Constructors

TexInfo 

texInfo :: Int -> Int -> TexColor -> a -> TexInfo aSource

Helper for constructing a TexInfo using Haskell Ints for image dimensions.

class HasGLType (Elem a) => IsPixelData a whereSource

Class for containers of texture data.

Associated Types

type Elem a Source

Methods

withPixels :: a -> (Ptr (Elem a) -> IO c) -> IO cSource

newtype ShortString Source

Wrapper whose IsPixelData instance treats the pointer underlying a ByteString as an array of Word16s.

Constructors

ShortString ByteString 

loadTexture :: IsPixelData a => TexInfo a -> IO TextureObjectSource

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.

texture2DWrap :: StateVar (Repetition, Clamping)Source

Set texture coordinate wrapping options for both the S and T dimensions of a 2D texture.

texture3DWrap :: StateVar (Repetition, Clamping)Source

Set texture coordinate wrapping options for the S, T, and R dimensions of a 3D texture.

withTextures :: TextureTarget -> [TextureObject] -> IO a -> IO aSource

Bind each of the given textures to successive texture units at the given TextureTarget starting with texture unit 0.

withTextures2D :: [TextureObject] -> IO a -> IO aSource

Bind each of the given 2D textures to successive texture units starting with texture unit 0.

withTexturesAt :: TextureTarget -> [(TextureObject, GLuint)] -> IO a -> IO aSource

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.

generateMipmap' :: TextureTarget -> IO ()Source

Generate a complete set of mipmaps for the currently bound texture object.