-- | "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