Commit 61e32bf1 authored by shrekshao's avatar shrekshao Committed by Commit Bot

Update WEBGL_multi_draw_instanced_base_vertex_base_instance function argument types

Sync with spec update:
https://github.com/KhronosGroup/WebGL/pull/3115

Bug: angleproject:4838
Change-Id: Iefa754f90b42f8557c4aa088d0bad5b0d2013317
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2304134Reviewed-by: default avatarKenneth Russell <kbr@chromium.org>
Reviewed-by: default avatarJeremy Roman <jbroman@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
Cr-Commit-Position: refs/heads/master@{#789687}
parent d2815554
......@@ -99,6 +99,8 @@ bindings_modules_generated_union_type_files = [
"$bindings_modules_v8_output_dir/string_or_string_sequence_or_constrain_dom_string_parameters.h",
"$bindings_modules_v8_output_dir/string_or_unsigned_long.cc",
"$bindings_modules_v8_output_dir/string_or_unsigned_long.h",
"$bindings_modules_v8_output_dir/uint32_array_or_unsigned_long_sequence.cc",
"$bindings_modules_v8_output_dir/uint32_array_or_unsigned_long_sequence.h",
"$bindings_modules_v8_output_dir/unsigned_long_or_unsigned_long_sequence.cc",
"$bindings_modules_v8_output_dir/unsigned_long_or_unsigned_long_sequence.h",
"$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_extent_3d_dict.cc",
......
......@@ -49,4 +49,16 @@ base::span<const int32_t> WebGLMultiDrawCommon::MakeSpan(
array.GetAsLongSequence().size());
}
// static
base::span<const uint32_t> WebGLMultiDrawCommon::MakeSpan(
const Uint32ArrayOrUnsignedLongSequence& array) {
if (array.IsUint32Array()) {
return base::span<const uint32_t>(
array.GetAsUint32Array().View()->Data(),
array.GetAsUint32Array().View()->lengthAsSizeT());
}
return base::span<const uint32_t>(array.GetAsUnsignedLongSequence().data(),
array.GetAsUnsignedLongSequence().size());
}
} // namespace blink
......@@ -7,6 +7,7 @@
#include "base/containers/span.h"
#include "third_party/blink/renderer/bindings/modules/v8/int32_array_or_long_sequence.h"
#include "third_party/blink/renderer/bindings/modules/v8/uint32_array_or_unsigned_long_sequence.h"
#include "third_party/blink/renderer/modules/webgl/webgl_extension.h"
namespace blink {
......@@ -27,6 +28,9 @@ class WebGLMultiDrawCommon {
static base::span<const int32_t> MakeSpan(
const Int32ArrayOrLongSequence& array);
static base::span<const uint32_t> MakeSpan(
const Uint32ArrayOrUnsignedLongSequence& array);
};
} // namespace blink
......
......@@ -61,7 +61,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
GLuint counts_offset,
const base::span<const int32_t> instance_counts,
GLuint instance_counts_offset,
const base::span<const int32_t> baseinstances,
const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset,
GLsizei drawcount) {
WebGLExtensionScopedContext scoped(this);
......@@ -87,8 +87,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
scoped.Context()->ContextGL()->MultiDrawArraysInstancedBaseInstanceWEBGL(
mode, &firsts[firsts_offset], &counts[counts_offset],
&instance_counts[instance_counts_offset],
reinterpret_cast<const GLuint*>(&baseinstances[baseinstances_offset]),
drawcount);
&baseinstances[baseinstances_offset], drawcount);
}
void WebGLMultiDrawInstancedBaseVertexBaseInstance::
......@@ -103,7 +102,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
GLuint instance_counts_offset,
const base::span<const int32_t> basevertices,
GLuint basevertices_offset,
const base::span<const int32_t> baseinstances,
const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset,
GLsizei drawcount) {
WebGLExtensionScopedContext scoped(this);
......@@ -140,8 +139,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
mode, &counts[counts_offset], type, &offsets[offsets_offset],
&instance_counts[instance_counts_offset],
&basevertices[basevertices_offset],
reinterpret_cast<const GLuint*>(&baseinstances[baseinstances_offset]),
drawcount);
&baseinstances[baseinstances_offset], drawcount);
}
} // namespace blink
......@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_MULTI_DRAW_INSTANCED_BASE_VERTEX_BASE_INSTANCE_H_
#include "third_party/blink/renderer/bindings/modules/v8/int32_array_or_long_sequence.h"
#include "third_party/blink/renderer/bindings/modules/v8/uint32_array_or_unsigned_long_sequence.h"
#include "third_party/blink/renderer/modules/webgl/webgl_extension.h"
#include "third_party/blink/renderer/modules/webgl/webgl_multi_draw_common.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
......@@ -32,7 +33,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint counts_offset,
Int32ArrayOrLongSequence instance_counts_list,
GLuint instance_counts_offset,
Int32ArrayOrLongSequence baseinstances_list,
Uint32ArrayOrUnsignedLongSequence baseinstances_list,
GLuint baseinstances_offset,
GLsizei drawcount) {
multiDrawArraysInstancedBaseInstanceImpl(
......@@ -52,7 +53,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint instance_counts_offset,
Int32ArrayOrLongSequence basevertices_list,
GLuint basevertices_offset,
Int32ArrayOrLongSequence baseinstances_list,
Uint32ArrayOrUnsignedLongSequence baseinstances_list,
GLuint baseinstances_offset,
GLsizei drawcount) {
multiDrawElementsInstancedBaseVertexBaseInstanceImpl(
......@@ -72,7 +73,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint counts_offset,
const base::span<const int32_t> instance_counts,
GLuint instance_counts_offset,
const base::span<const int32_t> baseinstances,
const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset,
GLsizei drawcount);
......@@ -87,7 +88,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint instance_counts_offset,
const base::span<const int32_t> basevertices,
GLuint basevertices_offset,
const base::span<const int32_t> baseinstances,
const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset,
GLsizei drawcount);
};
......
......@@ -14,7 +14,7 @@ interface WebGLMultiDrawInstancedBaseVertexBaseInstance {
GLuint countsOffset,
(Int32Array or sequence<long>) instanceCountsList,
GLuint instanceCountsOffset,
(Int32Array or sequence<long>) baseInstancesList,
(Uint32Array or sequence<unsigned long>) baseInstancesList,
GLuint baseInstancesOffset,
GLsizei drawcount);
......@@ -29,7 +29,7 @@ interface WebGLMultiDrawInstancedBaseVertexBaseInstance {
GLuint instanceCountsOffset,
(Int32Array or sequence<long>) baseVerticesList,
GLuint baseVerticesOffset,
(Int32Array or sequence<long>) baseInstancesList,
(Uint32Array or sequence<unsigned long>) baseInstancesList,
GLuint baseInstancesOffset,
GLsizei drawcount);
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment