From 02bb6df0819d932a7a7ef8c6fb6914e3c5a0f4a2 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 28 Mar 2017 17:11:19 -0400 Subject: [PATCH] Retract GrPipeline from setRenderTargetState calls Split out of: https://skia-review.googlesource.com/c/10284/ (Remove GrSurface-derived classes from ops) Change-Id: Ib3dda649875b8da31def20476e4b5a87a4aa7cac Reviewed-on: https://skia-review.googlesource.com/10320 Reviewed-by: Brian Salomon Commit-Queue: Robert Phillips --- src/gpu/gl/GrGLProgram.cpp | 10 ++++------ src/gpu/gl/GrGLProgram.h | 2 +- src/gpu/vk/GrVkPipelineState.cpp | 10 ++++------ src/gpu/vk/GrVkPipelineState.h | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp index d9e73f0..2aa572d 100644 --- a/src/gpu/gl/GrGLProgram.cpp +++ b/src/gpu/gl/GrGLProgram.cpp @@ -66,7 +66,7 @@ void GrGLProgram::abandon() { /////////////////////////////////////////////////////////////////////////////// void GrGLProgram::setData(const GrPrimitiveProcessor& primProc, const GrPipeline& pipeline) { - this->setRenderTargetState(primProc, pipeline); + this->setRenderTargetState(primProc, pipeline.getRenderTarget()); // we set the textures, and uniforms for installed processors in a generic way, but subclasses // of GLProgram determine how to set coord transforms @@ -111,16 +111,14 @@ void GrGLProgram::setFragmentData(const GrPrimitiveProcessor& primProc, void GrGLProgram::setRenderTargetState(const GrPrimitiveProcessor& primProc, - const GrPipeline& pipeline) { + const GrRenderTarget* rt) { // Load the RT height uniform if it is needed to y-flip gl_FragCoord. if (fBuiltinUniformHandles.fRTHeightUni.isValid() && - fRenderTargetState.fRenderTargetSize.fHeight != pipeline.getRenderTarget()->height()) { - fProgramDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, - SkIntToScalar(pipeline.getRenderTarget()->height())); + fRenderTargetState.fRenderTargetSize.fHeight != rt->height()) { + fProgramDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, SkIntToScalar(rt->height())); } // set RT adjustment - const GrRenderTarget* rt = pipeline.getRenderTarget(); SkISize size; size.set(rt->width(), rt->height()); if (!primProc.isPathRendering()) { diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h index 9c42978..cd547b0 100644 --- a/src/gpu/gl/GrGLProgram.h +++ b/src/gpu/gl/GrGLProgram.h @@ -122,7 +122,7 @@ protected: void setFragmentData(const GrPrimitiveProcessor&, const GrPipeline&, int* nextSamplerIdx); // Helper for setData() that sets the view matrix and loads the render target height uniform - void setRenderTargetState(const GrPrimitiveProcessor&, const GrPipeline&); + void setRenderTargetState(const GrPrimitiveProcessor&, const GrRenderTarget*); // Helper for setData() that binds textures and texel buffers to the appropriate texture units void bindTextures(const GrProcessor&, bool allowSRGBInputs, int* nextSamplerIdx); diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp index 257763a..91fdc3f 100644 --- a/src/gpu/vk/GrVkPipelineState.cpp +++ b/src/gpu/vk/GrVkPipelineState.cpp @@ -193,7 +193,7 @@ void GrVkPipelineState::setData(GrVkGpu* gpu, // freeing the tempData between calls. this->freeTempResources(gpu); - this->setRenderTargetState(pipeline); + this->setRenderTargetState(pipeline.getRenderTarget()); SkSTArray<8, const GrProcessor::TextureSampler*> textureBindings; @@ -354,16 +354,14 @@ void GrVkPipelineState::writeSamplers( } } -void GrVkPipelineState::setRenderTargetState(const GrPipeline& pipeline) { +void GrVkPipelineState::setRenderTargetState(const GrRenderTarget* rt) { // Load the RT height uniform if it is needed to y-flip gl_FragCoord. if (fBuiltinUniformHandles.fRTHeightUni.isValid() && - fRenderTargetState.fRenderTargetSize.fHeight != pipeline.getRenderTarget()->height()) { - fDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, - SkIntToScalar(pipeline.getRenderTarget()->height())); + fRenderTargetState.fRenderTargetSize.fHeight != rt->height()) { + fDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, SkIntToScalar(rt->height())); } // set RT adjustment - const GrRenderTarget* rt = pipeline.getRenderTarget(); SkISize size; size.set(rt->width(), rt->height()); SkASSERT(fBuiltinUniformHandles.fRTAdjustmentUni.isValid()); diff --git a/src/gpu/vk/GrVkPipelineState.h b/src/gpu/vk/GrVkPipelineState.h index 49a6f9f..c4ca4ca 100644 --- a/src/gpu/vk/GrVkPipelineState.h +++ b/src/gpu/vk/GrVkPipelineState.h @@ -182,7 +182,7 @@ private: }; // Helper for setData() that sets the view matrix and loads the render target height uniform - void setRenderTargetState(const GrPipeline&); + void setRenderTargetState(const GrRenderTarget*); // GrVkResources GrVkPipeline* fPipeline; -- 2.7.4