{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gsk.Objects.GLShader
(
GLShader(..) ,
IsGLShader ,
toGLShader ,
#if defined(ENABLE_OVERLOADING)
ResolveGLShaderMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
GLShaderCompileMethodInfo ,
#endif
gLShaderCompile ,
#if defined(ENABLE_OVERLOADING)
GLShaderFindUniformByNameMethodInfo ,
#endif
gLShaderFindUniformByName ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgBoolMethodInfo ,
#endif
gLShaderGetArgBool ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgFloatMethodInfo ,
#endif
gLShaderGetArgFloat ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgIntMethodInfo ,
#endif
gLShaderGetArgInt ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgUintMethodInfo ,
#endif
gLShaderGetArgUint ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgVec2MethodInfo ,
#endif
gLShaderGetArgVec2 ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgVec3MethodInfo ,
#endif
gLShaderGetArgVec3 ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgVec4MethodInfo ,
#endif
gLShaderGetArgVec4 ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetArgsSizeMethodInfo ,
#endif
gLShaderGetArgsSize ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetNTexturesMethodInfo ,
#endif
gLShaderGetNTextures ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetNUniformsMethodInfo ,
#endif
gLShaderGetNUniforms ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetResourceMethodInfo ,
#endif
gLShaderGetResource ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetSourceMethodInfo ,
#endif
gLShaderGetSource ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetUniformNameMethodInfo ,
#endif
gLShaderGetUniformName ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetUniformOffsetMethodInfo ,
#endif
gLShaderGetUniformOffset ,
#if defined(ENABLE_OVERLOADING)
GLShaderGetUniformTypeMethodInfo ,
#endif
gLShaderGetUniformType ,
gLShaderNewFromBytes ,
gLShaderNewFromResource ,
#if defined(ENABLE_OVERLOADING)
GLShaderResourcePropertyInfo ,
#endif
constructGLShaderResource ,
#if defined(ENABLE_OVERLOADING)
gLShaderResource ,
#endif
getGLShaderResource ,
#if defined(ENABLE_OVERLOADING)
GLShaderSourcePropertyInfo ,
#endif
constructGLShaderSource ,
#if defined(ENABLE_OVERLOADING)
gLShaderSource ,
#endif
getGLShaderSource ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Graphene.Structs.Vec2 as Graphene.Vec2
import qualified GI.Graphene.Structs.Vec3 as Graphene.Vec3
import qualified GI.Graphene.Structs.Vec4 as Graphene.Vec4
import {-# SOURCE #-} qualified GI.Gsk.Enums as Gsk.Enums
import {-# SOURCE #-} qualified GI.Gsk.Objects.Renderer as Gsk.Renderer
newtype GLShader = GLShader (SP.ManagedPtr GLShader)
deriving (GLShader -> GLShader -> Bool
(GLShader -> GLShader -> Bool)
-> (GLShader -> GLShader -> Bool) -> Eq GLShader
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GLShader -> GLShader -> Bool
$c/= :: GLShader -> GLShader -> Bool
== :: GLShader -> GLShader -> Bool
$c== :: GLShader -> GLShader -> Bool
Eq)
instance SP.ManagedPtrNewtype GLShader where
toManagedPtr :: GLShader -> ManagedPtr GLShader
toManagedPtr (GLShader ManagedPtr GLShader
p) = ManagedPtr GLShader
p
foreign import ccall "gsk_gl_shader_get_type"
c_gsk_gl_shader_get_type :: IO B.Types.GType
instance B.Types.TypedObject GLShader where
glibType :: IO GType
glibType = IO GType
c_gsk_gl_shader_get_type
instance B.Types.GObject GLShader
class (SP.GObject o, O.IsDescendantOf GLShader o) => IsGLShader o
instance (SP.GObject o, O.IsDescendantOf GLShader o) => IsGLShader o
instance O.HasParentTypes GLShader
type instance O.ParentTypes GLShader = '[GObject.Object.Object]
toGLShader :: (MIO.MonadIO m, IsGLShader o) => o -> m GLShader
toGLShader :: forall (m :: * -> *) o.
(MonadIO m, IsGLShader o) =>
o -> m GLShader
toGLShader = IO GLShader -> m GLShader
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO GLShader -> m GLShader)
-> (o -> IO GLShader) -> o -> m GLShader
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr GLShader -> GLShader) -> o -> IO GLShader
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr GLShader -> GLShader
GLShader
instance B.GValue.IsGValue (Maybe GLShader) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gsk_gl_shader_get_type
gvalueSet_ :: Ptr GValue -> Maybe GLShader -> IO ()
gvalueSet_ Ptr GValue
gv Maybe GLShader
P.Nothing = Ptr GValue -> Ptr GLShader -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr GLShader
forall a. Ptr a
FP.nullPtr :: FP.Ptr GLShader)
gvalueSet_ Ptr GValue
gv (P.Just GLShader
obj) = GLShader -> (Ptr GLShader -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr GLShader
obj (Ptr GValue -> Ptr GLShader -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe GLShader)
gvalueGet_ Ptr GValue
gv = do
Ptr GLShader
ptr <- Ptr GValue -> IO (Ptr GLShader)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr GLShader)
if Ptr GLShader
ptr Ptr GLShader -> Ptr GLShader -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr GLShader
forall a. Ptr a
FP.nullPtr
then GLShader -> Maybe GLShader
forall a. a -> Maybe a
P.Just (GLShader -> Maybe GLShader) -> IO GLShader -> IO (Maybe GLShader)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr GLShader -> GLShader) -> Ptr GLShader -> IO GLShader
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr GLShader -> GLShader
GLShader Ptr GLShader
ptr
else Maybe GLShader -> IO (Maybe GLShader)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe GLShader
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveGLShaderMethod (t :: Symbol) (o :: *) :: * where
ResolveGLShaderMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveGLShaderMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveGLShaderMethod "compile" o = GLShaderCompileMethodInfo
ResolveGLShaderMethod "findUniformByName" o = GLShaderFindUniformByNameMethodInfo
ResolveGLShaderMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveGLShaderMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveGLShaderMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveGLShaderMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveGLShaderMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveGLShaderMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveGLShaderMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveGLShaderMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveGLShaderMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveGLShaderMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveGLShaderMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveGLShaderMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveGLShaderMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveGLShaderMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveGLShaderMethod "getArgBool" o = GLShaderGetArgBoolMethodInfo
ResolveGLShaderMethod "getArgFloat" o = GLShaderGetArgFloatMethodInfo
ResolveGLShaderMethod "getArgInt" o = GLShaderGetArgIntMethodInfo
ResolveGLShaderMethod "getArgUint" o = GLShaderGetArgUintMethodInfo
ResolveGLShaderMethod "getArgVec2" o = GLShaderGetArgVec2MethodInfo
ResolveGLShaderMethod "getArgVec3" o = GLShaderGetArgVec3MethodInfo
ResolveGLShaderMethod "getArgVec4" o = GLShaderGetArgVec4MethodInfo
ResolveGLShaderMethod "getArgsSize" o = GLShaderGetArgsSizeMethodInfo
ResolveGLShaderMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveGLShaderMethod "getNTextures" o = GLShaderGetNTexturesMethodInfo
ResolveGLShaderMethod "getNUniforms" o = GLShaderGetNUniformsMethodInfo
ResolveGLShaderMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveGLShaderMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveGLShaderMethod "getResource" o = GLShaderGetResourceMethodInfo
ResolveGLShaderMethod "getSource" o = GLShaderGetSourceMethodInfo
ResolveGLShaderMethod "getUniformName" o = GLShaderGetUniformNameMethodInfo
ResolveGLShaderMethod "getUniformOffset" o = GLShaderGetUniformOffsetMethodInfo
ResolveGLShaderMethod "getUniformType" o = GLShaderGetUniformTypeMethodInfo
ResolveGLShaderMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveGLShaderMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveGLShaderMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveGLShaderMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveGLShaderMethod t GLShader, O.OverloadedMethod info GLShader p) => OL.IsLabel t (GLShader -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveGLShaderMethod t GLShader, O.OverloadedMethod info GLShader p, R.HasField t GLShader p) => R.HasField t GLShader p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveGLShaderMethod t GLShader, O.OverloadedMethodInfo info GLShader) => OL.IsLabel t (O.MethodProxy info GLShader) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getGLShaderResource :: (MonadIO m, IsGLShader o) => o -> m (Maybe T.Text)
getGLShaderResource :: forall (m :: * -> *) o.
(MonadIO m, IsGLShader o) =>
o -> m (Maybe Text)
getGLShaderResource o
obj = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"resource"
constructGLShaderResource :: (IsGLShader o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructGLShaderResource :: forall o (m :: * -> *).
(IsGLShader o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructGLShaderResource Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"resource" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data GLShaderResourcePropertyInfo
instance AttrInfo GLShaderResourcePropertyInfo where
type AttrAllowedOps GLShaderResourcePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint GLShaderResourcePropertyInfo = IsGLShader
type AttrSetTypeConstraint GLShaderResourcePropertyInfo = (~) T.Text
type AttrTransferTypeConstraint GLShaderResourcePropertyInfo = (~) T.Text
type AttrTransferType GLShaderResourcePropertyInfo = T.Text
type AttrGetType GLShaderResourcePropertyInfo = (Maybe T.Text)
type AttrLabel GLShaderResourcePropertyInfo = "resource"
type AttrOrigin GLShaderResourcePropertyInfo = GLShader
attrGet = getGLShaderResource
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructGLShaderResource
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.resource"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#g:attr:resource"
})
#endif
getGLShaderSource :: (MonadIO m, IsGLShader o) => o -> m GLib.Bytes.Bytes
getGLShaderSource :: forall (m :: * -> *) o. (MonadIO m, IsGLShader o) => o -> m Bytes
getGLShaderSource o
obj = IO Bytes -> m Bytes
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bytes -> m Bytes) -> IO Bytes -> m Bytes
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Bytes) -> IO Bytes
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getGLShaderSource" (IO (Maybe Bytes) -> IO Bytes) -> IO (Maybe Bytes) -> IO Bytes
forall a b. (a -> b) -> a -> b
$ o -> String -> (ManagedPtr Bytes -> Bytes) -> IO (Maybe Bytes)
forall a b.
(GObject a, GBoxed b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyBoxed o
obj String
"source" ManagedPtr Bytes -> Bytes
GLib.Bytes.Bytes
constructGLShaderSource :: (IsGLShader o, MIO.MonadIO m) => GLib.Bytes.Bytes -> m (GValueConstruct o)
constructGLShaderSource :: forall o (m :: * -> *).
(IsGLShader o, MonadIO m) =>
Bytes -> m (GValueConstruct o)
constructGLShaderSource Bytes
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Bytes -> IO (GValueConstruct o)
forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBoxed String
"source" (Bytes -> Maybe Bytes
forall a. a -> Maybe a
P.Just Bytes
val)
#if defined(ENABLE_OVERLOADING)
data GLShaderSourcePropertyInfo
instance AttrInfo GLShaderSourcePropertyInfo where
type AttrAllowedOps GLShaderSourcePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint GLShaderSourcePropertyInfo = IsGLShader
type AttrSetTypeConstraint GLShaderSourcePropertyInfo = (~) GLib.Bytes.Bytes
type AttrTransferTypeConstraint GLShaderSourcePropertyInfo = (~) GLib.Bytes.Bytes
type AttrTransferType GLShaderSourcePropertyInfo = GLib.Bytes.Bytes
type AttrGetType GLShaderSourcePropertyInfo = GLib.Bytes.Bytes
type AttrLabel GLShaderSourcePropertyInfo = "source"
type AttrOrigin GLShaderSourcePropertyInfo = GLShader
attrGet = getGLShaderSource
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructGLShaderSource
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.source"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#g:attr:source"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList GLShader
type instance O.AttributeList GLShader = GLShaderAttributeList
type GLShaderAttributeList = ('[ '("resource", GLShaderResourcePropertyInfo), '("source", GLShaderSourcePropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
gLShaderResource :: AttrLabelProxy "resource"
gLShaderResource = AttrLabelProxy
gLShaderSource :: AttrLabelProxy "source"
gLShaderSource = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList GLShader = GLShaderSignalList
type GLShaderSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gsk_gl_shader_new_from_bytes" gsk_gl_shader_new_from_bytes ::
Ptr GLib.Bytes.Bytes ->
IO (Ptr GLShader)
gLShaderNewFromBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
GLib.Bytes.Bytes
-> m GLShader
gLShaderNewFromBytes :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Bytes -> m GLShader
gLShaderNewFromBytes Bytes
sourcecode = IO GLShader -> m GLShader
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GLShader -> m GLShader) -> IO GLShader -> m GLShader
forall a b. (a -> b) -> a -> b
$ do
Ptr Bytes
sourcecode' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
sourcecode
Ptr GLShader
result <- Ptr Bytes -> IO (Ptr GLShader)
gsk_gl_shader_new_from_bytes Ptr Bytes
sourcecode'
Text -> Ptr GLShader -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"gLShaderNewFromBytes" Ptr GLShader
result
GLShader
result' <- ((ManagedPtr GLShader -> GLShader) -> Ptr GLShader -> IO GLShader
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr GLShader -> GLShader
GLShader) Ptr GLShader
result
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
sourcecode
GLShader -> IO GLShader
forall (m :: * -> *) a. Monad m => a -> m a
return GLShader
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gsk_gl_shader_new_from_resource" gsk_gl_shader_new_from_resource ::
CString ->
IO (Ptr GLShader)
gLShaderNewFromResource ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m GLShader
gLShaderNewFromResource :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m GLShader
gLShaderNewFromResource Text
resourcePath = IO GLShader -> m GLShader
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GLShader -> m GLShader) -> IO GLShader -> m GLShader
forall a b. (a -> b) -> a -> b
$ do
CString
resourcePath' <- Text -> IO CString
textToCString Text
resourcePath
Ptr GLShader
result <- CString -> IO (Ptr GLShader)
gsk_gl_shader_new_from_resource CString
resourcePath'
Text -> Ptr GLShader -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"gLShaderNewFromResource" Ptr GLShader
result
GLShader
result' <- ((ManagedPtr GLShader -> GLShader) -> Ptr GLShader -> IO GLShader
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr GLShader -> GLShader
GLShader) Ptr GLShader
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
resourcePath'
GLShader -> IO GLShader
forall (m :: * -> *) a. Monad m => a -> m a
return GLShader
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gsk_gl_shader_compile" gsk_gl_shader_compile ::
Ptr GLShader ->
Ptr Gsk.Renderer.Renderer ->
Ptr (Ptr GError) ->
IO CInt
gLShaderCompile ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a, Gsk.Renderer.IsRenderer b) =>
a
-> b
-> m ()
gLShaderCompile :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsGLShader a, IsRenderer b) =>
a -> b -> m ()
gLShaderCompile a
shader b
renderer = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Renderer
renderer' <- b -> IO (Ptr Renderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
renderer
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr GLShader -> Ptr Renderer -> Ptr (Ptr GError) -> IO CInt
gsk_gl_shader_compile Ptr GLShader
shader' Ptr Renderer
renderer'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
renderer
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if defined(ENABLE_OVERLOADING)
data GLShaderCompileMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsGLShader a, Gsk.Renderer.IsRenderer b) => O.OverloadedMethod GLShaderCompileMethodInfo a signature where
overloadedMethod = gLShaderCompile
instance O.OverloadedMethodInfo GLShaderCompileMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderCompile",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderCompile"
})
#endif
foreign import ccall "gsk_gl_shader_find_uniform_by_name" gsk_gl_shader_find_uniform_by_name ::
Ptr GLShader ->
CString ->
IO Int32
gLShaderFindUniformByName ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> T.Text
-> m Int32
gLShaderFindUniformByName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Text -> m Int32
gLShaderFindUniformByName a
shader Text
name = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
CString
name' <- Text -> IO CString
textToCString Text
name
Int32
result <- Ptr GLShader -> CString -> IO Int32
gsk_gl_shader_find_uniform_by_name Ptr GLShader
shader' CString
name'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
name'
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data GLShaderFindUniformByNameMethodInfo
instance (signature ~ (T.Text -> m Int32), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderFindUniformByNameMethodInfo a signature where
overloadedMethod = gLShaderFindUniformByName
instance O.OverloadedMethodInfo GLShaderFindUniformByNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderFindUniformByName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderFindUniformByName"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_bool" gsk_gl_shader_get_arg_bool ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
IO CInt
gLShaderGetArgBool ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> m Bool
gLShaderGetArgBool :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> m Bool
gLShaderGetArgBool a
shader Bytes
args Int32
idx = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
CInt
result <- Ptr GLShader -> Ptr Bytes -> Int32 -> IO CInt
gsk_gl_shader_get_arg_bool Ptr GLShader
shader' Ptr Bytes
args' Int32
idx
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgBoolMethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> m Bool), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgBoolMethodInfo a signature where
overloadedMethod = gLShaderGetArgBool
instance O.OverloadedMethodInfo GLShaderGetArgBoolMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgBool",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgBool"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_float" gsk_gl_shader_get_arg_float ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
IO CFloat
gLShaderGetArgFloat ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> m Float
gLShaderGetArgFloat :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> m Float
gLShaderGetArgFloat a
shader Bytes
args Int32
idx = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
CFloat
result <- Ptr GLShader -> Ptr Bytes -> Int32 -> IO CFloat
gsk_gl_shader_get_arg_float Ptr GLShader
shader' Ptr Bytes
args' Int32
idx
let result' :: Float
result' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
result'
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgFloatMethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> m Float), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgFloatMethodInfo a signature where
overloadedMethod = gLShaderGetArgFloat
instance O.OverloadedMethodInfo GLShaderGetArgFloatMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgFloat",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgFloat"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_int" gsk_gl_shader_get_arg_int ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
IO Int32
gLShaderGetArgInt ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> m Int32
gLShaderGetArgInt :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> m Int32
gLShaderGetArgInt a
shader Bytes
args Int32
idx = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
Int32
result <- Ptr GLShader -> Ptr Bytes -> Int32 -> IO Int32
gsk_gl_shader_get_arg_int Ptr GLShader
shader' Ptr Bytes
args' Int32
idx
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgIntMethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> m Int32), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgIntMethodInfo a signature where
overloadedMethod = gLShaderGetArgInt
instance O.OverloadedMethodInfo GLShaderGetArgIntMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgInt",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgInt"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_uint" gsk_gl_shader_get_arg_uint ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
IO Word32
gLShaderGetArgUint ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> m Word32
gLShaderGetArgUint :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> m Word32
gLShaderGetArgUint a
shader Bytes
args Int32
idx = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
Word32
result <- Ptr GLShader -> Ptr Bytes -> Int32 -> IO Word32
gsk_gl_shader_get_arg_uint Ptr GLShader
shader' Ptr Bytes
args' Int32
idx
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgUintMethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> m Word32), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgUintMethodInfo a signature where
overloadedMethod = gLShaderGetArgUint
instance O.OverloadedMethodInfo GLShaderGetArgUintMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgUint",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgUint"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_vec2" gsk_gl_shader_get_arg_vec2 ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
Ptr Graphene.Vec2.Vec2 ->
IO ()
gLShaderGetArgVec2 ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> Graphene.Vec2.Vec2
-> m ()
gLShaderGetArgVec2 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> Vec2 -> m ()
gLShaderGetArgVec2 a
shader Bytes
args Int32
idx Vec2
outValue = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
Ptr Vec2
outValue' <- Vec2 -> IO (Ptr Vec2)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Vec2
outValue
Ptr GLShader -> Ptr Bytes -> Int32 -> Ptr Vec2 -> IO ()
gsk_gl_shader_get_arg_vec2 Ptr GLShader
shader' Ptr Bytes
args' Int32
idx Ptr Vec2
outValue'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Vec2 -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Vec2
outValue
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgVec2MethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> Graphene.Vec2.Vec2 -> m ()), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgVec2MethodInfo a signature where
overloadedMethod = gLShaderGetArgVec2
instance O.OverloadedMethodInfo GLShaderGetArgVec2MethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgVec2",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgVec2"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_vec3" gsk_gl_shader_get_arg_vec3 ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
Ptr Graphene.Vec3.Vec3 ->
IO ()
gLShaderGetArgVec3 ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> Graphene.Vec3.Vec3
-> m ()
gLShaderGetArgVec3 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> Vec3 -> m ()
gLShaderGetArgVec3 a
shader Bytes
args Int32
idx Vec3
outValue = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
Ptr Vec3
outValue' <- Vec3 -> IO (Ptr Vec3)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Vec3
outValue
Ptr GLShader -> Ptr Bytes -> Int32 -> Ptr Vec3 -> IO ()
gsk_gl_shader_get_arg_vec3 Ptr GLShader
shader' Ptr Bytes
args' Int32
idx Ptr Vec3
outValue'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Vec3 -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Vec3
outValue
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgVec3MethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> Graphene.Vec3.Vec3 -> m ()), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgVec3MethodInfo a signature where
overloadedMethod = gLShaderGetArgVec3
instance O.OverloadedMethodInfo GLShaderGetArgVec3MethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgVec3",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgVec3"
})
#endif
foreign import ccall "gsk_gl_shader_get_arg_vec4" gsk_gl_shader_get_arg_vec4 ::
Ptr GLShader ->
Ptr GLib.Bytes.Bytes ->
Int32 ->
Ptr Graphene.Vec4.Vec4 ->
IO ()
gLShaderGetArgVec4 ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> GLib.Bytes.Bytes
-> Int32
-> Graphene.Vec4.Vec4
-> m ()
gLShaderGetArgVec4 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Bytes -> Int32 -> Vec4 -> m ()
gLShaderGetArgVec4 a
shader Bytes
args Int32
idx Vec4
outValue = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
args' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
args
Ptr Vec4
outValue' <- Vec4 -> IO (Ptr Vec4)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Vec4
outValue
Ptr GLShader -> Ptr Bytes -> Int32 -> Ptr Vec4 -> IO ()
gsk_gl_shader_get_arg_vec4 Ptr GLShader
shader' Ptr Bytes
args' Int32
idx Ptr Vec4
outValue'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Bytes
args
Vec4 -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Vec4
outValue
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgVec4MethodInfo
instance (signature ~ (GLib.Bytes.Bytes -> Int32 -> Graphene.Vec4.Vec4 -> m ()), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgVec4MethodInfo a signature where
overloadedMethod = gLShaderGetArgVec4
instance O.OverloadedMethodInfo GLShaderGetArgVec4MethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgVec4",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgVec4"
})
#endif
foreign import ccall "gsk_gl_shader_get_args_size" gsk_gl_shader_get_args_size ::
Ptr GLShader ->
IO Word64
gLShaderGetArgsSize ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> m Word64
gLShaderGetArgsSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> m Word64
gLShaderGetArgsSize a
shader = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Word64
result <- Ptr GLShader -> IO Word64
gsk_gl_shader_get_args_size Ptr GLShader
shader'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgsSizeMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetArgsSizeMethodInfo a signature where
overloadedMethod = gLShaderGetArgsSize
instance O.OverloadedMethodInfo GLShaderGetArgsSizeMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetArgsSize",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetArgsSize"
})
#endif
foreign import ccall "gsk_gl_shader_get_n_textures" gsk_gl_shader_get_n_textures ::
Ptr GLShader ->
IO Int32
gLShaderGetNTextures ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> m Int32
gLShaderGetNTextures :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> m Int32
gLShaderGetNTextures a
shader = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Int32
result <- Ptr GLShader -> IO Int32
gsk_gl_shader_get_n_textures Ptr GLShader
shader'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetNTexturesMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetNTexturesMethodInfo a signature where
overloadedMethod = gLShaderGetNTextures
instance O.OverloadedMethodInfo GLShaderGetNTexturesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetNTextures",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetNTextures"
})
#endif
foreign import ccall "gsk_gl_shader_get_n_uniforms" gsk_gl_shader_get_n_uniforms ::
Ptr GLShader ->
IO Int32
gLShaderGetNUniforms ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> m Int32
gLShaderGetNUniforms :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> m Int32
gLShaderGetNUniforms a
shader = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Int32
result <- Ptr GLShader -> IO Int32
gsk_gl_shader_get_n_uniforms Ptr GLShader
shader'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetNUniformsMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetNUniformsMethodInfo a signature where
overloadedMethod = gLShaderGetNUniforms
instance O.OverloadedMethodInfo GLShaderGetNUniformsMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetNUniforms",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetNUniforms"
})
#endif
foreign import ccall "gsk_gl_shader_get_resource" gsk_gl_shader_get_resource ::
Ptr GLShader ->
IO CString
gLShaderGetResource ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> m (Maybe T.Text)
gLShaderGetResource :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> m (Maybe Text)
gLShaderGetResource a
shader = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
CString
result <- Ptr GLShader -> IO CString
gsk_gl_shader_get_resource Ptr GLShader
shader'
Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \CString
result' -> do
Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult
#if defined(ENABLE_OVERLOADING)
data GLShaderGetResourceMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetResourceMethodInfo a signature where
overloadedMethod = gLShaderGetResource
instance O.OverloadedMethodInfo GLShaderGetResourceMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetResource",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetResource"
})
#endif
foreign import ccall "gsk_gl_shader_get_source" gsk_gl_shader_get_source ::
Ptr GLShader ->
IO (Ptr GLib.Bytes.Bytes)
gLShaderGetSource ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> m GLib.Bytes.Bytes
gLShaderGetSource :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> m Bytes
gLShaderGetSource a
shader = IO Bytes -> m Bytes
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bytes -> m Bytes) -> IO Bytes -> m Bytes
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Ptr Bytes
result <- Ptr GLShader -> IO (Ptr Bytes)
gsk_gl_shader_get_source Ptr GLShader
shader'
Text -> Ptr Bytes -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"gLShaderGetSource" Ptr Bytes
result
Bytes
result' <- ((ManagedPtr Bytes -> Bytes) -> Ptr Bytes -> IO Bytes
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Bytes -> Bytes
GLib.Bytes.Bytes) Ptr Bytes
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Bytes -> IO Bytes
forall (m :: * -> *) a. Monad m => a -> m a
return Bytes
result'
#if defined(ENABLE_OVERLOADING)
data GLShaderGetSourceMethodInfo
instance (signature ~ (m GLib.Bytes.Bytes), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetSourceMethodInfo a signature where
overloadedMethod = gLShaderGetSource
instance O.OverloadedMethodInfo GLShaderGetSourceMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetSource",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetSource"
})
#endif
foreign import ccall "gsk_gl_shader_get_uniform_name" gsk_gl_shader_get_uniform_name ::
Ptr GLShader ->
Int32 ->
IO CString
gLShaderGetUniformName ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> Int32
-> m T.Text
gLShaderGetUniformName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Int32 -> m Text
gLShaderGetUniformName a
shader Int32
idx = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
CString
result <- Ptr GLShader -> Int32 -> IO CString
gsk_gl_shader_get_uniform_name Ptr GLShader
shader' Int32
idx
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"gLShaderGetUniformName" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data GLShaderGetUniformNameMethodInfo
instance (signature ~ (Int32 -> m T.Text), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetUniformNameMethodInfo a signature where
overloadedMethod = gLShaderGetUniformName
instance O.OverloadedMethodInfo GLShaderGetUniformNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetUniformName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetUniformName"
})
#endif
foreign import ccall "gsk_gl_shader_get_uniform_offset" gsk_gl_shader_get_uniform_offset ::
Ptr GLShader ->
Int32 ->
IO Int32
gLShaderGetUniformOffset ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> Int32
-> m Int32
gLShaderGetUniformOffset :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Int32 -> m Int32
gLShaderGetUniformOffset a
shader Int32
idx = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
Int32
result <- Ptr GLShader -> Int32 -> IO Int32
gsk_gl_shader_get_uniform_offset Ptr GLShader
shader' Int32
idx
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetUniformOffsetMethodInfo
instance (signature ~ (Int32 -> m Int32), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetUniformOffsetMethodInfo a signature where
overloadedMethod = gLShaderGetUniformOffset
instance O.OverloadedMethodInfo GLShaderGetUniformOffsetMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetUniformOffset",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetUniformOffset"
})
#endif
foreign import ccall "gsk_gl_shader_get_uniform_type" gsk_gl_shader_get_uniform_type ::
Ptr GLShader ->
Int32 ->
IO CUInt
gLShaderGetUniformType ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> Int32
-> m Gsk.Enums.GLUniformType
gLShaderGetUniformType :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Int32 -> m GLUniformType
gLShaderGetUniformType a
shader Int32
idx = IO GLUniformType -> m GLUniformType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GLUniformType -> m GLUniformType)
-> IO GLUniformType -> m GLUniformType
forall a b. (a -> b) -> a -> b
$ do
Ptr GLShader
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
CUInt
result <- Ptr GLShader -> Int32 -> IO CUInt
gsk_gl_shader_get_uniform_type Ptr GLShader
shader' Int32
idx
let result' :: GLUniformType
result' = (Int -> GLUniformType
forall a. Enum a => Int -> a
toEnum (Int -> GLUniformType) -> (CUInt -> Int) -> CUInt -> GLUniformType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shader
GLUniformType -> IO GLUniformType
forall (m :: * -> *) a. Monad m => a -> m a
return GLUniformType
result'
#if defined(ENABLE_OVERLOADING)
data GLShaderGetUniformTypeMethodInfo
instance (signature ~ (Int32 -> m Gsk.Enums.GLUniformType), MonadIO m, IsGLShader a) => O.OverloadedMethod GLShaderGetUniformTypeMethodInfo a signature where
overloadedMethod = gLShaderGetUniformType
instance O.OverloadedMethodInfo GLShaderGetUniformTypeMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Objects.GLShader.gLShaderGetUniformType",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.4/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetUniformType"
})
#endif