OpenGL 3.0.1.0 → 3.0.2.0
raw patch · 6 files changed
+125/−31 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Alpha16F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Alpha32F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: CompressedRGBAS3TCDXT1 :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: CompressedRGBAS3TCDXT3 :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: CompressedRGBAS3TCDXT5 :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: CompressedRGBS3TCDXT1 :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Depth24Stencil8 :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Intensity16F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Intensity32F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Luminance16F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: Luminance32F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: LuminanceAlpha16F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: LuminanceAlpha32F :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: RGB4S3TC :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: RGBA4DXT5S3TC :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: RGBA4S3TC :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: RGBADXT5S3TC :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: RGBAS3TC :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable: RGBS3TC :: PixelInternalFormat
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: FloatRepresentation :: DataRepresentation
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: IntRepresentation :: DataRepresentation
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: SignedNormalizedRepresentation :: DataRepresentation
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: UnsignedIntRepresentation :: DataRepresentation
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: UnsignedNormalizedRepresentation :: DataRepresentation
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: data DataRepresentation
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: textureDepthType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation)
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: textureIntensityType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation)
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: textureLuminanceType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation)
+ Graphics.Rendering.OpenGL.GL.Texturing.Queries: textureRGBATypes :: QueryableTextureTarget t => TextureQuery t (Color4 (Maybe DataRepresentation))
Files
- CHANGELOG.md +4/−0
- OpenGL.cabal +4/−3
- README.md +4/−1
- src/Graphics/Rendering/OpenGL/GL/DataType.hs +17/−26
- src/Graphics/Rendering/OpenGL/GL/Texturing/PixelInternalFormat.hs +57/−0
- src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs +39/−1
CHANGELOG.md view
@@ -1,3 +1,7 @@+3.0.2.0+-------+* Added support for S3_s3tc, EXT_texture_compression_s3tc, ARB_texture_float, and EXT_packed_depth_stencil extensions.+ 3.0.1.0 ------- * Added `Uniform` instances for `GLmatrix`, `Vertex1`, `Vector1`, `Vector2`, `Vector3`, and `Vector4`.
OpenGL.cabal view
@@ -1,5 +1,5 @@ name: OpenGL-version: 3.0.1.0+version: 3.0.2.0 synopsis: A binding for the OpenGL graphics system description: A Haskell binding for the OpenGL graphics system (GL, version 4.5) and its@@ -23,8 +23,9 @@ tested-with: GHC == 7.8.4 GHC == 7.10.3- GHC == 8.0.1- GHC == 8.1+ GHC == 8.0.2+ GHC == 8.2.1+ GHC == 8.3 cabal-version: >= 1.10 extra-source-files: CHANGELOG.md
README.md view
@@ -1,1 +1,4 @@-[](https://hackage.haskell.org/package/OpenGL) [](https://travis-ci.org/haskell-opengl/OpenGL)+[](https://hackage.haskell.org/package/OpenGL)+[](https://www.stackage.org/lts/package/OpenGL)+[](https://www.stackage.org/nightly/package/OpenGL)+[](https://travis-ci.org/haskell-opengl/OpenGL)
src/Graphics/Rendering/OpenGL/GL/DataType.hs view
@@ -15,7 +15,7 @@ module Graphics.Rendering.OpenGL.GL.DataType ( DataType(..), marshalDataType, unmarshalDataType,- DataTypeType(..), marshalDataTypeType, unmarshalDataTypeType+ DataRepresentation(..), unmarshalDataRepresentation ) where import Graphics.GL@@ -126,29 +126,20 @@ | x == GL_4_BYTES = FourBytes | otherwise = error ("unmarshalDataType: illegal value " ++ show x) -data DataTypeType- = TNone- | TSignedNormalized- | TUnsignedNormalized- | TFloat- | TInt- | TUnsignedInt--marshalDataTypeType :: DataTypeType -> GLenum-marshalDataTypeType x = case x of- TNone -> GL_NONE- TSignedNormalized -> GL_SIGNED_NORMALIZED- TUnsignedNormalized -> GL_UNSIGNED_NORMALIZED- TFloat -> GL_FLOAT- TInt -> GL_INT- TUnsignedInt -> GL_UNSIGNED_INT+data DataRepresentation+ = SignedNormalizedRepresentation+ | UnsignedNormalizedRepresentation+ | FloatRepresentation+ | IntRepresentation+ | UnsignedIntRepresentation+ deriving ( Eq, Ord, Show ) -unmarshalDataTypeType :: GLenum -> DataTypeType-unmarshalDataTypeType x- | x == GL_NONE = TNone- | x == GL_SIGNED_NORMALIZED = TSignedNormalized- | x == GL_UNSIGNED_NORMALIZED = TUnsignedNormalized- | x == GL_FLOAT = TFloat- | x == GL_INT = TInt- | x == GL_UNSIGNED_INT = TUnsignedInt- | otherwise = error $ "unmarshalDataTypeType: illegal value " ++ show x+unmarshalDataRepresentation :: GLenum -> Maybe DataRepresentation+unmarshalDataRepresentation x+ | x == GL_SIGNED_NORMALIZED = Just SignedNormalizedRepresentation+ | x == GL_UNSIGNED_NORMALIZED = Just UnsignedNormalizedRepresentation+ | x == GL_FLOAT = Just FloatRepresentation+ | x == GL_INT = Just IntRepresentation+ | x == GL_UNSIGNED_INT = Just UnsignedIntRepresentation+ | x == GL_NONE = Nothing+ | otherwise = error $ "unmarshalDataRepresentation: illegal value " ++ show x
src/Graphics/Rendering/OpenGL/GL/Texturing/PixelInternalFormat.hs view
@@ -133,6 +133,25 @@ | StencilIndex4 | StencilIndex8 | StencilIndex16+ | RGBS3TC+ | RGB4S3TC+ | RGBAS3TC+ | RGBA4S3TC+ | RGBADXT5S3TC+ | RGBA4DXT5S3TC+ | CompressedRGBAS3TCDXT1+ | CompressedRGBAS3TCDXT3+ | CompressedRGBAS3TCDXT5+ | CompressedRGBS3TCDXT1+ | Alpha32F+ | Intensity32F+ | Luminance32F+ | LuminanceAlpha32F+ | Alpha16F+ | Intensity16F+ | Luminance16F+ | LuminanceAlpha16F+ | Depth24Stencil8 deriving ( Eq, Ord, Show ) marshalPixelInternalFormat :: PixelInternalFormat -> GLint@@ -247,6 +266,25 @@ StencilIndex4 -> GL_STENCIL_INDEX4 StencilIndex8 -> GL_STENCIL_INDEX8 StencilIndex16 -> GL_STENCIL_INDEX16+ RGBS3TC -> GL_RGB_S3TC+ RGB4S3TC -> GL_RGB4_S3TC+ RGBAS3TC -> GL_RGBA_S3TC+ RGBA4S3TC -> GL_RGBA4_S3TC+ RGBADXT5S3TC -> GL_RGBA_DXT5_S3TC+ RGBA4DXT5S3TC -> GL_RGBA4_DXT5_S3TC+ CompressedRGBAS3TCDXT1 -> GL_COMPRESSED_RGBA_S3TC_DXT1_EXT+ CompressedRGBAS3TCDXT3 -> GL_COMPRESSED_RGBA_S3TC_DXT3_EXT+ CompressedRGBAS3TCDXT5 -> GL_COMPRESSED_RGBA_S3TC_DXT5_EXT+ CompressedRGBS3TCDXT1 -> GL_COMPRESSED_RGB_S3TC_DXT1_EXT+ Alpha32F -> GL_ALPHA32F_ARB+ Intensity32F -> GL_INTENSITY32F_ARB+ Luminance32F -> GL_LUMINANCE32F_ARB+ LuminanceAlpha32F -> GL_LUMINANCE_ALPHA32F_ARB+ Alpha16F -> GL_ALPHA16F_ARB+ Intensity16F -> GL_INTENSITY16F_ARB+ Luminance16F -> GL_LUMINANCE16F_ARB+ LuminanceAlpha16F -> GL_LUMINANCE_ALPHA16F_ARB+ Depth24Stencil8 -> GL_DEPTH24_STENCIL8_EXT -- *sigh* The OpenGL API is sometimes a bit creative in its usage of types... marshalPixelInternalFormat' :: PixelInternalFormat -> GLenum@@ -359,6 +397,25 @@ | y == GL_STENCIL_INDEX4 = StencilIndex4 | y == GL_STENCIL_INDEX8 = StencilIndex8 | y == GL_STENCIL_INDEX16 = StencilIndex16+ | y == GL_RGB_S3TC = RGBS3TC+ | y == GL_RGB4_S3TC = RGB4S3TC+ | y == GL_RGBA_S3TC = RGBAS3TC+ | y == GL_RGBA4_S3TC = RGBA4S3TC+ | y == GL_RGBA_DXT5_S3TC = RGBADXT5S3TC+ | y == GL_RGBA4_DXT5_S3TC = RGBA4DXT5S3TC+ | y == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = CompressedRGBAS3TCDXT1+ | y == GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = CompressedRGBAS3TCDXT3+ | y == GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = CompressedRGBAS3TCDXT5+ | y == GL_COMPRESSED_RGB_S3TC_DXT1_EXT = CompressedRGBS3TCDXT1+ | y == GL_ALPHA32F_ARB = Alpha32F+ | y == GL_INTENSITY32F_ARB = Intensity32F+ | y == GL_LUMINANCE32F_ARB = Luminance32F+ | y == GL_LUMINANCE_ALPHA32F_ARB = LuminanceAlpha32F+ | y == GL_ALPHA16F_ARB = Alpha16F+ | y == GL_INTENSITY16F_ARB = Intensity16F+ | y == GL_LUMINANCE16F_ARB = Luminance16F+ | y == GL_LUMINANCE_ALPHA16F_ARB = LuminanceAlpha16F+ | y == GL_DEPTH24_STENCIL8_EXT = Depth24Stencil8 -- legacy values | y == 1 = Luminance' | y == 2 = LuminanceAlpha'
src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs view
@@ -16,12 +16,15 @@ TextureQuery, textureInternalFormat, textureSize1D, textureSize2D, textureSize3D, textureBorder, textureRGBASizes, textureSharedSize, textureIntensitySize, textureLuminanceSize, textureIndexSize,- textureDepthBits, textureCompressedImageSize, textureProxyOK+ textureDepthBits, textureCompressedImageSize, textureProxyOK,+ DataRepresentation(..), textureRGBATypes, textureIntensityType,+ textureLuminanceType, textureDepthType ) where import Control.Monad import Data.StateVar import Foreign.Marshal.Utils+import Graphics.Rendering.OpenGL.GL.DataType import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.PixelRectangles@@ -50,6 +53,13 @@ | TextureCompressedImageSize | TextureCompressed | TextureSharedSize+ | TextureRedType+ | TextureGreenType+ | TextureBlueType+ | TextureAlphaType+ | TextureLuminanceType+ | TextureIntensityType+ | TextureDepthType marshalTexLevelParameter :: TexLevelParameter -> GLenum marshalTexLevelParameter x = case x of@@ -69,6 +79,13 @@ TextureCompressedImageSize -> GL_TEXTURE_COMPRESSED_IMAGE_SIZE TextureCompressed -> GL_TEXTURE_COMPRESSED TextureSharedSize -> GL_TEXTURE_SHARED_SIZE+ TextureRedType -> GL_TEXTURE_RED_TYPE_ARB+ TextureGreenType -> GL_TEXTURE_GREEN_TYPE_ARB+ TextureBlueType -> GL_TEXTURE_BLUE_TYPE_ARB+ TextureAlphaType -> GL_TEXTURE_ALPHA_TYPE_ARB+ TextureLuminanceType -> GL_TEXTURE_LUMINANCE_TYPE_ARB+ TextureIntensityType -> GL_TEXTURE_INTENSITY_TYPE_ARB+ TextureDepthType -> GL_TEXTURE_DEPTH_TYPE_ARB -------------------------------------------------------------------------------- @@ -151,6 +168,27 @@ textureProxyOK t level = makeGettableStateVar $ getTexLevelParameteri unmarshalGLboolean (marshalParameterizedTextureTargetProxy t) level TextureWidth++textureRGBATypes :: QueryableTextureTarget t => TextureQuery t (Color4 (Maybe DataRepresentation))+textureRGBATypes t level =+ makeGettableStateVar $+ liftM4 Color4+ (getDataRepr t level TextureRedType )+ (getDataRepr t level TextureGreenType)+ (getDataRepr t level TextureBlueType )+ (getDataRepr t level TextureAlphaType)++getDataRepr :: QueryableTextureTarget t => t -> Level -> TexLevelParameter -> IO (Maybe DataRepresentation)+getDataRepr = getTexLevelParameteriNoProxy (unmarshalDataRepresentation . fromIntegral)++textureIntensityType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation)+textureIntensityType t level = makeGettableStateVar $ getDataRepr t level TextureIntensityType++textureLuminanceType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation)+textureLuminanceType t level = makeGettableStateVar $ getDataRepr t level TextureLuminanceType++textureDepthType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation)+textureDepthType t level = makeGettableStateVar $ getDataRepr t level TextureDepthType getTexLevelParameteriNoProxy :: QueryableTextureTarget t => (GLint -> a) -> t -> Level -> TexLevelParameter -> IO a getTexLevelParameteriNoProxy f = getTexLevelParameteri f . marshalQueryableTextureTarget