11a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com/* 21a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com * Copyright 2013 Google Inc. 31a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com * 41a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com * Use of this source code is governed by a BSD-style license that can be 51a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com * found in the LICENSE file. 61a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com */ 71a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 81a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com#ifndef SkFontLCDConfig_DEFINED 91a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com#define SkFontLCDConfig_DEFINED 101a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 111a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com#include "SkTypes.h" 121a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 1368f7460fd18357a81a3d4243f1a798f0d64b621ebungemanclass SK_API SkFontLCDConfig { 141a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.compublic: 151a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com /** LCDs either have their color elements arranged horizontally or 161a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com vertically. When rendering subpixel glyphs we need to know which way 171a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com round they are. 181a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 191a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com Note, if you change this after startup, you'll need to flush the glyph 201a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com cache because it'll have the wrong type of masks cached. 211a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 221a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com @deprecated use SkPixelGeometry instead. 231a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com */ 241a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com enum LCDOrientation { 251a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com kHorizontal_LCDOrientation = 0, //!< this is the default 261a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com kVertical_LCDOrientation = 1 271a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com }; 281a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 291a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com /** @deprecated set on Device creation. */ 301a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com static void SetSubpixelOrientation(LCDOrientation orientation); 311a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com /** @deprecated get from Device. */ 321a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com static LCDOrientation GetSubpixelOrientation(); 331a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 341a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com /** LCD color elements can vary in order. For subpixel text we need to know 351a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com the order which the LCDs uses so that the color fringes are in the 361a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com correct place. 371a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 381a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com Note, if you change this after startup, you'll need to flush the glyph 391a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com cache because it'll have the wrong type of masks cached. 401a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 411a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com kNONE_LCDOrder means that the subpixel elements are not spatially 421a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com separated in any usable fashion. 431a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 441a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com @deprecated use SkPixelGeometry instead. 451a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com */ 461a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com enum LCDOrder { 471a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com kRGB_LCDOrder = 0, //!< this is the default 481a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com kBGR_LCDOrder = 1, 491a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com kNONE_LCDOrder = 2 501a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com }; 511a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 521a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com /** @deprecated set on Device creation. */ 531a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com static void SetSubpixelOrder(LCDOrder order); 541a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com /** @deprecated get from Device. */ 551a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com static LCDOrder GetSubpixelOrder(); 561a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com}; 571a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com 581a64a54b278c07b33a3b5e8883b1fdf3173c840ereed@google.com#endif 59