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