OpenGL 2.13.1.1 → 2.13.2.0
raw patch · 3 files changed
+32/−1 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Graphics.Rendering.OpenGL.GL.Shaders.Uniform: instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.Rendering.OpenGL.Raw.Types.GLdouble
+ Graphics.Rendering.OpenGL.GL.Shaders.Uniform: instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.Rendering.OpenGL.Raw.Types.GLfloat
+ Graphics.Rendering.OpenGL.GL.Shaders.Uniform: instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.Rendering.OpenGL.Raw.Types.GLint
+ Graphics.Rendering.OpenGL.GL.Shaders.Uniform: instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.Rendering.OpenGL.Raw.Types.GLuint
Files
- CHANGELOG.md +4/−0
- OpenGL.cabal +1/−1
- src/Graphics/Rendering/OpenGL/GL/Shaders/Uniform.hs +27/−0
CHANGELOG.md view
@@ -1,3 +1,7 @@+2.13.2.0+--------+* Implement Uniform instances for `GLint`, `GLuint`, `GLfloat`, and `GLdouble`.+ 2.13.1.1 -------- * Aftermath for the `glClearNamedFramebufferfi` chaos in the OpenGL registry,
OpenGL.cabal view
@@ -1,5 +1,5 @@ name: OpenGL-version: 2.13.1.1+version: 2.13.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
src/Graphics/Rendering/OpenGL/GL/Shaders/Uniform.hs view
@@ -157,6 +157,33 @@ getUniform program location buf peek buf +getSimpleUniform :: Storable a => Program -> UniformLocation -> Ptr a -> IO ()+getSimpleUniform (Program p) (UniformLocation ul) = glGetUniformfv p ul . castPtr++makeSimpleUniformVar :: (UniformComponent a)+ => UniformLocation -> StateVar a+makeSimpleUniformVar location = makeStateVar getter (uniform1 location)+ where getter = do program <- fmap fromJust $ get currentProgram+ allocaBytes maxUniformBufferSize $ \buf -> do+ getSimpleUniform program location buf+ peek buf++instance Uniform GLfloat where+ uniform = makeSimpleUniformVar+ uniformv = uniform1v++instance Uniform GLint where+ uniform = makeSimpleUniformVar+ uniformv = uniform1v++instance Uniform GLuint where+ uniform = makeSimpleUniformVar+ uniformv = uniform1v++instance Uniform GLdouble where+ uniform = makeSimpleUniformVar+ uniformv = uniform1v+ instance UniformComponent a => Uniform (Vertex2 a) where uniform = makeUniformVar $ \location (Vertex2 x y) -> uniform2 location x y uniformv location count = uniform2v location count . (castPtr :: Ptr (Vertex2 b) -> Ptr b)