Commit a273798c authored by Andreas Neu's avatar Andreas Neu
Browse files

-Added the viewport offset to Viewport.

-State::enableFrameBuffer() -> State::bindFrameBuffer()
-Added State::useViewport()
-Added Viewport::use()
-Added VertexBuffer::enable() VertexBuffer::disable()
-Modified VertexBuffer::render to be inline and just call enable() draw() disable()
parent 557b6d6d
...@@ -94,9 +94,9 @@ public: ...@@ -94,9 +94,9 @@ public:
mpVertexBuffer->validate(); mpVertexBuffer->validate();
} }
void enableViewport (void); void useViewport (void);
void enableVertexBuffer (void); void enableVertexBuffer (void);
void enableFrameBuffer (void); void bindFrameBuffer (void);
void disableVertexBuffer (void); void disableVertexBuffer (void);
void updateMappings (void); void updateMappings (void);
void render (void); void render (void);
......
...@@ -117,7 +117,16 @@ public: ...@@ -117,7 +117,16 @@ public:
// ============================================================================================ WRAPPERS \/ // ============================================================================================ WRAPPERS \/
// ===================================================================================================== \/ // ===================================================================================================== \/
public: public:
void render(void) const; void enable ( void ) const;
void disable( void ) const;
inline void render ( void ) const
{
enable();
draw();
disable();
};
void drawElements(void) const void drawElements(void) const
{ {
......
...@@ -27,9 +27,13 @@ class Viewport ...@@ -27,9 +27,13 @@ class Viewport
// ============================================================================================ CONSTRUCTORS \/ // ============================================================================================ CONSTRUCTORS \/
// ========================================================================================================= \/ // ========================================================================================================= \/
public: public:
Viewport(int _width, Viewport(int _offsetX,
int _offsetY,
int _width,
int _height) int _height)
: mWidth(_width), : mOffsetX(_offsetX),
mOffsetY(_offsetY),
mWidth(_width),
mHeight(_height) mHeight(_height)
{ } { }
...@@ -39,13 +43,26 @@ public: ...@@ -39,13 +43,26 @@ public:
// ============================================================================================ GETTERS \/ // ============================================================================================ GETTERS \/
// ==================================================================================================== \/ // ==================================================================================================== \/
public: public:
inline int getWidth (void) const { return mWidth; } inline int getOffsetX (void) const { return mOffsetX; }
inline int getHeight (void) const { return mHeight; } inline int getOffsetY (void) const { return mOffsetY; }
inline int getWidth (void) const { return mWidth; }
inline int getHeight (void) const { return mHeight; }
// ==================================================================================================== \/
// ============================================================================================ METHODS \/
// ==================================================================================================== \/
public:
inline void use (void) const
{
glViewport(mOffsetX, mOffsetY, mWidth, mHeight);
}
// =================================================================================================== \/ // =================================================================================================== \/
// ============================================================================================ FIELDS \/ // ============================================================================================ FIELDS \/
// =================================================================================================== \/ // =================================================================================================== \/
protected: protected:
int mOffsetX;
int mOffsetY;
int mWidth; int mWidth;
int mHeight; int mHeight;
}; };
......
...@@ -14,12 +14,12 @@ using namespace ACGL::Base; ...@@ -14,12 +14,12 @@ using namespace ACGL::Base;
using namespace ACGL::Utils; using namespace ACGL::Utils;
using namespace ACGL::OpenGL; using namespace ACGL::OpenGL;
void State::enableViewport() void State::useViewport()
{ {
glViewport(0, 0, mpViewport->getWidth(), mpViewport->getHeight()); mpViewport->use();
} }
void State::enableFrameBuffer() void State::bindFrameBuffer()
{ {
mpFrameBuffer->bind(); mpFrameBuffer->bind();
glDrawBuffers(mFragmentDataMappings.size(), mpBuffers); glDrawBuffers(mFragmentDataMappings.size(), mpBuffers);
......
...@@ -47,7 +47,7 @@ void VertexBuffer::validate(void) const ...@@ -47,7 +47,7 @@ void VertexBuffer::validate(void) const
} }
} }
void VertexBuffer::render(void) const void VertexBuffer::enable(void) const
{ {
if(mpElementArrayBuffer) if(mpElementArrayBuffer)
mpElementArrayBuffer->bind(); mpElementArrayBuffer->bind();
...@@ -64,10 +64,11 @@ void VertexBuffer::render(void) const ...@@ -64,10 +64,11 @@ void VertexBuffer::render(void) const
glEnableVertexAttribArray(i); glEnableVertexAttribArray(i);
openGLRareError(); openGLRareError();
} }
}
draw(); void VertexBuffer::disable(void) const
{
currentBufferID = -1; int_t currentBufferID = -1;
for(AttributeVec::size_type i = 0; i < mAttributes.size(); ++i) for(AttributeVec::size_type i = 0; i < mAttributes.size(); ++i)
{ {
if(mAttributes[i].bufferID != currentBufferID) if(mAttributes[i].bufferID != currentBufferID)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment