diff options
author | Brian Salomon <bsalomon@google.com> | 2018-06-08 10:49:00 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-08 19:43:47 +0000 |
commit | 1471df99f0c7b5d9df43e7462d68a6635c3c59be (patch) | |
tree | 5da4a18207b47907ba3d538c38a9d8ae2dfff9ef /src/gpu/gl/GrGLProgram.h | |
parent | d0d409d3ebd083b4f5263949e404c1700c615d3b (diff) |
Remove include of GrGLProgramBuilder.h from GrGLProgram.h and GrVkPipelineState.h
Make GrGLProgram and GrCkPipelineState cons. public and remove builder friendship.
Neither GrGLProgram nor GrVkPipelineState need to know their Desc so remove it.
Move the VK desc subclass defn. to GrVkPipelineStateBuilder since it needs it while
GrVkPipelineState does not.
Some IWYU improvements.
Move declaration of the built-in uniform struct to GrGLSLUniformHandler.h from GrGLSLProgramBuilder.h.
Change-Id: Ib46817408a83a79a0f718ba2bc19411410d9065a
Reviewed-on: https://skia-review.googlesource.com/133060
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/gl/GrGLProgram.h')
-rw-r--r-- | src/gpu/gl/GrGLProgram.h | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h index 79d27b0d0c..a43e4f4294 100644 --- a/src/gpu/gl/GrGLProgram.h +++ b/src/gpu/gl/GrGLProgram.h @@ -9,20 +9,17 @@ #ifndef GrGLProgram_DEFINED #define GrGLProgram_DEFINED -#include "GrGLContext.h" -#include "GrProgramDesc.h" -#include "GrGLTexture.h" #include "GrGLProgramDataManager.h" #include "glsl/GrGLSLProgramDataManager.h" #include "glsl/GrGLSLUniformHandler.h" -#include "SkString.h" - -#include "builders/GrGLProgramBuilder.h" - -class GrGLInstalledProcessors; -class GrGLProgramBuilder; +class GrGLSLFragmentProcessor; +class GrGLSLPrimitiveProcessor; +class GrGLSLXferProcessor; class GrPipeline; +class GrPrimitiveProcessor; +class GrRenderTargetProxy; +class GrResourceIOProcessor; /** * This class manages a GPU program and records per-program information. @@ -35,7 +32,21 @@ class GrPipeline; */ class GrGLProgram : public SkRefCnt { public: - typedef GrGLSLProgramBuilder::BuiltinUniformHandles BuiltinUniformHandles; + using UniformHandle = GrGLSLProgramDataManager::UniformHandle; + using UniformInfoArray = GrGLProgramDataManager::UniformInfoArray; + using VaryingInfoArray = GrGLProgramDataManager::VaryingInfoArray; + + GrGLProgram(GrGLGpu*, + const GrGLSLBuiltinUniformHandles&, + GrGLuint programID, + const UniformInfoArray& uniforms, + const UniformInfoArray& textureSamplers, + const UniformInfoArray& texelBuffers, + const VaryingInfoArray&, // used for NVPR only currently + std::unique_ptr<GrGLSLPrimitiveProcessor> geometryProcessor, + std::unique_ptr<GrGLSLXferProcessor> xferProcessor, + std::unique_ptr<std::unique_ptr<GrGLSLFragmentProcessor>[]> fragmentProcessors, + int fragmentProcessorCnt); ~GrGLProgram(); @@ -44,8 +55,6 @@ public: */ void abandon(); - const GrProgramDesc& getDesc() { return fDesc; } - /** * Gets the GL program ID for this program. */ @@ -101,24 +110,7 @@ public: */ void generateMipmaps(const GrPrimitiveProcessor&, const GrPipeline&); -protected: - using UniformHandle = GrGLSLProgramDataManager::UniformHandle ; - using UniformInfoArray = GrGLProgramDataManager::UniformInfoArray; - using VaryingInfoArray = GrGLProgramDataManager::VaryingInfoArray; - - GrGLProgram(GrGLGpu*, - const GrProgramDesc&, - const BuiltinUniformHandles&, - GrGLuint programID, - const UniformInfoArray& uniforms, - const UniformInfoArray& textureSamplers, - const UniformInfoArray& texelBuffers, - const VaryingInfoArray&, // used for NVPR only currently - std::unique_ptr<GrGLSLPrimitiveProcessor> geometryProcessor, - std::unique_ptr<GrGLSLXferProcessor> xferProcessor, - std::unique_ptr<std::unique_ptr<GrGLSLFragmentProcessor>[]> fragmentProcessors, - int fragmentProcessorCnt); - +private: // A helper to loop over effects, set the transforms (via subclass) and bind textures void setFragmentData(const GrPrimitiveProcessor&, const GrPipeline&, int* nextTexSamplerIdx, int* nextTexelBufferIdx); @@ -134,7 +126,7 @@ protected: // these reflect the current values of uniforms (GL uniform values travel with program) RenderTargetState fRenderTargetState; - BuiltinUniformHandles fBuiltinUniformHandles; + GrGLSLBuiltinUniformHandles fBuiltinUniformHandles; GrGLuint fProgramID; // the installed effects @@ -143,15 +135,12 @@ protected: std::unique_ptr<std::unique_ptr<GrGLSLFragmentProcessor>[]> fFragmentProcessors; int fFragmentProcessorCnt; - GrProgramDesc fDesc; GrGLGpu* fGpu; GrGLProgramDataManager fProgramDataManager; int fNumTextureSamplers; int fNumTexelBuffers; - friend class GrGLProgramBuilder; - typedef SkRefCnt INHERITED; }; |