Loading libs/hwui/PixelBuffer.h +19 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,25 @@ public: return 0; } /** * Returns the alpha channel offset in the specified format. * * Supported formats: * GL_ALPHA * GL_RGBA */ static uint32_t formatAlphaOffset(GLenum format) { switch (format) { case GL_ALPHA: return 0; case GL_RGBA: return 3; } ALOGE("unsupported format: %d",format); return 0; } protected: /** * Creates a new render buffer in the specified format and dimensions. Loading libs/hwui/font/Font.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ void Font::drawCachedGlyphBitmap(CachedGlyphInfo* glyph, int x, int y, uint8_t* PixelBuffer* pixelBuffer = cacheTexture->getPixelBuffer(); uint32_t formatSize = PixelBuffer::formatSize(pixelBuffer->getFormat()); uint32_t alpha_channel_offset = PixelBuffer::formatAlphaOffset(pixelBuffer->getFormat()); uint32_t cacheWidth = cacheTexture->getWidth(); uint32_t srcStride = formatSize * cacheWidth; uint32_t startY = glyph->mStartY * srcStride; Loading @@ -229,7 +230,7 @@ void Font::drawCachedGlyphBitmap(CachedGlyphInfo* glyph, int x, int y, uint8_t* memcpy(&bitmap[bitmapY + dstX], &cacheBuffer[cacheY + glyph->mStartX], glyph->mBitmapWidth); } else { for (uint32_t i = 0; i < glyph->mBitmapWidth; ++i) { bitmap[bitmapY + dstX + i] = cacheBuffer[cacheY + (glyph->mStartX + i)*formatSize]; bitmap[bitmapY + dstX + i] = cacheBuffer[cacheY + (glyph->mStartX + i)*formatSize + alpha_channel_offset]; } } } Loading Loading
libs/hwui/PixelBuffer.h +19 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,25 @@ public: return 0; } /** * Returns the alpha channel offset in the specified format. * * Supported formats: * GL_ALPHA * GL_RGBA */ static uint32_t formatAlphaOffset(GLenum format) { switch (format) { case GL_ALPHA: return 0; case GL_RGBA: return 3; } ALOGE("unsupported format: %d",format); return 0; } protected: /** * Creates a new render buffer in the specified format and dimensions. Loading
libs/hwui/font/Font.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ void Font::drawCachedGlyphBitmap(CachedGlyphInfo* glyph, int x, int y, uint8_t* PixelBuffer* pixelBuffer = cacheTexture->getPixelBuffer(); uint32_t formatSize = PixelBuffer::formatSize(pixelBuffer->getFormat()); uint32_t alpha_channel_offset = PixelBuffer::formatAlphaOffset(pixelBuffer->getFormat()); uint32_t cacheWidth = cacheTexture->getWidth(); uint32_t srcStride = formatSize * cacheWidth; uint32_t startY = glyph->mStartY * srcStride; Loading @@ -229,7 +230,7 @@ void Font::drawCachedGlyphBitmap(CachedGlyphInfo* glyph, int x, int y, uint8_t* memcpy(&bitmap[bitmapY + dstX], &cacheBuffer[cacheY + glyph->mStartX], glyph->mBitmapWidth); } else { for (uint32_t i = 0; i < glyph->mBitmapWidth; ++i) { bitmap[bitmapY + dstX + i] = cacheBuffer[cacheY + (glyph->mStartX + i)*formatSize]; bitmap[bitmapY + dstX + i] = cacheBuffer[cacheY + (glyph->mStartX + i)*formatSize + alpha_channel_offset]; } } } Loading