diff --git a/package.json b/package.json index 1fae100..1cb17d3 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "sandbox": "spago -x sandbox.dhall build && vite build sandbox/", "sandbox-dev": "spago -x sandbox-dev.dhall build && vite dev sandbox/", - "format": "purs-tidy format-in-place \"src/**/*.purs sandbox/**/*.purs\" && prettier --write \"src/**/*.js\"" + "format": "purs-tidy format-in-place \"src/**/*.purs sandbox/**/*.purs\" && prettier --arrow-parens avoid --write \"src/**/*.js\"" }, "keywords": [], "author": "", diff --git a/spago.dhall b/spago.dhall index 1b78d52..d0b4a72 100644 --- a/spago.dhall +++ b/spago.dhall @@ -16,11 +16,13 @@ to generate this file without the comments in this block. , "effect" , "foreign" , "foreign-object" + , "functions" , "integers" , "maybe" , "newtype" , "ordered-collections" , "prelude" + , "uint" , "unsafe-coerce" , "web-events" , "web-html" diff --git a/src/Web/GPU/BufferSource.purs b/src/Web/GPU/BufferSource.purs index 521871b..db478b7 100644 --- a/src/Web/GPU/BufferSource.purs +++ b/src/Web/GPU/BufferSource.purs @@ -15,6 +15,7 @@ import Data.ArrayBuffer.Types (ArrayBuffer, DataView, Float32Array, Float64Array import Unsafe.Coerce (unsafeCoerce) data BufferSource + fromArrayBuffer :: ArrayBuffer -> BufferSource fromArrayBuffer = unsafeCoerce diff --git a/src/Web/GPU/GPU.js b/src/Web/GPU/GPU.js index c2e8d6c..57aaecb 100644 --- a/src/Web/GPU/GPU.js +++ b/src/Web/GPU/GPU.js @@ -1,6 +1,5 @@ -export const requestAdapterImpl = - (just) => (nothing) => (gpu) => (options) => () => - gpu.requestAdapter(options).then((o) => (o ? just(o) : nothing)); +export const requestAdapterImpl = (just, nothing, gpu, options) => + gpu.requestAdapter(options).then(o => (o ? just(o) : nothing)); -export const getPreferredCanvasFormatImpl = (gpu) => () => +export const getPreferredCanvasFormatImpl = gpu => gpu.getPreferredCanvasFormat(); diff --git a/src/Web/GPU/GPU.purs b/src/Web/GPU/GPU.purs index 4d8631b..1291beb 100644 --- a/src/Web/GPU/GPU.purs +++ b/src/Web/GPU/GPU.purs @@ -1,36 +1,32 @@ -- @inline export requestAdapter arity=1 -- @inline export getPreferredCanvasFormat arity=1 module Web.GPU.GPU - ( GPU,requestAdapter + ( GPU + , requestAdapter , getPreferredCanvasFormat ) where import Data.Maybe (Maybe(..)) +import Effect.Uncurried(EffectFn1, runEffectFn1,EffectFn4, runEffectFn4) import Effect (Effect) import Web.GPU.GPURequestAdapterOptions (GPURequestAdapterOptions) import Web.GPU.GPUTextureFormat (GPUTextureFormat) import Web.Promise (Promise) -import Web.GPU.GPUAdapter(GPUAdapter) +import Web.GPU.GPUAdapter (GPUAdapter) data GPU --- requestAdapter -foreign import requestAdapterImpl - :: (GPUAdapter -> Maybe GPUAdapter) - -> Maybe GPUAdapter - -> GPU - -> GPURequestAdapterOptions - -> Effect (Promise (Maybe GPUAdapter)) +-- requestAdapter +foreign import requestAdapterImpl :: EffectFn4 (GPUAdapter -> Maybe GPUAdapter) (Maybe GPUAdapter) GPU GPURequestAdapterOptions (Promise (Maybe GPUAdapter)) requestAdapter :: GPU -> GPURequestAdapterOptions -> Effect (Promise (Maybe GPUAdapter)) -requestAdapter = requestAdapterImpl Just Nothing +requestAdapter a b = runEffectFn4 requestAdapterImpl Just Nothing a b -- getPreferredCanvasFormat -foreign import getPreferredCanvasFormatImpl :: GPU -> Effect GPUTextureFormat - +foreign import getPreferredCanvasFormatImpl :: EffectFn1 GPU GPUTextureFormat getPreferredCanvasFormat :: GPU -> Effect GPUTextureFormat -getPreferredCanvasFormat = getPreferredCanvasFormatImpl \ No newline at end of file +getPreferredCanvasFormat a = runEffectFn1 getPreferredCanvasFormatImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUAdapter.js b/src/Web/GPU/GPUAdapter.js index 65b002f..3080e68 100644 --- a/src/Web/GPU/GPUAdapter.js +++ b/src/Web/GPU/GPUAdapter.js @@ -1,4 +1,4 @@ -export const featuresImpl = (insert) => (empty) => (adapter) => () => { +export const featuresImpl = (insert, empty, adapter) => { const iterator1 = adapter.features.entries(); let out = empty; for (const entry of iterator1) { @@ -6,11 +6,9 @@ export const featuresImpl = (insert) => (empty) => (adapter) => () => { } return out; }; -export const limitsImpl = (adapter) => () => adapter.limits; -export const isFallbackAdapterImpl = (adapter) => () => - adapter.isFallbackAdapter; -export const requestDeviceImpl = - (just) => (nothing) => (adapter) => (options) => () => - adapter.requestDevice(options).then((o) => (o ? just(o) : nothing)); -export const requestAdapterInfoImpl = (adapter) => (unmaskHints) => () => +export const limitsImpl = adapter => adapter.limits; +export const isFallbackAdapterImpl = adapter => adapter.isFallbackAdapter; +export const requestDeviceImpl = (just, nothing, adapter, options) => + adapter.requestDevice(options).then(o => (o ? just(o) : nothing)); +export const requestAdapterInfoImpl = (adapter, unmaskHints) => adapter.requestAdapterInfo(unmaskHints); diff --git a/src/Web/GPU/GPUAdapter.purs b/src/Web/GPU/GPUAdapter.purs index 3a470d0..74f2fc0 100644 --- a/src/Web/GPU/GPUAdapter.purs +++ b/src/Web/GPU/GPUAdapter.purs @@ -11,15 +11,15 @@ module Web.GPU.GPUAdapter , limits , requestAdapterInfo , requestDevice - ) - where + ) where import Data.Maybe (Maybe(..)) +import Effect.Uncurried(EffectFn1, runEffectFn1,EffectFn2, runEffectFn2,EffectFn3, runEffectFn3,EffectFn4, runEffectFn4) import Data.Set as Set import Effect (Effect) import Web.GPU.GPUDeviceDescriptor (GPUDeviceDescriptor) import Web.GPU.GPUFeatureName (GPUFeatureName) -import Web.GPU.GPUDevice(GPUDevice) +import Web.GPU.GPUDevice (GPUDevice) import Web.GPU.GPUSupportedLimits (GPUSupportedLimits) import Web.GPU.UnmaskHint (UnmaskHint) import Web.Promise (Promise) @@ -27,45 +27,30 @@ import Web.Promise (Promise) data GPUAdapter -- features -foreign import featuresImpl - :: (GPUFeatureName -> Set.Set GPUFeatureName -> Set.Set GPUFeatureName) - -> Set.Set GPUFeatureName - -> GPUAdapter - -> Effect (Set.Set GPUFeatureName) - +foreign import featuresImpl :: EffectFn3 (GPUFeatureName -> Set.Set GPUFeatureName -> Set.Set GPUFeatureName) (Set.Set GPUFeatureName) GPUAdapter (Set.Set GPUFeatureName) features :: GPUAdapter -> Effect (Set.Set GPUFeatureName) -features = featuresImpl Set.insert Set.empty - -foreign import limitsImpl :: GPUAdapter -> Effect { | GPUSupportedLimits } +features a = runEffectFn3 featuresImpl Set.insert Set.empty a +foreign import limitsImpl :: EffectFn1 GPUAdapter { | GPUSupportedLimits } limits :: GPUAdapter -> Effect { | GPUSupportedLimits } -limits = limitsImpl - -foreign import isFallbackAdapterImpl :: GPUAdapter -> Effect Boolean +limits a = runEffectFn1 limitsImpl a +foreign import isFallbackAdapterImpl :: EffectFn1 GPUAdapter Boolean isFallbackAdapter :: GPUAdapter -> Effect Boolean -isFallbackAdapter = isFallbackAdapterImpl +isFallbackAdapter a = runEffectFn1 isFallbackAdapterImpl a -- requestDevice -foreign import requestDeviceImpl - :: (GPUDevice -> Maybe GPUDevice) - -> Maybe GPUDevice - -> GPUAdapter - -> GPUDeviceDescriptor - -> Effect (Promise (Maybe GPUDevice)) - +foreign import requestDeviceImpl :: EffectFn4 (GPUDevice -> Maybe GPUDevice)( Maybe GPUDevice) GPUAdapter GPUDeviceDescriptor (Promise (Maybe GPUDevice)) requestDevice :: GPUAdapter -> GPUDeviceDescriptor -> Effect (Promise (Maybe GPUDevice)) -requestDevice = requestDeviceImpl Just Nothing +requestDevice a b= runEffectFn4 requestDeviceImpl Just Nothing a b -- requestAdapterInfo -foreign import requestAdapterInfoImpl - :: GPUAdapter -> Array (UnmaskHint) -> Effect (Promise GPUAdapterInfo) - +foreign import requestAdapterInfoImpl :: EffectFn2 GPUAdapter (Array UnmaskHint) (Promise GPUAdapterInfo) type GPUAdapterInfo = { vendor :: String , architecture :: String @@ -75,4 +60,4 @@ type GPUAdapterInfo = requestAdapterInfo :: GPUAdapter -> Array UnmaskHint -> Effect (Promise GPUAdapterInfo) -requestAdapterInfo = requestAdapterInfoImpl \ No newline at end of file +requestAdapterInfo a b = runEffectFn2 requestAdapterInfoImpl a b \ No newline at end of file diff --git a/src/Web/GPU/GPUBindGroup.purs b/src/Web/GPU/GPUBindGroup.purs index f973cec..dae074e 100644 --- a/src/Web/GPU/GPUBindGroup.purs +++ b/src/Web/GPU/GPUBindGroup.purs @@ -1,6 +1,5 @@ module Web.GPU.GPUBindGroup ( GPUBindGroup - ) - where + ) where data GPUBindGroup \ No newline at end of file diff --git a/src/Web/GPU/GPUBindGroupLayout.purs b/src/Web/GPU/GPUBindGroupLayout.purs index d2dd3d7..a5cdde9 100644 --- a/src/Web/GPU/GPUBindGroupLayout.purs +++ b/src/Web/GPU/GPUBindGroupLayout.purs @@ -1,6 +1,5 @@ module Web.GPU.GPUBindGroupLayout ( GPUBindGroupLayout - ) - where + ) where data GPUBindGroupLayout \ No newline at end of file diff --git a/src/Web/GPU/GPUBuffer.js b/src/Web/GPU/GPUBuffer.js index b19613e..00603a2 100644 --- a/src/Web/GPU/GPUBuffer.js +++ b/src/Web/GPU/GPUBuffer.js @@ -1,21 +1,19 @@ -export const sizeImpl = (buffer) => () => buffer.size; -export const usageImpl = (buffer) => () => buffer.usage; -export const mapStateImpl = (buffer) => () => buffer.mapState; -export const mapAsyncImpl = (buffer) => (mode) => () => buffer.mapAsync(mode); -export const mapAsyncWithOffsetImpl = (buffer) => (mode) => (offset) => () => +export const sizeImpl = buffer => buffer.size; +export const usageImpl = buffer => buffer.usage; +export const mapStateImpl = buffer => buffer.mapState; +export const mapAsyncImpl = (buffer, mode) => buffer.mapAsync(mode); +export const mapAsyncWithOffsetImpl = (buffer, mode, offset) => buffer.mapAsync(mode, offset); -export const mapAsyncWithSizeImpl = (buffer) => (mode) => (size) => () => +export const mapAsyncWithSizeImpl = (buffer, mode, size) => buffer.mapAsync(mode, undefined, size); -export const mapAsyncWithOffsetAndSizeImpl = - (buffer) => (mode) => (offset) => (size) => () => - buffer.mapAsync(mode, offset, size); -export const getMappedRangeImpl = (buffer) => () => buffer.getMappedRange(); -export const getMappedRangeWithOffsetImpl = (buffer) => (offset) => () => +export const mapAsyncWithOffsetAndSizeImpl = (buffer, mode, offset, size) => + buffer.mapAsync(mode, offset, size); +export const getMappedRangeImpl = buffer => buffer.getMappedRange(); +export const getMappedRangeWithOffsetImpl = (buffer, offset) => buffer.getMappedRange(offset); -export const getMappedRangeWithSizeImpl = (buffer) => (size) => () => +export const getMappedRangeWithSizeImpl = (buffer, size) => buffer.getMappedRange(undefined, size); -export const getMappedRangeWithOffsetAndSizeImpl = - (buffer) => (offset) => (size) => () => - buffer.getMappedRange(offset, size); -export const unmapImpl = (buffer) => () => buffer.unmap(); -export const destroyImpl = (buffer) => () => buffer.destroy(); +export const getMappedRangeWithOffsetAndSizeImpl = (buffer, offset, size) => + buffer.getMappedRange(offset, size); +export const unmapImpl = buffer => buffer.unmap(); +export const destroyImpl = buffer => buffer.destroy(); diff --git a/src/Web/GPU/GPUBuffer.purs b/src/Web/GPU/GPUBuffer.purs index d564917..7b5fa14 100644 --- a/src/Web/GPU/GPUBuffer.purs +++ b/src/Web/GPU/GPUBuffer.purs @@ -26,10 +26,10 @@ module Web.GPU.GPUBuffer , size , unmap , usage - ) - where + ) where import Prelude +import Effect.Uncurried(EffectFn1, runEffectFn1,EffectFn2, runEffectFn2,EffectFn3, runEffectFn3,EffectFn4, runEffectFn4) import Data.ArrayBuffer.Types (ArrayBuffer) import Effect (Effect) @@ -40,77 +40,59 @@ import Web.GPU.Internal.Types (GPUSize64) import Web.Promise (Promise) data GPUBuffer -foreign import sizeImpl :: GPUBuffer -> Effect GPUSize64 +foreign import sizeImpl :: EffectFn1 GPUBuffer GPUSize64 size :: GPUBuffer -> Effect GPUSize64 -size = sizeImpl - -foreign import usageImpl :: GPUBuffer -> Effect GPUBufferUsage +size a = runEffectFn1 sizeImpl a +foreign import usageImpl :: EffectFn1 GPUBuffer GPUBufferUsage usage :: GPUBuffer -> Effect GPUBufferUsage -usage = usageImpl - -foreign import mapStateImpl :: GPUBuffer -> Effect GPUBufferMapState +usage a = runEffectFn1 usageImpl a +foreign import mapStateImpl :: EffectFn1 GPUBuffer GPUBufferMapState mapState :: GPUBuffer -> Effect GPUBufferMapState -mapState = mapStateImpl - -foreign import mapAsyncImpl :: GPUBuffer -> GPUMapMode -> Effect (Promise Unit) +mapState a = runEffectFn1 mapStateImpl a +foreign import mapAsyncImpl :: EffectFn2 GPUBuffer GPUMapMode (Promise Unit) mapAsync :: GPUBuffer -> GPUMapMode -> Effect (Promise Unit) -mapAsync = mapAsyncImpl - -foreign import mapAsyncWithOffsetImpl - :: GPUBuffer -> GPUMapMode -> GPUSize64 -> Effect (Promise Unit) +mapAsync a b = runEffectFn2 mapAsyncImpl a b +foreign import mapAsyncWithOffsetImpl :: EffectFn3 GPUBuffer GPUMapMode GPUSize64 (Promise Unit) mapAsyncWithOffset :: GPUBuffer -> GPUMapMode -> GPUSize64 -> Effect (Promise Unit) -mapAsyncWithOffset = mapAsyncWithOffsetImpl - -foreign import mapAsyncWithSizeImpl - :: GPUBuffer -> GPUMapMode -> GPUSize64 -> Effect (Promise Unit) +mapAsyncWithOffset a b c = runEffectFn3 mapAsyncWithOffsetImpl a b c +foreign import mapAsyncWithSizeImpl :: EffectFn3 GPUBuffer GPUMapMode GPUSize64 (Promise Unit) mapAsyncWithSize :: GPUBuffer -> GPUMapMode -> GPUSize64 -> Effect (Promise Unit) -mapAsyncWithSize = mapAsyncWithSizeImpl - -foreign import mapAsyncWithOffsetAndSizeImpl - :: GPUBuffer -> GPUMapMode -> GPUSize64 -> GPUSize64 -> Effect (Promise Unit) +mapAsyncWithSize a b c = runEffectFn3 mapAsyncWithSizeImpl a b c +foreign import mapAsyncWithOffsetAndSizeImpl :: EffectFn4 GPUBuffer GPUMapMode GPUSize64 GPUSize64 (Promise Unit) mapAsyncWithOffsetAndSize :: GPUBuffer -> GPUMapMode -> GPUSize64 -> GPUSize64 -> Effect (Promise Unit) -mapAsyncWithOffsetAndSize = mapAsyncWithOffsetAndSizeImpl - -foreign import getMappedRangeImpl :: GPUBuffer -> Effect ArrayBuffer +mapAsyncWithOffsetAndSize a b c d = runEffectFn4 mapAsyncWithOffsetAndSizeImpl a b c d +foreign import getMappedRangeImpl :: EffectFn1 GPUBuffer ArrayBuffer getMappedRange :: GPUBuffer -> Effect ArrayBuffer -getMappedRange = getMappedRangeImpl - -foreign import getMappedRangeWithOffsetImpl - :: GPUBuffer -> GPUSize64 -> Effect ArrayBuffer +getMappedRange a = runEffectFn1 getMappedRangeImpl a +foreign import getMappedRangeWithOffsetImpl :: EffectFn2 GPUBuffer GPUSize64 ArrayBuffer getMappedRangeWithOffset :: GPUBuffer -> GPUSize64 -> Effect ArrayBuffer -getMappedRangeWithOffset = getMappedRangeWithOffsetImpl - -foreign import getMappedRangeWithSizeImpl - :: GPUBuffer -> GPUSize64 -> Effect ArrayBuffer +getMappedRangeWithOffset a b = runEffectFn2 getMappedRangeWithOffsetImpl a b +foreign import getMappedRangeWithSizeImpl :: EffectFn2 GPUBuffer GPUSize64 ArrayBuffer getMappedRangeWithSize :: GPUBuffer -> GPUSize64 -> Effect ArrayBuffer -getMappedRangeWithSize = getMappedRangeWithSizeImpl - -foreign import getMappedRangeWithOffsetAndSizeImpl - :: GPUBuffer -> GPUSize64 -> GPUSize64 -> Effect ArrayBuffer +getMappedRangeWithSize a b = runEffectFn2 getMappedRangeWithSizeImpl a b +foreign import getMappedRangeWithOffsetAndSizeImpl :: EffectFn3 GPUBuffer GPUSize64 GPUSize64 ArrayBuffer getMappedRangeWithOffsetAndSize :: GPUBuffer -> GPUSize64 -> GPUSize64 -> Effect ArrayBuffer -getMappedRangeWithOffsetAndSize = getMappedRangeWithOffsetAndSizeImpl - -foreign import unmapImpl :: GPUBuffer -> Effect Unit +getMappedRangeWithOffsetAndSize a b c = runEffectFn3 getMappedRangeWithOffsetAndSizeImpl a b c +foreign import unmapImpl :: EffectFn1 GPUBuffer Unit unmap :: GPUBuffer -> Effect Unit -unmap = unmapImpl - -foreign import destroyImpl :: GPUBuffer -> Effect Unit +unmap a = runEffectFn1 unmapImpl a +foreign import destroyImpl :: EffectFn1 GPUBuffer Unit destroy :: GPUBuffer -> Effect Unit -destroy = destroyImpl \ No newline at end of file +destroy a = runEffectFn1 destroyImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUCanvasConfiguration.purs b/src/Web/GPU/GPUCanvasConfiguration.purs index 1c5b9dc..4dd617a 100644 --- a/src/Web/GPU/GPUCanvasConfiguration.purs +++ b/src/Web/GPU/GPUCanvasConfiguration.purs @@ -7,6 +7,7 @@ import Web.GPU.GPUTextureUsage (GPUTextureUsageFlags) import Web.GPU.Internal.RequiredAndOptional (RequiredAndOptional) import Web.GPU.PredefinedColorSpace (PredefinedColorSpace) import Web.GPU.GPUDevice (GPUDevice) + newtype GPUCanvasConfiguration = GPUCanvasConfiguration ( RequiredAndOptional ( device :: GPUDevice diff --git a/src/Web/GPU/GPUCanvasContext.js b/src/Web/GPU/GPUCanvasContext.js index d600cbd..add3567 100644 --- a/src/Web/GPU/GPUCanvasContext.js +++ b/src/Web/GPU/GPUCanvasContext.js @@ -1,6 +1,5 @@ -export const canvasImpl = (context) => () => context.canvas; -export const configureImpl = (context) => (descriptor) => () => +export const canvasImpl = context => context.canvas; +export const configureImpl = (context, descriptor) => context.configure(descriptor); -export const unconfigureImpl = (context) => () => context.unconfigure(); -export const getCurrentTextureImpl = (context) => () => - context.getCurrentTexture(); +export const unconfigureImpl = context => context.unconfigure(); +export const getCurrentTextureImpl = context => context.getCurrentTexture(); diff --git a/src/Web/GPU/GPUCanvasContext.purs b/src/Web/GPU/GPUCanvasContext.purs index 4081331..3520a81 100644 --- a/src/Web/GPU/GPUCanvasContext.purs +++ b/src/Web/GPU/GPUCanvasContext.purs @@ -11,6 +11,7 @@ module Web.GPU.GPUCanvasContext ) where import Prelude +import Effect.Uncurried(EffectFn1, runEffectFn1,EffectFn2, runEffectFn2) import Effect (Effect) import Web.GPU.GPUCanvasConfiguration (GPUCanvasConfiguration) @@ -19,23 +20,18 @@ import Web.HTML (HTMLCanvasElement) data GPUCanvasContext -foreign import canvasImpl :: GPUCanvasContext -> Effect HTMLCanvasElement - +foreign import canvasImpl :: EffectFn1 GPUCanvasContext HTMLCanvasElement canvas :: GPUCanvasContext -> Effect HTMLCanvasElement -canvas = canvasImpl - -foreign import configureImpl - :: GPUCanvasContext -> GPUCanvasConfiguration -> Effect Unit +canvas a = runEffectFn1 canvasImpl a +foreign import configureImpl :: EffectFn2 GPUCanvasContext GPUCanvasConfiguration Unit configure :: GPUCanvasContext -> GPUCanvasConfiguration -> Effect Unit -configure = configureImpl - -foreign import unconfigureImpl :: GPUCanvasContext -> Effect Unit +configure a b = runEffectFn2 configureImpl a b +foreign import unconfigureImpl :: EffectFn1 GPUCanvasContext Unit unconfigure :: GPUCanvasContext -> Effect Unit -unconfigure = unconfigureImpl - -foreign import getCurrentTextureImpl :: GPUCanvasContext -> Effect GPUTexture +unconfigure a = runEffectFn1 unconfigureImpl a +foreign import getCurrentTextureImpl :: EffectFn1 GPUCanvasContext GPUTexture getCurrentTexture :: GPUCanvasContext -> Effect GPUTexture -getCurrentTexture = getCurrentTextureImpl \ No newline at end of file +getCurrentTexture a = runEffectFn1 getCurrentTextureImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUColor.purs b/src/Web/GPU/GPUColor.purs index f786f40..80b1262 100644 --- a/src/Web/GPU/GPUColor.purs +++ b/src/Web/GPU/GPUColor.purs @@ -1,12 +1,14 @@ -- @inline export gpuColorRGBA arity=4 module Web.GPU.GPUColor - ( GPUColor,gpuColorDict + ( GPUColor + , gpuColorDict , gpuColorRGBA ) where import Unsafe.Coerce (unsafeCoerce) data GPUColor + gpuColorRGBA :: Number -> Number -> Number -> Number -> GPUColor gpuColorRGBA r g b a = unsafeCoerce [ r, g, b, a ] diff --git a/src/Web/GPU/GPUCommandEncoder.js b/src/Web/GPU/GPUCommandEncoder.js index 436dfbd..e1546cc 100644 --- a/src/Web/GPU/GPUCommandEncoder.js +++ b/src/Web/GPU/GPUCommandEncoder.js @@ -1,51 +1,73 @@ -export const beginRenderPassImpl = (commandEncoder) => (descriptor) => +export const beginRenderPassImpl = (commandEncoder, descriptor) => commandEncoder.beginRenderPass(descriptor); -export const beginComputePassImpl = (commandEncoder) => (descriptor) => +export const beginComputePassImpl = (commandEncoder, descriptor) => commandEncoder.beginComputePass(descriptor); -export const copyBufferToBufferImpl = - (commandEncoder) => - (source, sourceOffset, destination, destinationOffset, size) => - commandEncoder.copyBufferToBuffer( - source, - sourceOffset, - destination, - destinationOffset, - size - ); -export const copyBufferToTextureImpl = - (commandEncoder) => (source, destination, copySize) => - commandEncoder.copyBufferToTexture(source, destination, copySize); -export const copyTextureToBufferImpl = - (commandEncoder) => (source, destination, copySize) => - commandEncoder.copyTextureToBuffer(source, destination, copySize); -export const copyTextureToTextureImpl = - (commandEncoder) => (source, destination, copySize) => - commandEncoder.copyTextureToTexture(source, destination, copySize); -export const clearBufferImpl = (commandEncoder) => (buffer) => +export const copyBufferToBufferImpl = ( + commandEncoder, + source, + sourceOffset, + destination, + destinationOffset, + size +) => + commandEncoder.copyBufferToBuffer( + source, + sourceOffset, + destination, + destinationOffset, + size + ); +export const copyBufferToTextureImpl = ( + commandEncoder, + source, + destination, + copySize +) => commandEncoder.copyBufferToTexture(source, destination, copySize); +export const copyTextureToBufferImpl = ( + commandEncoder, + source, + destination, + copySize +) => commandEncoder.copyTextureToBuffer(source, destination, copySize); +export const copyTextureToTextureImpl = ( + commandEncoder, + source, + destination, + copySize +) => commandEncoder.copyTextureToTexture(source, destination, copySize); +export const clearBufferImpl = (commandEncoder, buffer) => commandEncoder.clearBuffer(buffer); -export const clearBufferWithOffsetImpl = (commandEncoder) => (buffer, offset) => +export const clearBufferWithOffsetImpl = (commandEncoder, buffer, offset) => commandEncoder.clearBuffer(buffer, offset); -export const clearBufferWithSizeImpl = (commandEncoder) => (buffer, size) => +export const clearBufferWithSizeImpl = (commandEncoder, buffer, size) => commandEncoder.clearBuffer(buffer, undefined, size); -export const clearBufferWithOffsetAndSizeImpl = - (commandEncoder) => (buffer, offset, size) => - commandEncoder.clearBuffer(buffer, offset, size); -export const writeTimestampImpl = (commandEncoder) => (querySet, queryIndex) => +export const clearBufferWithOffsetAndSizeImpl = ( + commandEncoder, + buffer, + offset, + size +) => commandEncoder.clearBuffer(buffer, offset, size); +export const writeTimestampImpl = (commandEncoder, querySet, queryIndex) => commandEncoder.writeTimestamp(querySet, queryIndex); -export const resolveQuerySetImpl = - (commandEncoder) => - (querySet, firstQuery, queryCount, destination, destinationOffset) => - commandEncoder.resolveQuerySet( - querySet, - firstQuery, - queryCount, - destination, - destinationOffset - ); -export const finishImpl = (commandEncoder) => () => commandEncoder.finish(); -export const pushDebugGroupImpl = (commandEncoder) => (groupLabel) => +export const resolveQuerySetImpl = ( + commandEncoder, + querySet, + firstQuery, + queryCount, + destination, + destinationOffset +) => + commandEncoder.resolveQuerySet( + querySet, + firstQuery, + queryCount, + destination, + destinationOffset + ); +export const finishImpl = commandEncoder => commandEncoder.finish(); +export const pushDebugGroupImpl = (commandEncoder, groupLabel) => commandEncoder.pushDebugGroup(groupLabel); -export const popDebugGroupImpl = (commandEncoder) => () => +export const popDebugGroupImpl = commandEncoder => commandEncoder.popDebugGroup(); -export const insertDebugMarkerImpl = (commandEncoder) => (markerLabel) => +export const insertDebugMarkerImpl = (commandEncoder, markerLabel) => commandEncoder.insertDebugMarker(markerLabel); diff --git a/src/Web/GPU/GPUCommandEncoder.purs b/src/Web/GPU/GPUCommandEncoder.purs index 94bca50..8c2416d 100644 --- a/src/Web/GPU/GPUCommandEncoder.purs +++ b/src/Web/GPU/GPUCommandEncoder.purs @@ -34,9 +34,8 @@ module Web.GPU.GPUCommandEncoder ) where import Prelude - import Effect (Effect) -import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn3, EffectFn5, runEffectFn1, runEffectFn2, runEffectFn3, runEffectFn5) +import Effect.Uncurried (EffectFn1, runEffectFn1, EffectFn2, EffectFn3, EffectFn4, EffectFn6, runEffectFn2, runEffectFn3, runEffectFn4, runEffectFn6) import Web.GPU.GPUBuffer (GPUBuffer) import Web.GPU.GPUComputePassDescriptor (GPUComputePassDescriptor) import Web.GPU.GPUComputePassEncoder (GPUComputePassEncoder) @@ -52,26 +51,25 @@ import Web.GPU.Internal.Types (GPUSize32, GPUSize64) data GPUCommandEncoder foreign import beginRenderPassImpl - :: GPUCommandEncoder - -> EffectFn1 GPURenderPassDescriptor GPURenderPassEncoder + :: EffectFn2 GPUCommandEncoder GPURenderPassDescriptor GPURenderPassEncoder beginRenderPass :: GPUCommandEncoder -> GPURenderPassDescriptor -> Effect GPURenderPassEncoder -beginRenderPass a b = runEffectFn1 (beginRenderPassImpl a) b +beginRenderPass a b = runEffectFn2 beginRenderPassImpl a b foreign import beginComputePassImpl - :: GPUCommandEncoder - -> EffectFn1 GPUComputePassDescriptor GPUComputePassEncoder + :: EffectFn2 GPUCommandEncoder + GPUComputePassDescriptor GPUComputePassEncoder beginComputePass :: GPUCommandEncoder -> GPUComputePassDescriptor -> Effect GPUComputePassEncoder -beginComputePass a b = runEffectFn1 (beginComputePassImpl a) b +beginComputePass a b = runEffectFn2 beginComputePassImpl a b foreign import copyBufferToBufferImpl - :: GPUCommandEncoder - -> EffectFn5 GPUBuffer GPUSize64 GPUBuffer GPUSize64 GPUSize64 Unit + :: EffectFn6 GPUCommandEncoder + GPUBuffer GPUSize64 GPUBuffer GPUSize64 GPUSize64 Unit copyBufferToBuffer :: GPUCommandEncoder @@ -81,12 +79,12 @@ copyBufferToBuffer -> Int -> Int -> Effect Unit -copyBufferToBuffer a b c d e f = runEffectFn5 (copyBufferToBufferImpl a) b c d e +copyBufferToBuffer a b c d e f = runEffectFn6 copyBufferToBufferImpl a b c d e f foreign import copyBufferToTextureImpl - :: GPUCommandEncoder - -> EffectFn3 GPUImageCopyBuffer GPUImageCopyTexture GPUExtent3D Unit + :: EffectFn4 GPUCommandEncoder + GPUImageCopyBuffer GPUImageCopyTexture GPUExtent3D Unit copyBufferToTexture ∷ GPUCommandEncoder @@ -94,11 +92,11 @@ copyBufferToTexture → GPUImageCopyTexture → GPUExtent3D → Effect Unit -copyBufferToTexture a b c d = runEffectFn3 (copyBufferToTextureImpl a) b c d +copyBufferToTexture a b c d = runEffectFn4 copyBufferToTextureImpl a b c d foreign import copyTextureToBufferImpl - :: GPUCommandEncoder - -> EffectFn3 GPUImageCopyTexture GPUImageCopyBuffer GPUExtent3D Unit + :: EffectFn4 GPUCommandEncoder + GPUImageCopyTexture GPUImageCopyBuffer GPUExtent3D Unit copyTextureToBuffer :: GPUCommandEncoder @@ -106,11 +104,11 @@ copyTextureToBuffer -> GPUImageCopyBuffer -> GPUExtent3D -> Effect Unit -copyTextureToBuffer a b c d = runEffectFn3 (copyTextureToBufferImpl a) b c d +copyTextureToBuffer a b c d = runEffectFn4 copyTextureToBufferImpl a b c d foreign import copyTextureToTextureImpl - :: GPUCommandEncoder - -> EffectFn3 GPUImageCopyTexture GPUImageCopyTexture GPUExtent3D Unit + :: EffectFn4 GPUCommandEncoder + GPUImageCopyTexture GPUImageCopyTexture GPUExtent3D Unit copyTextureToTexture :: GPUCommandEncoder @@ -118,46 +116,51 @@ copyTextureToTexture -> GPUImageCopyTexture -> GPUExtent3D -> Effect Unit -copyTextureToTexture a b c d = runEffectFn3 (copyTextureToTextureImpl a) b c d +copyTextureToTexture a b c d = runEffectFn4 copyTextureToTextureImpl a b c d foreign import clearBufferImpl - :: GPUCommandEncoder - -> EffectFn1 GPUBuffer Unit + :: EffectFn2 GPUCommandEncoder + GPUBuffer Unit clearBuffer :: GPUCommandEncoder -> GPUBuffer -> Effect Unit -clearBuffer a b = runEffectFn1 (clearBufferImpl a) b +clearBuffer a b = runEffectFn2 clearBufferImpl a b foreign import clearBufferWithOffsetImpl - :: GPUCommandEncoder - -> EffectFn2 GPUBuffer GPUSize64 Unit + :: EffectFn3 GPUCommandEncoder + GPUBuffer GPUSize64 Unit clearBufferWithOffset :: GPUCommandEncoder -> GPUBuffer -> Int -> Effect Unit -clearBufferWithOffset a b c = runEffectFn2 (clearBufferWithOffsetImpl a) b c +clearBufferWithOffset a b c = runEffectFn3 clearBufferWithOffsetImpl a b c foreign import clearBufferWithSizeImpl - :: GPUCommandEncoder - ->EffectFn2 GPUBuffer GPUSize64 Unit + :: EffectFn3 GPUCommandEncoder + GPUBuffer GPUSize64 Unit clearBufferWithSize :: GPUCommandEncoder -> GPUBuffer -> Int -> Effect Unit -clearBufferWithSize a b c = runEffectFn2 (clearBufferWithSizeImpl a) b c +clearBufferWithSize a b c = runEffectFn3 clearBufferWithSizeImpl a b c foreign import clearBufferWithOffsetAndSizeImpl - :: GPUCommandEncoder - -> EffectFn3 GPUBuffer GPUSize64 GPUSize64 Unit + :: EffectFn4 GPUCommandEncoder + GPUBuffer GPUSize64 GPUSize64 Unit clearBufferWithOffsetAndSize :: GPUCommandEncoder -> GPUBuffer -> Int -> Int -> Effect Unit -clearBufferWithOffsetAndSize a b c d = runEffectFn3 (clearBufferWithOffsetAndSizeImpl a) b c d +clearBufferWithOffsetAndSize a b c d = runEffectFn4 + clearBufferWithOffsetAndSizeImpl + a + b + c + d foreign import writeTimestampImpl - :: GPUCommandEncoder -> EffectFn2 GPUQuerySet GPUSize32 Unit + :: EffectFn3 GPUCommandEncoder GPUQuerySet GPUSize32 Unit writeTimestamp :: GPUCommandEncoder -> GPUQuerySet -> Int -> Effect Unit -writeTimestamp a b c = runEffectFn2 (writeTimestampImpl a) b c +writeTimestamp a b c = runEffectFn3 writeTimestampImpl a b c foreign import resolveQuerySetImpl - :: GPUCommandEncoder - -> EffectFn5 GPUQuerySet GPUSize32 GPUSize32 GPUBuffer GPUSize64 Unit + :: EffectFn6 GPUCommandEncoder + GPUQuerySet GPUSize32 GPUSize32 GPUBuffer GPUSize64 Unit resolveQuerySet :: GPUCommandEncoder @@ -167,25 +170,23 @@ resolveQuerySet -> GPUBuffer -> Int -> Effect Unit -resolveQuerySet a b c d e f = runEffectFn5 (resolveQuerySetImpl a) b c d e f - -foreign import finishImpl :: GPUCommandEncoder -> Effect GPUCommandBuffer +resolveQuerySet a b c d e f = runEffectFn6 resolveQuerySetImpl a b c d e f +foreign import finishImpl :: EffectFn1 GPUCommandEncoder GPUCommandBuffer finish :: GPUCommandEncoder -> Effect GPUCommandBuffer -finish = finishImpl +finish a = runEffectFn1 finishImpl a -foreign import pushDebugGroupImpl :: GPUCommandEncoder -> EffectFn1 String Unit +foreign import pushDebugGroupImpl :: EffectFn2 GPUCommandEncoder String Unit pushDebugGroup :: GPUCommandEncoder -> String -> Effect Unit -pushDebugGroup a b = runEffectFn1 (pushDebugGroupImpl a) b - -foreign import popDebugGroupImpl :: GPUCommandEncoder -> Effect Unit +pushDebugGroup a b = runEffectFn2 pushDebugGroupImpl a b +foreign import popDebugGroupImpl :: EffectFn1 GPUCommandEncoder Unit popDebugGroup :: GPUCommandEncoder -> Effect Unit -popDebugGroup = popDebugGroupImpl +popDebugGroup a = runEffectFn1 popDebugGroupImpl a foreign import insertDebugMarkerImpl - :: GPUCommandEncoder -> EffectFn1 String Unit + :: EffectFn2 GPUCommandEncoder String Unit insertDebugMarker :: GPUCommandEncoder -> String -> Effect Unit -insertDebugMarker a b = runEffectFn1 (insertDebugMarkerImpl a) b \ No newline at end of file +insertDebugMarker a b = runEffectFn2 insertDebugMarkerImpl a b \ No newline at end of file diff --git a/src/Web/GPU/GPUComputePassEncoder.js b/src/Web/GPU/GPUComputePassEncoder.js index 55baa2a..d9a07e1 100644 --- a/src/Web/GPU/GPUComputePassEncoder.js +++ b/src/Web/GPU/GPUComputePassEncoder.js @@ -1,38 +1,46 @@ -export const setPipelineImpl = (computePassEncoder) => (pipeline) => +export const setPipelineImpl = (computePassEncoder, pipeline) => computePassEncoder.setPipeline(pipeline); -export const dispatchWorkgroupsImpl = (computePassEncoder) => (size) => +export const dispatchWorkgroupsImpl = (computePassEncoder, size) => computePassEncoder.dispatchWorkgroups(size); -export const dispatchWorkgroupsXImpl = (computePassEncoder) => (size) => +export const dispatchWorkgroupsXImpl = (computePassEncoder, size) => computePassEncoder.dispatchWorkgroups(size); -export const dispatchWorkgroupsXYImpl = (computePassEncoder) => (x, y) => +export const dispatchWorkgroupsXYImpl = (computePassEncoder, x, y) => computePassEncoder.dispatchWorkgroups(x, y); -export const dispatchWorkgroupsXYZImpl = (computePassEncoder) => (x, y, z) => +export const dispatchWorkgroupsXYZImpl = (computePassEncoder, x, y, z) => computePassEncoder.dispatchWorkgroups(x, y, z); -export const dispatchWorkgroupsIndirectImpl = - (computePassEncoder) => (indirectBuffer, indirectOffset) => - computePassEncoder.dispatchWorkgroupsIndirect( - indirectBuffer, - indirectOffset - ); -export const endImpl = (computePassEncoder) => () => computePassEncoder.end(); -export const setBindGroupImpl = (computePassEncoder) => (index, bindGroup) => +export const dispatchWorkgroupsIndirectImpl = ( + computePassEncoder, + indirectBuffer, + indirectOffset +) => + computePassEncoder.dispatchWorkgroupsIndirect(indirectBuffer, indirectOffset); +export const endImpl = computePassEncoder => computePassEncoder.end(); +export const setBindGroupImpl = (computePassEncoder, index, bindGroup) => computePassEncoder.setBindGroup(index, bindGroup); -export const setBindGroupWithDynamicOffsetsImpl = - (computePassEncoder) => (index, bindGroup, dynamicOffsets) => - computePassEncoder.setBindGroup(index, bindGroup, dynamicOffsets); -export const setBindGroupWithDyanmicOffsetBoundsImpl = - (computePassEncoder) => - (index, bindGroup, data, dynamicOffsetsDataStart, dynamicOffsetsDataLength) => - computePassEncoder.setBindGroup( - index, - bindGroup, - data, - dynamicOffsetsDataStart, - dynamicOffsetsDataLength - ); -export const pushDebugGroupImpl = (computePassEncoder) => (groupLabel) => +export const setBindGroupWithDynamicOffsetsImpl = ( + computePassEncoder, + index, + bindGroup, + dynamicOffsets +) => computePassEncoder.setBindGroup(index, bindGroup, dynamicOffsets); +export const setBindGroupWithDyanmicOffsetBoundsImpl = ( + computePassEncoder, + index, + bindGroup, + data, + dynamicOffsetsDataStart, + dynamicOffsetsDataLength +) => + computePassEncoder.setBindGroup( + index, + bindGroup, + data, + dynamicOffsetsDataStart, + dynamicOffsetsDataLength + ); +export const pushDebugGroupImpl = (computePassEncoder, groupLabel) => computePassEncoder.pushDebugGroup(groupLabel); -export const popDebugGroupImpl = (computePassEncoder) => () => +export const popDebugGroupImpl = computePassEncoder => computePassEncoder.popDebugGroup(); -export const insertDebugMarkerImpl = (computePassEncoder) => (markerLabel) => +export const insertDebugMarkerImpl = (computePassEncoder, markerLabel) => computePassEncoder.insertDebugMarker(markerLabel); diff --git a/src/Web/GPU/GPUComputePassEncoder.purs b/src/Web/GPU/GPUComputePassEncoder.purs index e8e7f0e..32a830b 100644 --- a/src/Web/GPU/GPUComputePassEncoder.purs +++ b/src/Web/GPU/GPUComputePassEncoder.purs @@ -23,14 +23,12 @@ module Web.GPU.GPUComputePassEncoder , setBindGroupWithDyanmicOffsetBounds , setBindGroupWithDynamicOffsets , setPipeline - ) - where + ) where import Prelude - import Data.ArrayBuffer.Types (Uint32Array) import Effect (Effect) -import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn3, EffectFn5, runEffectFn1, runEffectFn2, runEffectFn3, runEffectFn5) +import Effect.Uncurried (EffectFn1, runEffectFn1, EffectFn2, EffectFn3, EffectFn4, EffectFn6, runEffectFn2, runEffectFn3, runEffectFn4, runEffectFn6) import Web.GPU.GPUBindGroup (GPUBindGroup) import Web.GPU.GPUBuffer (GPUBuffer) import Web.GPU.GPUComputePipeline (GPUComputePipeline) @@ -39,65 +37,73 @@ import Web.GPU.Internal.Types (GPUIndex32, GPUSize32, GPUSize64, GPUBufferDynami data GPUComputePassEncoder foreign import setPipelineImpl - :: GPUComputePassEncoder -> EffectFn1 GPUComputePipeline Unit + :: EffectFn2 GPUComputePassEncoder GPUComputePipeline Unit setPipeline ∷ GPUComputePassEncoder → GPUComputePipeline → Effect Unit -setPipeline a b = runEffectFn1 (setPipelineImpl a) b +setPipeline a b = runEffectFn2 setPipelineImpl a b foreign import dispatchWorkgroupsImpl - :: GPUComputePassEncoder -> EffectFn1 GPUSize32 Unit + ::EffectFn2 GPUComputePassEncoder GPUSize32 Unit dispatchWorkgroups ∷ GPUComputePassEncoder → Int → Effect Unit -dispatchWorkgroups a b = runEffectFn1 (dispatchWorkgroupsImpl a) b +dispatchWorkgroups a b = runEffectFn2 dispatchWorkgroupsImpl a b foreign import dispatchWorkgroupsXImpl - :: GPUComputePassEncoder -> EffectFn1 GPUSize32 Unit + :: EffectFn2 GPUComputePassEncoder GPUSize32 Unit dispatchWorkgroupsX ∷ GPUComputePassEncoder → Int → Effect Unit -dispatchWorkgroupsX a b = runEffectFn1 (dispatchWorkgroupsXImpl a) b +dispatchWorkgroupsX a b = runEffectFn2 dispatchWorkgroupsXImpl a b foreign import dispatchWorkgroupsXYImpl - :: GPUComputePassEncoder -> EffectFn2 GPUSize32 GPUSize32 Unit + :: EffectFn3 GPUComputePassEncoder GPUSize32 GPUSize32 Unit dispatchWorkgroupsXY :: GPUComputePassEncoder -> Int -> Int -> Effect Unit -dispatchWorkgroupsXY a b c = runEffectFn2 (dispatchWorkgroupsXYImpl a) b c +dispatchWorkgroupsXY a b c = runEffectFn3 dispatchWorkgroupsXYImpl a b c foreign import dispatchWorkgroupsXYZImpl - :: GPUComputePassEncoder -> EffectFn3 GPUSize32 GPUSize32 GPUSize32 Unit + :: EffectFn4 GPUComputePassEncoder GPUSize32 GPUSize32 GPUSize32 Unit dispatchWorkgroupsXYZ :: GPUComputePassEncoder -> Int -> Int -> Int -> Effect Unit -dispatchWorkgroupsXYZ a b c d = runEffectFn3 (dispatchWorkgroupsXYZImpl a) b c d +dispatchWorkgroupsXYZ a b c d = runEffectFn4 dispatchWorkgroupsXYZImpl a b c d foreign import dispatchWorkgroupsIndirectImpl - :: GPUComputePassEncoder -> EffectFn2 GPUBuffer GPUSize64 Unit + :: EffectFn3 GPUComputePassEncoder GPUBuffer GPUSize64 Unit dispatchWorkgroupsIndirect :: GPUComputePassEncoder -> GPUBuffer -> Int -> Effect Unit -dispatchWorkgroupsIndirect a b c = runEffectFn2 (dispatchWorkgroupsIndirectImpl a) b c - -foreign import endImpl :: GPUComputePassEncoder -> Effect Unit +dispatchWorkgroupsIndirect a b c = runEffectFn3 + dispatchWorkgroupsIndirectImpl + a + b + c +foreign import endImpl :: EffectFn1 GPUComputePassEncoder Unit end :: GPUComputePassEncoder -> Effect Unit -end = endImpl +end a = runEffectFn1 endImpl a foreign import setBindGroupImpl - :: GPUComputePassEncoder -> EffectFn2 GPUIndex32 GPUBindGroup Unit + :: EffectFn3 GPUComputePassEncoder GPUIndex32 GPUBindGroup Unit setBindGroup :: GPUComputePassEncoder -> Int -> GPUBindGroup -> Effect Unit -setBindGroup a b c = runEffectFn2 (setBindGroupImpl a) b c +setBindGroup a b c = runEffectFn3 setBindGroupImpl a b c foreign import setBindGroupWithDynamicOffsetsImpl - :: GPUComputePassEncoder - -> EffectFn3 GPUIndex32 GPUBindGroup (Array GPUBufferDynamicOffset) Unit + :: EffectFn4 GPUComputePassEncoder + GPUIndex32 GPUBindGroup (Array GPUBufferDynamicOffset) Unit setBindGroupWithDynamicOffsets :: GPUComputePassEncoder -> Int -> GPUBindGroup -> Array Int -> Effect Unit -setBindGroupWithDynamicOffsets a b c d = runEffectFn3 (setBindGroupWithDynamicOffsetsImpl a) b c d +setBindGroupWithDynamicOffsets a b c d = runEffectFn4 + setBindGroupWithDynamicOffsetsImpl + a + b + c + d foreign import setBindGroupWithDyanmicOffsetBoundsImpl - :: GPUComputePassEncoder - -> EffectFn5 GPUIndex32 GPUBindGroup Uint32Array GPUSize64 GPUSize32 Unit + :: EffectFn6 GPUComputePassEncoder + GPUIndex32 GPUBindGroup Uint32Array GPUSize64 GPUSize32 Unit setBindGroupWithDyanmicOffsetBounds :: GPUComputePassEncoder @@ -107,21 +113,27 @@ setBindGroupWithDyanmicOffsetBounds -> Int -> Int -> Effect Unit -setBindGroupWithDyanmicOffsetBounds a b c d e f = runEffectFn5 (setBindGroupWithDyanmicOffsetBoundsImpl a) b c d e f +setBindGroupWithDyanmicOffsetBounds a b c d e f = runEffectFn6 + setBindGroupWithDyanmicOffsetBoundsImpl + a + b + c + d + e + f foreign import pushDebugGroupImpl - :: GPUComputePassEncoder -> EffectFn1 String Unit + :: EffectFn2 GPUComputePassEncoder String Unit pushDebugGroup :: GPUComputePassEncoder -> String -> Effect Unit -pushDebugGroup a b = runEffectFn1 (pushDebugGroupImpl a) b - -foreign import popDebugGroupImpl :: GPUComputePassEncoder -> Effect Unit +pushDebugGroup a b = runEffectFn2 pushDebugGroupImpl a b +foreign import popDebugGroupImpl :: EffectFn1 GPUComputePassEncoder Unit popDebugGroup :: GPUComputePassEncoder -> Effect Unit -popDebugGroup = popDebugGroupImpl +popDebugGroup a = runEffectFn1 popDebugGroupImpl a foreign import insertDebugMarkerImpl - :: GPUComputePassEncoder -> EffectFn1 String Unit + :: EffectFn2 GPUComputePassEncoder String Unit insertDebugMarker :: GPUComputePassEncoder -> String -> Effect Unit -insertDebugMarker a b = runEffectFn1 (insertDebugMarkerImpl a) b \ No newline at end of file +insertDebugMarker a b = runEffectFn2 insertDebugMarkerImpl a b \ No newline at end of file diff --git a/src/Web/GPU/GPUComputePipeline.purs b/src/Web/GPU/GPUComputePipeline.purs index 1cf0534..1292679 100644 --- a/src/Web/GPU/GPUComputePipeline.purs +++ b/src/Web/GPU/GPUComputePipeline.purs @@ -1,6 +1,5 @@ module Web.GPU.GPUComputePipeline ( GPUComputePipeline - ) - where + ) where data GPUComputePipeline \ No newline at end of file diff --git a/src/Web/GPU/GPUDevice.js b/src/Web/GPU/GPUDevice.js index 6c083c5..da60331 100644 --- a/src/Web/GPU/GPUDevice.js +++ b/src/Web/GPU/GPUDevice.js @@ -1,4 +1,4 @@ -export const featuresImpl = (insert) => (empty) => (adapter) => () => { +export const featuresImpl = (insert, empty, adapter) => { const iterator1 = adapter.features.entries(); let out = empty; for (const entry of iterator1) { @@ -6,52 +6,52 @@ export const featuresImpl = (insert) => (empty) => (adapter) => () => { } return out; }; -export const limitsImpl = (adapter) => () => adapter.limits; -export const queueImpl = (device) => () => device.queue; -export const destroyImpl = (device) => () => device.destroy(); -export const createBufferImpl = (device) => (descriptor) => () => +export const limitsImpl = adapter => adapter.limits; +export const queueImpl = device => device.queue; +export const destroyImpl = device => device.destroy(); +export const createBufferImpl = (device, descriptor) => device.createBuffer(descriptor); -export const createTextureImpl = (device) => (descriptor) => () => +export const createTextureImpl = (device, descriptor) => device.createTexture(descriptor); -export const createSamplerImpl = (device) => (descriptor) => () => +export const createSamplerImpl = (device, descriptor) => device.createSampler(descriptor); -export const importExternalTextureImpl = (device) => (descriptor) => () => +export const importExternalTextureImpl = (device, descriptor) => device.importExternalTexture(descriptor); -export const bindGroupLayoutEntryForBufferImpl = (options) => (buffer) => ({ +export const bindGroupLayoutEntryForBufferImpl = options => buffer => ({ buffer, ...options, }); -export const bindGroupLayoutEntryForSamplerImpl = (options) => (sampler) => ({ +export const bindGroupLayoutEntryForSamplerImpl = options => sampler => ({ sampler, ...options, }); -export const bindGroupLayoutEntryForTextureImpl = (options) => (texture) => ({ +export const bindGroupLayoutEntryForTextureImpl = options => texture => ({ texture, ...options, }); export const bindGroupLayoutEntryForStorageTextureImpl = - (options) => (storageTexture) => ({ storageTexture, ...options }); + options => storageTexture => ({ storageTexture, ...options }); export const bindGroupLayoutEntryForExternalTextureImpl = - (options) => (externalTexture) => ({ externalTexture, ...options }); -export const createBindGroupLayoutImpl = (device) => (descriptor) => () => + options => externalTexture => ({ externalTexture, ...options }); +export const createBindGroupLayoutImpl = (device, descriptor) => device.createBindGroupLayout(descriptor); -export const createPipelineLayoutImpl = (device) => (descriptor) => () => +export const createPipelineLayoutImpl = (device, descriptor) => device.createPipelineLayout(descriptor); -export const createBindGroupImpl = (device) => (descriptor) => () => +export const createBindGroupImpl = (device, descriptor) => device.createBindGroup(descriptor); -export const createShaderModuleImpl = (device) => (descriptor) => () => +export const createShaderModuleImpl = (device, descriptor) => device.createShaderModule(descriptor); -export const createComputePipelineImpl = (device) => (descriptor) => () => +export const createComputePipelineImpl = (device, descriptor) => device.createComputePipeline(descriptor); -export const createRenderPipelineImpl = (device) => (descriptor) => () => +export const createRenderPipelineImpl = (device, descriptor) => device.createRenderPipeline(descriptor); -export const createComputePipelineAsyncImpl = (device) => (descriptor) => () => +export const createComputePipelineAsyncImpl = (device, descriptor) => device.createComputePipelineAsync(descriptor); -export const createRenderPipelineAsyncImpl = (device) => (descriptor) => () => +export const createRenderPipelineAsyncImpl = (device, descriptor) => device.createRenderPipelineAsync(descriptor); -export const createCommandEncoderImpl = (device) => (descriptor) => () => +export const createCommandEncoderImpl = (device, descriptor) => device.createCommandEncoder(descriptor); -export const createRenderBundleEncoderImpl = (device) => (descriptor) => () => +export const createRenderBundleEncoderImpl = (device, descriptor) => device.createRenderBundleEncoder(descriptor); -export const createQuerySetImpl = (device) => (descriptor) => () => +export const createQuerySetImpl = (device, descriptor) => device.createQuerySet(descriptor); diff --git a/src/Web/GPU/GPUDevice.purs b/src/Web/GPU/GPUDevice.purs index d063f33..fe9e6a4 100644 --- a/src/Web/GPU/GPUDevice.purs +++ b/src/Web/GPU/GPUDevice.purs @@ -40,13 +40,13 @@ module Web.GPU.GPUDevice , limits , queue , toEventTarget - ) - where + ) where import Prelude import Data.Set as Set import Effect (Effect) +import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn3, runEffectFn1, runEffectFn2, runEffectFn3) import Unsafe.Coerce (unsafeCoerce) import Web.Event.Internal.Types (EventTarget) import Web.GPU.GPUBindGroup (GPUBindGroup) @@ -82,199 +82,149 @@ import Web.Promise (Promise) data GPUDevice -- features -foreign import featuresImpl - :: (GPUFeatureName -> Set.Set GPUFeatureName -> Set.Set GPUFeatureName) - -> Set.Set GPUFeatureName - -> GPUDevice - -> Effect (Set.Set GPUFeatureName) - +foreign import featuresImpl :: EffectFn3 (GPUFeatureName -> Set.Set GPUFeatureName -> Set.Set GPUFeatureName) (Set.Set GPUFeatureName) GPUDevice (Set.Set GPUFeatureName) features :: GPUDevice -> Effect (Set.Set GPUFeatureName) -features = featuresImpl Set.insert Set.empty +features a = runEffectFn3 featuresImpl Set.insert Set.empty a -- limits -foreign import limitsImpl :: GPUDevice -> Effect { | GPUSupportedLimits } - +foreign import limitsImpl :: EffectFn1 GPUDevice { | GPUSupportedLimits } limits :: GPUDevice -> Effect { | GPUSupportedLimits } -limits = limitsImpl +limits a = runEffectFn1 limitsImpl a -- queue -foreign import queueImpl :: GPUDevice -> Effect GPUQueue - +foreign import queueImpl :: EffectFn1 GPUDevice GPUQueue queue :: GPUDevice -> Effect GPUQueue -queue = queueImpl +queue a = runEffectFn1 queueImpl a -- destroy -foreign import destroyImpl :: GPUDevice -> Effect Unit - +foreign import destroyImpl :: EffectFn1 GPUDevice Unit destroy :: GPUDevice -> Effect Unit -destroy = destroyImpl +destroy a = runEffectFn1 destroyImpl a -- createBuffer -foreign import createBufferImpl - :: GPUDevice -> GPUBufferDescriptor -> Effect GPUBuffer - +foreign import createBufferImpl :: EffectFn2 GPUDevice GPUBufferDescriptor GPUBuffer createBuffer :: GPUDevice -> GPUBufferDescriptor -> Effect GPUBuffer -createBuffer = createBufferImpl +createBuffer a b = runEffectFn2 createBufferImpl a b -- createTexture -foreign import createTextureImpl - :: GPUDevice -> GPUTextureDescriptor -> Effect GPUTexture - +foreign import createTextureImpl :: EffectFn2 GPUDevice GPUTextureDescriptor GPUTexture createTexture :: GPUDevice -> GPUTextureDescriptor -> Effect GPUTexture -createTexture = createTextureImpl +createTexture a b = runEffectFn2 createTextureImpl a b -- createSampler -foreign import createSamplerImpl - :: GPUDevice -> GPUSamplerDescriptor -> Effect GPUSampler - +foreign import createSamplerImpl :: EffectFn2 GPUDevice GPUSamplerDescriptor GPUSampler createSampler :: GPUDevice -> GPUSamplerDescriptor -> Effect GPUSampler -createSampler = createSamplerImpl +createSampler a b = runEffectFn2 createSamplerImpl a b -- importExternalTexture -foreign import importExternalTextureImpl - :: GPUDevice - -> GPUExternalTextureDescriptor - -> Effect GPUExternalTexture - +foreign import importExternalTextureImpl :: EffectFn2 GPUDevice GPUExternalTextureDescriptor GPUExternalTexture importExternalTexture :: GPUDevice -> GPUExternalTextureDescriptor -> Effect GPUExternalTexture -importExternalTexture = importExternalTextureImpl +importExternalTexture a b = runEffectFn2 importExternalTextureImpl a b -- createBindGroupLayout -foreign import createBindGroupLayoutImpl - :: GPUDevice - -> GPUBindGroupLayoutDescriptor - -> Effect GPUBindGroupLayout - +foreign import createBindGroupLayoutImpl :: EffectFn2 GPUDevice GPUBindGroupLayoutDescriptor GPUBindGroupLayout createBindGroupLayout :: GPUDevice -> GPUBindGroupLayoutDescriptor -> Effect GPUBindGroupLayout -createBindGroupLayout = createBindGroupLayoutImpl +createBindGroupLayout a b = runEffectFn2 createBindGroupLayoutImpl a b -- createPipelineLayout -foreign import createPipelineLayoutImpl - :: GPUDevice -> GPUPipelineLayoutDescriptor -> Effect GPUPipelineLayout - +foreign import createPipelineLayoutImpl :: EffectFn2 GPUDevice GPUPipelineLayoutDescriptor GPUPipelineLayout createPipelineLayout :: GPUDevice -> GPUPipelineLayoutDescriptor -> Effect GPUPipelineLayout -createPipelineLayout = createPipelineLayoutImpl +createPipelineLayout a b = runEffectFn2 createPipelineLayoutImpl a b -- createBindGroup -foreign import createBindGroupImpl - :: GPUDevice -> GPUBindGroupDescriptor -> Effect GPUBindGroup - +foreign import createBindGroupImpl :: EffectFn2 GPUDevice GPUBindGroupDescriptor GPUBindGroup createBindGroup :: GPUDevice -> GPUBindGroupDescriptor -> Effect GPUBindGroup -createBindGroup = createBindGroupImpl +createBindGroup a b = runEffectFn2 createBindGroupImpl a b -- createShaderModule -foreign import createShaderModuleImpl - :: GPUDevice -> GPUShaderModuleDescriptor -> Effect GPUShaderModule - +foreign import createShaderModuleImpl :: EffectFn2 GPUDevice GPUShaderModuleDescriptor GPUShaderModule createShaderModule :: GPUDevice -> GPUShaderModuleDescriptor -> Effect GPUShaderModule -createShaderModule = createShaderModuleImpl +createShaderModule a b = runEffectFn2 createShaderModuleImpl a b -- createComputePipeline -foreign import createComputePipelineImpl - :: GPUDevice - -> GPUComputePipelineDescriptor - -> Effect GPUComputePipeline - +foreign import createComputePipelineImpl :: EffectFn2 GPUDevice GPUComputePipelineDescriptor GPUComputePipeline createComputePipeline :: GPUDevice -> GPUComputePipelineDescriptor -> Effect GPUComputePipeline -createComputePipeline = createComputePipelineImpl +createComputePipeline a b = runEffectFn2 createComputePipelineImpl a b -- createRenderPipeline -foreign import createRenderPipelineImpl - :: GPUDevice - -> GPURenderPipelineDescriptor - -> Effect GPURenderPipeline - +foreign import createRenderPipelineImpl :: EffectFn2 GPUDevice GPURenderPipelineDescriptor GPURenderPipeline createRenderPipeline :: GPUDevice -> GPURenderPipelineDescriptor -> Effect GPURenderPipeline -createRenderPipeline = createRenderPipelineImpl +createRenderPipeline a b = runEffectFn2 createRenderPipelineImpl a b -- createComputePipelineAsnyc -foreign import createComputePipelineAsyncImpl - :: GPUDevice - -> GPUComputePipelineDescriptor - -> Effect (Promise GPUComputePipeline) - +foreign import createComputePipelineAsyncImpl :: EffectFn2 GPUDevice GPUComputePipelineDescriptor (Promise GPUComputePipeline) createComputePipelineAsnyc :: GPUDevice -> GPUComputePipelineDescriptor -> Effect (Promise GPUComputePipeline) -createComputePipelineAsnyc = createComputePipelineAsyncImpl +createComputePipelineAsnyc a b = runEffectFn2 createComputePipelineAsyncImpl a b -- createRenderPipelineAsync -foreign import createRenderPipelineAsyncImpl - :: GPUDevice - -> GPURenderPipelineDescriptor - -> Effect (Promise GPURenderPipeline) - +foreign import createRenderPipelineAsyncImpl :: EffectFn2 GPUDevice GPURenderPipelineDescriptor (Promise GPURenderPipeline) createRenderPipelineAsync :: GPUDevice -> GPURenderPipelineDescriptor -> Effect (Promise GPURenderPipeline) -createRenderPipelineAsync = createRenderPipelineAsyncImpl +createRenderPipelineAsync a b = runEffectFn2 createRenderPipelineAsyncImpl a b -- createCommandEncoder -foreign import createCommandEncoderImpl - :: GPUDevice -> GPUCommandEncoderDescriptor -> Effect GPUCommandEncoder - +foreign import createCommandEncoderImpl :: EffectFn2 GPUDevice GPUCommandEncoderDescriptor GPUCommandEncoder createCommandEncoder :: GPUDevice -> GPUCommandEncoderDescriptor -> Effect GPUCommandEncoder -createCommandEncoder = createCommandEncoderImpl +createCommandEncoder a b = runEffectFn2 createCommandEncoderImpl a b -- createRenderBundleEncoder -foreign import createRenderBundleEncoderImpl - :: GPUDevice -> GPURenderBundleEncoderDescriptor -> Effect GPUBuffer - +foreign import createRenderBundleEncoderImpl :: EffectFn2 GPUDevice GPURenderBundleEncoderDescriptor GPUBuffer createRenderBundleEncoder :: GPUDevice -> GPURenderBundleEncoderDescriptor -> Effect GPUBuffer -createRenderBundleEncoder = createRenderBundleEncoderImpl +createRenderBundleEncoder a b = runEffectFn2 createRenderBundleEncoderImpl a b -- createQuerySet -foreign import createQuerySetImpl - :: GPUDevice -> GPUQuerySetDescriptor -> Effect GPUQuerySet - +foreign import createQuerySetImpl :: EffectFn2 GPUDevice GPUQuerySetDescriptor GPUQuerySet createQuerySet :: GPUDevice -> GPUQuerySetDescriptor -> Effect GPUQuerySet -createQuerySet = createQuerySetImpl +createQuerySet a b = runEffectFn2 createQuerySetImpl a b toEventTarget :: GPUDevice -> EventTarget toEventTarget = unsafeCoerce \ No newline at end of file diff --git a/src/Web/GPU/GPUExtent3D.purs b/src/Web/GPU/GPUExtent3D.purs index c46a867..922b766 100644 --- a/src/Web/GPU/GPUExtent3D.purs +++ b/src/Web/GPU/GPUExtent3D.purs @@ -7,6 +7,7 @@ import Unsafe.Coerce (unsafeCoerce) import Web.GPU.Internal.Types (GPUIntegerCoordinate) data GPUExtent3D + gpuExtent3DW :: GPUIntegerCoordinate -> GPUExtent3D gpuExtent3DW w = unsafeCoerce [ w ] diff --git a/src/Web/GPU/GPUExternalTexture.js b/src/Web/GPU/GPUExternalTexture.js index b0a2ad2..1909bfe 100644 --- a/src/Web/GPU/GPUExternalTexture.js +++ b/src/Web/GPU/GPUExternalTexture.js @@ -1 +1 @@ -export const expiredImpl = (texture) => () => texture.expired; +export const expiredImpl = texture => texture.expired; diff --git a/src/Web/GPU/GPUExternalTexture.purs b/src/Web/GPU/GPUExternalTexture.purs index b7e8294..349be3f 100644 --- a/src/Web/GPU/GPUExternalTexture.purs +++ b/src/Web/GPU/GPUExternalTexture.purs @@ -2,13 +2,13 @@ module Web.GPU.GPUExternalTexture ( GPUExternalTexture , expired - ) - where + ) where import Effect (Effect) +import Effect.Uncurried(EffectFn1, runEffectFn1) data GPUExternalTexture -foreign import expiredImpl :: GPUExternalTexture -> Effect Boolean +foreign import expiredImpl :: EffectFn1 GPUExternalTexture Boolean expired :: GPUExternalTexture -> Effect Boolean -expired = expiredImpl \ No newline at end of file +expired a = runEffectFn1 expiredImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUImageCopyExternalImageSource.purs b/src/Web/GPU/GPUImageCopyExternalImageSource.purs index 9d3b3d8..a3b6bd2 100644 --- a/src/Web/GPU/GPUImageCopyExternalImageSource.purs +++ b/src/Web/GPU/GPUImageCopyExternalImageSource.purs @@ -9,6 +9,7 @@ import Web.GPU.Internal.Types (ImageBitmap, OffscreenCanvas) import Web.HTML (HTMLCanvasElement, HTMLVideoElement) data GPUImageCopyExternalImageSource + fromImageBitmap :: ImageBitmap -> GPUImageCopyExternalImageSource fromImageBitmap = unsafeCoerce diff --git a/src/Web/GPU/GPUOrigin2D.purs b/src/Web/GPU/GPUOrigin2D.purs index 69e0079..e9acfed 100644 --- a/src/Web/GPU/GPUOrigin2D.purs +++ b/src/Web/GPU/GPUOrigin2D.purs @@ -1,7 +1,8 @@ -- @inline export gpuOrigin2DX arity=1 -- @inline export gpuOrigin2DXY arity=2 module Web.GPU.GPUOrigin2D - ( GPUOrigin2D, gpuOrigin2DX + ( GPUOrigin2D + , gpuOrigin2DX , gpuOrigin2DXY , gpuOrigin2DDict ) where @@ -10,6 +11,7 @@ import Unsafe.Coerce (unsafeCoerce) import Web.GPU.Internal.Types (GPUIntegerCoordinate) data GPUOrigin2D + gpuOrigin2DX :: GPUIntegerCoordinate -> GPUOrigin2D gpuOrigin2DX x = unsafeCoerce [ x ] diff --git a/src/Web/GPU/GPUPipelineBase.js b/src/Web/GPU/GPUPipelineBase.js index cfc1df6..6fae96d 100644 --- a/src/Web/GPU/GPUPipelineBase.js +++ b/src/Web/GPU/GPUPipelineBase.js @@ -1,2 +1,2 @@ -export const unsafeGetBindGroupLayoutImpl = (pipeline) => (index) => () => +export const unsafeGetBindGroupLayoutImpl = (pipeline, index) => pipeline.getBindGroupLayout(index); diff --git a/src/Web/GPU/GPUPipelineBase.purs b/src/Web/GPU/GPUPipelineBase.purs index a23439a..5141c3a 100644 --- a/src/Web/GPU/GPUPipelineBase.purs +++ b/src/Web/GPU/GPUPipelineBase.purs @@ -1,19 +1,18 @@ module Web.GPU.GPUPipelineBase where import Effect (Effect) +import Effect.Uncurried (EffectFn2, runEffectFn2) import Web.GPU.GPUBindGroupLayout (GPUBindGroupLayout) import Web.GPU.GPUComputePipeline (GPUComputePipeline) import Web.GPU.GPURenderPipeline (GPURenderPipeline) import Web.GPU.Internal.Types (UnsignedLong) -foreign import unsafeGetBindGroupLayoutImpl - :: forall a. a -> UnsignedLong -> Effect GPUBindGroupLayout - +foreign import unsafeGetBindGroupLayoutImpl :: forall a. EffectFn2 a UnsignedLong GPUBindGroupLayout class GPUPipelineBase a where getBindGroupLayout :: a -> UnsignedLong -> Effect GPUBindGroupLayout instance GPUPipelineBase GPUComputePipeline where - getBindGroupLayout = unsafeGetBindGroupLayoutImpl + getBindGroupLayout a b = runEffectFn2 unsafeGetBindGroupLayoutImpl a b instance GPUPipelineBase GPURenderPipeline where - getBindGroupLayout = unsafeGetBindGroupLayoutImpl \ No newline at end of file + getBindGroupLayout a b = runEffectFn2 unsafeGetBindGroupLayoutImpl a b \ No newline at end of file diff --git a/src/Web/GPU/GPUPipelineLayout.purs b/src/Web/GPU/GPUPipelineLayout.purs index cb8783b..7c9a5f9 100644 --- a/src/Web/GPU/GPUPipelineLayout.purs +++ b/src/Web/GPU/GPUPipelineLayout.purs @@ -1,6 +1,5 @@ module Web.GPU.GPUPipelineLayout ( GPUPipelineLayout - ) - where + ) where data GPUPipelineLayout \ No newline at end of file diff --git a/src/Web/GPU/GPUQuerySet.js b/src/Web/GPU/GPUQuerySet.js index 8115987..6d7ed7b 100644 --- a/src/Web/GPU/GPUQuerySet.js +++ b/src/Web/GPU/GPUQuerySet.js @@ -1,3 +1,3 @@ -export const destroyImpl = (querySet) => () => querySet.destroy(); -export const typeImpl = (querySet) => () => querySet.type; -export const countImpl = (querySet) => () => querySet.count; +export const destroyImpl = querySet => querySet.destroy(); +export const typeImpl = querySet => querySet.type; +export const countImpl = querySet => querySet.count; diff --git a/src/Web/GPU/GPUQuerySet.purs b/src/Web/GPU/GPUQuerySet.purs index 6401415..69d8568 100644 --- a/src/Web/GPU/GPUQuerySet.purs +++ b/src/Web/GPU/GPUQuerySet.purs @@ -11,22 +11,20 @@ module Web.GPU.GPUQuerySet import Prelude import Effect (Effect) +import Effect.Uncurried (EffectFn1, runEffectFn1) import Web.GPU.GPUQueryType (GPUQueryType) import Web.GPU.Internal.Types (GPUSize32) data GPUQuerySet -foreign import destroyImpl :: GPUQuerySet -> Effect Unit - +foreign import destroyImpl :: EffectFn1 GPUQuerySet Unit destroy :: GPUQuerySet -> Effect Unit -destroy = destroyImpl - -foreign import typeImpl :: GPUQuerySet -> Effect GPUQueryType +destroy a = runEffectFn1 destroyImpl a +foreign import typeImpl :: EffectFn1 GPUQuerySet GPUQueryType type' :: GPUQuerySet -> Effect GPUQueryType -type' = typeImpl - -foreign import countImpl :: GPUQuerySet -> Effect GPUSize32 +type' a = runEffectFn1 typeImpl a +foreign import countImpl :: EffectFn1 GPUQuerySet GPUSize32 count :: GPUQuerySet -> Effect Int -count = countImpl \ No newline at end of file +count a = runEffectFn1 countImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUQueue.js b/src/Web/GPU/GPUQueue.js index 5b68879..1c09957 100644 --- a/src/Web/GPU/GPUQueue.js +++ b/src/Web/GPU/GPUQueue.js @@ -1,28 +1,35 @@ -export const submitImpl = (queue) => (commandBuffers) => () => +export const submitImpl = (queue, commandBuffers) => queue.submit(commandBuffers); -export const onSubmittedWorkDoneImpl = (queue) => () => - queue.onSubmittedWorkDone(); -export const writeBufferImpl = - (queue) => (buffer) => (bufferOffset) => (data) => () => - queue.writeBuffer(buffer, bufferOffset, data); -export const writeBufferWithOffsetImpl = - (queue) => (buffer) => (bufferOffset) => (data) => (dataOffset) => () => - queue.writeBuffer(buffer, bufferOffset, data, dataOffset); -export const writeBufferWithSizeImpl = - (queue) => (buffer) => (bufferOffset) => (data) => (size) => () => - queue.writeBuffer(buffer, bufferOffset, data, undefined, size); -export const writeBufferWithOffsetAndSizeImpl = - (queue) => - (buffer) => - (bufferOffset) => - (data) => - (dataOffset) => - (size) => - () => - queue.writeBuffer(buffer, bufferOffset, data, dataOffset, size); -export const writeTextureImpl = - (queue) => (destination) => (data) => (dataLayout) => (size) => () => - queue.writeTexture(destination, data, dataLayout, size); -export const copyExternalImageToTextureImpl = - (queue) => (source) => (destination) => (copySize) => () => - queue.copyExternalImageToTexture(source, destination, copySize); +export const onSubmittedWorkDoneImpl = queue => queue.onSubmittedWorkDone(); +export const writeBufferImpl = (queue, buffer, bufferOffset, data) => + queue.writeBuffer(buffer, bufferOffset, data); +export const writeBufferWithOffsetImpl = ( + queue, + buffer, + bufferOffset, + data, + dataOffset +) => queue.writeBuffer(buffer, bufferOffset, data, dataOffset); +export const writeBufferWithSizeImpl = ( + queue, + buffer, + bufferOffset, + data, + size +) => queue.writeBuffer(buffer, bufferOffset, data, undefined, size); +export const writeBufferWithOffsetAndSizeImpl = ( + queue, + buffer, + bufferOffset, + data, + dataOffset, + size +) => queue.writeBuffer(buffer, bufferOffset, data, dataOffset, size); +export const writeTextureImpl = (queue, destination, data, dataLayout, size) => + queue.writeTexture(destination, data, dataLayout, size); +export const copyExternalImageToTextureImpl = ( + queue, + source, + destination, + copySize +) => queue.copyExternalImageToTexture(source, destination, copySize); diff --git a/src/Web/GPU/GPUQueue.purs b/src/Web/GPU/GPUQueue.purs index 87f7e8e..7a4a101 100644 --- a/src/Web/GPU/GPUQueue.purs +++ b/src/Web/GPU/GPUQueue.purs @@ -18,6 +18,7 @@ module Web.GPU.GPUQueue ) where import Prelude +import Effect.Uncurried(EffectFn1, runEffectFn1,EffectFn2, runEffectFn2,EffectFn4, runEffectFn4,EffectFn5, runEffectFn5,EffectFn6, runEffectFn6) import Effect (Effect) import Web.GPU.BufferSource (BufferSource) @@ -33,67 +34,34 @@ import Web.Promise (Promise) data GPUQueue -foreign import submitImpl :: GPUQueue -> Array GPUCommandBuffer -> Effect Unit - +foreign import submitImpl :: EffectFn2 GPUQueue (Array GPUCommandBuffer) Unit submit ∷ GPUQueue → Array GPUCommandBuffer → Effect Unit -submit = submitImpl - -foreign import onSubmittedWorkDoneImpl :: GPUQueue -> Effect (Promise Unit) +submit a b = runEffectFn2 submitImpl a b +foreign import onSubmittedWorkDoneImpl :: EffectFn1 GPUQueue (Promise Unit) onSubmittedWorkDone :: GPUQueue -> Effect (Promise Unit) -onSubmittedWorkDone = onSubmittedWorkDoneImpl - -foreign import writeBufferImpl - :: GPUQueue -> GPUBuffer -> GPUSize64 -> BufferSource -> Effect Unit +onSubmittedWorkDone a = runEffectFn1 onSubmittedWorkDoneImpl a +foreign import writeBufferImpl :: EffectFn4 GPUQueue GPUBuffer GPUSize64 BufferSource Unit writeBuffer :: GPUQueue -> GPUBuffer -> Int -> BufferSource -> Effect Unit -writeBuffer = writeBufferImpl - -foreign import writeBufferWithOffsetImpl - :: GPUQueue - -> GPUBuffer - -> GPUSize64 - -> BufferSource - -> GPUSize64 - -> Effect Unit +writeBuffer a b c d = runEffectFn4 writeBufferImpl a b c d +foreign import writeBufferWithOffsetImpl :: EffectFn5 GPUQueue GPUBuffer GPUSize64 BufferSource GPUSize64 Unit writeBufferWithOffset :: GPUQueue -> GPUBuffer -> Int -> BufferSource -> Int -> Effect Unit -writeBufferWithOffset = writeBufferWithOffsetImpl - -foreign import writeBufferWithSizeImpl - :: GPUQueue - -> GPUBuffer - -> GPUSize64 - -> BufferSource - -> GPUSize64 - -> Effect Unit +writeBufferWithOffset a b c d e = runEffectFn5 writeBufferWithOffsetImpl a b c d e +foreign import writeBufferWithSizeImpl :: EffectFn5 GPUQueue GPUBuffer GPUSize64 BufferSource GPUSize64 Unit writeBufferWithSize :: GPUQueue -> GPUBuffer -> Int -> BufferSource -> Int -> Effect Unit -writeBufferWithSize = writeBufferWithSizeImpl - -foreign import writeBufferWithOffsetAndSizeImpl - :: GPUQueue - -> GPUBuffer - -> GPUSize64 - -> BufferSource - -> GPUSize64 - -> GPUSize64 - -> Effect Unit +writeBufferWithSize a b c d e = runEffectFn5 writeBufferWithSizeImpl a b c d e +foreign import writeBufferWithOffsetAndSizeImpl :: EffectFn6 GPUQueue GPUBuffer GPUSize64 BufferSource GPUSize64 GPUSize64 Unit writeBufferWithOffsetAndSize :: GPUQueue -> GPUBuffer -> Int -> BufferSource -> Int -> Int -> Effect Unit -writeBufferWithOffsetAndSize = writeBufferWithOffsetAndSizeImpl - -foreign import writeTextureImpl - :: GPUQueue - -> GPUImageCopyTexture - -> BufferSource - -> GPUImageDataLayout - -> GPUExtent3D - -> Effect Unit +writeBufferWithOffsetAndSize a b c d e f = runEffectFn6 writeBufferWithOffsetAndSizeImpl a b c d e f +foreign import writeTextureImpl :: EffectFn5 GPUQueue GPUImageCopyTexture BufferSource GPUImageDataLayout GPUExtent3D Unit writeTexture :: GPUQueue -> GPUImageCopyTexture @@ -101,19 +69,13 @@ writeTexture -> GPUImageDataLayout -> GPUExtent3D -> Effect Unit -writeTexture = writeTextureImpl - -foreign import copyExternalImageToTextureImpl - :: GPUQueue - -> GPUImageCopyExternalImage - -> GPUImageCopyTextureTagged - -> GPUExtent3D - -> Effect Unit +writeTexture a b c d e = runEffectFn5 writeTextureImpl a b c d e +foreign import copyExternalImageToTextureImpl :: EffectFn4 GPUQueue GPUImageCopyExternalImage GPUImageCopyTextureTagged GPUExtent3D Unit copyExternalImageToTexture :: GPUQueue -> GPUImageCopyExternalImage -> GPUImageCopyTextureTagged -> GPUExtent3D -> Effect Unit -copyExternalImageToTexture = copyExternalImageToTextureImpl \ No newline at end of file +copyExternalImageToTexture a b c d = runEffectFn4 copyExternalImageToTextureImpl a b c d \ No newline at end of file diff --git a/src/Web/GPU/GPURenderBundle.purs b/src/Web/GPU/GPURenderBundle.purs index 4305de9..3473f6c 100644 --- a/src/Web/GPU/GPURenderBundle.purs +++ b/src/Web/GPU/GPURenderBundle.purs @@ -1,6 +1,5 @@ module Web.GPU.GPURenderBundle ( GPURenderBundle - ) - where + ) where data GPURenderBundle \ No newline at end of file diff --git a/src/Web/GPU/GPURenderBundleEncoder.js b/src/Web/GPU/GPURenderBundleEncoder.js index 61e23c5..ae1059c 100644 --- a/src/Web/GPU/GPURenderBundleEncoder.js +++ b/src/Web/GPU/GPURenderBundleEncoder.js @@ -1,335 +1,347 @@ -export const finishImpl = (gpuRenderBundleEncoder) => (descriptor) => () => +export const finishImpl = (gpuRenderBundleEncoder, descriptor) => gpuRenderBundleEncoder.finish(descriptor); -export const setPipelineImpl = - (gpuRenderBundleEncoder) => (gpuRenderPipeline$1) => () => - gpuRenderBundleEncoder.setPipeline(gpuRenderPipeline$1); -export const setIndexBufferImpl = - (gpuRenderBundleEncoder) => (gpuBuffer$1) => (gpuIndexFormat$2) => () => - gpuRenderBundleEncoder.setIndexBuffer(gpuBuffer$1, gpuIndexFormat$2); -export const setIndexBufferWithSizeImpl = - (gpuRenderBundleEncoder) => - (gpuBuffer$1) => - (gpuIndexFormat$2) => - (gpuSize64$3) => - () => - gpuRenderBundleEncoder.setIndexBuffer( - gpuBuffer$1, - gpuIndexFormat$2, - gpuSize64$3 - ); -export const setIndexBufferWithOffsetImpl = - (gpuRenderBundleEncoder) => - (gpuBuffer$1) => - (gpuIndexFormat$2) => - (gpuSize64$3) => - () => - gpuRenderBundleEncoder.setIndexBuffer( - gpuBuffer$1, - gpuIndexFormat$2, - undefined, - gpuSize64$3 - ); -export const setIndexBufferWithOffsetAndSizeImpl = - (gpuRenderBundleEncoder) => - (gpuBuffer$1) => - (gpuIndexFormat$2) => - (gpuSize64$3) => - (gpuSize64$4) => - () => - gpuRenderBundleEncoder.setIndexBuffer( - gpuBuffer$1, - gpuIndexFormat$2, - gpuSize64$3, - gpuSize64$4 - ); -export const setVertexBufferImpl = - (gpuRenderBundleEncoder) => (gpuIndex32$1) => (gpuBuffer$2) => () => - gpuRenderBundleEncoder.setVertexBuffer(gpuIndex32$1, gpuBuffer$2); -export const setVertexBufferWithOffsetImpl = - (gpuRenderBundleEncoder) => - (gpuIndex32$1) => - (gpuBuffer$2) => - (gpuSize64$3) => - () => - gpuRenderBundleEncoder.setVertexBuffer( - gpuIndex32$1, - gpuBuffer$2, - gpuSize64$3 - ); -export const setVertexBufferWithSizeImpl = - (gpuRenderBundleEncoder) => - (gpuIndex32$1) => - (gpuBuffer$2) => - (gpuSize64$3) => - () => - gpuRenderBundleEncoder.setVertexBuffer( - gpuIndex32$1, - gpuBuffer$2, - undefined, - gpuSize64$3 - ); -export const setVertexBufferWithOffsetAndSizeImpl = - (gpuRenderBundleEncoder) => - (gpuIndex32$1) => - (gpuBuffer$2) => - (gpuSize64$3) => - (gpuSize64$4) => - () => - gpuRenderBundleEncoder.setVertexBuffer( - gpuIndex32$1, - gpuBuffer$2, - gpuSize64$3, - gpuSize64$4 - ); -export const drawImpl = (gpuRenderBundleEncoder) => (gpuSize32$1) => () => +export const setPipelineImpl = (gpuRenderBundleEncoder, gpuRenderPipeline$1) => + gpuRenderBundleEncoder.setPipeline(gpuRenderPipeline$1); +export const setIndexBufferImpl = ( + gpuRenderBundleEncoder, + gpuBuffer$1, + gpuIndexFormat$2 +) => gpuRenderBundleEncoder.setIndexBuffer(gpuBuffer$1, gpuIndexFormat$2); +export const setIndexBufferWithSizeImpl = ( + gpuRenderBundleEncoder, + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3 +) => + gpuRenderBundleEncoder.setIndexBuffer( + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3 + ); +export const setIndexBufferWithOffsetImpl = ( + gpuRenderBundleEncoder, + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3 +) => + gpuRenderBundleEncoder.setIndexBuffer( + gpuBuffer$1, + gpuIndexFormat$2, + undefined, + gpuSize64$3 + ); +export const setIndexBufferWithOffsetAndSizeImpl = ( + gpuRenderBundleEncoder, + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3, + gpuSize64$4 +) => + gpuRenderBundleEncoder.setIndexBuffer( + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3, + gpuSize64$4 + ); +export const setVertexBufferImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBuffer$2 +) => gpuRenderBundleEncoder.setVertexBuffer(gpuIndex32$1, gpuBuffer$2); +export const setVertexBufferWithOffsetImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3 +) => + gpuRenderBundleEncoder.setVertexBuffer( + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3 + ); +export const setVertexBufferWithSizeImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3 +) => + gpuRenderBundleEncoder.setVertexBuffer( + gpuIndex32$1, + gpuBuffer$2, + undefined, + gpuSize64$3 + ); +export const setVertexBufferWithOffsetAndSizeImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3, + gpuSize64$4 +) => + gpuRenderBundleEncoder.setVertexBuffer( + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3, + gpuSize64$4 + ); +export const drawImpl = (gpuRenderBundleEncoder, gpuSize32$1) => gpuRenderBundleEncoder.draw(gpuSize32$1); -export const drawWithInstanceCountImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderBundleEncoder.draw(gpuSize32$1, gpuSize32$2); -export const drawWithFirstVertexImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderBundleEncoder.draw(gpuSize32$1, undefined, gpuSize32$2); -export const drawWithFirstInstanceImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderBundleEncoder.draw(gpuSize32$1, undefined, undefined, gpuSize32$2); -export const drawWithInstanceCountAndFirstVertexImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.draw(gpuSize32$1, gpuSize32$2, gpuSize32$3); -export const drawWithInstanceCountAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.draw( - gpuSize32$1, - gpuSize32$2, - undefined, - gpuSize32$3 - ); -export const drawWithFirstVertexAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.draw( - gpuSize32$1, - undefined, - gpuSize32$2, - gpuSize32$3 - ); -export const drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSize32$4) => - () => - gpuRenderBundleEncoder.draw( - gpuSize32$1, - gpuSize32$2, - gpuSize32$3, - gpuSize32$4 - ); +export const drawWithInstanceCountImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderBundleEncoder.draw(gpuSize32$1, gpuSize32$2); +export const drawWithFirstVertexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderBundleEncoder.draw(gpuSize32$1, undefined, gpuSize32$2); +export const drawWithFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2 +) => + gpuRenderBundleEncoder.draw(gpuSize32$1, undefined, undefined, gpuSize32$2); +export const drawWithInstanceCountAndFirstVertexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => gpuRenderBundleEncoder.draw(gpuSize32$1, gpuSize32$2, gpuSize32$3); +export const drawWithInstanceCountAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderBundleEncoder.draw(gpuSize32$1, gpuSize32$2, undefined, gpuSize32$3); +export const drawWithFirstVertexAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderBundleEncoder.draw(gpuSize32$1, undefined, gpuSize32$2, gpuSize32$3); +export const drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSize32$4 +) => + gpuRenderBundleEncoder.draw( + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSize32$4 + ); // -export const drawIndexedImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => () => - gpuRenderBundleEncoder.drawIndexed(gpuSize32$1); -export const drawIndexedWithInstanceCountImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderBundleEncoder.drawIndexed(gpuSize32$1, gpuSize32$2); -export const drawIndexedWithFirstIndexImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderBundleEncoder.drawIndexed(gpuSize32$1, undefined, gpuSize32$2); -export const drawIndexedWithBaseVertexImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSignedOffset32$2) => () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - undefined, - undefined, - gpuSignedOffset32$2 - ); -export const drawIndexedWithFirstInstanceImpl = - (gpuRenderBundleEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - undefined, - undefined, - undefined, - gpuSize32$2 - ); -export const drawIndexedWithInstanceCountAndFirstIndexImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.drawIndexed(gpuSize32$1, gpuSize32$2, gpuSize32$3); -export const drawIndexedWithInstanceCountAndBaseVertexImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSignedOffset32$3) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - undefined, - gpuSignedOffset32$3 - ); -export const drawIndexedWithInstanceCountAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - undefined, - undefined, - gpuSize32$3 - ); -export const drawIndexedWithFirstIndexAndBaseVertexImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSignedOffset32$3) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - undefined, - gpuSize32$2, - gpuSignedOffset32$3 - ); -export const drawIndexedWithFirstIndexAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - undefined, - gpuSize32$2, - undefined, - gpuSize32$3 - ); -export const drawIndexedWithBaseVertexAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSignedOffset32$2) => - (gpuSize32$3) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - undefined, - undefined, - gpuSignedOffset32$2, - gpuSize32$3 - ); -export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSignedOffset32$4) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - gpuSize32$3, - gpuSignedOffset32$4 - ); -export const drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSize32$4) => - () => +export const drawIndexedImpl = (gpuRenderBundleEncoder, gpuSize32$1) => + gpuRenderBundleEncoder.drawIndexed(gpuSize32$1); +export const drawIndexedWithInstanceCountImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderBundleEncoder.drawIndexed(gpuSize32$1, gpuSize32$2); +export const drawIndexedWithFirstIndexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderBundleEncoder.drawIndexed(gpuSize32$1, undefined, gpuSize32$2); +export const drawIndexedWithBaseVertexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSignedOffset32$2 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + undefined, + undefined, + gpuSignedOffset32$2 + ); +export const drawIndexedWithFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + undefined, + undefined, + undefined, + gpuSize32$2 + ); +export const drawIndexedWithInstanceCountAndFirstIndexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => gpuRenderBundleEncoder.drawIndexed(gpuSize32$1, gpuSize32$2, gpuSize32$3); +export const drawIndexedWithInstanceCountAndBaseVertexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSignedOffset32$3 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + undefined, + gpuSignedOffset32$3 + ); +export const drawIndexedWithInstanceCountAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + undefined, + undefined, + gpuSize32$3 + ); +export const drawIndexedWithFirstIndexAndBaseVertexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSignedOffset32$3 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + undefined, + gpuSize32$2, + gpuSignedOffset32$3 + ); +export const drawIndexedWithFirstIndexAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + undefined, + gpuSize32$2, + undefined, + gpuSize32$3 + ); +export const drawIndexedWithBaseVertexAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSignedOffset32$2, + gpuSize32$3 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + undefined, + undefined, + gpuSignedOffset32$2, + gpuSize32$3 + ); +export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSignedOffset32$4 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSignedOffset32$4 + ); +export const drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSize32$4 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + undefined, + gpuSize32$4 + ); +export const drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl = ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSignedOffset32$3, + gpuSize32$4 +) => + gpuRenderBundleEncoder.drawIndexed( + gpuSize32$1, + undefined, + gpuSize32$2, + gpuSignedOffset32$3, + gpuSize32$4 + ); +export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl = + ( + gpuRenderBundleEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSignedOffset32$4, + gpuSize32$5 + ) => gpuRenderBundleEncoder.drawIndexed( gpuSize32$1, gpuSize32$2, gpuSize32$3, - undefined, - gpuSize32$4 - ); -export const drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl = - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSignedOffset32$3) => - (gpuSize32$4) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - undefined, - gpuSize32$2, - gpuSignedOffset32$3, - gpuSize32$4 - ); -export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl = - - (gpuRenderBundleEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSignedOffset32$4) => - (gpuSize32$5) => - () => - gpuRenderBundleEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - gpuSize32$3, - gpuSignedOffset32$4, - gpuSize32$5 - ); -// -export const drawIndirectImpl = - (gpuRenderBundleEncoder) => (gpuBuffer$1) => (gpuSize64$2) => () => - gpuRenderBundleEncoder.drawIndirect(gpuBuffer$1, gpuSize64$2); -export const drawIndexedIndirectImpl = - (gpuRenderBundleEncoder) => (gpuBuffer$1) => (gpuSize64$2) => () => - gpuRenderBundleEncoder.drawIndexedIndirect(gpuBuffer$1, gpuSize64$2); -export const setBindGroupImpl = - (gpuRenderBundleEncoder) => (gpuIndex32$1) => (gpuBindGroup$2) => () => - gpuRenderBundleEncoder.setBindGroup(gpuIndex32$1, gpuBindGroup$2); -export const setBindGroupWithDynamicOffsetsImpl = - (gpuRenderBundleEncoder) => - (gpuIndex32$1) => - (gpuBindGroup$2) => - (arraygpuBufferDynamicOffset$3) => - () => - gpuRenderBundleEncoder.setBindGroup( - gpuIndex32$1, - gpuBindGroup$2, - arraygpuBufferDynamicOffset$3 - ); -export const setBindGroupWithDyanmicOffsetBoundsImpl = - (gpuRenderBundleEncoder) => - (gpuIndex32$1) => - (gpuBindGroup$2) => - (uint32array$3) => - (gpuSize64$4) => - (gpuSize32$5) => - () => - gpuRenderBundleEncoder.setBindGroup( - gpuIndex32$1, - gpuBindGroup$2, - uint32array$3, - gpuSize64$4, + gpuSignedOffset32$4, gpuSize32$5 ); -export const pushDebugGroupImpl = (gpuRenderBundleEncoder) => (str$1) => () => +// +export const drawIndirectImpl = ( + gpuRenderBundleEncoder, + gpuBuffer$1, + gpuSize64$2 +) => gpuRenderBundleEncoder.drawIndirect(gpuBuffer$1, gpuSize64$2); +export const drawIndexedIndirectImpl = ( + gpuRenderBundleEncoder, + gpuBuffer$1, + gpuSize64$2 +) => gpuRenderBundleEncoder.drawIndexedIndirect(gpuBuffer$1, gpuSize64$2); +export const setBindGroupImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBindGroup$2 +) => gpuRenderBundleEncoder.setBindGroup(gpuIndex32$1, gpuBindGroup$2); +export const setBindGroupWithDynamicOffsetsImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBindGroup$2, + arraygpuBufferDynamicOffset$3 +) => + gpuRenderBundleEncoder.setBindGroup( + gpuIndex32$1, + gpuBindGroup$2, + arraygpuBufferDynamicOffset$3 + ); +export const setBindGroupWithDyanmicOffsetBoundsImpl = ( + gpuRenderBundleEncoder, + gpuIndex32$1, + gpuBindGroup$2, + uint32array$3, + gpuSize64$4, + gpuSize32$5 +) => + gpuRenderBundleEncoder.setBindGroup( + gpuIndex32$1, + gpuBindGroup$2, + uint32array$3, + gpuSize64$4, + gpuSize32$5 + ); +export const pushDebugGroupImpl = (gpuRenderBundleEncoder, str$1) => gpuRenderBundleEncoder.pushDebugGroup(str$1); -export const popDebugGroupImpl = (gpuRenderBundleEncoder) => () => +export const popDebugGroupImpl = gpuRenderBundleEncoder => gpuRenderBundleEncoder.popDebugGroup(); -export const insertDebugMarkerImpl = - (gpuRenderBundleEncoder) => (str$1) => () => - gpuRenderBundleEncoder.insertDebugMarker(str$1); +export const insertDebugMarkerImpl = (gpuRenderBundleEncoder, str$1) => + gpuRenderBundleEncoder.insertDebugMarker(str$1); diff --git a/src/Web/GPU/GPURenderBundleEncoder.purs b/src/Web/GPU/GPURenderBundleEncoder.purs index 2d476fe..fca0e28 100644 --- a/src/Web/GPU/GPURenderBundleEncoder.purs +++ b/src/Web/GPU/GPURenderBundleEncoder.purs @@ -39,7 +39,8 @@ -- @inline export popDebugGroup arity=1 -- @inline export insertDebugMarker arity=2 module Web.GPU.GPURenderBundleEncoder - (GPURenderBundleEncoder,draw + ( GPURenderBundleEncoder + , draw , drawIndexed , drawIndexedIndirect , drawIndexedWithBaseVertex @@ -86,6 +87,7 @@ import Prelude import Data.ArrayBuffer.Types (Uint32Array) import Effect (Effect) +import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn3, EffectFn4, EffectFn5, EffectFn6, runEffectFn1, runEffectFn2, runEffectFn3, runEffectFn4, runEffectFn5, runEffectFn6) import Web.GPU.GPUBindGroup (GPUBindGroup) import Web.GPU.GPUBuffer (GPUBuffer) import Web.GPU.GPUIndexFormat (GPUIndexFormat) @@ -95,66 +97,40 @@ import Web.GPU.GPURenderPipeline (GPURenderPipeline) import Web.GPU.Internal.Types (GPUBufferDynamicOffset, GPUIndex32, GPUSignedOffset32, GPUSize32, GPUSize64) data GPURenderBundleEncoder -foreign import finishImpl - :: GPURenderBundleEncoder - -> GPURenderBundleDescriptor - -> Effect GPURenderBundle +foreign import finishImpl :: EffectFn2 GPURenderBundleEncoder GPURenderBundleDescriptor GPURenderBundle finish ∷ GPURenderBundleEncoder -> GPURenderBundleDescriptor → Effect GPURenderBundle -finish = finishImpl - -foreign import setPipelineImpl - :: GPURenderBundleEncoder -> GPURenderPipeline -> Effect Unit +finish a b = runEffectFn2 finishImpl a b +foreign import setPipelineImpl :: EffectFn2 GPURenderBundleEncoder GPURenderPipeline Unit setPipeline :: GPURenderBundleEncoder -> GPURenderPipeline -> Effect Unit -setPipeline = setPipelineImpl - -foreign import setIndexBufferImpl - :: GPURenderBundleEncoder -> GPUBuffer -> GPUIndexFormat -> Effect Unit +setPipeline a b = runEffectFn2 setPipelineImpl a b +foreign import setIndexBufferImpl :: EffectFn3 GPURenderBundleEncoder GPUBuffer GPUIndexFormat Unit setIndexBuffer :: GPURenderBundleEncoder -> GPUBuffer -> GPUIndexFormat -> Effect Unit -setIndexBuffer = setIndexBufferImpl - -foreign import setIndexBufferWithSizeImpl - :: GPURenderBundleEncoder - -> GPUBuffer - -> GPUIndexFormat - -> GPUSize64 - -> Effect Unit +setIndexBuffer a b c = runEffectFn3 setIndexBufferImpl a b c +foreign import setIndexBufferWithSizeImpl :: EffectFn4 GPURenderBundleEncoder GPUBuffer GPUIndexFormat GPUSize64 Unit setIndexBufferWithSize :: GPURenderBundleEncoder -> GPUBuffer -> GPUIndexFormat -> GPUSize64 -> Effect Unit -setIndexBufferWithSize = setIndexBufferWithSizeImpl - -foreign import setIndexBufferWithOffsetImpl - :: GPURenderBundleEncoder - -> GPUBuffer - -> GPUIndexFormat - -> GPUSize64 - -> Effect Unit +setIndexBufferWithSize a b c d = runEffectFn4 setIndexBufferWithSizeImpl a b c d +foreign import setIndexBufferWithOffsetImpl :: EffectFn4 GPURenderBundleEncoder GPUBuffer GPUIndexFormat GPUSize64 Unit setIndexBufferWithOffset :: GPURenderBundleEncoder -> GPUBuffer -> GPUIndexFormat -> GPUSize64 -> Effect Unit -setIndexBufferWithOffset = setIndexBufferWithOffsetImpl - -foreign import setIndexBufferWithOffsetAndSizeImpl - :: GPURenderBundleEncoder - -> GPUBuffer - -> GPUIndexFormat - -> GPUSize64 - -> GPUSize64 - -> Effect Unit +setIndexBufferWithOffset a b c d = runEffectFn4 setIndexBufferWithOffsetImpl a b c d +foreign import setIndexBufferWithOffsetAndSizeImpl :: EffectFn5 GPURenderBundleEncoder GPUBuffer GPUIndexFormat GPUSize64 GPUSize64 Unit setIndexBufferWithOffsetAndSize :: GPURenderBundleEncoder -> GPUBuffer @@ -162,53 +138,32 @@ setIndexBufferWithOffsetAndSize -> GPUSize64 -> GPUSize64 -> Effect Unit -setIndexBufferWithOffsetAndSize = setIndexBufferWithOffsetAndSizeImpl - -foreign import setVertexBufferImpl - :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBuffer -> Effect Unit +setIndexBufferWithOffsetAndSize a b c d e = runEffectFn5 setIndexBufferWithOffsetAndSizeImpl a b c d e +foreign import setVertexBufferImpl :: EffectFn3 GPURenderBundleEncoder GPUIndex32 GPUBuffer Unit setVertexBuffer :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBuffer -> Effect Unit -setVertexBuffer = setVertexBufferImpl - -foreign import setVertexBufferWithOffsetImpl - :: GPURenderBundleEncoder - -> GPUIndex32 - -> GPUBuffer - -> GPUSize64 - -> Effect Unit +setVertexBuffer a b c = runEffectFn3 setVertexBufferImpl a b c +foreign import setVertexBufferWithOffsetImpl :: EffectFn4 GPURenderBundleEncoder GPUIndex32 GPUBuffer GPUSize64 Unit setVertexBufferWithOffset :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBuffer -> GPUSize64 -> Effect Unit -setVertexBufferWithOffset = setVertexBufferWithOffsetImpl - -foreign import setVertexBufferWithSizeImpl - :: GPURenderBundleEncoder - -> GPUIndex32 - -> GPUBuffer - -> GPUSize64 - -> Effect Unit +setVertexBufferWithOffset a b c d = runEffectFn4 setVertexBufferWithOffsetImpl a b c d +foreign import setVertexBufferWithSizeImpl :: EffectFn4 GPURenderBundleEncoder GPUIndex32 GPUBuffer GPUSize64 Unit setVertexBufferWithSize :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBuffer -> GPUSize64 -> Effect Unit -setVertexBufferWithSize = setVertexBufferWithSizeImpl - -foreign import setVertexBufferWithOffsetAndSizeImpl - :: GPURenderBundleEncoder - -> GPUIndex32 - -> GPUBuffer - -> GPUSize64 - -> GPUSize64 - -> Effect Unit +setVertexBufferWithSize a b c d = runEffectFn4 setVertexBufferWithSizeImpl a b c d +foreign import setVertexBufferWithOffsetAndSizeImpl :: EffectFn5 GPURenderBundleEncoder GPUIndex32 GPUBuffer GPUSize64 GPUSize64 Unit setVertexBufferWithOffsetAndSize :: GPURenderBundleEncoder -> GPUIndex32 @@ -216,88 +171,56 @@ setVertexBufferWithOffsetAndSize -> GPUSize64 -> GPUSize64 -> Effect Unit -setVertexBufferWithOffsetAndSize = setVertexBufferWithOffsetAndSizeImpl - -foreign import drawImpl :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit +setVertexBufferWithOffsetAndSize a b c d e = runEffectFn5 setVertexBufferWithOffsetAndSizeImpl a b c d e +foreign import drawImpl :: EffectFn2 GPURenderBundleEncoder GPUSize32 Unit draw :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit -draw = drawImpl - -foreign import drawWithInstanceCountImpl - :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +draw a b = runEffectFn2 drawImpl a b +foreign import drawWithInstanceCountImpl :: EffectFn3 GPURenderBundleEncoder GPUSize32 GPUSize32 Unit drawWithInstanceCount :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCount = drawWithInstanceCountImpl - -foreign import drawWithFirstVertexImpl - :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit +drawWithInstanceCount a b c = runEffectFn3 drawWithInstanceCountImpl a b c +foreign import drawWithFirstVertexImpl :: EffectFn2 GPURenderBundleEncoder GPUSize32 Unit drawWithFirstVertex :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit -drawWithFirstVertex = drawWithFirstVertexImpl - -foreign import drawWithFirstInstanceImpl - :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit +drawWithFirstVertex a b = runEffectFn2 drawWithFirstVertexImpl a b +foreign import drawWithFirstInstanceImpl :: EffectFn2 GPURenderBundleEncoder GPUSize32 Unit drawWithFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit -drawWithFirstInstance = drawWithFirstInstanceImpl - -foreign import drawWithInstanceCountAndFirstVertexImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawWithFirstInstance a b = runEffectFn2 drawWithFirstInstanceImpl a b +foreign import drawWithInstanceCountAndFirstVertexImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawWithInstanceCountAndFirstVertex :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCountAndFirstVertex = drawWithInstanceCountAndFirstVertexImpl - -foreign import drawWithInstanceCountAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawWithInstanceCountAndFirstVertex a b c d = runEffectFn4 drawWithInstanceCountAndFirstVertexImpl a b c d +foreign import drawWithInstanceCountAndFirstInstanceImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawWithInstanceCountAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCountAndFirstInstance = - drawWithInstanceCountAndFirstInstanceImpl - -foreign import drawWithFirstVertexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawWithInstanceCountAndFirstInstance a b c d = + runEffectFn4 drawWithInstanceCountAndFirstInstanceImpl a b c d +foreign import drawWithFirstVertexAndFirstInstanceImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawWithFirstVertexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithFirstVertexAndFirstInstance = drawWithFirstVertexAndFirstInstanceImpl - -foreign import drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawWithFirstVertexAndFirstInstance a b c d = runEffectFn4 drawWithFirstVertexAndFirstInstanceImpl a b c d +foreign import drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl :: EffectFn5 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 GPUSize32 Unit drawWithInstanceCountAndFirstVertexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 @@ -305,147 +228,94 @@ drawWithInstanceCountAndFirstVertexAndFirstInstance -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCountAndFirstVertexAndFirstInstance = - drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl - -foreign import drawIndexedImpl - :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit +drawWithInstanceCountAndFirstVertexAndFirstInstance a b c d e = + runEffectFn5 drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl a b c d e +foreign import drawIndexedImpl :: EffectFn2 GPURenderBundleEncoder GPUSize32 Unit drawIndexed :: GPURenderBundleEncoder -> GPUSize32 -> Effect Unit -drawIndexed = drawIndexedImpl - -foreign import drawIndexedWithInstanceCountImpl - :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexed a b = runEffectFn2 drawIndexedImpl a b +foreign import drawIndexedWithInstanceCountImpl :: EffectFn3 GPURenderBundleEncoder GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCount :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCount = drawIndexedWithInstanceCountImpl - -foreign import drawIndexedWithFirstIndexImpl - :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithInstanceCount a b c = runEffectFn3 drawIndexedWithInstanceCountImpl a b c +foreign import drawIndexedWithFirstIndexImpl :: EffectFn3 GPURenderBundleEncoder GPUSize32 GPUSize32 Unit drawIndexedWithFirstIndex :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstIndex = drawIndexedWithFirstIndexImpl - -foreign import drawIndexedWithBaseVertexImpl - :: GPURenderBundleEncoder -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit +drawIndexedWithFirstIndex a b c = runEffectFn3 drawIndexedWithFirstIndexImpl a b c +foreign import drawIndexedWithBaseVertexImpl :: EffectFn3 GPURenderBundleEncoder GPUSize32 GPUSignedOffset32 Unit drawIndexedWithBaseVertex :: GPURenderBundleEncoder -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithBaseVertex = drawIndexedWithBaseVertexImpl - -foreign import drawIndexedWithFirstInstanceImpl - :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithBaseVertex a b c = runEffectFn3 drawIndexedWithBaseVertexImpl a b c +foreign import drawIndexedWithFirstInstanceImpl :: EffectFn3 GPURenderBundleEncoder GPUSize32 GPUSize32 Unit drawIndexedWithFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstInstance = drawIndexedWithFirstInstanceImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithFirstInstance a b c = runEffectFn3 drawIndexedWithFirstInstanceImpl a b c +foreign import drawIndexedWithInstanceCountAndFirstIndexImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstIndex :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndex = - drawIndexedWithInstanceCountAndFirstIndexImpl - -foreign import drawIndexedWithInstanceCountAndBaseVertexImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndex a b c d = + runEffectFn4 drawIndexedWithInstanceCountAndFirstIndexImpl a b c d +foreign import drawIndexedWithInstanceCountAndBaseVertexImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSignedOffset32 Unit drawIndexedWithInstanceCountAndBaseVertex :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithInstanceCountAndBaseVertex = - drawIndexedWithInstanceCountAndBaseVertexImpl - -foreign import drawIndexedWithInstanceCountAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithInstanceCountAndBaseVertex a b c d = + runEffectFn4 drawIndexedWithInstanceCountAndBaseVertexImpl a b c d +foreign import drawIndexedWithInstanceCountAndFirstInstanceImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstInstance = - drawIndexedWithInstanceCountAndFirstInstanceImpl - -foreign import drawIndexedWithFirstIndexAndBaseVertexImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstInstance a b c d = + runEffectFn4 drawIndexedWithInstanceCountAndFirstInstanceImpl a b c d +foreign import drawIndexedWithFirstIndexAndBaseVertexImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSignedOffset32 Unit drawIndexedWithFirstIndexAndBaseVertex :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithFirstIndexAndBaseVertex = - drawIndexedWithFirstIndexAndBaseVertexImpl - -foreign import drawIndexedWithFirstIndexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithFirstIndexAndBaseVertex a b c d = + runEffectFn4 drawIndexedWithFirstIndexAndBaseVertexImpl a b c d +foreign import drawIndexedWithFirstIndexAndFirstInstanceImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithFirstIndexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstIndexAndFirstInstance = - drawIndexedWithFirstIndexAndFirstInstanceImpl - -foreign import drawIndexedWithBaseVertexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSignedOffset32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithFirstIndexAndFirstInstance a b c d = + runEffectFn4 drawIndexedWithFirstIndexAndFirstInstanceImpl a b c d +foreign import drawIndexedWithBaseVertexAndFirstInstanceImpl :: EffectFn4 GPURenderBundleEncoder GPUSize32 GPUSignedOffset32 GPUSize32 Unit drawIndexedWithBaseVertexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 -> GPUSignedOffset32 -> GPUSize32 -> Effect Unit -drawIndexedWithBaseVertexAndFirstInstance = - drawIndexedWithBaseVertexAndFirstInstanceImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> Effect Unit +drawIndexedWithBaseVertexAndFirstInstance a b c d = + runEffectFn4 drawIndexedWithBaseVertexAndFirstInstanceImpl a b c d +foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl :: EffectFn5 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 GPUSignedOffset32 Unit drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex :: GPURenderBundleEncoder -> GPUSize32 @@ -453,17 +323,10 @@ drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex = - drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex a b c d e = + runEffectFn5 drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl a b c d e +foreign import drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl :: EffectFn5 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 @@ -471,17 +334,10 @@ drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance = - drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl - -foreign import drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance a b c d e = runEffectFn5 + drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl a b c d e +foreign import drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl :: EffectFn5 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSignedOffset32 GPUSize32 Unit drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 @@ -489,18 +345,10 @@ drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance -> GPUSignedOffset32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance = - drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl - :: GPURenderBundleEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance a b c d e = + runEffectFn5 drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl a b c d e +foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl :: EffectFn6 GPURenderBundleEncoder GPUSize32 GPUSize32 GPUSize32 GPUSignedOffset32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance :: GPURenderBundleEncoder -> GPUSize32 @@ -509,53 +357,33 @@ drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance -> GPUSignedOffset32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance = - drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl - -foreign import drawIndirectImpl - :: GPURenderBundleEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance a b c d e f = + runEffectFn6 drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl a b c d e f +foreign import drawIndirectImpl :: EffectFn3 GPURenderBundleEncoder GPUBuffer GPUSize64 Unit drawIndirect :: GPURenderBundleEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit -drawIndirect = drawIndirectImpl - -foreign import drawIndexedIndirectImpl - :: GPURenderBundleEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit +drawIndirect a b c = runEffectFn3 drawIndirectImpl a b c +foreign import drawIndexedIndirectImpl :: EffectFn3 GPURenderBundleEncoder GPUBuffer GPUSize64 Unit drawIndexedIndirect :: GPURenderBundleEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit -drawIndexedIndirect = drawIndexedIndirectImpl - -foreign import setBindGroupImpl - :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBindGroup -> Effect Unit +drawIndexedIndirect a b c = runEffectFn3 drawIndexedIndirectImpl a b c +foreign import setBindGroupImpl :: EffectFn3 GPURenderBundleEncoder GPUIndex32 GPUBindGroup Unit setBindGroup :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBindGroup -> Effect Unit -setBindGroup = setBindGroupImpl - -foreign import setBindGroupWithDynamicOffsetsImpl - :: GPURenderBundleEncoder - -> GPUIndex32 - -> GPUBindGroup - -> Array GPUBufferDynamicOffset - -> Effect Unit +setBindGroup a b c = runEffectFn3 setBindGroupImpl a b c +foreign import setBindGroupWithDynamicOffsetsImpl :: EffectFn4 GPURenderBundleEncoder GPUIndex32 GPUBindGroup (Array GPUBufferDynamicOffset) Unit setBindGroupWithDynamicOffsets :: GPURenderBundleEncoder -> GPUIndex32 -> GPUBindGroup -> Array GPUBufferDynamicOffset -> Effect Unit -setBindGroupWithDynamicOffsets = setBindGroupWithDynamicOffsetsImpl - -foreign import setBindGroupWithDyanmicOffsetBoundsImpl - :: GPURenderBundleEncoder - -> GPUIndex32 - -> GPUBindGroup - -> Uint32Array - -> GPUSize64 - -> GPUSize32 - -> Effect Unit +setBindGroupWithDynamicOffsets a b c d = runEffectFn4 setBindGroupWithDynamicOffsetsImpl a b c d +foreign import setBindGroupWithDyanmicOffsetBoundsImpl :: EffectFn6 GPURenderBundleEncoder GPUIndex32 GPUBindGroup Uint32Array GPUSize64 GPUSize32 Unit setBindGroupWithDyanmicOffsetBounds :: GPURenderBundleEncoder -> GPUIndex32 @@ -564,21 +392,16 @@ setBindGroupWithDyanmicOffsetBounds -> GPUSize64 -> GPUSize32 -> Effect Unit -setBindGroupWithDyanmicOffsetBounds = setBindGroupWithDyanmicOffsetBoundsImpl - -foreign import pushDebugGroupImpl - :: GPURenderBundleEncoder -> String -> Effect Unit +setBindGroupWithDyanmicOffsetBounds a b c d e f = runEffectFn6 setBindGroupWithDyanmicOffsetBoundsImpl a b c d e f +foreign import pushDebugGroupImpl :: EffectFn2 GPURenderBundleEncoder String Unit pushDebugGroup :: GPURenderBundleEncoder -> String -> Effect Unit -pushDebugGroup = pushDebugGroupImpl - -foreign import popDebugGroupImpl :: GPURenderBundleEncoder -> Effect Unit +pushDebugGroup a b = runEffectFn2 pushDebugGroupImpl a b +foreign import popDebugGroupImpl :: EffectFn1 GPURenderBundleEncoder Unit popDebugGroup :: GPURenderBundleEncoder -> Effect Unit -popDebugGroup = popDebugGroupImpl - -foreign import insertDebugMarkerImpl - :: GPURenderBundleEncoder -> String -> Effect Unit +popDebugGroup a = runEffectFn1 popDebugGroupImpl a +foreign import insertDebugMarkerImpl :: EffectFn2 GPURenderBundleEncoder String Unit insertDebugMarker :: GPURenderBundleEncoder -> String -> Effect Unit -insertDebugMarker = insertDebugMarkerImpl \ No newline at end of file +insertDebugMarker a b = runEffectFn2 insertDebugMarkerImpl a b \ No newline at end of file diff --git a/src/Web/GPU/GPURenderPassEncoder.js b/src/Web/GPU/GPURenderPassEncoder.js index a1fef82..750e6c4 100644 --- a/src/Web/GPU/GPURenderPassEncoder.js +++ b/src/Web/GPU/GPURenderPassEncoder.js @@ -1,360 +1,372 @@ -export const setViewportImpl = - (gpuRenderPassEncoder) => - (num$1) => - (num$2) => - (num$3) => - (num$4) => - (num$5) => - (num$6) => - () => - gpuRenderPassEncoder.setViewport(num$1, num$2, num$3, num$4, num$5, num$6); -export const setScissorRectImpl = - (gpuRenderPassEncoder) => - (gpuIntegerCoordinate$1) => - (gpuIntegerCoordinate$2) => - (gpuIntegerCoordinate$3) => - (gpuIntegerCoordinate$4) => - () => - gpuRenderPassEncoder.setScissorRect( - gpuIntegerCoordinate$1, - gpuIntegerCoordinate$2, - gpuIntegerCoordinate$3, - gpuIntegerCoordinate$4 - ); -export const setBlendConstantImpl = - (gpuRenderPassEncoder) => (gpuColor$1) => () => - gpuRenderPassEncoder.setBlendConstant(gpuColor$1); -export const setStencilReferenceImpl = - (gpuRenderPassEncoder) => (gpuStencilValue$1) => () => - gpuRenderPassEncoder.setStencilReference(gpuStencilValue$1); -export const beginOcclusionQueryImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => () => - gpuRenderPassEncoder.beginOcclusionQuery(gpuSize32$1); -export const endOcclusionQueryImpl = (gpuRenderPassEncoder) => () => +export const setViewportImpl = ( + gpuRenderPassEncoder, + num$1, + num$2, + num$3, + num$4, + num$5, + num$6 +) => gpuRenderPassEncoder.setViewport(num$1, num$2, num$3, num$4, num$5, num$6); +export const setScissorRectImpl = ( + gpuRenderPassEncoder, + gpuIntegerCoordinate$1, + gpuIntegerCoordinate$2, + gpuIntegerCoordinate$3, + gpuIntegerCoordinate$4 +) => + gpuRenderPassEncoder.setScissorRect( + gpuIntegerCoordinate$1, + gpuIntegerCoordinate$2, + gpuIntegerCoordinate$3, + gpuIntegerCoordinate$4 + ); +export const setBlendConstantImpl = (gpuRenderPassEncoder, gpuColor$1) => + gpuRenderPassEncoder.setBlendConstant(gpuColor$1); +export const setStencilReferenceImpl = ( + gpuRenderPassEncoder, + gpuStencilValue$1 +) => gpuRenderPassEncoder.setStencilReference(gpuStencilValue$1); +export const beginOcclusionQueryImpl = (gpuRenderPassEncoder, gpuSize32$1) => + gpuRenderPassEncoder.beginOcclusionQuery(gpuSize32$1); +export const endOcclusionQueryImpl = gpuRenderPassEncoder => gpuRenderPassEncoder.endOcclusionQuery(); -export const executeBundlesImpl = - (gpuRenderPassEncoder) => (arraygpuRenderBundle$1) => () => - gpuRenderPassEncoder.executeBundles(arraygpuRenderBundle$1); -export const endImpl = (gpuRenderPassEncoder) => () => - gpuRenderPassEncoder.end(); -export const setPipelineImpl = - (gpuRenderPassEncoder) => (gpuRenderPipeline$1) => () => - gpuRenderPassEncoder.setPipeline(gpuRenderPipeline$1); -export const setIndexBufferImpl = - (gpuRenderPassEncoder) => (gpuBuffer$1) => (gpuIndexFormat$2) => () => - gpuRenderPassEncoder.setIndexBuffer(gpuBuffer$1, gpuIndexFormat$2); -export const setIndexBufferWithSizeImpl = - (gpuRenderPassEncoder) => - (gpuBuffer$1) => - (gpuIndexFormat$2) => - (gpuSize64$3) => - () => - gpuRenderPassEncoder.setIndexBuffer( - gpuBuffer$1, - gpuIndexFormat$2, - gpuSize64$3 - ); -export const setIndexBufferWithOffsetImpl = - (gpuRenderPassEncoder) => - (gpuBuffer$1) => - (gpuIndexFormat$2) => - (gpuSize64$3) => - () => - gpuRenderPassEncoder.setIndexBuffer( - gpuBuffer$1, - gpuIndexFormat$2, - undefined, - gpuSize64$3 - ); -export const setIndexBufferWithOffsetAndSizeImpl = - (gpuRenderPassEncoder) => - (gpuBuffer$1) => - (gpuIndexFormat$2) => - (gpuSize64$3) => - (gpuSize64$4) => - () => - gpuRenderPassEncoder.setIndexBuffer( - gpuBuffer$1, - gpuIndexFormat$2, - gpuSize64$3, - gpuSize64$4 - ); -export const setVertexBufferImpl = - (gpuRenderPassEncoder) => (gpuIndex32$1) => (gpuBuffer$2) => () => - gpuRenderPassEncoder.setVertexBuffer(gpuIndex32$1, gpuBuffer$2); -export const setVertexBufferWithOffsetImpl = - (gpuRenderPassEncoder) => - (gpuIndex32$1) => - (gpuBuffer$2) => - (gpuSize64$3) => - () => - gpuRenderPassEncoder.setVertexBuffer( - gpuIndex32$1, - gpuBuffer$2, - gpuSize64$3 - ); -export const setVertexBufferWithSizeImpl = - (gpuRenderPassEncoder) => - (gpuIndex32$1) => - (gpuBuffer$2) => - (gpuSize64$3) => - () => - gpuRenderPassEncoder.setVertexBuffer( - gpuIndex32$1, - gpuBuffer$2, - undefined, - gpuSize64$3 - ); -export const setVertexBufferWithOffsetAndSizeImpl = - (gpuRenderPassEncoder) => - (gpuIndex32$1) => - (gpuBuffer$2) => - (gpuSize64$3) => - (gpuSize64$4) => - () => - gpuRenderPassEncoder.setVertexBuffer( - gpuIndex32$1, - gpuBuffer$2, - gpuSize64$3, - gpuSize64$4 - ); -export const drawImpl = (gpuRenderPassEncoder) => (gpuSize32$1) => () => +export const executeBundlesImpl = ( + gpuRenderPassEncoder, + arraygpuRenderBundle$1 +) => gpuRenderPassEncoder.executeBundles(arraygpuRenderBundle$1); +export const endImpl = gpuRenderPassEncoder => gpuRenderPassEncoder.end(); +export const setPipelineImpl = (gpuRenderPassEncoder, gpuRenderPipeline$1) => + gpuRenderPassEncoder.setPipeline(gpuRenderPipeline$1); +export const setIndexBufferImpl = ( + gpuRenderPassEncoder, + gpuBuffer$1, + gpuIndexFormat$2 +) => gpuRenderPassEncoder.setIndexBuffer(gpuBuffer$1, gpuIndexFormat$2); +export const setIndexBufferWithSizeImpl = ( + gpuRenderPassEncoder, + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3 +) => + gpuRenderPassEncoder.setIndexBuffer( + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3 + ); +export const setIndexBufferWithOffsetImpl = ( + gpuRenderPassEncoder, + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3 +) => + gpuRenderPassEncoder.setIndexBuffer( + gpuBuffer$1, + gpuIndexFormat$2, + undefined, + gpuSize64$3 + ); +export const setIndexBufferWithOffsetAndSizeImpl = ( + gpuRenderPassEncoder, + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3, + gpuSize64$4 +) => + gpuRenderPassEncoder.setIndexBuffer( + gpuBuffer$1, + gpuIndexFormat$2, + gpuSize64$3, + gpuSize64$4 + ); +export const setVertexBufferImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBuffer$2 +) => gpuRenderPassEncoder.setVertexBuffer(gpuIndex32$1, gpuBuffer$2); +export const setVertexBufferWithOffsetImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3 +) => + gpuRenderPassEncoder.setVertexBuffer(gpuIndex32$1, gpuBuffer$2, gpuSize64$3); +export const setVertexBufferWithSizeImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3 +) => + gpuRenderPassEncoder.setVertexBuffer( + gpuIndex32$1, + gpuBuffer$2, + undefined, + gpuSize64$3 + ); +export const setVertexBufferWithOffsetAndSizeImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3, + gpuSize64$4 +) => + gpuRenderPassEncoder.setVertexBuffer( + gpuIndex32$1, + gpuBuffer$2, + gpuSize64$3, + gpuSize64$4 + ); +export const drawImpl = (gpuRenderPassEncoder, gpuSize32$1) => gpuRenderPassEncoder.draw(gpuSize32$1); -export const drawWithInstanceCountImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2); -export const drawWithFirstVertexImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderPassEncoder.draw(gpuSize32$1, undefined, gpuSize32$2); -export const drawWithFirstInstanceImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderPassEncoder.draw(gpuSize32$1, undefined, undefined, gpuSize32$2); -export const drawWithInstanceCountAndFirstVertexImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2, gpuSize32$3); -export const drawWithInstanceCountAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2, undefined, gpuSize32$3); -export const drawWithFirstVertexAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.draw(gpuSize32$1, undefined, gpuSize32$2, gpuSize32$3); -export const drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSize32$4) => - () => - gpuRenderPassEncoder.draw( - gpuSize32$1, - gpuSize32$2, - gpuSize32$3, - gpuSize32$4 - ); +export const drawWithInstanceCountImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2); +export const drawWithFirstVertexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderPassEncoder.draw(gpuSize32$1, undefined, gpuSize32$2); +export const drawWithFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderPassEncoder.draw(gpuSize32$1, undefined, undefined, gpuSize32$2); +export const drawWithInstanceCountAndFirstVertexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2, gpuSize32$3); +export const drawWithInstanceCountAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2, undefined, gpuSize32$3); +export const drawWithFirstVertexAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderPassEncoder.draw(gpuSize32$1, undefined, gpuSize32$2, gpuSize32$3); +export const drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSize32$4 +) => + gpuRenderPassEncoder.draw(gpuSize32$1, gpuSize32$2, gpuSize32$3, gpuSize32$4); // -export const drawIndexedImpl = (gpuRenderPassEncoder) => (gpuSize32$1) => () => +export const drawIndexedImpl = (gpuRenderPassEncoder, gpuSize32$1) => gpuRenderPassEncoder.drawIndexed(gpuSize32$1); -export const drawIndexedWithInstanceCountImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderPassEncoder.drawIndexed(gpuSize32$1, gpuSize32$2); -export const drawIndexedWithFirstIndexImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderPassEncoder.drawIndexed(gpuSize32$1, undefined, gpuSize32$2); -export const drawIndexedWithBaseVertexImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSignedOffset32$2) => () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - undefined, - undefined, - gpuSignedOffset32$2 - ); -export const drawIndexedWithFirstInstanceImpl = - (gpuRenderPassEncoder) => (gpuSize32$1) => (gpuSize32$2) => () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - undefined, - undefined, - undefined, - gpuSize32$2 - ); -export const drawIndexedWithInstanceCountAndFirstIndexImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.drawIndexed(gpuSize32$1, gpuSize32$2, gpuSize32$3); -export const drawIndexedWithInstanceCountAndBaseVertexImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSignedOffset32$3) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - undefined, - gpuSignedOffset32$3 - ); -export const drawIndexedWithInstanceCountAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - undefined, - undefined, - gpuSize32$3 - ); -export const drawIndexedWithFirstIndexAndBaseVertexImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSignedOffset32$3) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - undefined, - gpuSize32$2, - gpuSignedOffset32$3 - ); -export const drawIndexedWithFirstIndexAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - undefined, - gpuSize32$2, - undefined, - gpuSize32$3 - ); -export const drawIndexedWithBaseVertexAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSignedOffset32$2) => - (gpuSize32$3) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - undefined, - undefined, - gpuSignedOffset32$2, - gpuSize32$3 - ); -export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSignedOffset32$4) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - gpuSize32$3, - gpuSignedOffset32$4 - ); -export const drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSize32$4) => - () => +export const drawIndexedWithInstanceCountImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderPassEncoder.drawIndexed(gpuSize32$1, gpuSize32$2); +export const drawIndexedWithFirstIndexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2 +) => gpuRenderPassEncoder.drawIndexed(gpuSize32$1, undefined, gpuSize32$2); +export const drawIndexedWithBaseVertexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSignedOffset32$2 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + undefined, + undefined, + gpuSignedOffset32$2 + ); +export const drawIndexedWithFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + undefined, + undefined, + undefined, + gpuSize32$2 + ); +export const drawIndexedWithInstanceCountAndFirstIndexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => gpuRenderPassEncoder.drawIndexed(gpuSize32$1, gpuSize32$2, gpuSize32$3); +export const drawIndexedWithInstanceCountAndBaseVertexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSignedOffset32$3 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + undefined, + gpuSignedOffset32$3 + ); +export const drawIndexedWithInstanceCountAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + undefined, + undefined, + gpuSize32$3 + ); +export const drawIndexedWithFirstIndexAndBaseVertexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSignedOffset32$3 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + undefined, + gpuSize32$2, + gpuSignedOffset32$3 + ); +export const drawIndexedWithFirstIndexAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + undefined, + gpuSize32$2, + undefined, + gpuSize32$3 + ); +export const drawIndexedWithBaseVertexAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSignedOffset32$2, + gpuSize32$3 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + undefined, + undefined, + gpuSignedOffset32$2, + gpuSize32$3 + ); +export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSignedOffset32$4 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSignedOffset32$4 + ); +export const drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSize32$4 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + undefined, + gpuSize32$4 + ); +export const drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl = ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSignedOffset32$3, + gpuSize32$4 +) => + gpuRenderPassEncoder.drawIndexed( + gpuSize32$1, + undefined, + gpuSize32$2, + gpuSignedOffset32$3, + gpuSize32$4 + ); +export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl = + ( + gpuRenderPassEncoder, + gpuSize32$1, + gpuSize32$2, + gpuSize32$3, + gpuSignedOffset32$4, + gpuSize32$5 + ) => gpuRenderPassEncoder.drawIndexed( gpuSize32$1, gpuSize32$2, gpuSize32$3, - undefined, - gpuSize32$4 - ); -export const drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl = - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSignedOffset32$3) => - (gpuSize32$4) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - undefined, - gpuSize32$2, - gpuSignedOffset32$3, - gpuSize32$4 - ); -export const drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl = - - (gpuRenderPassEncoder) => - (gpuSize32$1) => - (gpuSize32$2) => - (gpuSize32$3) => - (gpuSignedOffset32$4) => - (gpuSize32$5) => - () => - gpuRenderPassEncoder.drawIndexed( - gpuSize32$1, - gpuSize32$2, - gpuSize32$3, - gpuSignedOffset32$4, - gpuSize32$5 - ); -// -export const drawIndirectImpl = - (gpuRenderPassEncoder) => (gpuBuffer$1) => (gpuSize64$2) => () => - gpuRenderPassEncoder.drawIndirect(gpuBuffer$1, gpuSize64$2); -export const drawIndexedIndirectImpl = - (gpuRenderPassEncoder) => (gpuBuffer$1) => (gpuSize64$2) => () => - gpuRenderPassEncoder.drawIndexedIndirect(gpuBuffer$1, gpuSize64$2); -export const setBindGroupImpl = - (gpuRenderPassEncoder) => (gpuIndex32$1) => (gpuBindGroup$2) => () => - gpuRenderPassEncoder.setBindGroup(gpuIndex32$1, gpuBindGroup$2); -export const setBindGroupWithDynamicOffsetsImpl = - (gpuRenderPassEncoder) => - (gpuIndex32$1) => - (gpuBindGroup$2) => - (arraygpuBufferDynamicOffset$3) => - () => - gpuRenderPassEncoder.setBindGroup( - gpuIndex32$1, - gpuBindGroup$2, - arraygpuBufferDynamicOffset$3 - ); -export const setBindGroupWithDyanmicOffsetBoundsImpl = - (gpuRenderPassEncoder) => - (gpuIndex32$1) => - (gpuBindGroup$2) => - (uint32array$3) => - (gpuSize64$4) => - (gpuSize32$5) => - () => - gpuRenderPassEncoder.setBindGroup( - gpuIndex32$1, - gpuBindGroup$2, - uint32array$3, - gpuSize64$4, + gpuSignedOffset32$4, gpuSize32$5 ); -export const pushDebugGroupImpl = (gpuRenderPassEncoder) => (str$1) => () => +// +export const drawIndirectImpl = ( + gpuRenderPassEncoder, + gpuBuffer$1, + gpuSize64$2 +) => gpuRenderPassEncoder.drawIndirect(gpuBuffer$1, gpuSize64$2); +export const drawIndexedIndirectImpl = ( + gpuRenderPassEncoder, + gpuBuffer$1, + gpuSize64$2 +) => gpuRenderPassEncoder.drawIndexedIndirect(gpuBuffer$1, gpuSize64$2); +export const setBindGroupImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBindGroup$2 +) => gpuRenderPassEncoder.setBindGroup(gpuIndex32$1, gpuBindGroup$2); +export const setBindGroupWithDynamicOffsetsImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBindGroup$2, + arraygpuBufferDynamicOffset$3 +) => + gpuRenderPassEncoder.setBindGroup( + gpuIndex32$1, + gpuBindGroup$2, + arraygpuBufferDynamicOffset$3 + ); +export const setBindGroupWithDyanmicOffsetBoundsImpl = ( + gpuRenderPassEncoder, + gpuIndex32$1, + gpuBindGroup$2, + uint32array$3, + gpuSize64$4, + gpuSize32$5 +) => + gpuRenderPassEncoder.setBindGroup( + gpuIndex32$1, + gpuBindGroup$2, + uint32array$3, + gpuSize64$4, + gpuSize32$5 + ); +export const pushDebugGroupImpl = (gpuRenderPassEncoder, str$1) => gpuRenderPassEncoder.pushDebugGroup(str$1); -export const popDebugGroupImpl = (gpuRenderPassEncoder) => () => +export const popDebugGroupImpl = gpuRenderPassEncoder => gpuRenderPassEncoder.popDebugGroup(); -export const insertDebugMarkerImpl = (gpuRenderPassEncoder) => (str$1) => () => +export const insertDebugMarkerImpl = (gpuRenderPassEncoder, str$1) => gpuRenderPassEncoder.insertDebugMarker(str$1); diff --git a/src/Web/GPU/GPURenderPassEncoder.purs b/src/Web/GPU/GPURenderPassEncoder.purs index 2b87ad3..bab6378 100644 --- a/src/Web/GPU/GPURenderPassEncoder.purs +++ b/src/Web/GPU/GPURenderPassEncoder.purs @@ -102,6 +102,7 @@ import Prelude import Data.ArrayBuffer.Types (Uint32Array) import Effect (Effect) +import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn3, EffectFn4, EffectFn5, EffectFn6, EffectFn7, runEffectFn1, runEffectFn2, runEffectFn3, runEffectFn4, runEffectFn5, runEffectFn6, runEffectFn7) import Web.GPU.GPUBindGroup (GPUBindGroup) import Web.GPU.GPUBuffer (GPUBuffer) import Web.GPU.GPUColor (GPUColor) @@ -112,16 +113,7 @@ import Web.GPU.Internal.Types (GPUIndex32, GPUIntegerCoordinate, GPUSignedOffset data GPURenderPassEncoder -foreign import setViewportImpl - :: GPURenderPassEncoder - -> Number - -> Number - -> Number - -> Number - -> Number - -> Number - -> Effect Unit - +foreign import setViewportImpl :: EffectFn7 GPURenderPassEncoder Number Number Number Number Number Number Unit setViewport :: GPURenderPassEncoder -> Number @@ -131,16 +123,9 @@ setViewport -> Number -> Number -> Effect Unit -setViewport = setViewportImpl - -foreign import setScissorRectImpl - :: GPURenderPassEncoder - -> GPUIntegerCoordinate - -> GPUIntegerCoordinate - -> GPUIntegerCoordinate - -> GPUIntegerCoordinate - -> Effect Unit +setViewport a b c d e f g = runEffectFn7 setViewportImpl a b c d e f g +foreign import setScissorRectImpl :: EffectFn5 GPURenderPassEncoder GPUIntegerCoordinate GPUIntegerCoordinate GPUIntegerCoordinate GPUIntegerCoordinate Unit setScissorRect :: GPURenderPassEncoder -> GPUIntegerCoordinate @@ -148,93 +133,60 @@ setScissorRect -> GPUIntegerCoordinate -> GPUIntegerCoordinate -> Effect Unit -setScissorRect = setScissorRectImpl - -foreign import setBlendConstantImpl - :: GPURenderPassEncoder -> GPUColor -> Effect Unit +setScissorRect a b c d e = runEffectFn5 setScissorRectImpl a b c d e +foreign import setBlendConstantImpl :: EffectFn2 GPURenderPassEncoder GPUColor Unit setBlendConstant :: GPURenderPassEncoder -> GPUColor -> Effect Unit -setBlendConstant = setBlendConstantImpl - -foreign import setStencilReferenceImpl - :: GPURenderPassEncoder -> GPUStencilValue -> Effect Unit +setBlendConstant a b = runEffectFn2 setBlendConstantImpl a b +foreign import setStencilReferenceImpl :: EffectFn2 GPURenderPassEncoder GPUStencilValue Unit setStencilReference :: GPURenderPassEncoder -> GPUStencilValue -> Effect Unit -setStencilReference = setStencilReferenceImpl - -foreign import beginOcclusionQueryImpl - :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit +setStencilReference a b = runEffectFn2 setStencilReferenceImpl a b +foreign import beginOcclusionQueryImpl :: EffectFn2 GPURenderPassEncoder GPUSize32 Unit beginOcclusionQuery :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit -beginOcclusionQuery = beginOcclusionQueryImpl - -foreign import endOcclusionQueryImpl :: GPURenderPassEncoder -> Effect Unit +beginOcclusionQuery a b = runEffectFn2 beginOcclusionQueryImpl a b +foreign import endOcclusionQueryImpl :: EffectFn1 GPURenderPassEncoder Unit endOcclusionQuery :: GPURenderPassEncoder -> Effect Unit -endOcclusionQuery = endOcclusionQueryImpl - -foreign import executeBundlesImpl - :: GPURenderPassEncoder -> Array GPURenderBundle -> Effect Unit +endOcclusionQuery a = runEffectFn1 endOcclusionQueryImpl a +foreign import executeBundlesImpl :: EffectFn2 GPURenderPassEncoder (Array GPURenderBundle) Unit executeBundles :: GPURenderPassEncoder -> Array GPURenderBundle -> Effect Unit -executeBundles = executeBundlesImpl - -foreign import endImpl :: GPURenderPassEncoder -> Effect Unit +executeBundles a b = runEffectFn2 executeBundlesImpl a b +foreign import endImpl :: EffectFn1 GPURenderPassEncoder Unit end :: GPURenderPassEncoder -> Effect Unit -end = endImpl - -foreign import setPipelineImpl - :: GPURenderPassEncoder -> GPURenderPipeline -> Effect Unit +end a = runEffectFn1 endImpl a +foreign import setPipelineImpl :: EffectFn2 GPURenderPassEncoder GPURenderPipeline Unit setPipeline :: GPURenderPassEncoder -> GPURenderPipeline -> Effect Unit -setPipeline = setPipelineImpl - -foreign import setIndexBufferImpl - :: GPURenderPassEncoder -> GPUBuffer -> GPUIndexFormat -> Effect Unit +setPipeline a b = runEffectFn2 setPipelineImpl a b +foreign import setIndexBufferImpl :: EffectFn3 GPURenderPassEncoder GPUBuffer GPUIndexFormat Unit setIndexBuffer :: GPURenderPassEncoder -> GPUBuffer -> GPUIndexFormat -> Effect Unit -setIndexBuffer = setIndexBufferImpl - -foreign import setIndexBufferWithSizeImpl - :: GPURenderPassEncoder - -> GPUBuffer - -> GPUIndexFormat - -> GPUSize64 - -> Effect Unit +setIndexBuffer a b c = runEffectFn3 setIndexBufferImpl a b c +foreign import setIndexBufferWithSizeImpl :: EffectFn4 GPURenderPassEncoder GPUBuffer GPUIndexFormat GPUSize64 Unit setIndexBufferWithSize :: GPURenderPassEncoder -> GPUBuffer -> GPUIndexFormat -> GPUSize64 -> Effect Unit -setIndexBufferWithSize = setIndexBufferWithSizeImpl - -foreign import setIndexBufferWithOffsetImpl - :: GPURenderPassEncoder - -> GPUBuffer - -> GPUIndexFormat - -> GPUSize64 - -> Effect Unit +setIndexBufferWithSize a b c d = runEffectFn4 setIndexBufferWithSizeImpl a b c d +foreign import setIndexBufferWithOffsetImpl :: EffectFn4 GPURenderPassEncoder GPUBuffer GPUIndexFormat GPUSize64 Unit setIndexBufferWithOffset :: GPURenderPassEncoder -> GPUBuffer -> GPUIndexFormat -> GPUSize64 -> Effect Unit -setIndexBufferWithOffset = setIndexBufferWithOffsetImpl - -foreign import setIndexBufferWithOffsetAndSizeImpl - :: GPURenderPassEncoder - -> GPUBuffer - -> GPUIndexFormat - -> GPUSize64 - -> GPUSize64 - -> Effect Unit +setIndexBufferWithOffset a b c d = runEffectFn4 setIndexBufferWithOffsetImpl a b c d +foreign import setIndexBufferWithOffsetAndSizeImpl :: EffectFn5 GPURenderPassEncoder GPUBuffer GPUIndexFormat GPUSize64 GPUSize64 Unit setIndexBufferWithOffsetAndSize :: GPURenderPassEncoder -> GPUBuffer @@ -242,37 +194,24 @@ setIndexBufferWithOffsetAndSize -> GPUSize64 -> GPUSize64 -> Effect Unit -setIndexBufferWithOffsetAndSize = setIndexBufferWithOffsetAndSizeImpl - -foreign import setVertexBufferImpl - :: GPURenderPassEncoder -> GPUIndex32 -> GPUBuffer -> Effect Unit +setIndexBufferWithOffsetAndSize a b c d e = runEffectFn5 setIndexBufferWithOffsetAndSizeImpl a b c d e +foreign import setVertexBufferImpl :: EffectFn3 GPURenderPassEncoder GPUIndex32 GPUBuffer Unit setVertexBuffer :: GPURenderPassEncoder -> GPUIndex32 -> GPUBuffer -> Effect Unit -setVertexBuffer = setVertexBufferImpl - -foreign import setVertexBufferWithOffsetImpl - :: GPURenderPassEncoder -> GPUIndex32 -> GPUBuffer -> GPUSize64 -> Effect Unit +setVertexBuffer a b c = runEffectFn3 setVertexBufferImpl a b c +foreign import setVertexBufferWithOffsetImpl :: EffectFn4 GPURenderPassEncoder GPUIndex32 GPUBuffer GPUSize64 Unit setVertexBufferWithOffset :: GPURenderPassEncoder -> GPUIndex32 -> GPUBuffer -> GPUSize64 -> Effect Unit -setVertexBufferWithOffset = setVertexBufferWithOffsetImpl - -foreign import setVertexBufferWithSizeImpl - :: GPURenderPassEncoder -> GPUIndex32 -> GPUBuffer -> GPUSize64 -> Effect Unit +setVertexBufferWithOffset a b c d = runEffectFn4 setVertexBufferWithOffsetImpl a b c d +foreign import setVertexBufferWithSizeImpl :: EffectFn4 GPURenderPassEncoder GPUIndex32 GPUBuffer GPUSize64 Unit setVertexBufferWithSize :: GPURenderPassEncoder -> GPUIndex32 -> GPUBuffer -> GPUSize64 -> Effect Unit -setVertexBufferWithSize = setVertexBufferWithSizeImpl - -foreign import setVertexBufferWithOffsetAndSizeImpl - :: GPURenderPassEncoder - -> GPUIndex32 - -> GPUBuffer - -> GPUSize64 - -> GPUSize64 - -> Effect Unit +setVertexBufferWithSize a b c d = runEffectFn4 setVertexBufferWithSizeImpl a b c d +foreign import setVertexBufferWithOffsetAndSizeImpl :: EffectFn5 GPURenderPassEncoder GPUIndex32 GPUBuffer GPUSize64 GPUSize64 Unit setVertexBufferWithOffsetAndSize :: GPURenderPassEncoder -> GPUIndex32 @@ -280,64 +219,44 @@ setVertexBufferWithOffsetAndSize -> GPUSize64 -> GPUSize64 -> Effect Unit -setVertexBufferWithOffsetAndSize = setVertexBufferWithOffsetAndSizeImpl - -foreign import drawImpl :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit +setVertexBufferWithOffsetAndSize a b c d e = runEffectFn5 setVertexBufferWithOffsetAndSizeImpl a b c d e +foreign import drawImpl :: EffectFn2 GPURenderPassEncoder GPUSize32 Unit draw :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit -draw = drawImpl - -foreign import drawWithInstanceCountImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +draw a b = runEffectFn2 drawImpl a b +foreign import drawWithInstanceCountImpl :: EffectFn3 GPURenderPassEncoder GPUSize32 GPUSize32 Unit drawWithInstanceCount :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCount = drawWithInstanceCountImpl - -foreign import drawWithFirstVertexImpl - :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit +drawWithInstanceCount a b c = runEffectFn3 drawWithInstanceCountImpl a b c +foreign import drawWithFirstVertexImpl :: EffectFn2 GPURenderPassEncoder GPUSize32 Unit drawWithFirstVertex :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit -drawWithFirstVertex = drawWithFirstVertexImpl - -foreign import drawWithFirstInstanceImpl - :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit +drawWithFirstVertex a b = runEffectFn2 drawWithFirstVertexImpl a b +foreign import drawWithFirstInstanceImpl :: EffectFn2 GPURenderPassEncoder GPUSize32 Unit drawWithFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit -drawWithFirstInstance = drawWithFirstInstanceImpl - -foreign import drawWithInstanceCountAndFirstVertexImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit +drawWithFirstInstance a b = runEffectFn2 drawWithFirstInstanceImpl a b +foreign import drawWithInstanceCountAndFirstVertexImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawWithInstanceCountAndFirstVertex :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCountAndFirstVertex = drawWithInstanceCountAndFirstVertexImpl - -foreign import drawWithInstanceCountAndFirstInstanceImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit +drawWithInstanceCountAndFirstVertex a b c d = runEffectFn4 drawWithInstanceCountAndFirstVertexImpl a b c d +foreign import drawWithInstanceCountAndFirstInstanceImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawWithInstanceCountAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCountAndFirstInstance = - drawWithInstanceCountAndFirstInstanceImpl - -foreign import drawWithFirstVertexAndFirstInstanceImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit +drawWithInstanceCountAndFirstInstance a b c d = + runEffectFn4 drawWithInstanceCountAndFirstInstanceImpl a b c d +foreign import drawWithFirstVertexAndFirstInstanceImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawWithFirstVertexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithFirstVertexAndFirstInstance = drawWithFirstVertexAndFirstInstanceImpl - -foreign import drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawWithFirstVertexAndFirstInstance a b c d = runEffectFn4 drawWithFirstVertexAndFirstInstanceImpl a b c d +foreign import drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl :: EffectFn5 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 GPUSize32 Unit drawWithInstanceCountAndFirstVertexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 @@ -345,123 +264,82 @@ drawWithInstanceCountAndFirstVertexAndFirstInstance -> GPUSize32 -> GPUSize32 -> Effect Unit -drawWithInstanceCountAndFirstVertexAndFirstInstance = - drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl - -foreign import drawIndexedImpl - :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit +drawWithInstanceCountAndFirstVertexAndFirstInstance a b c d e = + runEffectFn5 drawWithInstanceCountAndFirstVertexAndFirstInstanceImpl a b c d e +foreign import drawIndexedImpl :: EffectFn2 GPURenderPassEncoder GPUSize32 Unit drawIndexed :: GPURenderPassEncoder -> GPUSize32 -> Effect Unit -drawIndexed = drawIndexedImpl - -foreign import drawIndexedWithInstanceCountImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexed a b = runEffectFn2 drawIndexedImpl a b +foreign import drawIndexedWithInstanceCountImpl :: EffectFn3 GPURenderPassEncoder GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCount :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCount = drawIndexedWithInstanceCountImpl - -foreign import drawIndexedWithFirstIndexImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithInstanceCount a b c = runEffectFn3 drawIndexedWithInstanceCountImpl a b c +foreign import drawIndexedWithFirstIndexImpl :: EffectFn3 GPURenderPassEncoder GPUSize32 GPUSize32 Unit drawIndexedWithFirstIndex :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstIndex = drawIndexedWithFirstIndexImpl - -foreign import drawIndexedWithBaseVertexImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit +drawIndexedWithFirstIndex a b c = runEffectFn3 drawIndexedWithFirstIndexImpl a b c +foreign import drawIndexedWithBaseVertexImpl :: EffectFn3 GPURenderPassEncoder GPUSize32 GPUSignedOffset32 Unit drawIndexedWithBaseVertex :: GPURenderPassEncoder -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithBaseVertex = drawIndexedWithBaseVertexImpl - -foreign import drawIndexedWithFirstInstanceImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithBaseVertex a b c = runEffectFn3 drawIndexedWithBaseVertexImpl a b c +foreign import drawIndexedWithFirstInstanceImpl :: EffectFn3 GPURenderPassEncoder GPUSize32 GPUSize32 Unit drawIndexedWithFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstInstance = drawIndexedWithFirstInstanceImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithFirstInstance a b c = runEffectFn3 drawIndexedWithFirstInstanceImpl a b c +foreign import drawIndexedWithInstanceCountAndFirstIndexImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstIndex :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndex = - drawIndexedWithInstanceCountAndFirstIndexImpl - -foreign import drawIndexedWithInstanceCountAndBaseVertexImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndex a b c d = + runEffectFn4 drawIndexedWithInstanceCountAndFirstIndexImpl a b c d +foreign import drawIndexedWithInstanceCountAndBaseVertexImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSignedOffset32 Unit drawIndexedWithInstanceCountAndBaseVertex :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithInstanceCountAndBaseVertex = - drawIndexedWithInstanceCountAndBaseVertexImpl - -foreign import drawIndexedWithInstanceCountAndFirstInstanceImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithInstanceCountAndBaseVertex a b c d = + runEffectFn4 drawIndexedWithInstanceCountAndBaseVertexImpl a b c d +foreign import drawIndexedWithInstanceCountAndFirstInstanceImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstInstance = - drawIndexedWithInstanceCountAndFirstInstanceImpl - -foreign import drawIndexedWithFirstIndexAndBaseVertexImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstInstance a b c d = + runEffectFn4 drawIndexedWithInstanceCountAndFirstInstanceImpl a b c d +foreign import drawIndexedWithFirstIndexAndBaseVertexImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSignedOffset32 Unit drawIndexedWithFirstIndexAndBaseVertex :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithFirstIndexAndBaseVertex = - drawIndexedWithFirstIndexAndBaseVertexImpl - -foreign import drawIndexedWithFirstIndexAndFirstInstanceImpl - :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit +drawIndexedWithFirstIndexAndBaseVertex a b c d = runEffectFn4 + drawIndexedWithFirstIndexAndBaseVertexImpl a b c d +foreign import drawIndexedWithFirstIndexAndFirstInstanceImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithFirstIndexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstIndexAndFirstInstance = - drawIndexedWithFirstIndexAndFirstInstanceImpl - -foreign import drawIndexedWithBaseVertexAndFirstInstanceImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSignedOffset32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithFirstIndexAndFirstInstance a b c d = + runEffectFn4 drawIndexedWithFirstIndexAndFirstInstanceImpl a b c d +foreign import drawIndexedWithBaseVertexAndFirstInstanceImpl :: EffectFn4 GPURenderPassEncoder GPUSize32 GPUSignedOffset32 GPUSize32 Unit drawIndexedWithBaseVertexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 -> GPUSignedOffset32 -> GPUSize32 -> Effect Unit -drawIndexedWithBaseVertexAndFirstInstance = - drawIndexedWithBaseVertexAndFirstInstanceImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> Effect Unit +drawIndexedWithBaseVertexAndFirstInstance a b c d = + runEffectFn4 drawIndexedWithBaseVertexAndFirstInstanceImpl a b c d +foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl :: EffectFn5 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 GPUSignedOffset32 Unit drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex :: GPURenderPassEncoder -> GPUSize32 @@ -469,17 +347,10 @@ drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex -> GPUSize32 -> GPUSignedOffset32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex = - drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndexAndBaseVertex a b c d e = + runEffectFn5 drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexImpl a b c d e +foreign import drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl :: EffectFn5 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 @@ -487,17 +358,10 @@ drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance -> GPUSize32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance = - drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl - -foreign import drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndexAndFirstInstance a b c d e = + runEffectFn5 drawIndexedWithInstanceCountAndFirstIndexAndFirstInstanceImpl a b c d e +foreign import drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl :: EffectFn5 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSignedOffset32 GPUSize32 Unit drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 @@ -505,18 +369,10 @@ drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance -> GPUSignedOffset32 -> GPUSize32 -> Effect Unit -drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance = - drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl - -foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl - :: GPURenderPassEncoder - -> GPUSize32 - -> GPUSize32 - -> GPUSize32 - -> GPUSignedOffset32 - -> GPUSize32 - -> Effect Unit +drawIndexedWithFirstIndexAndBaseVertexAndFirstInstance a b c d e = + runEffectFn5 drawIndexedWithFirstIndexAndBaseVertexAndFirstInstanceImpl a b c d e +foreign import drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl :: EffectFn6 GPURenderPassEncoder GPUSize32 GPUSize32 GPUSize32 GPUSignedOffset32 GPUSize32 Unit drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance :: GPURenderPassEncoder -> GPUSize32 @@ -525,53 +381,33 @@ drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance -> GPUSignedOffset32 -> GPUSize32 -> Effect Unit -drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance = - drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl - -foreign import drawIndirectImpl - :: GPURenderPassEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit +drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstance a b c d e f = + runEffectFn6 drawIndexedWithInstanceCountAndFirstIndexAndBaseVertexAndFirstInstanceImpl a b c d e f +foreign import drawIndirectImpl :: EffectFn3 GPURenderPassEncoder GPUBuffer GPUSize64 Unit drawIndirect :: GPURenderPassEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit -drawIndirect = drawIndirectImpl - -foreign import drawIndexedIndirectImpl - :: GPURenderPassEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit +drawIndirect a b c = runEffectFn3 drawIndirectImpl a b c +foreign import drawIndexedIndirectImpl :: EffectFn3 GPURenderPassEncoder GPUBuffer GPUSize64 Unit drawIndexedIndirect :: GPURenderPassEncoder -> GPUBuffer -> GPUSize64 -> Effect Unit -drawIndexedIndirect = drawIndexedIndirectImpl - -foreign import setBindGroupImpl - :: GPURenderPassEncoder -> GPUIndex32 -> GPUBindGroup -> Effect Unit +drawIndexedIndirect a b c = runEffectFn3 drawIndexedIndirectImpl a b c +foreign import setBindGroupImpl :: EffectFn3 GPURenderPassEncoder GPUIndex32 GPUBindGroup Unit setBindGroup :: GPURenderPassEncoder -> GPUIndex32 -> GPUBindGroup -> Effect Unit -setBindGroup = setBindGroupImpl - -foreign import setBindGroupWithDynamicOffsetsImpl - :: GPURenderPassEncoder - -> GPUIndex32 - -> GPUBindGroup - -> Array GPUBufferDynamicOffset - -> Effect Unit +setBindGroup a b c = runEffectFn3 setBindGroupImpl a b c +foreign import setBindGroupWithDynamicOffsetsImpl :: EffectFn4 GPURenderPassEncoder GPUIndex32 GPUBindGroup (Array GPUBufferDynamicOffset) Unit setBindGroupWithDynamicOffsets :: GPURenderPassEncoder -> GPUIndex32 -> GPUBindGroup -> Array GPUBufferDynamicOffset -> Effect Unit -setBindGroupWithDynamicOffsets = setBindGroupWithDynamicOffsetsImpl - -foreign import setBindGroupWithDyanmicOffsetBoundsImpl - :: GPURenderPassEncoder - -> GPUIndex32 - -> GPUBindGroup - -> Uint32Array - -> GPUSize64 - -> GPUSize32 - -> Effect Unit +setBindGroupWithDynamicOffsets a b c d = runEffectFn4 setBindGroupWithDynamicOffsetsImpl a b c d +foreign import setBindGroupWithDyanmicOffsetBoundsImpl :: EffectFn6 GPURenderPassEncoder GPUIndex32 GPUBindGroup Uint32Array GPUSize64 GPUSize32 Unit setBindGroupWithDyanmicOffsetBounds :: GPURenderPassEncoder -> GPUIndex32 @@ -580,21 +416,16 @@ setBindGroupWithDyanmicOffsetBounds -> GPUSize64 -> GPUSize32 -> Effect Unit -setBindGroupWithDyanmicOffsetBounds = setBindGroupWithDyanmicOffsetBoundsImpl - -foreign import pushDebugGroupImpl - :: GPURenderPassEncoder -> String -> Effect Unit +setBindGroupWithDyanmicOffsetBounds a b c d e f = runEffectFn6 setBindGroupWithDyanmicOffsetBoundsImpl a b c d e f +foreign import pushDebugGroupImpl :: EffectFn2 GPURenderPassEncoder String Unit pushDebugGroup :: GPURenderPassEncoder -> String -> Effect Unit -pushDebugGroup = pushDebugGroupImpl - -foreign import popDebugGroupImpl :: GPURenderPassEncoder -> Effect Unit +pushDebugGroup a b = runEffectFn2 pushDebugGroupImpl a b +foreign import popDebugGroupImpl :: EffectFn1 GPURenderPassEncoder Unit popDebugGroup :: GPURenderPassEncoder -> Effect Unit -popDebugGroup = popDebugGroupImpl - -foreign import insertDebugMarkerImpl - :: GPURenderPassEncoder -> String -> Effect Unit +popDebugGroup a = runEffectFn1 popDebugGroupImpl a +foreign import insertDebugMarkerImpl :: EffectFn2 GPURenderPassEncoder String Unit insertDebugMarker :: GPURenderPassEncoder -> String -> Effect Unit -insertDebugMarker = insertDebugMarkerImpl \ No newline at end of file +insertDebugMarker a b = runEffectFn2 insertDebugMarkerImpl a b \ No newline at end of file diff --git a/src/Web/GPU/GPURenderPipeline.purs b/src/Web/GPU/GPURenderPipeline.purs index 9a2c714..271f5ab 100644 --- a/src/Web/GPU/GPURenderPipeline.purs +++ b/src/Web/GPU/GPURenderPipeline.purs @@ -1,6 +1,5 @@ module Web.GPU.GPURenderPipeline ( GPURenderPipeline - ) - where + ) where data GPURenderPipeline \ No newline at end of file diff --git a/src/Web/GPU/GPUSampler.purs b/src/Web/GPU/GPUSampler.purs index 18528ad..5dc7735 100644 --- a/src/Web/GPU/GPUSampler.purs +++ b/src/Web/GPU/GPUSampler.purs @@ -1,6 +1,5 @@ module Web.GPU.GPUSampler ( GPUSampler - ) - where + ) where data GPUSampler \ No newline at end of file diff --git a/src/Web/GPU/GPUShaderModule.js b/src/Web/GPU/GPUShaderModule.js index 2529a91..634cde3 100644 --- a/src/Web/GPU/GPUShaderModule.js +++ b/src/Web/GPU/GPUShaderModule.js @@ -1,2 +1,2 @@ -export const compilationInfoImpl = (shaderModule) => () => +export const compilationInfoImpl = shaderModule => shaderModule.compilationInfo(); diff --git a/src/Web/GPU/GPUShaderModule.purs b/src/Web/GPU/GPUShaderModule.purs index ed24878..cfda70e 100644 --- a/src/Web/GPU/GPUShaderModule.purs +++ b/src/Web/GPU/GPUShaderModule.purs @@ -9,6 +9,7 @@ module Web.GPU.GPUShaderModule ) where import Prelude +import Effect.Uncurried(EffectFn1, runEffectFn1) import Effect (Effect) import Web.GPU.Internal.Types (UnsignedLongLong) @@ -43,8 +44,6 @@ type GPUCompilationInfo = { messages :: Array GPUCompilationMessage } -foreign import compilationInfoImpl - :: GPUShaderModule -> Effect (Promise GPUCompilationInfo) - +foreign import compilationInfoImpl :: EffectFn1 GPUShaderModule (Promise GPUCompilationInfo) compilationInfo :: GPUShaderModule -> Effect (Promise GPUCompilationInfo) -compilationInfo = compilationInfoImpl \ No newline at end of file +compilationInfo a = runEffectFn1 compilationInfoImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUShaderModuleCompilationHint.purs b/src/Web/GPU/GPUShaderModuleCompilationHint.purs index 19d0b8d..ba7599e 100644 --- a/src/Web/GPU/GPUShaderModuleCompilationHint.purs +++ b/src/Web/GPU/GPUShaderModuleCompilationHint.purs @@ -5,6 +5,7 @@ import Unsafe.Coerce (unsafeCoerce) import Web.GPU.GPUPipelineLayout (GPUPipelineLayout) data GPUShaderModuleCompilationHint + auto :: GPUShaderModuleCompilationHint auto = unsafeCoerce "auto" diff --git a/src/Web/GPU/GPUTexture.js b/src/Web/GPU/GPUTexture.js index 6b09af1..e8837e4 100644 --- a/src/Web/GPU/GPUTexture.js +++ b/src/Web/GPU/GPUTexture.js @@ -1,13 +1,12 @@ -export const createViewImpl = (texture) => () => texture.createView(); -export const createViewWithDescriptorImpl = (texture) => (descriptor) => () => +export const createViewImpl = texture => texture.createView(); +export const createViewWithDescriptorImpl = (texture, descriptor) => texture.createView(descriptor); -export const destroyImpl = (texture) => () => texture.destroy(); -export const widthImpl = (texture) => () => texture.width; -export const heightImpl = (texture) => () => texture.height; -export const depthOrArrayLayersImpl = (texture) => () => - texture.depthOrArrayLayers; -export const mipLevelCountImpl = (texture) => () => texture.mipLevelCount; -export const sampleCountImpl = (texture) => () => texture.sampleCount; -export const dimensionImpl = (texture) => () => texture.dimension; -export const formatImpl = (texture) => () => texture.format; -export const usageImpl = (texture) => () => texture.usage; +export const destroyImpl = texture => texture.destroy(); +export const widthImpl = texture => texture.width; +export const heightImpl = texture => texture.height; +export const depthOrArrayLayersImpl = texture => texture.depthOrArrayLayers; +export const mipLevelCountImpl = texture => texture.mipLevelCount; +export const sampleCountImpl = texture => texture.sampleCount; +export const dimensionImpl = texture => texture.dimension; +export const formatImpl = texture => texture.format; +export const usageImpl = texture => texture.usage; diff --git a/src/Web/GPU/GPUTexture.purs b/src/Web/GPU/GPUTexture.purs index fcbee46..fc3d81c 100644 --- a/src/Web/GPU/GPUTexture.purs +++ b/src/Web/GPU/GPUTexture.purs @@ -25,6 +25,7 @@ module Web.GPU.GPUTexture ) where import Prelude +import Effect.Uncurried(EffectFn1, runEffectFn1,EffectFn2, runEffectFn2) import Effect (Effect) import Web.GPU.GPUTextureDimension (GPUTextureDimension) @@ -36,64 +37,51 @@ import Web.GPU.Internal.Types (GPUIntegerCoordinate, GPUSize32) data GPUTexture -foreign import createViewWithDescriptorImpl - :: GPUTexture -> GPUTextureViewDescriptor -> Effect GPUTextureView - +foreign import createViewWithDescriptorImpl :: EffectFn2 GPUTexture GPUTextureViewDescriptor GPUTextureView createViewWithDescriptor :: GPUTexture -> GPUTextureViewDescriptor -> Effect GPUTextureView -createViewWithDescriptor = createViewWithDescriptorImpl - -foreign import createViewImpl :: GPUTexture -> Effect GPUTextureView +createViewWithDescriptor a b = runEffectFn2 createViewWithDescriptorImpl a b +foreign import createViewImpl :: EffectFn1 GPUTexture GPUTextureView createView :: GPUTexture -> Effect GPUTextureView -createView = createViewImpl - -foreign import destroyImpl :: GPUTexture -> Effect Unit +createView a = runEffectFn1 createViewImpl a +foreign import destroyImpl :: EffectFn1 GPUTexture Unit destroy :: GPUTexture -> Effect Unit -destroy = destroyImpl - -foreign import widthImpl :: GPUTexture -> Effect GPUIntegerCoordinate +destroy a = runEffectFn1 destroyImpl a +foreign import widthImpl :: EffectFn1 GPUTexture GPUIntegerCoordinate width :: GPUTexture -> Effect GPUIntegerCoordinate -width = widthImpl - -foreign import heightImpl :: GPUTexture -> Effect GPUIntegerCoordinate +width a = runEffectFn1 widthImpl a +foreign import heightImpl :: EffectFn1 GPUTexture GPUIntegerCoordinate height :: GPUTexture -> Effect GPUIntegerCoordinate -height = heightImpl - -foreign import depthOrArrayLayersImpl - :: GPUTexture -> Effect GPUIntegerCoordinate +height a = runEffectFn1 heightImpl a +foreign import depthOrArrayLayersImpl :: EffectFn1 GPUTexture GPUIntegerCoordinate depthOrArrayLayers :: GPUTexture -> Effect GPUIntegerCoordinate -depthOrArrayLayers = depthOrArrayLayersImpl - -foreign import mipLevelCountImpl :: GPUTexture -> Effect GPUIntegerCoordinate +depthOrArrayLayers a = runEffectFn1 depthOrArrayLayersImpl a +foreign import mipLevelCountImpl :: EffectFn1 GPUTexture GPUIntegerCoordinate mipLevelCount :: GPUTexture -> Effect GPUIntegerCoordinate -mipLevelCount = mipLevelCountImpl - -foreign import sampleCountImpl :: GPUTexture -> Effect GPUSize32 +mipLevelCount a = runEffectFn1 mipLevelCountImpl a +foreign import sampleCountImpl :: EffectFn1 GPUTexture GPUSize32 sampleCount :: GPUTexture -> Effect GPUSize32 -sampleCount = sampleCountImpl - -foreign import dimensionImpl :: GPUTexture -> Effect GPUTextureDimension +sampleCount a = runEffectFn1 sampleCountImpl a +foreign import dimensionImpl :: EffectFn1 GPUTexture GPUTextureDimension dimension :: GPUTexture -> Effect GPUTextureDimension -dimension = dimensionImpl - -foreign import formatImpl :: GPUTexture -> Effect GPUTextureFormat +dimension a = runEffectFn1 dimensionImpl a +foreign import formatImpl :: EffectFn1 GPUTexture GPUTextureFormat format :: GPUTexture -> Effect GPUTextureFormat -format = formatImpl - -foreign import usageImpl :: GPUTexture -> Effect GPUTextureUsage +format a = runEffectFn1 formatImpl a +foreign import usageImpl :: EffectFn1 GPUTexture GPUTextureUsage usage :: GPUTexture -> Effect GPUTextureUsage -usage = usageImpl \ No newline at end of file +usage a = runEffectFn1 usageImpl a \ No newline at end of file diff --git a/src/Web/GPU/GPUTextureUsage.purs b/src/Web/GPU/GPUTextureUsage.purs index c33c90c..52b9452 100644 --- a/src/Web/GPU/GPUTextureUsage.purs +++ b/src/Web/GPU/GPUTextureUsage.purs @@ -6,8 +6,7 @@ module Web.GPU.GPUTextureUsage , renderAttachment , storageBinding , textureBinding - ) - where + ) where import Data.Int.Bits as Bits import Web.GPU.Internal.Bitwise (class Bitwise) diff --git a/src/Web/GPU/GPUTextureView.purs b/src/Web/GPU/GPUTextureView.purs index bf89368..2d2429f 100644 --- a/src/Web/GPU/GPUTextureView.purs +++ b/src/Web/GPU/GPUTextureView.purs @@ -1,6 +1,5 @@ module Web.GPU.GPUTextureView ( GPUTextureView - ) - where + ) where data GPUTextureView \ No newline at end of file diff --git a/src/Web/GPU/HTMLCanvasElement.js b/src/Web/GPU/HTMLCanvasElement.js index 503275b..5fb507b 100644 --- a/src/Web/GPU/HTMLCanvasElement.js +++ b/src/Web/GPU/HTMLCanvasElement.js @@ -1,4 +1,4 @@ -export const getContextImpl = (just) => (nothing) => (canvas) => () => { +export const getContextImpl = (just, nothing, canvas) => { const o = canvas.getContext("webgpu"); return o ? just(o) : nothing; }; diff --git a/src/Web/GPU/HTMLCanvasElement.purs b/src/Web/GPU/HTMLCanvasElement.purs index 96bb978..b5a3980 100644 --- a/src/Web/GPU/HTMLCanvasElement.purs +++ b/src/Web/GPU/HTMLCanvasElement.purs @@ -3,15 +3,11 @@ module Web.GPU.HTMLCanvasElement ) where import Data.Maybe (Maybe(..)) +import Effect.Uncurried(EffectFn3, runEffectFn3) import Effect (Effect) import Web.GPU.GPUCanvasContext (GPUCanvasContext) import Web.HTML (HTMLCanvasElement) -foreign import getContextImpl - :: (GPUCanvasContext -> Maybe GPUCanvasContext) - -> Maybe GPUCanvasContext - -> HTMLCanvasElement - -> Effect (Maybe GPUCanvasContext) - +foreign import getContextImpl :: EffectFn3 (GPUCanvasContext -> Maybe GPUCanvasContext) (Maybe GPUCanvasContext) HTMLCanvasElement (Maybe GPUCanvasContext) getContext ∷ HTMLCanvasElement → Effect (Maybe GPUCanvasContext) -getContext = getContextImpl Just Nothing \ No newline at end of file +getContext a = runEffectFn3 getContextImpl Just Nothing a \ No newline at end of file diff --git a/src/Web/GPU/Internal/RequiredAndOptional.js b/src/Web/GPU/Internal/RequiredAndOptional.js index 05d3405..47dec80 100644 --- a/src/Web/GPU/Internal/RequiredAndOptional.js +++ b/src/Web/GPU/Internal/RequiredAndOptional.js @@ -1,4 +1,4 @@ -export const requiredAndOptionalImpl = (required) => (optional) => ({ +export const requiredAndOptionalImpl = (required, optional) => ({ ...required, ...optional, }); diff --git a/src/Web/GPU/Internal/RequiredAndOptional.purs b/src/Web/GPU/Internal/RequiredAndOptional.purs index 85cf44e..9f8a398 100644 --- a/src/Web/GPU/Internal/RequiredAndOptional.purs +++ b/src/Web/GPU/Internal/RequiredAndOptional.purs @@ -8,13 +8,14 @@ module Web.GPU.Internal.RequiredAndOptional , requiredAndOptional ) where +import Data.Function.Uncurried (Fn2, runFn2) import Data.Newtype (class Newtype) import Prim.Row (class Union) import Unsafe.Coerce (unsafeCoerce) data RequiredAndOptional (required :: Row Type) (optional :: Row Type) -foreign import requiredAndOptionalImpl :: forall a b c. a -> b -> c +foreign import requiredAndOptionalImpl :: forall a b c. Fn2 a b c requiredAndOptional :: forall nt required optionalL optionalR optional @@ -23,7 +24,7 @@ requiredAndOptional => { | required } -> { | optionalL } -> nt -requiredAndOptional = requiredAndOptionalImpl +requiredAndOptional a b = runFn2 requiredAndOptionalImpl a b infixl 4 requiredAndOptional as ~ diff --git a/src/Web/GPU/Navigator.js b/src/Web/GPU/Navigator.js index 8af02c0..6c9d033 100644 --- a/src/Web/GPU/Navigator.js +++ b/src/Web/GPU/Navigator.js @@ -1,2 +1,2 @@ -export const gpuImpl = (just) => (nothing) => (navigator) => () => +export const gpuImpl = (just, nothing, navigator) => navigator.gpu ? just(navigator.gpu) : nothing; diff --git a/src/Web/GPU/Navigator.purs b/src/Web/GPU/Navigator.purs index 09b1ae4..049c7ff 100644 --- a/src/Web/GPU/Navigator.purs +++ b/src/Web/GPU/Navigator.purs @@ -2,12 +2,11 @@ module Web.GPU.Navigator (gpu) where import Data.Maybe (Maybe(..)) +import Effect.Uncurried(EffectFn3, runEffectFn3) import Effect (Effect) import Web.GPU.GPU (GPU) import Web.HTML.Navigator (Navigator) -foreign import gpuImpl - :: (GPU -> Maybe GPU) -> Maybe GPU -> Navigator -> Effect (Maybe GPU) - +foreign import gpuImpl :: EffectFn3 (GPU -> Maybe GPU) (Maybe GPU) Navigator (Maybe GPU) gpu :: Navigator -> Effect (Maybe GPU) -gpu = gpuImpl Just Nothing \ No newline at end of file +gpu a = runEffectFn3 gpuImpl Just Nothing a \ No newline at end of file