// Copyright (c) 2012 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 UI_GFX_FONT_RENDER_PARAMS_LINUX_H_
#define UI_GFX_FONT_RENDER_PARAMS_LINUX_H_
#include "ui/gfx/gfx_export.h"
namespace gfx {
// A collection of parameters describing how text should be rendered on Linux.
struct GFX_EXPORT FontRenderParams {
// No constructor to avoid static initialization.
// Level of hinting to be applied.
enum Hinting {
HINTING_NONE = 0,
HINTING_SLIGHT,
HINTING_MEDIUM,
HINTING_FULL,
};
// Different subpixel orders to be used for subpixel rendering.
enum SubpixelRendering {
SUBPIXEL_RENDERING_NONE = 0,
SUBPIXEL_RENDERING_RGB,
SUBPIXEL_RENDERING_BGR,
SUBPIXEL_RENDERING_VRGB,
SUBPIXEL_RENDERING_VBGR,
};
// Antialiasing (grayscale if |subpixel_rendering| is SUBPIXEL_RENDERING_NONE
// and RGBA otherwise).
bool antialiasing;
// Should subpixel positioning (i.e. fractional X positions for glyphs) be
// used?
bool subpixel_positioning;
// Should FreeType's autohinter be used (as opposed to Freetype's bytecode
// interpreter, which uses fonts' own hinting instructions)?
bool autohinter;
// Should embedded bitmaps in fonts should be used?
bool use_bitmaps;
// Hinting level.
Hinting hinting;
// Whether subpixel rendering should be used or not, and if so, the display's
// subpixel order.
SubpixelRendering subpixel_rendering;
};
// Returns the system's default parameters for font rendering.
GFX_EXPORT const FontRenderParams& GetDefaultFontRenderParams();
// Returns the system's default parameters for WebKit font rendering.
GFX_EXPORT const FontRenderParams& GetDefaultWebKitFontRenderParams();
// Returns the system's default parameters for WebKit subpixel positioning.
// Subpixel positioning is special since neither GTK nor FontConfig currently
// track it as a preference.
// See https://bugs.freedesktop.org/show_bug.cgi?id=50736
GFX_EXPORT bool GetDefaultWebkitSubpixelPositioning();
} // namespace gfx
#endif // UI_GFX_FONT_RENDER_PARAMS_LINUX_H_