packages feed

dear-imgui-impl-sdlrenderer3-1.0.0: src/DearImGui/Raw/Impl/SDLRenderer3.hsc

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

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

module DearImGui.Raw.Impl.SDLRenderer3
  ( ImGui_ImplSDLRenderer3_RenderState (..)
  , SDL_Renderer
  , createDeviceObjects
  , destroyDeviceObjects
  , getRenderState
  , init
  , newFrame
  , renderDrawData
  , shutdown
  , updateTexture
  ) where

import DearImGui.Raw.ImDrawData (ImDrawData)
import DearImGui.Raw.ImTextureData (ImTextureData)
import Foreign.C.Types
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)

#include "dcimgui_impl_sdlrenderer3.h"

-- structs (opaque)

data {-# CTYPE "dcimgui_impl_sdlrenderer3.h" "ImGui_ImplSDLRenderer3_RenderState" #-} ImGui_ImplSDLRenderer3_RenderState = ImGui_ImplSDLRenderer3_RenderState
  { renderer :: Ptr SDL_Renderer
  , currentScaleMode :: CInt
  }
  deriving (Eq, Show)
instance Storable ImGui_ImplSDLRenderer3_RenderState where
  sizeOf _    = #{size ImGui_ImplSDLRenderer3_RenderState}
  alignment _ = #{alignment ImGui_ImplSDLRenderer3_RenderState}
  peek p = ImGui_ImplSDLRenderer3_RenderState <$> #{peek ImGui_ImplSDLRenderer3_RenderState, Renderer} p <*> #{peek ImGui_ImplSDLRenderer3_RenderState, CurrentScaleMode} p
  poke p v = do
    #{poke ImGui_ImplSDLRenderer3_RenderState, Renderer} p v.renderer
    #{poke ImGui_ImplSDLRenderer3_RenderState, CurrentScaleMode} p v.currentScaleMode

instance HasField "renderer" (Ptr ImGui_ImplSDLRenderer3_RenderState) (Ptr (Ptr SDL_Renderer)) where
  getField = #{ptr ImGui_ImplSDLRenderer3_RenderState, Renderer}

instance HasField "currentScaleMode" (Ptr ImGui_ImplSDLRenderer3_RenderState) (Ptr CInt) where
  getField = #{ptr ImGui_ImplSDLRenderer3_RenderState, CurrentScaleMode}

data SDL_Renderer

-- functions

-- C: void ImGui_ImplSDLRenderer3_CreateDeviceObjects()
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_CreateDeviceObjects"
  createDeviceObjects :: IO ()

-- C: void ImGui_ImplSDLRenderer3_DestroyDeviceObjects()
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_DestroyDeviceObjects"
  destroyDeviceObjects :: IO ()

-- C: ImGui_ImplSDLRenderer3_RenderState* ImGui_ImplSDLRenderer3_GetRenderState()
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_GetRenderState"
  getRenderState :: IO (Ptr ImGui_ImplSDLRenderer3_RenderState)

-- C: bool ImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer)
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_Init"
  init
    :: (Ptr SDL_Renderer) -- ^ renderer
    -> IO CBool

-- C: void ImGui_ImplSDLRenderer3_NewFrame()
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_NewFrame"
  newFrame :: IO ()

-- C: void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer)
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_RenderDrawData"
  renderDrawData
    :: (Ptr ImDrawData) -- ^ draw_data
    -> (Ptr SDL_Renderer) -- ^ renderer
    -> IO ()

-- C: void ImGui_ImplSDLRenderer3_Shutdown()
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_Shutdown"
  shutdown :: IO ()

-- C: void ImGui_ImplSDLRenderer3_UpdateTexture(ImTextureData* tex)
foreign import capi safe "dcimgui_impl_sdlrenderer3.h cImGui_ImplSDLRenderer3_UpdateTexture"
  updateTexture
    :: (Ptr ImTextureData) -- ^ tex
    -> IO ()