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

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

Issue 2773843002: Fix state management of transform feedback buffers. (Closed)
Patch Set: Created 3 years, 9 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
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 922 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 void pixelStorei(GLenum pname, GLint param) override; 933 void pixelStorei(GLenum pname, GLint param) override;
934 void readPixels(GLint x, 934 void readPixels(GLint x,
935 GLint y, 935 GLint y,
936 GLsizei width, 936 GLsizei width,
937 GLsizei height, 937 GLsizei height,
938 GLenum format, 938 GLenum format,
939 GLenum type, 939 GLenum type,
940 DOMArrayBufferView* pixels) override; 940 DOMArrayBufferView* pixels) override;
941 void restoreCurrentFramebuffer() override; 941 void restoreCurrentFramebuffer() override;
942 942
943 /* Helpers */
944 GLint getMaxTransformFeedbackSeparateAttribs() const;
945
943 DECLARE_VIRTUAL_TRACE(); 946 DECLARE_VIRTUAL_TRACE();
944 DECLARE_VIRTUAL_TRACE_WRAPPERS(); 947 DECLARE_VIRTUAL_TRACE_WRAPPERS();
945 948
946 protected: 949 protected:
947 friend class V8WebGL2RenderingContext; 950 friend class V8WebGL2RenderingContext;
948 friend class WebGLGetBufferSubDataAsync; 951 friend class WebGLGetBufferSubDataAsync;
949 952
950 WebGL2RenderingContextBase( 953 WebGL2RenderingContextBase(
951 HTMLCanvasElement*, 954 HTMLCanvasElement*,
952 std::unique_ptr<WebGraphicsContext3DProvider>, 955 std::unique_ptr<WebGraphicsContext3DProvider>,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1069 1072
1070 void renderbufferStorageHelper(GLenum target, 1073 void renderbufferStorageHelper(GLenum target,
1071 GLsizei samples, 1074 GLsizei samples,
1072 GLenum internalformat, 1075 GLenum internalformat,
1073 GLsizei width, 1076 GLsizei width,
1074 GLsizei height, 1077 GLsizei height,
1075 const char* functionName); 1078 const char* functionName);
1076 1079
1077 TraceWrapperMember<WebGLFramebuffer> m_readFramebufferBinding; 1080 TraceWrapperMember<WebGLFramebuffer> m_readFramebufferBinding;
1078 TraceWrapperMember<WebGLTransformFeedback> m_transformFeedbackBinding; 1081 TraceWrapperMember<WebGLTransformFeedback> m_transformFeedbackBinding;
1082 // This instance isn't exposed to JavaScript, which is why it's a
1083 // Member rather than TraceWrapperMember.
1084 Member<WebGLTransformFeedback> m_defaultTransformFeedback;
1079 1085
1080 std::set<GLenum> m_supportedInternalFormatsStorage; 1086 std::set<GLenum> m_supportedInternalFormatsStorage;
1081 std::set<GLenum> m_compressedTextureFormatsETC2EAC; 1087 std::set<GLenum> m_compressedTextureFormatsETC2EAC;
1082 1088
1083 TraceWrapperMember<WebGLBuffer> m_boundCopyReadBuffer; 1089 TraceWrapperMember<WebGLBuffer> m_boundCopyReadBuffer;
1084 TraceWrapperMember<WebGLBuffer> m_boundCopyWriteBuffer; 1090 TraceWrapperMember<WebGLBuffer> m_boundCopyWriteBuffer;
1085 TraceWrapperMember<WebGLBuffer> m_boundPixelPackBuffer; 1091 TraceWrapperMember<WebGLBuffer> m_boundPixelPackBuffer;
1086 TraceWrapperMember<WebGLBuffer> m_boundPixelUnpackBuffer; 1092 TraceWrapperMember<WebGLBuffer> m_boundPixelUnpackBuffer;
1087 TraceWrapperMember<WebGLBuffer> m_boundTransformFeedbackBuffer;
1088 TraceWrapperMember<WebGLBuffer> m_boundUniformBuffer; 1093 TraceWrapperMember<WebGLBuffer> m_boundUniformBuffer;
1089 1094
1090 HeapVector<TraceWrapperMember<WebGLBuffer>>
1091 m_boundIndexedTransformFeedbackBuffers;
1092 HeapVector<TraceWrapperMember<WebGLBuffer>> m_boundIndexedUniformBuffers; 1095 HeapVector<TraceWrapperMember<WebGLBuffer>> m_boundIndexedUniformBuffers;
1093 GLint m_maxTransformFeedbackSeparateAttribs; 1096 GLint m_maxTransformFeedbackSeparateAttribs;
1094 size_t m_maxBoundUniformBufferIndex; 1097 size_t m_maxBoundUniformBufferIndex;
1095 1098
1096 TraceWrapperMember<WebGLQuery> m_currentBooleanOcclusionQuery; 1099 TraceWrapperMember<WebGLQuery> m_currentBooleanOcclusionQuery;
1097 TraceWrapperMember<WebGLQuery> 1100 TraceWrapperMember<WebGLQuery>
1098 m_currentTransformFeedbackPrimitivesWrittenQuery; 1101 m_currentTransformFeedbackPrimitivesWrittenQuery;
1099 TraceWrapperMember<WebGLQuery> m_currentElapsedQuery; 1102 TraceWrapperMember<WebGLQuery> m_currentElapsedQuery;
1100 HeapVector<TraceWrapperMember<WebGLSampler>> m_samplerUnits; 1103 HeapVector<TraceWrapperMember<WebGLSampler>> m_samplerUnits;
1101 1104
(...skipping 15 matching lines...) Expand all
1117 context, 1120 context,
1118 context->is3d() && 1121 context->is3d() &&
1119 WebGLRenderingContextBase::getWebGLVersion(context) >= 2, 1122 WebGLRenderingContextBase::getWebGLVersion(context) >= 2,
1120 context.is3d() && 1123 context.is3d() &&
1121 WebGLRenderingContextBase::getWebGLVersion(&context) >= 1124 WebGLRenderingContextBase::getWebGLVersion(&context) >=
1122 2); 1125 2);
1123 1126
1124 } // namespace blink 1127 } // namespace blink
1125 1128
1126 #endif 1129 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698