Trait GPUDeviceMethods
Source pub(crate) trait GPUDeviceMethods<D>{
Show 27 methods
// Required methods
fn Features(&self) -> Root<Dom<<D as DomTypes>::GPUSupportedFeatures>>;
fn Limits(&self) -> Root<Dom<<D as DomTypes>::GPUSupportedLimits>>;
fn AdapterInfo(&self) -> Root<Dom<<D as DomTypes>::GPUAdapterInfo>>;
fn GetQueue(&self) -> Root<Dom<<D as DomTypes>::GPUQueue>>;
fn Destroy(&self);
fn CreateBuffer(
&self,
cx: &mut JSContext,
descriptor: &GPUBufferDescriptor,
) -> Result<Root<Dom<<D as DomTypes>::GPUBuffer>>, Error>;
fn CreateTexture(
&self,
cx: &mut JSContext,
descriptor: &GPUTextureDescriptor,
) -> Result<Root<Dom<<D as DomTypes>::GPUTexture>>, Error>;
fn CreateSampler(
&self,
cx: &mut JSContext,
descriptor: &GPUSamplerDescriptor,
) -> Root<Dom<<D as DomTypes>::GPUSampler>>;
fn ImportExternalTexture(
&self,
cx: &mut JSContext,
descriptor: &GPUExternalTextureDescriptor<D>,
) -> Result<Root<Dom<<D as DomTypes>::GPUExternalTexture>>, Error>;
fn CreateBindGroupLayout(
&self,
cx: &mut JSContext,
descriptor: &GPUBindGroupLayoutDescriptor,
) -> Result<Root<Dom<<D as DomTypes>::GPUBindGroupLayout>>, Error>;
fn CreatePipelineLayout(
&self,
cx: &mut JSContext,
descriptor: &GPUPipelineLayoutDescriptor<D>,
) -> Root<Dom<<D as DomTypes>::GPUPipelineLayout>>;
fn CreateBindGroup(
&self,
cx: &mut JSContext,
descriptor: &GPUBindGroupDescriptor<D>,
) -> Root<Dom<<D as DomTypes>::GPUBindGroup>>;
fn CreateShaderModule(
&self,
realm: &mut CurrentRealm<'_>,
descriptor: RootedTraceableBox<GPUShaderModuleDescriptor>,
) -> Root<Dom<<D as DomTypes>::GPUShaderModule>>;
fn CreateComputePipeline(
&self,
cx: &mut JSContext,
descriptor: &GPUComputePipelineDescriptor<D>,
) -> Root<Dom<<D as DomTypes>::GPUComputePipeline>>;
fn CreateRenderPipeline(
&self,
cx: &mut JSContext,
descriptor: &GPURenderPipelineDescriptor<D>,
) -> Result<Root<Dom<<D as DomTypes>::GPURenderPipeline>>, Error>;
fn CreateComputePipelineAsync(
&self,
realm: &mut CurrentRealm<'_>,
descriptor: &GPUComputePipelineDescriptor<D>,
) -> <<D as DomTypes>::Promise as PromiseHelpers<D>>::StackRoot;
fn CreateRenderPipelineAsync(
&self,
realm: &mut CurrentRealm<'_>,
descriptor: &GPURenderPipelineDescriptor<D>,
) -> Result<<<D as DomTypes>::Promise as PromiseHelpers<D>>::StackRoot, Error>;
fn CreateCommandEncoder(
&self,
cx: &mut JSContext,
descriptor: &GPUCommandEncoderDescriptor,
) -> Root<Dom<<D as DomTypes>::GPUCommandEncoder>>;
fn CreateRenderBundleEncoder(
&self,
cx: &mut JSContext,
descriptor: &GPURenderBundleEncoderDescriptor,
) -> Result<Root<Dom<<D as DomTypes>::GPURenderBundleEncoder>>, Error>;
fn CreateQuerySet(
&self,
cx: &mut JSContext,
descriptor: &GPUQuerySetDescriptor,
) -> Result<Root<Dom<<D as DomTypes>::GPUQuerySet>>, Error>;
fn Lost(
&self,
cx: &JSContext,
) -> <<D as DomTypes>::Promise as PromiseHelpers<D>>::StackRoot;
fn PushErrorScope(&self, filter: GPUErrorFilter);
fn PopErrorScope(
&self,
realm: &mut CurrentRealm<'_>,
) -> <<D as DomTypes>::Promise as PromiseHelpers<D>>::StackRoot;
fn GetOnuncapturederror(
&self,
cx: &mut JSContext,
) -> Option<Rc<EventHandlerNonNull<D>>>;
fn SetOnuncapturederror(
&self,
cx: &mut JSContext,
value: Option<Rc<EventHandlerNonNull<D>>>,
);
fn Label(&self) -> USVString;
fn SetLabel(&self, cx: &NoGC, value: USVString);
}