Skip to content

Commit

Permalink
Make zero instance for TransformMatrixKHR return identity
Browse files Browse the repository at this point in the history
Fixes #240
  • Loading branch information
expipiplus1 committed Jan 8, 2021
1 parent 60fe4b6 commit c4f99f0
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 27 deletions.
2 changes: 2 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Change Log

## WIP
- Make zero instance for `TransformMatrixKHR` return identity matrix. See
https://github.com/expipiplus1/vulkan/issues/240

## [3.8.3] - 2021-01-04
- Bump API version to v1.2.166
Expand Down
3 changes: 1 addition & 2 deletions generate-new/src/Bespoke.hs
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,8 @@ import Numeric
import CType
import Data.List ( lookup )
import Error
import Foreign ( Storable(poke) )
import Foreign.C.String ( CString )
import Foreign.Storable ( Storable )
import Foreign.Storable ( Storable(poke) )
import Haskell as H
import Marshal.Marshalable
import Marshal.Scheme
Expand Down
32 changes: 7 additions & 25 deletions src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5913,27 +5913,9 @@ instance ToCStruct TransformMatrixKHR where
cStructSize = 48
cStructAlignment = 4
pokeZeroCStruct p f = do
let pMatrixRow0' = lowerArrayPtr ((p `plusPtr` 0 :: Ptr (FixedArray 4 CFloat)))
case ((zero, zero, zero, zero)) of
(e0, e1, e2, e3) -> do
poke (pMatrixRow0' :: Ptr CFloat) (CFloat (e0))
poke (pMatrixRow0' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
poke (pMatrixRow0' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
poke (pMatrixRow0' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
let pMatrixRow1' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 4 CFloat)))
case ((zero, zero, zero, zero)) of
(e0, e1, e2, e3) -> do
poke (pMatrixRow1' :: Ptr CFloat) (CFloat (e0))
poke (pMatrixRow1' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
poke (pMatrixRow1' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
poke (pMatrixRow1' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
let pMatrixRow2' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 4 CFloat)))
case ((zero, zero, zero, zero)) of
(e0, e1, e2, e3) -> do
poke (pMatrixRow2' :: Ptr CFloat) (CFloat (e0))
poke (pMatrixRow2' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
poke (pMatrixRow2' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
poke (pMatrixRow2' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
poke (p `plusPtr` 0) (CFloat 1)
poke (p `plusPtr` 20) (CFloat 1)
poke (p `plusPtr` 40) (CFloat 1)
f

instance FromCStruct TransformMatrixKHR where
Expand Down Expand Up @@ -5963,10 +5945,10 @@ instance Storable TransformMatrixKHR where
poke ptr poked = pokeCStruct ptr poked (pure ())

instance Zero TransformMatrixKHR where
zero = TransformMatrixKHR
(zero, zero, zero, zero)
(zero, zero, zero, zero)
(zero, zero, zero, zero)
zero = TransformMatrixKHR
(1,0,0,0)
(0,1,0,0)
(0,0,1,0)


-- | VkAccelerationStructureInstanceKHR - Structure specifying a single
Expand Down

0 comments on commit c4f99f0

Please sign in to comment.