mirror of
				https://github.com/Drezil/dear-imgui.hs.git
				synced 2025-11-03 22:51:07 +01:00 
			
		
		
		
	Wrap GetCurrentContext and SetCurrentContext
This commit is contained in:
		@@ -18,6 +18,8 @@ module DearImGui
 | 
			
		||||
    Context(..)
 | 
			
		||||
  , createContext
 | 
			
		||||
  , destroyContext
 | 
			
		||||
  , getCurrentContext
 | 
			
		||||
  , setCurrentContext
 | 
			
		||||
 | 
			
		||||
    -- * Main
 | 
			
		||||
  , newFrame
 | 
			
		||||
@@ -139,19 +141,31 @@ Cpp.using "namespace ImGui"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- | Wraps @ImGuiContext*@.
 | 
			
		||||
newtype Context = Context (Ptr ())
 | 
			
		||||
newtype Context = Context (Ptr ImGuiContext)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- | Wraps @ImGui::CreateContext()@.
 | 
			
		||||
createContext :: MonadIO m => m Context
 | 
			
		||||
createContext = liftIO do
 | 
			
		||||
  Context <$> [C.exp| void* { CreateContext() } |]
 | 
			
		||||
  Context <$> [C.exp| ImGuiContext* { CreateContext() } |]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- | Wraps @ImGui::DestroyContext()@.
 | 
			
		||||
destroyContext :: MonadIO m => Context -> m ()
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -53,10 +53,14 @@ instance Storable ImVec4 where
 | 
			
		||||
    return ImVec4{ x, y, z, w }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
data ImGuiContext
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
imguiContext :: Context
 | 
			
		||||
imguiContext = mempty
 | 
			
		||||
  { ctxTypesTable = Map.fromList
 | 
			
		||||
      [ ( TypeName "ImVec3", [t| ImVec3 |] )
 | 
			
		||||
      , ( TypeName "ImVec4", [t| ImVec4 |] )
 | 
			
		||||
      , ( TypeName "ImGuiContext", [t| ImGuiContext |])
 | 
			
		||||
      ]
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user