| /* |
| * Copyright 2020 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkCGBase_DEFINED |
| #define SkCGBase_DEFINED |
| |
| #include "include/core/SkTypes.h" |
| #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
| |
| #ifdef SK_BUILD_FOR_MAC |
| #import <ApplicationServices/ApplicationServices.h> |
| #endif |
| |
| #ifdef SK_BUILD_FOR_IOS |
| #include <CoreGraphics/CoreGraphics.h> |
| #endif |
| |
| // Skia extensions for types in CGBase.h |
| |
| static inline CGFloat SkScalarToCGFloat(SkScalar scalar) { |
| if (sizeof(CGFloat) == sizeof(float)) { |
| return SkScalarToFloat(scalar); |
| } else { |
| SkASSERT(sizeof(CGFloat) == sizeof(double)); |
| return (CGFloat) SkScalarToDouble(scalar); |
| } |
| } |
| |
| static inline SkScalar SkScalarFromCGFloat(CGFloat cgFloat) { |
| if (sizeof(CGFloat) == sizeof(float)) { |
| return SkFloatToScalar(cgFloat); |
| } else { |
| SkASSERT(sizeof(CGFloat) == sizeof(double)); |
| return SkDoubleToScalar(cgFloat); |
| } |
| } |
| |
| static inline float SkFloatFromCGFloat(CGFloat cgFloat) { |
| if (sizeof(CGFloat) == sizeof(float)) { |
| return cgFloat; |
| } else { |
| SkASSERT(sizeof(CGFloat) == sizeof(double)); |
| return static_cast<float>(cgFloat); |
| } |
| } |
| |
| #endif |
| #endif //SkCGBase_DEFINED |