diff --git a/include/ACGL/OpenGL/Controller/StateControl.hh b/include/ACGL/OpenGL/Controller/StateControl.hh index 4f1ba66af676d5ee2465bdda7f713b688b1c50e0..b7e892fd225add713c0abbe509e45525fd5027fa 100644 --- a/include/ACGL/OpenGL/Controller/StateControl.hh +++ b/include/ACGL/OpenGL/Controller/StateControl.hh @@ -21,14 +21,24 @@ class StateControl : public Resource::BasicCreateController // ============================================================================================ CONSTRUCTORS \/ // ========================================================================================================= \/ public: + StateControl( + const ConstSharedShaderProgramObject& _shaderProgramObject, + const ConstSharedVertexBufferObject& _vertexBufferObject, + const ConstSharedViewport& _viewport) + : mpVertexBufferObject(_vertexBufferObject), + mpShaderProgramObject(_shaderProgramObject), + mpFrameBufferObject(), + mpViewport(_viewport) + {} + StateControl( const ConstSharedVertexBufferObject& _vertexBufferObject, - const ConstSharedFrameBufferObject& _frameBufferObject, const ConstSharedShaderProgramObject& _shaderProgramObject, + const ConstSharedFrameBufferObject& _frameBufferObject, const ConstSharedViewport& _viewport) : mpVertexBufferObject(_vertexBufferObject), - mpFrameBufferObject(_frameBufferObject), mpShaderProgramObject(_shaderProgramObject), + mpFrameBufferObject(_frameBufferObject), mpViewport(_viewport) {} virtual ~StateControl(void) {} @@ -58,8 +68,8 @@ public: // =================================================================================================== \/ protected: ConstSharedVertexBufferObject mpVertexBufferObject; - ConstSharedFrameBufferObject mpFrameBufferObject; ConstSharedShaderProgramObject mpShaderProgramObject; + ConstSharedFrameBufferObject mpFrameBufferObject; ConstSharedViewport mpViewport; }; diff --git a/include/ACGL/OpenGL/Objects/State.hh b/include/ACGL/OpenGL/Objects/State.hh index be8c9e38d8d8cd14cba80aa74be27a24ec5a37c5..de67e94c9be533fd9db9ce1935f2b3460ae1ff66 100644 --- a/include/ACGL/OpenGL/Objects/State.hh +++ b/include/ACGL/OpenGL/Objects/State.hh @@ -55,12 +55,26 @@ private: // ========================================================================================================= \/ public: State(ConstSharedVertexBufferObject _vertexBufferObject, - ConstSharedFrameBufferObject _frameBufferObject, ConstSharedShaderProgramObject _shaderProgram, + ConstSharedFrameBufferObject _frameBufferObject, ConstSharedViewport _viewport) : mpVertexBufferObject(_vertexBufferObject), + mpShaderProgramObject(_shaderProgram), mpFrameBufferObject(_frameBufferObject), + mpViewport(_viewport), + mAttributeMappings(), + mFragmentDataMappings(), + mpBuffers(NULL) + { + updateMappings(); + } + + State(ConstSharedVertexBufferObject _vertexBufferObject, + ConstSharedShaderProgramObject _shaderProgram, + ConstSharedViewport _viewport) + : mpVertexBufferObject(_vertexBufferObject), mpShaderProgramObject(_shaderProgram), + mpFrameBufferObject(), mpViewport(_viewport), mAttributeMappings(), mFragmentDataMappings(), @@ -122,8 +136,8 @@ public: // =================================================================================================== \/ protected: ConstSharedVertexBufferObject mpVertexBufferObject; - ConstSharedFrameBufferObject mpFrameBufferObject; ConstSharedShaderProgramObject mpShaderProgramObject; + ConstSharedFrameBufferObject mpFrameBufferObject; ConstSharedViewport mpViewport; AttributeMappingVec mAttributeMappings;