{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Impl.Vulkan
( ImGui_ImplVulkan_InitInfo (..)
, ImGui_ImplVulkan_PipelineInfo (..)
, ImGui_ImplVulkan_RenderState (..)
, VkAllocationCallbacks
, VkPipelineRenderingCreateInfoKHR (..)
, VkShaderModuleCreateInfo (..)
, addTexture
, createMainPipeline
, destroyImGui_ImplVulkan_InitInfo
, destroyImGui_ImplVulkan_PipelineInfo
, destroyImGui_ImplVulkan_RenderState
, getRenderState
, init
, initImGui_ImplVulkan_InitInfo
, initImGui_ImplVulkan_PipelineInfo
, initImGui_ImplVulkan_RenderState
, loadFunctions
, newFrame
, pattern IMGUI_IMPL_VULKAN_MINIMUM_SAMPLED_IMAGE_POOL_SIZE
, pattern IMGUI_IMPL_VULKAN_MINIMUM_SAMPLER_POOL_SIZE
, removeTexture
, renderDrawData
, setMinImageCount
, shutdown
, updateTexture
, withDefaultImGui_ImplVulkan_InitInfo
, withDefaultImGui_ImplVulkan_PipelineInfo
, withDefaultImGui_ImplVulkan_RenderState
, zeroVkPipelineRenderingCreateInfoKHR
, zeroVkShaderModuleCreateInfo
) where
import Control.Exception (bracket_)
import Data.Word (Word32, Word8)
import DearImGui.Raw.ImDrawData (ImDrawData)
import DearImGui.Raw.ImTextureData (ImTextureData)
import DearImGui.Raw.ImVector (ImVector)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.ForeignPtr (ForeignPtr, mallocForeignPtrBytes, withForeignPtr)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Utils (copyBytes, fillBytes)
import Foreign.Ptr (FunPtr, Ptr, castPtr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)
import Vulkan.Core10
import Vulkan.Core10.Handles
import Vulkan.Extensions
#include "dcimgui_impl_vulkan.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_impl_vulkan.h" "ImGui_ImplVulkan_InitInfo" #-} ImGui_ImplVulkan_InitInfo = ImGui_ImplVulkan_InitInfo
{ apiVersion :: Word32
, instance_ :: Ptr Instance_T
, physicalDevice :: Ptr PhysicalDevice_T
, device :: Ptr Device_T
, queueFamily :: Word32
, queue :: Ptr Queue_T
, descriptorPool :: DescriptorPool
, descriptorPoolSize :: Word32
, minImageCount :: Word32
, imageCount :: Word32
, pipelineCache :: PipelineCache
, pipelineInfoMain :: ImGui_ImplVulkan_PipelineInfo
, pipelineInfoForViewports :: ImGui_ImplVulkan_PipelineInfo
, useDynamicRendering :: CBool
, allocator :: Ptr VkAllocationCallbacks
, checkVkResultFn :: FunPtr (Result -> IO ())
, minAllocationSize :: DeviceSize
, customShaderVertCreateInfo :: VkShaderModuleCreateInfo
, customShaderFragCreateInfo :: VkShaderModuleCreateInfo
}
deriving (Eq, Show)
instance Storable ImGui_ImplVulkan_InitInfo where
sizeOf _ = #{size ImGui_ImplVulkan_InitInfo}
alignment _ = #{alignment ImGui_ImplVulkan_InitInfo}
peek p = ImGui_ImplVulkan_InitInfo <$> #{peek ImGui_ImplVulkan_InitInfo, ApiVersion} p <*> #{peek ImGui_ImplVulkan_InitInfo, Instance} p <*> #{peek ImGui_ImplVulkan_InitInfo, PhysicalDevice} p <*> #{peek ImGui_ImplVulkan_InitInfo, Device} p <*> #{peek ImGui_ImplVulkan_InitInfo, QueueFamily} p <*> #{peek ImGui_ImplVulkan_InitInfo, Queue} p <*> #{peek ImGui_ImplVulkan_InitInfo, DescriptorPool} p <*> #{peek ImGui_ImplVulkan_InitInfo, DescriptorPoolSize} p <*> #{peek ImGui_ImplVulkan_InitInfo, MinImageCount} p <*> #{peek ImGui_ImplVulkan_InitInfo, ImageCount} p <*> #{peek ImGui_ImplVulkan_InitInfo, PipelineCache} p <*> #{peek ImGui_ImplVulkan_InitInfo, PipelineInfoMain} p <*> #{peek ImGui_ImplVulkan_InitInfo, PipelineInfoForViewports} p <*> #{peek ImGui_ImplVulkan_InitInfo, UseDynamicRendering} p <*> #{peek ImGui_ImplVulkan_InitInfo, Allocator} p <*> #{peek ImGui_ImplVulkan_InitInfo, CheckVkResultFn} p <*> #{peek ImGui_ImplVulkan_InitInfo, MinAllocationSize} p <*> #{peek ImGui_ImplVulkan_InitInfo, CustomShaderVertCreateInfo} p <*> #{peek ImGui_ImplVulkan_InitInfo, CustomShaderFragCreateInfo} p
poke p v = do
#{poke ImGui_ImplVulkan_InitInfo, ApiVersion} p v.apiVersion
#{poke ImGui_ImplVulkan_InitInfo, Instance} p v.instance_
#{poke ImGui_ImplVulkan_InitInfo, PhysicalDevice} p v.physicalDevice
#{poke ImGui_ImplVulkan_InitInfo, Device} p v.device
#{poke ImGui_ImplVulkan_InitInfo, QueueFamily} p v.queueFamily
#{poke ImGui_ImplVulkan_InitInfo, Queue} p v.queue
#{poke ImGui_ImplVulkan_InitInfo, DescriptorPool} p v.descriptorPool
#{poke ImGui_ImplVulkan_InitInfo, DescriptorPoolSize} p v.descriptorPoolSize
#{poke ImGui_ImplVulkan_InitInfo, MinImageCount} p v.minImageCount
#{poke ImGui_ImplVulkan_InitInfo, ImageCount} p v.imageCount
#{poke ImGui_ImplVulkan_InitInfo, PipelineCache} p v.pipelineCache
#{poke ImGui_ImplVulkan_InitInfo, PipelineInfoMain} p v.pipelineInfoMain
#{poke ImGui_ImplVulkan_InitInfo, PipelineInfoForViewports} p v.pipelineInfoForViewports
#{poke ImGui_ImplVulkan_InitInfo, UseDynamicRendering} p v.useDynamicRendering
#{poke ImGui_ImplVulkan_InitInfo, Allocator} p v.allocator
#{poke ImGui_ImplVulkan_InitInfo, CheckVkResultFn} p v.checkVkResultFn
#{poke ImGui_ImplVulkan_InitInfo, MinAllocationSize} p v.minAllocationSize
#{poke ImGui_ImplVulkan_InitInfo, CustomShaderVertCreateInfo} p v.customShaderVertCreateInfo
#{poke ImGui_ImplVulkan_InitInfo, CustomShaderFragCreateInfo} p v.customShaderFragCreateInfo
instance HasField "apiVersion" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr Word32) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, ApiVersion}
instance HasField "instance_" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr (Ptr Instance_T)) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, Instance}
instance HasField "physicalDevice" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr (Ptr PhysicalDevice_T)) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, PhysicalDevice}
instance HasField "device" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr (Ptr Device_T)) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, Device}
instance HasField "queueFamily" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr Word32) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, QueueFamily}
instance HasField "queue" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr (Ptr Queue_T)) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, Queue}
instance HasField "descriptorPool" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr DescriptorPool) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, DescriptorPool}
instance HasField "descriptorPoolSize" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr Word32) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, DescriptorPoolSize}
instance HasField "minImageCount" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr Word32) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, MinImageCount}
instance HasField "imageCount" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr Word32) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, ImageCount}
instance HasField "pipelineCache" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr PipelineCache) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, PipelineCache}
instance HasField "pipelineInfoMain" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr ImGui_ImplVulkan_PipelineInfo) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, PipelineInfoMain}
instance HasField "pipelineInfoForViewports" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr ImGui_ImplVulkan_PipelineInfo) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, PipelineInfoForViewports}
instance HasField "useDynamicRendering" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr CBool) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, UseDynamicRendering}
instance HasField "allocator" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr (Ptr VkAllocationCallbacks)) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, Allocator}
instance HasField "checkVkResultFn" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr (FunPtr (Result -> IO ()))) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, CheckVkResultFn}
instance HasField "minAllocationSize" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr DeviceSize) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, MinAllocationSize}
instance HasField "customShaderVertCreateInfo" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr VkShaderModuleCreateInfo) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, CustomShaderVertCreateInfo}
instance HasField "customShaderFragCreateInfo" (Ptr ImGui_ImplVulkan_InitInfo) (Ptr VkShaderModuleCreateInfo) where
getField = #{ptr ImGui_ImplVulkan_InitInfo, CustomShaderFragCreateInfo}
foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImplVulkan_InitInfo_Init_wrap"
initImGui_ImplVulkan_InitInfo
:: Ptr ImGui_ImplVulkan_InitInfo
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImplVulkan_InitInfo_Destroy_wrap"
destroyImGui_ImplVulkan_InitInfo
:: Ptr ImGui_ImplVulkan_InitInfo
-> IO ()
withDefaultImGui_ImplVulkan_InitInfo :: (Ptr ImGui_ImplVulkan_InitInfo -> IO a) -> IO a
withDefaultImGui_ImplVulkan_InitInfo k = alloca $ \p -> bracket_ (initImGui_ImplVulkan_InitInfo p) (destroyImGui_ImplVulkan_InitInfo p) (k p)
data {-# CTYPE "dcimgui_impl_vulkan.h" "ImGui_ImplVulkan_PipelineInfo" #-} ImGui_ImplVulkan_PipelineInfo = ImGui_ImplVulkan_PipelineInfo
{ renderPass :: RenderPass
, subpass :: Word32
, mSAASamples :: SampleCountFlagBits
, extraDynamicStates :: ImVector DynamicState
, pipelineRenderingCreateInfo :: VkPipelineRenderingCreateInfoKHR
, swapChainImageUsage :: ImageUsageFlags
}
deriving (Eq, Show)
instance Storable ImGui_ImplVulkan_PipelineInfo where
sizeOf _ = #{size ImGui_ImplVulkan_PipelineInfo}
alignment _ = #{alignment ImGui_ImplVulkan_PipelineInfo}
peek p = ImGui_ImplVulkan_PipelineInfo <$> #{peek ImGui_ImplVulkan_PipelineInfo, RenderPass} p <*> #{peek ImGui_ImplVulkan_PipelineInfo, Subpass} p <*> #{peek ImGui_ImplVulkan_PipelineInfo, MSAASamples} p <*> #{peek ImGui_ImplVulkan_PipelineInfo, ExtraDynamicStates} p <*> #{peek ImGui_ImplVulkan_PipelineInfo, PipelineRenderingCreateInfo} p <*> #{peek ImGui_ImplVulkan_PipelineInfo, SwapChainImageUsage} p
poke p v = do
#{poke ImGui_ImplVulkan_PipelineInfo, RenderPass} p v.renderPass
#{poke ImGui_ImplVulkan_PipelineInfo, Subpass} p v.subpass
#{poke ImGui_ImplVulkan_PipelineInfo, MSAASamples} p v.mSAASamples
#{poke ImGui_ImplVulkan_PipelineInfo, ExtraDynamicStates} p v.extraDynamicStates
#{poke ImGui_ImplVulkan_PipelineInfo, PipelineRenderingCreateInfo} p v.pipelineRenderingCreateInfo
#{poke ImGui_ImplVulkan_PipelineInfo, SwapChainImageUsage} p v.swapChainImageUsage
instance HasField "renderPass" (Ptr ImGui_ImplVulkan_PipelineInfo) (Ptr RenderPass) where
getField = #{ptr ImGui_ImplVulkan_PipelineInfo, RenderPass}
instance HasField "subpass" (Ptr ImGui_ImplVulkan_PipelineInfo) (Ptr Word32) where
getField = #{ptr ImGui_ImplVulkan_PipelineInfo, Subpass}
instance HasField "mSAASamples" (Ptr ImGui_ImplVulkan_PipelineInfo) (Ptr SampleCountFlagBits) where
getField = #{ptr ImGui_ImplVulkan_PipelineInfo, MSAASamples}
instance HasField "extraDynamicStates" (Ptr ImGui_ImplVulkan_PipelineInfo) (Ptr (ImVector DynamicState)) where
getField = #{ptr ImGui_ImplVulkan_PipelineInfo, ExtraDynamicStates}
instance HasField "pipelineRenderingCreateInfo" (Ptr ImGui_ImplVulkan_PipelineInfo) (Ptr VkPipelineRenderingCreateInfoKHR) where
getField = #{ptr ImGui_ImplVulkan_PipelineInfo, PipelineRenderingCreateInfo}
instance HasField "swapChainImageUsage" (Ptr ImGui_ImplVulkan_PipelineInfo) (Ptr ImageUsageFlags) where
getField = #{ptr ImGui_ImplVulkan_PipelineInfo, SwapChainImageUsage}
foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImplVulkan_PipelineInfo_Init_wrap"
initImGui_ImplVulkan_PipelineInfo
:: Ptr ImGui_ImplVulkan_PipelineInfo
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImplVulkan_PipelineInfo_Destroy_wrap"
destroyImGui_ImplVulkan_PipelineInfo
:: Ptr ImGui_ImplVulkan_PipelineInfo
-> IO ()
withDefaultImGui_ImplVulkan_PipelineInfo :: (Ptr ImGui_ImplVulkan_PipelineInfo -> IO a) -> IO a
withDefaultImGui_ImplVulkan_PipelineInfo k = alloca $ \p -> bracket_ (initImGui_ImplVulkan_PipelineInfo p) (destroyImGui_ImplVulkan_PipelineInfo p) (k p)
data {-# CTYPE "dcimgui_impl_vulkan.h" "ImGui_ImplVulkan_RenderState" #-} ImGui_ImplVulkan_RenderState = ImGui_ImplVulkan_RenderState
{ commandBuffer :: Ptr CommandBuffer_T
, pipeline :: Pipeline
, pipelineLayout :: PipelineLayout
}
deriving (Eq, Show)
instance Storable ImGui_ImplVulkan_RenderState where
sizeOf _ = #{size ImGui_ImplVulkan_RenderState}
alignment _ = #{alignment ImGui_ImplVulkan_RenderState}
peek p = ImGui_ImplVulkan_RenderState <$> #{peek ImGui_ImplVulkan_RenderState, CommandBuffer} p <*> #{peek ImGui_ImplVulkan_RenderState, Pipeline} p <*> #{peek ImGui_ImplVulkan_RenderState, PipelineLayout} p
poke p v = do
#{poke ImGui_ImplVulkan_RenderState, CommandBuffer} p v.commandBuffer
#{poke ImGui_ImplVulkan_RenderState, Pipeline} p v.pipeline
#{poke ImGui_ImplVulkan_RenderState, PipelineLayout} p v.pipelineLayout
instance HasField "commandBuffer" (Ptr ImGui_ImplVulkan_RenderState) (Ptr (Ptr CommandBuffer_T)) where
getField = #{ptr ImGui_ImplVulkan_RenderState, CommandBuffer}
instance HasField "pipeline" (Ptr ImGui_ImplVulkan_RenderState) (Ptr Pipeline) where
getField = #{ptr ImGui_ImplVulkan_RenderState, Pipeline}
instance HasField "pipelineLayout" (Ptr ImGui_ImplVulkan_RenderState) (Ptr PipelineLayout) where
getField = #{ptr ImGui_ImplVulkan_RenderState, PipelineLayout}
foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImplVulkan_RenderState_Init_wrap"
initImGui_ImplVulkan_RenderState
:: Ptr ImGui_ImplVulkan_RenderState
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImplVulkan_RenderState_Destroy_wrap"
destroyImGui_ImplVulkan_RenderState
:: Ptr ImGui_ImplVulkan_RenderState
-> IO ()
withDefaultImGui_ImplVulkan_RenderState :: (Ptr ImGui_ImplVulkan_RenderState -> IO a) -> IO a
withDefaultImGui_ImplVulkan_RenderState k = alloca $ \p -> bracket_ (initImGui_ImplVulkan_RenderState p) (destroyImGui_ImplVulkan_RenderState p) (k p)
data VkAllocationCallbacks
-- synthetic external; rendered as a managed byte buffer so whiteboxed parents can embed it by value.
newtype VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfoKHR (ForeignPtr Word8)
deriving (Eq, Show)
instance Storable VkPipelineRenderingCreateInfoKHR where
sizeOf _ = #{size VkPipelineRenderingCreateInfoKHR}
alignment _ = #{alignment VkPipelineRenderingCreateInfoKHR}
peek p = do
let n = #{size VkPipelineRenderingCreateInfoKHR}
fp <- mallocForeignPtrBytes n
withForeignPtr fp $ \dst -> copyBytes dst (castPtr p) n
pure (VkPipelineRenderingCreateInfoKHR fp)
poke p (VkPipelineRenderingCreateInfoKHR fp) = do
let n = #{size VkPipelineRenderingCreateInfoKHR}
withForeignPtr fp $ \src -> copyBytes (castPtr p) src n
zeroVkPipelineRenderingCreateInfoKHR :: IO VkPipelineRenderingCreateInfoKHR
zeroVkPipelineRenderingCreateInfoKHR = do
let n = #{size VkPipelineRenderingCreateInfoKHR}
fp <- mallocForeignPtrBytes n
withForeignPtr fp $ \p -> fillBytes p 0 n
pure (VkPipelineRenderingCreateInfoKHR fp)
-- synthetic external; rendered as a managed byte buffer so whiteboxed parents can embed it by value.
newtype VkShaderModuleCreateInfo = VkShaderModuleCreateInfo (ForeignPtr Word8)
deriving (Eq, Show)
instance Storable VkShaderModuleCreateInfo where
sizeOf _ = #{size VkShaderModuleCreateInfo}
alignment _ = #{alignment VkShaderModuleCreateInfo}
peek p = do
let n = #{size VkShaderModuleCreateInfo}
fp <- mallocForeignPtrBytes n
withForeignPtr fp $ \dst -> copyBytes dst (castPtr p) n
pure (VkShaderModuleCreateInfo fp)
poke p (VkShaderModuleCreateInfo fp) = do
let n = #{size VkShaderModuleCreateInfo}
withForeignPtr fp $ \src -> copyBytes (castPtr p) src n
zeroVkShaderModuleCreateInfo :: IO VkShaderModuleCreateInfo
zeroVkShaderModuleCreateInfo = do
let n = #{size VkShaderModuleCreateInfo}
fp <- mallocForeignPtrBytes n
withForeignPtr fp $ \p -> fillBytes p 0 n
pure (VkShaderModuleCreateInfo fp)
-- defines
pattern IMGUI_IMPL_VULKAN_MINIMUM_SAMPLED_IMAGE_POOL_SIZE :: (Eq a, Num a) => a
pattern IMGUI_IMPL_VULKAN_MINIMUM_SAMPLED_IMAGE_POOL_SIZE = #{const IMGUI_IMPL_VULKAN_MINIMUM_SAMPLED_IMAGE_POOL_SIZE}
pattern IMGUI_IMPL_VULKAN_MINIMUM_SAMPLER_POOL_SIZE :: (Eq a, Num a) => a
pattern IMGUI_IMPL_VULKAN_MINIMUM_SAMPLER_POOL_SIZE = #{const IMGUI_IMPL_VULKAN_MINIMUM_SAMPLER_POOL_SIZE}
-- functions
-- C: VkDescriptorSet ImGui_ImplVulkan_AddTexture(VkImageView image_view, VkImageLayout image_layout)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_AddTexture"
addTexture
:: ImageView -- ^ image_view
-> ImageLayout -- ^ image_layout
-> IO DescriptorSet
-- C: void ImGui_ImplVulkan_CreateMainPipeline(const ImGui_ImplVulkan_PipelineInfo* info)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_CreateMainPipeline"
createMainPipeline
:: (Ptr ImGui_ImplVulkan_PipelineInfo) -- ^ info
-> IO ()
-- C: ImGui_ImplVulkan_RenderState* ImGui_ImplVulkan_GetRenderState()
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_GetRenderState"
getRenderState :: IO (Ptr ImGui_ImplVulkan_RenderState)
-- C: bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_Init"
init
:: (Ptr ImGui_ImplVulkan_InitInfo) -- ^ info
-> IO CBool
-- C: bool ImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data) loader_func, void* user_data)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_LoadFunctions"
loadFunctions
:: Word32 -- ^ api_version
-> (FunPtr (CString -> (Ptr ()) -> IO PFN_vkVoidFunction)) -- ^ loader_func
-> (Ptr ()) -- ^ user_data
-> IO CBool
-- C: void ImGui_ImplVulkan_NewFrame()
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_NewFrame"
newFrame :: IO ()
-- C: void ImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_RemoveTexture"
removeTexture
:: DescriptorSet -- ^ descriptor_set
-> IO ()
-- C: void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_RenderDrawData"
renderDrawData
:: (Ptr ImDrawData) -- ^ draw_data
-> (Ptr CommandBuffer_T) -- ^ command_buffer
-> Pipeline -- ^ pipeline
-> IO ()
-- C: void ImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_SetMinImageCount"
setMinImageCount
:: Word32 -- ^ min_image_count
-> IO ()
-- C: void ImGui_ImplVulkan_Shutdown()
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_Shutdown"
shutdown :: IO ()
-- C: void ImGui_ImplVulkan_UpdateTexture(ImTextureData* tex)
foreign import capi safe "dcimgui_impl_vulkan.h cImGui_ImplVulkan_UpdateTexture"
updateTexture
:: (Ptr ImTextureData) -- ^ tex
-> IO ()