@@ -11,61 +11,46 @@ module Web.GPU.GPUAdapter
11
11
, limits
12
12
, requestAdapterInfo
13
13
, requestDevice
14
- )
15
- where
14
+ ) where
16
15
17
16
import Data.Maybe (Maybe (..))
17
+ import Effect.Uncurried (EffectFn1 , runEffectFn1 ,EffectFn2 , runEffectFn2 ,EffectFn3 , runEffectFn3 ,EffectFn4 , runEffectFn4 )
18
18
import Data.Set as Set
19
19
import Effect (Effect )
20
20
import Web.GPU.GPUDeviceDescriptor (GPUDeviceDescriptor )
21
21
import Web.GPU.GPUFeatureName (GPUFeatureName )
22
- import Web.GPU.GPUDevice (GPUDevice )
22
+ import Web.GPU.GPUDevice (GPUDevice )
23
23
import Web.GPU.GPUSupportedLimits (GPUSupportedLimits )
24
24
import Web.GPU.UnmaskHint (UnmaskHint )
25
25
import Web.Promise (Promise )
26
26
27
27
data GPUAdapter
28
28
29
29
-- 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 )
36
31
features :: 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
40
33
34
+ foreign import limitsImpl :: EffectFn1 GPUAdapter { | GPUSupportedLimits }
41
35
limits :: GPUAdapter -> Effect { | GPUSupportedLimits }
42
- limits = limitsImpl
43
-
44
- foreign import isFallbackAdapterImpl :: GPUAdapter -> Effect Boolean
36
+ limits a = runEffectFn1 limitsImpl a
45
37
38
+ foreign import isFallbackAdapterImpl :: EffectFn1 GPUAdapter Boolean
46
39
isFallbackAdapter :: GPUAdapter -> Effect Boolean
47
- isFallbackAdapter = isFallbackAdapterImpl
40
+ isFallbackAdapter a = runEffectFn1 isFallbackAdapterImpl a
48
41
49
42
-- requestDevice
50
43
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 ))
58
45
requestDevice
59
46
:: GPUAdapter
60
47
-> GPUDeviceDescriptor
61
48
-> Effect (Promise (Maybe GPUDevice ))
62
- requestDevice = requestDeviceImpl Just Nothing
49
+ requestDevice a b= runEffectFn4 requestDeviceImpl Just Nothing a b
63
50
64
51
-- requestAdapterInfo
65
52
66
- foreign import requestAdapterInfoImpl
67
- :: GPUAdapter -> Array (UnmaskHint ) -> Effect (Promise GPUAdapterInfo )
68
-
53
+ foreign import requestAdapterInfoImpl :: EffectFn2 GPUAdapter (Array UnmaskHint ) (Promise GPUAdapterInfo )
69
54
type GPUAdapterInfo =
70
55
{ vendor :: String
71
56
, architecture :: String
@@ -75,4 +60,4 @@ type GPUAdapterInfo =
75
60
76
61
requestAdapterInfo
77
62
:: GPUAdapter -> Array UnmaskHint -> Effect (Promise GPUAdapterInfo )
78
- requestAdapterInfo = requestAdapterInfoImpl
63
+ requestAdapterInfo a b = runEffectFn2 requestAdapterInfoImpl a b
0 commit comments