OpenGL-3.0.3.0: A binding for the OpenGL graphics system
Copyright(c) Sven Panne 2002-2019
LicenseBSD3
MaintainerSven Panne <svenpanne@gmail.com>
Stabilitystable
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Graphics.Rendering.OpenGL.GL

Description

A Haskell binding for OpenGL, the industry's most widely used and supported 2D and 3D graphics API.

Synopsis

OpenGL Fundamentals

type GLboolean = Word8 #

type GLenum = Word32 #

type GLDEBUGPROCFunc = GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO () #

type GLbitfield = Word32 #

type GLbyte = Int8 #

type GLchar = CChar #

type GLclampd = Double #

type GLclampf = Float #

type GLdouble = Double #

type GLeglImageOES = Ptr () #

type GLfloat = Float #

type GLhalf = Half #

type GLhalfARB = Half #

type GLint = Int32 #

type GLint64 = Int64 #

type GLintptr = CPtrdiff #

type GLshort = Int16 #

type GLsizei = Int32 #

type GLsizeiptr = CPtrdiff #

type GLsync = Ptr () #

type GLubyte = Word8 #

type GLuint = Word32 #

type GLuint64 = Word64 #

type GLushort = Word16 #

type GLvoid = () #

type GLDEBUGPROCAMDFunc = GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO () #

type GLVULKANPROCNVFunc = IO () #

type GLcharARB = CChar #

type GLclampx = Fixed #

type GLeglClientBufferEXT = Ptr () #

type GLfixed = Fixed #

type GLhalfNV = Half #

type GLhandleARB = Word32 #

type GLint64EXT = Int64 #

type GLintptrARB = CPtrdiff #

type GLsizeiptrARB = CPtrdiff #

type GLuint64EXT = Word64 #

class ObjectName a where #

Minimal complete definition

isObjectName, (deleteObjectName | deleteObjectNames)

Methods

isObjectName :: MonadIO m => a -> m Bool #

deleteObjectName :: MonadIO m => a -> m () #

deleteObjectNames :: MonadIO m => [a] -> m () #

Instances

Instances details
ObjectName BufferObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.BufferObjects

Methods

isObjectName :: MonadIO m => BufferObject -> m Bool #

deleteObjectName :: MonadIO m => BufferObject -> m () #

deleteObjectNames :: MonadIO m => [BufferObject] -> m () #

ObjectName DisplayList Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.DisplayLists

Methods

isObjectName :: MonadIO m => DisplayList -> m Bool #

deleteObjectName :: MonadIO m => DisplayList -> m () #

deleteObjectNames :: MonadIO m => [DisplayList] -> m () #

ObjectName FramebufferObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObject

Methods

isObjectName :: MonadIO m => FramebufferObject -> m Bool #

deleteObjectName :: MonadIO m => FramebufferObject -> m () #

deleteObjectNames :: MonadIO m => [FramebufferObject] -> m () #

ObjectName RenderbufferObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObject

Methods

isObjectName :: MonadIO m => RenderbufferObject -> m Bool #

deleteObjectName :: MonadIO m => RenderbufferObject -> m () #

deleteObjectNames :: MonadIO m => [RenderbufferObject] -> m () #

ObjectName QueryObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.QueryObject

Methods

isObjectName :: MonadIO m => QueryObject -> m Bool #

deleteObjectName :: MonadIO m => QueryObject -> m () #

deleteObjectNames :: MonadIO m => [QueryObject] -> m () #

ObjectName Program Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.Shaders.Program

Methods

isObjectName :: MonadIO m => Program -> m Bool #

deleteObjectName :: MonadIO m => Program -> m () #

deleteObjectNames :: MonadIO m => [Program] -> m () #

ObjectName Shader Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.Shaders.Shader

Methods

isObjectName :: MonadIO m => Shader -> m Bool #

deleteObjectName :: MonadIO m => Shader -> m () #

deleteObjectNames :: MonadIO m => [Shader] -> m () #

ObjectName SyncObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.SyncObjects

Methods

isObjectName :: MonadIO m => SyncObject -> m Bool #

deleteObjectName :: MonadIO m => SyncObject -> m () #

deleteObjectNames :: MonadIO m => [SyncObject] -> m () #

ObjectName TextureObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.Texturing.TextureObject

Methods

isObjectName :: MonadIO m => TextureObject -> m Bool #

deleteObjectName :: MonadIO m => TextureObject -> m () #

deleteObjectNames :: MonadIO m => [TextureObject] -> m () #

ObjectName VertexArrayObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.VertexArrayObjects

Methods

isObjectName :: MonadIO m => VertexArrayObject -> m Bool #

deleteObjectName :: MonadIO m => VertexArrayObject -> m () #

deleteObjectNames :: MonadIO m => [VertexArrayObject] -> m () #

class ObjectName a => GeneratableObjectName a where #

Minimal complete definition

genObjectName | genObjectNames

Methods

genObjectName :: MonadIO m => m a #

genObjectNames :: MonadIO m => Int -> m [a] #

Instances

Instances details
GeneratableObjectName BufferObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.BufferObjects

Methods

genObjectName :: MonadIO m => m BufferObject #

genObjectNames :: MonadIO m => Int -> m [BufferObject] #

GeneratableObjectName DisplayList Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.DisplayLists

Methods

genObjectName :: MonadIO m => m DisplayList #

genObjectNames :: MonadIO m => Int -> m [DisplayList] #

GeneratableObjectName FramebufferObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObject

Methods

genObjectName :: MonadIO m => m FramebufferObject #

genObjectNames :: MonadIO m => Int -> m [FramebufferObject] #

GeneratableObjectName RenderbufferObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObject

Methods

genObjectName :: MonadIO m => m RenderbufferObject #

genObjectNames :: MonadIO m => Int -> m [RenderbufferObject] #

GeneratableObjectName QueryObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.QueryObject

Methods

genObjectName :: MonadIO m => m QueryObject #

genObjectNames :: MonadIO m => Int -> m [QueryObject] #

GeneratableObjectName TextureObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.Texturing.TextureObject

Methods

genObjectName :: MonadIO m => m TextureObject #

genObjectNames :: MonadIO m => Int -> m [TextureObject] #

GeneratableObjectName VertexArrayObject Source # 
Instance details

Defined in Graphics.Rendering.OpenGL.GL.VertexArrayObjects

Methods

genObjectName :: MonadIO m => m VertexArrayObject #

genObjectNames :: MonadIO m => Int -> m [VertexArrayObject] #

Event Model

Vertex Specification and Drawing Commands

OpenGL Operation

Rasterization

Per-Fragment Operations and the Framebuffer

Special Functions

State and State Requests

data StateVar a #

Constructors

StateVar (IO a) (a -> IO ()) 

Instances

Instances details
HasGetter (StateVar a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => StateVar a -> m a #

HasSetter (StateVar a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => StateVar a -> a -> m () #

HasUpdate (StateVar a) a a 
Instance details

Defined in Data.StateVar

Methods

($~) :: MonadIO m => StateVar a -> (a -> a) -> m () #

($~!) :: MonadIO m => StateVar a -> (a -> a) -> m () #

class HasGetter t a | t -> a where #

Methods

get :: MonadIO m => t -> m a #

Instances

Instances details
HasGetter (StateVar a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => StateVar a -> m a #

HasGetter (STM a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => STM a -> m a #

HasGetter (TVar a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => TVar a -> m a #

Storable a => HasGetter (ForeignPtr a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => ForeignPtr a -> m a #

HasGetter (IORef a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => IORef a -> m a #

Storable a => HasGetter (Ptr a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => Ptr a -> m a #

HasGetter (IO a) a 
Instance details

Defined in Data.StateVar

Methods

get :: MonadIO m => IO a -> m a #

class HasSetter t a | t -> a where #

Methods

($=) :: MonadIO m => t -> a -> m () #

Instances

Instances details
HasSetter (SettableStateVar a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => SettableStateVar a -> a -> m () #

HasSetter (StateVar a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => StateVar a -> a -> m () #

HasSetter (TVar a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => TVar a -> a -> m () #

Storable a => HasSetter (ForeignPtr a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => ForeignPtr a -> a -> m () #

HasSetter (IORef a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => IORef a -> a -> m () #

Storable a => HasSetter (Ptr a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => Ptr a -> a -> m () #

($=!) :: (HasSetter t a, MonadIO m) => t -> a -> m () #

class HasSetter t b => HasUpdate t a b | t -> a b where #

Minimal complete definition

Nothing

Methods

($~) :: MonadIO m => t -> (a -> b) -> m () #

($~!) :: MonadIO m => t -> (a -> b) -> m () #

Instances

Instances details
HasUpdate (StateVar a) a a 
Instance details

Defined in Data.StateVar

Methods

($~) :: MonadIO m => StateVar a -> (a -> a) -> m () #

($~!) :: MonadIO m => StateVar a -> (a -> a) -> m () #

HasUpdate (TVar a) a a 
Instance details

Defined in Data.StateVar

Methods

($~) :: MonadIO m => TVar a -> (a -> a) -> m () #

($~!) :: MonadIO m => TVar a -> (a -> a) -> m () #

Storable a => HasUpdate (ForeignPtr a) a a 
Instance details

Defined in Data.StateVar

Methods

($~) :: MonadIO m => ForeignPtr a -> (a -> a) -> m () #

($~!) :: MonadIO m => ForeignPtr a -> (a -> a) -> m () #

HasUpdate (IORef a) a a 
Instance details

Defined in Data.StateVar

Methods

($~) :: MonadIO m => IORef a -> (a -> a) -> m () #

($~!) :: MonadIO m => IORef a -> (a -> a) -> m () #

Storable a => HasUpdate (Ptr a) a a 
Instance details

Defined in Data.StateVar

Methods

($~) :: MonadIO m => Ptr a -> (a -> a) -> m () #

($~!) :: MonadIO m => Ptr a -> (a -> a) -> m () #

newtype SettableStateVar a #

Constructors

SettableStateVar (a -> IO ()) 

Instances

Instances details
Contravariant SettableStateVar 
Instance details

Defined in Data.StateVar

HasSetter (SettableStateVar a) a 
Instance details

Defined in Data.StateVar

Methods

($=) :: MonadIO m => SettableStateVar a -> a -> m () #

makeStateVar :: IO a -> (a -> IO ()) -> StateVar a #

mapStateVar :: (b -> a) -> (a -> b) -> StateVar a -> StateVar b #