// Copyright (c) 2006-2008 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 BASE_GFX_SKIA_UTILS_H__ #define BASE_GFX_SKIA_UTILS_H__ #include "SkColor.h" #include "SkShader.h" struct SkIRect; struct SkPoint; struct SkRect; typedef unsigned long DWORD; typedef DWORD COLORREF; typedef struct tagPOINT POINT; typedef struct tagRECT RECT; namespace gfx { // Converts a Skia point to a Windows POINT. POINT SkPointToPOINT(const SkPoint& point); // Converts a Windows RECT to a Skia rect. SkRect RECTToSkRect(const RECT& rect); // Converts a Windows RECT to a Skia rect. // Both use same in-memory format. Verified by COMPILE_ASSERT() in // skia_utils.cc. inline const SkIRect& RECTToSkIRect(const RECT& rect) { return reinterpret_cast(rect); } // Converts a Skia rect to a Windows RECT. // Both use same in-memory format. Verified by COMPILE_ASSERT() in // skia_utils.cc. inline const RECT& SkIRectToRECT(const SkIRect& rect) { return reinterpret_cast(rect); } // Creates a vertical gradient shader. The caller owns the shader. SkShader* CreateGradientShader(int start_point, int end_point, SkColor start_color, SkColor end_color); // Converts COLORREFs (0BGR) to the ARGB layout Skia expects. SkColor COLORREFToSkColor(COLORREF color); // Converts ARGB to COLORREFs (0BGR). COLORREF SkColorToCOLORREF(SkColor color); } // namespace gfx #endif