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 <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
This commit is contained in:
parent
1ec1faaff4
commit
02bb6df081
@ -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()) {
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user