GrBitmapTextContext.h revision 972f9cd7a063d0544f8c919fd12b9a3adbd12b24
1c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com/* 2c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com * Copyright 2013 Google Inc. 3c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com * 4c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com * Use of this source code is governed by a BSD-style license that can be 5c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com * found in the LICENSE file. 6c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com */ 7c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 8c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com#ifndef GrBitmapTextContext_DEFINED 9c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com#define GrBitmapTextContext_DEFINED 10c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 11c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com#include "GrTextContext.h" 12c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 13c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.comclass GrTextStrike; 14c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 15c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com/* 16c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com * This class implements GrTextContext using standard bitmap fonts 17c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com */ 18c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.comclass GrBitmapTextContext : public GrTextContext { 19c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.compublic: 20cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org GrBitmapTextContext(GrContext*, const SkDeviceProperties&); 219f94b9104a02c5918720517de3ffd547f354900acommit-bot@chromium.org virtual ~GrBitmapTextContext(); 229f94b9104a02c5918720517de3ffd547f354900acommit-bot@chromium.org 234c18e9fbb685cccf23342757e786027a032197daskia.committer@gmail.com virtual void drawText(const GrPaint&, const SkPaint&, const char text[], size_t byteLength, 24cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org SkScalar x, SkScalar y) SK_OVERRIDE; 254c18e9fbb685cccf23342757e786027a032197daskia.committer@gmail.com virtual void drawPosText(const GrPaint&, const SkPaint&, 26cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org const char text[], size_t byteLength, 27e8612d9a8d616c2ed0195421a0675e10b0c2d230commit-bot@chromium.org const SkScalar pos[], SkScalar constY, 28e8612d9a8d616c2ed0195421a0675e10b0c2d230commit-bot@chromium.org int scalarsPerPosition) SK_OVERRIDE; 29c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 30cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org virtual bool canDraw(const SkPaint& paint) SK_OVERRIDE; 314c18e9fbb685cccf23342757e786027a032197daskia.committer@gmail.com 32c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.comprivate: 33c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com GrTextStrike* fStrike; 34c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 35cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org void init(const GrPaint&, const SkPaint&); 36972f9cd7a063d0544f8c919fd12b9a3adbd12b24commit-bot@chromium.org void drawPackedGlyph(GrGlyph::PackedID, SkFixed left, SkFixed top, GrFontScaler*); 37c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com void flushGlyphs(); // automatically called by destructor 38cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org void finish(); 39c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 40c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com enum { 41c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kMinRequestedGlyphs = 1, 42c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kDefaultRequestedGlyphs = 64, 43c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kMinRequestedVerts = kMinRequestedGlyphs * 4, 44c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kDefaultRequestedVerts = kDefaultRequestedGlyphs * 4, 45c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com }; 46c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 47c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com SkPoint* fVertices; 48c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com int32_t fMaxVertices; 49c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com GrTexture* fCurrTexture; 50c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com int fCurrVertex; 513ae0e6c2b213d45c370846a4d4182a6754ca493ecommit-bot@chromium.org SkRect fVertexBounds; 52c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com}; 53c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 54c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com#endif 55