dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImFontLoader.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImFontLoader
( ImFontLoader (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImWchar)
import DearImGui.Raw.ImFontAtlas (ImFontAtlas)
import DearImGui.Raw.ImFontBaked (ImFontBaked)
import DearImGui.Raw.ImFontConfig (ImFontConfig)
import DearImGui.Raw.ImFontGlyph (ImFontGlyph)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr (FunPtr, Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)
#include "dcimgui_nodefaultargfunctions_internal.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_nodefaultargfunctions_internal.h" "ImFontLoader" #-} ImFontLoader = ImFontLoader
{ name :: CString
, loaderInit :: FunPtr ((Ptr ImFontAtlas) -> IO CBool)
, loaderShutdown :: FunPtr ((Ptr ImFontAtlas) -> IO ())
, fontSrcInit :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> IO CBool)
, fontSrcDestroy :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> IO ())
, fontSrcGetGlyphIndexFromCodepoint :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> ImWchar -> IO CInt)
, fontSrcContainsGlyph :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> CInt -> IO CBool)
, fontBakedInit :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> (Ptr ImFontBaked) -> (Ptr ()) -> IO CBool)
, fontBakedDestroy :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> (Ptr ImFontBaked) -> (Ptr ()) -> IO ())
, fontBakedLoadGlyph :: FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> (Ptr ImFontBaked) -> (Ptr ()) -> CInt -> (Ptr ImFontGlyph) -> (Ptr Float) -> IO CBool)
, fontBakedSrcLoaderDataSize :: CSize
}
deriving (Eq, Show)
instance Storable ImFontLoader where
sizeOf _ = #{size ImFontLoader}
alignment _ = #{alignment ImFontLoader}
peek p = ImFontLoader <$> #{peek ImFontLoader, Name} p <*> #{peek ImFontLoader, LoaderInit} p <*> #{peek ImFontLoader, LoaderShutdown} p <*> #{peek ImFontLoader, FontSrcInit} p <*> #{peek ImFontLoader, FontSrcDestroy} p <*> #{peek ImFontLoader, FontSrcGetGlyphIndexFromCodepoint} p <*> #{peek ImFontLoader, FontSrcContainsGlyph} p <*> #{peek ImFontLoader, FontBakedInit} p <*> #{peek ImFontLoader, FontBakedDestroy} p <*> #{peek ImFontLoader, FontBakedLoadGlyph} p <*> #{peek ImFontLoader, FontBakedSrcLoaderDataSize} p
poke p v = do
#{poke ImFontLoader, Name} p v.name
#{poke ImFontLoader, LoaderInit} p v.loaderInit
#{poke ImFontLoader, LoaderShutdown} p v.loaderShutdown
#{poke ImFontLoader, FontSrcInit} p v.fontSrcInit
#{poke ImFontLoader, FontSrcDestroy} p v.fontSrcDestroy
#{poke ImFontLoader, FontSrcGetGlyphIndexFromCodepoint} p v.fontSrcGetGlyphIndexFromCodepoint
#{poke ImFontLoader, FontSrcContainsGlyph} p v.fontSrcContainsGlyph
#{poke ImFontLoader, FontBakedInit} p v.fontBakedInit
#{poke ImFontLoader, FontBakedDestroy} p v.fontBakedDestroy
#{poke ImFontLoader, FontBakedLoadGlyph} p v.fontBakedLoadGlyph
#{poke ImFontLoader, FontBakedSrcLoaderDataSize} p v.fontBakedSrcLoaderDataSize
instance HasField "name" (Ptr ImFontLoader) (Ptr CString) where
getField = #{ptr ImFontLoader, Name}
instance HasField "loaderInit" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> IO CBool))) where
getField = #{ptr ImFontLoader, LoaderInit}
instance HasField "loaderShutdown" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> IO ()))) where
getField = #{ptr ImFontLoader, LoaderShutdown}
instance HasField "fontSrcInit" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> IO CBool))) where
getField = #{ptr ImFontLoader, FontSrcInit}
instance HasField "fontSrcDestroy" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> IO ()))) where
getField = #{ptr ImFontLoader, FontSrcDestroy}
instance HasField "fontSrcGetGlyphIndexFromCodepoint" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> ImWchar -> IO CInt))) where
getField = #{ptr ImFontLoader, FontSrcGetGlyphIndexFromCodepoint}
instance HasField "fontSrcContainsGlyph" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> CInt -> IO CBool))) where
getField = #{ptr ImFontLoader, FontSrcContainsGlyph}
instance HasField "fontBakedInit" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> (Ptr ImFontBaked) -> (Ptr ()) -> IO CBool))) where
getField = #{ptr ImFontLoader, FontBakedInit}
instance HasField "fontBakedDestroy" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> (Ptr ImFontBaked) -> (Ptr ()) -> IO ()))) where
getField = #{ptr ImFontLoader, FontBakedDestroy}
instance HasField "fontBakedLoadGlyph" (Ptr ImFontLoader) (Ptr (FunPtr ((Ptr ImFontAtlas) -> (Ptr ImFontConfig) -> (Ptr ImFontBaked) -> (Ptr ()) -> CInt -> (Ptr ImFontGlyph) -> (Ptr Float) -> IO CBool))) where
getField = #{ptr ImFontLoader, FontBakedLoadGlyph}
instance HasField "fontBakedSrcLoaderDataSize" (Ptr ImFontLoader) (Ptr CSize) where
getField = #{ptr ImFontLoader, FontBakedSrcLoaderDataSize}
foreign import capi unsafe "DearImGuiWrappers.h ImFontLoader_Init_wrap"
init
:: Ptr ImFontLoader
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImFontLoader_Destroy_wrap"
destroy
:: Ptr ImFontLoader
-> IO ()
withDefault :: (Ptr ImFontLoader -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)