Index: cc/platform_color.h |
diff --git a/cc/platform_color.h b/cc/platform_color.h |
index 638cbb270ce9b24689d5095baf174ade4f4d1a13..61ffd31bd49c71a28a62dbb7893b5a8befcdb781 100644 |
--- a/cc/platform_color.h |
+++ b/cc/platform_color.h |
@@ -1,3 +1,58 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Copyright 2011 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+ |
+#ifndef PlatformColor_h |
+#define PlatformColor_h |
+ |
+#include "Extensions3D.h" |
+#include "GraphicsContext3D.h" |
+#include "SkTypes.h" |
+#include <public/WebGraphicsContext3D.h> |
+ |
+namespace cc { |
+ |
+class PlatformColor { |
+public: |
+ static GraphicsContext3D::SourceDataFormat format() |
+ { |
+ return SK_B32_SHIFT ? GraphicsContext3D::SourceFormatRGBA8 : GraphicsContext3D::SourceFormatBGRA8; |
+ } |
+ |
+ // Returns the most efficient texture format for this platform. |
+ static GC3Denum bestTextureFormat(WebKit::WebGraphicsContext3D* context, bool supportsBGRA8888) |
+ { |
+ GC3Denum textureFormat = GraphicsContext3D::RGBA; |
+ switch (format()) { |
+ case GraphicsContext3D::SourceFormatRGBA8: |
+ break; |
+ case GraphicsContext3D::SourceFormatBGRA8: |
+ if (supportsBGRA8888) |
+ textureFormat = Extensions3D::BGRA_EXT; |
+ break; |
+ default: |
+ ASSERT_NOT_REACHED(); |
+ break; |
+ } |
+ return textureFormat; |
+ } |
+ |
+ // Return true if the given texture format has the same component order |
+ // as the color on this platform. |
+ static bool sameComponentOrder(GC3Denum textureFormat) |
+ { |
+ switch (format()) { |
+ case GraphicsContext3D::SourceFormatRGBA8: |
+ return textureFormat == GraphicsContext3D::RGBA; |
+ case GraphicsContext3D::SourceFormatBGRA8: |
+ return textureFormat == Extensions3D::BGRA_EXT; |
+ default: |
+ ASSERT_NOT_REACHED(); |
+ return false; |
+ } |
+ } |
+}; |
+ |
+} // namespace cc |
+ |
+#endif |