packages feed

dear-imgui 2.1.2 → 2.1.3

raw patch · 5 files changed

+66/−54 lines, 5 filesdep ~VulkanMemoryAllocatordep ~basedep ~template-haskellPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: VulkanMemoryAllocator, base, template-haskell, transformers, vulkan, vulkan-utils

API changes (from Hackage documentation)

- DearImGui.Raw: dragFloat :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: dragFloat :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: dragFloat2 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: dragFloat2 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: dragFloat3 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: dragFloat3 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: dragFloat4 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: dragFloat4 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: sliderFloat :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: sliderFloat :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: sliderFloat2 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: sliderFloat2 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: sliderFloat3 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: sliderFloat3 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool
- DearImGui.Raw: sliderFloat4 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool
+ DearImGui.Raw: sliderFloat4 :: MonadIO m => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool

Files

ChangeLog.md view
@@ -1,5 +1,11 @@ # Changelog for dear-imgui +## [2.1.3]++- Fixed off-by-1 in internal Text wrapper.+- Fixed sliderFloat* Raw calls+- Added `formatPtr` to Raw.dragFloat* and Raw.sliderFloat*+ ## [2.1.2]  - Fixed glfw example build flags.@@ -100,6 +106,7 @@ [2.1.0]: https://github.com/haskell-game/dear-imgui.hs/tree/v2.1.0 [2.1.1]: https://github.com/haskell-game/dear-imgui.hs/tree/v2.1.1 [2.1.2]: https://github.com/haskell-game/dear-imgui.hs/tree/v2.1.2+[2.1.3]: https://github.com/haskell-game/dear-imgui.hs/tree/v2.1.3  [1.87]: https://github.com/ocornut/imgui/releases/tag/v1.87 [1.86]: https://github.com/ocornut/imgui/releases/tag/v1.86
dear-imgui.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0  name: dear-imgui-version: 2.1.2+version: 2.1.3 author: Oliver Charles maintainer: ollie@ocharles.org.uk, aenor.realm@gmail.com license: BSD-3-Clause@@ -390,8 +390,9 @@       , vector          ^>= 0.12.1.2       , vulkan-         ^>= 3.9+         >= 3.12       , vulkan-utils-         ^>= 0.4.1+         >= 0.5       , VulkanMemoryAllocator+         >= 0.7.1       , JuicyPixels
src/DearImGui.hs view
@@ -646,7 +646,7 @@   currentValue <- get ref   with (realToFrac currentValue) \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.dragFloat descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue)+      Raw.dragFloat descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       newValue <- peek floatPtr@@ -661,7 +661,7 @@   (x, y) <- get ref   withArray [ realToFrac x, realToFrac y ] \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.dragFloat2 descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue)+      Raw.dragFloat2 descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       [x', y'] <- peekArray 2 floatPtr@@ -675,7 +675,7 @@   (x, y, z) <- get ref   withArray [ realToFrac x, realToFrac y, realToFrac z ] \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.dragFloat3 descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue)+      Raw.dragFloat3 descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       [x', y', z'] <- peekArray 3 floatPtr@@ -690,7 +690,7 @@   (x, y, z, u) <- get ref   withArray [ realToFrac x, realToFrac y, realToFrac z, realToFrac u ] \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.dragFloat4 descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue)+      Raw.dragFloat4 descPtr floatPtr (CFloat speed) (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       [x', y', z', u'] <- peekArray 4 floatPtr@@ -969,7 +969,7 @@   currentValue <- get ref   with (realToFrac currentValue) \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.sliderFloat descPtr floatPtr (CFloat minValue) (CFloat maxValue)+      Raw.sliderFloat descPtr floatPtr (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       newValue <- peek floatPtr@@ -983,7 +983,7 @@   (x, y) <- get ref   withArray [ realToFrac x, realToFrac y ] \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.sliderFloat descPtr floatPtr (CFloat minValue) (CFloat maxValue)+      Raw.sliderFloat2 descPtr floatPtr (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       [x', y'] <- peekArray 2 floatPtr@@ -997,7 +997,7 @@   (x, y, z) <- get ref   withArray [ realToFrac x, realToFrac y, realToFrac z ] \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.sliderFloat descPtr floatPtr (CFloat minValue) (CFloat maxValue)+      Raw.sliderFloat3 descPtr floatPtr (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       [x', y', z'] <- peekArray 3 floatPtr@@ -1011,7 +1011,7 @@   (x, y, z, u) <- get ref   withArray [ realToFrac x, realToFrac y, realToFrac z, realToFrac u ] \floatPtr -> do     changed <- Text.withCString desc \descPtr ->-      Raw.sliderFloat descPtr floatPtr (CFloat minValue) (CFloat maxValue)+      Raw.sliderFloat4 descPtr floatPtr (CFloat minValue) (CFloat maxValue) nullPtr      when changed do       [x', y', z', u'] <- peekArray 4 floatPtr
src/DearImGui/Internal/Text.hs view
@@ -13,7 +13,6 @@   ) where  -- base-import Control.Monad.IO.Class (liftIO) import Foreign (nullPtr, plusPtr) import Foreign.C.String (CString) import qualified GHC.Foreign as Foreign@@ -26,35 +25,40 @@ -- unliftio-core import UnliftIO (MonadUnliftIO, UnliftIO(..), withUnliftIO) -#if MIN_VERSION_text(2,0,0)+#if MIN_VERSION_text(2,0,1)+-- XXX: just wrap the provided combinator -import Data.Text.Foreign (lengthWord8, unsafeCopyToPtr)-import Data.Word (Word8)-import Foreign (castPtr, free, mallocBytes, pokeByteOff)-import UnliftIO.Exception (bracket)+import qualified Data.Text.Foreign as Text  withCString :: MonadUnliftIO m => Text -> (CString -> m a) -> m a-withCString t = bracket create destroy-  where-    size0 = lengthWord8 t + 1+withCString text action =+  withUnliftIO $ \(UnliftIO unlift) ->+    Text.withCString text $ \buf ->+      unlift $ action buf -    create = liftIO $ do-      ptr <- mallocBytes size0-      unsafeCopyToPtr t (castPtr ptr)-      pokeByteOff ptr size0 (0 :: Word8)-      pure ptr+#elif MIN_VERSION_text(2,0,0)+-- XXX: the text is UTF-8, alas no withCString is available -    destroy ptr =-      liftIO $ free ptr+import Data.Text.Foreign (lengthWord8, unsafeCopyToPtr)+import Data.Word (Word8)+import Foreign (allocaBytes, castPtr, pokeByteOff) +withCString :: MonadUnliftIO m => Text -> (CString -> m a) -> m a+withCString t@(Text _arr _off len) action =+  withUnliftIO $ \(UnliftIO unlift) ->+    allocaBytes (len + 1) $ \buf -> do+      unsafeCopyToPtr t buf+      pokeByteOff buf len (0 :: Word8)+      unlift $ action (castPtr buf)+ #else+-- XXX: the text is UTF-16, let GHC do it  withCString :: MonadUnliftIO m => Text -> (CString -> m a) -> m a withCString t action = do   withUnliftIO $ \(UnliftIO unlift) ->-    liftIO $-      Foreign.withCString utf8 (unpack t) $ \textPtr ->-        unlift $ action textPtr+    Foreign.withCString utf8 (unpack t) $ \textPtr ->+      unlift $ action textPtr  #endif 
src/DearImGui/Raw.hs view
@@ -693,27 +693,27 @@   -- | Wraps @ImGui::DragFloat()@-dragFloat :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool-dragFloat descPtr floatPtr speed minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { DragFloat( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]+dragFloat :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool+dragFloat descPtr floatPtr speed minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { DragFloat( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::DragFloat2()@-dragFloat2 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool-dragFloat2 descPtr floatPtr speed minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { DragFloat2( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]+dragFloat2 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool+dragFloat2 descPtr floatPtr speed minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { DragFloat2( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::DragFloat3()@-dragFloat3 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool-dragFloat3 descPtr floatPtr speed minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { DragFloat3( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]+dragFloat3 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool+dragFloat3 descPtr floatPtr speed minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { DragFloat3( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::DragFloat4()@-dragFloat4 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> m Bool-dragFloat4 descPtr floatPtr speed minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { DragFloat4( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue)) } |]+dragFloat4 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CFloat -> CString -> m Bool+dragFloat4 descPtr floatPtr speed minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { DragFloat4( $(char* descPtr), $(float* floatPtr), $(float speed), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::DragFloatRange2()@@@ -853,27 +853,27 @@     maxPtr_ = castPtr maxPtr  -- | Wraps @ImGui::SliderFloat()@-sliderFloat :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool-sliderFloat descPtr floatPtr minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { SliderFloat( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]+sliderFloat :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool+sliderFloat descPtr floatPtr minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { SliderFloat( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::SliderFloat2()@-sliderFloat2 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool-sliderFloat2 descPtr floatPtr minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { SliderFloat2( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]+sliderFloat2 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool+sliderFloat2 descPtr floatPtr minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { SliderFloat2( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::SliderFloat3()@-sliderFloat3 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool-sliderFloat3 descPtr floatPtr minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { SliderFloat3( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]+sliderFloat3 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool+sliderFloat3 descPtr floatPtr minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { SliderFloat3( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]   -- | Wraps @ImGui::SliderFloat4()@-sliderFloat4 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> m Bool-sliderFloat4 descPtr floatPtr minValue maxValue = liftIO do-  (0 /=) <$> [C.exp| bool { SliderFloat4( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue)) } |]+sliderFloat4 :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> m Bool+sliderFloat4 descPtr floatPtr minValue maxValue formatPtr = liftIO do+  (0 /=) <$> [C.exp| bool { SliderFloat4( $(char* descPtr), $(float* floatPtr), $(float minValue), $(float maxValue), $(char* formatPtr)) } |]  -- | Wraps @ImGui::SliderAngle()@ sliderAngle :: (MonadIO m) => CString -> Ptr CFloat -> CFloat -> CFloat -> CString -> ImGuiSliderFlags -> m Bool