When writing the X11 (linux) implementation there was a problem with X11 defining a "Display" type and we also have a Display class in the engine. So to fix that problem and minimize the risk for running into other name conflicts. We move everything from global namespace.
52 lines
No EOL
799 B
C++
52 lines
No EOL
799 B
C++
|
|
|
|
#include <Spectre/Graphics/ShaderProgram.h>
|
|
#include <Spectre/Graphics/Texture.h>
|
|
#include <Spectre/Graphics/RenderState.h>
|
|
|
|
namespace sp {
|
|
|
|
RenderState::RenderState() :
|
|
m_texture (0),
|
|
m_shader (0)
|
|
{
|
|
}
|
|
|
|
RenderState::~RenderState()
|
|
{
|
|
cleanup();
|
|
}
|
|
|
|
void RenderState::enableTexture(const Texture *texture)
|
|
{
|
|
// Enable the new texture.
|
|
if (texture) {
|
|
texture->enable();
|
|
}
|
|
// No texture selected.
|
|
// Must unbind cached texture if set.
|
|
else if (m_texture) {
|
|
m_texture->disable();
|
|
}
|
|
m_texture = texture;
|
|
}
|
|
|
|
void RenderState::enableShader(const ShaderProgram *program)
|
|
{
|
|
m_shader = program;
|
|
m_shader->enable();
|
|
}
|
|
|
|
void RenderState::cleanup()
|
|
{
|
|
// Disable current texture if set.
|
|
if (m_texture) {
|
|
m_texture->disable();
|
|
}
|
|
|
|
if (m_shader) {
|
|
m_shader->disable();
|
|
}
|
|
}
|
|
|
|
} // namespace sp
|