summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/chromium/CanvasLayerChromium.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-08-13 05:20:16 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-08-13 05:20:16 -0700
commitf4958a7d95cd5fbc1c74905e229b02c95cd5ee78 (patch)
tree14a0f1b07a19948c2ed93d0d8547caa7fe10aa0e /WebCore/platform/graphics/chromium/CanvasLayerChromium.h
parentd074a7997da8ce379434eb6e208b97cde8a0841c (diff)
parentf964bc1fd59a545a80a0cc2529ad8830be514871 (diff)
downloadexternal_webkit-f4958a7d95cd5fbc1c74905e229b02c95cd5ee78.zip
external_webkit-f4958a7d95cd5fbc1c74905e229b02c95cd5ee78.tar.gz
external_webkit-f4958a7d95cd5fbc1c74905e229b02c95cd5ee78.tar.bz2
Merge changes I60a96064,I6929172f,Idefd9bec,I8cf448f2,I8791737a,I992c56b0,Ibb4b089d,I779a8ec0,Ife412e30,I2da1ae98,Ibcf41849
* changes: Merge WebKit at r65072 : Update WebKit revision number. Merge WebKit at r65072 : Update test_expectations. Merge WebKit at r65072 : Complete cherry-pick of WebKit change 43848 to add EmptyDeviceMotionClient Merge WebKit at r65072 : Implement DeviceMotionClientAndroid Merge WebKit at r65072: JSC build fix in InspectorController.h Merge WebKit at r65072: Fix V8 code generator. Merge WebKit at r65072 : Build fix for JSC, update ambiguous usage of JSLock. Merge WebKit at r65072: String class has moved to the WTF namespace. Merge Webkit at r65072 : Fix conflicts. Merge Webkit at r65072 : Fix Makefiles. Merge WebKit at r65072 : Initial merge by git.
Diffstat (limited to 'WebCore/platform/graphics/chromium/CanvasLayerChromium.h')
-rw-r--r--WebCore/platform/graphics/chromium/CanvasLayerChromium.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/chromium/CanvasLayerChromium.h b/WebCore/platform/graphics/chromium/CanvasLayerChromium.h
new file mode 100644
index 0000000..98be270
--- /dev/null
+++ b/WebCore/platform/graphics/chromium/CanvasLayerChromium.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef CanvasLayerChromium_h
+#define CanvasLayerChromium_h
+
+#if USE(ACCELERATED_COMPOSITING)
+
+#include "LayerChromium.h"
+
+namespace WebCore {
+
+class GraphicsContext3D;
+
+// A Layer containing a WebGL or accelerated 2d canvas
+class CanvasLayerChromium : public LayerChromium {
+public:
+ static PassRefPtr<CanvasLayerChromium> create(GraphicsLayerChromium* owner = 0);
+ virtual bool drawsContent() { return m_context; }
+ virtual bool ownsTexture() { return true; }
+ virtual void updateTextureContents(unsigned);
+ virtual unsigned textureId();
+ virtual unsigned shaderProgramId() { return m_shaderProgramId; }
+
+ void setContext(const GraphicsContext3D* context);
+
+ static void setShaderProgramId(unsigned shaderProgramId) { m_shaderProgramId = shaderProgramId; }
+
+ class PrepareTextureCallback : public Noncopyable {
+ public:
+ virtual void willPrepareTexture() = 0;
+ };
+ void setPrepareTextureCallback(PassOwnPtr<PrepareTextureCallback> callback) { m_prepareTextureCallback = callback; }
+
+private:
+ explicit CanvasLayerChromium(GraphicsLayerChromium* owner);
+ GraphicsContext3D* m_context;
+ unsigned m_textureId;
+ bool m_textureChanged;
+ OwnPtr<PrepareTextureCallback> m_prepareTextureCallback;
+
+ static unsigned m_shaderProgramId;
+};
+
+}
+#endif // USE(ACCELERATED_COMPOSITING)
+
+#endif