packages feed

dear-imgui-impl-sdlrenderer2-1.0.0: src/DearImGui/Raw/Impl/SDLRenderer2.hsc

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

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

module DearImGui.Raw.Impl.SDLRenderer2
  ( ImGui_ImplSDLRenderer2_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_sdlrenderer2.h"

-- structs (opaque)

newtype {-# CTYPE "dcimgui_impl_sdlrenderer2.h" "ImGui_ImplSDLRenderer2_RenderState" #-} ImGui_ImplSDLRenderer2_RenderState = ImGui_ImplSDLRenderer2_RenderState
  { renderer :: Ptr SDL_Renderer
  }
  deriving (Eq, Show)
instance Storable ImGui_ImplSDLRenderer2_RenderState where
  sizeOf _    = #{size ImGui_ImplSDLRenderer2_RenderState}
  alignment _ = #{alignment ImGui_ImplSDLRenderer2_RenderState}
  peek p = ImGui_ImplSDLRenderer2_RenderState <$> #{peek ImGui_ImplSDLRenderer2_RenderState, Renderer} p
  poke p v = do
    #{poke ImGui_ImplSDLRenderer2_RenderState, Renderer} p v.renderer

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

data SDL_Renderer

-- functions

-- C: void ImGui_ImplSDLRenderer2_CreateDeviceObjects()
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_CreateDeviceObjects"
  createDeviceObjects :: IO ()

-- C: void ImGui_ImplSDLRenderer2_DestroyDeviceObjects()
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_DestroyDeviceObjects"
  destroyDeviceObjects :: IO ()

-- C: ImGui_ImplSDLRenderer2_RenderState* ImGui_ImplSDLRenderer2_GetRenderState()
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_GetRenderState"
  getRenderState :: IO (Ptr ImGui_ImplSDLRenderer2_RenderState)

-- C: bool ImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer)
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_Init"
  init
    :: (Ptr SDL_Renderer) -- ^ renderer
    -> IO CBool

-- C: void ImGui_ImplSDLRenderer2_NewFrame()
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_NewFrame"
  newFrame :: IO ()

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

-- C: void ImGui_ImplSDLRenderer2_Shutdown()
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_Shutdown"
  shutdown :: IO ()

-- C: void ImGui_ImplSDLRenderer2_UpdateTexture(ImTextureData* tex)
foreign import capi safe "dcimgui_impl_sdlrenderer2.h cImGui_ImplSDLRenderer2_UpdateTexture"
  updateTexture
    :: (Ptr ImTextureData) -- ^ tex
    -> IO ()