| Index: third_party/WebKit/Source/modules/webgl/WebGLTransformFeedback.h
|
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGLTransformFeedback.h b/third_party/WebKit/Source/modules/webgl/WebGLTransformFeedback.h
|
| index be3551d95fe97cba9b8509811d2351403ef6cc34..f0a748ce057bdcdfb14a19d2f62219f64898eb7a 100644
|
| --- a/third_party/WebKit/Source/modules/webgl/WebGLTransformFeedback.h
|
| +++ b/third_party/WebKit/Source/modules/webgl/WebGLTransformFeedback.h
|
| @@ -12,14 +12,22 @@
|
| namespace blink {
|
|
|
| class WebGL2RenderingContextBase;
|
| +class WebGLBuffer;
|
|
|
| class WebGLTransformFeedback : public WebGLSharedPlatform3DObject {
|
| DEFINE_WRAPPERTYPEINFO();
|
|
|
| public:
|
| + enum TFType {
|
| + TFTypeDefault,
|
| + TFTypeUser,
|
| + };
|
| +
|
| ~WebGLTransformFeedback() override;
|
|
|
| - static WebGLTransformFeedback* create(WebGL2RenderingContextBase*);
|
| + static WebGLTransformFeedback* create(WebGL2RenderingContextBase*, TFType);
|
| +
|
| + bool isDefaultObject() const { return m_type == TFTypeDefault; }
|
|
|
| GLenum getTarget() const { return m_target; }
|
| void setTarget(GLenum);
|
| @@ -29,18 +37,37 @@ class WebGLTransformFeedback : public WebGLSharedPlatform3DObject {
|
| WebGLProgram* getProgram() const { return m_program; }
|
| void setProgram(WebGLProgram*);
|
|
|
| - DECLARE_TRACE();
|
| + // This is the generic bind point for the transform feedback buffer.
|
| + void setBoundTransformFeedbackBuffer(WebGLBuffer*);
|
| + WebGLBuffer* getBoundTransformFeedbackBuffer() const;
|
| +
|
| + // These are the indexed bind points for transform feedback buffers.
|
| + // Returns false if index is out of range and the caller should
|
| + // synthesize a GL error.
|
| + bool setBoundIndexedTransformFeedbackBuffer(GLuint index, WebGLBuffer*);
|
| + bool getBoundIndexedTransformFeedbackBuffer(GLuint index,
|
| + WebGLBuffer** outBuffer) const;
|
| +
|
| + bool isBufferBoundToTransformFeedback(WebGLBuffer*);
|
| +
|
| + DECLARE_VIRTUAL_TRACE();
|
| + DECLARE_VIRTUAL_TRACE_WRAPPERS();
|
|
|
| protected:
|
| - explicit WebGLTransformFeedback(WebGL2RenderingContextBase*);
|
| + explicit WebGLTransformFeedback(WebGL2RenderingContextBase*, TFType);
|
|
|
| void deleteObjectImpl(gpu::gles2::GLES2Interface*) override;
|
|
|
| private:
|
| bool isTransformFeedback() const override { return true; }
|
|
|
| + TFType m_type;
|
| GLenum m_target;
|
|
|
| + TraceWrapperMember<WebGLBuffer> m_boundTransformFeedbackBuffer;
|
| + HeapVector<TraceWrapperMember<WebGLBuffer>>
|
| + m_boundIndexedTransformFeedbackBuffers;
|
| +
|
| Member<WebGLProgram> m_program;
|
| };
|
|
|
|
|