{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gsk.Structs.ShaderArgsBuilder
(
ShaderArgsBuilder(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveShaderArgsBuilderMethod ,
#endif
shaderArgsBuilderNew ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderRefMethodInfo ,
#endif
shaderArgsBuilderRef ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetBoolMethodInfo ,
#endif
shaderArgsBuilderSetBool ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetFloatMethodInfo ,
#endif
shaderArgsBuilderSetFloat ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetIntMethodInfo ,
#endif
shaderArgsBuilderSetInt ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetUintMethodInfo ,
#endif
shaderArgsBuilderSetUint ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetVec2MethodInfo ,
#endif
shaderArgsBuilderSetVec2 ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetVec3MethodInfo ,
#endif
shaderArgsBuilderSetVec3 ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderSetVec4MethodInfo ,
#endif
shaderArgsBuilderSetVec4 ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderToArgsMethodInfo ,
#endif
shaderArgsBuilderToArgs ,
#if defined(ENABLE_OVERLOADING)
ShaderArgsBuilderUnrefMethodInfo ,
#endif
shaderArgsBuilderUnref ,
) 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.GLShader as Gsk.GLShader
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.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.Objects.GLShader as Gsk.GLShader
#endif
newtype ShaderArgsBuilder = ShaderArgsBuilder (SP.ManagedPtr ShaderArgsBuilder)
deriving (ShaderArgsBuilder -> ShaderArgsBuilder -> Bool
(ShaderArgsBuilder -> ShaderArgsBuilder -> Bool)
-> (ShaderArgsBuilder -> ShaderArgsBuilder -> Bool)
-> Eq ShaderArgsBuilder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ShaderArgsBuilder -> ShaderArgsBuilder -> Bool
== :: ShaderArgsBuilder -> ShaderArgsBuilder -> Bool
$c/= :: ShaderArgsBuilder -> ShaderArgsBuilder -> Bool
/= :: ShaderArgsBuilder -> ShaderArgsBuilder -> Bool
Eq)
instance SP.ManagedPtrNewtype ShaderArgsBuilder where
toManagedPtr :: ShaderArgsBuilder -> ManagedPtr ShaderArgsBuilder
toManagedPtr (ShaderArgsBuilder ManagedPtr ShaderArgsBuilder
p) = ManagedPtr ShaderArgsBuilder
p
foreign import ccall "gsk_shader_args_builder_get_type" c_gsk_shader_args_builder_get_type ::
IO GType
type instance O.ParentTypes ShaderArgsBuilder = '[]
instance O.HasParentTypes ShaderArgsBuilder
instance B.Types.TypedObject ShaderArgsBuilder where
glibType :: IO GType
glibType = IO GType
c_gsk_shader_args_builder_get_type
instance B.Types.GBoxed ShaderArgsBuilder
instance B.GValue.IsGValue (Maybe ShaderArgsBuilder) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gsk_shader_args_builder_get_type
gvalueSet_ :: Ptr GValue -> Maybe ShaderArgsBuilder -> IO ()
gvalueSet_ Ptr GValue
gv Maybe ShaderArgsBuilder
P.Nothing = Ptr GValue -> Ptr ShaderArgsBuilder -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr ShaderArgsBuilder
forall a. Ptr a
FP.nullPtr :: FP.Ptr ShaderArgsBuilder)
gvalueSet_ Ptr GValue
gv (P.Just ShaderArgsBuilder
obj) = ShaderArgsBuilder -> (Ptr ShaderArgsBuilder -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ShaderArgsBuilder
obj (Ptr GValue -> Ptr ShaderArgsBuilder -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe ShaderArgsBuilder)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr ShaderArgsBuilder)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr ShaderArgsBuilder)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newBoxed ShaderArgsBuilder ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ShaderArgsBuilder
type instance O.AttributeList ShaderArgsBuilder = ShaderArgsBuilderAttributeList
type ShaderArgsBuilderAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "gsk_shader_args_builder_new" gsk_shader_args_builder_new ::
Ptr Gsk.GLShader.GLShader ->
Ptr GLib.Bytes.Bytes ->
IO (Ptr ShaderArgsBuilder)
{-# DEPRECATED shaderArgsBuilderNew ["(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."] #-}
shaderArgsBuilderNew ::
(B.CallStack.HasCallStack, MonadIO m, Gsk.GLShader.IsGLShader a) =>
a
-> Maybe (GLib.Bytes.Bytes)
-> m ShaderArgsBuilder
shaderArgsBuilderNew :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGLShader a) =>
a -> Maybe Bytes -> m ShaderArgsBuilder
shaderArgsBuilderNew a
shader Maybe Bytes
initialValues = IO ShaderArgsBuilder -> m ShaderArgsBuilder
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ShaderArgsBuilder -> m ShaderArgsBuilder)
-> IO ShaderArgsBuilder -> m ShaderArgsBuilder
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
maybeInitialValues <- case initialValues of
Maybe Bytes
Nothing -> Ptr Bytes -> IO (Ptr Bytes)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Bytes
forall a. Ptr a
FP.nullPtr
Just Bytes
jInitialValues -> do
jInitialValues' <- Bytes -> IO (Ptr Bytes)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Bytes
jInitialValues
return jInitialValues'
result <- gsk_shader_args_builder_new shader' maybeInitialValues
checkUnexpectedReturnNULL "shaderArgsBuilderNew" result
result' <- (wrapBoxed ShaderArgsBuilder) result
touchManagedPtr shader
whenJust initialValues touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gsk_shader_args_builder_ref" gsk_shader_args_builder_ref ::
Ptr ShaderArgsBuilder ->
IO (Ptr ShaderArgsBuilder)
{-# DEPRECATED shaderArgsBuilderRef ["(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."] #-}
shaderArgsBuilderRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> m ShaderArgsBuilder
shaderArgsBuilderRef :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> m ShaderArgsBuilder
shaderArgsBuilderRef ShaderArgsBuilder
builder = IO ShaderArgsBuilder -> m ShaderArgsBuilder
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ShaderArgsBuilder -> m ShaderArgsBuilder)
-> IO ShaderArgsBuilder -> m ShaderArgsBuilder
forall a b. (a -> b) -> a -> b
$ do
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
result <- gsk_shader_args_builder_ref builder'
checkUnexpectedReturnNULL "shaderArgsBuilderRef" result
result' <- (wrapBoxed ShaderArgsBuilder) result
touchManagedPtr builder
return result'
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderRefMethodInfo
instance (signature ~ (m ShaderArgsBuilder), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderRefMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderRef
instance O.OverloadedMethodInfo ShaderArgsBuilderRefMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderRef",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderRef"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_bool" gsk_shader_args_builder_set_bool ::
Ptr ShaderArgsBuilder ->
Int32 ->
CInt ->
IO ()
{-# DEPRECATED shaderArgsBuilderSetBool ["(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."] #-}
shaderArgsBuilderSetBool ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Bool
-> m ()
shaderArgsBuilderSetBool :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Bool -> m ()
shaderArgsBuilderSetBool ShaderArgsBuilder
builder Int32
idx Bool
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
let value' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
value
gsk_shader_args_builder_set_bool builder' idx value'
touchManagedPtr builder
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetBoolMethodInfo
instance (signature ~ (Int32 -> Bool -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetBoolMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetBool
instance O.OverloadedMethodInfo ShaderArgsBuilderSetBoolMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetBool",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetBool"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_float" gsk_shader_args_builder_set_float ::
Ptr ShaderArgsBuilder ->
Int32 ->
CFloat ->
IO ()
shaderArgsBuilderSetFloat ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Float
-> m ()
shaderArgsBuilderSetFloat :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Float -> m ()
shaderArgsBuilderSetFloat ShaderArgsBuilder
builder Int32
idx Float
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
let value' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
value
gsk_shader_args_builder_set_float builder' idx value'
touchManagedPtr builder
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetFloatMethodInfo
instance (signature ~ (Int32 -> Float -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetFloatMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetFloat
instance O.OverloadedMethodInfo ShaderArgsBuilderSetFloatMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetFloat",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetFloat"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_int" gsk_shader_args_builder_set_int ::
Ptr ShaderArgsBuilder ->
Int32 ->
Int32 ->
IO ()
{-# DEPRECATED shaderArgsBuilderSetInt ["(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."] #-}
shaderArgsBuilderSetInt ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Int32
-> m ()
shaderArgsBuilderSetInt :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Int32 -> m ()
shaderArgsBuilderSetInt ShaderArgsBuilder
builder Int32
idx Int32
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
gsk_shader_args_builder_set_int builder' idx value
touchManagedPtr builder
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetIntMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetIntMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetInt
instance O.OverloadedMethodInfo ShaderArgsBuilderSetIntMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetInt",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetInt"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_uint" gsk_shader_args_builder_set_uint ::
Ptr ShaderArgsBuilder ->
Int32 ->
Word32 ->
IO ()
{-# DEPRECATED shaderArgsBuilderSetUint ["(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."] #-}
shaderArgsBuilderSetUint ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Word32
-> m ()
shaderArgsBuilderSetUint :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Word32 -> m ()
shaderArgsBuilderSetUint ShaderArgsBuilder
builder Int32
idx Word32
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
gsk_shader_args_builder_set_uint builder' idx value
touchManagedPtr builder
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetUintMethodInfo
instance (signature ~ (Int32 -> Word32 -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetUintMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetUint
instance O.OverloadedMethodInfo ShaderArgsBuilderSetUintMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetUint",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetUint"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_vec2" gsk_shader_args_builder_set_vec2 ::
Ptr ShaderArgsBuilder ->
Int32 ->
Ptr Graphene.Vec2.Vec2 ->
IO ()
{-# DEPRECATED shaderArgsBuilderSetVec2 ["(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."] #-}
shaderArgsBuilderSetVec2 ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Graphene.Vec2.Vec2
-> m ()
shaderArgsBuilderSetVec2 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Vec2 -> m ()
shaderArgsBuilderSetVec2 ShaderArgsBuilder
builder Int32
idx Vec2
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
value' <- unsafeManagedPtrGetPtr value
gsk_shader_args_builder_set_vec2 builder' idx value'
touchManagedPtr builder
touchManagedPtr value
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetVec2MethodInfo
instance (signature ~ (Int32 -> Graphene.Vec2.Vec2 -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetVec2MethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetVec2
instance O.OverloadedMethodInfo ShaderArgsBuilderSetVec2MethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetVec2",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetVec2"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_vec3" gsk_shader_args_builder_set_vec3 ::
Ptr ShaderArgsBuilder ->
Int32 ->
Ptr Graphene.Vec3.Vec3 ->
IO ()
{-# DEPRECATED shaderArgsBuilderSetVec3 ["(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."] #-}
shaderArgsBuilderSetVec3 ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Graphene.Vec3.Vec3
-> m ()
shaderArgsBuilderSetVec3 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Vec3 -> m ()
shaderArgsBuilderSetVec3 ShaderArgsBuilder
builder Int32
idx Vec3
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
value' <- unsafeManagedPtrGetPtr value
gsk_shader_args_builder_set_vec3 builder' idx value'
touchManagedPtr builder
touchManagedPtr value
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetVec3MethodInfo
instance (signature ~ (Int32 -> Graphene.Vec3.Vec3 -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetVec3MethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetVec3
instance O.OverloadedMethodInfo ShaderArgsBuilderSetVec3MethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetVec3",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetVec3"
})
#endif
foreign import ccall "gsk_shader_args_builder_set_vec4" gsk_shader_args_builder_set_vec4 ::
Ptr ShaderArgsBuilder ->
Int32 ->
Ptr Graphene.Vec4.Vec4 ->
IO ()
{-# DEPRECATED shaderArgsBuilderSetVec4 ["(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."] #-}
shaderArgsBuilderSetVec4 ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> Int32
-> Graphene.Vec4.Vec4
-> m ()
shaderArgsBuilderSetVec4 :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> Int32 -> Vec4 -> m ()
shaderArgsBuilderSetVec4 ShaderArgsBuilder
builder Int32
idx Vec4
value = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
value' <- unsafeManagedPtrGetPtr value
gsk_shader_args_builder_set_vec4 builder' idx value'
touchManagedPtr builder
touchManagedPtr value
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderSetVec4MethodInfo
instance (signature ~ (Int32 -> Graphene.Vec4.Vec4 -> m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderSetVec4MethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderSetVec4
instance O.OverloadedMethodInfo ShaderArgsBuilderSetVec4MethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderSetVec4",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderSetVec4"
})
#endif
foreign import ccall "gsk_shader_args_builder_to_args" gsk_shader_args_builder_to_args ::
Ptr ShaderArgsBuilder ->
IO (Ptr GLib.Bytes.Bytes)
{-# DEPRECATED shaderArgsBuilderToArgs ["(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."] #-}
shaderArgsBuilderToArgs ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> m GLib.Bytes.Bytes
shaderArgsBuilderToArgs :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> m Bytes
shaderArgsBuilderToArgs ShaderArgsBuilder
builder = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
result <- gsk_shader_args_builder_to_args builder'
checkUnexpectedReturnNULL "shaderArgsBuilderToArgs" result
result' <- (wrapBoxed GLib.Bytes.Bytes) result
touchManagedPtr builder
return result'
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderToArgsMethodInfo
instance (signature ~ (m GLib.Bytes.Bytes), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderToArgsMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderToArgs
instance O.OverloadedMethodInfo ShaderArgsBuilderToArgsMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderToArgs",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderToArgs"
})
#endif
foreign import ccall "gsk_shader_args_builder_unref" gsk_shader_args_builder_unref ::
Ptr ShaderArgsBuilder ->
IO ()
{-# DEPRECATED shaderArgsBuilderUnref ["(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."] #-}
shaderArgsBuilderUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
ShaderArgsBuilder
-> m ()
shaderArgsBuilderUnref :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ShaderArgsBuilder -> m ()
shaderArgsBuilderUnref ShaderArgsBuilder
builder = 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
builder' <- ShaderArgsBuilder -> IO (Ptr ShaderArgsBuilder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ShaderArgsBuilder
builder
gsk_shader_args_builder_unref builder'
touchManagedPtr builder
return ()
#if defined(ENABLE_OVERLOADING)
data ShaderArgsBuilderUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod ShaderArgsBuilderUnrefMethodInfo ShaderArgsBuilder signature where
overloadedMethod = shaderArgsBuilderUnref
instance O.OverloadedMethodInfo ShaderArgsBuilderUnrefMethodInfo ShaderArgsBuilder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.ShaderArgsBuilder.shaderArgsBuilderUnref",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-ShaderArgsBuilder.html#v:shaderArgsBuilderUnref"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveShaderArgsBuilderMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveShaderArgsBuilderMethod "ref" o = ShaderArgsBuilderRefMethodInfo
ResolveShaderArgsBuilderMethod "toArgs" o = ShaderArgsBuilderToArgsMethodInfo
ResolveShaderArgsBuilderMethod "unref" o = ShaderArgsBuilderUnrefMethodInfo
ResolveShaderArgsBuilderMethod "setBool" o = ShaderArgsBuilderSetBoolMethodInfo
ResolveShaderArgsBuilderMethod "setFloat" o = ShaderArgsBuilderSetFloatMethodInfo
ResolveShaderArgsBuilderMethod "setInt" o = ShaderArgsBuilderSetIntMethodInfo
ResolveShaderArgsBuilderMethod "setUint" o = ShaderArgsBuilderSetUintMethodInfo
ResolveShaderArgsBuilderMethod "setVec2" o = ShaderArgsBuilderSetVec2MethodInfo
ResolveShaderArgsBuilderMethod "setVec3" o = ShaderArgsBuilderSetVec3MethodInfo
ResolveShaderArgsBuilderMethod "setVec4" o = ShaderArgsBuilderSetVec4MethodInfo
ResolveShaderArgsBuilderMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveShaderArgsBuilderMethod t ShaderArgsBuilder, O.OverloadedMethod info ShaderArgsBuilder p) => OL.IsLabel t (ShaderArgsBuilder -> 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 ~ ResolveShaderArgsBuilderMethod t ShaderArgsBuilder, O.OverloadedMethod info ShaderArgsBuilder p, R.HasField t ShaderArgsBuilder p) => R.HasField t ShaderArgsBuilder p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveShaderArgsBuilderMethod t ShaderArgsBuilder, O.OverloadedMethodInfo info ShaderArgsBuilder) => OL.IsLabel t (O.MethodProxy info ShaderArgsBuilder) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif