{-# LINE 2 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
module Graphics.UI.Gtk.Misc.GLArea (
GLArea,
GLAreaClass,
castToGLArea, gTypeGLArea,
toGLArea,
glAreaNew,
glAreaGetContext,
glAreaMakeCurrent,
glAreaQueueRender,
glAreaAttachBuffers,
glAreaSetAutoRender,
glAreaGetAutoRender,
glAreaSetHasAlpha,
glAreaGetHasAlpha,
glAreaSetHasDepthBuffer,
glAreaGetHasDepthBuffer,
glAreaSetHasStencilBuffer,
glAreaGetHasStencilBuffer,
glAreaGetRequiredVersion,
glAreaSetRequiredVersion,
glAreaGetError,
glAreaAutoRender,
glAreaContext,
glAreaHasAlpha,
glAreaHasDepthBuffer,
glAreaHasStencilBuffer,
glAreaResize,
glAreaRender
) where
import Control.Monad (liftM)
import Control.Monad.Trans ( liftIO )
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import System.Glib.GError
import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
import Graphics.UI.Gtk.Gdk.GLContext
import Graphics.UI.Gtk.Types
{-# LINE 120 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
import Graphics.UI.Gtk.Signals
{-# LINE 121 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
{-# LINE 123 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
glAreaNew :: IO GLArea
glAreaNew =
makeNewObject mkGLArea $
liftM (castPtr :: Ptr Widget -> Ptr GLArea) $
gtk_gl_area_new
{-# LINE 135 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
glAreaGetContext :: GLAreaClass self => self
-> IO (Maybe GLContext)
glAreaGetContext self = do
maybeNull (wrapNewGObject mkGLContext) $
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_context argPtr1) (toGLArea self)
glAreaMakeCurrent :: GLAreaClass self => self -> IO ()
glAreaMakeCurrent self =
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_make_current argPtr1) (toGLArea self)
glAreaQueueRender :: GLAreaClass self => self -> IO ()
glAreaQueueRender self =
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_queue_render argPtr1) (toGLArea self)
glAreaAttachBuffers :: GLAreaClass self => self -> IO ()
glAreaAttachBuffers self =
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_attach_buffers argPtr1) (toGLArea self)
glAreaGetError :: GLAreaClass self => self -> IO (Maybe GError)
glAreaGetError self = do
err <- (\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_error argPtr1) (toGLArea self)
if err == nullPtr
then return Nothing
else liftM Just (peek $ castPtr err)
glAreaSetHasAlpha :: GLAreaClass self => self -> Bool -> IO ()
glAreaSetHasAlpha self hasAlpha =
(\(GLArea arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_set_has_alpha argPtr1 arg2)
{-# LINE 205 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
(toGLArea self)
(fromBool hasAlpha)
glAreaGetHasAlpha :: GLAreaClass self => self -> IO Bool
glAreaGetHasAlpha self =
liftM toBool $
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_has_alpha argPtr1) (toGLArea self)
glAreaSetHasDepthBuffer :: GLAreaClass self => self -> Bool -> IO ()
glAreaSetHasDepthBuffer self hasDepthBuffer =
(\(GLArea arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_set_has_depth_buffer argPtr1 arg2)
{-# LINE 223 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
(toGLArea self)
(fromBool hasDepthBuffer)
glAreaGetHasDepthBuffer :: GLAreaClass self => self -> IO Bool
glAreaGetHasDepthBuffer self =
liftM toBool $
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_has_depth_buffer argPtr1) (toGLArea self)
glAreaSetHasStencilBuffer :: GLAreaClass self => self -> Bool -> IO ()
glAreaSetHasStencilBuffer self hasStencilBuffer =
(\(GLArea arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_set_has_stencil_buffer argPtr1 arg2)
{-# LINE 241 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
(toGLArea self)
(fromBool hasStencilBuffer)
glAreaGetHasStencilBuffer :: GLAreaClass self => self -> IO Bool
glAreaGetHasStencilBuffer self =
liftM toBool $
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_has_stencil_buffer argPtr1) (toGLArea self)
glAreaSetAutoRender :: GLAreaClass self => self -> Bool -> IO ()
glAreaSetAutoRender self autoRender =
(\(GLArea arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_set_auto_render argPtr1 arg2)
{-# LINE 264 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
(toGLArea self)
(fromBool autoRender)
glAreaGetAutoRender :: GLAreaClass self => self -> IO Bool
glAreaGetAutoRender self =
liftM toBool $
(\(GLArea arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_auto_render argPtr1)
{-# LINE 273 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
(toGLArea self)
glAreaGetRequiredVersion :: GLAreaClass self => self -> IO (Int, Int)
glAreaGetRequiredVersion self = do
alloca $ \majorPtr -> alloca $ \minorPtr -> do
(\(GLArea arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_get_required_version argPtr1 arg2 arg3) (toGLArea self) majorPtr minorPtr
major <- peek majorPtr
minor <- peek minorPtr
return (fromIntegral major, fromIntegral minor)
glAreaSetRequiredVersion :: GLAreaClass self => self -> Int -> Int -> IO ()
glAreaSetRequiredVersion self major minor =
(\(GLArea arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_gl_area_set_required_version argPtr1 arg2 arg3)
{-# LINE 294 "./Graphics/UI/Gtk/Misc/GLArea.chs" #-}
(toGLArea self) (fromIntegral major) (fromIntegral minor)
glAreaAutoRender :: GLAreaClass self => Attr self Bool
glAreaAutoRender = newAttr
glAreaGetAutoRender
glAreaSetAutoRender
glAreaContext :: GLAreaClass self => ReadAttr self (Maybe GLContext)
glAreaContext = readAttr glAreaGetContext
glAreaHasAlpha :: GLAreaClass self => Attr self Bool
glAreaHasAlpha = newAttr
glAreaGetHasAlpha
glAreaSetHasAlpha
glAreaHasDepthBuffer :: GLAreaClass self => Attr self Bool
glAreaHasDepthBuffer = newAttr
glAreaGetHasDepthBuffer
glAreaSetHasDepthBuffer
glAreaHasStencilBuffer :: GLAreaClass self => Attr self Bool
glAreaHasStencilBuffer = newAttr
glAreaGetHasStencilBuffer
glAreaSetHasStencilBuffer
glAreaResize :: GLAreaClass glac => Signal glac (Int -> Int -> IO ())
glAreaResize = Signal (connect_INT_INT__NONE "resize")
glAreaRender :: GLAreaClass glac => Signal glac (Maybe GLContext -> IO (Bool))
glAreaRender = Signal (connect_BOXED__BOOL "render" unwrapGLContextPtr)
unwrapGLContextPtr :: Ptr GLContext -> IO (Maybe GLContext)
unwrapGLContextPtr ptr = do
maybeNull (makeNewGObject mkGLContext) (return ptr)
foreign import ccall unsafe "gtk_gl_area_new"
gtk_gl_area_new :: (IO (Ptr Widget))
foreign import ccall safe "gtk_gl_area_get_context"
gtk_gl_area_get_context :: ((Ptr GLArea) -> (IO (Ptr GLContext)))
foreign import ccall safe "gtk_gl_area_make_current"
gtk_gl_area_make_current :: ((Ptr GLArea) -> (IO ()))
foreign import ccall safe "gtk_gl_area_queue_render"
gtk_gl_area_queue_render :: ((Ptr GLArea) -> (IO ()))
foreign import ccall safe "gtk_gl_area_attach_buffers"
gtk_gl_area_attach_buffers :: ((Ptr GLArea) -> (IO ()))
foreign import ccall safe "gtk_gl_area_get_error"
gtk_gl_area_get_error :: ((Ptr GLArea) -> (IO (Ptr ())))
foreign import ccall safe "gtk_gl_area_set_has_alpha"
gtk_gl_area_set_has_alpha :: ((Ptr GLArea) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_gl_area_get_has_alpha"
gtk_gl_area_get_has_alpha :: ((Ptr GLArea) -> (IO CInt))
foreign import ccall safe "gtk_gl_area_set_has_depth_buffer"
gtk_gl_area_set_has_depth_buffer :: ((Ptr GLArea) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_gl_area_get_has_depth_buffer"
gtk_gl_area_get_has_depth_buffer :: ((Ptr GLArea) -> (IO CInt))
foreign import ccall safe "gtk_gl_area_set_has_stencil_buffer"
gtk_gl_area_set_has_stencil_buffer :: ((Ptr GLArea) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_gl_area_get_has_stencil_buffer"
gtk_gl_area_get_has_stencil_buffer :: ((Ptr GLArea) -> (IO CInt))
foreign import ccall safe "gtk_gl_area_set_auto_render"
gtk_gl_area_set_auto_render :: ((Ptr GLArea) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_gl_area_get_auto_render"
gtk_gl_area_get_auto_render :: ((Ptr GLArea) -> (IO CInt))
foreign import ccall safe "gtk_gl_area_get_required_version"
gtk_gl_area_get_required_version :: ((Ptr GLArea) -> ((Ptr CInt) -> ((Ptr CInt) -> (IO ()))))
foreign import ccall safe "gtk_gl_area_set_required_version"
gtk_gl_area_set_required_version :: ((Ptr GLArea) -> (CInt -> (CInt -> (IO ()))))