packages feed

keid-resource-gltf 0.1.0.0 → 0.1.0.1

raw patch · 4 files changed

+30/−35 lines, 4 filesdep −derive-storabledep −derive-storable-plugindep −rio-appdep ~geomancyPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: derive-storable, derive-storable-plugin, rio-app, vulkan

Dependency ranges changed: geomancy

API changes (from Hackage documentation)

+ Resource.Gltf.Model: instance GHC.Generics.Generic Resource.Gltf.Model.VertexAttrs
+ Resource.Gltf.Model: instance Geomancy.Gl.Block.Block Resource.Gltf.Model.VertexAttrs
- Resource.Gltf.Load: loadMeshPrimitives :: HasLogFunc env => Bool -> Bool -> FilePath -> RIO env (GlTF, Vector (Vector MeshPrimitive))
+ Resource.Gltf.Load: loadMeshPrimitives :: (MonadReader env m, HasLogFunc env, MonadThrow m, MonadUnliftIO m) => Bool -> Bool -> FilePath -> m (GlTF, Vector (Vector MeshPrimitive))

Files

ChangeLog.md view
@@ -1,3 +1,5 @@ # Changelog for keid-resource-gltf -## Unreleased changes+## 0.1.0.1++- Switch to block-derived Storable instance.
keid-resource-gltf.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.35.1. -- -- see: https://github.com/sol/hpack  name:           keid-resource-gltf-version:        0.1.0.0+version:        0.1.0.1 synopsis:       GLTF loader for Keid engine. category:       Game Engine author:         IC Rainbow@@ -93,12 +93,8 @@       base >=4.7 && <5     , bytestring     , containers-    , derive-storable-    , derive-storable-plugin-    , geomancy+    , geomancy >=0.2.5.0     , gltf-codec     , keid-core     , rio >=0.1.12.0-    , rio-app-    , vulkan   default-language: Haskell2010
src/Resource/Gltf/Load.hs view
@@ -68,11 +68,15 @@  -- XXX: OTOH, it may be better to unfold scene first 🤔 loadMeshPrimitives-  :: HasLogFunc env+  :: ( MonadReader env m+     , HasLogFunc env+     , MonadThrow m+     , MonadUnliftIO m+     )   => Bool   -> Bool   -> FilePath-  -> RIO env+  -> m     ( Root.GlTF     , Vector (Vector MeshPrimitive)     )@@ -268,14 +272,18 @@   pure (root, meshPrimitives)  accessBuffer-  :: forall a env . (Storable a)-  => (Accessor.AccessorIx -> RIO env Accessor.Accessor)-  -> (BufferView.BufferViewIx -> RIO env BufferView.BufferView)-  -> (Buffer.BufferIx -> RIO env ByteString)+  :: forall a m+  .  ( MonadThrow m+     , MonadIO m+     , Storable a+     )+  => (Accessor.AccessorIx -> m Accessor.Accessor)+  -> (BufferView.BufferViewIx -> m BufferView.BufferView)+  -> (Buffer.BufferIx -> m ByteString)   -> Accessor.AttributeType   -> Accessor.ComponentType   -> Accessor.AccessorIx-  -> RIO env [a]+  -> m [a] accessBuffer getAccessor getBufferView getBuffer expectAttribute expectComponent aix = do   Accessor.Accessor{bufferView, byteOffset=accOffset, componentType, count, type'} <- getAccessor aix @@ -304,11 +312,11 @@     Foreign.peekArray count . Foreign.castPtr  unexpected-  :: (Eq e, Exception exception)+  :: (Eq e, Exception exception, MonadThrow m)   => (e -> e -> exception)   -> e   -> e-  -> RIO env ()+  -> m () unexpected cons expected got =   unless (expected == got) $     throwM $ cons expected got
src/Resource/Gltf/Model.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveAnyClass #-}+ module Resource.Gltf.Model   ( Mesh   , MeshPrimitive@@ -15,9 +17,10 @@ import RIO  import Codec.GlTF.Material qualified as GlTF (Material)-import Foreign qualified import Data.Semigroup (Semigroup(..)) import Geomancy (Vec2)+import Geomancy.Gl.Block (Block)+import Geomancy.Gl.Block qualified as Block import Geomancy.Vec3 qualified as Vec3 import RIO.List qualified as List import RIO.Vector qualified as Vector@@ -103,20 +106,6 @@   { vaTexCoord :: Vec2   , vaNormal   :: Vec3.Packed   , vaTangent  :: Vec3.Packed-  } deriving (Eq, Ord, Show)--instance Storable VertexAttrs where-  alignment ~_ = 16--  sizeOf ~_ = 8 + 12 + 12--  peek ptr = do-    vaTexCoord <- Foreign.peekByteOff ptr  0 -- +8-    vaNormal   <- Foreign.peekByteOff ptr  8 -- +12-    vaTangent  <- Foreign.peekByteOff ptr 20 -- +12-    pure VertexAttrs{..}--  poke ptr VertexAttrs{..} = do-    Foreign.pokeByteOff ptr  0 vaTexCoord-    Foreign.pokeByteOff ptr  8 vaNormal-    Foreign.pokeByteOff ptr 20 vaTangent+  }+  deriving (Eq, Ord, Show, Generic, Block)+  deriving Storable via (Block.Packed VertexAttrs)