summaryrefslogtreecommitdiffstats
path: root/libs/hwui/font/CacheTexture.h
diff options
context:
space:
mode:
authorVictoria Lease <violets@google.com>2013-06-25 14:25:17 -0700
committerVictoria Lease <violets@google.com>2013-07-31 15:50:47 -0700
commit1e546815bbb736c50679a8aefc25f48561026fc5 (patch)
tree11a3b7106638c123d052d50ce3e2a1757e004cb4 /libs/hwui/font/CacheTexture.h
parent3a6f25512c0a682b10961a5a7428e3393ffb0b75 (diff)
downloadframeworks_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.h13
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;