diff options
author | Victoria Lease <violets@google.com> | 2013-06-25 14:25:17 -0700 |
---|---|---|
committer | Victoria Lease <violets@google.com> | 2013-07-31 15:50:47 -0700 |
commit | 1e546815bbb736c50679a8aefc25f48561026fc5 (patch) | |
tree | 11a3b7106638c123d052d50ce3e2a1757e004cb4 /libs/hwui/font/CacheTexture.h | |
parent | 3a6f25512c0a682b10961a5a7428e3393ffb0b75 (diff) | |
download | frameworks_base-1e546815bbb736c50679a8aefc25f48561026fc5.zip frameworks_base-1e546815bbb736c50679a8aefc25f48561026fc5.tar.gz frameworks_base-1e546815bbb736c50679a8aefc25f48561026fc5.tar.bz2 |
Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)
Quite a few things going on in this commit:
- Enable bitmap strikes by default in Paint objects.
The SkPaint parameter that enables bitmap strikes was not previously
included in DEFAULT_PAINT_FLAGS. This effectively disabled bitmap
fonts. Oops! It's for the best, though, as additional work was needed
in Skia to make bitmap fonts work anyway.
- Complain if TEXTURE_BORDER_SIZE is not 1.
Our glyph cache code does not currently handle any value other than 1
here, including zero. I've added a little C preprocessor check to
prevent future engineers (including especially future-me) from
thinking that they can change this value without updating the related
code.
- Add GL_RGBA support to hwui's FontRenderer and friends
This also happened to involve some refactoring for convenience and
cleanliness.
Bug: 9577689
Change-Id: I0abd1e5a0d6623106247fb6421787e2c2f2ea19c
Diffstat (limited to 'libs/hwui/font/CacheTexture.h')
-rw-r--r-- | libs/hwui/font/CacheTexture.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libs/hwui/font/CacheTexture.h b/libs/hwui/font/CacheTexture.h index 208b1ff..028b611 100644 --- a/libs/hwui/font/CacheTexture.h +++ b/libs/hwui/font/CacheTexture.h @@ -24,6 +24,7 @@ #include <utils/Log.h> #include "FontUtil.h" +#include "../PixelBuffer.h" #include "../Rect.h" #include "../Vertex.h" @@ -31,7 +32,6 @@ namespace android { namespace uirenderer { class Caches; -class PixelBuffer; /** * CacheBlock is a node in a linked list of current free space areas in a CacheTexture. @@ -74,7 +74,7 @@ struct CacheBlock { class CacheTexture { public: - CacheTexture(uint16_t width, uint16_t height, uint32_t maxQuadCount); + CacheTexture(uint16_t width, uint16_t height, GLenum format, uint32_t maxQuadCount); ~CacheTexture(); void reset(); @@ -100,6 +100,14 @@ public: return mHeight; } + inline GLenum getFormat() const { + return mFormat; + } + + inline uint32_t getOffset(uint16_t x, uint16_t y) const { + return (y * mWidth + x) * PixelBuffer::formatSize(mFormat); + } + inline const Rect* getDirtyRect() const { return &mDirtyRect; } @@ -173,6 +181,7 @@ private: GLuint mTextureId; uint16_t mWidth; uint16_t mHeight; + GLenum mFormat; bool mLinearFiltering; bool mDirty; uint16_t mNumGlyphs; |