Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[hot fixed]closed issue#4999:fixed label is unsharp if it's created by smaller font. #6553

Merged
merged 2 commits into from May 6, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 7 additions & 6 deletions cocos/2d/CCTexture2D.cpp
Expand Up @@ -1079,7 +1079,10 @@ bool Texture2D::initWithString(const char *text, const std::string& fontName, fl
bool Texture2D::initWithString(const char *text, const FontDefinition& textDefinition)
{
if(!text || 0 == strlen(text))
{
return false;
}

#if CC_ENABLE_CACHE_TEXTURE_DATA
// cache the texture data
VolatileTextureMgr::addStringTexture(this, text, textDefinition);
Expand Down Expand Up @@ -1127,9 +1130,11 @@ bool Texture2D::initWithString(const char *text, const FontDefinition& textDefin
textDef._stroke._strokeSize *= contentScaleFactor;
textDef._shadow._shadowEnabled = false;

Data outData = Device::getTextureDataForText(text,textDef,align,imageWidth,imageHeight);
Data outData = Device::getTextureDataForText(text, textDef, align, imageWidth, imageHeight, _hasPremultipliedAlpha);
if(outData.isNull())
{
return false;
}

Size imageSize = Size((float)imageWidth, (float)imageHeight);
pixelFormat = convertDataToFormat(outData.getBytes(), imageWidth*imageHeight*4, PixelFormat::RGBA8888, pixelFormat, &outTempData, &outTempDataLen);
Expand All @@ -1140,11 +1145,7 @@ bool Texture2D::initWithString(const char *text, const FontDefinition& textDefin
{
free(outTempData);
}
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
_hasPremultipliedAlpha = true;
#else
_hasPremultipliedAlpha = false;
#endif

return ret;
}

Expand Down
2 changes: 1 addition & 1 deletion cocos/2d/platform/CCDevice.h
Expand Up @@ -64,7 +64,7 @@ class CC_DLL Device
*/
static void setAccelerometerInterval(float interval);

static Data getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &widht,int &height);
static Data getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha);

private:
CC_DISALLOW_IMPLICIT_CONSTRUCTORS(Device);
Expand Down
3 changes: 2 additions & 1 deletion cocos/2d/platform/android/CCDevice.cpp
Expand Up @@ -167,7 +167,7 @@ static BitmapDC& sharedBitmapDC()
return s_BmpDC;
}

Data Device::getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &width,int &height)
Data Device::getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha)
{
Data ret;
do
Expand Down Expand Up @@ -196,6 +196,7 @@ Data Device::getTextureDataForText(const char * text,const FontDefinition& textD
width = dc._width;
height = dc._height;
ret.fastSet(dc._data,width * height * 4);
hasPremultipliedAlpha = true;
} while (0);

return ret;
Expand Down
3 changes: 2 additions & 1 deletion cocos/2d/platform/ios/CCDevice.mm
Expand Up @@ -452,7 +452,7 @@ static bool _initWithString(const char * text, cocos2d::Device::TextAlign align,
}


Data Device::getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &width,int &height)
Data Device::getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha)
{
Data ret;

Expand Down Expand Up @@ -481,6 +481,7 @@ static bool _initWithString(const char * text, cocos2d::Device::TextAlign align,
height = (short)info.height;
width = (short)info.width;
ret.fastSet(info.data,width * height * 4);
hasPremultipliedAlpha = true;
} while (0);

return ret;
Expand Down
3 changes: 2 additions & 1 deletion cocos/2d/platform/linux/CCDevice.cpp
Expand Up @@ -480,7 +480,7 @@ static BitmapDC& sharedBitmapDC()
return s_BmpDC;
}

Data Device::getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &width,int &height)
Data Device::getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha)
{
Data ret;
do
Expand All @@ -493,6 +493,7 @@ Data Device::getTextureDataForText(const char * text,const FontDefinition& textD
height = dc.iMaxLineHeight;
dc.reset();
ret.fastSet(dc._data,width * height * 4);
hasPremultipliedAlpha = true;
} while (0);

return ret;
Expand Down
3 changes: 2 additions & 1 deletion cocos/2d/platform/mac/CCDevice.mm
Expand Up @@ -224,7 +224,7 @@ static bool _initWithString(const char * text, Device::TextAlign align, const ch
return ret;
}

Data Device::getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &width,int &height)
Data Device::getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha)
{
Data ret;
do {
Expand All @@ -239,6 +239,7 @@ static bool _initWithString(const char * text, Device::TextAlign align, const ch
height = (short)info.height;
width = (short)info.width;
ret.fastSet(info.data,width * height * 4);
hasPremultipliedAlpha = true;
} while (0);

return ret;
Expand Down
4 changes: 3 additions & 1 deletion cocos/2d/platform/win32/CCDevice.cpp
Expand Up @@ -377,7 +377,7 @@ static BitmapDC& sharedBitmapDC()
return s_BmpDC;
}

Data Device::getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &width,int &height)
Data Device::getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha)
{
Data ret;
do
Expand Down Expand Up @@ -429,7 +429,9 @@ Data Device::getTextureDataForText(const char * text,const FontDefinition& textD
}

ret.fastSet(dataBuf,dataLen);
hasPremultipliedAlpha = false;
} while (0);

return ret;
}

Expand Down
3 changes: 2 additions & 1 deletion cocos/2d/platform/winrt/CCDevice.cpp
Expand Up @@ -147,7 +147,7 @@ void Device::setAccelerometerInterval(float interval)



Data Device::getTextureDataForText(const char * text,const FontDefinition& textDefinition,TextAlign align,int &width,int &height)
Data Device::getTextureDataForText(const char * text, const FontDefinition& textDefinition, TextAlign align, int &width, int &height, bool& hasPremultipliedAlpha)
{
Data ret;
ssize_t dataLen;
Expand All @@ -157,6 +157,7 @@ Data Device::getTextureDataForText(const char * text,const FontDefinition& textD
if (data)
{
ret.fastSet(data, dataLen);
hasPremultipliedAlpha = false;
}

return ret;
Expand Down