avm2: Improve Graphics.drawGraphicsData stubs
We now produce stubs or clearer errors for unsupported argument combinations, instead of unclear `RustError`s
This commit is contained in:
parent
ba3d1bbf66
commit
9a96941de9
|
@ -1438,27 +1438,31 @@ fn handle_graphics_triangle_path<'gc>(
|
||||||
culling_to_triangle_culling(activation, culling)?
|
culling_to_triangle_culling(activation, culling)?
|
||||||
};
|
};
|
||||||
|
|
||||||
let vertices = obj
|
let vertices = obj.get_public_property("vertices", activation)?.as_object();
|
||||||
.get_public_property("vertices", activation)?
|
|
||||||
.coerce_to_object(activation)?;
|
|
||||||
|
|
||||||
let indices = obj
|
let indices = obj.get_public_property("indices", activation)?.as_object();
|
||||||
.get_public_property("indices", activation)?
|
|
||||||
.coerce_to_object(activation)?;
|
|
||||||
|
|
||||||
let _uvt_data = obj
|
let _uvt_data = obj.get_public_property("uvtData", activation)?.as_object();
|
||||||
.get_public_property("uvtData", activation)?
|
|
||||||
.coerce_to_object(activation)?;
|
|
||||||
|
|
||||||
|
if _uvt_data.is_some() {
|
||||||
avm2_stub_method!(
|
avm2_stub_method!(
|
||||||
activation,
|
activation,
|
||||||
"flash.display.Graphics",
|
"flash.display.Graphics",
|
||||||
"drawGraphicsData",
|
"drawGraphicsData",
|
||||||
"with uvt data"
|
"with uvt data"
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(vertices) = vertices {
|
||||||
|
if let Some(indices) = indices {
|
||||||
|
let vertices = vertices
|
||||||
|
.as_vector_storage()
|
||||||
|
.expect("vertices is not a Vector");
|
||||||
|
|
||||||
|
let indices = indices
|
||||||
|
.as_vector_storage()
|
||||||
|
.expect("indices is not a Vector");
|
||||||
|
|
||||||
if let Some(vertices) = vertices.as_vector_storage() {
|
|
||||||
if let Some(indices) = indices.as_vector_storage() {
|
|
||||||
fn read_point<'gc>(
|
fn read_point<'gc>(
|
||||||
vertices: &VectorStorage<'gc>,
|
vertices: &VectorStorage<'gc>,
|
||||||
index: usize,
|
index: usize,
|
||||||
|
@ -1507,7 +1511,12 @@ fn handle_graphics_triangle_path<'gc>(
|
||||||
draw_triangle_internal(activation, triangle, drawing, culling);
|
draw_triangle_internal(activation, triangle, drawing, culling);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
panic!("Indices is not a vector");
|
avm2_stub_method!(
|
||||||
|
activation,
|
||||||
|
"flash.display.Graphics",
|
||||||
|
"drawGraphicsData",
|
||||||
|
"with null indices"
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue