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 = [ ...@@ -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_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.cc",
"$bindings_modules_v8_output_dir/string_or_unsigned_long.h", "$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.cc",
"$bindings_modules_v8_output_dir/unsigned_long_or_unsigned_long_sequence.h", "$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", "$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( ...@@ -49,4 +49,16 @@ base::span<const int32_t> WebGLMultiDrawCommon::MakeSpan(
array.GetAsLongSequence().size()); 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 } // namespace blink
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/containers/span.h" #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/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_extension.h"
namespace blink { namespace blink {
...@@ -27,6 +28,9 @@ class WebGLMultiDrawCommon { ...@@ -27,6 +28,9 @@ class WebGLMultiDrawCommon {
static base::span<const int32_t> MakeSpan( static base::span<const int32_t> MakeSpan(
const Int32ArrayOrLongSequence& array); const Int32ArrayOrLongSequence& array);
static base::span<const uint32_t> MakeSpan(
const Uint32ArrayOrUnsignedLongSequence& array);
}; };
} // namespace blink } // namespace blink
......
...@@ -61,7 +61,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance:: ...@@ -61,7 +61,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
GLuint counts_offset, GLuint counts_offset,
const base::span<const int32_t> instance_counts, const base::span<const int32_t> instance_counts,
GLuint instance_counts_offset, GLuint instance_counts_offset,
const base::span<const int32_t> baseinstances, const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset, GLuint baseinstances_offset,
GLsizei drawcount) { GLsizei drawcount) {
WebGLExtensionScopedContext scoped(this); WebGLExtensionScopedContext scoped(this);
...@@ -87,8 +87,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance:: ...@@ -87,8 +87,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
scoped.Context()->ContextGL()->MultiDrawArraysInstancedBaseInstanceWEBGL( scoped.Context()->ContextGL()->MultiDrawArraysInstancedBaseInstanceWEBGL(
mode, &firsts[firsts_offset], &counts[counts_offset], mode, &firsts[firsts_offset], &counts[counts_offset],
&instance_counts[instance_counts_offset], &instance_counts[instance_counts_offset],
reinterpret_cast<const GLuint*>(&baseinstances[baseinstances_offset]), &baseinstances[baseinstances_offset], drawcount);
drawcount);
} }
void WebGLMultiDrawInstancedBaseVertexBaseInstance:: void WebGLMultiDrawInstancedBaseVertexBaseInstance::
...@@ -103,7 +102,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance:: ...@@ -103,7 +102,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
GLuint instance_counts_offset, GLuint instance_counts_offset,
const base::span<const int32_t> basevertices, const base::span<const int32_t> basevertices,
GLuint basevertices_offset, GLuint basevertices_offset,
const base::span<const int32_t> baseinstances, const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset, GLuint baseinstances_offset,
GLsizei drawcount) { GLsizei drawcount) {
WebGLExtensionScopedContext scoped(this); WebGLExtensionScopedContext scoped(this);
...@@ -140,8 +139,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance:: ...@@ -140,8 +139,7 @@ void WebGLMultiDrawInstancedBaseVertexBaseInstance::
mode, &counts[counts_offset], type, &offsets[offsets_offset], mode, &counts[counts_offset], type, &offsets[offsets_offset],
&instance_counts[instance_counts_offset], &instance_counts[instance_counts_offset],
&basevertices[basevertices_offset], &basevertices[basevertices_offset],
reinterpret_cast<const GLuint*>(&baseinstances[baseinstances_offset]), &baseinstances[baseinstances_offset], drawcount);
drawcount);
} }
} // namespace blink } // namespace blink
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_MULTI_DRAW_INSTANCED_BASE_VERTEX_BASE_INSTANCE_H_ #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/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_extension.h"
#include "third_party/blink/renderer/modules/webgl/webgl_multi_draw_common.h" #include "third_party/blink/renderer/modules/webgl/webgl_multi_draw_common.h"
#include "third_party/blink/renderer/platform/wtf/vector.h" #include "third_party/blink/renderer/platform/wtf/vector.h"
...@@ -32,7 +33,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final ...@@ -32,7 +33,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint counts_offset, GLuint counts_offset,
Int32ArrayOrLongSequence instance_counts_list, Int32ArrayOrLongSequence instance_counts_list,
GLuint instance_counts_offset, GLuint instance_counts_offset,
Int32ArrayOrLongSequence baseinstances_list, Uint32ArrayOrUnsignedLongSequence baseinstances_list,
GLuint baseinstances_offset, GLuint baseinstances_offset,
GLsizei drawcount) { GLsizei drawcount) {
multiDrawArraysInstancedBaseInstanceImpl( multiDrawArraysInstancedBaseInstanceImpl(
...@@ -52,7 +53,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final ...@@ -52,7 +53,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint instance_counts_offset, GLuint instance_counts_offset,
Int32ArrayOrLongSequence basevertices_list, Int32ArrayOrLongSequence basevertices_list,
GLuint basevertices_offset, GLuint basevertices_offset,
Int32ArrayOrLongSequence baseinstances_list, Uint32ArrayOrUnsignedLongSequence baseinstances_list,
GLuint baseinstances_offset, GLuint baseinstances_offset,
GLsizei drawcount) { GLsizei drawcount) {
multiDrawElementsInstancedBaseVertexBaseInstanceImpl( multiDrawElementsInstancedBaseVertexBaseInstanceImpl(
...@@ -72,7 +73,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final ...@@ -72,7 +73,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint counts_offset, GLuint counts_offset,
const base::span<const int32_t> instance_counts, const base::span<const int32_t> instance_counts,
GLuint instance_counts_offset, GLuint instance_counts_offset,
const base::span<const int32_t> baseinstances, const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset, GLuint baseinstances_offset,
GLsizei drawcount); GLsizei drawcount);
...@@ -87,7 +88,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final ...@@ -87,7 +88,7 @@ class WebGLMultiDrawInstancedBaseVertexBaseInstance final
GLuint instance_counts_offset, GLuint instance_counts_offset,
const base::span<const int32_t> basevertices, const base::span<const int32_t> basevertices,
GLuint basevertices_offset, GLuint basevertices_offset,
const base::span<const int32_t> baseinstances, const base::span<const uint32_t> baseinstances,
GLuint baseinstances_offset, GLuint baseinstances_offset,
GLsizei drawcount); GLsizei drawcount);
}; };
......
...@@ -14,7 +14,7 @@ interface WebGLMultiDrawInstancedBaseVertexBaseInstance { ...@@ -14,7 +14,7 @@ interface WebGLMultiDrawInstancedBaseVertexBaseInstance {
GLuint countsOffset, GLuint countsOffset,
(Int32Array or sequence<long>) instanceCountsList, (Int32Array or sequence<long>) instanceCountsList,
GLuint instanceCountsOffset, GLuint instanceCountsOffset,
(Int32Array or sequence<long>) baseInstancesList, (Uint32Array or sequence<unsigned long>) baseInstancesList,
GLuint baseInstancesOffset, GLuint baseInstancesOffset,
GLsizei drawcount); GLsizei drawcount);
...@@ -29,7 +29,7 @@ interface WebGLMultiDrawInstancedBaseVertexBaseInstance { ...@@ -29,7 +29,7 @@ interface WebGLMultiDrawInstancedBaseVertexBaseInstance {
GLuint instanceCountsOffset, GLuint instanceCountsOffset,
(Int32Array or sequence<long>) baseVerticesList, (Int32Array or sequence<long>) baseVerticesList,
GLuint baseVerticesOffset, GLuint baseVerticesOffset,
(Int32Array or sequence<long>) baseInstancesList, (Uint32Array or sequence<unsigned long>) baseInstancesList,
GLuint baseInstancesOffset, GLuint baseInstancesOffset,
GLsizei drawcount); 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