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:
mpVertexBuffer->validate();
}
void enableViewport (void);
void useViewport (void);
void enableVertexBuffer (void);
void enableFrameBuffer (void);
void bindFrameBuffer (void);
void disableVertexBuffer (void);
void updateMappings (void);
void render (void);
......
......@@ -117,7 +117,16 @@ public:
// ============================================================================================ WRAPPERS \/
// ===================================================================================================== \/
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
{
......
......@@ -27,9 +27,13 @@ class Viewport
// ============================================================================================ CONSTRUCTORS \/
// ========================================================================================================= \/
public:
Viewport(int _width,
Viewport(int _offsetX,
int _offsetY,
int _width,
int _height)
: mWidth(_width),
: mOffsetX(_offsetX),
mOffsetY(_offsetY),
mWidth(_width),
mHeight(_height)
{ }
......@@ -39,13 +43,26 @@ public:
// ============================================================================================ GETTERS \/
// ==================================================================================================== \/
public:
inline int getWidth (void) const { return mWidth; }
inline int getHeight (void) const { return mHeight; }
inline int getOffsetX (void) const { return mOffsetX; }
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 \/
// =================================================================================================== \/
protected:
int mOffsetX;
int mOffsetY;
int mWidth;
int mHeight;
};
......
......@@ -14,12 +14,12 @@ using namespace ACGL::Base;
using namespace ACGL::Utils;
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();
glDrawBuffers(mFragmentDataMappings.size(), mpBuffers);
......
......@@ -47,7 +47,7 @@ void VertexBuffer::validate(void) const
}
}
void VertexBuffer::render(void) const
void VertexBuffer::enable(void) const
{
if(mpElementArrayBuffer)
mpElementArrayBuffer->bind();
......@@ -64,10 +64,11 @@ void VertexBuffer::render(void) const
glEnableVertexAttribArray(i);
openGLRareError();
}
}
draw();
currentBufferID = -1;
void VertexBuffer::disable(void) const
{
int_t currentBufferID = -1;
for(AttributeVec::size_type i = 0; i < mAttributes.size(); ++i)
{
if(mAttributes[i].bufferID != currentBufferID)
......
Markdown is supported
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