Title: [108071] trunk/Source
Revision
108071
Author
[email protected]
Date
2012-02-17 07:41:55 -0800 (Fri, 17 Feb 2012)

Log Message

[chromium] GL_CHROMIUM_gpu_memory_manager extension
https://bugs.webkit.org/show_bug.cgi?id=77155

Patch by Michal Mocny <[email protected]> on 2012-02-17
Reviewed by James Robinson.

Source/WebCore:

* platform/graphics/chromium/Extensions3DChromium.h:
(GpuMemoryAllocationChangedCallbackCHROMIUM):
(WebCore::Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM::~GpuMemoryAllocationChangedCallbackCHROMIUM):
(Extensions3DChromium):

Source/WebKit/chromium:

* public/platform/WebGraphicsContext3D.h:
(WebGraphicsMemoryAllocationChangedCallbackCHROMIUM):
(WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM::~WebGraphicsMemoryAllocationChangedCallbackCHROMIUM):
(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::setMemoryAllocationChangedCallbackCHROMIUM):
* src/Extensions3DChromium.cpp:
(WebCore::Extensions3DChromium::setGpuMemoryAllocationChangedCallbackCHROMIUM):
(WebCore):
* src/GraphicsContext3DChromium.cpp:
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
(WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
(WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::~GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
(WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::onMemoryAllocationChanged):
(WebCore):
(WebCore::GraphicsContext3DPrivate::setGpuMemoryAllocationChangedCallbackCHROMIUM):
* src/GraphicsContext3DPrivate.h:
(WebCore):
* tests/FakeWebGraphicsContext3D.h:
(WebKit::FakeWebGraphicsContext3D::setMemoryAllocationChangedCallbackCHROMIUM):
(FakeWebGraphicsContext3D):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (108070 => 108071)


--- trunk/Source/WebCore/ChangeLog	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebCore/ChangeLog	2012-02-17 15:41:55 UTC (rev 108071)
@@ -1,3 +1,15 @@
+2012-02-17  Michal Mocny  <[email protected]>
+
+        [chromium] GL_CHROMIUM_gpu_memory_manager extension
+        https://bugs.webkit.org/show_bug.cgi?id=77155
+
+        Reviewed by James Robinson.
+
+        * platform/graphics/chromium/Extensions3DChromium.h:
+        (GpuMemoryAllocationChangedCallbackCHROMIUM):
+        (WebCore::Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM::~GpuMemoryAllocationChangedCallbackCHROMIUM):
+        (Extensions3DChromium):
+
 2012-02-17  Raphael Kubo da Costa  <[email protected]>
 
         [CMake, EFL] Unreviewed, fix the build when building with

Modified: trunk/Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h (108070 => 108071)


--- trunk/Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h	2012-02-17 15:41:55 UTC (rev 108071)
@@ -87,6 +87,14 @@
     // GL_CHROMIUM_set_visibility
     void setVisibilityCHROMIUM(bool);
 
+    // GL_CHROMIUM_gpu_memory_manager
+    class GpuMemoryAllocationChangedCallbackCHROMIUM {
+    public:
+        virtual void onGpuMemoryAllocationChanged(size_t gpuResourceSizeInBytes) = 0;
+        virtual ~GpuMemoryAllocationChangedCallbackCHROMIUM() { }
+    };
+    void setGpuMemoryAllocationChangedCallbackCHROMIUM(PassOwnPtr<GpuMemoryAllocationChangedCallbackCHROMIUM>);
+
     // GL_CHROMIUM_swapbuffers_complete_callback
     class SwapBuffersCompleteCallbackCHROMIUM {
     public:

Modified: trunk/Source/WebKit/chromium/ChangeLog (108070 => 108071)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-02-17 15:41:55 UTC (rev 108071)
@@ -1,3 +1,32 @@
+2012-02-17  Michal Mocny  <[email protected]>
+
+        [chromium] GL_CHROMIUM_gpu_memory_manager extension
+        https://bugs.webkit.org/show_bug.cgi?id=77155
+
+        Reviewed by James Robinson.
+
+        * public/platform/WebGraphicsContext3D.h:
+        (WebGraphicsMemoryAllocationChangedCallbackCHROMIUM):
+        (WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM::~WebGraphicsMemoryAllocationChangedCallbackCHROMIUM):
+        (WebGraphicsContext3D):
+        (WebKit::WebGraphicsContext3D::setMemoryAllocationChangedCallbackCHROMIUM):
+        * src/Extensions3DChromium.cpp:
+        (WebCore::Extensions3DChromium::setGpuMemoryAllocationChangedCallbackCHROMIUM):
+        (WebCore):
+        * src/GraphicsContext3DChromium.cpp:
+        (WebCore::GraphicsContext3D::~GraphicsContext3D):
+        (GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
+        (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
+        (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::~GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
+        (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::onMemoryAllocationChanged):
+        (WebCore):
+        (WebCore::GraphicsContext3DPrivate::setGpuMemoryAllocationChangedCallbackCHROMIUM):
+        * src/GraphicsContext3DPrivate.h:
+        (WebCore):
+        * tests/FakeWebGraphicsContext3D.h:
+        (WebKit::FakeWebGraphicsContext3D::setMemoryAllocationChangedCallbackCHROMIUM):
+        (FakeWebGraphicsContext3D):
+
 2012-02-17  Ilya Tikhonovsky  <[email protected]>
 
         Unreviewed. Chromium DEPS roll

Modified: trunk/Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h (108070 => 108071)


--- trunk/Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h	2012-02-17 15:41:55 UTC (rev 108071)
@@ -130,6 +130,14 @@
         virtual ~WebGraphicsSwapBuffersCompleteCallbackCHROMIUM() { }
     };
 
+    class WebGraphicsMemoryAllocationChangedCallbackCHROMIUM {
+    public:
+        virtual void onMemoryAllocationChanged(size_t gpuResourceSizeInBytes) = 0;
+
+    protected:
+        virtual ~WebGraphicsMemoryAllocationChangedCallbackCHROMIUM() { }
+    };
+
     // This destructor needs to be public so that using classes can destroy instances if initialization fails.
     virtual ~WebGraphicsContext3D() {}
 
@@ -151,6 +159,9 @@
     // GL_CHROMIUM_setVisibility - Changes the visibility of the backbuffer
     virtual void setVisibilityCHROMIUM(bool visible) = 0;
 
+    // GL_CHROMIUM_gpu_memory_manager - sets callback to observe changes to memory allocation limits.
+    virtual void setMemoryAllocationChangedCallbackCHROMIUM(WebGraphicsMemoryAllocationChangedCallbackCHROMIUM* callback) { }
+
     // Query whether it is built on top of compliant GLES2 implementation.
     virtual bool isGLES2Compliant() = 0;
 

Modified: trunk/Source/WebKit/chromium/src/Extensions3DChromium.cpp (108070 => 108071)


--- trunk/Source/WebKit/chromium/src/Extensions3DChromium.cpp	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebKit/chromium/src/Extensions3DChromium.cpp	2012-02-17 15:41:55 UTC (rev 108071)
@@ -107,6 +107,11 @@
     m_private->setVisibilityCHROMIUM(visibility);
 }
 
+void Extensions3DChromium::setGpuMemoryAllocationChangedCallbackCHROMIUM(PassOwnPtr<GpuMemoryAllocationChangedCallbackCHROMIUM> callback)
+{
+    m_private->setGpuMemoryAllocationChangedCallbackCHROMIUM(callback);
+}
+
 Platform3DObject Extensions3DChromium::createVertexArrayOES()
 {
     return 0;

Modified: trunk/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp (108070 => 108071)


--- trunk/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp	2012-02-17 15:41:55 UTC (rev 108071)
@@ -1035,6 +1035,7 @@
     m_private->setContextLostCallback(nullptr);
     m_private->setErrorMessageCallback(nullptr);
     m_private->setSwapBuffersCompleteCallbackCHROMIUM(nullptr);
+    m_private->setGpuMemoryAllocationChangedCallbackCHROMIUM(nullptr);
 }
 
 PassRefPtr<GraphicsContext3D> GraphicsContext3D::create(GraphicsContext3D::Attributes attrs, HostWindow* hostWindow, GraphicsContext3D::RenderStyle renderStyle)
@@ -1359,6 +1360,31 @@
     m_impl->setSwapBuffersCompleteCallbackCHROMIUM(m_swapBuffersCompleteCallbackAdapter.get());
 }
 
+class GraphicsContext3DMemoryAllocationChangedCallbackAdapter : public WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM {
+public:
+    GraphicsContext3DMemoryAllocationChangedCallbackAdapter(PassOwnPtr<Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM> cb)
+        : m_memoryAllocationChangedCallback(cb)
+    {
+    }
+
+    virtual ~GraphicsContext3DMemoryAllocationChangedCallbackAdapter() { }
+
+    virtual void onMemoryAllocationChanged(size_t gpuResourceSizeInBytes)
+    {
+        if (m_memoryAllocationChangedCallback)
+            m_memoryAllocationChangedCallback->onGpuMemoryAllocationChanged(gpuResourceSizeInBytes);
+    }
+
+private:
+    OwnPtr<Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM> m_memoryAllocationChangedCallback;
+};
+
+void GraphicsContext3DPrivate::setGpuMemoryAllocationChangedCallbackCHROMIUM(PassOwnPtr<Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM> cb)
+{
+    m_memoryAllocationChangedCallbackAdapter = adoptPtr(new GraphicsContext3DMemoryAllocationChangedCallbackAdapter(cb));
+    m_impl->setMemoryAllocationChangedCallbackCHROMIUM(m_memoryAllocationChangedCallbackAdapter.get());
+}
+
 } // namespace WebCore
 
 #endif // ENABLE(WEBGL)

Modified: trunk/Source/WebKit/chromium/src/GraphicsContext3DPrivate.h (108070 => 108071)


--- trunk/Source/WebKit/chromium/src/GraphicsContext3DPrivate.h	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebKit/chromium/src/GraphicsContext3DPrivate.h	2012-02-17 15:41:55 UTC (rev 108071)
@@ -51,6 +51,7 @@
 class GraphicsContextLostCallbackAdapter;
 class GraphicsContext3DSwapBuffersCompleteCallbackAdapter;
 class GraphicsErrorMessageCallbackAdapter;
+class GraphicsContext3DMemoryAllocationChangedCallbackAdapter;
 
 class GraphicsContext3DPrivate {
 public:
@@ -295,6 +296,9 @@
     // GL_CHROMIUM_set_visibility
     void setVisibilityCHROMIUM(bool);
 
+    // GL_CHROMIUM_gpu_memory_manager
+    virtual void setGpuMemoryAllocationChangedCallbackCHROMIUM(PassOwnPtr<Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM>);
+
     // GL_CHROMIUM_framebuffer_multisample
     void blitFramebufferCHROMIUM(GC3Dint srcX0, GC3Dint srcY0, GC3Dint srcX1, GC3Dint srcY1, GC3Dint dstX0, GC3Dint dstY0, GC3Dint dstX1, GC3Dint dstY1, GC3Dbitfield mask, GC3Denum filter);
     void renderbufferStorageMultisampleCHROMIUM(GC3Denum target, GC3Dsizei samples, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height);
@@ -325,6 +329,7 @@
     OwnPtr<GraphicsContextLostCallbackAdapter> m_contextLostCallbackAdapter;
     OwnPtr<GraphicsErrorMessageCallbackAdapter> m_errorMessageCallbackAdapter;
     OwnPtr<GraphicsContext3DSwapBuffersCompleteCallbackAdapter> m_swapBuffersCompleteCallbackAdapter;
+    OwnPtr<GraphicsContext3DMemoryAllocationChangedCallbackAdapter> m_memoryAllocationChangedCallbackAdapter;
     WebKit::WebViewImpl* m_webViewImpl;
     bool m_initializedAvailableExtensions;
     HashSet<String> m_enabledExtensions;

Modified: trunk/Source/WebKit/chromium/tests/FakeWebGraphicsContext3D.h (108070 => 108071)


--- trunk/Source/WebKit/chromium/tests/FakeWebGraphicsContext3D.h	2012-02-17 14:42:58 UTC (rev 108070)
+++ trunk/Source/WebKit/chromium/tests/FakeWebGraphicsContext3D.h	2012-02-17 15:41:55 UTC (rev 108071)
@@ -65,6 +65,8 @@
 
     virtual void setVisibilityCHROMIUM(bool visible) { }
 
+    virtual void setMemoryAllocationChangedCallbackCHROMIUM(WebGraphicsMemoryAllocationChangedCallbackCHROMIUM* callback) { }
+
     virtual WebString getRequestableExtensionsCHROMIUM() { return WebString(); }
     virtual void requestExtensionCHROMIUM(const char*) { }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to