diff options
author | bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-09-17 17:23:21 +0000 |
---|---|---|
committer | bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-09-17 17:23:21 +0000 |
commit | 7534747e631c49680f7199ccf9e71a359cfa647d (patch) | |
tree | 1b51964a307b5449217c78e426b2c3c06175ddbb /src/gpu/gl | |
parent | 0729b623730983821ef53fad9c988bad030509ed (diff) |
Add GrColor to RGBA float helper func
Review URL: https://codereview.appspot.com/6518044/
git-svn-id: http://skia.googlecode.com/svn/trunk@5572 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/gl')
-rw-r--r-- | src/gpu/gl/GrGpuGL.cpp | 9 | ||||
-rw-r--r-- | src/gpu/gl/GrGpuGL_program.cpp | 33 |
2 files changed, 15 insertions, 27 deletions
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp index 442bbb42a0..1cca043ee9 100644 --- a/src/gpu/gl/GrGpuGL.cpp +++ b/src/gpu/gl/GrGpuGL.cpp @@ -1986,13 +1986,8 @@ void GrGpuGL::flushBlend(bool isLines, BlendCoeffReferencesConstant(dstCoeff)) && (!fHWBlendState.fConstColorValid || fHWBlendState.fConstColor != blendConst)) { - - float c[] = { - GrColorUnpackR(blendConst) / 255.f, - GrColorUnpackG(blendConst) / 255.f, - GrColorUnpackB(blendConst) / 255.f, - GrColorUnpackA(blendConst) / 255.f - }; + GrGLfloat c[4]; + GrColorToRGBAFloat(blendConst, c); GL_CALL(BlendColor(c[0], c[1], c[2], c[3])); fHWBlendState.fConstColor = blendConst; fHWBlendState.fConstColorValid = true; diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp index a1807da445..9e3a5d884c 100644 --- a/src/gpu/gl/GrGpuGL_program.cpp +++ b/src/gpu/gl/GrGpuGL_program.cpp @@ -259,15 +259,6 @@ void GrGpuGL::flushColorMatrix() { } } -static const float ONE_OVER_255 = 1.f / 255.f; - -#define GR_COLOR_TO_VEC4(color) {\ - GrColorUnpackR(color) * ONE_OVER_255,\ - GrColorUnpackG(color) * ONE_OVER_255,\ - GrColorUnpackB(color) * ONE_OVER_255,\ - GrColorUnpackA(color) * ONE_OVER_255 \ -} - void GrGpuGL::flushColor(GrColor color) { const ProgramDesc& desc = fCurrentProgram->getDesc(); const GrDrawState& drawState = this->getDrawState(); @@ -280,19 +271,18 @@ void GrGpuGL::flushColor(GrColor color) { switch (desc.fColorInput) { case ProgramDesc::kAttribute_ColorInput: if (fHWConstAttribColor != color) { - // OpenGL ES only supports the float varieties of - // glVertexAttrib - float c[] = GR_COLOR_TO_VEC4(color); - GL_CALL(VertexAttrib4fv(GrGLProgram::ColorAttributeIdx(), - c)); + // OpenGL ES only supports the float varieties of glVertexAttrib + GrGLfloat c[4]; + GrColorToRGBAFloat(color, c); + GL_CALL(VertexAttrib4fv(GrGLProgram::ColorAttributeIdx(), c)); fHWConstAttribColor = color; } break; case ProgramDesc::kUniform_ColorInput: if (fCurrentProgram->fColor != color) { - // OpenGL ES doesn't support unsigned byte varieties of - // glUniform - float c[] = GR_COLOR_TO_VEC4(color); + // OpenGL ES doesn't support unsigned byte varieties of glUniform + GrGLfloat c[4]; + GrColorToRGBAFloat(color, c); GrAssert(kInvalidUniformHandle != fCurrentProgram->fUniforms.fColorUni); fCurrentProgram->fUniformManager.set4fv(fCurrentProgram->fUniforms.fColorUni, 0, 1, c); @@ -309,7 +299,8 @@ void GrGpuGL::flushColor(GrColor color) { UniformHandle filterColorUni = fCurrentProgram->fUniforms.fColorFilterUni; if (kInvalidUniformHandle != filterColorUni && fCurrentProgram->fColorFilterColor != drawState.getColorFilterColor()) { - float c[] = GR_COLOR_TO_VEC4(drawState.getColorFilterColor()); + GrGLfloat c[4]; + GrColorToRGBAFloat(drawState.getColorFilterColor(), c); fCurrentProgram->fUniformManager.set4fv(filterColorUni, 0, 1, c); fCurrentProgram->fColorFilterColor = drawState.getColorFilterColor(); } @@ -330,7 +321,8 @@ void GrGpuGL::flushCoverage(GrColor coverage) { if (fHWConstAttribCoverage != coverage) { // OpenGL ES only supports the float varieties of // glVertexAttrib - float c[] = GR_COLOR_TO_VEC4(coverage); + GrGLfloat c[4]; + GrColorToRGBAFloat(coverage, c); GL_CALL(VertexAttrib4fv(GrGLProgram::CoverageAttributeIdx(), c)); fHWConstAttribCoverage = coverage; @@ -340,7 +332,8 @@ void GrGpuGL::flushCoverage(GrColor coverage) { if (fCurrentProgram->fCoverage != coverage) { // OpenGL ES doesn't support unsigned byte varieties of // glUniform - float c[] = GR_COLOR_TO_VEC4(coverage); + GrGLfloat c[4]; + GrColorToRGBAFloat(coverage, c); GrAssert(kInvalidUniformHandle != fCurrentProgram->fUniforms.fCoverageUni); fCurrentProgram->fUniformManager.set4fv(fCurrentProgram->fUniforms.fCoverageUni, 0, 1, c); |