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

Unified Diff: include/gpu/GrFragmentProcessor.h

Issue 778453002: Remove backend factories (Closed) Base URL: https://skia.googlesource.com/skia.git@unichoice
Patch Set: more clang warnings Created 6 years 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
« no previous file with comments | « include/gpu/GrBackendProcessorFactory.h ('k') | include/gpu/GrProcessor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/gpu/GrFragmentProcessor.h
diff --git a/include/gpu/GrFragmentProcessor.h b/include/gpu/GrFragmentProcessor.h
index 044e807aae985547481920ef76d2018fc406df1e..3f308d7e75048df485d03aac3e9c148db80fd77f 100644
--- a/include/gpu/GrFragmentProcessor.h
+++ b/include/gpu/GrFragmentProcessor.h
@@ -11,6 +11,9 @@
#include "GrProcessor.h"
class GrCoordTransform;
+class GrGLCaps;
+class GrGLFragmentProcessor;
+class GrProcessorKeyBuilder;
/** Provides custom fragment shader code. Fragment processors receive an input color (vec4f) and
produce an output color. They may reference textures and uniforms. They may use
@@ -24,7 +27,18 @@ public:
, fWillReadDstColor(false)
, fWillUseInputColor(true) {}
- virtual const GrBackendFragmentProcessorFactory& getFactory() const = 0;
+ /** Implemented using GLFragmentProcessor::GenKey as described in this class's comment. */
+ virtual void getGLProcessorKey(const GrGLCaps& caps,
+ GrProcessorKeyBuilder* b) const = 0;
+
+ /** Returns a new instance of the appropriate *GL* implementation class
+ for the given GrFragmentProcessor; caller is responsible for deleting
+ the object. */
+ virtual GrGLFragmentProcessor* createGLInstance() const = 0;
+
+ /** Human-meaningful string to identify this GrFragmentProcessor; may be embedded
+ in generated shader code. */
+ virtual const char* name() const = 0;
int numTransforms() const { return fCoordTransforms.count(); }
@@ -38,15 +52,14 @@ public:
/** Will this prceossor read the source color value? */
bool willUseInputColor() const { return fWillUseInputColor; }
- /** Returns true if this and other prceossor conservatively draw identically. It can only return
- true when the two prceossor are of the same subclass (i.e. they return the same object from
+ /** Returns true if this and other processor conservatively draw identically. It can only return
+ true when the two processor are of the same subclass (i.e. they return the same object from
from getFactory()).
- A return value of true from isEqual() should not be used to test whether the prceossor would
- generate the same shader code. To test for identical code generation use the prceossor' keys
- computed by the GrBackendProcessorFactory. */
+ A return value of true from isEqual() should not be used to test whether the processor would
+ generate the same shader code. To test for identical code generation use getGLProcessorKey*/
bool isEqual(const GrFragmentProcessor& that) const {
- if (&this->getFactory() != &that.getFactory() ||
+ if (this->classID() != that.classID() ||
!this->hasSameTransforms(that) ||
!this->hasSameTextureAccesses(that)) {
return false;
« no previous file with comments | « include/gpu/GrBackendProcessorFactory.h ('k') | include/gpu/GrProcessor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698