{-# language CPP #-}
module Vulkan.Extensions.VK_NV_optical_flow ( getPhysicalDeviceOpticalFlowImageFormatsNV
, createOpticalFlowSessionNV
, withOpticalFlowSessionNV
, destroyOpticalFlowSessionNV
, bindOpticalFlowSessionImageNV
, cmdOpticalFlowExecuteNV
, PhysicalDeviceOpticalFlowFeaturesNV(..)
, PhysicalDeviceOpticalFlowPropertiesNV(..)
, OpticalFlowImageFormatInfoNV(..)
, OpticalFlowImageFormatPropertiesNV(..)
, OpticalFlowSessionCreateInfoNV(..)
, OpticalFlowSessionCreatePrivateDataInfoNV(..)
, OpticalFlowExecuteInfoNV(..)
, OpticalFlowGridSizeFlagsNV
, OpticalFlowGridSizeFlagBitsNV( OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV
, OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV
, OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV
, OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV
, OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV
, ..
)
, OpticalFlowUsageFlagsNV
, OpticalFlowUsageFlagBitsNV( OPTICAL_FLOW_USAGE_UNKNOWN_NV
, OPTICAL_FLOW_USAGE_INPUT_BIT_NV
, OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV
, OPTICAL_FLOW_USAGE_HINT_BIT_NV
, OPTICAL_FLOW_USAGE_COST_BIT_NV
, OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV
, ..
)
, OpticalFlowPerformanceLevelNV( OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV
, OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV
, OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV
, OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV
, ..
)
, OpticalFlowSessionBindingPointNV( OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV
, ..
)
, OpticalFlowSessionCreateFlagsNV
, OpticalFlowSessionCreateFlagBitsNV( OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV
, OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV
, OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV
, OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV
, OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV
, ..
)
, OpticalFlowExecuteFlagsNV
, OpticalFlowExecuteFlagBitsNV( OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV
, ..
)
, NV_OPTICAL_FLOW_SPEC_VERSION
, pattern NV_OPTICAL_FLOW_SPEC_VERSION
, NV_OPTICAL_FLOW_EXTENSION_NAME
, pattern NV_OPTICAL_FLOW_EXTENSION_NAME
, OpticalFlowSessionNV(..)
) where
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import GHC.Show (showsPrec)
import Numeric (showHex)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Type.Equality ((:~:)(Refl))
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Data.Int (Int32)
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.CStruct.Extends (Chain)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Device(Device))
import Vulkan.Dynamic (DeviceCmds(pVkBindOpticalFlowSessionImageNV))
import Vulkan.Dynamic (DeviceCmds(pVkCmdOpticalFlowExecuteNV))
import Vulkan.Dynamic (DeviceCmds(pVkCreateOpticalFlowSessionNV))
import Vulkan.Dynamic (DeviceCmds(pVkDestroyOpticalFlowSessionNV))
import Vulkan.Core10.Handles (Device_T)
import Vulkan.CStruct.Extends (Extends)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.CStruct.Extends (Extensible(..))
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Core10.Enums.Format (Format)
import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))
import Vulkan.Core10.Handles (ImageView)
import Vulkan.Core10.Handles (ImageView(..))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceOpticalFlowImageFormatsNV))
import Vulkan.Extensions.Handles (OpticalFlowSessionNV)
import Vulkan.Extensions.Handles (OpticalFlowSessionNV(..))
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
import Vulkan.Core10.Handles (PhysicalDevice_T)
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import Vulkan.Core10.FundamentalTypes (Rect2D)
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.Handles (OpticalFlowSessionNV(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceOpticalFlowImageFormatsNV
:: FunPtr (Ptr PhysicalDevice_T -> Ptr OpticalFlowImageFormatInfoNV -> Ptr Word32 -> Ptr OpticalFlowImageFormatPropertiesNV -> IO Result) -> Ptr PhysicalDevice_T -> Ptr OpticalFlowImageFormatInfoNV -> Ptr Word32 -> Ptr OpticalFlowImageFormatPropertiesNV -> IO Result
getPhysicalDeviceOpticalFlowImageFormatsNV :: forall io
. (MonadIO io)
=>
PhysicalDevice
->
OpticalFlowImageFormatInfoNV
-> io (Result, ("imageFormatProperties" ::: Vector OpticalFlowImageFormatPropertiesNV))
getPhysicalDeviceOpticalFlowImageFormatsNV :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> OpticalFlowImageFormatInfoNV
-> io
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
getPhysicalDeviceOpticalFlowImageFormatsNV PhysicalDevice
physicalDevice
OpticalFlowImageFormatInfoNV
opticalFlowImageFormatInfo = IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> io
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> io
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> (ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> io
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> io
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> io
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr :: FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
pVkGetPhysicalDeviceOpticalFlowImageFormatsNV (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
())
-> IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceOpticalFlowImageFormatsNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetPhysicalDeviceOpticalFlowImageFormatsNV' :: Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result
vkGetPhysicalDeviceOpticalFlowImageFormatsNV' = FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
-> Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result
mkVkGetPhysicalDeviceOpticalFlowImageFormatsNV FunPtr
(Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result)
vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
Ptr OpticalFlowImageFormatInfoNV
pOpticalFlowImageFormatInfo <- ((Ptr OpticalFlowImageFormatInfoNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr OpticalFlowImageFormatInfoNV)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr OpticalFlowImageFormatInfoNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr OpticalFlowImageFormatInfoNV))
-> ((Ptr OpticalFlowImageFormatInfoNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr OpticalFlowImageFormatInfoNV)
forall a b. (a -> b) -> a -> b
$ OpticalFlowImageFormatInfoNV
-> (Ptr OpticalFlowImageFormatInfoNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
OpticalFlowImageFormatInfoNV
-> (Ptr OpticalFlowImageFormatInfoNV -> IO b) -> IO b
withCStruct (OpticalFlowImageFormatInfoNV
opticalFlowImageFormatInfo)
Ptr Flags
pPFormatCount <- ((Ptr Flags
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr Flags)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Flags
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr Flags))
-> ((Ptr Flags
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr Flags)
forall a b. (a -> b) -> a -> b
$ IO (Ptr Flags)
-> (Ptr Flags -> IO ())
-> (Ptr Flags
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) Ptr Flags -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Result
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Result)
-> IO Result
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceOpticalFlowImageFormatsNV" (Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result
vkGetPhysicalDeviceOpticalFlowImageFormatsNV'
Ptr PhysicalDevice_T
physicalDevice'
Ptr OpticalFlowImageFormatInfoNV
pOpticalFlowImageFormatInfo
(Ptr Flags
pPFormatCount)
(Ptr OpticalFlowImageFormatPropertiesNV
forall a. Ptr a
nullPtr))
IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
())
-> IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
Flags
pFormatCount <- IO Flags
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Flags
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Flags
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Flags)
-> IO Flags
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Flags
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 Ptr Flags
pPFormatCount
Ptr OpticalFlowImageFormatPropertiesNV
pPImageFormatProperties <- ((Ptr OpticalFlowImageFormatPropertiesNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr OpticalFlowImageFormatPropertiesNV)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr OpticalFlowImageFormatPropertiesNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr OpticalFlowImageFormatPropertiesNV))
-> ((Ptr OpticalFlowImageFormatPropertiesNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Ptr OpticalFlowImageFormatPropertiesNV)
forall a b. (a -> b) -> a -> b
$ IO (Ptr OpticalFlowImageFormatPropertiesNV)
-> (Ptr OpticalFlowImageFormatPropertiesNV -> IO ())
-> (Ptr OpticalFlowImageFormatPropertiesNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @OpticalFlowImageFormatPropertiesNV ((Flags -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Flags
pFormatCount)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
24)) Ptr OpticalFlowImageFormatPropertiesNV -> IO ()
forall a. Ptr a -> IO ()
free
[()]
_ <- (Int
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
())
-> [Int]
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
[()]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse (\Int
i -> ((()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
())
-> ((()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowImageFormatPropertiesNV
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall b. Ptr OpticalFlowImageFormatPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr OpticalFlowImageFormatPropertiesNV
pPImageFormatProperties Ptr OpticalFlowImageFormatPropertiesNV
-> Int -> Ptr OpticalFlowImageFormatPropertiesNV
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
24) :: Ptr OpticalFlowImageFormatPropertiesNV) (IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ((()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> (()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> ()
-> IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b. (a -> b) -> a -> b
$ ())) [Int
0..(Flags -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Flags
pFormatCount)) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1]
Result
r' <- IO Result
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Result
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Result)
-> IO Result
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceOpticalFlowImageFormatsNV" (Ptr PhysicalDevice_T
-> Ptr OpticalFlowImageFormatInfoNV
-> Ptr Flags
-> Ptr OpticalFlowImageFormatPropertiesNV
-> IO Result
vkGetPhysicalDeviceOpticalFlowImageFormatsNV'
Ptr PhysicalDevice_T
physicalDevice'
Ptr OpticalFlowImageFormatInfoNV
pOpticalFlowImageFormatInfo
(Ptr Flags
pPFormatCount)
((Ptr OpticalFlowImageFormatPropertiesNV
pPImageFormatProperties)))
IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
())
-> IO ()
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r' Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r'))
Flags
pFormatCount' <- IO Flags
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Flags
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Flags
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Flags)
-> IO Flags
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
Flags
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 Ptr Flags
pPFormatCount
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV
pImageFormatProperties' <- IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b. (a -> b) -> a -> b
$ Int
-> (Int -> IO OpticalFlowImageFormatPropertiesNV)
-> IO
("imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Flags -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Flags
pFormatCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @OpticalFlowImageFormatPropertiesNV (((Ptr OpticalFlowImageFormatPropertiesNV
pPImageFormatProperties) Ptr OpticalFlowImageFormatPropertiesNV
-> Int -> Ptr OpticalFlowImageFormatPropertiesNV
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
24 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr OpticalFlowImageFormatPropertiesNV)))
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a.
a
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ((Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV))
-> (Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
-> ContT
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
IO
(Result,
"imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV)
forall a b. (a -> b) -> a -> b
$ ((Result
r'), "imageFormatProperties"
::: Vector OpticalFlowImageFormatPropertiesNV
pImageFormatProperties')
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCreateOpticalFlowSessionNV
:: FunPtr (Ptr Device_T -> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV) -> Ptr AllocationCallbacks -> Ptr OpticalFlowSessionNV -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV) -> Ptr AllocationCallbacks -> Ptr OpticalFlowSessionNV -> IO Result
createOpticalFlowSessionNV :: forall a io
. ( Extendss OpticalFlowSessionCreateInfoNV a
, PokeChain a
, MonadIO io )
=>
Device
->
(OpticalFlowSessionCreateInfoNV a)
->
("allocator" ::: Maybe AllocationCallbacks)
-> io (OpticalFlowSessionNV)
createOpticalFlowSessionNV :: forall (a :: [*]) (io :: * -> *).
(Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a,
MonadIO io) =>
Device
-> OpticalFlowSessionCreateInfoNV a
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io OpticalFlowSessionNV
createOpticalFlowSessionNV Device
device OpticalFlowSessionCreateInfoNV a
createInfo "allocator" ::: Maybe AllocationCallbacks
allocator = IO OpticalFlowSessionNV -> io OpticalFlowSessionNV
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO OpticalFlowSessionNV -> io OpticalFlowSessionNV)
-> (ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
-> io OpticalFlowSessionNV
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
-> IO OpticalFlowSessionNV
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
-> io OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
-> io OpticalFlowSessionNV
forall a b. (a -> b) -> a -> b
$ do
let vkCreateOpticalFlowSessionNVPtr :: FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
vkCreateOpticalFlowSessionNVPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
pVkCreateOpticalFlowSessionNV (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT OpticalFlowSessionNV IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT OpticalFlowSessionNV m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT OpticalFlowSessionNV IO ())
-> IO () -> ContT OpticalFlowSessionNV IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
vkCreateOpticalFlowSessionNVPtr FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCreateOpticalFlowSessionNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCreateOpticalFlowSessionNV' :: Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result
vkCreateOpticalFlowSessionNV' = FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
-> Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result
mkVkCreateOpticalFlowSessionNV FunPtr
(Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result)
vkCreateOpticalFlowSessionNVPtr
Ptr (OpticalFlowSessionCreateInfoNV a)
pCreateInfo <- ((Ptr (OpticalFlowSessionCreateInfoNV a)
-> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT
OpticalFlowSessionNV IO (Ptr (OpticalFlowSessionCreateInfoNV a))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (OpticalFlowSessionCreateInfoNV a)
-> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT
OpticalFlowSessionNV IO (Ptr (OpticalFlowSessionCreateInfoNV a)))
-> ((Ptr (OpticalFlowSessionCreateInfoNV a)
-> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT
OpticalFlowSessionNV IO (Ptr (OpticalFlowSessionCreateInfoNV a))
forall a b. (a -> b) -> a -> b
$ OpticalFlowSessionCreateInfoNV a
-> (Ptr (OpticalFlowSessionCreateInfoNV a)
-> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
OpticalFlowSessionCreateInfoNV a
-> (Ptr (OpticalFlowSessionCreateInfoNV a) -> IO b) -> IO b
withCStruct (OpticalFlowSessionCreateInfoNV a
createInfo)
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks
-> ContT OpticalFlowSessionNV IO (Ptr AllocationCallbacks)
forall a. a -> ContT OpticalFlowSessionNV IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO (Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO (Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO (Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks
-> (Ptr AllocationCallbacks -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AllocationCallbacks -> (Ptr AllocationCallbacks -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
Ptr OpticalFlowSessionNV
pPSession <- ((Ptr OpticalFlowSessionNV -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO (Ptr OpticalFlowSessionNV)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr OpticalFlowSessionNV -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO (Ptr OpticalFlowSessionNV))
-> ((Ptr OpticalFlowSessionNV -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV)
-> ContT OpticalFlowSessionNV IO (Ptr OpticalFlowSessionNV)
forall a b. (a -> b) -> a -> b
$ IO (Ptr OpticalFlowSessionNV)
-> (Ptr OpticalFlowSessionNV -> IO ())
-> (Ptr OpticalFlowSessionNV -> IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @OpticalFlowSessionNV Int
8) Ptr OpticalFlowSessionNV -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result -> ContT OpticalFlowSessionNV IO Result
forall (m :: * -> *) a.
Monad m =>
m a -> ContT OpticalFlowSessionNV m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT OpticalFlowSessionNV IO Result)
-> IO Result -> ContT OpticalFlowSessionNV IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCreateOpticalFlowSessionNV" (Ptr Device_T
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
-> Ptr AllocationCallbacks
-> Ptr OpticalFlowSessionNV
-> IO Result
vkCreateOpticalFlowSessionNV'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(Ptr (OpticalFlowSessionCreateInfoNV a)
-> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions Ptr (OpticalFlowSessionCreateInfoNV a)
pCreateInfo)
Ptr AllocationCallbacks
pAllocator
(Ptr OpticalFlowSessionNV
pPSession))
IO () -> ContT OpticalFlowSessionNV IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT OpticalFlowSessionNV m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT OpticalFlowSessionNV IO ())
-> IO () -> ContT OpticalFlowSessionNV IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
OpticalFlowSessionNV
pSession <- IO OpticalFlowSessionNV
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
forall (m :: * -> *) a.
Monad m =>
m a -> ContT OpticalFlowSessionNV m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO OpticalFlowSessionNV
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV)
-> IO OpticalFlowSessionNV
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowSessionNV Ptr OpticalFlowSessionNV
pPSession
OpticalFlowSessionNV
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
forall a. a -> ContT OpticalFlowSessionNV IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OpticalFlowSessionNV
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV)
-> OpticalFlowSessionNV
-> ContT OpticalFlowSessionNV IO OpticalFlowSessionNV
forall a b. (a -> b) -> a -> b
$ (OpticalFlowSessionNV
pSession)
withOpticalFlowSessionNV :: forall a io r . (Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a, MonadIO io) => Device -> OpticalFlowSessionCreateInfoNV a -> Maybe AllocationCallbacks -> (io OpticalFlowSessionNV -> (OpticalFlowSessionNV -> io ()) -> r) -> r
withOpticalFlowSessionNV :: forall (a :: [*]) (io :: * -> *) r.
(Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a,
MonadIO io) =>
Device
-> OpticalFlowSessionCreateInfoNV a
-> ("allocator" ::: Maybe AllocationCallbacks)
-> (io OpticalFlowSessionNV
-> (OpticalFlowSessionNV -> io ()) -> r)
-> r
withOpticalFlowSessionNV Device
device OpticalFlowSessionCreateInfoNV a
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator io OpticalFlowSessionNV -> (OpticalFlowSessionNV -> io ()) -> r
b =
io OpticalFlowSessionNV -> (OpticalFlowSessionNV -> io ()) -> r
b (Device
-> OpticalFlowSessionCreateInfoNV a
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io OpticalFlowSessionNV
forall (a :: [*]) (io :: * -> *).
(Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a,
MonadIO io) =>
Device
-> OpticalFlowSessionCreateInfoNV a
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io OpticalFlowSessionNV
createOpticalFlowSessionNV Device
device OpticalFlowSessionCreateInfoNV a
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator)
(\(OpticalFlowSessionNV
o0) -> Device
-> OpticalFlowSessionNV
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
forall (io :: * -> *).
MonadIO io =>
Device
-> OpticalFlowSessionNV
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyOpticalFlowSessionNV Device
device OpticalFlowSessionNV
o0 "allocator" ::: Maybe AllocationCallbacks
pAllocator)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkDestroyOpticalFlowSessionNV
:: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ()
destroyOpticalFlowSessionNV :: forall io
. (MonadIO io)
=>
Device
->
OpticalFlowSessionNV
->
("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyOpticalFlowSessionNV :: forall (io :: * -> *).
MonadIO io =>
Device
-> OpticalFlowSessionNV
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyOpticalFlowSessionNV Device
device OpticalFlowSessionNV
session "allocator" ::: Maybe AllocationCallbacks
allocator = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkDestroyOpticalFlowSessionNVPtr :: FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
vkDestroyOpticalFlowSessionNVPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
pVkDestroyOpticalFlowSessionNV (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
vkDestroyOpticalFlowSessionNVPtr FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
-> FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkDestroyOpticalFlowSessionNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkDestroyOpticalFlowSessionNV' :: Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ()
vkDestroyOpticalFlowSessionNV' = FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
-> Ptr Device_T
-> OpticalFlowSessionNV
-> Ptr AllocationCallbacks
-> IO ()
mkVkDestroyOpticalFlowSessionNV FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ())
vkDestroyOpticalFlowSessionNVPtr
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks -> ContT () IO (Ptr AllocationCallbacks)
forall a. a -> ContT () IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks -> (Ptr AllocationCallbacks -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AllocationCallbacks -> (Ptr AllocationCallbacks -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkDestroyOpticalFlowSessionNV" (Ptr Device_T
-> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ()
vkDestroyOpticalFlowSessionNV'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(OpticalFlowSessionNV
session)
Ptr AllocationCallbacks
pAllocator)
() -> ContT () IO ()
forall a. a -> ContT () IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkBindOpticalFlowSessionImageNV
:: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) -> Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result
bindOpticalFlowSessionImageNV :: forall io
. (MonadIO io)
=>
Device
->
OpticalFlowSessionNV
->
OpticalFlowSessionBindingPointNV
->
ImageView
->
ImageLayout
-> io ()
bindOpticalFlowSessionImageNV :: forall (io :: * -> *).
MonadIO io =>
Device
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> io ()
bindOpticalFlowSessionImageNV Device
device
OpticalFlowSessionNV
session
OpticalFlowSessionBindingPointNV
bindingPoint
ImageView
view
ImageLayout
layout = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkBindOpticalFlowSessionImageNVPtr :: FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
vkBindOpticalFlowSessionImageNVPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
pVkBindOpticalFlowSessionImageNV (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
vkBindOpticalFlowSessionImageNVPtr FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
-> FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkBindOpticalFlowSessionImageNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkBindOpticalFlowSessionImageNV' :: Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result
vkBindOpticalFlowSessionImageNV' = FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
-> Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result
mkVkBindOpticalFlowSessionImageNV FunPtr
(Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result)
vkBindOpticalFlowSessionImageNVPtr
Result
r <- String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkBindOpticalFlowSessionImageNV" (Ptr Device_T
-> OpticalFlowSessionNV
-> OpticalFlowSessionBindingPointNV
-> ImageView
-> ImageLayout
-> IO Result
vkBindOpticalFlowSessionImageNV'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(OpticalFlowSessionNV
session)
(OpticalFlowSessionBindingPointNV
bindingPoint)
(ImageView
view)
(ImageLayout
layout))
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdOpticalFlowExecuteNV
:: FunPtr (Ptr CommandBuffer_T -> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ()) -> Ptr CommandBuffer_T -> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ()
cmdOpticalFlowExecuteNV :: forall io
. (MonadIO io)
=>
CommandBuffer
->
OpticalFlowSessionNV
->
OpticalFlowExecuteInfoNV
-> io ()
cmdOpticalFlowExecuteNV :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> OpticalFlowSessionNV -> OpticalFlowExecuteInfoNV -> io ()
cmdOpticalFlowExecuteNV CommandBuffer
commandBuffer
OpticalFlowSessionNV
session
OpticalFlowExecuteInfoNV
executeInfo = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdOpticalFlowExecuteNVPtr :: FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
vkCmdOpticalFlowExecuteNVPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
pVkCmdOpticalFlowExecuteNV (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
vkCmdOpticalFlowExecuteNVPtr FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdOpticalFlowExecuteNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdOpticalFlowExecuteNV' :: Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ()
vkCmdOpticalFlowExecuteNV' = FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
-> Ptr CommandBuffer_T
-> OpticalFlowSessionNV
-> Ptr OpticalFlowExecuteInfoNV
-> IO ()
mkVkCmdOpticalFlowExecuteNV FunPtr
(Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ())
vkCmdOpticalFlowExecuteNVPtr
Ptr OpticalFlowExecuteInfoNV
pExecuteInfo <- ((Ptr OpticalFlowExecuteInfoNV -> IO ()) -> IO ())
-> ContT () IO (Ptr OpticalFlowExecuteInfoNV)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr OpticalFlowExecuteInfoNV -> IO ()) -> IO ())
-> ContT () IO (Ptr OpticalFlowExecuteInfoNV))
-> ((Ptr OpticalFlowExecuteInfoNV -> IO ()) -> IO ())
-> ContT () IO (Ptr OpticalFlowExecuteInfoNV)
forall a b. (a -> b) -> a -> b
$ OpticalFlowExecuteInfoNV
-> (Ptr OpticalFlowExecuteInfoNV -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
OpticalFlowExecuteInfoNV
-> (Ptr OpticalFlowExecuteInfoNV -> IO b) -> IO b
withCStruct (OpticalFlowExecuteInfoNV
executeInfo)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdOpticalFlowExecuteNV" (Ptr CommandBuffer_T
-> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ()
vkCmdOpticalFlowExecuteNV'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(OpticalFlowSessionNV
session)
Ptr OpticalFlowExecuteInfoNV
pExecuteInfo)
() -> ContT () IO ()
forall a. a -> ContT () IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
data PhysicalDeviceOpticalFlowFeaturesNV = PhysicalDeviceOpticalFlowFeaturesNV
{
PhysicalDeviceOpticalFlowFeaturesNV -> Bool
opticalFlow :: Bool }
deriving (Typeable, PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool
(PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool)
-> (PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool)
-> Eq PhysicalDeviceOpticalFlowFeaturesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool
== :: PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool
$c/= :: PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool
/= :: PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceOpticalFlowFeaturesNV)
#endif
deriving instance Show PhysicalDeviceOpticalFlowFeaturesNV
instance ToCStruct PhysicalDeviceOpticalFlowFeaturesNV where
withCStruct :: forall b.
PhysicalDeviceOpticalFlowFeaturesNV
-> (Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b) -> IO b
withCStruct PhysicalDeviceOpticalFlowFeaturesNV
x Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b
f = Int -> (Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b) -> IO b)
-> (Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceOpticalFlowFeaturesNV
p -> Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> IO b -> IO b
forall b.
Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpticalFlowFeaturesNV
p PhysicalDeviceOpticalFlowFeaturesNV
x (Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b
f Ptr PhysicalDeviceOpticalFlowFeaturesNV
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpticalFlowFeaturesNV
p PhysicalDeviceOpticalFlowFeaturesNV{Bool
$sel:opticalFlow:PhysicalDeviceOpticalFlowFeaturesNV :: PhysicalDeviceOpticalFlowFeaturesNV -> Bool
opticalFlow :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
opticalFlow))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr PhysicalDeviceOpticalFlowFeaturesNV -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceOpticalFlowFeaturesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceOpticalFlowFeaturesNV where
peekCStruct :: Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> IO PhysicalDeviceOpticalFlowFeaturesNV
peekCStruct Ptr PhysicalDeviceOpticalFlowFeaturesNV
p = do
Bool32
opticalFlow <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpticalFlowFeaturesNV
p Ptr PhysicalDeviceOpticalFlowFeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceOpticalFlowFeaturesNV
-> IO PhysicalDeviceOpticalFlowFeaturesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceOpticalFlowFeaturesNV
-> IO PhysicalDeviceOpticalFlowFeaturesNV)
-> PhysicalDeviceOpticalFlowFeaturesNV
-> IO PhysicalDeviceOpticalFlowFeaturesNV
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceOpticalFlowFeaturesNV
PhysicalDeviceOpticalFlowFeaturesNV
(Bool32 -> Bool
bool32ToBool Bool32
opticalFlow)
instance Storable PhysicalDeviceOpticalFlowFeaturesNV where
sizeOf :: PhysicalDeviceOpticalFlowFeaturesNV -> Int
sizeOf ~PhysicalDeviceOpticalFlowFeaturesNV
_ = Int
24
alignment :: PhysicalDeviceOpticalFlowFeaturesNV -> Int
alignment ~PhysicalDeviceOpticalFlowFeaturesNV
_ = Int
8
peek :: Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> IO PhysicalDeviceOpticalFlowFeaturesNV
peek = Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> IO PhysicalDeviceOpticalFlowFeaturesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> IO ()
poke Ptr PhysicalDeviceOpticalFlowFeaturesNV
ptr PhysicalDeviceOpticalFlowFeaturesNV
poked = Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceOpticalFlowFeaturesNV
-> PhysicalDeviceOpticalFlowFeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpticalFlowFeaturesNV
ptr PhysicalDeviceOpticalFlowFeaturesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceOpticalFlowFeaturesNV where
zero :: PhysicalDeviceOpticalFlowFeaturesNV
zero = Bool -> PhysicalDeviceOpticalFlowFeaturesNV
PhysicalDeviceOpticalFlowFeaturesNV
Bool
forall a. Zero a => a
zero
data PhysicalDeviceOpticalFlowPropertiesNV = PhysicalDeviceOpticalFlowPropertiesNV
{
PhysicalDeviceOpticalFlowPropertiesNV -> OpticalFlowGridSizeFlagsNV
supportedOutputGridSizes :: OpticalFlowGridSizeFlagsNV
,
PhysicalDeviceOpticalFlowPropertiesNV -> OpticalFlowGridSizeFlagsNV
supportedHintGridSizes :: OpticalFlowGridSizeFlagsNV
,
PhysicalDeviceOpticalFlowPropertiesNV -> Bool
hintSupported :: Bool
,
PhysicalDeviceOpticalFlowPropertiesNV -> Bool
costSupported :: Bool
,
PhysicalDeviceOpticalFlowPropertiesNV -> Bool
bidirectionalFlowSupported :: Bool
,
PhysicalDeviceOpticalFlowPropertiesNV -> Bool
globalFlowSupported :: Bool
,
PhysicalDeviceOpticalFlowPropertiesNV -> Flags
minWidth :: Word32
,
PhysicalDeviceOpticalFlowPropertiesNV -> Flags
minHeight :: Word32
,
PhysicalDeviceOpticalFlowPropertiesNV -> Flags
maxWidth :: Word32
,
PhysicalDeviceOpticalFlowPropertiesNV -> Flags
maxHeight :: Word32
,
PhysicalDeviceOpticalFlowPropertiesNV -> Flags
maxNumRegionsOfInterest :: Word32
}
deriving (Typeable, PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool
(PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool)
-> (PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool)
-> Eq PhysicalDeviceOpticalFlowPropertiesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool
== :: PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool
$c/= :: PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool
/= :: PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceOpticalFlowPropertiesNV)
#endif
deriving instance Show PhysicalDeviceOpticalFlowPropertiesNV
instance ToCStruct PhysicalDeviceOpticalFlowPropertiesNV where
withCStruct :: forall b.
PhysicalDeviceOpticalFlowPropertiesNV
-> (Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b) -> IO b
withCStruct PhysicalDeviceOpticalFlowPropertiesNV
x Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b
f = Int -> (Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
64 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b) -> IO b)
-> (Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceOpticalFlowPropertiesNV
p -> Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> IO b -> IO b
forall b.
Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpticalFlowPropertiesNV
p PhysicalDeviceOpticalFlowPropertiesNV
x (Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b
f Ptr PhysicalDeviceOpticalFlowPropertiesNV
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpticalFlowPropertiesNV
p PhysicalDeviceOpticalFlowPropertiesNV{Bool
Flags
OpticalFlowGridSizeFlagsNV
$sel:supportedOutputGridSizes:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> OpticalFlowGridSizeFlagsNV
$sel:supportedHintGridSizes:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> OpticalFlowGridSizeFlagsNV
$sel:hintSupported:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Bool
$sel:costSupported:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Bool
$sel:bidirectionalFlowSupported:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Bool
$sel:globalFlowSupported:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Bool
$sel:minWidth:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Flags
$sel:minHeight:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Flags
$sel:maxWidth:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Flags
$sel:maxHeight:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Flags
$sel:maxNumRegionsOfInterest:PhysicalDeviceOpticalFlowPropertiesNV :: PhysicalDeviceOpticalFlowPropertiesNV -> Flags
supportedOutputGridSizes :: OpticalFlowGridSizeFlagsNV
supportedHintGridSizes :: OpticalFlowGridSizeFlagsNV
hintSupported :: Bool
costSupported :: Bool
bidirectionalFlowSupported :: Bool
globalFlowSupported :: Bool
minWidth :: Flags
minHeight :: Flags
maxWidth :: Flags
maxHeight :: Flags
maxNumRegionsOfInterest :: Flags
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
supportedOutputGridSizes)
Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
supportedHintGridSizes)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
hintSupported))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
costSupported))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
bidirectionalFlowSupported))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
globalFlowSupported))
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Flags
minWidth)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) (Flags
minHeight)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Word32)) (Flags
maxWidth)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) (Flags
maxHeight)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32)) (Flags
maxNumRegionsOfInterest)
IO b
f
cStructSize :: Int
cStructSize = Int
64
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr PhysicalDeviceOpticalFlowPropertiesNV -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceOpticalFlowPropertiesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero)
Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceOpticalFlowPropertiesNV where
peekCStruct :: Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> IO PhysicalDeviceOpticalFlowPropertiesNV
peekCStruct Ptr PhysicalDeviceOpticalFlowPropertiesNV
p = do
OpticalFlowGridSizeFlagsNV
supportedOutputGridSizes <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowGridSizeFlagsNV ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowGridSizeFlagsNV))
OpticalFlowGridSizeFlagsNV
supportedHintGridSizes <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowGridSizeFlagsNV ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr OpticalFlowGridSizeFlagsNV))
Bool32
hintSupported <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
Bool32
costSupported <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32))
Bool32
bidirectionalFlowSupported <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32))
Bool32
globalFlowSupported <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32))
Flags
minWidth <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32))
Flags
minHeight <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32))
Flags
maxWidth <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Word32))
Flags
maxHeight <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32))
Flags
maxNumRegionsOfInterest <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpticalFlowPropertiesNV
p Ptr PhysicalDeviceOpticalFlowPropertiesNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32))
PhysicalDeviceOpticalFlowPropertiesNV
-> IO PhysicalDeviceOpticalFlowPropertiesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceOpticalFlowPropertiesNV
-> IO PhysicalDeviceOpticalFlowPropertiesNV)
-> PhysicalDeviceOpticalFlowPropertiesNV
-> IO PhysicalDeviceOpticalFlowPropertiesNV
forall a b. (a -> b) -> a -> b
$ OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV
-> Bool
-> Bool
-> Bool
-> Bool
-> Flags
-> Flags
-> Flags
-> Flags
-> Flags
-> PhysicalDeviceOpticalFlowPropertiesNV
PhysicalDeviceOpticalFlowPropertiesNV
OpticalFlowGridSizeFlagsNV
supportedOutputGridSizes
OpticalFlowGridSizeFlagsNV
supportedHintGridSizes
(Bool32 -> Bool
bool32ToBool Bool32
hintSupported)
(Bool32 -> Bool
bool32ToBool Bool32
costSupported)
(Bool32 -> Bool
bool32ToBool Bool32
bidirectionalFlowSupported)
(Bool32 -> Bool
bool32ToBool Bool32
globalFlowSupported)
Flags
minWidth
Flags
minHeight
Flags
maxWidth
Flags
maxHeight
Flags
maxNumRegionsOfInterest
instance Storable PhysicalDeviceOpticalFlowPropertiesNV where
sizeOf :: PhysicalDeviceOpticalFlowPropertiesNV -> Int
sizeOf ~PhysicalDeviceOpticalFlowPropertiesNV
_ = Int
64
alignment :: PhysicalDeviceOpticalFlowPropertiesNV -> Int
alignment ~PhysicalDeviceOpticalFlowPropertiesNV
_ = Int
8
peek :: Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> IO PhysicalDeviceOpticalFlowPropertiesNV
peek = Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> IO PhysicalDeviceOpticalFlowPropertiesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> IO ()
poke Ptr PhysicalDeviceOpticalFlowPropertiesNV
ptr PhysicalDeviceOpticalFlowPropertiesNV
poked = Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceOpticalFlowPropertiesNV
-> PhysicalDeviceOpticalFlowPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpticalFlowPropertiesNV
ptr PhysicalDeviceOpticalFlowPropertiesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceOpticalFlowPropertiesNV where
zero :: PhysicalDeviceOpticalFlowPropertiesNV
zero = OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV
-> Bool
-> Bool
-> Bool
-> Bool
-> Flags
-> Flags
-> Flags
-> Flags
-> Flags
-> PhysicalDeviceOpticalFlowPropertiesNV
PhysicalDeviceOpticalFlowPropertiesNV
OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero
OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
data OpticalFlowImageFormatInfoNV = OpticalFlowImageFormatInfoNV
{
OpticalFlowImageFormatInfoNV -> OpticalFlowUsageFlagsNV
usage :: OpticalFlowUsageFlagsNV }
deriving (Typeable, OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool
(OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool)
-> (OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool)
-> Eq OpticalFlowImageFormatInfoNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool
== :: OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool
$c/= :: OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool
/= :: OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpticalFlowImageFormatInfoNV)
#endif
deriving instance Show OpticalFlowImageFormatInfoNV
instance ToCStruct OpticalFlowImageFormatInfoNV where
withCStruct :: forall b.
OpticalFlowImageFormatInfoNV
-> (Ptr OpticalFlowImageFormatInfoNV -> IO b) -> IO b
withCStruct OpticalFlowImageFormatInfoNV
x Ptr OpticalFlowImageFormatInfoNV -> IO b
f = Int -> (Ptr OpticalFlowImageFormatInfoNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr OpticalFlowImageFormatInfoNV -> IO b) -> IO b)
-> (Ptr OpticalFlowImageFormatInfoNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr OpticalFlowImageFormatInfoNV
p -> Ptr OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> IO b -> IO b
forall b.
Ptr OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowImageFormatInfoNV
p OpticalFlowImageFormatInfoNV
x (Ptr OpticalFlowImageFormatInfoNV -> IO b
f Ptr OpticalFlowImageFormatInfoNV
p)
pokeCStruct :: forall b.
Ptr OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> IO b -> IO b
pokeCStruct Ptr OpticalFlowImageFormatInfoNV
p OpticalFlowImageFormatInfoNV{OpticalFlowUsageFlagsNV
$sel:usage:OpticalFlowImageFormatInfoNV :: OpticalFlowImageFormatInfoNV -> OpticalFlowUsageFlagsNV
usage :: OpticalFlowUsageFlagsNV
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV
-> Int -> Ptr OpticalFlowUsageFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowUsageFlagsNV)) (OpticalFlowUsageFlagsNV
usage)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr OpticalFlowImageFormatInfoNV -> IO b -> IO b
pokeZeroCStruct Ptr OpticalFlowImageFormatInfoNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV
-> Int -> Ptr OpticalFlowUsageFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowUsageFlagsNV)) (OpticalFlowUsageFlagsNV
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct OpticalFlowImageFormatInfoNV where
peekCStruct :: Ptr OpticalFlowImageFormatInfoNV -> IO OpticalFlowImageFormatInfoNV
peekCStruct Ptr OpticalFlowImageFormatInfoNV
p = do
OpticalFlowUsageFlagsNV
usage <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowUsageFlagsNV ((Ptr OpticalFlowImageFormatInfoNV
p Ptr OpticalFlowImageFormatInfoNV
-> Int -> Ptr OpticalFlowUsageFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowUsageFlagsNV))
OpticalFlowImageFormatInfoNV -> IO OpticalFlowImageFormatInfoNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OpticalFlowImageFormatInfoNV -> IO OpticalFlowImageFormatInfoNV)
-> OpticalFlowImageFormatInfoNV -> IO OpticalFlowImageFormatInfoNV
forall a b. (a -> b) -> a -> b
$ OpticalFlowUsageFlagsNV -> OpticalFlowImageFormatInfoNV
OpticalFlowImageFormatInfoNV
OpticalFlowUsageFlagsNV
usage
instance Storable OpticalFlowImageFormatInfoNV where
sizeOf :: OpticalFlowImageFormatInfoNV -> Int
sizeOf ~OpticalFlowImageFormatInfoNV
_ = Int
24
alignment :: OpticalFlowImageFormatInfoNV -> Int
alignment ~OpticalFlowImageFormatInfoNV
_ = Int
8
peek :: Ptr OpticalFlowImageFormatInfoNV -> IO OpticalFlowImageFormatInfoNV
peek = Ptr OpticalFlowImageFormatInfoNV -> IO OpticalFlowImageFormatInfoNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> IO ()
poke Ptr OpticalFlowImageFormatInfoNV
ptr OpticalFlowImageFormatInfoNV
poked = Ptr OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> IO () -> IO ()
forall b.
Ptr OpticalFlowImageFormatInfoNV
-> OpticalFlowImageFormatInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowImageFormatInfoNV
ptr OpticalFlowImageFormatInfoNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero OpticalFlowImageFormatInfoNV where
zero :: OpticalFlowImageFormatInfoNV
zero = OpticalFlowUsageFlagsNV -> OpticalFlowImageFormatInfoNV
OpticalFlowImageFormatInfoNV
OpticalFlowUsageFlagsNV
forall a. Zero a => a
zero
data OpticalFlowImageFormatPropertiesNV = OpticalFlowImageFormatPropertiesNV
{
OpticalFlowImageFormatPropertiesNV -> Format
format :: Format }
deriving (Typeable, OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool
(OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool)
-> (OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool)
-> Eq OpticalFlowImageFormatPropertiesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool
== :: OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool
$c/= :: OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool
/= :: OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpticalFlowImageFormatPropertiesNV)
#endif
deriving instance Show OpticalFlowImageFormatPropertiesNV
instance ToCStruct OpticalFlowImageFormatPropertiesNV where
withCStruct :: forall b.
OpticalFlowImageFormatPropertiesNV
-> (Ptr OpticalFlowImageFormatPropertiesNV -> IO b) -> IO b
withCStruct OpticalFlowImageFormatPropertiesNV
x Ptr OpticalFlowImageFormatPropertiesNV -> IO b
f = Int -> (Ptr OpticalFlowImageFormatPropertiesNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr OpticalFlowImageFormatPropertiesNV -> IO b) -> IO b)
-> (Ptr OpticalFlowImageFormatPropertiesNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr OpticalFlowImageFormatPropertiesNV
p -> Ptr OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> IO b -> IO b
forall b.
Ptr OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowImageFormatPropertiesNV
p OpticalFlowImageFormatPropertiesNV
x (Ptr OpticalFlowImageFormatPropertiesNV -> IO b
f Ptr OpticalFlowImageFormatPropertiesNV
p)
pokeCStruct :: forall b.
Ptr OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> IO b -> IO b
pokeCStruct Ptr OpticalFlowImageFormatPropertiesNV
p OpticalFlowImageFormatPropertiesNV{Format
$sel:format:OpticalFlowImageFormatPropertiesNV :: OpticalFlowImageFormatPropertiesNV -> Format
format :: Format
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (Format
format)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr OpticalFlowImageFormatPropertiesNV -> IO b -> IO b
pokeZeroCStruct Ptr OpticalFlowImageFormatPropertiesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (Format
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct OpticalFlowImageFormatPropertiesNV where
peekCStruct :: Ptr OpticalFlowImageFormatPropertiesNV
-> IO OpticalFlowImageFormatPropertiesNV
peekCStruct Ptr OpticalFlowImageFormatPropertiesNV
p = do
Format
format <- forall a. Storable a => Ptr a -> IO a
peek @Format ((Ptr OpticalFlowImageFormatPropertiesNV
p Ptr OpticalFlowImageFormatPropertiesNV -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format))
OpticalFlowImageFormatPropertiesNV
-> IO OpticalFlowImageFormatPropertiesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OpticalFlowImageFormatPropertiesNV
-> IO OpticalFlowImageFormatPropertiesNV)
-> OpticalFlowImageFormatPropertiesNV
-> IO OpticalFlowImageFormatPropertiesNV
forall a b. (a -> b) -> a -> b
$ Format -> OpticalFlowImageFormatPropertiesNV
OpticalFlowImageFormatPropertiesNV
Format
format
instance Storable OpticalFlowImageFormatPropertiesNV where
sizeOf :: OpticalFlowImageFormatPropertiesNV -> Int
sizeOf ~OpticalFlowImageFormatPropertiesNV
_ = Int
24
alignment :: OpticalFlowImageFormatPropertiesNV -> Int
alignment ~OpticalFlowImageFormatPropertiesNV
_ = Int
8
peek :: Ptr OpticalFlowImageFormatPropertiesNV
-> IO OpticalFlowImageFormatPropertiesNV
peek = Ptr OpticalFlowImageFormatPropertiesNV
-> IO OpticalFlowImageFormatPropertiesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> IO ()
poke Ptr OpticalFlowImageFormatPropertiesNV
ptr OpticalFlowImageFormatPropertiesNV
poked = Ptr OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> IO () -> IO ()
forall b.
Ptr OpticalFlowImageFormatPropertiesNV
-> OpticalFlowImageFormatPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowImageFormatPropertiesNV
ptr OpticalFlowImageFormatPropertiesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero OpticalFlowImageFormatPropertiesNV where
zero :: OpticalFlowImageFormatPropertiesNV
zero = Format -> OpticalFlowImageFormatPropertiesNV
OpticalFlowImageFormatPropertiesNV
Format
forall a. Zero a => a
zero
data OpticalFlowSessionCreateInfoNV (es :: [Type]) = OpticalFlowSessionCreateInfoNV
{
forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Chain es
next :: Chain es
,
forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
width :: Word32
,
forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
height :: Word32
,
forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
imageFormat :: Format
,
forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
flowVectorFormat :: Format
,
forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
costFormat :: Format
,
forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
outputGridSize :: OpticalFlowGridSizeFlagsNV
,
forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
hintGridSize :: OpticalFlowGridSizeFlagsNV
,
forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowPerformanceLevelNV
performanceLevel :: OpticalFlowPerformanceLevelNV
,
forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es
-> OpticalFlowSessionCreateFlagsNV
flags :: OpticalFlowSessionCreateFlagsNV
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpticalFlowSessionCreateInfoNV (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (OpticalFlowSessionCreateInfoNV es)
instance Extensible OpticalFlowSessionCreateInfoNV where
extensibleTypeName :: String
extensibleTypeName = String
"OpticalFlowSessionCreateInfoNV"
setNext :: forall (ds :: [*]) (es :: [*]).
OpticalFlowSessionCreateInfoNV ds
-> Chain es -> OpticalFlowSessionCreateInfoNV es
setNext OpticalFlowSessionCreateInfoNV{Flags
Format
Chain ds
OpticalFlowGridSizeFlagsNV
OpticalFlowPerformanceLevelNV
OpticalFlowSessionCreateFlagsNV
$sel:next:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Chain es
$sel:width:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
$sel:height:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
$sel:imageFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:flowVectorFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:costFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:outputGridSize:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
$sel:hintGridSize:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
$sel:performanceLevel:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowPerformanceLevelNV
$sel:flags:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es
-> OpticalFlowSessionCreateFlagsNV
next :: Chain ds
width :: Flags
height :: Flags
imageFormat :: Format
flowVectorFormat :: Format
costFormat :: Format
outputGridSize :: OpticalFlowGridSizeFlagsNV
hintGridSize :: OpticalFlowGridSizeFlagsNV
performanceLevel :: OpticalFlowPerformanceLevelNV
flags :: OpticalFlowSessionCreateFlagsNV
..} Chain es
next' = OpticalFlowSessionCreateInfoNV{$sel:next:OpticalFlowSessionCreateInfoNV :: Chain es
next = Chain es
next', Flags
Format
OpticalFlowGridSizeFlagsNV
OpticalFlowPerformanceLevelNV
OpticalFlowSessionCreateFlagsNV
$sel:width:OpticalFlowSessionCreateInfoNV :: Flags
$sel:height:OpticalFlowSessionCreateInfoNV :: Flags
$sel:imageFormat:OpticalFlowSessionCreateInfoNV :: Format
$sel:flowVectorFormat:OpticalFlowSessionCreateInfoNV :: Format
$sel:costFormat:OpticalFlowSessionCreateInfoNV :: Format
$sel:outputGridSize:OpticalFlowSessionCreateInfoNV :: OpticalFlowGridSizeFlagsNV
$sel:hintGridSize:OpticalFlowSessionCreateInfoNV :: OpticalFlowGridSizeFlagsNV
$sel:performanceLevel:OpticalFlowSessionCreateInfoNV :: OpticalFlowPerformanceLevelNV
$sel:flags:OpticalFlowSessionCreateInfoNV :: OpticalFlowSessionCreateFlagsNV
width :: Flags
height :: Flags
imageFormat :: Format
flowVectorFormat :: Format
costFormat :: Format
outputGridSize :: OpticalFlowGridSizeFlagsNV
hintGridSize :: OpticalFlowGridSizeFlagsNV
performanceLevel :: OpticalFlowPerformanceLevelNV
flags :: OpticalFlowSessionCreateFlagsNV
..}
getNext :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Chain es
getNext OpticalFlowSessionCreateInfoNV{Flags
Format
Chain es
OpticalFlowGridSizeFlagsNV
OpticalFlowPerformanceLevelNV
OpticalFlowSessionCreateFlagsNV
$sel:next:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Chain es
$sel:width:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
$sel:height:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
$sel:imageFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:flowVectorFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:costFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:outputGridSize:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
$sel:hintGridSize:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
$sel:performanceLevel:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowPerformanceLevelNV
$sel:flags:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es
-> OpticalFlowSessionCreateFlagsNV
next :: Chain es
width :: Flags
height :: Flags
imageFormat :: Format
flowVectorFormat :: Format
costFormat :: Format
outputGridSize :: OpticalFlowGridSizeFlagsNV
hintGridSize :: OpticalFlowGridSizeFlagsNV
performanceLevel :: OpticalFlowPerformanceLevelNV
flags :: OpticalFlowSessionCreateFlagsNV
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends OpticalFlowSessionCreateInfoNV e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e
-> (Extends OpticalFlowSessionCreateInfoNV e => b) -> Maybe b
extends proxy e
_ Extends OpticalFlowSessionCreateInfoNV e => b
f
| Just e :~: OpticalFlowSessionCreatePrivateDataInfoNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @OpticalFlowSessionCreatePrivateDataInfoNV = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends OpticalFlowSessionCreateInfoNV e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss OpticalFlowSessionCreateInfoNV es
, PokeChain es ) => ToCStruct (OpticalFlowSessionCreateInfoNV es) where
withCStruct :: forall b.
OpticalFlowSessionCreateInfoNV es
-> (Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b) -> IO b
withCStruct OpticalFlowSessionCreateInfoNV es
x Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b
f = Int -> (Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b) -> IO b)
-> (Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (OpticalFlowSessionCreateInfoNV es)
p -> Ptr (OpticalFlowSessionCreateInfoNV es)
-> OpticalFlowSessionCreateInfoNV es -> IO b -> IO b
forall b.
Ptr (OpticalFlowSessionCreateInfoNV es)
-> OpticalFlowSessionCreateInfoNV es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (OpticalFlowSessionCreateInfoNV es)
p OpticalFlowSessionCreateInfoNV es
x (Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b
f Ptr (OpticalFlowSessionCreateInfoNV es)
p)
pokeCStruct :: forall b.
Ptr (OpticalFlowSessionCreateInfoNV es)
-> OpticalFlowSessionCreateInfoNV es -> IO b -> IO b
pokeCStruct Ptr (OpticalFlowSessionCreateInfoNV es)
p OpticalFlowSessionCreateInfoNV{Flags
Format
Chain es
OpticalFlowGridSizeFlagsNV
OpticalFlowPerformanceLevelNV
OpticalFlowSessionCreateFlagsNV
$sel:next:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Chain es
$sel:width:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
$sel:height:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Flags
$sel:imageFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:flowVectorFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:costFormat:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]). OpticalFlowSessionCreateInfoNV es -> Format
$sel:outputGridSize:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
$sel:hintGridSize:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowGridSizeFlagsNV
$sel:performanceLevel:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es -> OpticalFlowPerformanceLevelNV
$sel:flags:OpticalFlowSessionCreateInfoNV :: forall (es :: [*]).
OpticalFlowSessionCreateInfoNV es
-> OpticalFlowSessionCreateFlagsNV
next :: Chain es
width :: Flags
height :: Flags
imageFormat :: Format
flowVectorFormat :: Format
costFormat :: Format
outputGridSize :: OpticalFlowGridSizeFlagsNV
hintGridSize :: OpticalFlowGridSizeFlagsNV
performanceLevel :: OpticalFlowPerformanceLevelNV
flags :: OpticalFlowSessionCreateFlagsNV
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV)
Ptr ()
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
forall a. Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
width)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Flags
height)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Format)) (Format
imageFormat)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Format)) (Format
flowVectorFormat)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Format)) (Format
costFormat)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
outputGridSize)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
hintGridSize)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowPerformanceLevelNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr OpticalFlowPerformanceLevelNV)) (OpticalFlowPerformanceLevelNV
performanceLevel)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowSessionCreateFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr OpticalFlowSessionCreateFlagsNV)) (OpticalFlowSessionCreateFlagsNV
flags)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (OpticalFlowSessionCreateInfoNV es) -> IO b -> IO b
pokeZeroCStruct Ptr (OpticalFlowSessionCreateInfoNV es)
p IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV)
Ptr ()
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Format)) (Format
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Format)) (Format
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr OpticalFlowGridSizeFlagsNV)) (OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss OpticalFlowSessionCreateInfoNV es
, PeekChain es ) => FromCStruct (OpticalFlowSessionCreateInfoNV es) where
peekCStruct :: Ptr (OpticalFlowSessionCreateInfoNV es)
-> IO (OpticalFlowSessionCreateInfoNV es)
peekCStruct Ptr (OpticalFlowSessionCreateInfoNV es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- Ptr (Chain es) -> IO (Chain es)
forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (Ptr () -> Ptr (Chain es)
forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
Flags
width <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Flags
height <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Format
imageFormat <- forall a. Storable a => Ptr a -> IO a
peek @Format ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Format))
Format
flowVectorFormat <- forall a. Storable a => Ptr a -> IO a
peek @Format ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Format))
Format
costFormat <- forall a. Storable a => Ptr a -> IO a
peek @Format ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es) -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Format))
OpticalFlowGridSizeFlagsNV
outputGridSize <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowGridSizeFlagsNV ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr OpticalFlowGridSizeFlagsNV))
OpticalFlowGridSizeFlagsNV
hintGridSize <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowGridSizeFlagsNV ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowGridSizeFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr OpticalFlowGridSizeFlagsNV))
OpticalFlowPerformanceLevelNV
performanceLevel <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowPerformanceLevelNV ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowPerformanceLevelNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr OpticalFlowPerformanceLevelNV))
OpticalFlowSessionCreateFlagsNV
flags <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowSessionCreateFlagsNV ((Ptr (OpticalFlowSessionCreateInfoNV es)
p Ptr (OpticalFlowSessionCreateInfoNV es)
-> Int -> Ptr OpticalFlowSessionCreateFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr OpticalFlowSessionCreateFlagsNV))
OpticalFlowSessionCreateInfoNV es
-> IO (OpticalFlowSessionCreateInfoNV es)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OpticalFlowSessionCreateInfoNV es
-> IO (OpticalFlowSessionCreateInfoNV es))
-> OpticalFlowSessionCreateInfoNV es
-> IO (OpticalFlowSessionCreateInfoNV es)
forall a b. (a -> b) -> a -> b
$ Chain es
-> Flags
-> Flags
-> Format
-> Format
-> Format
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowPerformanceLevelNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateInfoNV es
forall (es :: [*]).
Chain es
-> Flags
-> Flags
-> Format
-> Format
-> Format
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowPerformanceLevelNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateInfoNV es
OpticalFlowSessionCreateInfoNV
Chain es
next
Flags
width
Flags
height
Format
imageFormat
Format
flowVectorFormat
Format
costFormat
OpticalFlowGridSizeFlagsNV
outputGridSize
OpticalFlowGridSizeFlagsNV
hintGridSize
OpticalFlowPerformanceLevelNV
performanceLevel
OpticalFlowSessionCreateFlagsNV
flags
instance es ~ '[] => Zero (OpticalFlowSessionCreateInfoNV es) where
zero :: OpticalFlowSessionCreateInfoNV es
zero = Chain es
-> Flags
-> Flags
-> Format
-> Format
-> Format
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowPerformanceLevelNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateInfoNV es
forall (es :: [*]).
Chain es
-> Flags
-> Flags
-> Format
-> Format
-> Format
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV
-> OpticalFlowPerformanceLevelNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateInfoNV es
OpticalFlowSessionCreateInfoNV
()
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Format
forall a. Zero a => a
zero
Format
forall a. Zero a => a
zero
Format
forall a. Zero a => a
zero
OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero
OpticalFlowGridSizeFlagsNV
forall a. Zero a => a
zero
OpticalFlowPerformanceLevelNV
forall a. Zero a => a
zero
OpticalFlowSessionCreateFlagsNV
forall a. Zero a => a
zero
data OpticalFlowSessionCreatePrivateDataInfoNV = OpticalFlowSessionCreatePrivateDataInfoNV
{
OpticalFlowSessionCreatePrivateDataInfoNV -> Flags
id' :: Word32
,
OpticalFlowSessionCreatePrivateDataInfoNV -> Flags
size :: Word32
,
OpticalFlowSessionCreatePrivateDataInfoNV -> Ptr ()
privateData :: Ptr ()
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpticalFlowSessionCreatePrivateDataInfoNV)
#endif
deriving instance Show OpticalFlowSessionCreatePrivateDataInfoNV
instance ToCStruct OpticalFlowSessionCreatePrivateDataInfoNV where
withCStruct :: forall b.
OpticalFlowSessionCreatePrivateDataInfoNV
-> (Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b) -> IO b
withCStruct OpticalFlowSessionCreatePrivateDataInfoNV
x Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b
f = Int
-> (Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b) -> IO b)
-> (Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p -> Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> OpticalFlowSessionCreatePrivateDataInfoNV -> IO b -> IO b
forall b.
Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> OpticalFlowSessionCreatePrivateDataInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p OpticalFlowSessionCreatePrivateDataInfoNV
x (Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b
f Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p)
pokeCStruct :: forall b.
Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> OpticalFlowSessionCreatePrivateDataInfoNV -> IO b -> IO b
pokeCStruct Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p OpticalFlowSessionCreatePrivateDataInfoNV{Flags
Ptr ()
$sel:id':OpticalFlowSessionCreatePrivateDataInfoNV :: OpticalFlowSessionCreatePrivateDataInfoNV -> Flags
$sel:size:OpticalFlowSessionCreatePrivateDataInfoNV :: OpticalFlowSessionCreatePrivateDataInfoNV -> Flags
$sel:privateData:OpticalFlowSessionCreatePrivateDataInfoNV :: OpticalFlowSessionCreatePrivateDataInfoNV -> Ptr ()
id' :: Flags
size :: Flags
privateData :: Ptr ()
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
id')
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Flags
size)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ()))) (Ptr ()
privateData)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> IO b -> IO b
pokeZeroCStruct Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ()))) (Ptr ()
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct OpticalFlowSessionCreatePrivateDataInfoNV where
peekCStruct :: Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> IO OpticalFlowSessionCreatePrivateDataInfoNV
peekCStruct Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p = do
Flags
id' <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Flags
size <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Ptr ()
pPrivateData <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr OpticalFlowSessionCreatePrivateDataInfoNV
p Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ())))
OpticalFlowSessionCreatePrivateDataInfoNV
-> IO OpticalFlowSessionCreatePrivateDataInfoNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OpticalFlowSessionCreatePrivateDataInfoNV
-> IO OpticalFlowSessionCreatePrivateDataInfoNV)
-> OpticalFlowSessionCreatePrivateDataInfoNV
-> IO OpticalFlowSessionCreatePrivateDataInfoNV
forall a b. (a -> b) -> a -> b
$ Flags
-> Flags -> Ptr () -> OpticalFlowSessionCreatePrivateDataInfoNV
OpticalFlowSessionCreatePrivateDataInfoNV
Flags
id' Flags
size Ptr ()
pPrivateData
instance Storable OpticalFlowSessionCreatePrivateDataInfoNV where
sizeOf :: OpticalFlowSessionCreatePrivateDataInfoNV -> Int
sizeOf ~OpticalFlowSessionCreatePrivateDataInfoNV
_ = Int
32
alignment :: OpticalFlowSessionCreatePrivateDataInfoNV -> Int
alignment ~OpticalFlowSessionCreatePrivateDataInfoNV
_ = Int
8
peek :: Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> IO OpticalFlowSessionCreatePrivateDataInfoNV
peek = Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> IO OpticalFlowSessionCreatePrivateDataInfoNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> OpticalFlowSessionCreatePrivateDataInfoNV -> IO ()
poke Ptr OpticalFlowSessionCreatePrivateDataInfoNV
ptr OpticalFlowSessionCreatePrivateDataInfoNV
poked = Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> OpticalFlowSessionCreatePrivateDataInfoNV -> IO () -> IO ()
forall b.
Ptr OpticalFlowSessionCreatePrivateDataInfoNV
-> OpticalFlowSessionCreatePrivateDataInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowSessionCreatePrivateDataInfoNV
ptr OpticalFlowSessionCreatePrivateDataInfoNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero OpticalFlowSessionCreatePrivateDataInfoNV where
zero :: OpticalFlowSessionCreatePrivateDataInfoNV
zero = Flags
-> Flags -> Ptr () -> OpticalFlowSessionCreatePrivateDataInfoNV
OpticalFlowSessionCreatePrivateDataInfoNV
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Ptr ()
forall a. Zero a => a
zero
data OpticalFlowExecuteInfoNV = OpticalFlowExecuteInfoNV
{
OpticalFlowExecuteInfoNV -> OpticalFlowExecuteFlagsNV
flags :: OpticalFlowExecuteFlagsNV
,
OpticalFlowExecuteInfoNV -> Vector Rect2D
regions :: Vector Rect2D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpticalFlowExecuteInfoNV)
#endif
deriving instance Show OpticalFlowExecuteInfoNV
instance ToCStruct OpticalFlowExecuteInfoNV where
withCStruct :: forall b.
OpticalFlowExecuteInfoNV
-> (Ptr OpticalFlowExecuteInfoNV -> IO b) -> IO b
withCStruct OpticalFlowExecuteInfoNV
x Ptr OpticalFlowExecuteInfoNV -> IO b
f = Int -> (Ptr OpticalFlowExecuteInfoNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr OpticalFlowExecuteInfoNV -> IO b) -> IO b)
-> (Ptr OpticalFlowExecuteInfoNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr OpticalFlowExecuteInfoNV
p -> Ptr OpticalFlowExecuteInfoNV
-> OpticalFlowExecuteInfoNV -> IO b -> IO b
forall b.
Ptr OpticalFlowExecuteInfoNV
-> OpticalFlowExecuteInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpticalFlowExecuteInfoNV
p OpticalFlowExecuteInfoNV
x (Ptr OpticalFlowExecuteInfoNV -> IO b
f Ptr OpticalFlowExecuteInfoNV
p)
pokeCStruct :: forall b.
Ptr OpticalFlowExecuteInfoNV
-> OpticalFlowExecuteInfoNV -> IO b -> IO b
pokeCStruct Ptr OpticalFlowExecuteInfoNV
p OpticalFlowExecuteInfoNV{Vector Rect2D
OpticalFlowExecuteFlagsNV
$sel:flags:OpticalFlowExecuteInfoNV :: OpticalFlowExecuteInfoNV -> OpticalFlowExecuteFlagsNV
$sel:regions:OpticalFlowExecuteInfoNV :: OpticalFlowExecuteInfoNV -> Vector Rect2D
flags :: OpticalFlowExecuteFlagsNV
regions :: Vector Rect2D
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV
-> Int -> Ptr OpticalFlowExecuteFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowExecuteFlagsNV)) (OpticalFlowExecuteFlagsNV
flags)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) ((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector Rect2D -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector Rect2D -> Int) -> Vector Rect2D -> Int
forall a b. (a -> b) -> a -> b
$ (Vector Rect2D
regions)) :: Word32))
Ptr Rect2D
pPRegions' <- ((Ptr Rect2D -> IO b) -> IO b) -> ContT b IO (Ptr Rect2D)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Rect2D -> IO b) -> IO b) -> ContT b IO (Ptr Rect2D))
-> ((Ptr Rect2D -> IO b) -> IO b) -> ContT b IO (Ptr Rect2D)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @Rect2D ((Vector Rect2D -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector Rect2D
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
16)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ (Int -> Rect2D -> IO ()) -> Vector Rect2D -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i Rect2D
e -> Ptr Rect2D -> Rect2D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Rect2D
pPRegions' Ptr Rect2D -> Int -> Ptr Rect2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Rect2D) (Rect2D
e)) (Vector Rect2D
regions)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr Rect2D) -> Ptr Rect2D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr (Ptr Rect2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr Rect2D))) (Ptr Rect2D
pPRegions')
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr OpticalFlowExecuteInfoNV -> IO b -> IO b
pokeZeroCStruct Ptr OpticalFlowExecuteInfoNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct OpticalFlowExecuteInfoNV where
peekCStruct :: Ptr OpticalFlowExecuteInfoNV -> IO OpticalFlowExecuteInfoNV
peekCStruct Ptr OpticalFlowExecuteInfoNV
p = do
OpticalFlowExecuteFlagsNV
flags <- forall a. Storable a => Ptr a -> IO a
peek @OpticalFlowExecuteFlagsNV ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV
-> Int -> Ptr OpticalFlowExecuteFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr OpticalFlowExecuteFlagsNV))
Flags
regionCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Ptr Rect2D
pRegions <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr Rect2D) ((Ptr OpticalFlowExecuteInfoNV
p Ptr OpticalFlowExecuteInfoNV -> Int -> Ptr (Ptr Rect2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr Rect2D)))
Vector Rect2D
pRegions' <- Int -> (Int -> IO Rect2D) -> IO (Vector Rect2D)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Flags -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Flags
regionCount) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Rect2D ((Ptr Rect2D
pRegions Ptr Rect2D -> Int -> Ptr Rect2D
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Rect2D)))
OpticalFlowExecuteInfoNV -> IO OpticalFlowExecuteInfoNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OpticalFlowExecuteInfoNV -> IO OpticalFlowExecuteInfoNV)
-> OpticalFlowExecuteInfoNV -> IO OpticalFlowExecuteInfoNV
forall a b. (a -> b) -> a -> b
$ OpticalFlowExecuteFlagsNV
-> Vector Rect2D -> OpticalFlowExecuteInfoNV
OpticalFlowExecuteInfoNV
OpticalFlowExecuteFlagsNV
flags Vector Rect2D
pRegions'
instance Zero OpticalFlowExecuteInfoNV where
zero :: OpticalFlowExecuteInfoNV
zero = OpticalFlowExecuteFlagsNV
-> Vector Rect2D -> OpticalFlowExecuteInfoNV
OpticalFlowExecuteInfoNV
OpticalFlowExecuteFlagsNV
forall a. Zero a => a
zero
Vector Rect2D
forall a. Monoid a => a
mempty
type OpticalFlowGridSizeFlagsNV = OpticalFlowGridSizeFlagBitsNV
newtype OpticalFlowGridSizeFlagBitsNV = OpticalFlowGridSizeFlagBitsNV Flags
deriving newtype (OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
(OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Bool)
-> Eq OpticalFlowGridSizeFlagsNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
== :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
$c/= :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
/= :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
Eq, Eq OpticalFlowGridSizeFlagsNV
Eq OpticalFlowGridSizeFlagsNV =>
(OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Ordering)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Bool)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Bool)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Bool)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Bool)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV)
-> Ord OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Ordering
OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Ordering
compare :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> Ordering
$c< :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
< :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
$c<= :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
<= :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
$c> :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
> :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
$c>= :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
>= :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV -> Bool
$cmax :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
max :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
$cmin :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
min :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
Ord, Ptr OpticalFlowGridSizeFlagsNV -> IO OpticalFlowGridSizeFlagsNV
Ptr OpticalFlowGridSizeFlagsNV
-> Int -> IO OpticalFlowGridSizeFlagsNV
Ptr OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV -> IO ()
Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
OpticalFlowGridSizeFlagsNV -> Int
(OpticalFlowGridSizeFlagsNV -> Int)
-> (OpticalFlowGridSizeFlagsNV -> Int)
-> (Ptr OpticalFlowGridSizeFlagsNV
-> Int -> IO OpticalFlowGridSizeFlagsNV)
-> (Ptr OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV -> IO ())
-> (forall b. Ptr b -> Int -> IO OpticalFlowGridSizeFlagsNV)
-> (forall b. Ptr b -> Int -> OpticalFlowGridSizeFlagsNV -> IO ())
-> (Ptr OpticalFlowGridSizeFlagsNV
-> IO OpticalFlowGridSizeFlagsNV)
-> (Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ())
-> Storable OpticalFlowGridSizeFlagsNV
forall b. Ptr b -> Int -> IO OpticalFlowGridSizeFlagsNV
forall b. Ptr b -> Int -> OpticalFlowGridSizeFlagsNV -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: OpticalFlowGridSizeFlagsNV -> Int
sizeOf :: OpticalFlowGridSizeFlagsNV -> Int
$calignment :: OpticalFlowGridSizeFlagsNV -> Int
alignment :: OpticalFlowGridSizeFlagsNV -> Int
$cpeekElemOff :: Ptr OpticalFlowGridSizeFlagsNV
-> Int -> IO OpticalFlowGridSizeFlagsNV
peekElemOff :: Ptr OpticalFlowGridSizeFlagsNV
-> Int -> IO OpticalFlowGridSizeFlagsNV
$cpokeElemOff :: Ptr OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV -> IO ()
pokeElemOff :: Ptr OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowGridSizeFlagsNV
peekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowGridSizeFlagsNV
$cpokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowGridSizeFlagsNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowGridSizeFlagsNV -> IO ()
$cpeek :: Ptr OpticalFlowGridSizeFlagsNV -> IO OpticalFlowGridSizeFlagsNV
peek :: Ptr OpticalFlowGridSizeFlagsNV -> IO OpticalFlowGridSizeFlagsNV
$cpoke :: Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
poke :: Ptr OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> IO ()
Storable, OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV -> Zero OpticalFlowGridSizeFlagsNV
forall a. a -> Zero a
$czero :: OpticalFlowGridSizeFlagsNV
zero :: OpticalFlowGridSizeFlagsNV
Zero, Eq OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV
Eq OpticalFlowGridSizeFlagsNV =>
(OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> OpticalFlowGridSizeFlagsNV
-> (Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV -> Int -> Bool)
-> (OpticalFlowGridSizeFlagsNV -> Maybe Int)
-> (OpticalFlowGridSizeFlagsNV -> Int)
-> (OpticalFlowGridSizeFlagsNV -> Bool)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV
-> Int -> OpticalFlowGridSizeFlagsNV)
-> (OpticalFlowGridSizeFlagsNV -> Int)
-> Bits OpticalFlowGridSizeFlagsNV
Int -> OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV -> Bool
OpticalFlowGridSizeFlagsNV -> Int
OpticalFlowGridSizeFlagsNV -> Maybe Int
OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV -> Int -> Bool
OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
.&. :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
$c.|. :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
.|. :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
$cxor :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
xor :: OpticalFlowGridSizeFlagsNV
-> OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
$ccomplement :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
complement :: OpticalFlowGridSizeFlagsNV -> OpticalFlowGridSizeFlagsNV
$cshift :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
shift :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$crotate :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
rotate :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$czeroBits :: OpticalFlowGridSizeFlagsNV
zeroBits :: OpticalFlowGridSizeFlagsNV
$cbit :: Int -> OpticalFlowGridSizeFlagsNV
bit :: Int -> OpticalFlowGridSizeFlagsNV
$csetBit :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
setBit :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$cclearBit :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
clearBit :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$ccomplementBit :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
complementBit :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$ctestBit :: OpticalFlowGridSizeFlagsNV -> Int -> Bool
testBit :: OpticalFlowGridSizeFlagsNV -> Int -> Bool
$cbitSizeMaybe :: OpticalFlowGridSizeFlagsNV -> Maybe Int
bitSizeMaybe :: OpticalFlowGridSizeFlagsNV -> Maybe Int
$cbitSize :: OpticalFlowGridSizeFlagsNV -> Int
bitSize :: OpticalFlowGridSizeFlagsNV -> Int
$cisSigned :: OpticalFlowGridSizeFlagsNV -> Bool
isSigned :: OpticalFlowGridSizeFlagsNV -> Bool
$cshiftL :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
shiftL :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$cunsafeShiftL :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
unsafeShiftL :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$cshiftR :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
shiftR :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$cunsafeShiftR :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
unsafeShiftR :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$crotateL :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
rotateL :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$crotateR :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
rotateR :: OpticalFlowGridSizeFlagsNV -> Int -> OpticalFlowGridSizeFlagsNV
$cpopCount :: OpticalFlowGridSizeFlagsNV -> Int
popCount :: OpticalFlowGridSizeFlagsNV -> Int
Bits, Bits OpticalFlowGridSizeFlagsNV
Bits OpticalFlowGridSizeFlagsNV =>
(OpticalFlowGridSizeFlagsNV -> Int)
-> (OpticalFlowGridSizeFlagsNV -> Int)
-> (OpticalFlowGridSizeFlagsNV -> Int)
-> FiniteBits OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagsNV -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: OpticalFlowGridSizeFlagsNV -> Int
finiteBitSize :: OpticalFlowGridSizeFlagsNV -> Int
$ccountLeadingZeros :: OpticalFlowGridSizeFlagsNV -> Int
countLeadingZeros :: OpticalFlowGridSizeFlagsNV -> Int
$ccountTrailingZeros :: OpticalFlowGridSizeFlagsNV -> Int
countTrailingZeros :: OpticalFlowGridSizeFlagsNV -> Int
FiniteBits)
pattern $bOPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV :: OpticalFlowGridSizeFlagsNV
$mOPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV :: forall {r}.
OpticalFlowGridSizeFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = OpticalFlowGridSizeFlagBitsNV 0x00000000
pattern $bOPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV :: OpticalFlowGridSizeFlagsNV
$mOPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV :: forall {r}.
OpticalFlowGridSizeFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000001
pattern $bOPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV :: OpticalFlowGridSizeFlagsNV
$mOPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV :: forall {r}.
OpticalFlowGridSizeFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000002
pattern $bOPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV :: OpticalFlowGridSizeFlagsNV
$mOPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV :: forall {r}.
OpticalFlowGridSizeFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000004
pattern $bOPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV :: OpticalFlowGridSizeFlagsNV
$mOPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV :: forall {r}.
OpticalFlowGridSizeFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000008
conNameOpticalFlowGridSizeFlagBitsNV :: String
conNameOpticalFlowGridSizeFlagBitsNV :: String
conNameOpticalFlowGridSizeFlagBitsNV = String
"OpticalFlowGridSizeFlagBitsNV"
enumPrefixOpticalFlowGridSizeFlagBitsNV :: String
enumPrefixOpticalFlowGridSizeFlagBitsNV :: String
enumPrefixOpticalFlowGridSizeFlagBitsNV = String
"OPTICAL_FLOW_GRID_SIZE_"
showTableOpticalFlowGridSizeFlagBitsNV :: [(OpticalFlowGridSizeFlagBitsNV, String)]
showTableOpticalFlowGridSizeFlagBitsNV :: [(OpticalFlowGridSizeFlagsNV, String)]
showTableOpticalFlowGridSizeFlagBitsNV =
[
( OpticalFlowGridSizeFlagsNV
OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV
, String
"UNKNOWN_NV"
)
,
( OpticalFlowGridSizeFlagsNV
OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV
, String
"1X1_BIT_NV"
)
,
( OpticalFlowGridSizeFlagsNV
OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV
, String
"2X2_BIT_NV"
)
,
( OpticalFlowGridSizeFlagsNV
OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV
, String
"4X4_BIT_NV"
)
,
( OpticalFlowGridSizeFlagsNV
OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV
, String
"8X8_BIT_NV"
)
]
instance Show OpticalFlowGridSizeFlagBitsNV where
showsPrec :: Int -> OpticalFlowGridSizeFlagsNV -> ShowS
showsPrec =
String
-> [(OpticalFlowGridSizeFlagsNV, String)]
-> String
-> (OpticalFlowGridSizeFlagsNV -> Flags)
-> (Flags -> ShowS)
-> Int
-> OpticalFlowGridSizeFlagsNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpticalFlowGridSizeFlagBitsNV
[(OpticalFlowGridSizeFlagsNV, String)]
showTableOpticalFlowGridSizeFlagBitsNV
String
conNameOpticalFlowGridSizeFlagBitsNV
(\(OpticalFlowGridSizeFlagBitsNV Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. Integral a => a -> ShowS
showHex Flags
x)
instance Read OpticalFlowGridSizeFlagBitsNV where
readPrec :: ReadPrec OpticalFlowGridSizeFlagsNV
readPrec =
String
-> [(OpticalFlowGridSizeFlagsNV, String)]
-> String
-> (Flags -> OpticalFlowGridSizeFlagsNV)
-> ReadPrec OpticalFlowGridSizeFlagsNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpticalFlowGridSizeFlagBitsNV
[(OpticalFlowGridSizeFlagsNV, String)]
showTableOpticalFlowGridSizeFlagBitsNV
String
conNameOpticalFlowGridSizeFlagBitsNV
Flags -> OpticalFlowGridSizeFlagsNV
OpticalFlowGridSizeFlagBitsNV
type OpticalFlowUsageFlagsNV = OpticalFlowUsageFlagBitsNV
newtype OpticalFlowUsageFlagBitsNV = OpticalFlowUsageFlagBitsNV Flags
deriving newtype (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
(OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool)
-> (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool)
-> Eq OpticalFlowUsageFlagsNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
== :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
$c/= :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
/= :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
Eq, Eq OpticalFlowUsageFlagsNV
Eq OpticalFlowUsageFlagsNV =>
(OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Ordering)
-> (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool)
-> (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool)
-> (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool)
-> (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool)
-> (OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV)
-> Ord OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Ordering
OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Ordering
compare :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Ordering
$c< :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
< :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
$c<= :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
<= :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
$c> :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
> :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
$c>= :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
>= :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> Bool
$cmax :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
max :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
$cmin :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
min :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
Ord, Ptr OpticalFlowUsageFlagsNV -> IO OpticalFlowUsageFlagsNV
Ptr OpticalFlowUsageFlagsNV -> Int -> IO OpticalFlowUsageFlagsNV
Ptr OpticalFlowUsageFlagsNV
-> Int -> OpticalFlowUsageFlagsNV -> IO ()
Ptr OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> IO ()
OpticalFlowUsageFlagsNV -> Int
(OpticalFlowUsageFlagsNV -> Int)
-> (OpticalFlowUsageFlagsNV -> Int)
-> (Ptr OpticalFlowUsageFlagsNV
-> Int -> IO OpticalFlowUsageFlagsNV)
-> (Ptr OpticalFlowUsageFlagsNV
-> Int -> OpticalFlowUsageFlagsNV -> IO ())
-> (forall b. Ptr b -> Int -> IO OpticalFlowUsageFlagsNV)
-> (forall b. Ptr b -> Int -> OpticalFlowUsageFlagsNV -> IO ())
-> (Ptr OpticalFlowUsageFlagsNV -> IO OpticalFlowUsageFlagsNV)
-> (Ptr OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> IO ())
-> Storable OpticalFlowUsageFlagsNV
forall b. Ptr b -> Int -> IO OpticalFlowUsageFlagsNV
forall b. Ptr b -> Int -> OpticalFlowUsageFlagsNV -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: OpticalFlowUsageFlagsNV -> Int
sizeOf :: OpticalFlowUsageFlagsNV -> Int
$calignment :: OpticalFlowUsageFlagsNV -> Int
alignment :: OpticalFlowUsageFlagsNV -> Int
$cpeekElemOff :: Ptr OpticalFlowUsageFlagsNV -> Int -> IO OpticalFlowUsageFlagsNV
peekElemOff :: Ptr OpticalFlowUsageFlagsNV -> Int -> IO OpticalFlowUsageFlagsNV
$cpokeElemOff :: Ptr OpticalFlowUsageFlagsNV
-> Int -> OpticalFlowUsageFlagsNV -> IO ()
pokeElemOff :: Ptr OpticalFlowUsageFlagsNV
-> Int -> OpticalFlowUsageFlagsNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowUsageFlagsNV
peekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowUsageFlagsNV
$cpokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowUsageFlagsNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowUsageFlagsNV -> IO ()
$cpeek :: Ptr OpticalFlowUsageFlagsNV -> IO OpticalFlowUsageFlagsNV
peek :: Ptr OpticalFlowUsageFlagsNV -> IO OpticalFlowUsageFlagsNV
$cpoke :: Ptr OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> IO ()
poke :: Ptr OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV -> IO ()
Storable, OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV -> Zero OpticalFlowUsageFlagsNV
forall a. a -> Zero a
$czero :: OpticalFlowUsageFlagsNV
zero :: OpticalFlowUsageFlagsNV
Zero, Eq OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV
Eq OpticalFlowUsageFlagsNV =>
(OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> OpticalFlowUsageFlagsNV
-> (Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> Bool)
-> (OpticalFlowUsageFlagsNV -> Maybe Int)
-> (OpticalFlowUsageFlagsNV -> Int)
-> (OpticalFlowUsageFlagsNV -> Bool)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV)
-> (OpticalFlowUsageFlagsNV -> Int)
-> Bits OpticalFlowUsageFlagsNV
Int -> OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV -> Bool
OpticalFlowUsageFlagsNV -> Int
OpticalFlowUsageFlagsNV -> Maybe Int
OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV -> Int -> Bool
OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
.&. :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
$c.|. :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
.|. :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
$cxor :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
xor :: OpticalFlowUsageFlagsNV
-> OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
$ccomplement :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
complement :: OpticalFlowUsageFlagsNV -> OpticalFlowUsageFlagsNV
$cshift :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
shift :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$crotate :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
rotate :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$czeroBits :: OpticalFlowUsageFlagsNV
zeroBits :: OpticalFlowUsageFlagsNV
$cbit :: Int -> OpticalFlowUsageFlagsNV
bit :: Int -> OpticalFlowUsageFlagsNV
$csetBit :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
setBit :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$cclearBit :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
clearBit :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$ccomplementBit :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
complementBit :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$ctestBit :: OpticalFlowUsageFlagsNV -> Int -> Bool
testBit :: OpticalFlowUsageFlagsNV -> Int -> Bool
$cbitSizeMaybe :: OpticalFlowUsageFlagsNV -> Maybe Int
bitSizeMaybe :: OpticalFlowUsageFlagsNV -> Maybe Int
$cbitSize :: OpticalFlowUsageFlagsNV -> Int
bitSize :: OpticalFlowUsageFlagsNV -> Int
$cisSigned :: OpticalFlowUsageFlagsNV -> Bool
isSigned :: OpticalFlowUsageFlagsNV -> Bool
$cshiftL :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
shiftL :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$cunsafeShiftL :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
unsafeShiftL :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$cshiftR :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
shiftR :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$cunsafeShiftR :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
unsafeShiftR :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$crotateL :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
rotateL :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$crotateR :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
rotateR :: OpticalFlowUsageFlagsNV -> Int -> OpticalFlowUsageFlagsNV
$cpopCount :: OpticalFlowUsageFlagsNV -> Int
popCount :: OpticalFlowUsageFlagsNV -> Int
Bits, Bits OpticalFlowUsageFlagsNV
Bits OpticalFlowUsageFlagsNV =>
(OpticalFlowUsageFlagsNV -> Int)
-> (OpticalFlowUsageFlagsNV -> Int)
-> (OpticalFlowUsageFlagsNV -> Int)
-> FiniteBits OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagsNV -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: OpticalFlowUsageFlagsNV -> Int
finiteBitSize :: OpticalFlowUsageFlagsNV -> Int
$ccountLeadingZeros :: OpticalFlowUsageFlagsNV -> Int
countLeadingZeros :: OpticalFlowUsageFlagsNV -> Int
$ccountTrailingZeros :: OpticalFlowUsageFlagsNV -> Int
countTrailingZeros :: OpticalFlowUsageFlagsNV -> Int
FiniteBits)
pattern $bOPTICAL_FLOW_USAGE_UNKNOWN_NV :: OpticalFlowUsageFlagsNV
$mOPTICAL_FLOW_USAGE_UNKNOWN_NV :: forall {r}.
OpticalFlowUsageFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_USAGE_UNKNOWN_NV = OpticalFlowUsageFlagBitsNV 0x00000000
pattern $bOPTICAL_FLOW_USAGE_INPUT_BIT_NV :: OpticalFlowUsageFlagsNV
$mOPTICAL_FLOW_USAGE_INPUT_BIT_NV :: forall {r}.
OpticalFlowUsageFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_USAGE_INPUT_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000001
pattern $bOPTICAL_FLOW_USAGE_OUTPUT_BIT_NV :: OpticalFlowUsageFlagsNV
$mOPTICAL_FLOW_USAGE_OUTPUT_BIT_NV :: forall {r}.
OpticalFlowUsageFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000002
pattern $bOPTICAL_FLOW_USAGE_HINT_BIT_NV :: OpticalFlowUsageFlagsNV
$mOPTICAL_FLOW_USAGE_HINT_BIT_NV :: forall {r}.
OpticalFlowUsageFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_USAGE_HINT_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000004
pattern $bOPTICAL_FLOW_USAGE_COST_BIT_NV :: OpticalFlowUsageFlagsNV
$mOPTICAL_FLOW_USAGE_COST_BIT_NV :: forall {r}.
OpticalFlowUsageFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_USAGE_COST_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000008
pattern $bOPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV :: OpticalFlowUsageFlagsNV
$mOPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV :: forall {r}.
OpticalFlowUsageFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000010
conNameOpticalFlowUsageFlagBitsNV :: String
conNameOpticalFlowUsageFlagBitsNV :: String
conNameOpticalFlowUsageFlagBitsNV = String
"OpticalFlowUsageFlagBitsNV"
enumPrefixOpticalFlowUsageFlagBitsNV :: String
enumPrefixOpticalFlowUsageFlagBitsNV :: String
enumPrefixOpticalFlowUsageFlagBitsNV = String
"OPTICAL_FLOW_USAGE_"
showTableOpticalFlowUsageFlagBitsNV :: [(OpticalFlowUsageFlagBitsNV, String)]
showTableOpticalFlowUsageFlagBitsNV :: [(OpticalFlowUsageFlagsNV, String)]
showTableOpticalFlowUsageFlagBitsNV =
[
( OpticalFlowUsageFlagsNV
OPTICAL_FLOW_USAGE_UNKNOWN_NV
, String
"UNKNOWN_NV"
)
,
( OpticalFlowUsageFlagsNV
OPTICAL_FLOW_USAGE_INPUT_BIT_NV
, String
"INPUT_BIT_NV"
)
,
( OpticalFlowUsageFlagsNV
OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV
, String
"OUTPUT_BIT_NV"
)
,
( OpticalFlowUsageFlagsNV
OPTICAL_FLOW_USAGE_HINT_BIT_NV
, String
"HINT_BIT_NV"
)
,
( OpticalFlowUsageFlagsNV
OPTICAL_FLOW_USAGE_COST_BIT_NV
, String
"COST_BIT_NV"
)
,
( OpticalFlowUsageFlagsNV
OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV
, String
"GLOBAL_FLOW_BIT_NV"
)
]
instance Show OpticalFlowUsageFlagBitsNV where
showsPrec :: Int -> OpticalFlowUsageFlagsNV -> ShowS
showsPrec =
String
-> [(OpticalFlowUsageFlagsNV, String)]
-> String
-> (OpticalFlowUsageFlagsNV -> Flags)
-> (Flags -> ShowS)
-> Int
-> OpticalFlowUsageFlagsNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpticalFlowUsageFlagBitsNV
[(OpticalFlowUsageFlagsNV, String)]
showTableOpticalFlowUsageFlagBitsNV
String
conNameOpticalFlowUsageFlagBitsNV
(\(OpticalFlowUsageFlagBitsNV Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. Integral a => a -> ShowS
showHex Flags
x)
instance Read OpticalFlowUsageFlagBitsNV where
readPrec :: ReadPrec OpticalFlowUsageFlagsNV
readPrec =
String
-> [(OpticalFlowUsageFlagsNV, String)]
-> String
-> (Flags -> OpticalFlowUsageFlagsNV)
-> ReadPrec OpticalFlowUsageFlagsNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpticalFlowUsageFlagBitsNV
[(OpticalFlowUsageFlagsNV, String)]
showTableOpticalFlowUsageFlagBitsNV
String
conNameOpticalFlowUsageFlagBitsNV
Flags -> OpticalFlowUsageFlagsNV
OpticalFlowUsageFlagBitsNV
newtype OpticalFlowPerformanceLevelNV = OpticalFlowPerformanceLevelNV Int32
deriving newtype (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
(OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool)
-> Eq OpticalFlowPerformanceLevelNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
== :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
$c/= :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
/= :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
Eq, Eq OpticalFlowPerformanceLevelNV
Eq OpticalFlowPerformanceLevelNV =>
(OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Ordering)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV)
-> (OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV)
-> Ord OpticalFlowPerformanceLevelNV
OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Ordering
OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Ordering
compare :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Ordering
$c< :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
< :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
$c<= :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
<= :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
$c> :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
> :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
$c>= :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
>= :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> Bool
$cmax :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV
max :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV
$cmin :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV
min :: OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> OpticalFlowPerformanceLevelNV
Ord, Ptr OpticalFlowPerformanceLevelNV
-> IO OpticalFlowPerformanceLevelNV
Ptr OpticalFlowPerformanceLevelNV
-> Int -> IO OpticalFlowPerformanceLevelNV
Ptr OpticalFlowPerformanceLevelNV
-> Int -> OpticalFlowPerformanceLevelNV -> IO ()
Ptr OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> IO ()
OpticalFlowPerformanceLevelNV -> Int
(OpticalFlowPerformanceLevelNV -> Int)
-> (OpticalFlowPerformanceLevelNV -> Int)
-> (Ptr OpticalFlowPerformanceLevelNV
-> Int -> IO OpticalFlowPerformanceLevelNV)
-> (Ptr OpticalFlowPerformanceLevelNV
-> Int -> OpticalFlowPerformanceLevelNV -> IO ())
-> (forall b. Ptr b -> Int -> IO OpticalFlowPerformanceLevelNV)
-> (forall b.
Ptr b -> Int -> OpticalFlowPerformanceLevelNV -> IO ())
-> (Ptr OpticalFlowPerformanceLevelNV
-> IO OpticalFlowPerformanceLevelNV)
-> (Ptr OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> IO ())
-> Storable OpticalFlowPerformanceLevelNV
forall b. Ptr b -> Int -> IO OpticalFlowPerformanceLevelNV
forall b. Ptr b -> Int -> OpticalFlowPerformanceLevelNV -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: OpticalFlowPerformanceLevelNV -> Int
sizeOf :: OpticalFlowPerformanceLevelNV -> Int
$calignment :: OpticalFlowPerformanceLevelNV -> Int
alignment :: OpticalFlowPerformanceLevelNV -> Int
$cpeekElemOff :: Ptr OpticalFlowPerformanceLevelNV
-> Int -> IO OpticalFlowPerformanceLevelNV
peekElemOff :: Ptr OpticalFlowPerformanceLevelNV
-> Int -> IO OpticalFlowPerformanceLevelNV
$cpokeElemOff :: Ptr OpticalFlowPerformanceLevelNV
-> Int -> OpticalFlowPerformanceLevelNV -> IO ()
pokeElemOff :: Ptr OpticalFlowPerformanceLevelNV
-> Int -> OpticalFlowPerformanceLevelNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowPerformanceLevelNV
peekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowPerformanceLevelNV
$cpokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowPerformanceLevelNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowPerformanceLevelNV -> IO ()
$cpeek :: Ptr OpticalFlowPerformanceLevelNV
-> IO OpticalFlowPerformanceLevelNV
peek :: Ptr OpticalFlowPerformanceLevelNV
-> IO OpticalFlowPerformanceLevelNV
$cpoke :: Ptr OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> IO ()
poke :: Ptr OpticalFlowPerformanceLevelNV
-> OpticalFlowPerformanceLevelNV -> IO ()
Storable, OpticalFlowPerformanceLevelNV
OpticalFlowPerformanceLevelNV -> Zero OpticalFlowPerformanceLevelNV
forall a. a -> Zero a
$czero :: OpticalFlowPerformanceLevelNV
zero :: OpticalFlowPerformanceLevelNV
Zero)
pattern $bOPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV :: OpticalFlowPerformanceLevelNV
$mOPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV :: forall {r}.
OpticalFlowPerformanceLevelNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = OpticalFlowPerformanceLevelNV 0
pattern $bOPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV :: OpticalFlowPerformanceLevelNV
$mOPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV :: forall {r}.
OpticalFlowPerformanceLevelNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = OpticalFlowPerformanceLevelNV 1
pattern $bOPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV :: OpticalFlowPerformanceLevelNV
$mOPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV :: forall {r}.
OpticalFlowPerformanceLevelNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = OpticalFlowPerformanceLevelNV 2
pattern $bOPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV :: OpticalFlowPerformanceLevelNV
$mOPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV :: forall {r}.
OpticalFlowPerformanceLevelNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = OpticalFlowPerformanceLevelNV 3
{-# COMPLETE
OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV
, OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV
, OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV
, OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV ::
OpticalFlowPerformanceLevelNV
#-}
conNameOpticalFlowPerformanceLevelNV :: String
conNameOpticalFlowPerformanceLevelNV :: String
conNameOpticalFlowPerformanceLevelNV = String
"OpticalFlowPerformanceLevelNV"
enumPrefixOpticalFlowPerformanceLevelNV :: String
enumPrefixOpticalFlowPerformanceLevelNV :: String
enumPrefixOpticalFlowPerformanceLevelNV = String
"OPTICAL_FLOW_PERFORMANCE_LEVEL_"
showTableOpticalFlowPerformanceLevelNV :: [(OpticalFlowPerformanceLevelNV, String)]
showTableOpticalFlowPerformanceLevelNV :: [(OpticalFlowPerformanceLevelNV, String)]
showTableOpticalFlowPerformanceLevelNV =
[
( OpticalFlowPerformanceLevelNV
OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV
, String
"UNKNOWN_NV"
)
,
( OpticalFlowPerformanceLevelNV
OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV
, String
"SLOW_NV"
)
,
( OpticalFlowPerformanceLevelNV
OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV
, String
"MEDIUM_NV"
)
,
( OpticalFlowPerformanceLevelNV
OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV
, String
"FAST_NV"
)
]
instance Show OpticalFlowPerformanceLevelNV where
showsPrec :: Int -> OpticalFlowPerformanceLevelNV -> ShowS
showsPrec =
String
-> [(OpticalFlowPerformanceLevelNV, String)]
-> String
-> (OpticalFlowPerformanceLevelNV -> Int32)
-> (Int32 -> ShowS)
-> Int
-> OpticalFlowPerformanceLevelNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpticalFlowPerformanceLevelNV
[(OpticalFlowPerformanceLevelNV, String)]
showTableOpticalFlowPerformanceLevelNV
String
conNameOpticalFlowPerformanceLevelNV
(\(OpticalFlowPerformanceLevelNV Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read OpticalFlowPerformanceLevelNV where
readPrec :: ReadPrec OpticalFlowPerformanceLevelNV
readPrec =
String
-> [(OpticalFlowPerformanceLevelNV, String)]
-> String
-> (Int32 -> OpticalFlowPerformanceLevelNV)
-> ReadPrec OpticalFlowPerformanceLevelNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpticalFlowPerformanceLevelNV
[(OpticalFlowPerformanceLevelNV, String)]
showTableOpticalFlowPerformanceLevelNV
String
conNameOpticalFlowPerformanceLevelNV
Int32 -> OpticalFlowPerformanceLevelNV
OpticalFlowPerformanceLevelNV
newtype OpticalFlowSessionBindingPointNV = OpticalFlowSessionBindingPointNV Int32
deriving newtype (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
(OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool)
-> Eq OpticalFlowSessionBindingPointNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
== :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
$c/= :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
/= :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
Eq, Eq OpticalFlowSessionBindingPointNV
Eq OpticalFlowSessionBindingPointNV =>
(OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Ordering)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV)
-> (OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV)
-> Ord OpticalFlowSessionBindingPointNV
OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Ordering
OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Ordering
compare :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Ordering
$c< :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
< :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
$c<= :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
<= :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
$c> :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
> :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
$c>= :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
>= :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> Bool
$cmax :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
max :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
$cmin :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
min :: OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV
Ord, Ptr OpticalFlowSessionBindingPointNV
-> IO OpticalFlowSessionBindingPointNV
Ptr OpticalFlowSessionBindingPointNV
-> Int -> IO OpticalFlowSessionBindingPointNV
Ptr OpticalFlowSessionBindingPointNV
-> Int -> OpticalFlowSessionBindingPointNV -> IO ()
Ptr OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> IO ()
OpticalFlowSessionBindingPointNV -> Int
(OpticalFlowSessionBindingPointNV -> Int)
-> (OpticalFlowSessionBindingPointNV -> Int)
-> (Ptr OpticalFlowSessionBindingPointNV
-> Int -> IO OpticalFlowSessionBindingPointNV)
-> (Ptr OpticalFlowSessionBindingPointNV
-> Int -> OpticalFlowSessionBindingPointNV -> IO ())
-> (forall b. Ptr b -> Int -> IO OpticalFlowSessionBindingPointNV)
-> (forall b.
Ptr b -> Int -> OpticalFlowSessionBindingPointNV -> IO ())
-> (Ptr OpticalFlowSessionBindingPointNV
-> IO OpticalFlowSessionBindingPointNV)
-> (Ptr OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> IO ())
-> Storable OpticalFlowSessionBindingPointNV
forall b. Ptr b -> Int -> IO OpticalFlowSessionBindingPointNV
forall b. Ptr b -> Int -> OpticalFlowSessionBindingPointNV -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: OpticalFlowSessionBindingPointNV -> Int
sizeOf :: OpticalFlowSessionBindingPointNV -> Int
$calignment :: OpticalFlowSessionBindingPointNV -> Int
alignment :: OpticalFlowSessionBindingPointNV -> Int
$cpeekElemOff :: Ptr OpticalFlowSessionBindingPointNV
-> Int -> IO OpticalFlowSessionBindingPointNV
peekElemOff :: Ptr OpticalFlowSessionBindingPointNV
-> Int -> IO OpticalFlowSessionBindingPointNV
$cpokeElemOff :: Ptr OpticalFlowSessionBindingPointNV
-> Int -> OpticalFlowSessionBindingPointNV -> IO ()
pokeElemOff :: Ptr OpticalFlowSessionBindingPointNV
-> Int -> OpticalFlowSessionBindingPointNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowSessionBindingPointNV
peekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowSessionBindingPointNV
$cpokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowSessionBindingPointNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowSessionBindingPointNV -> IO ()
$cpeek :: Ptr OpticalFlowSessionBindingPointNV
-> IO OpticalFlowSessionBindingPointNV
peek :: Ptr OpticalFlowSessionBindingPointNV
-> IO OpticalFlowSessionBindingPointNV
$cpoke :: Ptr OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> IO ()
poke :: Ptr OpticalFlowSessionBindingPointNV
-> OpticalFlowSessionBindingPointNV -> IO ()
Storable, OpticalFlowSessionBindingPointNV
OpticalFlowSessionBindingPointNV
-> Zero OpticalFlowSessionBindingPointNV
forall a. a -> Zero a
$czero :: OpticalFlowSessionBindingPointNV
zero :: OpticalFlowSessionBindingPointNV
Zero)
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = OpticalFlowSessionBindingPointNV 0
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = OpticalFlowSessionBindingPointNV 1
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = OpticalFlowSessionBindingPointNV 2
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = OpticalFlowSessionBindingPointNV 3
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = OpticalFlowSessionBindingPointNV 4
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = OpticalFlowSessionBindingPointNV 5
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = OpticalFlowSessionBindingPointNV 6
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = OpticalFlowSessionBindingPointNV 7
pattern $bOPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV :: OpticalFlowSessionBindingPointNV
$mOPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV :: forall {r}.
OpticalFlowSessionBindingPointNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = OpticalFlowSessionBindingPointNV 8
{-# COMPLETE
OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV
, OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV ::
OpticalFlowSessionBindingPointNV
#-}
conNameOpticalFlowSessionBindingPointNV :: String
conNameOpticalFlowSessionBindingPointNV :: String
conNameOpticalFlowSessionBindingPointNV = String
"OpticalFlowSessionBindingPointNV"
enumPrefixOpticalFlowSessionBindingPointNV :: String
enumPrefixOpticalFlowSessionBindingPointNV :: String
enumPrefixOpticalFlowSessionBindingPointNV = String
"OPTICAL_FLOW_SESSION_BINDING_POINT_"
showTableOpticalFlowSessionBindingPointNV :: [(OpticalFlowSessionBindingPointNV, String)]
showTableOpticalFlowSessionBindingPointNV :: [(OpticalFlowSessionBindingPointNV, String)]
showTableOpticalFlowSessionBindingPointNV =
[
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV
, String
"UNKNOWN_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV
, String
"INPUT_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV
, String
"REFERENCE_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV
, String
"HINT_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV
, String
"FLOW_VECTOR_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV
, String
"BACKWARD_FLOW_VECTOR_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV
, String
"COST_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV
, String
"BACKWARD_COST_NV"
)
,
( OpticalFlowSessionBindingPointNV
OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV
, String
"GLOBAL_FLOW_NV"
)
]
instance Show OpticalFlowSessionBindingPointNV where
showsPrec :: Int -> OpticalFlowSessionBindingPointNV -> ShowS
showsPrec =
String
-> [(OpticalFlowSessionBindingPointNV, String)]
-> String
-> (OpticalFlowSessionBindingPointNV -> Int32)
-> (Int32 -> ShowS)
-> Int
-> OpticalFlowSessionBindingPointNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpticalFlowSessionBindingPointNV
[(OpticalFlowSessionBindingPointNV, String)]
showTableOpticalFlowSessionBindingPointNV
String
conNameOpticalFlowSessionBindingPointNV
(\(OpticalFlowSessionBindingPointNV Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read OpticalFlowSessionBindingPointNV where
readPrec :: ReadPrec OpticalFlowSessionBindingPointNV
readPrec =
String
-> [(OpticalFlowSessionBindingPointNV, String)]
-> String
-> (Int32 -> OpticalFlowSessionBindingPointNV)
-> ReadPrec OpticalFlowSessionBindingPointNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpticalFlowSessionBindingPointNV
[(OpticalFlowSessionBindingPointNV, String)]
showTableOpticalFlowSessionBindingPointNV
String
conNameOpticalFlowSessionBindingPointNV
Int32 -> OpticalFlowSessionBindingPointNV
OpticalFlowSessionBindingPointNV
type OpticalFlowSessionCreateFlagsNV = OpticalFlowSessionCreateFlagBitsNV
newtype OpticalFlowSessionCreateFlagBitsNV = OpticalFlowSessionCreateFlagBitsNV Flags
deriving newtype (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
(OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool)
-> Eq OpticalFlowSessionCreateFlagsNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
== :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
$c/= :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
/= :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
Eq, Eq OpticalFlowSessionCreateFlagsNV
Eq OpticalFlowSessionCreateFlagsNV =>
(OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Ordering)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV)
-> Ord OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Ordering
OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Ordering
compare :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Ordering
$c< :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
< :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
$c<= :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
<= :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
$c> :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
> :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
$c>= :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
>= :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> Bool
$cmax :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
max :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
$cmin :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
min :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
Ord, Ptr OpticalFlowSessionCreateFlagsNV
-> IO OpticalFlowSessionCreateFlagsNV
Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> IO OpticalFlowSessionCreateFlagsNV
Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV -> IO ()
Ptr OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> IO ()
OpticalFlowSessionCreateFlagsNV -> Int
(OpticalFlowSessionCreateFlagsNV -> Int)
-> (OpticalFlowSessionCreateFlagsNV -> Int)
-> (Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> IO OpticalFlowSessionCreateFlagsNV)
-> (Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV -> IO ())
-> (forall b. Ptr b -> Int -> IO OpticalFlowSessionCreateFlagsNV)
-> (forall b.
Ptr b -> Int -> OpticalFlowSessionCreateFlagsNV -> IO ())
-> (Ptr OpticalFlowSessionCreateFlagsNV
-> IO OpticalFlowSessionCreateFlagsNV)
-> (Ptr OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> IO ())
-> Storable OpticalFlowSessionCreateFlagsNV
forall b. Ptr b -> Int -> IO OpticalFlowSessionCreateFlagsNV
forall b. Ptr b -> Int -> OpticalFlowSessionCreateFlagsNV -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: OpticalFlowSessionCreateFlagsNV -> Int
sizeOf :: OpticalFlowSessionCreateFlagsNV -> Int
$calignment :: OpticalFlowSessionCreateFlagsNV -> Int
alignment :: OpticalFlowSessionCreateFlagsNV -> Int
$cpeekElemOff :: Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> IO OpticalFlowSessionCreateFlagsNV
peekElemOff :: Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> IO OpticalFlowSessionCreateFlagsNV
$cpokeElemOff :: Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV -> IO ()
pokeElemOff :: Ptr OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowSessionCreateFlagsNV
peekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowSessionCreateFlagsNV
$cpokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowSessionCreateFlagsNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowSessionCreateFlagsNV -> IO ()
$cpeek :: Ptr OpticalFlowSessionCreateFlagsNV
-> IO OpticalFlowSessionCreateFlagsNV
peek :: Ptr OpticalFlowSessionCreateFlagsNV
-> IO OpticalFlowSessionCreateFlagsNV
$cpoke :: Ptr OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> IO ()
poke :: Ptr OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV -> IO ()
Storable, OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV
-> Zero OpticalFlowSessionCreateFlagsNV
forall a. a -> Zero a
$czero :: OpticalFlowSessionCreateFlagsNV
zero :: OpticalFlowSessionCreateFlagsNV
Zero, Eq OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV
Eq OpticalFlowSessionCreateFlagsNV =>
(OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> OpticalFlowSessionCreateFlagsNV
-> (Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV -> Int -> Bool)
-> (OpticalFlowSessionCreateFlagsNV -> Maybe Int)
-> (OpticalFlowSessionCreateFlagsNV -> Int)
-> (OpticalFlowSessionCreateFlagsNV -> Bool)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV)
-> (OpticalFlowSessionCreateFlagsNV -> Int)
-> Bits OpticalFlowSessionCreateFlagsNV
Int -> OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV -> Bool
OpticalFlowSessionCreateFlagsNV -> Int
OpticalFlowSessionCreateFlagsNV -> Maybe Int
OpticalFlowSessionCreateFlagsNV -> OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV -> Int -> Bool
OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
.&. :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
$c.|. :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
.|. :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
$cxor :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
xor :: OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
-> OpticalFlowSessionCreateFlagsNV
$ccomplement :: OpticalFlowSessionCreateFlagsNV -> OpticalFlowSessionCreateFlagsNV
complement :: OpticalFlowSessionCreateFlagsNV -> OpticalFlowSessionCreateFlagsNV
$cshift :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
shift :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$crotate :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
rotate :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$czeroBits :: OpticalFlowSessionCreateFlagsNV
zeroBits :: OpticalFlowSessionCreateFlagsNV
$cbit :: Int -> OpticalFlowSessionCreateFlagsNV
bit :: Int -> OpticalFlowSessionCreateFlagsNV
$csetBit :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
setBit :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$cclearBit :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
clearBit :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$ccomplementBit :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
complementBit :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$ctestBit :: OpticalFlowSessionCreateFlagsNV -> Int -> Bool
testBit :: OpticalFlowSessionCreateFlagsNV -> Int -> Bool
$cbitSizeMaybe :: OpticalFlowSessionCreateFlagsNV -> Maybe Int
bitSizeMaybe :: OpticalFlowSessionCreateFlagsNV -> Maybe Int
$cbitSize :: OpticalFlowSessionCreateFlagsNV -> Int
bitSize :: OpticalFlowSessionCreateFlagsNV -> Int
$cisSigned :: OpticalFlowSessionCreateFlagsNV -> Bool
isSigned :: OpticalFlowSessionCreateFlagsNV -> Bool
$cshiftL :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
shiftL :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$cunsafeShiftL :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
unsafeShiftL :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$cshiftR :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
shiftR :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$cunsafeShiftR :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
unsafeShiftR :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$crotateL :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
rotateL :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$crotateR :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
rotateR :: OpticalFlowSessionCreateFlagsNV
-> Int -> OpticalFlowSessionCreateFlagsNV
$cpopCount :: OpticalFlowSessionCreateFlagsNV -> Int
popCount :: OpticalFlowSessionCreateFlagsNV -> Int
Bits, Bits OpticalFlowSessionCreateFlagsNV
Bits OpticalFlowSessionCreateFlagsNV =>
(OpticalFlowSessionCreateFlagsNV -> Int)
-> (OpticalFlowSessionCreateFlagsNV -> Int)
-> (OpticalFlowSessionCreateFlagsNV -> Int)
-> FiniteBits OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagsNV -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: OpticalFlowSessionCreateFlagsNV -> Int
finiteBitSize :: OpticalFlowSessionCreateFlagsNV -> Int
$ccountLeadingZeros :: OpticalFlowSessionCreateFlagsNV -> Int
countLeadingZeros :: OpticalFlowSessionCreateFlagsNV -> Int
$ccountTrailingZeros :: OpticalFlowSessionCreateFlagsNV -> Int
countTrailingZeros :: OpticalFlowSessionCreateFlagsNV -> Int
FiniteBits)
pattern $bOPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV :: OpticalFlowSessionCreateFlagsNV
$mOPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV :: forall {r}.
OpticalFlowSessionCreateFlagsNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000001
pattern $bOPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV :: OpticalFlowSessionCreateFlagsNV
$mOPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV :: forall {r}.
OpticalFlowSessionCreateFlagsNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000002
pattern $bOPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV :: OpticalFlowSessionCreateFlagsNV
$mOPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV :: forall {r}.
OpticalFlowSessionCreateFlagsNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000004
pattern $bOPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV :: OpticalFlowSessionCreateFlagsNV
$mOPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV :: forall {r}.
OpticalFlowSessionCreateFlagsNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000008
pattern $bOPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV :: OpticalFlowSessionCreateFlagsNV
$mOPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV :: forall {r}.
OpticalFlowSessionCreateFlagsNV
-> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000010
conNameOpticalFlowSessionCreateFlagBitsNV :: String
conNameOpticalFlowSessionCreateFlagBitsNV :: String
conNameOpticalFlowSessionCreateFlagBitsNV = String
"OpticalFlowSessionCreateFlagBitsNV"
enumPrefixOpticalFlowSessionCreateFlagBitsNV :: String
enumPrefixOpticalFlowSessionCreateFlagBitsNV :: String
enumPrefixOpticalFlowSessionCreateFlagBitsNV = String
"OPTICAL_FLOW_SESSION_CREATE_"
showTableOpticalFlowSessionCreateFlagBitsNV :: [(OpticalFlowSessionCreateFlagBitsNV, String)]
showTableOpticalFlowSessionCreateFlagBitsNV :: [(OpticalFlowSessionCreateFlagsNV, String)]
showTableOpticalFlowSessionCreateFlagBitsNV =
[
( OpticalFlowSessionCreateFlagsNV
OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV
, String
"ENABLE_HINT_BIT_NV"
)
,
( OpticalFlowSessionCreateFlagsNV
OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV
, String
"ENABLE_COST_BIT_NV"
)
,
( OpticalFlowSessionCreateFlagsNV
OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV
, String
"ENABLE_GLOBAL_FLOW_BIT_NV"
)
,
( OpticalFlowSessionCreateFlagsNV
OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV
, String
"ALLOW_REGIONS_BIT_NV"
)
,
( OpticalFlowSessionCreateFlagsNV
OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV
, String
"BOTH_DIRECTIONS_BIT_NV"
)
]
instance Show OpticalFlowSessionCreateFlagBitsNV where
showsPrec :: Int -> OpticalFlowSessionCreateFlagsNV -> ShowS
showsPrec =
String
-> [(OpticalFlowSessionCreateFlagsNV, String)]
-> String
-> (OpticalFlowSessionCreateFlagsNV -> Flags)
-> (Flags -> ShowS)
-> Int
-> OpticalFlowSessionCreateFlagsNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpticalFlowSessionCreateFlagBitsNV
[(OpticalFlowSessionCreateFlagsNV, String)]
showTableOpticalFlowSessionCreateFlagBitsNV
String
conNameOpticalFlowSessionCreateFlagBitsNV
(\(OpticalFlowSessionCreateFlagBitsNV Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. Integral a => a -> ShowS
showHex Flags
x)
instance Read OpticalFlowSessionCreateFlagBitsNV where
readPrec :: ReadPrec OpticalFlowSessionCreateFlagsNV
readPrec =
String
-> [(OpticalFlowSessionCreateFlagsNV, String)]
-> String
-> (Flags -> OpticalFlowSessionCreateFlagsNV)
-> ReadPrec OpticalFlowSessionCreateFlagsNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpticalFlowSessionCreateFlagBitsNV
[(OpticalFlowSessionCreateFlagsNV, String)]
showTableOpticalFlowSessionCreateFlagBitsNV
String
conNameOpticalFlowSessionCreateFlagBitsNV
Flags -> OpticalFlowSessionCreateFlagsNV
OpticalFlowSessionCreateFlagBitsNV
type OpticalFlowExecuteFlagsNV = OpticalFlowExecuteFlagBitsNV
newtype OpticalFlowExecuteFlagBitsNV = OpticalFlowExecuteFlagBitsNV Flags
deriving newtype (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
(OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool)
-> (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool)
-> Eq OpticalFlowExecuteFlagsNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
== :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
$c/= :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
/= :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
Eq, Eq OpticalFlowExecuteFlagsNV
Eq OpticalFlowExecuteFlagsNV =>
(OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> Ordering)
-> (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool)
-> (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool)
-> (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool)
-> (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool)
-> (OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV)
-> Ord OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Ordering
OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Ordering
compare :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Ordering
$c< :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
< :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
$c<= :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
<= :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
$c> :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
> :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
$c>= :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
>= :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> Bool
$cmax :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
max :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
$cmin :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
min :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
Ord, Ptr OpticalFlowExecuteFlagsNV -> IO OpticalFlowExecuteFlagsNV
Ptr OpticalFlowExecuteFlagsNV
-> Int -> IO OpticalFlowExecuteFlagsNV
Ptr OpticalFlowExecuteFlagsNV
-> Int -> OpticalFlowExecuteFlagsNV -> IO ()
Ptr OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> IO ()
OpticalFlowExecuteFlagsNV -> Int
(OpticalFlowExecuteFlagsNV -> Int)
-> (OpticalFlowExecuteFlagsNV -> Int)
-> (Ptr OpticalFlowExecuteFlagsNV
-> Int -> IO OpticalFlowExecuteFlagsNV)
-> (Ptr OpticalFlowExecuteFlagsNV
-> Int -> OpticalFlowExecuteFlagsNV -> IO ())
-> (forall b. Ptr b -> Int -> IO OpticalFlowExecuteFlagsNV)
-> (forall b. Ptr b -> Int -> OpticalFlowExecuteFlagsNV -> IO ())
-> (Ptr OpticalFlowExecuteFlagsNV -> IO OpticalFlowExecuteFlagsNV)
-> (Ptr OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> IO ())
-> Storable OpticalFlowExecuteFlagsNV
forall b. Ptr b -> Int -> IO OpticalFlowExecuteFlagsNV
forall b. Ptr b -> Int -> OpticalFlowExecuteFlagsNV -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: OpticalFlowExecuteFlagsNV -> Int
sizeOf :: OpticalFlowExecuteFlagsNV -> Int
$calignment :: OpticalFlowExecuteFlagsNV -> Int
alignment :: OpticalFlowExecuteFlagsNV -> Int
$cpeekElemOff :: Ptr OpticalFlowExecuteFlagsNV
-> Int -> IO OpticalFlowExecuteFlagsNV
peekElemOff :: Ptr OpticalFlowExecuteFlagsNV
-> Int -> IO OpticalFlowExecuteFlagsNV
$cpokeElemOff :: Ptr OpticalFlowExecuteFlagsNV
-> Int -> OpticalFlowExecuteFlagsNV -> IO ()
pokeElemOff :: Ptr OpticalFlowExecuteFlagsNV
-> Int -> OpticalFlowExecuteFlagsNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowExecuteFlagsNV
peekByteOff :: forall b. Ptr b -> Int -> IO OpticalFlowExecuteFlagsNV
$cpokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowExecuteFlagsNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpticalFlowExecuteFlagsNV -> IO ()
$cpeek :: Ptr OpticalFlowExecuteFlagsNV -> IO OpticalFlowExecuteFlagsNV
peek :: Ptr OpticalFlowExecuteFlagsNV -> IO OpticalFlowExecuteFlagsNV
$cpoke :: Ptr OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> IO ()
poke :: Ptr OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV -> IO ()
Storable, OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV -> Zero OpticalFlowExecuteFlagsNV
forall a. a -> Zero a
$czero :: OpticalFlowExecuteFlagsNV
zero :: OpticalFlowExecuteFlagsNV
Zero, Eq OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV
Eq OpticalFlowExecuteFlagsNV =>
(OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> OpticalFlowExecuteFlagsNV
-> (Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> Bool)
-> (OpticalFlowExecuteFlagsNV -> Maybe Int)
-> (OpticalFlowExecuteFlagsNV -> Int)
-> (OpticalFlowExecuteFlagsNV -> Bool)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV)
-> (OpticalFlowExecuteFlagsNV -> Int)
-> Bits OpticalFlowExecuteFlagsNV
Int -> OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV -> Bool
OpticalFlowExecuteFlagsNV -> Int
OpticalFlowExecuteFlagsNV -> Maybe Int
OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV -> Int -> Bool
OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
.&. :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
$c.|. :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
.|. :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
$cxor :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
xor :: OpticalFlowExecuteFlagsNV
-> OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
$ccomplement :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
complement :: OpticalFlowExecuteFlagsNV -> OpticalFlowExecuteFlagsNV
$cshift :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
shift :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$crotate :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
rotate :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$czeroBits :: OpticalFlowExecuteFlagsNV
zeroBits :: OpticalFlowExecuteFlagsNV
$cbit :: Int -> OpticalFlowExecuteFlagsNV
bit :: Int -> OpticalFlowExecuteFlagsNV
$csetBit :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
setBit :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$cclearBit :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
clearBit :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$ccomplementBit :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
complementBit :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$ctestBit :: OpticalFlowExecuteFlagsNV -> Int -> Bool
testBit :: OpticalFlowExecuteFlagsNV -> Int -> Bool
$cbitSizeMaybe :: OpticalFlowExecuteFlagsNV -> Maybe Int
bitSizeMaybe :: OpticalFlowExecuteFlagsNV -> Maybe Int
$cbitSize :: OpticalFlowExecuteFlagsNV -> Int
bitSize :: OpticalFlowExecuteFlagsNV -> Int
$cisSigned :: OpticalFlowExecuteFlagsNV -> Bool
isSigned :: OpticalFlowExecuteFlagsNV -> Bool
$cshiftL :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
shiftL :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$cunsafeShiftL :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
unsafeShiftL :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$cshiftR :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
shiftR :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$cunsafeShiftR :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
unsafeShiftR :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$crotateL :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
rotateL :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$crotateR :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
rotateR :: OpticalFlowExecuteFlagsNV -> Int -> OpticalFlowExecuteFlagsNV
$cpopCount :: OpticalFlowExecuteFlagsNV -> Int
popCount :: OpticalFlowExecuteFlagsNV -> Int
Bits, Bits OpticalFlowExecuteFlagsNV
Bits OpticalFlowExecuteFlagsNV =>
(OpticalFlowExecuteFlagsNV -> Int)
-> (OpticalFlowExecuteFlagsNV -> Int)
-> (OpticalFlowExecuteFlagsNV -> Int)
-> FiniteBits OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagsNV -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: OpticalFlowExecuteFlagsNV -> Int
finiteBitSize :: OpticalFlowExecuteFlagsNV -> Int
$ccountLeadingZeros :: OpticalFlowExecuteFlagsNV -> Int
countLeadingZeros :: OpticalFlowExecuteFlagsNV -> Int
$ccountTrailingZeros :: OpticalFlowExecuteFlagsNV -> Int
countTrailingZeros :: OpticalFlowExecuteFlagsNV -> Int
FiniteBits)
pattern $bOPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV :: OpticalFlowExecuteFlagsNV
$mOPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV :: forall {r}.
OpticalFlowExecuteFlagsNV -> ((# #) -> r) -> ((# #) -> r) -> r
OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = OpticalFlowExecuteFlagBitsNV 0x00000001
conNameOpticalFlowExecuteFlagBitsNV :: String
conNameOpticalFlowExecuteFlagBitsNV :: String
conNameOpticalFlowExecuteFlagBitsNV = String
"OpticalFlowExecuteFlagBitsNV"
enumPrefixOpticalFlowExecuteFlagBitsNV :: String
enumPrefixOpticalFlowExecuteFlagBitsNV :: String
enumPrefixOpticalFlowExecuteFlagBitsNV = String
"OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"
showTableOpticalFlowExecuteFlagBitsNV :: [(OpticalFlowExecuteFlagBitsNV, String)]
showTableOpticalFlowExecuteFlagBitsNV :: [(OpticalFlowExecuteFlagsNV, String)]
showTableOpticalFlowExecuteFlagBitsNV =
[
( OpticalFlowExecuteFlagsNV
OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV
, String
""
)
]
instance Show OpticalFlowExecuteFlagBitsNV where
showsPrec :: Int -> OpticalFlowExecuteFlagsNV -> ShowS
showsPrec =
String
-> [(OpticalFlowExecuteFlagsNV, String)]
-> String
-> (OpticalFlowExecuteFlagsNV -> Flags)
-> (Flags -> ShowS)
-> Int
-> OpticalFlowExecuteFlagsNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpticalFlowExecuteFlagBitsNV
[(OpticalFlowExecuteFlagsNV, String)]
showTableOpticalFlowExecuteFlagBitsNV
String
conNameOpticalFlowExecuteFlagBitsNV
(\(OpticalFlowExecuteFlagBitsNV Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. Integral a => a -> ShowS
showHex Flags
x)
instance Read OpticalFlowExecuteFlagBitsNV where
readPrec :: ReadPrec OpticalFlowExecuteFlagsNV
readPrec =
String
-> [(OpticalFlowExecuteFlagsNV, String)]
-> String
-> (Flags -> OpticalFlowExecuteFlagsNV)
-> ReadPrec OpticalFlowExecuteFlagsNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpticalFlowExecuteFlagBitsNV
[(OpticalFlowExecuteFlagsNV, String)]
showTableOpticalFlowExecuteFlagBitsNV
String
conNameOpticalFlowExecuteFlagBitsNV
Flags -> OpticalFlowExecuteFlagsNV
OpticalFlowExecuteFlagBitsNV
type NV_OPTICAL_FLOW_SPEC_VERSION = 1
pattern NV_OPTICAL_FLOW_SPEC_VERSION :: forall a . Integral a => a
pattern $bNV_OPTICAL_FLOW_SPEC_VERSION :: forall a. Integral a => a
$mNV_OPTICAL_FLOW_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
NV_OPTICAL_FLOW_SPEC_VERSION = 1
type NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow"
pattern NV_OPTICAL_FLOW_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bNV_OPTICAL_FLOW_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mNV_OPTICAL_FLOW_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow"