OLD | NEW |
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 "modules/webgl/WebGLExtension.h" | 8 #include "modules/webgl/WebGLExtension.h" |
9 #include "modules/webgl/WebGLRenderingContextBase.h" | 9 #include "modules/webgl/WebGLRenderingContextBase.h" |
10 | 10 |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 /* Reading */ | 168 /* Reading */ |
169 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum form
at, GLenum type, long long offset); | 169 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum form
at, GLenum type, long long offset); |
170 | 170 |
171 /* WebGLRenderingContextBase overrides */ | 171 /* WebGLRenderingContextBase overrides */ |
172 void initializeNewContext() override; | 172 void initializeNewContext() override; |
173 void bindFramebuffer(ScriptState*, GLenum target, WebGLFramebuffer*) overrid
e; | 173 void bindFramebuffer(ScriptState*, GLenum target, WebGLFramebuffer*) overrid
e; |
174 void deleteFramebuffer(WebGLFramebuffer*) override; | 174 void deleteFramebuffer(WebGLFramebuffer*) override; |
175 ScriptValue getParameter(ScriptState*, GLenum pname) override; | 175 ScriptValue getParameter(ScriptState*, GLenum pname) override; |
176 ScriptValue getTexParameter(ScriptState*, GLenum target, GLenum pname) overr
ide; | 176 ScriptValue getTexParameter(ScriptState*, GLenum target, GLenum pname) overr
ide; |
177 ScriptValue getFramebufferAttachmentParameter(ScriptState*, GLenum target, G
Lenum attachment, GLenum pname) override; | 177 ScriptValue getFramebufferAttachmentParameter(ScriptState*, GLenum target, G
Lenum attachment, GLenum pname) override; |
| 178 void pixelStorei(GLenum pname, GLint param) override; |
178 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum form
at, GLenum type, DOMArrayBufferView* pixels) override; | 179 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum form
at, GLenum type, DOMArrayBufferView* pixels) override; |
179 void restoreCurrentFramebuffer() override; | 180 void restoreCurrentFramebuffer() override; |
180 | 181 |
181 EAGERLY_FINALIZE(); | 182 EAGERLY_FINALIZE(); |
182 DECLARE_VIRTUAL_TRACE(); | 183 DECLARE_VIRTUAL_TRACE(); |
183 | 184 |
184 protected: | 185 protected: |
185 WebGL2RenderingContextBase(HTMLCanvasElement*, PassOwnPtr<WebGraphicsContext
3D>, const WebGLContextAttributes& requestedAttributes); | 186 WebGL2RenderingContextBase(HTMLCanvasElement*, PassOwnPtr<WebGraphicsContext
3D>, const WebGLContextAttributes& requestedAttributes); |
186 | 187 |
187 // Helper function to validate target and the attachment combination for get
FramebufferAttachmentParameters. | 188 // Helper function to validate target and the attachment combination for get
FramebufferAttachmentParameters. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 WebGLFramebuffer* getFramebufferBinding(GLenum target) override; | 226 WebGLFramebuffer* getFramebufferBinding(GLenum target) override; |
226 GLint getMaxTextureLevelForTarget(GLenum target) override; | 227 GLint getMaxTextureLevelForTarget(GLenum target) override; |
227 void renderbufferStorageImpl(GLenum target, GLsizei samples, GLenum internal
format, GLsizei width, GLsizei height, const char* functionName) override; | 228 void renderbufferStorageImpl(GLenum target, GLsizei samples, GLenum internal
format, GLsizei width, GLsizei height, const char* functionName) override; |
228 GLenum boundFramebufferColorFormat() override; | 229 GLenum boundFramebufferColorFormat() override; |
229 | 230 |
230 WebGLBuffer* validateBufferDataTarget(const char* functionName, GLenum targe
t) override; | 231 WebGLBuffer* validateBufferDataTarget(const char* functionName, GLenum targe
t) override; |
231 bool validateBufferDataUsage(const char* functionName, GLenum usage) overrid
e; | 232 bool validateBufferDataUsage(const char* functionName, GLenum usage) overrid
e; |
232 | 233 |
233 void removeBoundBuffer(WebGLBuffer*) override; | 234 void removeBoundBuffer(WebGLBuffer*) override; |
234 | 235 |
| 236 // Set UNPACK_ALIGNMENT to 1, all other parameters to 0. |
| 237 void resetUnpackParameters(); |
| 238 // Restore the client unset parameters. |
| 239 void restoreUnpackParameters(); |
| 240 |
235 PersistentWillBeMember<WebGLFramebuffer> m_readFramebufferBinding; | 241 PersistentWillBeMember<WebGLFramebuffer> m_readFramebufferBinding; |
236 PersistentWillBeMember<WebGLTransformFeedback> m_transformFeedbackBinding; | 242 PersistentWillBeMember<WebGLTransformFeedback> m_transformFeedbackBinding; |
237 GLint m_maxArrayTextureLayers; | 243 GLint m_maxArrayTextureLayers; |
238 | 244 |
239 std::set<GLenum> m_supportedInternalFormatsStorage; | 245 std::set<GLenum> m_supportedInternalFormatsStorage; |
240 | 246 |
241 PersistentWillBeMember<WebGLBuffer> m_boundCopyReadBuffer; | 247 PersistentWillBeMember<WebGLBuffer> m_boundCopyReadBuffer; |
242 PersistentWillBeMember<WebGLBuffer> m_boundCopyWriteBuffer; | 248 PersistentWillBeMember<WebGLBuffer> m_boundCopyWriteBuffer; |
243 PersistentWillBeMember<WebGLBuffer> m_boundPixelPackBuffer; | 249 PersistentWillBeMember<WebGLBuffer> m_boundPixelPackBuffer; |
244 PersistentWillBeMember<WebGLBuffer> m_boundPixelUnpackBuffer; | 250 PersistentWillBeMember<WebGLBuffer> m_boundPixelUnpackBuffer; |
245 PersistentWillBeMember<WebGLBuffer> m_boundTransformFeedbackBuffer; | 251 PersistentWillBeMember<WebGLBuffer> m_boundTransformFeedbackBuffer; |
246 PersistentWillBeMember<WebGLBuffer> m_boundUniformBuffer; | 252 PersistentWillBeMember<WebGLBuffer> m_boundUniformBuffer; |
247 | 253 |
248 PersistentHeapVectorWillBeHeapVector<Member<WebGLBuffer>> m_boundIndexedTran
sformFeedbackBuffers; | 254 PersistentHeapVectorWillBeHeapVector<Member<WebGLBuffer>> m_boundIndexedTran
sformFeedbackBuffers; |
249 PersistentHeapVectorWillBeHeapVector<Member<WebGLBuffer>> m_boundIndexedUnif
ormBuffers; | 255 PersistentHeapVectorWillBeHeapVector<Member<WebGLBuffer>> m_boundIndexedUnif
ormBuffers; |
250 size_t m_maxBoundUniformBufferIndex; | 256 size_t m_maxBoundUniformBufferIndex; |
251 | 257 |
252 PersistentWillBeMember<WebGLQuery> m_currentBooleanOcclusionQuery; | 258 PersistentWillBeMember<WebGLQuery> m_currentBooleanOcclusionQuery; |
253 PersistentWillBeMember<WebGLQuery> m_currentTransformFeedbackPrimitivesWritt
enQuery; | 259 PersistentWillBeMember<WebGLQuery> m_currentTransformFeedbackPrimitivesWritt
enQuery; |
254 PersistentHeapVectorWillBeHeapVector<Member<WebGLSampler>> m_samplerUnits; | 260 PersistentHeapVectorWillBeHeapVector<Member<WebGLSampler>> m_samplerUnits; |
| 261 |
| 262 GLint m_packRowLength; |
| 263 GLint m_packSkipPixels; |
| 264 GLint m_packSkipRows; |
| 265 GLint m_unpackRowLength; |
| 266 GLint m_unpackImageHeight; |
| 267 GLint m_unpackSkipPixels; |
| 268 GLint m_unpackSkipRows; |
| 269 GLint m_unpackSkipImages; |
255 }; | 270 }; |
256 | 271 |
257 DEFINE_TYPE_CASTS(WebGL2RenderingContextBase, CanvasRenderingContext, context, | 272 DEFINE_TYPE_CASTS(WebGL2RenderingContextBase, CanvasRenderingContext, context, |
258 context->is3d() && WebGLRenderingContextBase::getWebGLVersion(context) >= 2, | 273 context->is3d() && WebGLRenderingContextBase::getWebGLVersion(context) >= 2, |
259 context.is3d() && WebGLRenderingContextBase::getWebGLVersion(&context) >= 2)
; | 274 context.is3d() && WebGLRenderingContextBase::getWebGLVersion(&context) >= 2)
; |
260 | 275 |
261 } // namespace blink | 276 } // namespace blink |
262 | 277 |
263 #endif | 278 #endif |
OLD | NEW |