| // Copyright 2020 The PDFium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef CORE_FXGE_CFX_TEXTRENDEROPTIONS_H_ | |
| #define CORE_FXGE_CFX_TEXTRENDEROPTIONS_H_ | |
| struct CFX_TextRenderOptions { | |
| // AliasingType defines the options for drawing pixels on the edges of the | |
| // text. The values are defined in an incrementing order due to the latter | |
| // aliasing type's dependency on the previous one. | |
| enum AliasingType { | |
| // No transparent pixels on glyph edges. | |
| kAliasing, | |
| // May have transparent pixels on glyph edges. | |
| kAntiAliasing, | |
| // LCD optimization, can be enabled when anti-aliasing is allowed. | |
| kLcd, | |
| }; | |
| constexpr CFX_TextRenderOptions() = default; | |
| constexpr explicit CFX_TextRenderOptions(AliasingType type) | |
| : aliasing_type(type) {} | |
| constexpr CFX_TextRenderOptions(const CFX_TextRenderOptions& other) = default; | |
| CFX_TextRenderOptions& operator=(const CFX_TextRenderOptions& other) = | |
| default; | |
| // Indicates whether anti-aliasing is enabled. | |
| bool IsSmooth() const { | |
| return aliasing_type == kAntiAliasing || aliasing_type == kLcd; | |
| } | |
| // Aliasing option for fonts. | |
| AliasingType aliasing_type = kAntiAliasing; | |
| // Font is CID font. | |
| bool font_is_cid = false; | |
| // Using the native text output available on some platforms. | |
| bool native_text = true; | |
| }; | |
| inline bool operator==(const CFX_TextRenderOptions& lhs, | |
| const CFX_TextRenderOptions& rhs) { | |
| return lhs.aliasing_type == rhs.aliasing_type && | |
| lhs.font_is_cid == rhs.font_is_cid && | |
| lhs.native_text == rhs.native_text; | |
| } | |
| inline bool operator!=(const CFX_TextRenderOptions& lhs, | |
| const CFX_TextRenderOptions& rhs) { | |
| return !(lhs == rhs); | |
| } | |
| #endif // CORE_FXGE_CFX_TEXTRENDEROPTIONS_H_ |