OpenGL 2.9.1.0 → 2.9.2.0
raw patch · 9 files changed
+94/−43 lines, 9 filesdep ~OpenGLRaw
Dependency ranges changed: OpenGLRaw
Files
- Graphics/Rendering/OpenGL/GL/BufferObjects.hs +42/−33
- Graphics/Rendering/OpenGL/GL/Colors.hs +4/−3
- Graphics/Rendering/OpenGL/GL/FramebufferObjects/RenderbufferObject.hs +1/−0
- Graphics/Rendering/OpenGL/GL/FramebufferObjects/RenderbufferObjects.hs +1/−1
- Graphics/Rendering/OpenGL/GL/PixelRectangles/PixelMap.hs +1/−0
- Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs +29/−3
- Graphics/Rendering/OpenGL/GL/Texturing/Objects.hs +11/−1
- Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs +3/−0
- OpenGL.cabal +2/−2
Graphics/Rendering/OpenGL/GL/BufferObjects.hs view
@@ -361,7 +361,7 @@ mapBufferRange t o l b = fmap (maybeNullPtr Nothing Just) $ mapBufferRange_ t o l b -flushMappedBufferRange :: BufferTarget -> Offset -> Length -> IO()+flushMappedBufferRange :: BufferTarget -> Offset -> Length -> IO () flushMappedBufferRange t = glFlushMappedBufferRange (marshalBufferTarget t) --------------------------------------------------------------------------------@@ -373,62 +373,71 @@ type BufferRange = (BufferObject, RangeStartIndex, RangeSize) data IndexedBufferTarget =- IndexedTransformFeedbackBuffer---marshaling+ IndexedAtomicCounterBuffer+ | IndexedShaderStorageBuffer+ | IndexedTransformFeedbackBuffer+ | IndexedUniformBuffer+ deriving ( Eq, Ord, Show )+ marshalIndexedBufferTarget :: IndexedBufferTarget -> IPName1I marshalIndexedBufferTarget x = case x of+ IndexedAtomicCounterBuffer -> GetAtomicCounterBuffer+ IndexedShaderStorageBuffer -> GetShaderStorageBuffer IndexedTransformFeedbackBuffer -> GetTransformFeedbackBuffer--marshalIndexedBufferStart :: IndexedBufferTarget -> IPName1I-marshalIndexedBufferStart x = case x of- IndexedTransformFeedbackBuffer -> GetTransformFeedbackBufferStart--marshalIndexedBufferSize :: IndexedBufferTarget -> IPName1I-marshalIndexedBufferSize x = case x of- IndexedTransformFeedbackBuffer -> GetTransformFeedbackBufferSize--getIndexed :: Num a => IPName1I -> BufferIndex -> GettableStateVar a-getIndexed e i = makeGettableStateVar $ getInteger1i fromIntegral e i+ IndexedUniformBuffer -> GetUniformBuffer ---buffer bindBufferBase :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferObject) bindBufferBase t i = makeStateVar (getIndexedBufferBinding t i) (setIndexedBufferBase t i) -setIndexedBufferBase :: IndexedBufferTarget -> BufferIndex -> Maybe BufferObject -> IO ()-setIndexedBufferBase t i buf=- case marshalGetPName . marshalIndexedBufferTarget $ t of- Nothing -> recordInvalidEnum- Just t' ->- glBindBufferBase t' i . bufferID . fromMaybe noBufferObject $ buf- getIndexedBufferBinding :: IndexedBufferTarget -> BufferIndex -> IO (Maybe BufferObject) getIndexedBufferBinding t i = do buf <- getInteger1i (BufferObject . fromIntegral) (marshalIndexedBufferTarget t) i return $ if buf == noBufferObject then Nothing else Just buf +setIndexedBufferBase :: IndexedBufferTarget -> BufferIndex -> Maybe BufferObject -> IO ()+setIndexedBufferBase t i buf =+ case marshalGetPName . marshalIndexedBufferTarget $ t of+ Nothing -> recordInvalidEnum+ Just t' -> glBindBufferBase t' i . bufferID . fromMaybe noBufferObject $ buf+ bindBufferRange :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferRange) bindBufferRange t i = makeStateVar (getIndexedBufferRange t i) (setIndexedBufferRange t i) +getIndexedBufferRange :: IndexedBufferTarget -> BufferIndex -> IO (Maybe BufferRange)+getIndexedBufferRange t i = do+ buf <- getInteger1i (BufferObject . fromIntegral) (marshalIndexedBufferTarget t) i+ if buf == noBufferObject+ then return Nothing+ else do start <- get $ indexedBufferStart t i+ size <- get $ indexedBufferSize t i+ return $ Just (buf, start, size)+ setIndexedBufferRange :: IndexedBufferTarget -> BufferIndex -> Maybe BufferRange -> IO ()-setIndexedBufferRange t i (Just (buf, start, range)) =+setIndexedBufferRange t i br = case marshalGetPName . marshalIndexedBufferTarget $ t of Nothing -> recordInvalidEnum Just t' -> glBindBufferRange t' i (bufferID buf) start range-setIndexedBufferRange t i Nothing = setIndexedBufferBase t i Nothing+ where (buf, start, range) = fromMaybe (noBufferObject, 0, 0) br -getIndexedBufferRange :: IndexedBufferTarget -> BufferIndex -> IO(Maybe BufferRange)-getIndexedBufferRange t i = do- buf <- getInteger1i (BufferObject . fromIntegral) (marshalIndexedBufferTarget t) i- if buf == noBufferObject- then return Nothing- else do- start <- get $ indexedBufferStart t i- size <- get $ indexedBufferSize t i- return $ Just (buf, start, size)+getIndexed :: Num a => IPName1I -> BufferIndex -> GettableStateVar a+getIndexed e i = makeGettableStateVar $ getInteger641i fromIntegral e i +marshalIndexedBufferStart :: IndexedBufferTarget -> IPName1I+marshalIndexedBufferStart x = case x of+ IndexedAtomicCounterBuffer -> GetAtomicCounterBufferStart+ IndexedShaderStorageBuffer -> GetShaderStorageBufferStart+ IndexedTransformFeedbackBuffer -> GetTransformFeedbackBufferStart+ IndexedUniformBuffer -> GetUniformBufferStart indexedBufferStart :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeStartIndex indexedBufferStart = getIndexed . marshalIndexedBufferStart++marshalIndexedBufferSize :: IndexedBufferTarget -> IPName1I+marshalIndexedBufferSize x = case x of+ IndexedAtomicCounterBuffer -> GetAtomicCounterBufferSize+ IndexedShaderStorageBuffer -> GetShaderStorageBufferSize+ IndexedTransformFeedbackBuffer -> GetTransformFeedbackBufferSize+ IndexedUniformBuffer -> GetUniformBufferSize indexedBufferSize :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeSize indexedBufferSize = getIndexed . marshalIndexedBufferSize
Graphics/Rendering/OpenGL/GL/Colors.hs view
@@ -467,6 +467,7 @@ ClampVertexColor | ClampFragmentColor | ClampReadColor+ deriving ( Eq, Ord, Show ) marshalClampTarget :: ClampTarget -> GLenum marshalClampTarget x = case x of@@ -480,13 +481,13 @@ ClampVertexColor -> GetVertexColorClamp ClampReadColor -> GetReadColorClamp - -------------------------------------------------------------------------------- data ClampMode = ClampOn | FixedOnly | ClampOff+ deriving ( Eq, Ord, Show ) marshalClampMode :: ClampMode -> GLenum marshalClampMode x = case x of@@ -505,5 +506,5 @@ clampColor :: ClampTarget -> StateVar ClampMode clampColor ct = makeStateVar (getClampColor ct) (setClampColor ct)- where setClampColor t = glClampColor (marshalClampTarget t) . marshalClampMode- getClampColor = getEnum1 unmarshalClampMode . marshalClampTargetToPName+ where getClampColor = getEnum1 unmarshalClampMode . marshalClampTargetToPName+ setClampColor t = glClampColor (marshalClampTarget t) . marshalClampMode
Graphics/Rendering/OpenGL/GL/FramebufferObjects/RenderbufferObject.hs view
@@ -25,6 +25,7 @@ -------------------------------------------------------------------------------- data RenderbufferObject = RenderbufferObject { renderbufferID :: GLuint}+ deriving ( Eq, Ord, Show ) instance ObjectName RenderbufferObject where isObjectName = fmap unmarshalGLboolean . glIsRenderbuffer . renderbufferID
Graphics/Rendering/OpenGL/GL/FramebufferObjects/RenderbufferObjects.hs view
@@ -1,7 +1,7 @@ {-# OPTIONS_HADDOCK hide #-} ----------------------------------------------------------------------------- -- |--- Module : Graphics.Rendering.OpenGL.GL.FramebufferObjects.RendebufferObjects+-- Module : Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects -- Copyright : (c) Sven Panne, Lars Corbijn 2011-2013 -- License : BSD3 --
Graphics/Rendering/OpenGL/GL/PixelRectangles/PixelMap.hs view
@@ -43,6 +43,7 @@ | GToG | BToB | AToA+ deriving ( Eq, Ord, Show ) marshalPixelMapTarget :: PixelMapTarget -> GLenum marshalPixelMapTarget x = case x of
Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs view
@@ -69,6 +69,9 @@ getIntegeriv :: GetPName p => p -> GLuint -> Ptr GLint -> IO () getIntegeriv p i = makeGetter (\e -> glGetIntegeri_v e i) p +getInteger64iv :: GetPName p => p -> GLuint -> Ptr GLint64 -> IO ()+getInteger64iv p i = makeGetter (\e -> glGetInteger64i_v e i) p+ ----------------------------------------------------------------------------- {-# INLINE makeGetter #-}@@ -128,6 +131,9 @@ getSizei1i :: (GLsizei -> a) -> p -> GLuint -> IO a getSizei1i = get1i getIntegeriv + getInteger641i :: (GLint64 -> a) -> p -> GLuint -> IO a+ getInteger641i = get1i getInteger64iv+ -- Indexed helper get1i :: (Storable b, Storable c, GetPName p) => (p -> GLuint -> Ptr c -> IO ())@@ -948,18 +954,36 @@ ----------------------------------------------------------------------------- -data IPName1I- = GetTransformFeedbackBuffer+data IPName1I =+ GetAtomicCounterBuffer+ | GetAtomicCounterBufferStart+ | GetAtomicCounterBufferSize+ | GetShaderStorageBuffer+ | GetShaderStorageBufferStart+ | GetShaderStorageBufferSize+ | GetTransformFeedbackBuffer | GetTransformFeedbackBufferStart | GetTransformFeedbackBufferSize+ | GetUniformBuffer+ | GetUniformBufferStart+ | GetUniformBufferSize instance GetIPName1I IPName1I where instance GetPName IPName1I where marshalGetPName pn = case pn of+ GetAtomicCounterBuffer -> Just gl_ATOMIC_COUNTER_BUFFER+ GetAtomicCounterBufferStart -> Just gl_ATOMIC_COUNTER_BUFFER_START+ GetAtomicCounterBufferSize -> Just gl_ATOMIC_COUNTER_BUFFER_SIZE+ GetShaderStorageBuffer -> Just gl_SHADER_STORAGE_BUFFER+ GetShaderStorageBufferStart -> Just gl_SHADER_STORAGE_BUFFER_START+ GetShaderStorageBufferSize -> Just gl_SHADER_STORAGE_BUFFER_SIZE GetTransformFeedbackBuffer -> Just gl_TRANSFORM_FEEDBACK_BUFFER- GetTransformFeedbackBufferSize -> Just gl_TRANSFORM_FEEDBACK_BUFFER_SIZE GetTransformFeedbackBufferStart -> Just gl_TRANSFORM_FEEDBACK_BUFFER_START+ GetTransformFeedbackBufferSize -> Just gl_TRANSFORM_FEEDBACK_BUFFER_SIZE+ GetUniformBuffer -> Just gl_UNIFORM_BUFFER+ GetUniformBufferStart -> Just gl_UNIFORM_BUFFER_START+ GetUniformBufferSize -> Just gl_UNIFORM_BUFFER_SIZE ----------------------------------------------------------------------------- @@ -1058,6 +1082,7 @@ = GetColorWritemask -- ^ bool instance GetPName4I PName4ISemiIndexed where+ instance GetIPName4I PName4ISemiIndexed where instance GetPName PName4ISemiIndexed where@@ -1129,6 +1154,7 @@ | GetProgramBinaryFormats instance GetPNameNI PNameNI where+ instance GetPName PNameNI where marshalGetPName pn = case pn of GetCompressedTextureFormats -> Just gl_COMPRESSED_TEXTURE_FORMATS
Graphics/Rendering/OpenGL/GL/Texturing/Objects.hs view
@@ -16,7 +16,8 @@ module Graphics.Rendering.OpenGL.GL.Texturing.Objects ( TextureObject(TextureObject), textureBinding, textureResident, areTexturesResident,- TexturePriority, texturePriority, prioritizeTextures+ TexturePriority, texturePriority, prioritizeTextures,+ generateMipmap' ) where import Data.List@@ -74,3 +75,12 @@ withArrayLen (map (textureID . fst) tps) $ \len texObjsBuf -> withArray (map snd tps) $ glPrioritizeTextures (fromIntegral len) texObjsBuf++--------------------------------------------------------------------------------++-- | Generate mipmaps for the specified texture target. Note that from OpenGL+-- 3.1 onwards you should use this function instead of the texture parameter+-- 'Graphics.Rendering.OpenGL.GL.Texturing.Parameters.generateMipmap'.++generateMipmap' :: ParameterizedTextureTarget t => t -> IO ()+generateMipmap' = glGenerateMipmap . marshalParameterizedTextureTarget
Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs view
@@ -140,6 +140,9 @@ -------------------------------------------------------------------------------- +-- | Note: OpenGL 3.1 deprecated this texture parameter, use+-- 'Graphics.Rendering.OpenGL.GL.Texturing.Objects.generateMipmap'' instead.+ generateMipmap :: ParameterizedTextureTarget t => t -> StateVar Capability generateMipmap = texParami unmarshal marshal GenerateMipmap where unmarshal = unmarshalCapability . fromIntegral
OpenGL.cabal view
@@ -1,5 +1,5 @@ name: OpenGL-version: 2.9.1.0+version: 2.9.2.0 license: BSD3 license-file: LICENSE maintainer: Sven Panne <svenpanne@gmail.com>, Jason Dagit <dagitj@gmail.com>@@ -143,7 +143,7 @@ Graphics.Rendering.OpenGL.GLU.ErrorsInternal ghc-options: -Wall -O2 build-depends:- base >= 3 && < 5, bytestring, text, OpenGLRaw >= 1.4.0.0, GLURaw >= 1.3.0.0+ base >= 3 && < 5, bytestring, text, OpenGLRaw >= 1.4.1.0, GLURaw >= 1.3.0.0 source-repository head type: git