dear-imgui-raw-1.0.0: src/DearImGui/Raw/ImDrawData.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.ImDrawData
( ImDrawData (..)
, addDrawList
, c_scaleClipRects
, clear
, deIndexAllBuffers
, destroy
, init
, scaleClipRects
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw.ImDrawList (ImDrawList)
import {-# SOURCE #-} DearImGui.Raw.ImGuiViewport (ImGuiViewport)
import DearImGui.Raw.ImTextureData (ImTextureData)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVector (ImVector)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Utils (with)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)
#include "dcimgui_nodefaultargfunctions.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_nodefaultargfunctions.h" "ImDrawData" #-} ImDrawData = ImDrawData
{ valid :: CBool
, frameCount :: CInt
, totalIdxCount :: CInt
, totalVtxCount :: CInt
, cmdLists :: ImVector (Ptr ImDrawList)
, displayPos :: ImVec2
, displaySize :: ImVec2
, framebufferScale :: ImVec2
, ownerViewport :: Ptr ImGuiViewport
, textures :: Ptr (ImVector (Ptr ImTextureData))
}
deriving (Eq, Show)
instance Storable ImDrawData where
sizeOf _ = #{size ImDrawData}
alignment _ = #{alignment ImDrawData}
peek p = ImDrawData <$> #{peek ImDrawData, Valid} p <*> #{peek ImDrawData, FrameCount} p <*> #{peek ImDrawData, TotalIdxCount} p <*> #{peek ImDrawData, TotalVtxCount} p <*> #{peek ImDrawData, CmdLists} p <*> #{peek ImDrawData, DisplayPos} p <*> #{peek ImDrawData, DisplaySize} p <*> #{peek ImDrawData, FramebufferScale} p <*> #{peek ImDrawData, OwnerViewport} p <*> #{peek ImDrawData, Textures} p
poke p v = do
#{poke ImDrawData, Valid} p v.valid
#{poke ImDrawData, FrameCount} p v.frameCount
#{poke ImDrawData, TotalIdxCount} p v.totalIdxCount
#{poke ImDrawData, TotalVtxCount} p v.totalVtxCount
#{poke ImDrawData, CmdLists} p v.cmdLists
#{poke ImDrawData, DisplayPos} p v.displayPos
#{poke ImDrawData, DisplaySize} p v.displaySize
#{poke ImDrawData, FramebufferScale} p v.framebufferScale
#{poke ImDrawData, OwnerViewport} p v.ownerViewport
#{poke ImDrawData, Textures} p v.textures
instance HasField "valid" (Ptr ImDrawData) (Ptr CBool) where
getField = #{ptr ImDrawData, Valid}
instance HasField "frameCount" (Ptr ImDrawData) (Ptr CInt) where
getField = #{ptr ImDrawData, FrameCount}
instance HasField "totalIdxCount" (Ptr ImDrawData) (Ptr CInt) where
getField = #{ptr ImDrawData, TotalIdxCount}
instance HasField "totalVtxCount" (Ptr ImDrawData) (Ptr CInt) where
getField = #{ptr ImDrawData, TotalVtxCount}
instance HasField "cmdLists" (Ptr ImDrawData) (Ptr (ImVector (Ptr ImDrawList))) where
getField = #{ptr ImDrawData, CmdLists}
instance HasField "displayPos" (Ptr ImDrawData) (Ptr ImVec2) where
getField = #{ptr ImDrawData, DisplayPos}
instance HasField "displaySize" (Ptr ImDrawData) (Ptr ImVec2) where
getField = #{ptr ImDrawData, DisplaySize}
instance HasField "framebufferScale" (Ptr ImDrawData) (Ptr ImVec2) where
getField = #{ptr ImDrawData, FramebufferScale}
instance HasField "ownerViewport" (Ptr ImDrawData) (Ptr (Ptr ImGuiViewport)) where
getField = #{ptr ImDrawData, OwnerViewport}
instance HasField "textures" (Ptr ImDrawData) (Ptr (Ptr (ImVector (Ptr ImTextureData)))) where
getField = #{ptr ImDrawData, Textures}
foreign import capi unsafe "DearImGuiWrappers.h ImDrawData_Init_wrap"
init
:: Ptr ImDrawData
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImDrawData_Destroy_wrap"
destroy
:: Ptr ImDrawData
-> IO ()
withDefault :: (Ptr ImDrawData -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)
-- functions
-- C: void AddDrawList(ImDrawData* self, ImDrawList* draw_list)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawData_AddDrawList"
addDrawList
:: (Ptr ImDrawData) -- ^ self
-> (Ptr ImDrawList) -- ^ draw_list
-> IO ()
-- C: void Clear(ImDrawData* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawData_Clear"
clear
:: (Ptr ImDrawData) -- ^ self
-> IO ()
-- C: void DeIndexAllBuffers(ImDrawData* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImDrawData_DeIndexAllBuffers"
deIndexAllBuffers
:: (Ptr ImDrawData) -- ^ self
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImDrawData_ScaleClipRects_wrap"
c_scaleClipRects
:: (Ptr ImDrawData) -- ^ self
-> (Ptr ImVec2) -- ^ fb_scale
-> IO ()
scaleClipRects
:: (Ptr ImDrawData) -- ^ self
-> ImVec2 -- ^ fb_scale
-> IO ()
scaleClipRects self fb_scale =
with fb_scale $ \fb_scalePtr -> c_scaleClipRects self fb_scalePtr