Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h

Issue 2773843002: Fix state management of transform feedback buffers. (Closed)
Patch Set: Implemented proper attach/detach/unbind for WebGLTransformFeedback. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef WebGL2RenderingContextBase_h 5 #ifndef WebGL2RenderingContextBase_h
6 #define WebGL2RenderingContextBase_h 6 #define WebGL2RenderingContextBase_h
7 7
8 #include "bindings/core/v8/TraceWrapperMember.h" 8 #include "bindings/core/v8/TraceWrapperMember.h"
9 #include "modules/webgl/WebGLExtension.h" 9 #include "modules/webgl/WebGLExtension.h"
10 #include "modules/webgl/WebGLRenderingContextBase.h" 10 #include "modules/webgl/WebGLRenderingContextBase.h"
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 void pixelStorei(GLenum pname, GLint param) override; 965 void pixelStorei(GLenum pname, GLint param) override;
966 void readPixels(GLint x, 966 void readPixels(GLint x,
967 GLint y, 967 GLint y,
968 GLsizei width, 968 GLsizei width,
969 GLsizei height, 969 GLsizei height,
970 GLenum format, 970 GLenum format,
971 GLenum type, 971 GLenum type,
972 MaybeShared<DOMArrayBufferView> pixels) override; 972 MaybeShared<DOMArrayBufferView> pixels) override;
973 void RestoreCurrentFramebuffer() override; 973 void RestoreCurrentFramebuffer() override;
974 974
975 /* Helpers */
976 GLint GetMaxTransformFeedbackSeparateAttribs() const;
977
975 DECLARE_VIRTUAL_TRACE(); 978 DECLARE_VIRTUAL_TRACE();
976 DECLARE_VIRTUAL_TRACE_WRAPPERS(); 979 DECLARE_VIRTUAL_TRACE_WRAPPERS();
977 980
978 protected: 981 protected:
979 friend class V8WebGL2RenderingContext; 982 friend class V8WebGL2RenderingContext;
980 friend class WebGLGetBufferSubDataAsync; 983 friend class WebGLGetBufferSubDataAsync;
981 984
982 WebGL2RenderingContextBase( 985 WebGL2RenderingContextBase(
983 HTMLCanvasElement*, 986 HTMLCanvasElement*,
984 std::unique_ptr<WebGraphicsContext3DProvider>, 987 std::unique_ptr<WebGraphicsContext3DProvider>,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 1102
1100 void RenderbufferStorageHelper(GLenum target, 1103 void RenderbufferStorageHelper(GLenum target,
1101 GLsizei samples, 1104 GLsizei samples,
1102 GLenum internalformat, 1105 GLenum internalformat,
1103 GLsizei width, 1106 GLsizei width,
1104 GLsizei height, 1107 GLsizei height,
1105 const char* function_name); 1108 const char* function_name);
1106 1109
1107 TraceWrapperMember<WebGLFramebuffer> read_framebuffer_binding_; 1110 TraceWrapperMember<WebGLFramebuffer> read_framebuffer_binding_;
1108 TraceWrapperMember<WebGLTransformFeedback> transform_feedback_binding_; 1111 TraceWrapperMember<WebGLTransformFeedback> transform_feedback_binding_;
1112 // This instance isn't exposed to JavaScript, which is why it's a
1113 // Member rather than TraceWrapperMember.
1114 Member<WebGLTransformFeedback> default_transform_feedback_;
1109 1115
1110 std::set<GLenum> supported_internal_formats_storage_; 1116 std::set<GLenum> supported_internal_formats_storage_;
1111 std::set<GLenum> compressed_texture_formats_etc2eac_; 1117 std::set<GLenum> compressed_texture_formats_etc2eac_;
1112 1118
1113 TraceWrapperMember<WebGLBuffer> bound_copy_read_buffer_; 1119 TraceWrapperMember<WebGLBuffer> bound_copy_read_buffer_;
1114 TraceWrapperMember<WebGLBuffer> bound_copy_write_buffer_; 1120 TraceWrapperMember<WebGLBuffer> bound_copy_write_buffer_;
1115 TraceWrapperMember<WebGLBuffer> bound_pixel_pack_buffer_; 1121 TraceWrapperMember<WebGLBuffer> bound_pixel_pack_buffer_;
1116 TraceWrapperMember<WebGLBuffer> bound_pixel_unpack_buffer_; 1122 TraceWrapperMember<WebGLBuffer> bound_pixel_unpack_buffer_;
1117 TraceWrapperMember<WebGLBuffer> bound_transform_feedback_buffer_;
1118 TraceWrapperMember<WebGLBuffer> bound_uniform_buffer_; 1123 TraceWrapperMember<WebGLBuffer> bound_uniform_buffer_;
1119 1124
1120 HeapVector<TraceWrapperMember<WebGLBuffer>>
1121 bound_indexed_transform_feedback_buffers_;
1122 HeapVector<TraceWrapperMember<WebGLBuffer>> bound_indexed_uniform_buffers_; 1125 HeapVector<TraceWrapperMember<WebGLBuffer>> bound_indexed_uniform_buffers_;
1123 GLint max_transform_feedback_separate_attribs_; 1126 GLint max_transform_feedback_separate_attribs_;
1124 size_t max_bound_uniform_buffer_index_; 1127 size_t max_bound_uniform_buffer_index_;
1125 1128
1126 TraceWrapperMember<WebGLQuery> current_boolean_occlusion_query_; 1129 TraceWrapperMember<WebGLQuery> current_boolean_occlusion_query_;
1127 TraceWrapperMember<WebGLQuery> 1130 TraceWrapperMember<WebGLQuery>
1128 current_transform_feedback_primitives_written_query_; 1131 current_transform_feedback_primitives_written_query_;
1129 TraceWrapperMember<WebGLQuery> current_elapsed_query_; 1132 TraceWrapperMember<WebGLQuery> current_elapsed_query_;
1130 HeapVector<TraceWrapperMember<WebGLSampler>> sampler_units_; 1133 HeapVector<TraceWrapperMember<WebGLSampler>> sampler_units_;
1131 1134
(...skipping 15 matching lines...) Expand all
1147 context, 1150 context,
1148 context->Is3d() && 1151 context->Is3d() &&
1149 WebGLRenderingContextBase::GetWebGLVersion(context) >= 2, 1152 WebGLRenderingContextBase::GetWebGLVersion(context) >= 2,
1150 context.Is3d() && 1153 context.Is3d() &&
1151 WebGLRenderingContextBase::GetWebGLVersion(&context) >= 1154 WebGLRenderingContextBase::GetWebGLVersion(&context) >=
1152 2); 1155 2);
1153 1156
1154 } // namespace blink 1157 } // namespace blink
1155 1158
1156 #endif 1159 #endif
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698