{-# LANGUAGE TypeApplications #-}
#if !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.GHashTable as B.GHT
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.Kind as DK
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 Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import qualified GI.Cairo.Structs.Context as Cairo.Context
import qualified GI.Cairo.Structs.Region as Cairo.Region
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Objects.Display as Gdk.Display
import qualified GI.Gdk.Objects.Surface as Gdk.Surface
import qualified GI.Gdk.Objects.Texture as Gdk.Texture
import qualified GI.Graphene.Structs.Rect as Graphene.Rect
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 qualified GI.Gsk.Callbacks as Gsk.Callbacks
import {-# SOURCE #-} qualified GI.Gsk.Enums as Gsk.Enums
import {-# SOURCE #-} qualified GI.Gsk.Objects.RenderNode as Gsk.RenderNode
import {-# SOURCE #-} qualified GI.Gsk.Objects.Renderer as Gsk.Renderer
#else
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
#endif
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
$c== :: GLShader -> GLShader -> Bool
== :: GLShader -> GLShader -> Bool
$c/= :: GLShader -> GLShader -> Bool
/= :: 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 a. IO a -> m a
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 <- 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 /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newObject GLShader ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveGLShaderMethod (t :: Symbol) (o :: DK.Type) :: DK.Type 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 a. IO a -> m a
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 a. IO a -> m a
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 a. IO a -> IO a
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
attrPut = 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.9/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 a. IO a -> m a
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 a. IO a -> m a
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 a. IO a -> IO a
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
attrPut = 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.9/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, DK.Type)])
#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, DK.Type)])
#endif
foreign import ccall "gsk_gl_shader_new_from_bytes" gsk_gl_shader_new_from_bytes ::
Ptr GLib.Bytes.Bytes ->
IO (Ptr GLShader)
{-# DEPRECATED gLShaderNewFromBytes ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
sourcecode' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
sourcecode
result <- gsk_gl_shader_new_from_bytes sourcecode'
checkUnexpectedReturnNULL "gLShaderNewFromBytes" result
result' <- (wrapObject GLShader) result
touchManagedPtr sourcecode
return 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)
{-# DEPRECATED gLShaderNewFromResource ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
resourcePath' <- Text -> IO CString
textToCString Text
resourcePath
result <- gsk_gl_shader_new_from_resource resourcePath'
checkUnexpectedReturnNULL "gLShaderNewFromResource" result
result' <- (wrapObject GLShader) result
freeMem resourcePath'
return 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
{-# DEPRECATED gLShaderCompile ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
renderer' <- unsafeManagedPtrCastPtr renderer
onException (do
_ <- propagateGError $ gsk_gl_shader_compile shader' renderer'
touchManagedPtr shader
touchManagedPtr renderer
return ()
) (do
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.9/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
{-# DEPRECATED gLShaderFindUniformByName ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
name' <- textToCString name
result <- gsk_gl_shader_find_uniform_by_name shader' name'
touchManagedPtr shader
freeMem name'
return 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.9/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
{-# DEPRECATED gLShaderGetArgBool ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
result <- gsk_gl_shader_get_arg_bool shader' args' idx
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
touchManagedPtr shader
touchManagedPtr args
return 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.9/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
{-# DEPRECATED gLShaderGetArgFloat ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
result <- gsk_gl_shader_get_arg_float shader' args' idx
let result' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
result
touchManagedPtr shader
touchManagedPtr args
return 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.9/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
{-# DEPRECATED gLShaderGetArgInt ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
result <- gsk_gl_shader_get_arg_int shader' args' idx
touchManagedPtr shader
touchManagedPtr args
return 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.9/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
{-# DEPRECATED gLShaderGetArgUint ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
result <- gsk_gl_shader_get_arg_uint shader' args' idx
touchManagedPtr shader
touchManagedPtr args
return 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.9/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 ()
{-# DEPRECATED gLShaderGetArgVec2 ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
outValue' <- unsafeManagedPtrGetPtr outValue
gsk_gl_shader_get_arg_vec2 shader' args' idx outValue'
touchManagedPtr shader
touchManagedPtr args
touchManagedPtr outValue
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.9/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 ()
{-# DEPRECATED gLShaderGetArgVec3 ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
outValue' <- unsafeManagedPtrGetPtr outValue
gsk_gl_shader_get_arg_vec3 shader' args' idx outValue'
touchManagedPtr shader
touchManagedPtr args
touchManagedPtr outValue
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.9/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 ()
{-# DEPRECATED gLShaderGetArgVec4 ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
args' <- unsafeManagedPtrGetPtr args
outValue' <- unsafeManagedPtrGetPtr outValue
gsk_gl_shader_get_arg_vec4 shader' args' idx outValue'
touchManagedPtr shader
touchManagedPtr args
touchManagedPtr outValue
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.9/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 FCT.CSize
{-# DEPRECATED gLShaderGetArgsSize ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
gLShaderGetArgsSize ::
(B.CallStack.HasCallStack, MonadIO m, IsGLShader a) =>
a
-> m FCT.CSize
gLShaderGetArgsSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> m CSize
gLShaderGetArgsSize a
shader = IO CSize -> m CSize
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CSize -> m CSize) -> IO CSize -> m CSize
forall a b. (a -> b) -> a -> b
$ do
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_args_size shader'
touchManagedPtr shader
return result
#if defined(ENABLE_OVERLOADING)
data GLShaderGetArgsSizeMethodInfo
instance (signature ~ (m FCT.CSize), 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.9/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
{-# DEPRECATED gLShaderGetNTextures ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_n_textures shader'
touchManagedPtr shader
return 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.9/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
{-# DEPRECATED gLShaderGetNUniforms ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_n_uniforms shader'
touchManagedPtr shader
return 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.9/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
{-# DEPRECATED gLShaderGetResource ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_resource shader'
maybeResult <- convertIfNonNull result $ \CString
result' -> do
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
return result''
touchManagedPtr shader
return 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.9/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)
{-# DEPRECATED gLShaderGetSource ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_source shader'
checkUnexpectedReturnNULL "gLShaderGetSource" result
result' <- (newBoxed GLib.Bytes.Bytes) result
touchManagedPtr shader
return 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.9/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
{-# DEPRECATED gLShaderGetUniformName ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_uniform_name shader' idx
checkUnexpectedReturnNULL "gLShaderGetUniformName" result
result' <- cstringToText result
touchManagedPtr shader
return 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.9/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
{-# DEPRECATED gLShaderGetUniformOffset ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_uniform_offset shader' idx
touchManagedPtr shader
return 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.9/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
{-# DEPRECATED gLShaderGetUniformType ["(Since version 4.16)","GTK\\'s new Vulkan-focused rendering"," does not support this feature. Use <http://developer.gnome.org/gsk/stable/../gtk4/class.GLArea.html GtkGLArea>"," for OpenGL rendering."] #-}
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 a. IO a -> m a
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
shader' <- a -> IO (Ptr GLShader)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shader
result <- gsk_gl_shader_get_uniform_type shader' idx
let 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
touchManagedPtr shader
return 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.9/docs/GI-Gsk-Objects-GLShader.html#v:gLShaderGetUniformType"
})
#endif