diff options
Diffstat (limited to 'WebCore/html/canvas/CanvasRenderingContext3D.h')
-rw-r--r-- | WebCore/html/canvas/CanvasRenderingContext3D.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/WebCore/html/canvas/CanvasRenderingContext3D.h b/WebCore/html/canvas/CanvasRenderingContext3D.h index a4a68fc..70d9b95 100644 --- a/WebCore/html/canvas/CanvasRenderingContext3D.h +++ b/WebCore/html/canvas/CanvasRenderingContext3D.h @@ -36,6 +36,7 @@ namespace WebCore { +class CanvasActiveInfo; class CanvasBuffer; class CanvasFramebuffer; class CanvasObject; @@ -50,8 +51,8 @@ class WebKitCSSMatrix; class CanvasRenderingContext3D : public CanvasRenderingContext { public: - CanvasRenderingContext3D(HTMLCanvasElement*); - ~CanvasRenderingContext3D(); + static PassOwnPtr<CanvasRenderingContext3D> create(HTMLCanvasElement*); + virtual ~CanvasRenderingContext3D(); virtual bool is3d() const { return true; } @@ -123,7 +124,10 @@ class WebKitCSSMatrix; void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, CanvasTexture*, long level); void frontFace(unsigned long mode); void generateMipmap(unsigned long target); - + + PassRefPtr<CanvasActiveInfo> getActiveAttrib(CanvasProgram*, unsigned long index, ExceptionCode&); + PassRefPtr<CanvasActiveInfo> getActiveUniform(CanvasProgram*, unsigned long index, ExceptionCode&); + int getAttribLocation(CanvasProgram*, const String& name); bool getBoolean(unsigned long pname); @@ -187,8 +191,7 @@ class WebKitCSSMatrix; void pixelStorei(unsigned long pname, long param); void polygonOffset(double factor, double units); - // TBD - //void readPixels(long x, long y, unsigned long width, unsigned long height, unsigned long format, unsigned long type, void* pixels); + PassRefPtr<CanvasArray> readPixels(long x, long y, unsigned long width, unsigned long height, unsigned long format, unsigned long type); void releaseShaderCompiler(); void renderbufferStorage(unsigned long target, unsigned long internalformat, unsigned long width, unsigned long height); @@ -285,7 +288,7 @@ class WebKitCSSMatrix; void viewport(long x, long y, unsigned long width, unsigned long height); - GraphicsContext3D* graphicsContext3D() { return &m_context; } + GraphicsContext3D* graphicsContext3D() const { return m_context.get(); } void reshape(int width, int height); @@ -297,18 +300,21 @@ class WebKitCSSMatrix; private: friend class CanvasObject; + + CanvasRenderingContext3D(HTMLCanvasElement*, PassOwnPtr<GraphicsContext3D>); + void addObject(CanvasObject*); void detachAndRemoveAllObjects(); void markContextChanged(); void cleanupAfterGraphicsCall(bool changed) { - m_context.checkError(); + m_context->checkError(); if (changed) markContextChanged(); } - GraphicsContext3D m_context; + OwnPtr<GraphicsContext3D> m_context; bool m_needsUpdate; bool m_markedCanvasDirty; // FIXME: I think this is broken -- it does not increment any |