Skia
2DGraphicsLibrary
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SkSurfaceProps.h
1 /*
2  * Copyright 2014 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkSurfaceProps_DEFINED
9 #define SkSurfaceProps_DEFINED
10 
11 #include "SkTypes.h"
12 
18 enum SkPixelGeometry {
19  kUnknown_SkPixelGeometry,
20  kRGB_H_SkPixelGeometry,
21  kBGR_H_SkPixelGeometry,
22  kRGB_V_SkPixelGeometry,
23  kBGR_V_SkPixelGeometry,
24 };
25 
26 // Returns true iff geo is a known geometry and is RGB.
27 static inline bool SkPixelGeometryIsRGB(SkPixelGeometry geo) {
28  return kRGB_H_SkPixelGeometry == geo || kRGB_V_SkPixelGeometry == geo;
29 }
30 
31 // Returns true iff geo is a known geometry and is BGR.
32 static inline bool SkPixelGeometryIsBGR(SkPixelGeometry geo) {
33  return kBGR_H_SkPixelGeometry == geo || kBGR_V_SkPixelGeometry == geo;
34 }
35 
36 // Returns true iff geo is a known geometry and is horizontal.
37 static inline bool SkPixelGeometryIsH(SkPixelGeometry geo) {
38  return kRGB_H_SkPixelGeometry == geo || kBGR_H_SkPixelGeometry == geo;
39 }
40 
41 // Returns true iff geo is a known geometry and is vertical.
42 static inline bool SkPixelGeometryIsV(SkPixelGeometry geo) {
43  return kRGB_V_SkPixelGeometry == geo || kBGR_V_SkPixelGeometry == geo;
44 }
45 
51 class SK_API SkSurfaceProps {
52 public:
53  enum Flags {
54  kUseDeviceIndependentFonts_Flag = 1 << 0,
55  };
57  static const Flags kUseDistanceFieldFonts_Flag = kUseDeviceIndependentFonts_Flag;
58 
59  SkSurfaceProps(uint32_t flags, SkPixelGeometry);
60 
61  enum InitType {
62  kLegacyFontHost_InitType
63  };
64  SkSurfaceProps(InitType);
65  SkSurfaceProps(uint32_t flags, InitType);
66  SkSurfaceProps(const SkSurfaceProps& other);
67 
68  uint32_t flags() const { return fFlags; }
69  SkPixelGeometry pixelGeometry() const { return fPixelGeometry; }
70 
71  bool isUseDeviceIndependentFonts() const {
72  return SkToBool(fFlags & kUseDeviceIndependentFonts_Flag);
73  }
74 
75 private:
77 
78  uint32_t fFlags;
79  SkPixelGeometry fPixelGeometry;
80 };
81 
82 #endif
Describes properties and constraints of a given SkSurface.
Definition: SkSurfaceProps.h:51
#define SkToBool(cond)
Returns 0 or 1 based on the condition.
Definition: SkTypes.h:227