packages feed

OpenGL 2.11.1.0 → 2.12.0.0

raw patch · 73 files changed

+308/−384 lines, 73 filesdep +ObjectNamedep +StateVardep +transformersdep ~GLURawdep ~OpenGLRawdep ~bytestringPVP ok

version bump matches the API change (PVP)

Dependencies added: ObjectName, StateVar, transformers

Dependency ranges changed: GLURaw, OpenGLRaw, bytestring, text

API changes (from Hackage documentation)

- Graphics.Rendering.OpenGL.GL.DebugOutput: debugMessageID :: DebugMessageID -> GLuint
- Graphics.Rendering.OpenGL.GL.ObjectName: class ObjectName a => GeneratableObjectName a where genObjectName = fmap head $ genObjectNames 1 genObjectNames = flip replicateM genObjectName
- Graphics.Rendering.OpenGL.GL.ObjectName: class ObjectName a where deleteObjectName = deleteObjectNames . (: []) deleteObjectNames = mapM_ deleteObjectName
- Graphics.Rendering.OpenGL.GL.ObjectName: deleteObjectName :: ObjectName a => a -> IO ()
- Graphics.Rendering.OpenGL.GL.ObjectName: deleteObjectNames :: ObjectName a => [a] -> IO ()
- Graphics.Rendering.OpenGL.GL.ObjectName: genObjectName :: GeneratableObjectName a => IO a
- Graphics.Rendering.OpenGL.GL.ObjectName: genObjectNames :: GeneratableObjectName a => Int -> IO [a]
- Graphics.Rendering.OpenGL.GL.ObjectName: isObjectName :: ObjectName a => a -> IO Bool
- Graphics.Rendering.OpenGL.GL.Shaders.Limits: maxTessellationLevel :: GettableStateVar GLint
- Graphics.Rendering.OpenGL.GL.StateVar: ($=!) :: HasSetter s => s a -> a -> IO ()
- Graphics.Rendering.OpenGL.GL.StateVar: ($=) :: HasSetter s => s a -> a -> IO ()
- Graphics.Rendering.OpenGL.GL.StateVar: ($~!) :: (HasGetter v, HasSetter v) => v a -> (a -> a) -> IO ()
- Graphics.Rendering.OpenGL.GL.StateVar: ($~) :: (HasGetter v, HasSetter v) => v a -> (a -> a) -> IO ()
- Graphics.Rendering.OpenGL.GL.StateVar: GettableStateVar :: (IO a) -> GettableStateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: SettableStateVar :: (a -> IO ()) -> SettableStateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: StateVar :: (GettableStateVar a) -> (SettableStateVar a) -> StateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: class HasGetter g
- Graphics.Rendering.OpenGL.GL.StateVar: class HasSetter s
- Graphics.Rendering.OpenGL.GL.StateVar: data StateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: get :: HasGetter g => g a -> IO a
- Graphics.Rendering.OpenGL.GL.StateVar: instance Applicative GettableStateVar
- Graphics.Rendering.OpenGL.GL.StateVar: instance Functor GettableStateVar
- Graphics.Rendering.OpenGL.GL.StateVar: instance HasGetter GettableStateVar
- Graphics.Rendering.OpenGL.GL.StateVar: instance HasGetter IORef
- Graphics.Rendering.OpenGL.GL.StateVar: instance HasGetter StateVar
- Graphics.Rendering.OpenGL.GL.StateVar: instance HasSetter IORef
- Graphics.Rendering.OpenGL.GL.StateVar: instance HasSetter SettableStateVar
- Graphics.Rendering.OpenGL.GL.StateVar: instance HasSetter StateVar
- Graphics.Rendering.OpenGL.GL.StateVar: instance Monad GettableStateVar
- Graphics.Rendering.OpenGL.GL.StateVar: makeGettableStateVar :: IO a -> GettableStateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: makeSettableStateVar :: (a -> IO ()) -> SettableStateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: makeStateVar :: IO a -> (a -> IO ()) -> StateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: newtype GettableStateVar a
- Graphics.Rendering.OpenGL.GL.StateVar: newtype SettableStateVar a
+ Graphics.Rendering.OpenGL.GL.BufferObjects: instance CanBeLabeled BufferObject
+ Graphics.Rendering.OpenGL.GL.DebugOutput: MessageGroup :: (Maybe DebugSource) -> (Maybe DebugType) -> (Maybe DebugSeverity) -> MessageGroup
+ Graphics.Rendering.OpenGL.GL.DebugOutput: MessageGroupWithIDs :: DebugSource -> DebugType -> [DebugMessageID] -> MessageGroup
+ Graphics.Rendering.OpenGL.GL.DebugOutput: class CanBeLabeled a
+ Graphics.Rendering.OpenGL.GL.DebugOutput: data MessageGroup
+ Graphics.Rendering.OpenGL.GL.DebugOutput: debugMessageControl :: MessageGroup -> SettableStateVar Capability
+ Graphics.Rendering.OpenGL.GL.DebugOutput: instance Eq MessageGroup
+ Graphics.Rendering.OpenGL.GL.DebugOutput: instance Ord MessageGroup
+ Graphics.Rendering.OpenGL.GL.DebugOutput: instance Show MessageGroup
+ Graphics.Rendering.OpenGL.GL.DebugOutput: maxLabelLength :: GettableStateVar GLsizei
+ Graphics.Rendering.OpenGL.GL.DebugOutput: objectLabel :: CanBeLabeled a => a -> StateVar (Maybe String)
+ Graphics.Rendering.OpenGL.GL.DisplayLists: instance CanBeLabeled DisplayList
+ Graphics.Rendering.OpenGL.GL.Shaders.Limits: maxTessGenLevel :: GettableStateVar GLsizei
+ Graphics.Rendering.OpenGL.GL.SyncObjects: instance CanBeLabeled SyncObject
+ Graphics.Rendering.OpenGL.GL.VertexArrayObjects: instance CanBeLabeled VertexArrayObject
- Graphics.Rendering.OpenGL.GL.PrimitiveMode: maxPatchVertices :: GettableStateVar GLint
+ Graphics.Rendering.OpenGL.GL.PrimitiveMode: maxPatchVertices :: GettableStateVar GLsizei
- Graphics.Rendering.OpenGL.GL.PrimitiveMode: patchVertices :: SettableStateVar GLint
+ Graphics.Rendering.OpenGL.GL.PrimitiveMode: patchVertices :: StateVar GLsizei

Files

OpenGL.cabal view
@@ -1,5 +1,5 @@ name: OpenGL-version: 2.11.1.0+version: 2.12.0.0 synopsis: A binding for the OpenGL graphics system description:   A Haskell binding for the OpenGL graphics system (GL, version 4.5) and its@@ -13,6 +13,7 @@   and <http://www.opengl.org/registry/>. homepage: http://www.haskell.org/haskellwiki/Opengl bug-reports: https://github.com/haskell-opengl/OpenGL/issues+copyright: Copyright (C) 2002-2015 Sven Panne license: BSD3 license-file: LICENSE author: Sven Panne@@ -50,7 +51,6 @@     Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects     Graphics.Rendering.OpenGL.GL.Hints     Graphics.Rendering.OpenGL.GL.LineSegments-    Graphics.Rendering.OpenGL.GL.ObjectName     Graphics.Rendering.OpenGL.GL.PerFragment     Graphics.Rendering.OpenGL.GL.PixelRectangles     Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable@@ -79,7 +79,6 @@     Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries     Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects     Graphics.Rendering.OpenGL.GL.Shaders.Uniform-    Graphics.Rendering.OpenGL.GL.StateVar     Graphics.Rendering.OpenGL.GL.StringQueries     Graphics.Rendering.OpenGL.GL.SyncObjects     Graphics.Rendering.OpenGL.GL.Tensor@@ -148,7 +147,14 @@   hs-source-dirs: src   ghc-options: -Wall   build-depends:-    base >= 3 && < 5, bytestring, text, OpenGLRaw >= 2.1, GLURaw >= 1.3.0.0+    base         >= 3   && < 5,+    bytestring   >= 0.9 && < 0.11,+    text         >= 0.1 && < 1.3,+    transformers >= 0.2 && < 0.5,+    ObjectName   >= 1.1 && < 1.2,+    StateVar     >= 1.1 && < 1.2,+    OpenGLRaw    >= 2.1 && < 2.5,+    GLURaw       >= 1.3 && < 1.6   default-language: Haskell2010   other-extensions:     CPP
src/Graphics/Rendering/OpenGL/GL.hs view
@@ -17,7 +17,7 @@    -- * OpenGL Fundamentals    module Graphics.Rendering.OpenGL.Raw.Types,    module Graphics.Rendering.OpenGL.GL.FlushFinish,-   module Graphics.Rendering.OpenGL.GL.ObjectName,+   module Data.ObjectName,     -- * Event Model    module Graphics.Rendering.OpenGL.GL.SyncObjects,@@ -68,7 +68,7 @@    module Graphics.Rendering.OpenGL.GL.DebugOutput,     -- * State and State Requests-   module Graphics.Rendering.OpenGL.GL.StateVar,+   module Data.StateVar,    module Graphics.Rendering.OpenGL.GL.Tensor,    module Graphics.Rendering.OpenGL.GL.StringQueries,    module Graphics.Rendering.OpenGL.GL.SavingState@@ -76,7 +76,8 @@  import Graphics.Rendering.OpenGL.Raw.Types import Graphics.Rendering.OpenGL.GL.FlushFinish-import Graphics.Rendering.OpenGL.GL.ObjectName+import Data.ObjectName+import Data.StateVar  import Graphics.Rendering.OpenGL.GL.SyncObjects import Graphics.Rendering.OpenGL.GL.QueryObjects@@ -120,7 +121,6 @@ import Graphics.Rendering.OpenGL.GL.TransformFeedback import Graphics.Rendering.OpenGL.GL.DebugOutput -import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.StringQueries import Graphics.Rendering.OpenGL.GL.SavingState
src/Graphics/Rendering/OpenGL/GL/Antialiasing.hs view
@@ -17,7 +17,7 @@    sampleBuffers, samples, multisample, subpixelBits ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/BeginEnd.hs view
@@ -22,7 +22,7 @@    edgeFlag ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.EdgeFlag import Graphics.Rendering.OpenGL.GL.Exception import Graphics.Rendering.OpenGL.GL.PrimitiveMode
src/Graphics/Rendering/OpenGL/GL/BufferObjects.hs view
@@ -41,17 +41,18 @@    indexedBufferStart, indexedBufferSize ) where -import Data.Maybe-import Foreign.Marshal.Array-import Foreign.Marshal.Utils-import Foreign.Ptr-import Foreign.Storable+import Control.Monad.IO.Class+import Data.Maybe ( fromMaybe )+import Data.ObjectName+import Data.StateVar+import Foreign.Marshal.Array ( allocaArray, peekArray, withArrayLen )+import Foreign.Marshal.Utils ( with )+import Foreign.Ptr ( Ptr, nullPtr )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.Exception import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.VertexArrays import Graphics.Rendering.OpenGL.GLU.ErrorsInternal import Graphics.Rendering.OpenGL.Raw@@ -64,18 +65,21 @@ --------------------------------------------------------------------------------  instance ObjectName BufferObject where-   isObjectName = fmap unmarshalGLboolean . glIsBuffer . bufferID+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsBuffer . bufferID     deleteObjectNames bufferObjects =-      withArrayLen (map bufferID bufferObjects) $+      liftIO . withArrayLen (map bufferID bufferObjects) $          glDeleteBuffers . fromIntegral  instance GeneratableObjectName BufferObject where    genObjectNames n =-      allocaArray n $ \buf -> do+      liftIO . allocaArray n $ \buf -> do         glGenBuffers (fromIntegral n) buf         fmap (map BufferObject) $ peekArray n buf +instance CanBeLabeled BufferObject where+   objectLabel = objectNameLabel gl_BUFFER . bufferID+ --------------------------------------------------------------------------------  data BufferTarget =@@ -288,7 +292,7 @@ getBufferPointer :: BufferTarget -> IO (Ptr a) getBufferPointer t = with nullPtr $ \buf -> do    glGetBufferPointerv (marshalBufferTarget t) gl_BUFFER_MAP_POINTER buf-   peek buf+   peek1 id buf  -------------------------------------------------------------------------------- 
src/Graphics/Rendering/OpenGL/GL/ByteString.hs view
@@ -19,8 +19,8 @@    packUtf8, unpackUtf8 ) where +import Data.StateVar import Foreign.Ptr-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw import qualified Data.ByteString as B import qualified Data.ByteString.Internal as BI
src/Graphics/Rendering/OpenGL/GL/Capability.hs view
@@ -21,7 +21,7 @@    IndexedEnableCap(..), makeIndexedCapability, ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GLU.ErrorsInternal
src/Graphics/Rendering/OpenGL/GL/Clipping.hs view
@@ -17,6 +17,7 @@    ClipPlaneName(..), clipPlane, maxClipPlanes ) where +import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Foreign.Ptr@@ -24,7 +25,6 @@ import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GLU.ErrorsInternal import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/ColorSum.hs view
@@ -16,7 +16,7 @@    colorSum ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.Capability  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Colors.hs view
@@ -44,12 +44,12 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Array import Foreign.Marshal.Utils import Foreign.Ptr import Foreign.Storable-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.Face
src/Graphics/Rendering/OpenGL/GL/CoordTrans.hs view
@@ -36,13 +36,13 @@    Plane(..), TextureCoordName(..), TextureGenMode(..), textureGenMode ) where +import Data.StateVar import Foreign.ForeignPtr import Foreign.Marshal.Alloc import Foreign.Marshal.Array import Foreign.Marshal.Utils import Foreign.Ptr import Foreign.Storable-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.Exception
src/Graphics/Rendering/OpenGL/GL/DebugOutput.hs view
@@ -17,7 +17,7 @@ module Graphics.Rendering.OpenGL.GL.DebugOutput (   -- * Debug Messages   debugOutput, DebugMessage(..), DebugSource(..), DebugType(..),-  DebugMessageID(..), DebugSeverity(..), maxDebugMessageLength,+  DebugMessageID(DebugMessageID), DebugSeverity(..), maxDebugMessageLength,    -- * Debug Message Callback   debugMessageCallback,@@ -25,7 +25,8 @@   -- * Debug Message Log   maxDebugLoggedMessages, debugLoggedMessages, -  -- * Controlling Debug Messages (TODO)+  -- * Controlling Debug Messages+  MessageGroup(..), debugMessageControl,    -- * Externally Generated Messages   debugMessageInsert,@@ -34,24 +35,25 @@   DebugGroup(..), pushDebugGroup, popDebugGroup, withDebugGroup,   maxDebugGroupStackDepth, -  -- * Debug Labels (TODO)+  -- * Debug Labels+  CanBeLabeled(..), maxLabelLength,    -- * Asynchronous and Synchronous Debug Output   debugOutputSynchronous ) where  import Control.Monad ( unless, replicateM )+import Data.StateVar import Foreign.C.String ( peekCStringLen, withCStringLen ) import Foreign.C.Types import Foreign.Marshal.Alloc ( alloca )-import Foreign.Marshal.Array ( allocaArray )+import Foreign.Marshal.Array ( allocaArray, withArrayLen ) import Foreign.Ptr (-  Ptr, nullPtr, castPtrToFunPtr, FunPtr, nullFunPtr, freeHaskellFunPtr )+  nullPtr, castPtrToFunPtr, FunPtr, nullFunPtr, freeHaskellFunPtr ) import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.Exception import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------@@ -177,7 +179,7 @@  getDebugMessageCallback :: IO (Maybe (DebugMessage -> IO ())) getDebugMessageCallback = do-  cb <- castPtrToFunPtr `fmap` getPointer DebugCallbackFunction+  cb <- getDebugCallbackFunction   return $ if (cb == nullFunPtr)              then Nothing              else Just . toDebugProc . dyn_debugProc $ cb@@ -198,7 +200,7 @@  setDebugMessageCallback :: Maybe (DebugMessage -> IO ()) -> IO () setDebugMessageCallback maybeDebugProc = do-  oldCB <- castPtrToFunPtr `fmap` getPointer DebugCallbackFunction+  oldCB <- getDebugCallbackFunction   unless (oldCB == nullFunPtr) $     freeHaskellFunPtr oldCB   newCB <-@@ -214,6 +216,10 @@                           (unmarshalDebugSeverity severity)                           msg) +getDebugCallbackFunction :: IO (FunPtr GLDEBUGPROCFunc)+getDebugCallbackFunction =+  castPtrToFunPtr `fmap` getPointer DebugCallbackFunction+ --------------------------------------------------------------------------------  maxDebugLoggedMessages :: GettableStateVar GLsizei@@ -233,8 +239,8 @@       alloca $ \idBuf ->         alloca $ \severityBuf ->           allocaArray (fromIntegral len) $ \messageBuf -> do-            glGetDebugMessageLog 1 len sourceBuf typeBuf idBuf severityBuf-                                 nullPtr messageBuf+            _ <- glGetDebugMessageLog 1 len sourceBuf typeBuf idBuf+                                      severityBuf nullPtr messageBuf             source <- peek1 unmarshalDebugSource sourceBuf             typ <- peek1 unmarshalDebugType typeBuf             msgID <- peek1 DebugMessageID idBuf@@ -244,6 +250,35 @@  -------------------------------------------------------------------------------- +data MessageGroup =+    MessageGroup (Maybe DebugSource) (Maybe DebugType) (Maybe DebugSeverity)+  | MessageGroupWithIDs DebugSource DebugType [DebugMessageID]+  deriving ( Eq, Ord, Show )++debugMessageControl :: MessageGroup -> SettableStateVar Capability+debugMessageControl x = case x of+  MessageGroup maybeSource maybeType maybeSeverity ->+    doDebugMessageControl maybeSource maybeType maybeSeverity []+  MessageGroupWithIDs source typ messageIDs ->+    doDebugMessageControl (Just source) (Just typ) Nothing messageIDs++doDebugMessageControl :: Maybe DebugSource+                      -> Maybe DebugType+                      -> Maybe DebugSeverity+                      -> [DebugMessageID]+                      -> SettableStateVar Capability+doDebugMessageControl maybeSource maybeType maybeSeverity messageIDs =+  makeSettableStateVar $ \cap ->+    withArrayLen (map debugMessageID messageIDs) $ \len idsBuf ->+      glDebugMessageControl (maybe gl_DONT_CARE marshalDebugSource maybeSource)+                            (maybe gl_DONT_CARE marshalDebugType maybeType)+                            (maybe gl_DONT_CARE marshalDebugSeverity maybeSeverity)+                            (fromIntegral len)+                            idsBuf+                            (marshalCapability cap)++--------------------------------------------------------------------------------+ debugMessageInsert :: DebugMessage -> IO () debugMessageInsert (DebugMessage source typ msgID severity message) =   withCStringLen message $ \(msg, len) ->@@ -276,6 +311,16 @@ maxDebugGroupStackDepth :: GettableStateVar GLsizei maxDebugGroupStackDepth =   makeGettableStateVar (getSizei1 id GetMaxDebugGroupStackDepth)++--------------------------------------------------------------------------------++-- TODO: Make instances for the following features when we have them:+--   * PROGRAM_PIPELINE / glGenProgramPipelines+--   * SAMPLER / glGenSamplers+--   * TRANSFORM_FEEDBACK / glGenTransformFeedbacks++class CanBeLabeled a where+  objectLabel :: a -> StateVar (Maybe String)  -------------------------------------------------------------------------------- 
src/Graphics/Rendering/OpenGL/GL/DisplayLists.hs view
@@ -22,9 +22,11 @@    callList, callLists, listBase ) where -import Foreign.Ptr-import Graphics.Rendering.OpenGL.GL.ObjectName-import Graphics.Rendering.OpenGL.GL.StateVar+import Control.Monad.IO.Class+import Data.ObjectName+import Data.StateVar+import Foreign.Ptr ( Ptr )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.DataType import Graphics.Rendering.OpenGL.GL.Exception import Graphics.Rendering.OpenGL.GL.GLboolean@@ -38,9 +40,13 @@    deriving ( Eq, Ord, Show )  instance ObjectName DisplayList where-   isObjectName = fmap unmarshalGLboolean . glIsList . displayListID-   deleteObjectNames = mapM_ (uncurry glDeleteLists) . combineConsecutive+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsList . displayListID+   deleteObjectNames =+     liftIO . mapM_ (uncurry glDeleteLists) . combineConsecutive +instance CanBeLabeled DisplayList where+   objectLabel = objectNameLabel gl_DISPLAY_LIST . displayListID+ combineConsecutive :: [DisplayList] -> [(GLuint, GLsizei)] combineConsecutive [] = [] combineConsecutive (z:zs) = (displayListID z, len) : combineConsecutive rest@@ -53,12 +59,13 @@          DisplayList x `isFollowedBy` DisplayList y = x + 1 == y  instance GeneratableObjectName DisplayList where-   genObjectNames n = do+   genObjectNames n = liftIO $ do       first <- glGenLists (fromIntegral n)       if DisplayList first == noDisplayList          then do recordOutOfMemory                  return []-         else return [ DisplayList l | l <- [ first .. first + fromIntegral n - 1 ] ]+         else return [ DisplayList l+                     | l <- [ first .. first + fromIntegral n - 1 ] ]  -------------------------------------------------------------------------------- 
src/Graphics/Rendering/OpenGL/GL/Evaluators.hs view
@@ -46,6 +46,7 @@  import Control.Monad import Data.List+import Data.StateVar import Foreign.ForeignPtr import Foreign.Marshal.Array import Foreign.Marshal.Utils@@ -57,7 +58,6 @@ import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.PolygonMode import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.VertexArrays import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/Feedback.hs view
@@ -18,12 +18,12 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Array import Foreign.Ptr import Foreign.Storable import Graphics.Rendering.OpenGL.GL.IOState import Graphics.Rendering.OpenGL.GL.RenderMode-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/Fog.hs view
@@ -20,9 +20,9 @@    FogDistanceMode(..), fogDistanceMode ) where +import Data.StateVar import Foreign.Marshal.Utils import Foreign.Ptr-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.VertexSpec
src/Graphics/Rendering/OpenGL/GL/Framebuffer.hs view
@@ -35,13 +35,13 @@ import Control.Monad import Data.List import Data.Maybe+import Data.StateVar import Foreign.Marshal.Array import Graphics.Rendering.OpenGL.GL.BufferMode import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.Face import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.GLU.ErrorsInternal import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/FramebufferObjects/FramebufferObject.hs view
@@ -17,25 +17,32 @@    FramebufferObject(..) ) where -import Foreign.Marshal+import Control.Monad.IO.Class+import Data.ObjectName+import Foreign.Marshal.Array ( allocaArray, peekArray, withArrayLen )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName+import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw         -------------------------------------------------------------------------------- -data FramebufferObject = FramebufferObject { framebufferID :: GLuint }+newtype FramebufferObject = FramebufferObject { framebufferID :: GLuint }    deriving ( Eq, Ord, Show )  instance ObjectName FramebufferObject where-    isObjectName = fmap unmarshalGLboolean . glIsFramebuffer . framebufferID+    isObjectName =+      liftIO . fmap unmarshalGLboolean . glIsFramebuffer . framebufferID      deleteObjectNames objs =-       withArrayLen (map framebufferID objs) $+       liftIO . withArrayLen (map framebufferID objs) $           glDeleteFramebuffers . fromIntegral  instance GeneratableObjectName FramebufferObject where     genObjectNames n =-       allocaArray n $ \buf -> do+       liftIO . allocaArray n $ \buf -> do           glGenFramebuffers (fromIntegral n) buf           fmap (map FramebufferObject) $ peekArray n buf++instance CanBeLabeled FramebufferObject where+   objectLabel = objectNameLabel gl_FRAMEBUFFER . framebufferID
src/Graphics/Rendering/OpenGL/GL/FramebufferObjects/FramebufferObjects.hs view
@@ -16,10 +16,10 @@    FramebufferStatus(..), framebufferStatus, ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObject import Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferTarget import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  -----------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/FramebufferObjects/Queries.hs view
@@ -25,11 +25,11 @@    renderbufferAlphaSize, renderbufferDepthSize, renderbufferStencilSize, ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjectAttachment import Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferTarget import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObject import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTarget-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.Texturing.Specification(Level) import Graphics.Rendering.OpenGL.GL.Texturing.TextureObject
src/Graphics/Rendering/OpenGL/GL/FramebufferObjects/RenderbufferObject.hs view
@@ -17,25 +17,33 @@    RenderbufferObject(..) ) where -import Foreign.Marshal++import Control.Monad.IO.Class+import Data.ObjectName+import Foreign.Marshal ( allocaArray, peekArray, withArrayLen )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName+import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw         -------------------------------------------------------------------------------- -data RenderbufferObject = RenderbufferObject { renderbufferID :: GLuint}+newtype RenderbufferObject = RenderbufferObject { renderbufferID :: GLuint}    deriving ( Eq, Ord, Show )  instance ObjectName RenderbufferObject where-   isObjectName = fmap unmarshalGLboolean . glIsRenderbuffer . renderbufferID+   isObjectName =+     liftIO . fmap unmarshalGLboolean . glIsRenderbuffer . renderbufferID     deleteObjectNames objs =-      withArrayLen (map renderbufferID objs) $+      liftIO . withArrayLen (map renderbufferID objs) $          glDeleteRenderbuffers . fromIntegral  instance GeneratableObjectName RenderbufferObject where    genObjectNames n =-      allocaArray n $ \buf -> do+      liftIO . allocaArray n $ \buf -> do          glGenRenderbuffers (fromIntegral n) buf          fmap (map RenderbufferObject) $ peekArray n buf++instance CanBeLabeled RenderbufferObject where+   objectLabel = objectNameLabel gl_RENDERBUFFER . renderbufferID
src/Graphics/Rendering/OpenGL/GL/FramebufferObjects/RenderbufferObjects.hs view
@@ -22,10 +22,10 @@    renderbufferStorage, renderbufferStorageMultiSample, ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObject import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTarget import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/Hints.hs view
@@ -16,8 +16,8 @@    HintTarget(..), HintMode(..), hint ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/LineSegments.hs view
@@ -28,9 +28,9 @@ ) where  import Control.Monad+import Data.StateVar import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
− src/Graphics/Rendering/OpenGL/GL/ObjectName.hs
@@ -1,75 +0,0 @@-{-# LANGUAGE CPP #-}------------------------------------------------------------------------------------ |--- Module      :  Graphics.Rendering.OpenGL.GL.ObjectName--- Copyright   :  (c) Sven Panne 2013--- License     :  BSD3--- --- Maintainer  :  Sven Panne <svenpanne@gmail.com>--- Stability   :  stable--- Portability :  portable------ This module corresponds to section 2.5 (Objects and the Object Model) of the--- OpenGL 4.4 specs.------ Object names are explicitly handled identifiers for API objects, e.g. a--- texture object name in OpenGL or a buffer object name in OpenAL. They come in--- two flavors: If a name can exist on its own without an associated object, we--- have a 'GeneratableObjectName', otherwise we have an 'ObjectName'.--------------------------------------------------------------------------------------module Graphics.Rendering.OpenGL.GL.ObjectName (-   ObjectName(..), GeneratableObjectName(..)-) where--import Control.Monad ( replicateM )-------------------------------------------------------------------------------------- | An 'ObjectName' is an explicitly handled identifier for API objects, e.g. a--- texture object name in OpenGL or a buffer object name in OpenAL.-#if __GLASGOW_HASKELL__ < 708------ Minimal complete definition: 'isObjectName' plus one of 'deleteObjectName' or--- 'deleteObjectNames'.-#endif--class ObjectName a where-#if __GLASGOW_HASKELL__ >= 708-   {-# MINIMAL isObjectName, ( deleteObjectName | deleteObjectNames ) #-}-#endif-   -- | Test if the given object name is currently in use, i.e. test if it has-   -- been generated, but not been deleted so far.-   isObjectName :: a -> IO Bool--   -- | Make the given object name available again, declaring it as unused.-   deleteObjectName :: a -> IO ()-   deleteObjectName = deleteObjectNames . (:[])--   -- | Bulk version of 'deleteObjectName'.-   deleteObjectNames:: [a] -> IO ()-   deleteObjectNames = mapM_ deleteObjectName---- | A 'GeneratableObjectName' is an 'ObjectName' which can be generated without--- creating an associated object at the same time, e.g. an OpenGL buffer object--- name. Note that e.g. OpenGL program object names do not fall into this--- category, because you can only create such a name together with a program--- object itself.-#if __GLASGOW_HASKELL__ < 708------ Minimal complete definition: One of 'genObjectName' or 'genObjectNames'.-#endif--class ObjectName a => GeneratableObjectName  a where-#if __GLASGOW_HASKELL__ >= 708-   {-# MINIMAL genObjectName | genObjectNames #-}-#endif-   -- | Generate a new unused object name. By generating the name, it becomes-   -- used.-   genObjectName :: IO a-   genObjectName = fmap head $ genObjectNames 1--   -- | Bulk version of 'genObjectName'.-   genObjectNames :: Int -> IO [a]-   genObjectNames = flip replicateM genObjectName
src/Graphics/Rendering/OpenGL/GL/PerFragment.hs view
@@ -48,6 +48,7 @@ ) where  import Control.Monad+import Data.StateVar import Graphics.Rendering.OpenGL.GL.BlendingFactor import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.ComparisonFunction@@ -57,7 +58,6 @@ import Graphics.Rendering.OpenGL.GL.Framebuffer import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/ColorTable.hs view
@@ -21,6 +21,7 @@    colorTableRGBASizes, colorTableLuminanceSize, colorTableIntesitySize, ) where +import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Foreign.Ptr@@ -29,7 +30,6 @@ import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.PixelData-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.GLU.ErrorsInternal
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/Convolution.hs view
@@ -25,6 +25,7 @@    convolutionFilterScale, convolutionFilterBias, ) where +import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Foreign.Ptr@@ -33,7 +34,6 @@ import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.PixelData-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.GLU.ErrorsInternal
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/Histogram.hs view
@@ -18,6 +18,7 @@    histogramRGBASizes, histogramLuminanceSize ) where +import Data.StateVar import Foreign.Marshal.Utils import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.PeekPoke@@ -25,7 +26,6 @@ import Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable import Graphics.Rendering.OpenGL.GL.PixelRectangles.Reset import Graphics.Rendering.OpenGL.GL.PixelRectangles.Sink-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/Minmax.hs view
@@ -17,13 +17,13 @@    minmax, getMinmax, resetMinmax ) where +import Data.StateVar import Foreign.Marshal.Utils import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.PixelData import Graphics.Rendering.OpenGL.GL.PixelRectangles.Reset import Graphics.Rendering.OpenGL.GL.PixelRectangles.Sink-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/PixelMap.hs view
@@ -21,12 +21,12 @@ ) where  import Data.List+import Data.StateVar import Foreign.ForeignPtr import Foreign.Marshal.Array import Foreign.Ptr import Foreign.Storable import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/PixelStorage.hs view
@@ -18,9 +18,9 @@    skipPixels, rowAlignment, imageHeight, skipImages ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/PixelTransfer.hs view
@@ -19,9 +19,9 @@    rgbaScale, rgbaBias ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw 
src/Graphics/Rendering/OpenGL/GL/PixelRectangles/Rasterization.hs view
@@ -18,11 +18,11 @@ ) where  import Control.Monad+import Data.StateVar import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.PixelData import Graphics.Rendering.OpenGL.GL.PixelFormat import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/PixellikeObject.hs view
@@ -15,12 +15,12 @@   PixellikeObjectTarget(pixellikeObjTarParam), ) where +import Data.StateVar import Foreign.Marshal.Utils import Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjectAttachment import Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferTarget import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTarget import Graphics.Rendering.OpenGL.GL.PeekPoke-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.Specification import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/Points.hs view
@@ -33,11 +33,11 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Array import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.PointParameter import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Polygons.hs view
@@ -20,6 +20,7 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.ForeignPtr import Foreign.Marshal.Array import Foreign.Ptr@@ -29,7 +30,6 @@ import Graphics.Rendering.OpenGL.GL.PolygonMode import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.SavingState-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/PrimitiveMode.hs view
@@ -20,7 +20,7 @@    patchVertices, maxPatchVertices ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.QueryUtils.PName import Graphics.Rendering.OpenGL.Raw @@ -82,10 +82,12 @@ -- 'patchVertices' is set to a value less than or equal to zero or greater -- than the implementation-dependent maximum value 'maxPatchVertices'. -patchVertices :: SettableStateVar GLint-patchVertices = makeSettableStateVar $ glPatchParameteri gl_PATCH_VERTICES+patchVertices :: StateVar GLsizei+patchVertices =+  makeStateVar (getSizei1 id GetMaxPatchVertices)+               (glPatchParameteri gl_PATCH_VERTICES . fromIntegral)  -- | Contains the maximumum number of vertices in a single patch. -maxPatchVertices :: GettableStateVar GLint-maxPatchVertices = makeGettableStateVar $ getInteger1 id GetMaxPatchVertices+maxPatchVertices :: GettableStateVar GLsizei+maxPatchVertices = makeGettableStateVar $ getSizei1 id GetMaxPatchVertices
src/Graphics/Rendering/OpenGL/GL/QueryObject.hs view
@@ -17,9 +17,12 @@    QueryObject(..), noQueryObject ) where -import Foreign.Marshal.Array+import Control.Monad.IO.Class+import Data.ObjectName+import Foreign.Marshal.Array ( allocaArray, peekArray, withArrayLen )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName+import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------@@ -33,14 +36,17 @@ --------------------------------------------------------------------------------  instance ObjectName QueryObject where-   isObjectName = fmap unmarshalGLboolean . glIsQuery . queryID+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsQuery . queryID     deleteObjectNames queryObjects =-      withArrayLen (map queryID queryObjects) $+      liftIO . withArrayLen (map queryID queryObjects) $          glDeleteQueries . fromIntegral  instance GeneratableObjectName QueryObject where    genObjectNames n =-      allocaArray n $ \buf -> do+      liftIO . allocaArray n $ \buf -> do         glGenQueries (fromIntegral n) buf         fmap (map QueryObject) $ peekArray n buf++instance CanBeLabeled QueryObject where+   objectLabel = objectNameLabel gl_QUERY . queryID
src/Graphics/Rendering/OpenGL/GL/QueryObjects.hs view
@@ -30,6 +30,7 @@    timestampQuery, timestamp ) where +import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Foreign.Ptr@@ -39,7 +40,6 @@ import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryObject import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/QueryUtils.hs view
@@ -20,10 +20,17 @@    lightIndexToEnum,    modelviewIndexToEnum, modelviewEnumToIndex, -   maybeNullPtr+   maybeNullPtr,++   objectNameLabel, objectPtrLabel, maxLabelLength ) where -import Foreign.Ptr+import Data.StateVar+import Foreign.C.String ( peekCStringLen, withCStringLen )+import Foreign.Ptr ( Ptr, nullPtr )+import Foreign.Marshal.Alloc ( alloca )+import Foreign.Marshal.Array ( allocaArray )+import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils.PName import Graphics.Rendering.OpenGL.GL.QueryUtils.VertexAttrib import Graphics.Rendering.OpenGL.Raw@@ -63,3 +70,37 @@ maybeNullPtr :: b -> (Ptr a -> b) -> Ptr a -> b maybeNullPtr n f ptr | ptr == nullPtr = n                      | otherwise      = f ptr++--------------------------------------------------------------------------------++objectNameLabel :: GLuint -> GLenum -> StateVar (Maybe String)+objectNameLabel name ident =+ makeStateVar+   (getObjectLabelWith (glGetObjectLabel ident name))+   (setObjectLabelWith (glObjectLabel ident name))++objectPtrLabel :: Ptr () -> StateVar (Maybe String)+objectPtrLabel ptr =+  makeStateVar+    (getObjectLabelWith (glGetObjectPtrLabel ptr))+    (setObjectLabelWith (glObjectPtrLabel ptr))++getObjectLabelWith :: (GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())+                   -> IO (Maybe String)+getObjectLabelWith getLabel = do+  maxLen <- get maxLabelLength+  alloca $ \lenBuf ->+    allocaArray (fromIntegral maxLen) $ \labelBuf -> do+      getLabel maxLen lenBuf labelBuf+      actualLen <- peek1 fromIntegral lenBuf+      label <- peekCStringLen (labelBuf, actualLen)+      return $ if label == "" then Nothing else Just label++setObjectLabelWith :: (GLsizei -> Ptr GLchar -> IO ()) -> Maybe String -> IO ()+setObjectLabelWith setLabel =+  maybe (set (nullPtr, (0 :: Int))) (flip withCStringLen set)+  where set (labelBuf, len) = setLabel (fromIntegral len) labelBuf++maxLabelLength :: GettableStateVar GLsizei+maxLabelLength =+  makeGettableStateVar (getSizei1 id GetMaxLabelLength)
src/Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs view
@@ -370,8 +370,9 @@     | GetMaxVertexAttribs               -- ^ sizei     | GetMaxVaryingFloats               -- ^ sizei     -- tessellation-    | GetMaxPatchVertices               -- ^ int-    | GetMaxTessellationLevel           -- ^ int+    | GetPatchVertices                  -- ^ sizei+    | GetMaxPatchVertices               -- ^ sizei+    | GetMaxTessGenLevel                -- ^ sizei     -- coordtrans     | GetMatrixMode                 -- ^ enum     | GetModelviewStackDepth        -- ^ sizei@@ -561,6 +562,7 @@     | GetDebugLoggedMessages          -- ^ int     | GetDebugNextLoggedMessageLength -- ^ int     | GetMaxDebugGroupStackDepth      -- ^ int+    | GetMaxLabelLength               -- ^ int  instance GetPName1I PName1I where @@ -638,8 +640,9 @@         GetMaxVaryingFloats -> Just gl_MAX_VARYING_COMPONENTS         GetMaxVertexAttribs -> Just gl_MAX_VERTEX_ATTRIBS         -- tessellation+        GetPatchVertices -> Just gl_PATCH_VERTICES         GetMaxPatchVertices -> Just gl_MAX_PATCH_VERTICES-        GetMaxTessellationLevel -> Just gl_MAX_TESS_GEN_LEVEL+        GetMaxTessGenLevel -> Just gl_MAX_TESS_GEN_LEVEL         -- coordtrans         GetMatrixMode -> Just gl_MATRIX_MODE         GetModelviewStackDepth -> Just gl_MODELVIEW_STACK_DEPTH@@ -830,6 +833,7 @@         GetDebugLoggedMessages -> Just gl_DEBUG_LOGGED_MESSAGES         GetDebugNextLoggedMessageLength -> Just gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH         GetMaxDebugGroupStackDepth -> Just gl_MAX_DEBUG_GROUP_STACK_DEPTH+        GetMaxLabelLength -> Just gl_MAX_LABEL_LENGTH  -- 0x8825 through 0x8834 are reserved for draw buffers 
src/Graphics/Rendering/OpenGL/GL/RasterPos.hs view
@@ -23,11 +23,11 @@    rasterPositionUnclipped ) where +import Data.StateVar import Foreign.Ptr import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/ReadCopyPixels.hs view
@@ -24,11 +24,11 @@    BlitBuffer(..), blitFramebuffer ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.BufferMode import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.PixelData import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.Filter import Graphics.Rendering.OpenGL.GLU.ErrorsInternal import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/RenderMode.hs view
@@ -17,9 +17,9 @@    RenderMode(..), withRenderMode, renderMode ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.Exception import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Selection.hs view
@@ -18,13 +18,13 @@    RenderMode(..), renderMode ) where +import Data.StateVar import Foreign.Marshal.Array import Foreign.Ptr import Graphics.Rendering.OpenGL.GL.Exception import Graphics.Rendering.OpenGL.GL.IOState import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.RenderMode-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Shaders/Attribs.hs view
@@ -17,11 +17,11 @@    attribLocation, VariableType(..), activeAttribs, ) where +import Data.StateVar import Graphics.Rendering.OpenGL.GL.ByteString import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.Shaders.Program import Graphics.Rendering.OpenGL.GL.Shaders.Variables-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Shaders/Limits.hs view
@@ -16,10 +16,10 @@    maxVertexTextureImageUnits, maxTextureImageUnits,    maxCombinedTextureImageUnits, maxTextureCoords, maxVertexUniformComponents,    maxFragmentUniformComponents, maxVertexAttribs, maxVaryingFloats,-   maxTessellationLevel+   maxTessGenLevel ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw @@ -79,8 +79,8 @@  -- | Contains the maximum allowed tessellation level. -maxTessellationLevel :: GettableStateVar GLint-maxTessellationLevel = makeGettableStateVar $ getInteger1 id GetMaxTessellationLevel+maxTessGenLevel :: GettableStateVar GLsizei+maxTessGenLevel = getLimit GetMaxTessGenLevel  getLimit :: PName1I -> GettableStateVar GLsizei getLimit = makeGettableStateVar . getSizei1 id
src/Graphics/Rendering/OpenGL/GL/Shaders/Program.hs view
@@ -20,12 +20,15 @@    programVar1, programVar3 ) where -import Foreign.Marshal.Utils-import Foreign.Ptr+import Control.Monad.IO.Class+import Data.ObjectName+import Data.StateVar+import Foreign.Marshal.Utils ( with )+import Foreign.Ptr ( Ptr )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName import Graphics.Rendering.OpenGL.GL.PeekPoke-import Graphics.Rendering.OpenGL.GL.StateVar+import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------@@ -34,8 +37,11 @@    deriving ( Eq, Ord, Show )  instance ObjectName Program where-   isObjectName = fmap unmarshalGLboolean . glIsProgram . programID-   deleteObjectName = glDeleteProgram . programID+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsProgram . programID+   deleteObjectName = liftIO . glDeleteProgram . programID++instance CanBeLabeled Program where+   objectLabel = objectNameLabel gl_PROGRAM . programID  -------------------------------------------------------------------------------- 
src/Graphics/Rendering/OpenGL/GL/Shaders/ProgramBinaries.hs view
@@ -18,12 +18,12 @@    ProgramBinary(..), programBinary ) where +import Data.StateVar import Foreign.Marshal.Alloc import Graphics.Rendering.OpenGL.GL.ByteString import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.Shaders.Program-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Shaders/ProgramObjects.hs view
@@ -39,6 +39,7 @@  import Data.List import Data.Maybe+import Data.StateVar import Foreign.Marshal.Array import Foreign.Ptr import Graphics.Rendering.OpenGL.GL.ByteString@@ -47,7 +48,6 @@ import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.Shaders.Program import Graphics.Rendering.OpenGL.GL.Shaders.Shader-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Shaders/Shader.hs view
@@ -17,8 +17,11 @@    Shader(..) ) where +import Control.Monad.IO.Class+import Data.ObjectName+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName+import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------@@ -27,5 +30,8 @@    deriving ( Eq, Ord, Show )  instance ObjectName Shader where-   isObjectName = fmap unmarshalGLboolean . glIsShader . shaderID-   deleteObjectName = glDeleteShader . shaderID+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsShader . shaderID+   deleteObjectName = liftIO . glDeleteShader . shaderID++instance CanBeLabeled Shader where+   objectLabel = objectNameLabel gl_SHADER . shaderID
src/Graphics/Rendering/OpenGL/GL/Shaders/ShaderBinaries.hs view
@@ -18,11 +18,11 @@    ShaderBinary(..), shaderBinary, ) where +import Data.StateVar import Foreign.Marshal.Array import Graphics.Rendering.OpenGL.GL.ByteString import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.Shaders.Shader-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Shaders/ShaderObjects.hs view
@@ -28,6 +28,7 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Array import Foreign.Marshal.Utils@@ -37,7 +38,6 @@ import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.Shaders.Shader-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/Shaders/Uniform.hs view
@@ -24,6 +24,7 @@ ) where  import Data.Maybe+import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Ptr import Foreign.Storable@@ -31,7 +32,6 @@ import Graphics.Rendering.OpenGL.GL.Shaders.Program import Graphics.Rendering.OpenGL.GL.Shaders.ProgramObjects import Graphics.Rendering.OpenGL.GL.Shaders.Variables-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/Shaders/Variables.hs view
@@ -19,13 +19,13 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Utils import Foreign.Ptr import Foreign.Storable import Graphics.Rendering.OpenGL.GL.ByteString import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.Shaders.Program-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
− src/Graphics/Rendering/OpenGL/GL/StateVar.hs
@@ -1,160 +0,0 @@------------------------------------------------------------------------------------ |--- Module      :  Graphics.Rendering.OpenGL.GL.StateVar--- Copyright   :  (c) Sven Panne 2013--- License     :  BSD3--- --- Maintainer  :  Sven Panne <svenpanne@gmail.com>--- Stability   :  stable--- Portability :  portable------ State variables are references in the IO monad, like 'IORef's or parts of--- the OpenGL state. Note that state variables are not neccessarily writable or--- readable, they may come in read-only or write-only flavours, too. As a very--- simple example for a state variable, consider an explicitly allocated memory--- buffer. This buffer can easily be converted into a 'StateVar':------ @--- makeStateVarFromPtr :: Storable a => Ptr a -> StateVar a--- makeStateVarFromPtr p = makeStateVar (peek p) (poke p)--- @------ The example below puts 11 into a state variable (i.e. into the buffer),--- increments the contents of the state variable by 22, and finally prints the--- resulting content:------ @---   do p <- malloc :: IO (Ptr Int)---      let v = makeStateVarFromPtr p---      v $= 11---      v $~ (+ 22)---      x <- get v---      print x--- @------ 'IORef's are state variables, too, so an example with them looks extremely--- similiar:------ @---   do v <- newIORef (0 :: Int)---      v $= 11---      v $~ (+ 22)---      x <- get v---      print x--- @-----------------------------------------------------------------------------------module Graphics.Rendering.OpenGL.GL.StateVar (-   -- * Readable State Variables-   HasGetter(..),-   GettableStateVar(..), makeGettableStateVar,-   -- * Writable State Variables-   HasSetter(..),-   SettableStateVar(..), makeSettableStateVar,-   -- * General State Variables-   StateVar(..), makeStateVar,-   -- * Utility Functions-   ($~), ($=!), ($~!)-) where--import Control.Applicative ( Applicative(..) )-import Data.IORef ( IORef, readIORef, writeIORef )------------------------------------------------------------------------------------infixr 2 $=-------------------------------------------------------------------------------------- | The class of all readable state variables.-class HasGetter g where-   -- | Read the value of a state variable.-   get :: g a -> IO a--instance HasGetter IORef where-   get = readIORef---- | A concrete implementation of a read-only state variable, carrying an IO--- action to read the value.-newtype GettableStateVar a = GettableStateVar (IO a)--instance HasGetter GettableStateVar where-   get (GettableStateVar g) = g--instance Functor GettableStateVar where-  fmap f (GettableStateVar g) = GettableStateVar (fmap f g)--instance Applicative GettableStateVar where-  pure = GettableStateVar . pure-  GettableStateVar g <*> GettableStateVar h = GettableStateVar (g <*> h)--instance Monad GettableStateVar where-  return = pure-  GettableStateVar g >>= h = GettableStateVar (g >>= get . h)---- | Construct a 'GettableStateVar' from an IO action.-makeGettableStateVar :: IO a -> GettableStateVar a-makeGettableStateVar = GettableStateVar-------------------------------------------------------------------------------------- | The class of all writable state variables.-class HasSetter s where-   -- | Write a new value into a state variable.-   ($=) :: s a -> a -> IO ()--instance HasSetter IORef where-   ($=) = writeIORef---- | A concrete implementation of a write-only state variable, carrying an IO--- action to write the new value.-newtype SettableStateVar a = SettableStateVar (a -> IO ())--instance HasSetter SettableStateVar where-   ($=) (SettableStateVar s) a = s a---- instance Contravariant SettableStateVar where---    contramap f (SettableStateVar s) = SettableStateVar (s . f)---- | Construct a 'SettableStateVar' from an IO action.-makeSettableStateVar :: (a -> IO ()) -> SettableStateVar a-makeSettableStateVar = SettableStateVar-------------------------------------------------------------------------------------- | A concrete implementation of a readable and writable state variable,--- carrying one IO action to read the value and another IO action to write the--- new value.-data StateVar a =-   StateVar (GettableStateVar a) (SettableStateVar a)--instance HasGetter StateVar where-   get (StateVar g _) = get g--instance HasSetter StateVar where-   ($=) (StateVar _ s) a = s $= a---- | Construct a 'StateVar' from two IO actions, one for reading and one for--- writing.-makeStateVar :: IO a -> (a -> IO ()) -> StateVar a-makeStateVar g s = StateVar (makeGettableStateVar g) (makeSettableStateVar s)-------------------------------------------------------------------------------------- | A modificator convenience function, transforming the contents of a state--- variable with a given funtion.--($~) :: (HasGetter v, HasSetter v) => v a -> (a -> a) -> IO ()-v $~ f = do-   x <- get v-   v $= f x---- | A variant of '$=' which is strict in the value to be set.-($=!) :: HasSetter s => s a -> a -> IO ()-v $=! x = x `seq` v $= x---- | A variant of '$~' which is strict in the transformed value.-($~!) :: (HasGetter v, HasSetter v) => v a -> (a -> a) -> IO ()-v $~! f = do-   x <- get v-   v $=! f x
src/Graphics/Rendering/OpenGL/GL/StringQueries.hs view
@@ -20,10 +20,10 @@  import Data.Bits import Data.Char+import Data.StateVar import Foreign.C.String import Foreign.Ptr import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/SyncObjects.hs view
@@ -25,13 +25,15 @@    SyncStatus(..), syncStatus ) where -import Foreign.Marshal.Utils-import Foreign.Ptr+import Control.Monad.IO.Class+import Data.ObjectName+import Data.StateVar+import Foreign.Marshal.Utils ( with )+import Foreign.Ptr ( nullPtr )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------@@ -40,8 +42,11 @@    deriving ( Eq, Ord, Show )  instance ObjectName SyncObject where-   isObjectName = fmap unmarshalGLboolean . glIsSync . syncID-   deleteObjectName = glDeleteSync . syncID+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsSync . syncID+   deleteObjectName = liftIO . glDeleteSync . syncID++instance CanBeLabeled SyncObject where+   objectLabel = objectPtrLabel . syncID  syncGpuCommandsComplete :: IO SyncObject syncGpuCommandsComplete =
src/Graphics/Rendering/OpenGL/GL/Texturing/Application.hs view
@@ -17,7 +17,7 @@    texture ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget 
src/Graphics/Rendering/OpenGL/GL/Texturing/Environments.hs view
@@ -22,13 +22,13 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Foreign.Ptr import Foreign.Storable import Graphics.Rendering.OpenGL.GL.BlendingFactor import Graphics.Rendering.OpenGL.GL.PeekPoke-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.Parameters import Graphics.Rendering.OpenGL.GL.Texturing.TextureUnit import Graphics.Rendering.OpenGL.GL.VertexSpec@@ -320,7 +320,8 @@  arg :: TextureEnvParameter -> TextureEnvParameter -> StateVar Arg arg op src = combineArg (textureEnvOperand op) (textureEnvSrc src)-   where combineArg v w = makeStateVar+   where combineArg :: StateVar BlendingFactor -> StateVar Src -> StateVar Arg+         combineArg v w = makeStateVar                              (liftM2 Arg (get v) (get w))                              (\(Arg x y) -> do v $= x; w $= y) 
src/Graphics/Rendering/OpenGL/GL/Texturing/Objects.hs view
@@ -22,10 +22,10 @@  import Data.List import Data.Maybe (fromMaybe)+import Data.StateVar import Foreign.Marshal.Array import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.TexParameter import Graphics.Rendering.OpenGL.GL.Texturing.TextureObject import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget
src/Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs view
@@ -24,11 +24,11 @@ ) where  import Control.Monad+import Data.StateVar import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.ComparisonFunction import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.Filter import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.Texturing.Specification
src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs view
@@ -20,11 +20,11 @@ ) where  import Control.Monad+import Data.StateVar import Foreign.Marshal.Utils import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.PixelRectangles-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.Texturing.Specification import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget
src/Graphics/Rendering/OpenGL/GL/Texturing/Specification.hs view
@@ -73,13 +73,13 @@ ) where  import Foreign.Ptr+import Data.StateVar import Graphics.Rendering.OpenGL.GL.CoordTrans import Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTarget import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.PixelData import Graphics.Rendering.OpenGL.GL.PixelRectangles import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormat import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/Texturing/TexParameter.hs view
@@ -17,12 +17,12 @@    TexParameter(..), texParami, texParamf, texParamC4f, getTexParameteri ) where +import Data.StateVar import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Foreign.Ptr import Foreign.Storable import Graphics.Rendering.OpenGL.GL.PeekPoke-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.Raw
src/Graphics/Rendering/OpenGL/GL/Texturing/TextureObject.hs view
@@ -17,9 +17,12 @@    TextureObject(..) ) where -import Foreign.Marshal.Array+import Control.Monad.IO.Class+import Data.ObjectName+import Foreign.Marshal.Array ( allocaArray, peekArray, withArrayLen )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName+import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------@@ -30,14 +33,17 @@ --------------------------------------------------------------------------------  instance ObjectName TextureObject where-   isObjectName = fmap unmarshalGLboolean . glIsTexture . textureID+   isObjectName = liftIO . fmap unmarshalGLboolean . glIsTexture . textureID     deleteObjectNames textureObjects =-      withArrayLen (map textureID textureObjects) $+      liftIO . withArrayLen (map textureID textureObjects) $          glDeleteTextures . fromIntegral  instance GeneratableObjectName TextureObject where    genObjectNames n =-      allocaArray n $ \buf -> do+      liftIO . allocaArray n $ \buf -> do         glGenTextures (fromIntegral n) buf         fmap (map TextureObject) $ peekArray n buf++instance CanBeLabeled TextureObject where+   objectLabel = objectNameLabel gl_TEXTURE . textureID
src/Graphics/Rendering/OpenGL/GL/TransformFeedback.hs view
@@ -29,6 +29,7 @@    maxTransformFeedbackSeparateComponents ) where +import Data.StateVar import Foreign.Marshal.Array import Graphics.Rendering.OpenGL.GL.ByteString import Graphics.Rendering.OpenGL.GL.DataType@@ -37,7 +38,6 @@ import Graphics.Rendering.OpenGL.GL.QueryUtils import Graphics.Rendering.OpenGL.GL.Shaders.Program import Graphics.Rendering.OpenGL.GL.Shaders.Variables-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GL/VertexArrayObjects.hs view
@@ -15,12 +15,13 @@    bindVertexArrayObject ) where -import Foreign.Marshal.Array-+import Control.Monad.IO.Class+import Data.ObjectName+import Data.StateVar+import Foreign.Marshal.Array ( allocaArray, peekArray, withArrayLen )+import Graphics.Rendering.OpenGL.GL.DebugOutput import Graphics.Rendering.OpenGL.GL.GLboolean-import Graphics.Rendering.OpenGL.GL.ObjectName import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  -----------------------------------------------------------------------------@@ -29,16 +30,20 @@    deriving( Eq, Ord, Show )  instance ObjectName VertexArrayObject where-   isObjectName =  fmap unmarshalGLboolean . glIsVertexArray . vertexArrayID+   isObjectName =+     liftIO . fmap unmarshalGLboolean . glIsVertexArray . vertexArrayID     deleteObjectNames bufferObjects =-      withArrayLen (map vertexArrayID bufferObjects) $+      liftIO . withArrayLen (map vertexArrayID bufferObjects) $          glDeleteVertexArrays . fromIntegral  instance GeneratableObjectName VertexArrayObject where-   genObjectNames n = allocaArray n $ \buf -> do+   genObjectNames n = liftIO . allocaArray n $ \buf -> do       glGenVertexArrays (fromIntegral n) buf       fmap (map VertexArrayObject) $ peekArray n buf++instance CanBeLabeled VertexArrayObject where+   objectLabel = objectNameLabel gl_VERTEX_ARRAY . vertexArrayID  bindVertexArrayObject :: StateVar (Maybe VertexArrayObject) bindVertexArrayObject = makeStateVar getVAO bindVAO
src/Graphics/Rendering/OpenGL/GL/VertexArrays.hs view
@@ -35,6 +35,7 @@    vertexAttribPointer, vertexAttribArray, ) where +import Data.StateVar import Foreign.Ptr ( Ptr, nullPtr ) import Graphics.Rendering.OpenGL.GL.Capability import Graphics.Rendering.OpenGL.GL.DataType@@ -42,7 +43,6 @@ import Graphics.Rendering.OpenGL.GL.PrimitiveMode import Graphics.Rendering.OpenGL.GL.PrimitiveModeInternal import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Texturing.TextureUnit import Graphics.Rendering.OpenGL.GL.VertexSpec import Graphics.Rendering.OpenGL.GLU.ErrorsInternal
src/Graphics/Rendering/OpenGL/GL/VertexSpec.hs view
@@ -58,13 +58,13 @@    TextureUnit(..), maxTextureUnit ) where +import Data.StateVar import Foreign.Marshal.Array import Foreign.Ptr import Foreign.Storable import Graphics.Rendering.OpenGL.GL.GLboolean import Graphics.Rendering.OpenGL.GL.PeekPoke import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.GL.Tensor import Graphics.Rendering.OpenGL.GL.Texturing.TextureUnit import Graphics.Rendering.OpenGL.GL.VertexAttributes
src/Graphics/Rendering/OpenGL/GLU/Errors.hs view
@@ -18,7 +18,7 @@    Error(..), ErrorCategory(..), errors ) where -import Graphics.Rendering.OpenGL.GL.StateVar+import Data.StateVar import Graphics.Rendering.OpenGL.GLU.ErrorsInternal  --------------------------------------------------------------------------------
src/Graphics/Rendering/OpenGL/GLU/Initialization.hs view
@@ -16,11 +16,11 @@    gluVersion, gluExtensions ) where +import Data.StateVar import Foreign.C.String import Foreign.Ptr import Graphics.Rendering.GLU.Raw import Graphics.Rendering.OpenGL.GL.QueryUtils-import Graphics.Rendering.OpenGL.GL.StateVar import Graphics.Rendering.OpenGL.Raw  --------------------------------------------------------------------------------