| Index: src/gpu/gl/GrGLProgramEffects.h
|
| diff --git a/src/gpu/gl/GrGLProgramEffects.h b/src/gpu/gl/GrGLProgramEffects.h
|
| deleted file mode 100644
|
| index 6140cde88f7128c96f20a69acc84276a9695c47d..0000000000000000000000000000000000000000
|
| --- a/src/gpu/gl/GrGLProgramEffects.h
|
| +++ /dev/null
|
| @@ -1,201 +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 GrGLProgramEffects_DEFINED
|
| -#define GrGLProgramEffects_DEFINED
|
| -
|
| -#include "GrBackendProcessorFactory.h"
|
| -#include "GrGLProgramDataManager.h"
|
| -#include "GrGpu.h"
|
| -#include "GrTexture.h"
|
| -#include "GrTextureAccess.h"
|
| -
|
| -class GrProcessor;
|
| -class GrProcessorStage;
|
| -class GrGLVertexProgramEffectsBuilder;
|
| -class GrGLProgramBuilder;
|
| -class GrGLFullProgramBuilder;
|
| -class GrGLFragmentOnlyProgramBuilder;
|
| -
|
| -/**
|
| - * This class encapsulates an array of GrGLProcessors and their supporting data (coord transforms
|
| - * and textures). It is built with GrGLProgramEffectsBuilder, then used to manage the necessary GL
|
| - * state and shader uniforms.
|
| - */
|
| -class GrGLProgramEffects : public SkRefCnt {
|
| -public:
|
| - typedef GrGLProgramDataManager::UniformHandle UniformHandle;
|
| - typedef GrGLProgramDataManager::VaryingHandle VaryingHandle;
|
| - virtual ~GrGLProgramEffects();
|
| -
|
| - /**
|
| - * Assigns a texture unit to each sampler. It starts on *texUnitIdx and writes the next
|
| - * available unit to *texUnitIdx when it returns.
|
| - */
|
| - void initSamplers(const GrGLProgramDataManager&, int* texUnitIdx);
|
| -
|
| - /**
|
| - * Calls setData() on each effect, and sets their transformation matrices and texture bindings.
|
| - */
|
| - virtual void setData(GrGpuGL*,
|
| - GrGpu::DrawType,
|
| - const GrGLProgramDataManager&,
|
| - const GrGeometryStage* effectStages) {
|
| - SkFAIL("For geometry processor only");
|
| - }
|
| -
|
| - virtual void setData(GrGpuGL*,
|
| - GrGpu::DrawType,
|
| - const GrGLProgramDataManager&,
|
| - const GrFragmentStage* effectStages[]) = 0;
|
| -
|
| -protected:
|
| - GrGLProgramEffects(int reserveCount)
|
| - : fGLProcessors(reserveCount)
|
| - , fSamplers(reserveCount) {
|
| - }
|
| -
|
| - /**
|
| - * Helper for setData(). Binds all the textures for an effect.
|
| - */
|
| - void bindTextures(GrGpuGL*, const GrProcessor&, int effectIdx);
|
| -
|
| - struct Sampler {
|
| - SkDEBUGCODE(Sampler() : fTextureUnit(-1) {})
|
| - UniformHandle fUniform;
|
| - int fTextureUnit;
|
| - };
|
| -
|
| - /*
|
| - * Helpers for shader builders to build up program effects objects alongside shader code
|
| - */
|
| - void addEffect(GrGLProcessor* effect) { fGLProcessors.push_back(effect); }
|
| - SkTArray<Sampler, true>& addSamplers() { return fSamplers.push_back(); }
|
| -
|
| - SkTArray<GrGLProcessor*> fGLProcessors;
|
| - SkTArray<SkSTArray<4, Sampler, true> > fSamplers;
|
| -
|
| -private:
|
| - friend class GrGLProgramBuilder;
|
| - friend class GrGLFullProgramBuilder;
|
| - friend class GrGLFragmentOnlyShaderBuilder;
|
| -
|
| - typedef SkRefCnt INHERITED;
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -
|
| -/**
|
| - * This is a GrGLProgramEffects implementation that does coord transforms with the vertex shader.
|
| - */
|
| -class GrGLVertexProgramEffects : public GrGLProgramEffects {
|
| -public:
|
| - virtual void setData(GrGpuGL*,
|
| - GrGpu::DrawType,
|
| - const GrGLProgramDataManager&,
|
| - const GrGeometryStage* effectStages) SK_OVERRIDE;
|
| -
|
| - virtual void setData(GrGpuGL*,
|
| - GrGpu::DrawType,
|
| - const GrGLProgramDataManager&,
|
| - const GrFragmentStage* effectStages[]) SK_OVERRIDE;
|
| -
|
| -private:
|
| - GrGLVertexProgramEffects(int reserveCount, bool explicitLocalCoords)
|
| - : INHERITED(reserveCount)
|
| - , fTransforms(reserveCount)
|
| - , fHasExplicitLocalCoords(explicitLocalCoords) {
|
| - }
|
| -
|
| - struct Transform {
|
| - Transform() { fCurrentValue = SkMatrix::InvalidMatrix(); }
|
| - UniformHandle fHandle;
|
| - SkMatrix fCurrentValue;
|
| - };
|
| -
|
| - struct PathTransform {
|
| - PathTransform() { fCurrentValue = SkMatrix::InvalidMatrix(); }
|
| - VaryingHandle fHandle;
|
| - SkMatrix fCurrentValue;
|
| - GrSLType fType;
|
| - };
|
| -
|
| - /*
|
| - * These functions are used by the builders to build up program effects along side the shader
|
| - * code itself
|
| - */
|
| - SkSTArray<2, Transform, true>& addTransforms() { return fTransforms.push_back(); }
|
| - SkTArray<PathTransform, true>& addPathTransforms() { return fPathTransforms.push_back(); }
|
| -
|
| - /**
|
| - * Helper for setData(). Sets all the transform matrices for an effect.
|
| - */
|
| - void setDataInternal(GrGpuGL* gpu,
|
| - GrGpu::DrawType drawType,
|
| - const GrGLProgramDataManager& programDataManager,
|
| - const GrProcessorStage& effectStage,
|
| - int index);
|
| - void setTransformData(GrGpuGL* gpu, const GrGLProgramDataManager&, const GrProcessorStage&,
|
| - int effectIdx);
|
| - void setPathTransformData(GrGpuGL* gpu, const GrGLProgramDataManager&,
|
| - const GrProcessorStage&, int effectIdx);
|
| -
|
| -
|
| - SkTArray<SkSTArray<2, Transform, true> > fTransforms;
|
| - SkTArray<SkTArray<PathTransform, true> > fPathTransforms;
|
| - bool fHasExplicitLocalCoords;
|
| -
|
| - friend class GrGLFullProgramBuilder;
|
| -
|
| - typedef GrGLProgramEffects INHERITED;
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -
|
| -/**
|
| - * This is a GrGLProgramEffects implementation that does coord transforms with
|
| - * the the NV_path_rendering PathTexGen functionality.
|
| - */
|
| -class GrGLPathTexGenProgramEffects : public GrGLProgramEffects {
|
| -public:
|
| - virtual void setData(GrGpuGL*,
|
| - GrGpu::DrawType,
|
| - const GrGLProgramDataManager&,
|
| - const GrFragmentStage* effectStages[]) SK_OVERRIDE;
|
| -
|
| -private:
|
| - GrGLPathTexGenProgramEffects(int reserveCount)
|
| - : INHERITED(reserveCount)
|
| - , fTransforms(reserveCount) {
|
| - }
|
| -
|
| - /**
|
| - * Helper for setData(). Sets the PathTexGen state for each transform in an effect.
|
| - */
|
| - void setPathTexGenState(GrGpuGL*, const GrProcessorStage&, int effectIdx);
|
| -
|
| - struct Transforms {
|
| - Transforms(int texCoordIndex)
|
| - : fTexCoordIndex(texCoordIndex) {}
|
| - int fTexCoordIndex;
|
| - };
|
| -
|
| - /*
|
| - * Helper for fragment only shader builder to build up the program effects alongside the shader
|
| - */
|
| - void addTransforms(int coordIndex) {
|
| - fTransforms.push_back(Transforms(coordIndex));
|
| - }
|
| -
|
| - SkTArray<Transforms> fTransforms;
|
| -
|
| - friend class GrGLFragmentOnlyProgramBuilder;
|
| -
|
| - typedef GrGLProgramEffects INHERITED;
|
| -};
|
| -
|
| -#endif
|
|
|