From 5e1378d0e075a323144ba14e0a4cbcca35eccc69 Mon Sep 17 00:00:00 2001 From: egdaniel Date: Thu, 5 Feb 2015 11:11:13 -0800 Subject: Move DstCopy on gpu into the GrXferProcessor. BUG=skia: Committed: https://skia.googlesource.com/skia/+/74a11753604768bf461b80cabb66060e8564d82c Review URL: https://codereview.chromium.org/885923002 --- src/gpu/gl/GrGLXferProcessor.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/gpu/gl/GrGLXferProcessor.h') diff --git a/src/gpu/gl/GrGLXferProcessor.h b/src/gpu/gl/GrGLXferProcessor.h index 5c92559031..7f60f32fe5 100644 --- a/src/gpu/gl/GrGLXferProcessor.h +++ b/src/gpu/gl/GrGLXferProcessor.h @@ -11,6 +11,7 @@ #include "GrGLProcessor.h" class GrGLXPBuilder; +class GrXferProcessor; class GrGLXferProcessor { public: @@ -46,16 +47,25 @@ public: * This is similar to emitCode() in the base class, except it takes a full shader builder. * This allows the effect subclass to emit vertex code. */ - virtual void emitCode(const EmitArgs&) = 0; + void emitCode(const EmitArgs&); /** A GrGLXferProcessor instance can be reused with any GrGLXferProcessor that produces the same stage key; this function reads data from a GrGLXferProcessor and uploads any uniform variables required by the shaders created in emitCode(). The GrXferProcessor parameter is guaranteed to be of the same type that created this GrGLXferProcessor and - to have an identical processor key as the one that created this GrGLXferProcessor. */ - virtual void setData(const GrGLProgramDataManager&, - const GrXferProcessor&) = 0; + to have an identical processor key as the one that created this GrGLXferProcessor. This + function calls onSetData on the subclass of GrGLXferProcessor + */ + void setData(const GrGLProgramDataManager& pdm, const GrXferProcessor& xp); + private: + virtual void onEmitCode(const EmitArgs&) = 0; + + virtual void onSetData(const GrGLProgramDataManager&, const GrXferProcessor&) = 0; + + GrGLProgramDataManager::UniformHandle fDstCopyTopLeftUni; + GrGLProgramDataManager::UniformHandle fDstCopyScaleUni; + typedef GrGLProcessor INHERITED; }; #endif -- cgit v1.2.3