Splitting PixelRoutine into PixelProgram and PixelPipeline This cl splits PixelRoutine into 2 specialized classes: PixelProgram and PixelPipeline. In this cl: - Moved all specialized behavior of PixelRoutine into the PixelProgram and PixelPipeline classes. - Inverted hierarchical dependency between PixelRoutine and QuadRasterizer. QuadRasterizer is now the base class. - Added a check to PixelProcessor::routine() to either create a PixelPipeline object or a PixelProgram object. - Moved a few interpolation related utility functions from PixelRoutine down to QuadRasterizer. - Added Registers hierarchy. PixelProgram specific Registers and PixelPipeline specific Registers are now mutually exclusive. - Made the quad functions virtual - Added a few virtual functions (setBuiltins, ps, alphaTest, rasterOperation) for Program/Pipeline specific implementations Bug 20257503 Change-Id: I6abe536a5521d9842f757a8bbb52e3947e3c9250 Reviewed-on: https://swiftshader-review.googlesource.com/3634 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLES_CM/libGLES_CM.cbp b/src/OpenGL/libGLES_CM/libGLES_CM.cbp index 511f127..905a884 100644 --- a/src/OpenGL/libGLES_CM/libGLES_CM.cbp +++ b/src/OpenGL/libGLES_CM/libGLES_CM.cbp
@@ -233,6 +233,10 @@ <Unit filename="../../Renderer/VertexProcessor.hpp" /> <Unit filename="../../Shader/Constants.cpp" /> <Unit filename="../../Shader/Constants.hpp" /> + <Unit filename="../../Shader/PixelPipeline.cpp" /> + <Unit filename="../../Shader/PixelPipeline.hpp" /> + <Unit filename="../../Shader/PixelProgram.cpp" /> + <Unit filename="../../Shader/PixelProgram.hpp" /> <Unit filename="../../Shader/PixelRoutine.cpp" /> <Unit filename="../../Shader/PixelRoutine.hpp" /> <Unit filename="../../Shader/PixelShader.cpp" />