packages feed

dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImFontAtlasPostProcessData.hsc

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

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

module DearImGui.Raw.Internal.ImFontAtlasPostProcessData
  ( ImFontAtlasPostProcessData (..)
  , cImFontAtlasTextureBlockPostProcess
  , cImFontAtlasTextureBlockPostProcessMultiply
  , destroy
  , init
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw.Enums.ImTextureFormat (ImTextureFormat)
import DearImGui.Raw.ImFont (ImFont)
import DearImGui.Raw.ImFontAtlas (ImFontAtlas)
import DearImGui.Raw.ImFontBaked (ImFontBaked)
import DearImGui.Raw.ImFontConfig (ImFontConfig)
import DearImGui.Raw.ImFontGlyph (ImFontGlyph)
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_internal.h"

-- structs (opaque)

data {-# CTYPE "dcimgui_nodefaultargfunctions_internal.h" "ImFontAtlasPostProcessData" #-} ImFontAtlasPostProcessData = ImFontAtlasPostProcessData
  { fontAtlas :: Ptr ImFontAtlas
  , font :: Ptr ImFont
  , fontSrc :: Ptr ImFontConfig
  , fontBaked :: Ptr ImFontBaked
  , glyph :: Ptr ImFontGlyph
  , pixels :: Ptr ()
  , format :: ImTextureFormat
  , pitch :: CInt
  , width :: CInt
  , height :: CInt
  }
  deriving (Eq, Show)
instance Storable ImFontAtlasPostProcessData where
  sizeOf _    = #{size ImFontAtlasPostProcessData}
  alignment _ = #{alignment ImFontAtlasPostProcessData}
  peek p = ImFontAtlasPostProcessData <$> #{peek ImFontAtlasPostProcessData, FontAtlas} p <*> #{peek ImFontAtlasPostProcessData, Font} p <*> #{peek ImFontAtlasPostProcessData, FontSrc} p <*> #{peek ImFontAtlasPostProcessData, FontBaked} p <*> #{peek ImFontAtlasPostProcessData, Glyph} p <*> #{peek ImFontAtlasPostProcessData, Pixels} p <*> #{peek ImFontAtlasPostProcessData, Format} p <*> #{peek ImFontAtlasPostProcessData, Pitch} p <*> #{peek ImFontAtlasPostProcessData, Width} p <*> #{peek ImFontAtlasPostProcessData, Height} p
  poke p v = do
    #{poke ImFontAtlasPostProcessData, FontAtlas} p v.fontAtlas
    #{poke ImFontAtlasPostProcessData, Font} p v.font
    #{poke ImFontAtlasPostProcessData, FontSrc} p v.fontSrc
    #{poke ImFontAtlasPostProcessData, FontBaked} p v.fontBaked
    #{poke ImFontAtlasPostProcessData, Glyph} p v.glyph
    #{poke ImFontAtlasPostProcessData, Pixels} p v.pixels
    #{poke ImFontAtlasPostProcessData, Format} p v.format
    #{poke ImFontAtlasPostProcessData, Pitch} p v.pitch
    #{poke ImFontAtlasPostProcessData, Width} p v.width
    #{poke ImFontAtlasPostProcessData, Height} p v.height

instance HasField "fontAtlas" (Ptr ImFontAtlasPostProcessData) (Ptr (Ptr ImFontAtlas)) where
  getField = #{ptr ImFontAtlasPostProcessData, FontAtlas}

instance HasField "font" (Ptr ImFontAtlasPostProcessData) (Ptr (Ptr ImFont)) where
  getField = #{ptr ImFontAtlasPostProcessData, Font}

instance HasField "fontSrc" (Ptr ImFontAtlasPostProcessData) (Ptr (Ptr ImFontConfig)) where
  getField = #{ptr ImFontAtlasPostProcessData, FontSrc}

instance HasField "fontBaked" (Ptr ImFontAtlasPostProcessData) (Ptr (Ptr ImFontBaked)) where
  getField = #{ptr ImFontAtlasPostProcessData, FontBaked}

instance HasField "glyph" (Ptr ImFontAtlasPostProcessData) (Ptr (Ptr ImFontGlyph)) where
  getField = #{ptr ImFontAtlasPostProcessData, Glyph}

instance HasField "pixels" (Ptr ImFontAtlasPostProcessData) (Ptr (Ptr ())) where
  getField = #{ptr ImFontAtlasPostProcessData, Pixels}

instance HasField "format" (Ptr ImFontAtlasPostProcessData) (Ptr ImTextureFormat) where
  getField = #{ptr ImFontAtlasPostProcessData, Format}

instance HasField "pitch" (Ptr ImFontAtlasPostProcessData) (Ptr CInt) where
  getField = #{ptr ImFontAtlasPostProcessData, Pitch}

instance HasField "width" (Ptr ImFontAtlasPostProcessData) (Ptr CInt) where
  getField = #{ptr ImFontAtlasPostProcessData, Width}

instance HasField "height" (Ptr ImFontAtlasPostProcessData) (Ptr CInt) where
  getField = #{ptr ImFontAtlasPostProcessData, Height}

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

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

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

-- functions

-- C: void ImFontAtlasTextureBlockPostProcess(ImFontAtlasPostProcessData* data)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h cImFontAtlasTextureBlockPostProcess"
  cImFontAtlasTextureBlockPostProcess
    :: (Ptr ImFontAtlasPostProcessData) -- ^ data
    -> IO ()

-- C: void ImFontAtlasTextureBlockPostProcessMultiply(ImFontAtlasPostProcessData* data, float multiply_factor)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h cImFontAtlasTextureBlockPostProcessMultiply"
  cImFontAtlasTextureBlockPostProcessMultiply
    :: (Ptr ImFontAtlasPostProcessData) -- ^ data
    -> Float -- ^ multiply_factor
    -> IO ()