| 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
|
|
|