{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Impl.SDLGPU3
( ImGui_ImplSDLGPU3_InitInfo (..)
, ImGui_ImplSDLGPU3_RenderState (..)
, SDL_GPUCommandBuffer
, SDL_GPUDevice
, SDL_GPUGraphicsPipeline
, SDL_GPURenderPass
, createDeviceObjects
, destroyDeviceObjects
, getRenderState
, init
, newFrame
, prepareDrawData
, renderDrawData
, shutdown
, updateTexture
) where
import DearImGui.Raw.ImDrawData (ImDrawData)
import DearImGui.Raw.ImTextureData (ImTextureData)
import Foreign.C.Types
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)
#include "dcimgui_impl_sdlgpu3.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_impl_sdlgpu3.h" "ImGui_ImplSDLGPU3_InitInfo" #-} ImGui_ImplSDLGPU3_InitInfo = ImGui_ImplSDLGPU3_InitInfo
{ device :: Ptr SDL_GPUDevice
, colorTargetFormat :: CUInt
, mSAASamples :: CUInt
, swapchainComposition :: CUInt
, presentMode :: CUInt
}
deriving (Eq, Show)
instance Storable ImGui_ImplSDLGPU3_InitInfo where
sizeOf _ = #{size ImGui_ImplSDLGPU3_InitInfo}
alignment _ = #{alignment ImGui_ImplSDLGPU3_InitInfo}
peek p = ImGui_ImplSDLGPU3_InitInfo <$> #{peek ImGui_ImplSDLGPU3_InitInfo, Device} p <*> #{peek ImGui_ImplSDLGPU3_InitInfo, ColorTargetFormat} p <*> #{peek ImGui_ImplSDLGPU3_InitInfo, MSAASamples} p <*> #{peek ImGui_ImplSDLGPU3_InitInfo, SwapchainComposition} p <*> #{peek ImGui_ImplSDLGPU3_InitInfo, PresentMode} p
poke p v = do
#{poke ImGui_ImplSDLGPU3_InitInfo, Device} p v.device
#{poke ImGui_ImplSDLGPU3_InitInfo, ColorTargetFormat} p v.colorTargetFormat
#{poke ImGui_ImplSDLGPU3_InitInfo, MSAASamples} p v.mSAASamples
#{poke ImGui_ImplSDLGPU3_InitInfo, SwapchainComposition} p v.swapchainComposition
#{poke ImGui_ImplSDLGPU3_InitInfo, PresentMode} p v.presentMode
instance HasField "device" (Ptr ImGui_ImplSDLGPU3_InitInfo) (Ptr (Ptr SDL_GPUDevice)) where
getField = #{ptr ImGui_ImplSDLGPU3_InitInfo, Device}
instance HasField "colorTargetFormat" (Ptr ImGui_ImplSDLGPU3_InitInfo) (Ptr CUInt) where
getField = #{ptr ImGui_ImplSDLGPU3_InitInfo, ColorTargetFormat}
instance HasField "mSAASamples" (Ptr ImGui_ImplSDLGPU3_InitInfo) (Ptr CUInt) where
getField = #{ptr ImGui_ImplSDLGPU3_InitInfo, MSAASamples}
instance HasField "swapchainComposition" (Ptr ImGui_ImplSDLGPU3_InitInfo) (Ptr CUInt) where
getField = #{ptr ImGui_ImplSDLGPU3_InitInfo, SwapchainComposition}
instance HasField "presentMode" (Ptr ImGui_ImplSDLGPU3_InitInfo) (Ptr CUInt) where
getField = #{ptr ImGui_ImplSDLGPU3_InitInfo, PresentMode}
newtype {-# CTYPE "dcimgui_impl_sdlgpu3.h" "ImGui_ImplSDLGPU3_RenderState" #-} ImGui_ImplSDLGPU3_RenderState = ImGui_ImplSDLGPU3_RenderState
{ device :: Ptr SDL_GPUDevice
}
deriving (Eq, Show)
instance Storable ImGui_ImplSDLGPU3_RenderState where
sizeOf _ = #{size ImGui_ImplSDLGPU3_RenderState}
alignment _ = #{alignment ImGui_ImplSDLGPU3_RenderState}
peek p = ImGui_ImplSDLGPU3_RenderState <$> #{peek ImGui_ImplSDLGPU3_RenderState, Device} p
poke p v = do
#{poke ImGui_ImplSDLGPU3_RenderState, Device} p v.device
instance HasField "device" (Ptr ImGui_ImplSDLGPU3_RenderState) (Ptr (Ptr SDL_GPUDevice)) where
getField = #{ptr ImGui_ImplSDLGPU3_RenderState, Device}
data SDL_GPUCommandBuffer
data SDL_GPUDevice
data SDL_GPUGraphicsPipeline
data SDL_GPURenderPass
-- functions
-- C: void ImGui_ImplSDLGPU3_CreateDeviceObjects()
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_CreateDeviceObjects"
createDeviceObjects :: IO ()
-- C: void ImGui_ImplSDLGPU3_DestroyDeviceObjects()
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_DestroyDeviceObjects"
destroyDeviceObjects :: IO ()
-- C: ImGui_ImplSDLGPU3_RenderState* ImGui_ImplSDLGPU3_GetRenderState()
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_GetRenderState"
getRenderState :: IO (Ptr ImGui_ImplSDLGPU3_RenderState)
-- C: bool ImGui_ImplSDLGPU3_Init(ImGui_ImplSDLGPU3_InitInfo* info)
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_Init"
init
:: (Ptr ImGui_ImplSDLGPU3_InitInfo) -- ^ info
-> IO CBool
-- C: void ImGui_ImplSDLGPU3_NewFrame()
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_NewFrame"
newFrame :: IO ()
-- C: void ImGui_ImplSDLGPU3_PrepareDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer)
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_PrepareDrawData"
prepareDrawData
:: (Ptr ImDrawData) -- ^ draw_data
-> (Ptr SDL_GPUCommandBuffer) -- ^ command_buffer
-> IO ()
-- C: void ImGui_ImplSDLGPU3_RenderDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass, SDL_GPUGraphicsPipeline* pipeline)
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_RenderDrawData"
renderDrawData
:: (Ptr ImDrawData) -- ^ draw_data
-> (Ptr SDL_GPUCommandBuffer) -- ^ command_buffer
-> (Ptr SDL_GPURenderPass) -- ^ render_pass
-> (Ptr SDL_GPUGraphicsPipeline) -- ^ pipeline
-> IO ()
-- C: void ImGui_ImplSDLGPU3_Shutdown()
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_Shutdown"
shutdown :: IO ()
-- C: void ImGui_ImplSDLGPU3_UpdateTexture(ImTextureData* tex)
foreign import capi safe "dcimgui_impl_sdlgpu3.h cImGui_ImplSDLGPU3_UpdateTexture"
updateTexture
:: (Ptr ImTextureData) -- ^ tex
-> IO ()