mirror of
https://github.com/Drezil/dear-imgui.hs.git
synced 2024-11-22 16:57:00 +00:00
Wrap GetCurrentContext and SetCurrentContext (#94)
This commit is contained in:
parent
24519778e6
commit
c219f8eb4f
@ -20,6 +20,8 @@ module DearImGui
|
|||||||
Raw.Context(..)
|
Raw.Context(..)
|
||||||
, Raw.createContext
|
, Raw.createContext
|
||||||
, Raw.destroyContext
|
, Raw.destroyContext
|
||||||
|
, Raw.getCurrentContext
|
||||||
|
, Raw.setCurrentContext
|
||||||
|
|
||||||
-- * Main
|
-- * Main
|
||||||
, Raw.newFrame
|
, Raw.newFrame
|
||||||
|
@ -33,5 +33,6 @@ imguiContext = mempty
|
|||||||
[ ( TypeName "ImVec2", [t| ImVec2 |] )
|
[ ( TypeName "ImVec2", [t| ImVec2 |] )
|
||||||
, ( TypeName "ImVec3", [t| ImVec3 |] )
|
, ( TypeName "ImVec3", [t| ImVec3 |] )
|
||||||
, ( TypeName "ImVec4", [t| ImVec4 |] )
|
, ( TypeName "ImVec4", [t| ImVec4 |] )
|
||||||
|
, ( TypeName "ImGuiContext", [t| ImGuiContext |] )
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,8 @@ module DearImGui.Raw
|
|||||||
Context(..)
|
Context(..)
|
||||||
, createContext
|
, createContext
|
||||||
, destroyContext
|
, destroyContext
|
||||||
|
, getCurrentContext
|
||||||
|
, setCurrentContext
|
||||||
|
|
||||||
-- * Main
|
-- * Main
|
||||||
, newFrame
|
, newFrame
|
||||||
@ -234,19 +236,30 @@ Cpp.using "namespace ImGui"
|
|||||||
|
|
||||||
|
|
||||||
-- | Wraps @ImGuiContext*@.
|
-- | Wraps @ImGuiContext*@.
|
||||||
newtype Context = Context (Ptr ())
|
newtype Context = Context (Ptr ImGuiContext)
|
||||||
|
|
||||||
|
|
||||||
-- | Wraps @ImGui::CreateContext()@.
|
-- | Wraps @ImGui::CreateContext()@.
|
||||||
createContext :: (MonadIO m) => m Context
|
createContext :: (MonadIO m) => m Context
|
||||||
createContext = liftIO do
|
createContext = liftIO do
|
||||||
Context <$> [C.exp| void* { CreateContext() } |]
|
Context <$> [C.exp| ImGuiContext* { CreateContext() } |]
|
||||||
|
|
||||||
|
|
||||||
-- | Wraps @ImGui::DestroyContext()@.
|
-- | Wraps @ImGui::DestroyContext()@.
|
||||||
destroyContext :: (MonadIO m) => Context -> m ()
|
destroyContext :: (MonadIO m) => Context -> m ()
|
||||||
destroyContext (Context contextPtr) = liftIO do
|
destroyContext (Context contextPtr) = liftIO do
|
||||||
[C.exp| void { DestroyContext((ImGuiContext*)$(void* contextPtr)); } |]
|
[C.exp| void { DestroyContext($(ImGuiContext* contextPtr)); } |]
|
||||||
|
|
||||||
|
-- | Wraps @ImGui::GetCurrentContext()@.
|
||||||
|
getCurrentContext :: MonadIO m => m Context
|
||||||
|
getCurrentContext = liftIO do
|
||||||
|
Context <$> [C.exp| ImGuiContext* { GetCurrentContext() } |]
|
||||||
|
|
||||||
|
|
||||||
|
-- | Wraps @ImGui::SetCurrentContext()@.
|
||||||
|
setCurrentContext :: MonadIO m => Context -> m ()
|
||||||
|
setCurrentContext (Context contextPtr) = liftIO do
|
||||||
|
[C.exp| void { SetCurrentContext($(ImGuiContext* contextPtr)) } |]
|
||||||
|
|
||||||
|
|
||||||
-- | Start a new Dear ImGui frame, you can submit any command from this point
|
-- | Start a new Dear ImGui frame, you can submit any command from this point
|
||||||
|
@ -69,3 +69,8 @@ instance Storable ImVec4 where
|
|||||||
z <- peek (castPtr ptr `plusPtr` (sizeOf x * 2))
|
z <- peek (castPtr ptr `plusPtr` (sizeOf x * 2))
|
||||||
w <- peek (castPtr ptr `plusPtr` (sizeOf x * 3))
|
w <- peek (castPtr ptr `plusPtr` (sizeOf x * 3))
|
||||||
return ImVec4{ x, y, z, w }
|
return ImVec4{ x, y, z, w }
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- | DearImGui context handle.
|
||||||
|
data ImGuiContext
|
||||||
|
Loading…
Reference in New Issue
Block a user