Skip to content

Commit a64e4ae

Browse files
author
Mike Solomon
committed
Update Sandbox.purs
1 parent 421913c commit a64e4ae

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

sandbox/Sandbox.purs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ import Data.ArrayBuffer.ArrayBuffer (byteLength)
99
import Data.ArrayBuffer.Typed (class TypedArray, fromArray, setTyped, whole)
1010
import Data.ArrayBuffer.Typed as Typed
1111
import Data.ArrayBuffer.Types (ArrayView, Float32Array, Uint16Array)
12-
import Data.Float32 (fromNumber')
12+
import Data.Float32 (Float32)
1313
import Data.Foldable (traverse_)
1414
import Data.Int (toNumber)
1515
import Data.Int.Bits (complement, (.&.))
1616
import Data.JSDate (getTime, now)
1717
import Data.Maybe (Maybe(..), maybe)
1818
import Data.Number (pi, sin)
19-
import Data.UInt (fromInt)
19+
import Data.UInt (UInt)
2020
import Effect (Effect)
2121
import Effect.Aff (error, launchAff_, throwError)
2222
import Effect.Class (liftEffect)
@@ -78,6 +78,12 @@ import Web.HTML.HTMLDocument (toNonElementParentNode)
7878
import Web.HTML.Window (document, navigator, requestAnimationFrame)
7979
import Web.Promise as Web.Promise
8080

81+
hackyFloatConv :: Array Number -> Array Float32
82+
hackyFloatConv = unsafeCoerce
83+
84+
hackyIntConv :: Array Int -> Array UInt
85+
hackyIntConv = unsafeCoerce
86+
8187
convertPromise :: Web.Promise.Promise ~> Control.Promise.Promise
8288
convertPromise = unsafeCoerce
8389

@@ -91,7 +97,7 @@ showErrorMessage = do
9197

9298
main :: Effect Unit
9399
main = do
94-
positions :: Float32Array <- fromArray $ map fromNumber'
100+
positions :: Float32Array <- fromArray $ hackyFloatConv
95101
[ 1.0
96102
, -1.0
97103
, 0.0
@@ -104,7 +110,7 @@ main = do
104110
]
105111

106112
-- 🎨 Color Vertex Buffer Data
107-
colors :: Float32Array <- fromArray $ map fromNumber'
113+
colors :: Float32Array <- fromArray $ hackyFloatConv
108114
[ 1.0
109115
, 0.0
110116
, 0.0
@@ -120,7 +126,7 @@ main = do
120126
]
121127
let
122128
makeUniformData yScale = do
123-
uniformData :: Float32Array <- fromArray $ map fromNumber'
129+
uniformData :: Float32Array <- fromArray $ hackyFloatConv
124130
[
125131
-- ♟️ ModelViewProjection Matrix (Identity)
126132
1.0
@@ -155,7 +161,7 @@ main = do
155161
pure uniformData
156162
uniformData <- makeUniformData 1.0
157163
-- 📇 Index Buffer Data
158-
indices :: Uint16Array <- fromArray $ map fromInt [ 0, 1, 2 ]
164+
indices :: Uint16Array <- fromArray $ hackyIntConv [ 0, 1, 2 ]
159165
-- 🏭 Entry to WebGPU
160166
entry <- window >>= navigator >>= gpu >>= case _ of
161167
Nothing -> do

0 commit comments

Comments
 (0)