@@ -11,61 +11,46 @@ module Web.GPU.GPUAdapter
1111 , limits
1212 , requestAdapterInfo
1313 , requestDevice
14- )
15- where
14+ ) where
1615
1716import Data.Maybe (Maybe (..))
17+ import Effect.Uncurried (EffectFn1 , runEffectFn1 ,EffectFn2 , runEffectFn2 ,EffectFn3 , runEffectFn3 ,EffectFn4 , runEffectFn4 )
1818import Data.Set as Set
1919import Effect (Effect )
2020import Web.GPU.GPUDeviceDescriptor (GPUDeviceDescriptor )
2121import Web.GPU.GPUFeatureName (GPUFeatureName )
22- import Web.GPU.GPUDevice (GPUDevice )
22+ import Web.GPU.GPUDevice (GPUDevice )
2323import Web.GPU.GPUSupportedLimits (GPUSupportedLimits )
2424import Web.GPU.UnmaskHint (UnmaskHint )
2525import Web.Promise (Promise )
2626
2727data GPUAdapter
2828
2929-- features
30- foreign import featuresImpl
31- :: (GPUFeatureName -> Set.Set GPUFeatureName -> Set.Set GPUFeatureName )
32- -> Set.Set GPUFeatureName
33- -> GPUAdapter
34- -> Effect (Set.Set GPUFeatureName )
35-
30+ foreign import featuresImpl :: EffectFn3 (GPUFeatureName -> Set.Set GPUFeatureName -> Set.Set GPUFeatureName ) (Set.Set GPUFeatureName ) GPUAdapter (Set.Set GPUFeatureName )
3631features :: GPUAdapter -> Effect (Set.Set GPUFeatureName )
37- features = featuresImpl Set .insert Set .empty
38-
39- foreign import limitsImpl :: GPUAdapter -> Effect { | GPUSupportedLimits }
32+ features a = runEffectFn3 featuresImpl Set .insert Set .empty a
4033
34+ foreign import limitsImpl :: EffectFn1 GPUAdapter { | GPUSupportedLimits }
4135limits :: GPUAdapter -> Effect { | GPUSupportedLimits }
42- limits = limitsImpl
43-
44- foreign import isFallbackAdapterImpl :: GPUAdapter -> Effect Boolean
36+ limits a = runEffectFn1 limitsImpl a
4537
38+ foreign import isFallbackAdapterImpl :: EffectFn1 GPUAdapter Boolean
4639isFallbackAdapter :: GPUAdapter -> Effect Boolean
47- isFallbackAdapter = isFallbackAdapterImpl
40+ isFallbackAdapter a = runEffectFn1 isFallbackAdapterImpl a
4841
4942-- requestDevice
5043
51- foreign import requestDeviceImpl
52- :: (GPUDevice -> Maybe GPUDevice )
53- -> Maybe GPUDevice
54- -> GPUAdapter
55- -> GPUDeviceDescriptor
56- -> Effect (Promise (Maybe GPUDevice ))
57-
44+ foreign import requestDeviceImpl :: EffectFn4 (GPUDevice -> Maybe GPUDevice )( Maybe GPUDevice ) GPUAdapter GPUDeviceDescriptor (Promise (Maybe GPUDevice ))
5845requestDevice
5946 :: GPUAdapter
6047 -> GPUDeviceDescriptor
6148 -> Effect (Promise (Maybe GPUDevice ))
62- requestDevice = requestDeviceImpl Just Nothing
49+ requestDevice a b= runEffectFn4 requestDeviceImpl Just Nothing a b
6350
6451-- requestAdapterInfo
6552
66- foreign import requestAdapterInfoImpl
67- :: GPUAdapter -> Array (UnmaskHint ) -> Effect (Promise GPUAdapterInfo )
68-
53+ foreign import requestAdapterInfoImpl :: EffectFn2 GPUAdapter (Array UnmaskHint ) (Promise GPUAdapterInfo )
6954type GPUAdapterInfo =
7055 { vendor :: String
7156 , architecture :: String
@@ -75,4 +60,4 @@ type GPUAdapterInfo =
7560
7661requestAdapterInfo
7762 :: GPUAdapter -> Array UnmaskHint -> Effect (Promise GPUAdapterInfo )
78- requestAdapterInfo = requestAdapterInfoImpl
63+ requestAdapterInfo a b = runEffectFn2 requestAdapterInfoImpl a b
0 commit comments