https://bugs.webkit.org/show_bug.cgi?id=76634
Patch by Michal Mocny <mmocny@google.com> on 2012-01-19
Reviewed by Kenneth Russell.
* public/platform/WebGraphicsContext3D.h:
(WebKit::WebGraphicsContext3D::setVisibilityCHROMIUM):
(WebKit::WebGraphicsContext3D::setResourceUsageCHROMIUM):
* src/GraphicsContext3DChromium.cpp:
(WebCore::GraphicsContext3DPrivate::setVisibilityCHROMIUM):
* tests/FakeWebGraphicsContext3D.h:
(WebKit::FakeWebGraphicsContext3D::setResourceUsageCHROMIUM):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105462
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-01-19 Michal Mocny <mmocny@google.com>
+
+ [chromium] Replace WGC3D visibility extension with resource_usage extension. [Part 1 of 3]
+ https://bugs.webkit.org/show_bug.cgi?id=76634
+
+ Reviewed by Kenneth Russell.
+
+ * public/platform/WebGraphicsContext3D.h:
+ (WebKit::WebGraphicsContext3D::setVisibilityCHROMIUM):
+ (WebKit::WebGraphicsContext3D::setResourceUsageCHROMIUM):
+ * src/GraphicsContext3DChromium.cpp:
+ (WebCore::GraphicsContext3DPrivate::setVisibilityCHROMIUM):
+ * tests/FakeWebGraphicsContext3D.h:
+ (WebKit::FakeWebGraphicsContext3D::setResourceUsageCHROMIUM):
+
2012-01-19 James Robinson <jamesr@chromium.org>
[chromium] Remove CCLayerDelegate, add ContentLayerDelegate for painting
virtual ~WebGraphicsSwapBuffersCompleteCallbackCHROMIUM() { }
};
+ // Graphics Resource Usage
+ enum ResourceUsage {
+ RESOURCE_USAGE_FULL,
+ RESOURCE_USAGE_LESS,
+ RESOURCE_USAGE_NONE,
+ };
+
// This destructor needs to be public so that using classes can destroy instances if initialization fails.
virtual ~WebGraphicsContext3D() {}
// Resizes the region into which this WebGraphicsContext3D is drawing.
virtual void reshape(int width, int height) = 0;
- // GL_CHROMIUM_setVisibility - Changes the visibility of the backbuffer
- virtual void setVisibilityCHROMIUM(bool visible) = 0;
+ // GL_CHROMIUM_resource_usage - use/drop various resources, such as front/back buffers
+ // TODO(mmocny): remove visibility once chromium patch lands
+ virtual void setVisibilityCHROMIUM(bool visible) { }
+ virtual void setResourceUsageCHROMIUM(ResourceUsage) { }
// Query whether it is built on top of compliant GLES2 implementation.
virtual bool isGLES2Compliant() = 0;
return m_enabledExtensions.contains(mappedName);
}
+void GraphicsContext3DPrivate::setVisibilityCHROMIUM(bool visibility)
+{
+ // TODO(mmocny): remove visibility once chromium patch lands
+ m_impl->setVisibilityCHROMIUM(visibility);
+ m_impl->setResourceUsageCHROMIUM(visibility ? WebKit::WebGraphicsContext3D::RESOURCE_USAGE_FULL : WebKit::WebGraphicsContext3D::RESOURCE_USAGE_LESS);
+}
+
DELEGATE_TO_IMPL_4(postSubBufferCHROMIUM, int, int, int, int)
DELEGATE_TO_IMPL_4R(mapBufferSubDataCHROMIUM, GC3Denum, GC3Dsizeiptr, GC3Dsizei, GC3Denum, void*)
DELEGATE_TO_IMPL_9R(mapTexSubImage2DCHROMIUM, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Denum, GC3Denum, GC3Denum, void*)
DELEGATE_TO_IMPL_1(unmapTexSubImage2DCHROMIUM, const void*)
-DELEGATE_TO_IMPL_1(setVisibilityCHROMIUM, bool);
-
DELEGATE_TO_IMPL_10(blitFramebufferCHROMIUM, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dbitfield, GC3Denum)
DELEGATE_TO_IMPL_5(renderbufferStorageMultisampleCHROMIUM, GC3Denum, GC3Dsizei, GC3Denum, GC3Dsizei, GC3Dsizei)
virtual void* mapTexSubImage2DCHROMIUM(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Denum type, WGC3Denum access) { return 0; }
virtual void unmapTexSubImage2DCHROMIUM(const void*) { }
- virtual void setVisibilityCHROMIUM(bool visible) { }
+ virtual void setResourceUsageCHROMIUM(ResourceUsage) { }
virtual WebString getRequestableExtensionsCHROMIUM() { return WebString(); }
virtual void requestExtensionCHROMIUM(const char*) { }