packages feed

vulkan-api-1.1.0.0: src-gen/Graphics/Vulkan/Types/Funcpointers.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE Strict    #-}
module Graphics.Vulkan.Types.Funcpointers
       (PFN_vkAllocationFunction, HS_vkAllocationFunction,
        newVkAllocationFunction, unwrapVkAllocationFunction,
        PFN_vkDebugReportCallbackEXT, HS_vkDebugReportCallbackEXT,
        newVkDebugReportCallbackEXT, unwrapVkDebugReportCallbackEXT,
        PFN_vkDebugUtilsMessengerCallbackEXT,
        HS_vkDebugUtilsMessengerCallbackEXT,
        newVkDebugUtilsMessengerCallbackEXT,
        unwrapVkDebugUtilsMessengerCallbackEXT, PFN_vkFreeFunction,
        HS_vkFreeFunction, newVkFreeFunction, unwrapVkFreeFunction,
        PFN_vkInternalAllocationNotification,
        HS_vkInternalAllocationNotification,
        newVkInternalAllocationNotification,
        unwrapVkInternalAllocationNotification,
        PFN_vkInternalFreeNotification, HS_vkInternalFreeNotification,
        newVkInternalFreeNotification, unwrapVkInternalFreeNotification,
        PFN_vkReallocationFunction, HS_vkReallocationFunction,
        newVkReallocationFunction, unwrapVkReallocationFunction,
        PFN_vkVoidFunction, HS_vkVoidFunction, newVkVoidFunction,
        unwrapVkVoidFunction)
       where
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Types.BaseTypes
                                                                                    (VkBool32 (..),
                                                                                    VkFlags (..))
import           Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT
                                                                                    (VkDebugReportBitmaskEXT (..),
                                                                                    VkDebugReportFlagsEXT)
import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
                                                                                    (VkDebugReportObjectTypeEXT (..))
import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT
                                                                                    (VkDebugUtilsMessageSeverityBitmaskEXT (..),
                                                                                    VkDebugUtilsMessageSeverityFlagBitsEXT)
import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT
                                                                                    (VkDebugUtilsMessageTypeBitmaskEXT (..),
                                                                                    VkDebugUtilsMessageTypeFlagsEXT)
import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
                                                                                    (VkInternalAllocationType (..))
import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
                                                                                    (VkSystemAllocationScope (..))
import           Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCallbackDataEXT
                                                                                    (VkDebugUtilsMessengerCallbackDataEXT (..))

type HS_vkAllocationFunction =
     Ptr Void ->
       CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void)

-- | > typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
--   >     void*                                       pUserData,
--   >     size_t                                      size,
--   >     size_t                                      alignment,
--   >     VkSystemAllocationScope                     allocationScope);
type PFN_vkAllocationFunction = FunPtr HS_vkAllocationFunction

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkAllocationFunction ::
               HS_vkAllocationFunction -> IO PFN_vkAllocationFunction

foreign import ccall "dynamic" unwrapVkAllocationFunction ::
               PFN_vkAllocationFunction -> HS_vkAllocationFunction

type HS_vkDebugReportCallbackEXT =
     VkDebugReportFlagsEXT ->
       VkDebugReportObjectTypeEXT ->
         Word64 ->
           CSize -> Int32 -> CString -> CString -> Ptr Void -> IO VkBool32

-- | > typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
--   >     VkDebugReportFlagsEXT                       flags,
--   >     VkDebugReportObjectTypeEXT                  objectType,
--   >     uint64_t                                    object,
--   >     size_t                                      location,
--   >     int32_t                                     messageCode,
--   >     const char*                                 pLayerPrefix,
--   >     const char*                                 pMessage,
--   >     void*                                       pUserData);
type PFN_vkDebugReportCallbackEXT =
     FunPtr HS_vkDebugReportCallbackEXT

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkDebugReportCallbackEXT ::
               HS_vkDebugReportCallbackEXT -> IO PFN_vkDebugReportCallbackEXT

foreign import ccall "dynamic" unwrapVkDebugReportCallbackEXT ::
               PFN_vkDebugReportCallbackEXT -> HS_vkDebugReportCallbackEXT

type HS_vkDebugUtilsMessengerCallbackEXT =
     VkDebugUtilsMessageSeverityFlagBitsEXT ->
       VkDebugUtilsMessageTypeFlagsEXT ->
         Ptr VkDebugUtilsMessengerCallbackDataEXT -> Ptr Void -> IO VkBool32

-- | > typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
--   >     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
--   >     VkDebugUtilsMessageTypeFlagsEXT                  messageType,
--   >     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
--   >     void*                                            pUserData);
type PFN_vkDebugUtilsMessengerCallbackEXT =
     FunPtr HS_vkDebugUtilsMessengerCallbackEXT

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkDebugUtilsMessengerCallbackEXT
               ::
               HS_vkDebugUtilsMessengerCallbackEXT ->
                 IO PFN_vkDebugUtilsMessengerCallbackEXT

foreign import ccall "dynamic"
               unwrapVkDebugUtilsMessengerCallbackEXT ::
               PFN_vkDebugUtilsMessengerCallbackEXT ->
                 HS_vkDebugUtilsMessengerCallbackEXT

type HS_vkFreeFunction = Ptr Void -> Ptr Void -> IO ()

-- | > typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
--   >     void*                                       pUserData,
--   >     void*                                       pMemory);
type PFN_vkFreeFunction = FunPtr HS_vkFreeFunction

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkFreeFunction ::
               HS_vkFreeFunction -> IO PFN_vkFreeFunction

foreign import ccall "dynamic" unwrapVkFreeFunction ::
               PFN_vkFreeFunction -> HS_vkFreeFunction

type HS_vkInternalAllocationNotification =
     Ptr Void ->
       CSize ->
         VkInternalAllocationType -> VkSystemAllocationScope -> IO ()

-- | > typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
--   >     void*                                       pUserData,
--   >     size_t                                      size,
--   >     VkInternalAllocationType                    allocationType,
--   >     VkSystemAllocationScope                     allocationScope);
type PFN_vkInternalAllocationNotification =
     FunPtr HS_vkInternalAllocationNotification

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkInternalAllocationNotification
               ::
               HS_vkInternalAllocationNotification ->
                 IO PFN_vkInternalAllocationNotification

foreign import ccall "dynamic"
               unwrapVkInternalAllocationNotification ::
               PFN_vkInternalAllocationNotification ->
                 HS_vkInternalAllocationNotification

type HS_vkInternalFreeNotification =
     Ptr Void ->
       CSize ->
         VkInternalAllocationType -> VkSystemAllocationScope -> IO ()

-- | > typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
--   >     void*                                       pUserData,
--   >     size_t                                      size,
--   >     VkInternalAllocationType                    allocationType,
--   >     VkSystemAllocationScope                     allocationScope);
type PFN_vkInternalFreeNotification =
     FunPtr HS_vkInternalFreeNotification

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkInternalFreeNotification ::
               HS_vkInternalFreeNotification -> IO PFN_vkInternalFreeNotification

foreign import ccall "dynamic" unwrapVkInternalFreeNotification ::
               PFN_vkInternalFreeNotification -> HS_vkInternalFreeNotification

type HS_vkReallocationFunction =
     Ptr Void ->
       Ptr Void ->
         CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void)

-- | > typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
--   >     void*                                       pUserData,
--   >     void*                                       pOriginal,
--   >     size_t                                      size,
--   >     size_t                                      alignment,
--   >     VkSystemAllocationScope                     allocationScope);
type PFN_vkReallocationFunction = FunPtr HS_vkReallocationFunction

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkReallocationFunction ::
               HS_vkReallocationFunction -> IO PFN_vkReallocationFunction

foreign import ccall "dynamic" unwrapVkReallocationFunction ::
               PFN_vkReallocationFunction -> HS_vkReallocationFunction

type HS_vkVoidFunction = IO ()

-- | > typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
type PFN_vkVoidFunction = FunPtr HS_vkVoidFunction

-- | Wrap haskell function into C-callable FunPtr.
--   Note, you need to free resources after using it.
foreign import ccall "wrapper" newVkVoidFunction ::
               HS_vkVoidFunction -> IO PFN_vkVoidFunction

foreign import ccall "dynamic" unwrapVkVoidFunction ::
               PFN_vkVoidFunction -> HS_vkVoidFunction