gi-gdk-0.3.18.12: GI/Gdk/Objects/GLContext.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gdk.Objects.GLContext
(
-- * Exported types
GLContext(..) ,
GLContextK ,
toGLContext ,
noGLContext ,
-- * Methods
-- ** gLContextClearCurrent
gLContextClearCurrent ,
-- ** gLContextGetCurrent
gLContextGetCurrent ,
-- ** gLContextGetDebugEnabled
gLContextGetDebugEnabled ,
-- ** gLContextGetDisplay
gLContextGetDisplay ,
-- ** gLContextGetForwardCompatible
gLContextGetForwardCompatible ,
-- ** gLContextGetSharedContext
gLContextGetSharedContext ,
-- ** gLContextGetVersion
gLContextGetVersion ,
-- ** gLContextGetWindow
gLContextGetWindow ,
-- ** gLContextMakeCurrent
gLContextMakeCurrent ,
-- ** gLContextRealize
gLContextRealize ,
-- ** gLContextSetDebugEnabled
gLContextSetDebugEnabled ,
-- ** gLContextSetForwardCompatible
gLContextSetForwardCompatible ,
-- ** gLContextSetRequiredVersion
gLContextSetRequiredVersion ,
-- * Properties
-- ** Display
GLContextDisplayPropertyInfo ,
constructGLContextDisplay ,
getGLContextDisplay ,
-- ** SharedContext
GLContextSharedContextPropertyInfo ,
constructGLContextSharedContext ,
getGLContextSharedContext ,
-- ** Window
GLContextWindowPropertyInfo ,
constructGLContextWindow ,
getGLContextWindow ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gdk.Types
import GI.Gdk.Callbacks
import qualified GI.GObject as GObject
newtype GLContext = GLContext (ForeignPtr GLContext)
foreign import ccall "gdk_gl_context_get_type"
c_gdk_gl_context_get_type :: IO GType
type instance ParentTypes GLContext = GLContextParentTypes
type GLContextParentTypes = '[GObject.Object]
instance GObject GLContext where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_gdk_gl_context_get_type
class GObject o => GLContextK o
instance (GObject o, IsDescendantOf GLContext o) => GLContextK o
toGLContext :: GLContextK o => o -> IO GLContext
toGLContext = unsafeCastTo GLContext
noGLContext :: Maybe GLContext
noGLContext = Nothing
-- VVV Prop "display"
-- Type: TInterface "Gdk" "Display"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getGLContextDisplay :: (MonadIO m, GLContextK o) => o -> m Display
getGLContextDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
constructGLContextDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
constructGLContextDisplay val = constructObjectPropertyObject "display" val
data GLContextDisplayPropertyInfo
instance AttrInfo GLContextDisplayPropertyInfo where
type AttrAllowedOps GLContextDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint GLContextDisplayPropertyInfo = DisplayK
type AttrBaseTypeConstraint GLContextDisplayPropertyInfo = GLContextK
type AttrGetType GLContextDisplayPropertyInfo = Display
type AttrLabel GLContextDisplayPropertyInfo = "GLContext::display"
attrGet _ = getGLContextDisplay
attrSet _ = undefined
attrConstruct _ = constructGLContextDisplay
-- VVV Prop "shared-context"
-- Type: TInterface "Gdk" "GLContext"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getGLContextSharedContext :: (MonadIO m, GLContextK o) => o -> m GLContext
getGLContextSharedContext obj = liftIO $ getObjectPropertyObject obj "shared-context" GLContext
constructGLContextSharedContext :: (GLContextK a) => a -> IO ([Char], GValue)
constructGLContextSharedContext val = constructObjectPropertyObject "shared-context" val
data GLContextSharedContextPropertyInfo
instance AttrInfo GLContextSharedContextPropertyInfo where
type AttrAllowedOps GLContextSharedContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
type AttrBaseTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
type AttrGetType GLContextSharedContextPropertyInfo = GLContext
type AttrLabel GLContextSharedContextPropertyInfo = "GLContext::shared-context"
attrGet _ = getGLContextSharedContext
attrSet _ = undefined
attrConstruct _ = constructGLContextSharedContext
-- VVV Prop "window"
-- Type: TInterface "Gdk" "Window"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getGLContextWindow :: (MonadIO m, GLContextK o) => o -> m Window
getGLContextWindow obj = liftIO $ getObjectPropertyObject obj "window" Window
constructGLContextWindow :: (WindowK a) => a -> IO ([Char], GValue)
constructGLContextWindow val = constructObjectPropertyObject "window" val
data GLContextWindowPropertyInfo
instance AttrInfo GLContextWindowPropertyInfo where
type AttrAllowedOps GLContextWindowPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint GLContextWindowPropertyInfo = WindowK
type AttrBaseTypeConstraint GLContextWindowPropertyInfo = GLContextK
type AttrGetType GLContextWindowPropertyInfo = Window
type AttrLabel GLContextWindowPropertyInfo = "GLContext::window"
attrGet _ = getGLContextWindow
attrSet _ = undefined
attrConstruct _ = constructGLContextWindow
type instance AttributeList GLContext = GLContextAttributeList
type GLContextAttributeList = ('[ '("display", GLContextDisplayPropertyInfo), '("shared-context", GLContextSharedContextPropertyInfo), '("window", GLContextWindowPropertyInfo)] :: [(Symbol, *)])
type instance SignalList GLContext = GLContextSignalList
type GLContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method GLContext::get_debug_enabled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_debug_enabled" gdk_gl_context_get_debug_enabled ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
IO CInt
gLContextGetDebugEnabled ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m Bool
gLContextGetDebugEnabled _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gdk_gl_context_get_debug_enabled _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method GLContext::get_display
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gdk" "Display"
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_display" gdk_gl_context_get_display ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
IO (Ptr Display)
gLContextGetDisplay ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m Display
gLContextGetDisplay _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gdk_gl_context_get_display _obj'
checkUnexpectedReturnNULL "gdk_gl_context_get_display" result
result' <- (newObject Display) result
touchManagedPtr _obj
return result'
-- method GLContext::get_forward_compatible
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_forward_compatible" gdk_gl_context_get_forward_compatible ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
IO CInt
gLContextGetForwardCompatible ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m Bool
gLContextGetForwardCompatible _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gdk_gl_context_get_forward_compatible _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- XXX Could not generate method GLContext::get_required_version
-- Error was : Bad introspection data: "argument \"major\" is not of nullable type (TBasicType TInt32), but it is marked as such."
-- method GLContext::get_shared_context
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gdk" "GLContext"
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_shared_context" gdk_gl_context_get_shared_context ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
IO (Ptr GLContext)
gLContextGetSharedContext ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m GLContext
gLContextGetSharedContext _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gdk_gl_context_get_shared_context _obj'
checkUnexpectedReturnNULL "gdk_gl_context_get_shared_context" result
result' <- (newObject GLContext) result
touchManagedPtr _obj
return result'
-- method GLContext::get_version
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_version" gdk_gl_context_get_version ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
Ptr Int32 -> -- major : TBasicType TInt32
Ptr Int32 -> -- minor : TBasicType TInt32
IO ()
gLContextGetVersion ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m (Int32,Int32)
gLContextGetVersion _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
major <- allocMem :: IO (Ptr Int32)
minor <- allocMem :: IO (Ptr Int32)
gdk_gl_context_get_version _obj' major minor
major' <- peek major
minor' <- peek minor
touchManagedPtr _obj
freeMem major
freeMem minor
return (major', minor')
-- method GLContext::get_window
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gdk" "Window"
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_window" gdk_gl_context_get_window ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
IO (Ptr Window)
gLContextGetWindow ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m Window
gLContextGetWindow _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gdk_gl_context_get_window _obj'
checkUnexpectedReturnNULL "gdk_gl_context_get_window" result
result' <- (newObject Window) result
touchManagedPtr _obj
return result'
-- method GLContext::make_current
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_make_current" gdk_gl_context_make_current ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
IO ()
gLContextMakeCurrent ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m ()
gLContextMakeCurrent _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gdk_gl_context_make_current _obj'
touchManagedPtr _obj
return ()
-- method GLContext::realize
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "gdk_gl_context_realize" gdk_gl_context_realize ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
Ptr (Ptr GError) -> -- error
IO CInt
gLContextRealize ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
m ()
gLContextRealize _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
onException (do
_ <- propagateGError $ gdk_gl_context_realize _obj'
touchManagedPtr _obj
return ()
) (do
return ()
)
-- method GLContext::set_debug_enabled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_set_debug_enabled" gdk_gl_context_set_debug_enabled ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
CInt -> -- enabled : TBasicType TBoolean
IO ()
gLContextSetDebugEnabled ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
Bool -> -- enabled
m ()
gLContextSetDebugEnabled _obj enabled = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let enabled' = (fromIntegral . fromEnum) enabled
gdk_gl_context_set_debug_enabled _obj' enabled'
touchManagedPtr _obj
return ()
-- method GLContext::set_forward_compatible
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_set_forward_compatible" gdk_gl_context_set_forward_compatible ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
CInt -> -- compatible : TBasicType TBoolean
IO ()
gLContextSetForwardCompatible ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
Bool -> -- compatible
m ()
gLContextSetForwardCompatible _obj compatible = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let compatible' = (fromIntegral . fromEnum) compatible
gdk_gl_context_set_forward_compatible _obj' compatible'
touchManagedPtr _obj
return ()
-- method GLContext::set_required_version
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_set_required_version" gdk_gl_context_set_required_version ::
Ptr GLContext -> -- _obj : TInterface "Gdk" "GLContext"
Int32 -> -- major : TBasicType TInt32
Int32 -> -- minor : TBasicType TInt32
IO ()
gLContextSetRequiredVersion ::
(MonadIO m, GLContextK a) =>
a -> -- _obj
Int32 -> -- major
Int32 -> -- minor
m ()
gLContextSetRequiredVersion _obj major minor = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gdk_gl_context_set_required_version _obj' major minor
touchManagedPtr _obj
return ()
-- method GLContext::clear_current
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_clear_current" gdk_gl_context_clear_current ::
IO ()
gLContextClearCurrent ::
(MonadIO m) =>
m ()
gLContextClearCurrent = liftIO $ do
gdk_gl_context_clear_current
return ()
-- method GLContext::get_current
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gdk" "GLContext"
-- throws : False
-- Skip return : False
foreign import ccall "gdk_gl_context_get_current" gdk_gl_context_get_current ::
IO (Ptr GLContext)
gLContextGetCurrent ::
(MonadIO m) =>
m GLContext
gLContextGetCurrent = liftIO $ do
result <- gdk_gl_context_get_current
checkUnexpectedReturnNULL "gdk_gl_context_get_current" result
result' <- (newObject GLContext) result
return result'