Instance fix bug.
text-style shader requied both style texture and overlay style texture.
But for some special case, overlay style texture didnt applied.
TODO : Actually, we need to shrink text relative shaders.
It should be done in future.
Change-Id: Ib2239d5e3b13b946cac964e494027dbaebfe6a02
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
- if(styleEnabled && info.styleBuffer)
+ if(styleEnabled && info.styleBuffer && info.overlayStyleBuffer)
{
PixelData styleData = ConvertToPixelData(info.styleBuffer, info.width, info.height, info.offsetPosition, Pixel::RGBA8888);
AddTexture(textureSet, styleData, sampler, textureSetIndex);
++textureSetIndex;
{
PixelData styleData = ConvertToPixelData(info.styleBuffer, info.width, info.height, info.offsetPosition, Pixel::RGBA8888);
AddTexture(textureSet, styleData, sampler, textureSetIndex);
++textureSetIndex;
- if(styleEnabled && isOverlayStyle && info.styleBuffer)
- {
- PixelData overlayStyleData = ConvertToPixelData(info.styleBuffer, info.width, info.height, info.offsetPosition, Pixel::RGBA8888);
+ // TODO : We need to seperate whether use overlayStyle or not.
+ // Current text visual shader required both of them.
+
+ PixelData overlayStyleData = ConvertToPixelData(info.overlayStyleBuffer, info.width, info.height, info.offsetPosition, Pixel::RGBA8888);
AddTexture(textureSet, overlayStyleData, sampler, textureSetIndex);
++textureSetIndex;
}
AddTexture(textureSet, overlayStyleData, sampler, textureSetIndex);
++textureSetIndex;
}
PixelData styleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_NO_TEXT, false, Pixel::RGBA8888);
Dali::DevelPixelData::PixelDataBuffer stylePixelData = Dali::DevelPixelData::ReleasePixelDataBuffer(styleData);
info.styleBuffer = stylePixelData.buffer;
PixelData styleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_NO_TEXT, false, Pixel::RGBA8888);
Dali::DevelPixelData::PixelDataBuffer stylePixelData = Dali::DevelPixelData::ReleasePixelDataBuffer(styleData);
info.styleBuffer = stylePixelData.buffer;
+
+ // TODO : We need to seperate whether use overlayStyle or not.
+ // Current text visual shader required both of them.
+
+ // Create RGBA texture for all the overlay styles
+ PixelData overlayStyleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_OVERLAY_STYLE, false, Pixel::RGBA8888);
+ Dali::DevelPixelData::PixelDataBuffer overlayStylePixelData = Dali::DevelPixelData::ReleasePixelDataBuffer(overlayStyleData);
+ info.overlayStyleBuffer = overlayStylePixelData.buffer;
}
if(containsColorGlyph && !hasMultipleTextColors)
}
if(containsColorGlyph && !hasMultipleTextColors)
PixelData styleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_NO_TEXT, false, Pixel::RGBA8888);
AddTexture(textureSet, styleData, sampler, textureSetIndex);
++textureSetIndex;
PixelData styleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_NO_TEXT, false, Pixel::RGBA8888);
AddTexture(textureSet, styleData, sampler, textureSetIndex);
++textureSetIndex;
+
+ // TODO : We need to seperate whether use overlayStyle or not.
+ // Current text visual shader required both of them.
+
// Create RGBA texture for overlay styles such as underline and strikethrough (without the text itself)
PixelData overlayStyleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_OVERLAY_STYLE, false, Pixel::RGBA8888);
AddTexture(textureSet, overlayStyleData, sampler, textureSetIndex);
// Create RGBA texture for overlay styles such as underline and strikethrough (without the text itself)
PixelData overlayStyleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_OVERLAY_STYLE, false, Pixel::RGBA8888);
AddTexture(textureSet, overlayStyleData, sampler, textureSetIndex);
{
unsigned char* textBuffer;
unsigned char* styleBuffer;
{
unsigned char* textBuffer;
unsigned char* styleBuffer;
+ unsigned char* overlayStyleBuffer;
unsigned char* maskBuffer;
int width;
int height;
unsigned char* maskBuffer;
int width;
int height;
TilingInfo(int width, int height, Pixel::Format textPixelFormat)
: textBuffer(NULL),
styleBuffer(NULL),
TilingInfo(int width, int height, Pixel::Format textPixelFormat)
: textBuffer(NULL),
styleBuffer(NULL),
+ overlayStyleBuffer(NULL),
maskBuffer(NULL),
width(width),
height(height),
maskBuffer(NULL),
width(width),
height(height),
+ if(overlayStyleBuffer)
+ {
+ free(overlayStyleBuffer);
+ }
if(maskBuffer)
{
free(maskBuffer);
if(maskBuffer)
{
free(maskBuffer);