Graphics.Rendering.OpenGL.GL.DebugOutput

OpenGL-2.13.1.0: A binding for the OpenGL graphics system

Copyright | (c) Sven Panne 2015
License | BSD3
Maintainer | Sven Panne <svenpanne@gmail.com>
Stability | stable
Portability | portable
Safe Haskell | None
Language | Haskell2010

Graphics.Rendering.OpenGL.GL.DebugOutput

Contents

- Debug Messages
- Debug Message Callback
- Debug Message Log
- Controlling Debug Messages
- Externally Generated Messages
- Debug Groups
- Debug Labels
- Asynchronous and Synchronous Debug Output

Description

This module corresponds to section 20 (Debug Output) of the OpenGL 4.5 specs.

Synopsis

- debugOutput :: StateVar Capability
- data DebugMessage = DebugMessage DebugSource DebugType DebugMessageID DebugSeverity String
- data DebugSource
  - = DebugSourceAPI
  - | DebugSourceShaderCompiler
  - | DebugSourceWindowSystem
  - | DebugSourceThirdParty
  - | DebugSourceApplication
  - | DebugSourceOther
- data DebugType
  - = DebugTypeError
  - | DebugTypeDeprecatedBehavior
  - | DebugTypeUndefinedBehavior
  - | DebugTypePerformance
  - | DebugTypePortability
  - | DebugTypeMarker
  - | DebugTypePushGroup
  - | DebugTypePopGroup
  - | DebugTypeOther
- newtype DebugMessageID = DebugMessageID GLuint
- data DebugSeverity
  - = DebugSeverityHigh
  - | DebugSeverityMedium
  - | DebugSeverityLow
  - | DebugSeverityNotification
- maxDebugMessageLength :: GettableStateVar GLsizei
- debugMessageCallback :: StateVar (Maybe (DebugMessage -> IO ()))
- maxDebugLoggedMessages :: GettableStateVar GLsizei
- debugLoggedMessages :: IO [DebugMessage]
- data MessageGroup
  - = MessageGroup (Maybe DebugSource) (Maybe DebugType) (Maybe DebugSeverity)
  - | MessageGroupWithIDs DebugSource DebugType [DebugMessageID]
- debugMessageControl :: MessageGroup -> SettableStateVar Capability
- debugMessageInsert :: DebugMessage -> IO ()
- data DebugGroup = DebugGroup DebugSource DebugMessageID String
- pushDebugGroup :: DebugSource -> DebugMessageID -> String -> IO ()
- popDebugGroup :: IO ()
- withDebugGroup :: DebugSource -> DebugMessageID -> String -> IO a -> IO a
- maxDebugGroupStackDepth :: GettableStateVar GLsizei
- class CanBeLabeled a where
  - objectLabel :: a -> StateVar (Maybe String)
- maxLabelLength :: GettableStateVar GLsizei
- debugOutputSynchronous :: StateVar Capability

# Debug Messages

debugOutput :: StateVar Capability

data DebugMessage

Constructors

DebugMessage DebugSource DebugType DebugMessageID DebugSeverity String |

Instances

Eq DebugMessage |
Ord DebugMessage |
Show DebugMessage |

data DebugSource

Constructors

DebugSourceAPI |
DebugSourceShaderCompiler |
DebugSourceWindowSystem |
DebugSourceThirdParty |
DebugSourceApplication |
DebugSourceOther |

Instances

Eq DebugSource |
Ord DebugSource |
Show DebugSource |

data DebugType

Constructors

DebugTypeError |
DebugTypeDeprecatedBehavior |
DebugTypeUndefinedBehavior |
DebugTypePerformance |
DebugTypePortability |
DebugTypeMarker |
DebugTypePushGroup |
DebugTypePopGroup |
DebugTypeOther |

Instances

Eq DebugType |
Ord DebugType |
Show DebugType |

newtype DebugMessageID

Constructors

DebugMessageID GLuint |

Instances

Eq DebugMessageID |
Ord DebugMessageID |
Show DebugMessageID |

data DebugSeverity

Constructors

DebugSeverityHigh |
DebugSeverityMedium |
DebugSeverityLow |
DebugSeverityNotification |

Instances

Eq DebugSeverity |
Ord DebugSeverity |
Show DebugSeverity |

maxDebugMessageLength :: GettableStateVar GLsizei

# Debug Message Callback

debugMessageCallback :: StateVar (Maybe (DebugMessage -> IO ()))

# Debug Message Log

maxDebugLoggedMessages :: GettableStateVar GLsizei

debugLoggedMessages :: IO [DebugMessage]

# Controlling Debug Messages

data MessageGroup

Constructors

MessageGroup (Maybe DebugSource) (Maybe DebugType) (Maybe DebugSeverity) |
MessageGroupWithIDs DebugSource DebugType [DebugMessageID] |

Instances

Eq MessageGroup |
Ord MessageGroup |
Show MessageGroup |

debugMessageControl :: MessageGroup -> SettableStateVar Capability

# Externally Generated Messages

debugMessageInsert :: DebugMessage -> IO ()

# Debug Groups

data DebugGroup

Constructors

DebugGroup DebugSource DebugMessageID String |

pushDebugGroup :: DebugSource -> DebugMessageID -> String -> IO ()

popDebugGroup :: IO ()

withDebugGroup :: DebugSource -> DebugMessageID -> String -> IO a -> IO a

maxDebugGroupStackDepth :: GettableStateVar GLsizei

# Debug Labels

class CanBeLabeled a where

Methods

objectLabel :: a -> StateVar (Maybe String)

Instances

CanBeLabeled QueryObject |
CanBeLabeled FramebufferObject |
CanBeLabeled RenderbufferObject |
CanBeLabeled TextureObject |
CanBeLabeled Program |
CanBeLabeled Shader |
CanBeLabeled DisplayList |
CanBeLabeled VertexArrayObject |
CanBeLabeled BufferObject |
CanBeLabeled SyncObject |

maxLabelLength :: GettableStateVar GLsizei

# Asynchronous and Synchronous Debug Output

debugOutputSynchronous :: StateVar Capability