Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Unified Diff: src/gpu/gl/GrGpuGL.cpp

Issue 367643004: Implement NVPR on GLES (Closed) Base URL: https://skia.googlesource.com/skia.git@02-path-program-fragment
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/gl/GrGpuGL.cpp
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index f1b6da8261351908a2222cf3df695bfc8bf20c32..6c0a8b45c3fed090a9eb917efa628e9f1c62c7e2 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -1854,7 +1854,6 @@ void GrGpuGL::onGpuDrawPath(const GrPath* path, SkPath::FillType fill) {
GrGLuint id = static_cast<const GrGLPath*>(path)->pathID();
SkASSERT(NULL != this->drawState()->getRenderTarget());
SkASSERT(NULL != this->drawState()->getRenderTarget()->getStencilBuffer());
- SkASSERT(!fCurrentProgram->hasVertexShader());
flushPathStencilSettings(fill);
const SkStrokeRec& stroke = path->getStroke();
@@ -1907,7 +1906,6 @@ void GrGpuGL::onGpuDrawPaths(int pathCount, const GrPath** paths,
SkASSERT(this->caps()->pathRenderingSupport());
SkASSERT(NULL != this->drawState()->getRenderTarget());
SkASSERT(NULL != this->drawState()->getRenderTarget()->getStencilBuffer());
- SkASSERT(!fCurrentProgram->hasVertexShader());
SkASSERT(stroke != SkStrokeRec::kHairline_Style);
SkAutoMalloc pathData(pathCount * sizeof(GrGLuint));
@@ -2399,7 +2397,11 @@ void GrGpuGL::setProjectionMatrix(const SkMatrix& matrix,
GrGLfloat glMatrix[4 * 4];
fHWProjectionMatrixState.getRTAdjustedGLMatrix<4>(glMatrix);
- GL_CALL(MatrixLoadf(GR_GL_PROJECTION, glMatrix));
+
+ GrGLenum matrixMode =
+ this->glStandard() == kGLES_GrGLStandard ? GR_GL_PATH_PROJECTION : GR_GL_PROJECTION;
+
+ GL_CALL(MatrixLoadf(matrixMode, glMatrix));
}
void GrGpuGL::enablePathTexGen(int unitIdx,
@@ -2479,6 +2481,16 @@ void GrGpuGL::flushPathTexGenSettings(int numUsedTexCoordSets) {
fHWActivePathTexGenSets = numUsedTexCoordSets;
}
+void GrGpuGL::setProgramPathFragmentInputGen(int fragmentInputLocation,
+ size_t components,
+ const GrGLfloat* coefficients) {
+ GL_CALL(ProgramPathFragmentInputGen(fHWProgramID,
Kimmo Kinnunen 2014/07/01 13:01:21 If we consider the role of GrGpuGL to contain func
+ fragmentInputLocation,
+ GR_GL_OBJECT_LINEAR,
+ components,
+ coefficients));
+}
+
void GrGpuGL::flushMiscFixedFunctionState() {
const GrDrawState& drawState = this->getDrawState();

Powered by Google App Engine
This is Rietveld 408576698