packages feed

dear-imgui-impl-opengl2-1.0.0: src/DearImGui/Impl/OpenGL2.hs

-- | "DearImGui.Raw.Impl.OpenGL2" over idiomatic 'Bool' returns.
module DearImGui.Impl.OpenGL2
  ( init
  , withInit
  , createDeviceObjects
  , Raw.destroyDeviceObjects
  , Raw.newFrame
  , Raw.renderDrawData
  , Raw.shutdown
  , Raw.updateTexture
  ) where

import Prelude hiding (init)

import Control.Monad.IO.Unlift (MonadUnliftIO)
import Foreign.Marshal.Utils (toBool)

import DearImGui.Impl.Init (withInitOrFail)
import DearImGui.Raw.Impl.OpenGL2 qualified as Raw

init :: IO Bool
init = toBool <$> Raw.init

-- | 'init'-or-'InitFailed' before the body, 'Raw.shutdown' after it.
withInit :: (MonadUnliftIO m) => m a -> m a
withInit = withInitOrFail "ImGui_ImplOpenGL2_Init" init Raw.shutdown

createDeviceObjects :: IO Bool
createDeviceObjects = toBool <$> Raw.createDeviceObjects