| Index: src/gpu/gl/GrGLFragmentProcessor.h
|
| diff --git a/src/gpu/gl/GrGLFragmentProcessor.h b/src/gpu/gl/GrGLFragmentProcessor.h
|
| deleted file mode 100644
|
| index 311612df7f65329db03ce3f0150cfcf1dff75b29..0000000000000000000000000000000000000000
|
| --- a/src/gpu/gl/GrGLFragmentProcessor.h
|
| +++ /dev/null
|
| @@ -1,116 +0,0 @@
|
| -/*
|
| - * Copyright 2013 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#ifndef GrGLFragmentProcessor_DEFINED
|
| -#define GrGLFragmentProcessor_DEFINED
|
| -
|
| -#include "glsl/GrGLSLProcessorTypes.h"
|
| -#include "glsl/GrGLSLProgramDataManager.h"
|
| -#include "glsl/GrGLSLTextureSampler.h"
|
| -
|
| -class GrProcessor;
|
| -class GrProcessorKeyBuilder;
|
| -class GrGLSLFPBuilder;
|
| -class GrGLSLCaps;
|
| -
|
| -class GrGLFragmentProcessor {
|
| -public:
|
| - GrGLFragmentProcessor() {}
|
| -
|
| - virtual ~GrGLFragmentProcessor() {
|
| - for (int i = 0; i < fChildProcessors.count(); ++i) {
|
| - delete fChildProcessors[i];
|
| - }
|
| - }
|
| -
|
| - typedef GrGLSLProgramDataManager::UniformHandle UniformHandle;
|
| - typedef GrGLSLTextureSampler::TextureSamplerArray TextureSamplerArray;
|
| -
|
| - /** Called when the program stage should insert its code into the shaders. The code in each
|
| - shader will be in its own block ({}) and so locally scoped names will not collide across
|
| - stages.
|
| -
|
| - @param builder Interface used to emit code in the shaders.
|
| - @param processor The processor that generated this program stage.
|
| - @param key The key that was computed by GenKey() from the generating GrProcessor.
|
| - @param outputColor A predefined vec4 in the FS in which the stage should place its output
|
| - color (or coverage).
|
| - @param inputColor A vec4 that holds the input color to the stage in the FS. This may be
|
| - nullptr in which case the implied input is solid white (all ones).
|
| - TODO: Better system for communicating optimization info (e.g. input
|
| - color is solid white, trans black, known to be opaque, etc.) that allows
|
| - the processor to communicate back similar known info about its output.
|
| - @param samplers Contains one entry for each GrTextureAccess of the GrProcessor. These
|
| - can be passed to the builder to emit texture reads in the generated
|
| - code.
|
| - */
|
| -
|
| - struct EmitArgs {
|
| - EmitArgs(GrGLSLFPBuilder* builder,
|
| - const GrFragmentProcessor& fp,
|
| - const char* outputColor,
|
| - const char* inputColor,
|
| - const GrGLSLTransformedCoordsArray& coords,
|
| - const TextureSamplerArray& samplers)
|
| - : fBuilder(builder)
|
| - , fFp(fp)
|
| - , fOutputColor(outputColor)
|
| - , fInputColor(inputColor)
|
| - , fCoords(coords)
|
| - , fSamplers(samplers) {}
|
| - GrGLSLFPBuilder* fBuilder;
|
| - const GrFragmentProcessor& fFp;
|
| - const char* fOutputColor;
|
| - const char* fInputColor;
|
| - const GrGLSLTransformedCoordsArray& fCoords;
|
| - const TextureSamplerArray& fSamplers;
|
| - };
|
| -
|
| - virtual void emitCode(EmitArgs&) = 0;
|
| -
|
| - void setData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& processor);
|
| -
|
| - static void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessorKeyBuilder*) {}
|
| -
|
| - int numChildProcessors() const { return fChildProcessors.count(); }
|
| -
|
| - GrGLFragmentProcessor* childProcessor(int index) const {
|
| - return fChildProcessors[index];
|
| - }
|
| -
|
| - /** Will emit the code of a child proc in its own scope. Pass in the parent's EmitArgs and
|
| - * emitChild will automatically extract the coords and samplers of that child and pass them
|
| - * on to the child's emitCode(). Also, any uniforms or functions emitted by the child will
|
| - * have their names mangled to prevent redefinitions. The output color name is also mangled
|
| - * therefore in an in/out param. It will be declared in mangled form by emitChild(). It is
|
| - * legal to pass nullptr as inputColor, since all fragment processors are required to work
|
| - * without an input color.
|
| - */
|
| - void emitChild(int childIndex, const char* inputColor, SkString* outputColor,
|
| - EmitArgs& parentArgs);
|
| -
|
| - /** Variation that uses the parent's output color variable to hold the child's output.*/
|
| - void emitChild(int childIndex, const char* inputColor, EmitArgs& parentArgs);
|
| -
|
| -protected:
|
| - /** A GrGLFragmentProcessor instance can be reused with any GrFragmentProcessor that produces
|
| - the same stage key; this function reads data from a GrFragmentProcessor and uploads any
|
| - uniform variables required by the shaders created in emitCode(). The GrFragmentProcessor
|
| - parameter is guaranteed to be of the same type that created this GrGLFragmentProcessor and
|
| - to have an identical processor key as the one that created this GrGLFragmentProcessor. */
|
| - // TODO update this to pass in GrFragmentProcessor
|
| - virtual void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) {}
|
| -
|
| -private:
|
| - void internalEmitChild(int, const char*, const char*, EmitArgs&);
|
| -
|
| - SkTArray<GrGLFragmentProcessor*, true> fChildProcessors;
|
| -
|
| - friend class GrFragmentProcessor;
|
| -};
|
| -
|
| -#endif
|
|
|