Graphics.Rendering.OpenGL.GL.Texturing.Specification

OpenGL-2.2.3.0: A binding for the OpenGL graphics system

Portability | portable
Stability | stable
Maintainer | sven.panne@aedion.de

Graphics.Rendering.OpenGL.GL.Texturing.Specification

Contents

- Texture-related Data Types
- Texture Image Specification
- Alternate Texture Image Specification Commands
- Compressed Texture Images
- Implementation-Dependent Limits

Description

This module corresponds to section 3.8.1 (Texture Image Specification), section 3.8.2 (Alternate Texture Image Specification Commands), and section 3.8.3 (Compressed Texture Images) of the OpenGL 2.1 specs.

Synopsis

- data TextureTarget
  - = Texture1D
  - | Texture2D
  - | Texture3D
  - | TextureCubeMap
  - | TextureRectangle
- data CubeMapTarget
  - = TextureCubeMapPositiveX
  - | TextureCubeMapNegativeX
  - | TextureCubeMapPositiveY
  - | TextureCubeMapNegativeY
  - | TextureCubeMapPositiveZ
  - | TextureCubeMapNegativeZ
- type Level = GLint
- type Border = GLint
- newtype TexturePosition1D = TexturePosition1D GLint
- data TexturePosition2D = TexturePosition2D !GLint !GLint
- data TexturePosition3D = TexturePosition3D !GLint !GLint !GLint
- newtype TextureSize1D = TextureSize1D GLsizei
- data TextureSize2D = TextureSize2D !GLsizei !GLsizei
- data TextureSize3D = TextureSize3D !GLsizei !GLsizei !GLsizei
- texImage1D :: Proxy -> Level -> PixelInternalFormat -> TextureSize1D -> Border -> PixelData a -> IO ()
- texImage2D :: Maybe CubeMapTarget -> Proxy -> Level -> PixelInternalFormat -> TextureSize2D -> Border -> PixelData a -> IO ()
- texImage3D :: Proxy -> Level -> PixelInternalFormat -> TextureSize3D -> Border -> PixelData a -> IO ()
- copyTexImage1D :: Level -> PixelInternalFormat -> Position -> TextureSize1D -> Border -> IO ()
- copyTexImage2D :: Maybe CubeMapTarget -> Level -> PixelInternalFormat -> Position -> TextureSize2D -> Border -> IO ()
- texSubImage1D :: Level -> TexturePosition1D -> TextureSize1D -> PixelData a -> IO ()
- texSubImage2D :: Maybe CubeMapTarget -> Level -> TexturePosition2D -> TextureSize2D -> PixelData a -> IO ()
- texSubImage3D :: Level -> TexturePosition3D -> TextureSize3D -> PixelData a -> IO ()
- getTexImage :: Either TextureTarget CubeMapTarget -> Level -> PixelData a -> IO ()
- copyTexSubImage1D :: Level -> TexturePosition1D -> Position -> TextureSize1D -> IO ()
- copyTexSubImage2D :: Maybe CubeMapTarget -> Level -> TexturePosition2D -> Position -> TextureSize2D -> IO ()
- copyTexSubImage3D :: Level -> TexturePosition3D -> Position -> TextureSize2D -> IO ()
- newtype CompressedTextureFormat = CompressedTextureFormat GLenum
- compressedTextureFormats :: GettableStateVar [CompressedTextureFormat]
- data CompressedPixelData a = CompressedPixelData !CompressedTextureFormat GLsizei (Ptr a)
- compressedTexImage1D :: Proxy -> Level -> TextureSize1D -> Border -> CompressedPixelData a -> IO ()
- compressedTexImage2D :: Maybe CubeMapTarget -> Proxy -> Level -> TextureSize2D -> Border -> CompressedPixelData a -> IO ()
- compressedTexImage3D :: Proxy -> Level -> TextureSize3D -> Border -> CompressedPixelData a -> IO ()
- compressedTexSubImage1D :: Level -> TexturePosition1D -> TextureSize1D -> CompressedPixelData a -> IO ()
- compressedTexSubImage2D :: Maybe CubeMapTarget -> Level -> TexturePosition2D -> TextureSize2D -> CompressedPixelData a -> IO ()
- compressedTexSubImage3D :: Level -> TexturePosition3D -> TextureSize3D -> CompressedPixelData a -> IO ()
- getCompressedTexImage :: Either TextureTarget CubeMapTarget -> Level -> Ptr a -> IO ()
- maxTextureSize :: TextureTarget -> GettableStateVar GLsizei

# Texture-related Data Types

data TextureTarget

Constructors

Texture1D |
Texture2D |
Texture3D |
TextureCubeMap |
TextureRectangle |

Instances

Eq TextureTarget |
Ord TextureTarget |
Show TextureTarget |

data CubeMapTarget

Constructors

TextureCubeMapPositiveX |
TextureCubeMapNegativeX |
TextureCubeMapPositiveY |
TextureCubeMapNegativeY |
TextureCubeMapPositiveZ |
TextureCubeMapNegativeZ |

Instances

Eq CubeMapTarget |
Ord CubeMapTarget |
Show CubeMapTarget |

type Level = GLint

type Border = GLint

newtype TexturePosition1D

Constructors

TexturePosition1D GLint |

Instances

Eq TexturePosition1D |
Ord TexturePosition1D |
Show TexturePosition1D |

data TexturePosition2D

Constructors

TexturePosition2D !GLint !GLint |

Instances

Eq TexturePosition2D |
Ord TexturePosition2D |
Show TexturePosition2D |

data TexturePosition3D

Constructors

TexturePosition3D !GLint !GLint !GLint |

Instances

Eq TexturePosition3D |
Ord TexturePosition3D |
Show TexturePosition3D |

newtype TextureSize1D

Constructors

TextureSize1D GLsizei |

Instances

Eq TextureSize1D |
Ord TextureSize1D |
Show TextureSize1D |

data TextureSize2D

Constructors

TextureSize2D !GLsizei !GLsizei |

Instances

Eq TextureSize2D |
Ord TextureSize2D |
Show TextureSize2D |

data TextureSize3D

Constructors

TextureSize3D !GLsizei !GLsizei !GLsizei |

Instances

Eq TextureSize3D |
Ord TextureSize3D |
Show TextureSize3D |

# Texture Image Specification

texImage1D :: Proxy -> Level -> PixelInternalFormat -> TextureSize1D -> Border -> PixelData a -> IO ()

texImage2D :: Maybe CubeMapTarget -> Proxy -> Level -> PixelInternalFormat -> TextureSize2D -> Border -> PixelData a -> IO ()

texImage3D :: Proxy -> Level -> PixelInternalFormat -> TextureSize3D -> Border -> PixelData a -> IO ()

copyTexImage1D :: Level -> PixelInternalFormat -> Position -> TextureSize1D -> Border -> IO ()

copyTexImage2D :: Maybe CubeMapTarget -> Level -> PixelInternalFormat -> Position -> TextureSize2D -> Border -> IO ()

texSubImage1D :: Level -> TexturePosition1D -> TextureSize1D -> PixelData a -> IO ()

texSubImage2D :: Maybe CubeMapTarget -> Level -> TexturePosition2D -> TextureSize2D -> PixelData a -> IO ()

texSubImage3D :: Level -> TexturePosition3D -> TextureSize3D -> PixelData a -> IO ()

getTexImage :: Either TextureTarget CubeMapTarget -> Level -> PixelData a -> IO ()

# Alternate Texture Image Specification Commands

copyTexSubImage1D :: Level -> TexturePosition1D -> Position -> TextureSize1D -> IO ()

copyTexSubImage2D :: Maybe CubeMapTarget -> Level -> TexturePosition2D -> Position -> TextureSize2D -> IO ()

copyTexSubImage3D :: Level -> TexturePosition3D -> Position -> TextureSize2D -> IO ()

# Compressed Texture Images

newtype CompressedTextureFormat

Constructors

CompressedTextureFormat GLenum |

Instances

Eq CompressedTextureFormat |
Ord CompressedTextureFormat |
Show CompressedTextureFormat |

compressedTextureFormats :: GettableStateVar [CompressedTextureFormat]

data CompressedPixelData a

Constructors

CompressedPixelData !CompressedTextureFormat GLsizei (Ptr a) |

Instances

Eq (CompressedPixelData a) |
Ord (CompressedPixelData a) |
Show (CompressedPixelData a) |

compressedTexImage1D :: Proxy -> Level -> TextureSize1D -> Border -> CompressedPixelData a -> IO ()

compressedTexImage2D :: Maybe CubeMapTarget -> Proxy -> Level -> TextureSize2D -> Border -> CompressedPixelData a -> IO ()

compressedTexImage3D :: Proxy -> Level -> TextureSize3D -> Border -> CompressedPixelData a -> IO ()

compressedTexSubImage1D :: Level -> TexturePosition1D -> TextureSize1D -> CompressedPixelData a -> IO ()

compressedTexSubImage2D :: Maybe CubeMapTarget -> Level -> TexturePosition2D -> TextureSize2D -> CompressedPixelData a -> IO ()

compressedTexSubImage3D :: Level -> TexturePosition3D -> TextureSize3D -> CompressedPixelData a -> IO ()

getCompressedTexImage :: Either TextureTarget CubeMapTarget -> Level -> Ptr a -> IO ()

# Implementation-Dependent Limits

maxTextureSize :: TextureTarget -> GettableStateVar GLsizei