Commit before making large changes to cylinder shape

This commit is contained in:
2024-12-21 16:10:22 +00:00
parent a79dbf3b0e
commit 98d4276fd6
2 changed files with 23 additions and 20 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
"_graphics_num_shadow_casters": "NumShadowCasters20", "_graphics_num_shadow_casters": "NumShadowCasters20",
"_graphics_shadow_rendering": "GeoObjShads", "_graphics_shadow_rendering": "GeoObjShads",
"_graphics_shadow_size": "Typical", "_graphics_shadow_size": "Typical",
"_graphics_world_resolution": "FullRes", "_graphics_world_resolution": "QuarterRes",
"_volume_master": 1, "_volume_master": 1,
"_volume_music": 0, "_volume_music": 0,
"_volume_sound": 1, "_volume_sound": 1,
+22 -19
View File
@@ -212,8 +212,10 @@ pokeCylinderCaps :: Float -> Point4 -> Ptr Float -> Point3 -> Point3 -> [Point3]
{-# INLINE pokeCylinderCaps #-} {-# INLINE pokeCylinderCaps #-}
pokeCylinderCaps xdata col ptr tc bc = go True pokeCylinderCaps xdata col ptr tc bc = go True
where where
go True (x : xs) n = pokeJustVInvNormal xdata tc col ptr n x >>= go False xs -- go True (x : xs) n = pokeJustVInvNormal xdata tc col ptr n x >>= go False xs
go False (x : xs) n = pokeJustVInvNormal xdata bc col ptr n x >>= go True xs -- go False (x : xs) n = pokeJustVInvNormal xdata bc col ptr n x >>= go True xs
go True (x : xs) n = pokeFlatV xdata tc col ptr n x >>= go False xs
go False (x : xs) n = pokeFlatV xdata bc col ptr n x >>= go True xs
go _ [] n = return n go _ [] n = return n
pokeBox :: pokeBox ::
@@ -444,23 +446,23 @@ pokeJustV xdata cp col ptr nv sh = do
V3 x y z = sh V3 x y z = sh
V3 nx ny nz = cp V3 nx ny nz = cp
pokeJustVInvNormal :: --pokeJustVInvNormal ::
Float -> -- Float ->
Point3 -> -- Point3 ->
Point4 -> -- Point4 ->
Ptr Float -> -- Ptr Float ->
Int -> -- Int ->
Point3 -> -- Point3 ->
IO Int -- IO Int
{-# INLINE pokeJustVInvNormal #-} --{-# INLINE pokeJustVInvNormal #-}
pokeJustVInvNormal xdata cp col ptr nv sh = do --pokeJustVInvNormal xdata cp col ptr nv sh = do
pokeByteOff ptr (nv * shapeVerxSize) (V4 x y z xdata) -- pokeByteOff ptr (nv * shapeVerxSize) (V4 x y z xdata)
pokeByteOff ptr (nv *shapeVerxSize + 4 * floatSize) (toColor8 col) -- pokeByteOff ptr (nv *shapeVerxSize + 4 * floatSize) (toColor8 col)
pokeByteOff ptr (nv *shapeVerxSize + 4 * (floatSize + ubyteSize)) (V4 nx ny nz 1) -- pokeByteOff ptr (nv *shapeVerxSize + 4 * (floatSize + ubyteSize)) (V4 nx ny nz 1)
return (nv + 1) -- return (nv + 1)
where -- where
V3 x y z = sh -- V3 x y z = sh
V3 nx ny nz = (2 * sh) - cp -- V3 nx ny nz = (2 * sh) - cp
pokeFlatV :: pokeFlatV ::
Float -> Float ->
@@ -479,6 +481,7 @@ pokeFlatV xdata norm col ptr nv sh = do
where where
V3 x y z = sh V3 x y z = sh
V3 nx ny nz = sh - norm V3 nx ny nz = sh - norm
-- V3 nx ny nz = norm
pokeLayVerxs :: pokeLayVerxs ::
MV.MVector (PrimState IO) (Shader, VBO) -> MV.MVector (PrimState IO) (Shader, VBO) ->