Replace GrColor4h with SkPMColor4f
- Mechanical replacement of GrColor4h (used throughout Ops) with
SkPMColor4f.
- API adaptation (to/FromGrColor -> to/From_BytesRGBA).
- Complete removal of FromFloats (source was already SkPMColor4f),
and toFloats (setting uniforms can directly access .vec()).
Bug: skia:
Change-Id: I37eece1fa7ed2545dc6843e840d4cc3c60f19747
Reviewed-on: https://skia-review.googlesource.com/c/166620
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp
index 0ca6232..6057561 100644
--- a/src/gpu/GrDefaultGeoProcFactory.cpp
+++ b/src/gpu/GrDefaultGeoProcFactory.cpp
@@ -39,7 +39,7 @@
public:
static sk_sp<GrGeometryProcessor> Make(const GrShaderCaps* shaderCaps,
uint32_t gpTypeFlags,
- const GrColor4h& color,
+ const SkPMColor4f& color,
sk_sp<GrColorSpaceXform> colorSpaceXform,
const SkMatrix& viewMatrix,
const SkMatrix& localMatrix,
@@ -54,7 +54,7 @@
const char* name() const override { return "DefaultGeometryProcessor"; }
- const GrColor4h& color() const { return fColor; }
+ const SkPMColor4f& color() const { return fColor; }
bool hasVertexColor() const { return fInColor.isInitialized(); }
const SkMatrix& viewMatrix() const { return fViewMatrix; }
const SkMatrix& localMatrix() const { return fLocalMatrix; }
@@ -68,7 +68,9 @@
class GLSLProcessor : public GrGLSLGeometryProcessor {
public:
GLSLProcessor()
- : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor4h_ILLEGAL), fCoverage(0xff) {}
+ : fViewMatrix(SkMatrix::InvalidMatrix())
+ , fColor(SK_PMColor4fILLEGAL)
+ , fCoverage(0xff) {}
void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override {
const DefaultGeoProc& gp = args.fGP.cast<DefaultGeoProc>();
@@ -230,9 +232,7 @@
}
if (!dgp.hasVertexColor() && dgp.color() != fColor) {
- float c[4];
- dgp.color().toFloats(c);
- pdman.set4fv(fColorUniform, 1, c);
+ pdman.set4fv(fColorUniform, 1, dgp.color().vec());
fColor = dgp.color();
}
@@ -281,7 +281,7 @@
private:
SkMatrix fViewMatrix;
- GrColor4h fColor;
+ SkPMColor4f fColor;
uint8_t fCoverage;
UniformHandle fViewMatrixUniform;
UniformHandle fColorUniform;
@@ -303,7 +303,7 @@
private:
DefaultGeoProc(const GrShaderCaps* shaderCaps,
uint32_t gpTypeFlags,
- const GrColor4h& color,
+ const SkPMColor4f& color,
sk_sp<GrColorSpaceXform> colorSpaceXform,
const SkMatrix& viewMatrix,
const SkMatrix& localMatrix,
@@ -370,7 +370,7 @@
Attribute fInCoverage;
Attribute fInBoneIndices;
Attribute fInBoneWeights;
- GrColor4h fColor;
+ SkPMColor4f fColor;
SkMatrix fViewMatrix;
SkMatrix fLocalMatrix;
uint8_t fCoverage;
@@ -417,7 +417,7 @@
return DefaultGeoProc::Make(d->caps()->shaderCaps(),
flags,
- GrColor4h::FromGrColor(GrRandomColor(d->fRandom)),
+ SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
GrTest::TestColorXform(d->fRandom),
GrTest::TestMatrix(d->fRandom),
GrTest::TestMatrix(d->fRandom),
@@ -445,10 +445,9 @@
uint8_t inCoverage = coverage.fCoverage;
bool localCoordsWillBeRead = localCoords.fType != LocalCoords::kUnused_Type;
- GrColor4h inColor = color.fColor;
return DefaultGeoProc::Make(shaderCaps,
flags,
- inColor,
+ color.fColor,
color.fColorSpaceXform,
viewMatrix,
localCoords.fMatrix ? *localCoords.fMatrix : SkMatrix::I(),
@@ -499,10 +498,9 @@
uint8_t inCoverage = coverage.fCoverage;
bool localCoordsWillBeRead = localCoords.fType != LocalCoords::kUnused_Type;
- GrColor4h inColor = color.fColor;
return DefaultGeoProc::Make(shaderCaps,
flags,
- inColor,
+ color.fColor,
color.fColorSpaceXform,
viewMatrix,
localCoords.fMatrix ? *localCoords.fMatrix : SkMatrix::I(),