{-# OPTIONS_HADDOCK hide #-}
module Brillo.Internals.Interface.Debug (
dumpFramebufferState,
dumpFragmentState,
)
where
import Graphics.Rendering.OpenGL (get)
import Graphics.Rendering.OpenGL.GL qualified as GL
dumpFramebufferState :: IO ()
dumpFramebufferState :: IO ()
dumpFramebufferState =
do
GLsizei
auxBuffers <- GettableStateVar GLsizei -> GettableStateVar GLsizei
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
GettableStateVar GLsizei -> m GLsizei
get GettableStateVar GLsizei
GL.auxBuffers
Bool
doubleBuffer <- GettableStateVar Bool -> GettableStateVar Bool
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *). MonadIO m => GettableStateVar Bool -> m Bool
get GettableStateVar Bool
GL.doubleBuffer
BufferMode
drawBuffer <- StateVar BufferMode -> IO BufferMode
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar BufferMode -> m BufferMode
get StateVar BufferMode
GL.drawBuffer
Color4 GLsizei
rgbaBits <- GettableStateVar (Color4 GLsizei)
-> GettableStateVar (Color4 GLsizei)
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
GettableStateVar (Color4 GLsizei) -> m (Color4 GLsizei)
get GettableStateVar (Color4 GLsizei)
GL.rgbaBits
GLsizei
stencilBits <- GettableStateVar GLsizei -> GettableStateVar GLsizei
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
GettableStateVar GLsizei -> m GLsizei
get GettableStateVar GLsizei
GL.stencilBits
GLsizei
depthBits <- GettableStateVar GLsizei -> GettableStateVar GLsizei
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
GettableStateVar GLsizei -> m GLsizei
get GettableStateVar GLsizei
GL.depthBits
Color4 GLsizei
accumBits <- GettableStateVar (Color4 GLsizei)
-> GettableStateVar (Color4 GLsizei)
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
GettableStateVar (Color4 GLsizei) -> m (Color4 GLsizei)
get GettableStateVar (Color4 GLsizei)
GL.accumBits
Color4 GLfloat
clearColor <- StateVar (Color4 GLfloat) -> IO (Color4 GLfloat)
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar (Color4 GLfloat) -> m (Color4 GLfloat)
get StateVar (Color4 GLfloat)
GL.clearColor
GLsizei
clearStencil <- StateVar GLsizei -> GettableStateVar GLsizei
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *). MonadIO m => StateVar GLsizei -> m GLsizei
get StateVar GLsizei
GL.clearStencil
GLdouble
clearDepth <- StateVar GLdouble -> IO GLdouble
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *). MonadIO m => StateVar GLdouble -> m GLdouble
get StateVar GLdouble
GL.clearDepth
Color4 GLfloat
clearAccum <- StateVar (Color4 GLfloat) -> IO (Color4 GLfloat)
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar (Color4 GLfloat) -> m (Color4 GLfloat)
get StateVar (Color4 GLfloat)
GL.clearAccum
Color4 Capability
colorMask <- StateVar (Color4 Capability) -> IO (Color4 Capability)
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar (Color4 Capability) -> m (Color4 Capability)
get StateVar (Color4 Capability)
GL.colorMask
GLuint
stencilMask <- StateVar GLuint -> IO GLuint
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *). MonadIO m => StateVar GLuint -> m GLuint
get StateVar GLuint
GL.stencilMask
Capability
depthMask <- StateVar Capability -> IO Capability
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar Capability -> m Capability
get StateVar Capability
GL.depthMask
String -> IO ()
putStr (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$
String
"* dumpFramebufferState\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" auxBuffers = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ GLsizei -> String
forall a. Show a => a -> String
show GLsizei
auxBuffers
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" doubleBuffer = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Bool -> String
forall a. Show a => a -> String
show Bool
doubleBuffer
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" drawBuffer = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ BufferMode -> String
forall a. Show a => a -> String
show BufferMode
drawBuffer
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" bits rgba = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Color4 GLsizei -> String
forall a. Show a => a -> String
show Color4 GLsizei
rgbaBits
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" stencil = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ GLsizei -> String
forall a. Show a => a -> String
show GLsizei
stencilBits
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" depth = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ GLsizei -> String
forall a. Show a => a -> String
show GLsizei
depthBits
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" accum = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Color4 GLsizei -> String
forall a. Show a => a -> String
show Color4 GLsizei
accumBits
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" clear color = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Color4 GLfloat -> String
forall a. Show a => a -> String
show Color4 GLfloat
clearColor
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" stencil = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ GLsizei -> String
forall a. Show a => a -> String
show GLsizei
clearStencil
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" depth = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ GLdouble -> String
forall a. Show a => a -> String
show GLdouble
clearDepth
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" accum = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Color4 GLfloat -> String
forall a. Show a => a -> String
show Color4 GLfloat
clearAccum
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" mask color = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Color4 Capability -> String
forall a. Show a => a -> String
show Color4 Capability
colorMask
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" stencil = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ GLuint -> String
forall a. Show a => a -> String
show GLuint
stencilMask
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" depth = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Capability -> String
forall a. Show a => a -> String
show Capability
depthMask
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
dumpFragmentState :: IO ()
dumpFragmentState :: IO ()
dumpFragmentState =
do
Capability
blend <- StateVar Capability -> IO Capability
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar Capability -> m Capability
get StateVar Capability
GL.blend
BlendEquation
blendEquation <- StateVar BlendEquation -> IO BlendEquation
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar BlendEquation -> m BlendEquation
get StateVar BlendEquation
GL.blendEquation
(BlendingFactor, BlendingFactor)
blendFunc <- StateVar (BlendingFactor, BlendingFactor)
-> IO (BlendingFactor, BlendingFactor)
forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
forall (m :: * -> *).
MonadIO m =>
StateVar (BlendingFactor, BlendingFactor)
-> m (BlendingFactor, BlendingFactor)
get StateVar (BlendingFactor, BlendingFactor)
GL.blendFunc
String -> IO ()
putStr (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$
String
"* dumpFragmentState\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" blend = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ Capability -> String
forall a. Show a => a -> String
show Capability
blend
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" blend equation = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ BlendEquation -> String
forall a. Show a => a -> String
show BlendEquation
blendEquation
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" blend func = "
String -> String -> String
forall a. [a] -> [a] -> [a]
++ (BlendingFactor, BlendingFactor) -> String
forall a. Show a => a -> String
show (BlendingFactor, BlendingFactor)
blendFunc
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"
String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\n"