am 0a386ffa
: Text shadow alpha handling incorrect DO NOT MERGE
* commit '0a386ffac026e259c408b77c2dd2cc5d2e22b5f8': Text shadow alpha handling incorrect DO NOT MERGE
This commit is contained in:
@ -1149,7 +1149,6 @@ void OpenGLRenderer::setupDrawColor(int color) {
|
||||
|
||||
void OpenGLRenderer::setupDrawColor(int color, int alpha) {
|
||||
mColorA = alpha / 255.0f;
|
||||
mColorA *= mSnapshot->alpha;
|
||||
// Second divide of a by 255 is an optimization, allowing us to simply multiply
|
||||
// the rgb values by a instead of also dividing by 255
|
||||
const float a = mColorA / 255.0f;
|
||||
@ -1181,15 +1180,6 @@ void OpenGLRenderer::setupDrawColor(float r, float g, float b, float a) {
|
||||
mSetShaderColor = mDescription.setColor(r, g, b, a);
|
||||
}
|
||||
|
||||
void OpenGLRenderer::setupDrawAlpha8Color(float r, float g, float b, float a) {
|
||||
mColorA = a;
|
||||
mColorR = r;
|
||||
mColorG = g;
|
||||
mColorB = b;
|
||||
mColorSet = true;
|
||||
mSetShaderColor = mDescription.setAlpha8Color(r, g, b, a);
|
||||
}
|
||||
|
||||
void OpenGLRenderer::setupDrawShader() {
|
||||
if (mShader) {
|
||||
mShader->describe(mDescription, mCaches.extensions);
|
||||
@ -1771,7 +1761,7 @@ void OpenGLRenderer::drawAARect(float left, float top, float right, float bottom
|
||||
setupDraw();
|
||||
setupDrawNoTexture();
|
||||
setupDrawAALine();
|
||||
setupDrawColor(color);
|
||||
setupDrawColor(color, ((color >> 24) & 0xFF) * mSnapshot->alpha);
|
||||
setupDrawColorFilter();
|
||||
setupDrawShader();
|
||||
setupDrawBlending(true, mode);
|
||||
@ -2267,7 +2257,7 @@ status_t OpenGLRenderer::drawRect(float left, float top, float right, float bott
|
||||
status_t OpenGLRenderer::drawPosText(const char* text, int bytesCount, int count,
|
||||
const float* positions, SkPaint* paint) {
|
||||
if (text == NULL || count == 0 || mSnapshot->isIgnored() ||
|
||||
(paint->getAlpha() == 0 && paint->getXfermode() == NULL)) {
|
||||
(paint->getAlpha() * mSnapshot->alpha == 0 && paint->getXfermode() == NULL)) {
|
||||
return DrawGlInfo::kStatusDone;
|
||||
}
|
||||
|
||||
@ -2340,7 +2330,7 @@ status_t OpenGLRenderer::drawPosText(const char* text, int bytesCount, int count
|
||||
status_t OpenGLRenderer::drawText(const char* text, int bytesCount, int count,
|
||||
float x, float y, SkPaint* paint, float length) {
|
||||
if (text == NULL || count == 0 || mSnapshot->isIgnored() ||
|
||||
(paint->getAlpha() == 0 && paint->getXfermode() == NULL)) {
|
||||
(paint->getAlpha() * mSnapshot->alpha == 0 && paint->getXfermode() == NULL)) {
|
||||
return DrawGlInfo::kStatusDone;
|
||||
}
|
||||
|
||||
@ -2393,7 +2383,7 @@ status_t OpenGLRenderer::drawText(const char* text, int bytesCount, int count,
|
||||
const float sx = oldX - shadow->left + mShadowDx;
|
||||
const float sy = oldY - shadow->top + mShadowDy;
|
||||
|
||||
const int shadowAlpha = ((mShadowColor >> 24) & 0xFF);
|
||||
const int shadowAlpha = ((mShadowColor >> 24) & 0xFF) * mSnapshot->alpha;
|
||||
int shadowColor = mShadowColor;
|
||||
if (mShader) {
|
||||
shadowColor = 0xffffffff;
|
||||
@ -2792,7 +2782,7 @@ void OpenGLRenderer::drawColorRect(float left, float top, float right, float bot
|
||||
|
||||
setupDraw();
|
||||
setupDrawNoTexture();
|
||||
setupDrawColor(color);
|
||||
setupDrawColor(color, ((color >> 24) & 0xFF) * mSnapshot->alpha);
|
||||
setupDrawShader();
|
||||
setupDrawColorFilter();
|
||||
setupDrawBlending(mode);
|
||||
|
@ -537,7 +537,6 @@ private:
|
||||
void setupDrawColor(int color, int alpha);
|
||||
void setupDrawColor(float r, float g, float b, float a);
|
||||
void setupDrawAlpha8Color(int color, int alpha);
|
||||
void setupDrawAlpha8Color(float r, float g, float b, float a);
|
||||
void setupDrawShader();
|
||||
void setupDrawColorFilter();
|
||||
void setupDrawBlending(SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode,
|
||||
|
Reference in New Issue
Block a user