mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
fix(deno): don't default to 0 for setVertexBuffer.size & properly use webidl.setlike (#3493)
This commit is contained in:
parent
074d1da831
commit
ea2f20ccb0
@ -614,11 +614,12 @@
|
||||
/** @type {GPUSupportedFeatures} */
|
||||
const supportedFeatures = webidl.createBranded(GPUSupportedFeatures);
|
||||
supportedFeatures[webidl.setlikeInner] = new Set(features);
|
||||
return webidl.setlike(
|
||||
webidl.setlike(
|
||||
supportedFeatures,
|
||||
GPUSupportedFeaturesPrototype,
|
||||
true,
|
||||
);
|
||||
return supportedFeatures;
|
||||
}
|
||||
|
||||
class GPUSupportedFeatures {
|
||||
@ -4916,14 +4917,14 @@
|
||||
* @param {number} offset
|
||||
* @param {number} size
|
||||
*/
|
||||
setVertexBuffer(slot, buffer, offset = 0, size = 0) {
|
||||
setVertexBuffer(slot, buffer, offset = 0, size) {
|
||||
webidl.assertBranded(this, GPURenderBundleEncoderPrototype);
|
||||
const prefix =
|
||||
"Failed to execute 'setVertexBuffer' on 'GPURenderBundleEncoder'";
|
||||
webidl.requiredArguments(arguments.length, 2, { prefix });
|
||||
slot = webidl.converters.GPUSize32(slot, {
|
||||
prefix,
|
||||
context: "Argument 2",
|
||||
context: "Argument 1",
|
||||
});
|
||||
buffer = webidl.converters.GPUBuffer(buffer, {
|
||||
prefix,
|
||||
@ -4933,10 +4934,12 @@
|
||||
prefix,
|
||||
context: "Argument 3",
|
||||
});
|
||||
size = webidl.converters.GPUSize64(size, {
|
||||
prefix,
|
||||
context: "Argument 4",
|
||||
});
|
||||
if (size !== undefined) {
|
||||
size = webidl.converters.GPUSize64(size, {
|
||||
prefix,
|
||||
context: "Argument 4",
|
||||
});
|
||||
}
|
||||
const device = assertDevice(this, { prefix, context: "this" });
|
||||
const renderBundleEncoderRid = assertResource(this, {
|
||||
prefix,
|
||||
|
||||
@ -274,7 +274,7 @@ pub fn op_webgpu_render_bundle_encoder_set_vertex_buffer(
|
||||
slot: u32,
|
||||
buffer: ResourceId,
|
||||
offset: u64,
|
||||
size: u64,
|
||||
size: Option<u64>,
|
||||
) -> Result<WebGpuResult, AnyError> {
|
||||
let buffer_resource = state
|
||||
.resource_table
|
||||
@ -282,9 +282,14 @@ pub fn op_webgpu_render_bundle_encoder_set_vertex_buffer(
|
||||
let render_bundle_encoder_resource = state
|
||||
.resource_table
|
||||
.get::<WebGpuRenderBundleEncoder>(render_bundle_encoder_rid)?;
|
||||
let size = Some(
|
||||
std::num::NonZeroU64::new(size).ok_or_else(|| type_error("size must be larger than 0"))?,
|
||||
);
|
||||
let size = if let Some(size) = size {
|
||||
Some(
|
||||
std::num::NonZeroU64::new(size)
|
||||
.ok_or_else(|| type_error("size must be larger than 0"))?,
|
||||
)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
wgpu_core::command::bundle_ffi::wgpu_render_bundle_set_vertex_buffer(
|
||||
&mut render_bundle_encoder_resource.0.borrow_mut(),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user