dear-imgui-raw-1.0.0: src/DearImGui/Raw/ImFontAtlas.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.ImFontAtlas
( ImFontAtlas (..)
, addCustomRect
, addFont
, addFontDefault
, addFontDefaultBitmap
, addFontDefaultVector
, addFontFromFileTTF
, addFontFromMemoryCompressedBase85TTF
, addFontFromMemoryCompressedTTF
, addFontFromMemoryTTF
, clear
, clearFonts
, clearInputData
, clearTexData
, compactCache
, destroy
, getCustomRect
, getGlyphRangesDefault
, init
, removeCustomRect
, removeFont
, setFontLoader
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImWchar)
import DearImGui.Raw.Enums.ImFontAtlasFlags (ImFontAtlasFlags)
import DearImGui.Raw.Enums.ImTextureFormat (ImTextureFormat)
import DearImGui.Raw.ImDrawListSharedData (ImDrawListSharedData)
import {-# SOURCE #-} DearImGui.Raw.ImFont (ImFont)
import DearImGui.Raw.ImFontAtlasBuilder (ImFontAtlasBuilder)
import DearImGui.Raw.ImFontAtlasRect (Id, ImFontAtlasRect)
import {-# SOURCE #-} DearImGui.Raw.ImFontConfig (ImFontConfig)
import DearImGui.Raw.ImFontLoader (ImFontLoader)
import DearImGui.Raw.ImGuiContext (ImGuiContext)
import DearImGui.Raw.ImTextureData (ImTextureData)
import DearImGui.Raw.ImTextureRef (ImTextureRef)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVector (ImVector)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
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" "ImFontAtlas" #-} ImFontAtlas = ImFontAtlas
{ flags :: ImFontAtlasFlags
, texDesiredFormat :: ImTextureFormat
, texGlyphPadding :: CInt
, texMinWidth :: CInt
, texMinHeight :: CInt
, texMaxWidth :: CInt
, texMaxHeight :: CInt
, userData :: Ptr ()
, texRef :: ImTextureRef
, texData :: Ptr ImTextureData
, texList :: ImVector (Ptr ImTextureData)
, locked :: CBool
, rendererHasTextures :: CBool
, texIsBuilt :: CBool
, texPixelsUseColors :: CBool
, texUvScale :: ImVec2
, texUvWhitePixel :: ImVec2
, fonts :: ImVector (Ptr ImFont)
, sources :: ImVector ImFontConfig
, texNextUniqueID :: CInt
, fontNextUniqueID :: CInt
, drawListSharedDatas :: ImVector (Ptr ImDrawListSharedData)
, builder :: Ptr ImFontAtlasBuilder
, fontLoader :: Ptr ImFontLoader
, fontLoaderName :: CString
, fontLoaderData :: Ptr ()
, fontLoaderFlags :: CUInt
, refCount :: CInt
, ownerContext :: Ptr ImGuiContext
}
deriving (Eq, Show)
instance Storable ImFontAtlas where
sizeOf _ = #{size ImFontAtlas}
alignment _ = #{alignment ImFontAtlas}
peek p = ImFontAtlas <$> #{peek ImFontAtlas, Flags} p <*> #{peek ImFontAtlas, TexDesiredFormat} p <*> #{peek ImFontAtlas, TexGlyphPadding} p <*> #{peek ImFontAtlas, TexMinWidth} p <*> #{peek ImFontAtlas, TexMinHeight} p <*> #{peek ImFontAtlas, TexMaxWidth} p <*> #{peek ImFontAtlas, TexMaxHeight} p <*> #{peek ImFontAtlas, UserData} p <*> #{peek ImFontAtlas, TexRef} p <*> #{peek ImFontAtlas, TexData} p <*> #{peek ImFontAtlas, TexList} p <*> #{peek ImFontAtlas, Locked} p <*> #{peek ImFontAtlas, RendererHasTextures} p <*> #{peek ImFontAtlas, TexIsBuilt} p <*> #{peek ImFontAtlas, TexPixelsUseColors} p <*> #{peek ImFontAtlas, TexUvScale} p <*> #{peek ImFontAtlas, TexUvWhitePixel} p <*> #{peek ImFontAtlas, Fonts} p <*> #{peek ImFontAtlas, Sources} p <*> #{peek ImFontAtlas, TexNextUniqueID} p <*> #{peek ImFontAtlas, FontNextUniqueID} p <*> #{peek ImFontAtlas, DrawListSharedDatas} p <*> #{peek ImFontAtlas, Builder} p <*> #{peek ImFontAtlas, FontLoader} p <*> #{peek ImFontAtlas, FontLoaderName} p <*> #{peek ImFontAtlas, FontLoaderData} p <*> #{peek ImFontAtlas, FontLoaderFlags} p <*> #{peek ImFontAtlas, RefCount} p <*> #{peek ImFontAtlas, OwnerContext} p
poke p v = do
#{poke ImFontAtlas, Flags} p v.flags
#{poke ImFontAtlas, TexDesiredFormat} p v.texDesiredFormat
#{poke ImFontAtlas, TexGlyphPadding} p v.texGlyphPadding
#{poke ImFontAtlas, TexMinWidth} p v.texMinWidth
#{poke ImFontAtlas, TexMinHeight} p v.texMinHeight
#{poke ImFontAtlas, TexMaxWidth} p v.texMaxWidth
#{poke ImFontAtlas, TexMaxHeight} p v.texMaxHeight
#{poke ImFontAtlas, UserData} p v.userData
#{poke ImFontAtlas, TexRef} p v.texRef
#{poke ImFontAtlas, TexData} p v.texData
#{poke ImFontAtlas, TexList} p v.texList
#{poke ImFontAtlas, Locked} p v.locked
#{poke ImFontAtlas, RendererHasTextures} p v.rendererHasTextures
#{poke ImFontAtlas, TexIsBuilt} p v.texIsBuilt
#{poke ImFontAtlas, TexPixelsUseColors} p v.texPixelsUseColors
#{poke ImFontAtlas, TexUvScale} p v.texUvScale
#{poke ImFontAtlas, TexUvWhitePixel} p v.texUvWhitePixel
#{poke ImFontAtlas, Fonts} p v.fonts
#{poke ImFontAtlas, Sources} p v.sources
#{poke ImFontAtlas, TexNextUniqueID} p v.texNextUniqueID
#{poke ImFontAtlas, FontNextUniqueID} p v.fontNextUniqueID
#{poke ImFontAtlas, DrawListSharedDatas} p v.drawListSharedDatas
#{poke ImFontAtlas, Builder} p v.builder
#{poke ImFontAtlas, FontLoader} p v.fontLoader
#{poke ImFontAtlas, FontLoaderName} p v.fontLoaderName
#{poke ImFontAtlas, FontLoaderData} p v.fontLoaderData
#{poke ImFontAtlas, FontLoaderFlags} p v.fontLoaderFlags
#{poke ImFontAtlas, RefCount} p v.refCount
#{poke ImFontAtlas, OwnerContext} p v.ownerContext
instance HasField "flags" (Ptr ImFontAtlas) (Ptr ImFontAtlasFlags) where
getField = #{ptr ImFontAtlas, Flags}
instance HasField "texDesiredFormat" (Ptr ImFontAtlas) (Ptr ImTextureFormat) where
getField = #{ptr ImFontAtlas, TexDesiredFormat}
instance HasField "texGlyphPadding" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, TexGlyphPadding}
instance HasField "texMinWidth" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, TexMinWidth}
instance HasField "texMinHeight" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, TexMinHeight}
instance HasField "texMaxWidth" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, TexMaxWidth}
instance HasField "texMaxHeight" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, TexMaxHeight}
instance HasField "userData" (Ptr ImFontAtlas) (Ptr (Ptr ())) where
getField = #{ptr ImFontAtlas, UserData}
instance HasField "texRef" (Ptr ImFontAtlas) (Ptr ImTextureRef) where
getField = #{ptr ImFontAtlas, TexRef}
instance HasField "texData" (Ptr ImFontAtlas) (Ptr (Ptr ImTextureData)) where
getField = #{ptr ImFontAtlas, TexData}
instance HasField "texList" (Ptr ImFontAtlas) (Ptr (ImVector (Ptr ImTextureData))) where
getField = #{ptr ImFontAtlas, TexList}
instance HasField "locked" (Ptr ImFontAtlas) (Ptr CBool) where
getField = #{ptr ImFontAtlas, Locked}
instance HasField "rendererHasTextures" (Ptr ImFontAtlas) (Ptr CBool) where
getField = #{ptr ImFontAtlas, RendererHasTextures}
instance HasField "texIsBuilt" (Ptr ImFontAtlas) (Ptr CBool) where
getField = #{ptr ImFontAtlas, TexIsBuilt}
instance HasField "texPixelsUseColors" (Ptr ImFontAtlas) (Ptr CBool) where
getField = #{ptr ImFontAtlas, TexPixelsUseColors}
instance HasField "texUvScale" (Ptr ImFontAtlas) (Ptr ImVec2) where
getField = #{ptr ImFontAtlas, TexUvScale}
instance HasField "texUvWhitePixel" (Ptr ImFontAtlas) (Ptr ImVec2) where
getField = #{ptr ImFontAtlas, TexUvWhitePixel}
instance HasField "fonts" (Ptr ImFontAtlas) (Ptr (ImVector (Ptr ImFont))) where
getField = #{ptr ImFontAtlas, Fonts}
instance HasField "sources" (Ptr ImFontAtlas) (Ptr (ImVector ImFontConfig)) where
getField = #{ptr ImFontAtlas, Sources}
instance HasField "texNextUniqueID" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, TexNextUniqueID}
instance HasField "fontNextUniqueID" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, FontNextUniqueID}
instance HasField "drawListSharedDatas" (Ptr ImFontAtlas) (Ptr (ImVector (Ptr ImDrawListSharedData))) where
getField = #{ptr ImFontAtlas, DrawListSharedDatas}
instance HasField "builder" (Ptr ImFontAtlas) (Ptr (Ptr ImFontAtlasBuilder)) where
getField = #{ptr ImFontAtlas, Builder}
instance HasField "fontLoader" (Ptr ImFontAtlas) (Ptr (Ptr ImFontLoader)) where
getField = #{ptr ImFontAtlas, FontLoader}
instance HasField "fontLoaderName" (Ptr ImFontAtlas) (Ptr CString) where
getField = #{ptr ImFontAtlas, FontLoaderName}
instance HasField "fontLoaderData" (Ptr ImFontAtlas) (Ptr (Ptr ())) where
getField = #{ptr ImFontAtlas, FontLoaderData}
instance HasField "fontLoaderFlags" (Ptr ImFontAtlas) (Ptr CUInt) where
getField = #{ptr ImFontAtlas, FontLoaderFlags}
instance HasField "refCount" (Ptr ImFontAtlas) (Ptr CInt) where
getField = #{ptr ImFontAtlas, RefCount}
instance HasField "ownerContext" (Ptr ImFontAtlas) (Ptr (Ptr ImGuiContext)) where
getField = #{ptr ImFontAtlas, OwnerContext}
foreign import capi unsafe "DearImGuiWrappers.h ImFontAtlas_Init_wrap"
init
:: Ptr ImFontAtlas
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImFontAtlas_Destroy_wrap"
destroy
:: Ptr ImFontAtlas
-> IO ()
withDefault :: (Ptr ImFontAtlas -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)
-- functions
-- C: ImFontAtlasRectId AddCustomRect(ImFontAtlas* self, int width, int height, ImFontAtlasRect* out_r)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddCustomRect"
addCustomRect
:: (Ptr ImFontAtlas) -- ^ self
-> CInt -- ^ width
-> CInt -- ^ height
-> (Ptr ImFontAtlasRect) -- ^ out_r
-> IO Id
-- C: ImFont* AddFont(ImFontAtlas* self, const ImFontConfig* font_cfg)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFont"
addFont
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ImFontConfig) -- ^ font_cfg
-> IO (Ptr ImFont)
-- C: ImFont* AddFontDefault(ImFontAtlas* self, const ImFontConfig* font_cfg)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontDefault"
addFontDefault
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ImFontConfig) -- ^ font_cfg
-> IO (Ptr ImFont)
-- C: ImFont* AddFontDefaultBitmap(ImFontAtlas* self, const ImFontConfig* font_cfg)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontDefaultBitmap"
addFontDefaultBitmap
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ImFontConfig) -- ^ font_cfg
-> IO (Ptr ImFont)
-- C: ImFont* AddFontDefaultVector(ImFontAtlas* self, const ImFontConfig* font_cfg)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontDefaultVector"
addFontDefaultVector
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ImFontConfig) -- ^ font_cfg
-> IO (Ptr ImFont)
-- C: ImFont* AddFontFromFileTTF(ImFontAtlas* self, const char* filename, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontFromFileTTF"
addFontFromFileTTF
:: (Ptr ImFontAtlas) -- ^ self
-> CString -- ^ filename
-> Float -- ^ size_pixels
-> (Ptr ImFontConfig) -- ^ font_cfg
-> (Ptr ImWchar) -- ^ glyph_ranges
-> IO (Ptr ImFont)
-- C: ImFont* AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self, const char* compressed_font_data_base85, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"
addFontFromMemoryCompressedBase85TTF
:: (Ptr ImFontAtlas) -- ^ self
-> CString -- ^ compressed_font_data_base85
-> Float -- ^ size_pixels
-> (Ptr ImFontConfig) -- ^ font_cfg
-> (Ptr ImWchar) -- ^ glyph_ranges
-> IO (Ptr ImFont)
-- C: ImFont* AddFontFromMemoryCompressedTTF(ImFontAtlas* self, const void* compressed_font_data, int compressed_font_data_size, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontFromMemoryCompressedTTF"
addFontFromMemoryCompressedTTF
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ()) -- ^ compressed_font_data
-> CInt -- ^ compressed_font_data_size
-> Float -- ^ size_pixels
-> (Ptr ImFontConfig) -- ^ font_cfg
-> (Ptr ImWchar) -- ^ glyph_ranges
-> IO (Ptr ImFont)
-- C: ImFont* AddFontFromMemoryTTF(ImFontAtlas* self, void* font_data, int font_data_size, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_AddFontFromMemoryTTF"
addFontFromMemoryTTF
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ()) -- ^ font_data
-> CInt -- ^ font_data_size
-> Float -- ^ size_pixels
-> (Ptr ImFontConfig) -- ^ font_cfg
-> (Ptr ImWchar) -- ^ glyph_ranges
-> IO (Ptr ImFont)
-- C: void Clear(ImFontAtlas* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_Clear"
clear
:: (Ptr ImFontAtlas) -- ^ self
-> IO ()
-- C: void ClearFonts(ImFontAtlas* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_ClearFonts"
clearFonts
:: (Ptr ImFontAtlas) -- ^ self
-> IO ()
-- C: void ClearInputData(ImFontAtlas* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_ClearInputData"
clearInputData
:: (Ptr ImFontAtlas) -- ^ self
-> IO ()
-- C: void ClearTexData(ImFontAtlas* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_ClearTexData"
clearTexData
:: (Ptr ImFontAtlas) -- ^ self
-> IO ()
-- C: void CompactCache(ImFontAtlas* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_CompactCache"
compactCache
:: (Ptr ImFontAtlas) -- ^ self
-> IO ()
-- C: bool GetCustomRect(const ImFontAtlas* self, ImFontAtlasRectId id, ImFontAtlasRect* out_r)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_GetCustomRect"
getCustomRect
:: (Ptr ImFontAtlas) -- ^ self
-> Id -- ^ id
-> (Ptr ImFontAtlasRect) -- ^ out_r
-> IO CBool
-- C: const ImWchar* GetGlyphRangesDefault(ImFontAtlas* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_GetGlyphRangesDefault"
getGlyphRangesDefault
:: (Ptr ImFontAtlas) -- ^ self
-> IO (Ptr ImWchar)
-- C: void RemoveCustomRect(ImFontAtlas* self, ImFontAtlasRectId id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_RemoveCustomRect"
removeCustomRect
:: (Ptr ImFontAtlas) -- ^ self
-> Id -- ^ id
-> IO ()
-- C: void RemoveFont(ImFontAtlas* self, ImFont* font)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_RemoveFont"
removeFont
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ImFont) -- ^ font
-> IO ()
-- C: void SetFontLoader(ImFontAtlas* self, const ImFontLoader* font_loader)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontAtlas_SetFontLoader"
setFontLoader
:: (Ptr ImFontAtlas) -- ^ self
-> (Ptr ImFontLoader) -- ^ font_loader
-> IO ()