Revert of create and thread batch tracker object (patchset #9 id:160001 of https://codereview.chromium.org/772513002/)
Reason for revert:
Breaking linux layout test
Original issue's description:
> create and thread batch tracker object
>
> I remove the factory on the next CL
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c3a6eb23483e5d28073b509a5f637f41660de294
TBR=bsalomon@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/774133003
diff --git a/include/gpu/GrTBackendProcessorFactory.h b/include/gpu/GrTBackendProcessorFactory.h
index 98b5d6c..a86fe38 100644
--- a/include/gpu/GrTBackendProcessorFactory.h
+++ b/include/gpu/GrTBackendProcessorFactory.h
@@ -41,6 +41,14 @@
* described in this class's comment. */
virtual const char* name() const SK_OVERRIDE { return ProcessorClass::Name(); }
+
+ /** Implemented using GLProcessor::GenKey as described in this class's comment. */
+ virtual void getGLProcessorKey(const GrProcessor& processor,
+ const GrGLCaps& caps,
+ GrProcessorKeyBuilder* b) const SK_OVERRIDE {
+ GLProcessor::GenKey(processor, caps, b);
+ }
+
/** Returns a new instance of the appropriate *GL* implementation class
for the given GrProcessor; caller is responsible for deleting
the object. */
@@ -69,80 +77,24 @@
* typesafe and does not require any casting.
*/
template <class ProcessorClass>
-class GrTBackendGeometryProcessorFactory : public GrBackendGeometryProcessorFactory {
-public:
- typedef typename ProcessorClass::GLProcessor GLProcessor;
-
- /** Returns a human-readable name for the processor. Implemented using GLProcessor::Name as
- * described in this class's comment. */
- virtual const char* name() const SK_OVERRIDE { return ProcessorClass::Name(); }
-
- /** Implemented using GLProcessor::GenKey as described in this class's comment. */
- virtual void getGLProcessorKey(const GrGeometryProcessor& processor,
- const GrBatchTracker& bt,
- const GrGLCaps& caps,
- GrProcessorKeyBuilder* b) const SK_OVERRIDE {
- GLProcessor::GenKey(processor, bt, caps, b);
- }
-
-
- /** Returns a new instance of the appropriate *GL* implementation class
- for the given GrProcessor; caller is responsible for deleting
- the object. */
- virtual GrGLGeometryProcessor* createGLInstance(const GrGeometryProcessor& gp,
- const GrBatchTracker& bt) const SK_OVERRIDE {
- return SkNEW_ARGS(GLProcessor, (*this, gp, bt));
- }
-
- /** This class is a singleton. This function returns the single instance. */
- static const GrBackendGeometryProcessorFactory& getInstance() {
- static SkAlignedSTStorage<1, GrTBackendGeometryProcessorFactory> gInstanceMem;
- static const GrTBackendGeometryProcessorFactory* gInstance;
- if (!gInstance) {
- gInstance = SkNEW_PLACEMENT(gInstanceMem.get(),
- GrTBackendGeometryProcessorFactory);
- }
- return *gInstance;
- }
+class GrTBackendGeometryProcessorFactory
+ : public GrTBackendProcessorFactory<ProcessorClass,
+ GrBackendGeometryProcessorFactory,
+ GrGeometryProcessor,
+ GrGLGeometryProcessor> {
protected:
GrTBackendGeometryProcessorFactory() {}
};
template <class ProcessorClass>
-class GrTBackendFragmentProcessorFactory : public GrBackendFragmentProcessorFactory {
-public:
- typedef typename ProcessorClass::GLProcessor GLProcessor;
-
- /** Returns a human-readable name for the processor. Implemented using GLProcessor::Name as
- * described in this class's comment. */
- virtual const char* name() const SK_OVERRIDE { return ProcessorClass::Name(); }
-
- /** Implemented using GLProcessor::GenKey as described in this class's comment. */
- virtual void getGLProcessorKey(const GrFragmentProcessor& processor,
- const GrGLCaps& caps,
- GrProcessorKeyBuilder* b) const SK_OVERRIDE {
- GLProcessor::GenKey(processor, caps, b);
- }
-
- /** Returns a new instance of the appropriate *GL* implementation class
- for the given GrProcessor; caller is responsible for deleting
- the object. */
- virtual GrGLFragmentProcessor* createGLInstance(const GrFragmentProcessor& gp) const SK_OVERRIDE {
- return SkNEW_ARGS(GLProcessor, (*this, gp));
- }
-
- /** This class is a singleton. This function returns the single instance. */
- static const GrBackendFragmentProcessorFactory& getInstance() {
- static SkAlignedSTStorage<1, GrTBackendFragmentProcessorFactory> gInstanceMem;
- static const GrTBackendFragmentProcessorFactory* gInstance;
- if (!gInstance) {
- gInstance = SkNEW_PLACEMENT(gInstanceMem.get(),
- GrTBackendFragmentProcessorFactory);
- }
- return *gInstance;
- }
+class GrTBackendFragmentProcessorFactory
+ : public GrTBackendProcessorFactory<ProcessorClass,
+ GrBackendFragmentProcessorFactory,
+ GrFragmentProcessor,
+ GrGLFragmentProcessor> {
protected:
GrTBackendFragmentProcessorFactory() {}
};
+
#endif