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; 147801faaab9bf7dd0ac67e859c4e284e74f7bd46fcommit-bot@chromium.orgclass GrAtlasMgr; 15c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 16c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com/* 17c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com * This class implements GrTextContext using standard bitmap fonts 18c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com */ 19c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.comclass GrBitmapTextContext : public GrTextContext { 20c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.compublic: 21cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org GrBitmapTextContext(GrContext*, const SkDeviceProperties&); 229f94b9104a02c5918720517de3ffd547f354900acommit-bot@chromium.org virtual ~GrBitmapTextContext(); 239f94b9104a02c5918720517de3ffd547f354900acommit-bot@chromium.org 244c18e9fbb685cccf23342757e786027a032197daskia.committer@gmail.com virtual void drawText(const GrPaint&, const SkPaint&, const char text[], size_t byteLength, 25cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org SkScalar x, SkScalar y) SK_OVERRIDE; 264c18e9fbb685cccf23342757e786027a032197daskia.committer@gmail.com virtual void drawPosText(const GrPaint&, const SkPaint&, 27cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org const char text[], size_t byteLength, 28e8612d9a8d616c2ed0195421a0675e10b0c2d230commit-bot@chromium.org const SkScalar pos[], SkScalar constY, 29e8612d9a8d616c2ed0195421a0675e10b0c2d230commit-bot@chromium.org int scalarsPerPosition) SK_OVERRIDE; 30c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 31cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org virtual bool canDraw(const SkPaint& paint) SK_OVERRIDE; 324c18e9fbb685cccf23342757e786027a032197daskia.committer@gmail.com 33c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.comprivate: 34c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com GrTextStrike* fStrike; 35c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 36cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org void init(const GrPaint&, const SkPaint&); 37972f9cd7a063d0544f8c919fd12b9a3adbd12b24commit-bot@chromium.org void drawPackedGlyph(GrGlyph::PackedID, SkFixed left, SkFixed top, GrFontScaler*); 38c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com void flushGlyphs(); // automatically called by destructor 39cbbc481e918c0d32454455626235f67106f216a1commit-bot@chromium.org void finish(); 40c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 41c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com enum { 42c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kMinRequestedGlyphs = 1, 43c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kDefaultRequestedGlyphs = 64, 44c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kMinRequestedVerts = kMinRequestedGlyphs * 4, 45c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com kDefaultRequestedVerts = kDefaultRequestedGlyphs * 4, 46c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com }; 47c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 488b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon void* fVertices; 498b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon int32_t fMaxVertices; 508b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon GrTexture* fCurrTexture; 518b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon SkAutoTUnref<GrEffectRef> fCachedEffect; 528b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon uint32_t fEffectTextureGenID; 538b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon int fCurrVertex; 548b2fac4b25dfb8180c54707f8e19698a9fddde07bsalomon SkRect fVertexBounds; 55c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com}; 56c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com 57c7a40fad0b4c243087ad1adb14ebc2184d42cac0jvanverth@google.com#endif 58