packages feed

dear-imgui-raw-1.0.0: src/DearImGui/Raw/ImFontBaked.hsc

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}

-- This file was generated by dear-bindings-ffi. Do not edit by hand.

module DearImGui.Raw.ImFontBaked
  ( ImFontBaked
  , clearOutputData
  , destroy
  , findGlyph
  , findGlyphNoFallback
  , getCharAdvance
  , init
  , isGlyphLoaded
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImU16, ImWchar)
import DearImGui.Raw.ImFont (ImFont)
import DearImGui.Raw.ImFontGlyph (ImFontGlyph)
import DearImGui.Raw.ImVector (ImVector)
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 ImFontBaked
instance Storable ImFontBaked where
  sizeOf _    = #{size ImFontBaked}
  alignment _ = #{alignment ImFontBaked}
  peek _ = error "ImFontBaked: opaque struct, peek not supported in v0"
  poke _ _ = error "ImFontBaked: opaque struct, poke not supported in v0"

instance HasField "indexAdvanceX" (Ptr ImFontBaked) (Ptr (ImVector Float)) where
  getField = #{ptr ImFontBaked, IndexAdvanceX}

instance HasField "fallbackAdvanceX" (Ptr ImFontBaked) (Ptr Float) where
  getField = #{ptr ImFontBaked, FallbackAdvanceX}

instance HasField "size" (Ptr ImFontBaked) (Ptr Float) where
  getField = #{ptr ImFontBaked, Size}

instance HasField "rasterizerDensity" (Ptr ImFontBaked) (Ptr Float) where
  getField = #{ptr ImFontBaked, RasterizerDensity}

instance HasField "indexLookup" (Ptr ImFontBaked) (Ptr (ImVector ImU16)) where
  getField = #{ptr ImFontBaked, IndexLookup}

instance HasField "glyphs" (Ptr ImFontBaked) (Ptr (ImVector ImFontGlyph)) where
  getField = #{ptr ImFontBaked, Glyphs}

instance HasField "fallbackGlyphIndex" (Ptr ImFontBaked) (Ptr CInt) where
  getField = #{ptr ImFontBaked, FallbackGlyphIndex}

instance HasField "ascent" (Ptr ImFontBaked) (Ptr Float) where
  getField = #{ptr ImFontBaked, Ascent}

instance HasField "descent" (Ptr ImFontBaked) (Ptr Float) where
  getField = #{ptr ImFontBaked, Descent}

instance HasField "lastUsedFrame" (Ptr ImFontBaked) (Ptr CInt) where
  getField = #{ptr ImFontBaked, LastUsedFrame}

instance HasField "bakedId" (Ptr ImFontBaked) (Ptr ImGuiID) where
  getField = #{ptr ImFontBaked, BakedId}

instance HasField "ownerFont" (Ptr ImFontBaked) (Ptr (Ptr ImFont)) where
  getField = #{ptr ImFontBaked, OwnerFont}

instance HasField "fontLoaderDatas" (Ptr ImFontBaked) (Ptr (Ptr ())) where
  getField = #{ptr ImFontBaked, FontLoaderDatas}

foreign import capi unsafe "DearImGuiWrappers.h ImFontBaked_Init_wrap"
  init
    :: Ptr ImFontBaked
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImFontBaked_Destroy_wrap"
  destroy
    :: Ptr ImFontBaked
    -> IO ()

withDefault :: (Ptr ImFontBaked -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)

-- functions

-- C: void ClearOutputData(ImFontBaked* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontBaked_ClearOutputData"
  clearOutputData
    :: (Ptr ImFontBaked) -- ^ self
    -> IO ()

-- C: ImFontGlyph* FindGlyph(ImFontBaked* self, ImWchar c)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontBaked_FindGlyph"
  findGlyph
    :: (Ptr ImFontBaked) -- ^ self
    -> ImWchar -- ^ c
    -> IO (Ptr ImFontGlyph)

-- C: ImFontGlyph* FindGlyphNoFallback(ImFontBaked* self, ImWchar c)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontBaked_FindGlyphNoFallback"
  findGlyphNoFallback
    :: (Ptr ImFontBaked) -- ^ self
    -> ImWchar -- ^ c
    -> IO (Ptr ImFontGlyph)

-- C: float GetCharAdvance(ImFontBaked* self, ImWchar c)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontBaked_GetCharAdvance"
  getCharAdvance
    :: (Ptr ImFontBaked) -- ^ self
    -> ImWchar -- ^ c
    -> IO Float

-- C: bool IsGlyphLoaded(ImFontBaked* self, ImWchar c)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImFontBaked_IsGlyphLoaded"
  isGlyphLoaded
    :: (Ptr ImFontBaked) -- ^ self
    -> ImWchar -- ^ c
    -> IO CBool