summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-24 11:24:40 +0100
committerBen Murdoch <benm@google.com>2011-06-02 09:53:15 +0100
commit81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch)
tree7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h
parent94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff)
downloadexternal_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip
external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz
external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
Diffstat (limited to 'Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h')
-rw-r--r--Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h b/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h
index 1e032d7..707fd24 100644
--- a/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h
+++ b/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h
@@ -49,6 +49,7 @@ class Color;
class FloatRect;
class HostWindow;
class IntSize;
+class LoopBlinnSolidFillShader;
class SolidFillShader;
class TexShader;
@@ -61,9 +62,13 @@ public:
// Functions that delegate directly to GraphicsContext3D, with caching
void makeContextCurrent();
+ void bindBuffer(GC3Denum target, Platform3DObject);
void bindFramebuffer(Platform3DObject framebuffer);
+ void bufferData(GC3Denum target, GC3Dsizeiptr, GC3Denum usage);
+ void bufferData(GC3Denum target, GC3Dsizeiptr, const void* data, GC3Denum usage);
+ void bufferSubData(GC3Denum target, GC3Dintptr offset, GC3Dsizeiptr, const void* data);
void setViewport(const IntSize&);
- void scissor(const FloatRect&);
+ void scissor(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
void enable(GC3Denum capacity);
void disable(GC3Denum capacity);
void clearColor(const Color&);
@@ -73,6 +78,7 @@ public:
void getIntegerv(GC3Denum pname, GC3Dint* value);
void flush();
+ Platform3DObject createBuffer();
Platform3DObject createFramebuffer();
Platform3DObject createTexture();
@@ -117,6 +123,11 @@ public:
GraphicsContext3D* graphicsContext3D() const { return m_context.get(); }
+ // Members for GPU-accelerated path rendering.
+ static bool useLoopBlinnForPathRendering();
+ void useLoopBlinnInteriorProgram(unsigned vertexOffset, const AffineTransform&, const Color&);
+ void useLoopBlinnExteriorProgram(unsigned vertexOffset, unsigned klmOffset, const AffineTransform&, const Color&);
+
private:
SharedGraphicsContext3D(PassRefPtr<GraphicsContext3D>, PassOwnPtr<SolidFillShader>, PassOwnPtr<TexShader>);
@@ -133,6 +144,12 @@ private:
OwnPtr<TexShader> m_texShader;
TextureHashMap m_textures;
+
+ // Members for GPU-accelerated path rendering.
+ // FIXME: support more kinds of fill types for paths.
+ OwnPtr<LoopBlinnSolidFillShader> m_loopBlinnInteriorShader;
+ OwnPtr<LoopBlinnSolidFillShader> m_loopBlinnExteriorShader;
+ bool m_oesStandardDerivativesSupported;
};
} // namespace WebCore