| Index: src/gpu/GrProcessor.cpp
|
| diff --git a/src/gpu/GrProcessor.cpp b/src/gpu/GrProcessor.cpp
|
| index e6be1da33a6e43159e636201a4770122186e6dd6..1db9d76fda34bd0006fa4d866ae1de83bfeb2eb5 100644
|
| --- a/src/gpu/GrProcessor.cpp
|
| +++ b/src/gpu/GrProcessor.cpp
|
| @@ -7,13 +7,11 @@
|
|
|
| #include "GrProcessor.h"
|
| #include "GrContext.h"
|
| -#include "GrCoordTransform.h"
|
| #include "GrGeometryProcessor.h"
|
| #include "GrInvariantOutput.h"
|
| #include "GrMemoryPool.h"
|
| #include "GrXferProcessor.h"
|
| #include "SkSpinlock.h"
|
| -#include "gl/GrGLFragmentProcessor.h"
|
|
|
| #if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
|
|
|
| @@ -130,126 +128,6 @@ bool GrProcessor::hasSameTextureAccesses(const GrProcessor& that) const {
|
|
|
| ///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
| -GrFragmentProcessor::~GrFragmentProcessor() {
|
| - // If we got here then our ref count must have reached zero, so we will have converted refs
|
| - // to pending executions for all children.
|
| - for (int i = 0; i < fChildProcessors.count(); ++i) {
|
| - fChildProcessors[i]->completedExecution();
|
| - }
|
| -}
|
| -
|
| -bool GrFragmentProcessor::isEqual(const GrFragmentProcessor& that,
|
| - bool ignoreCoordTransforms) const {
|
| - if (this->classID() != that.classID() ||
|
| - !this->hasSameTextureAccesses(that)) {
|
| - return false;
|
| - }
|
| - if (ignoreCoordTransforms) {
|
| - if (this->numTransforms() != that.numTransforms()) {
|
| - return false;
|
| - }
|
| - } else if (!this->hasSameTransforms(that)) {
|
| - return false;
|
| - }
|
| - if (!this->onIsEqual(that)) {
|
| - return false;
|
| - }
|
| - if (this->numChildProcessors() != that.numChildProcessors()) {
|
| - return false;
|
| - }
|
| - for (int i = 0; i < this->numChildProcessors(); ++i) {
|
| - if (!this->childProcessor(i).isEqual(that.childProcessor(i), ignoreCoordTransforms)) {
|
| - return false;
|
| - }
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -GrGLFragmentProcessor* GrFragmentProcessor::createGLInstance() const {
|
| - GrGLFragmentProcessor* glFragProc = this->onCreateGLInstance();
|
| - glFragProc->fChildProcessors.push_back_n(fChildProcessors.count());
|
| - for (int i = 0; i < fChildProcessors.count(); ++i) {
|
| - glFragProc->fChildProcessors[i] = fChildProcessors[i]->createGLInstance();
|
| - }
|
| - return glFragProc;
|
| -}
|
| -
|
| -void GrFragmentProcessor::addTextureAccess(const GrTextureAccess* textureAccess) {
|
| - // Can't add texture accesses after registering any children since their texture accesses have
|
| - // already been bubbled up into our fTextureAccesses array
|
| - SkASSERT(fChildProcessors.empty());
|
| -
|
| - INHERITED::addTextureAccess(textureAccess);
|
| - fNumTexturesExclChildren++;
|
| -}
|
| -
|
| -void GrFragmentProcessor::addCoordTransform(const GrCoordTransform* transform) {
|
| - // Can't add transforms after registering any children since their transforms have already been
|
| - // bubbled up into our fCoordTransforms array
|
| - SkASSERT(fChildProcessors.empty());
|
| -
|
| - fCoordTransforms.push_back(transform);
|
| - fUsesLocalCoords = fUsesLocalCoords || transform->sourceCoords() == kLocal_GrCoordSet;
|
| - SkDEBUGCODE(transform->setInProcessor();)
|
| - fNumTransformsExclChildren++;
|
| -}
|
| -
|
| -int GrFragmentProcessor::registerChildProcessor(const GrFragmentProcessor* child) {
|
| - // Append the child's transforms to our transforms array and the child's textures array to our
|
| - // textures array
|
| - if (!child->fCoordTransforms.empty()) {
|
| - fCoordTransforms.push_back_n(child->fCoordTransforms.count(),
|
| - child->fCoordTransforms.begin());
|
| - }
|
| - if (!child->fTextureAccesses.empty()) {
|
| - fTextureAccesses.push_back_n(child->fTextureAccesses.count(),
|
| - child->fTextureAccesses.begin());
|
| - }
|
| -
|
| - int index = fChildProcessors.count();
|
| - fChildProcessors.push_back(SkRef(child));
|
| -
|
| - if (child->willReadFragmentPosition()) {
|
| - this->setWillReadFragmentPosition();
|
| - }
|
| -
|
| - if (child->usesLocalCoords()) {
|
| - fUsesLocalCoords = true;
|
| - }
|
| -
|
| - return index;
|
| -}
|
| -
|
| -void GrFragmentProcessor::notifyRefCntIsZero() const {
|
| - // See comment above GrProgramElement for a detailed explanation of why we do this.
|
| - for (int i = 0; i < fChildProcessors.count(); ++i) {
|
| - fChildProcessors[i]->addPendingExecution();
|
| - fChildProcessors[i]->unref();
|
| - }
|
| -}
|
| -
|
| -bool GrFragmentProcessor::hasSameTransforms(const GrFragmentProcessor& that) const {
|
| - if (this->numTransforms() != that.numTransforms()) {
|
| - return false;
|
| - }
|
| - int count = this->numTransforms();
|
| - for (int i = 0; i < count; ++i) {
|
| - if (this->coordTransform(i) != that.coordTransform(i)) {
|
| - return false;
|
| - }
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -#include "effects/GrXfermodeFragmentProcessor.h"
|
| -
|
| -const GrFragmentProcessor* GrFragmentProcessor::MulOuputByInputAlpha(
|
| - const GrFragmentProcessor* fp) {
|
| - return GrXfermodeFragmentProcessor::CreateFromDstProcessor(fp, SkXfermode::kDstIn_Mode);
|
| -}
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////////////////////////
|
| -
|
| // Initial static variable from GrXPFactory
|
| int32_t GrXPFactory::gCurrXPFClassID =
|
| GrXPFactory::kIllegalXPFClassID;
|
|
|