101 lines
2.6 KiB
C++
101 lines
2.6 KiB
C++
#include "RenderCommand.h"
|
|
#include "Platforms/OGLRendererAPI.h"
|
|
|
|
namespace Nuake {
|
|
RendererAPI* RenderCommand::sRendererAPI;
|
|
|
|
void RenderCommand::SetRendererAPI(RendererPlatforms platform)
|
|
{
|
|
sRendererAPI = new OGLRendererAPI();
|
|
}
|
|
|
|
void RenderCommand::Clear()
|
|
{
|
|
sRendererAPI->Clear();
|
|
}
|
|
|
|
void RenderCommand::SetClearColor(const Color& color)
|
|
{
|
|
sRendererAPI->SetClearColor(color);
|
|
}
|
|
|
|
void RenderCommand::Enable(const RendererEnum enumType)
|
|
{
|
|
sRendererAPI->Enable(enumType);
|
|
}
|
|
|
|
void RenderCommand::Disable(const RendererEnum enumType)
|
|
{
|
|
sRendererAPI->Disable(enumType);
|
|
}
|
|
|
|
void RenderCommand::GenBuffer(unsigned int& bufferID)
|
|
{
|
|
sRendererAPI->GenBuffer(bufferID);
|
|
}
|
|
|
|
void RenderCommand::BindBuffer(const RendererEnum bufferType, const unsigned int& bufferID)
|
|
{
|
|
sRendererAPI->BindBuffer(bufferType, bufferID);
|
|
}
|
|
|
|
void RenderCommand::SetBufferData(const RendererEnum bufferType, const void* data, unsigned int size, const RendererEnum dataHint)
|
|
{
|
|
sRendererAPI->SetBufferData(bufferType, data, size, dataHint);
|
|
}
|
|
|
|
void RenderCommand::SetBufferSubData(const RendererEnum bufferType, const void* data, unsigned int size, unsigned int offset)
|
|
{
|
|
sRendererAPI->SetBufferSubData(bufferType, data, size, offset);
|
|
}
|
|
|
|
void RenderCommand::DeleteBuffer(unsigned int bufferID)
|
|
{
|
|
sRendererAPI->DeleteBuffer(bufferID);
|
|
}
|
|
|
|
void RenderCommand::GenVertexArray(unsigned int& rendererID)
|
|
{
|
|
sRendererAPI->GenVertexArray(rendererID);
|
|
}
|
|
|
|
void RenderCommand::DeleteVertexArray(unsigned int& rendererID)
|
|
{
|
|
sRendererAPI->DeleteVertexArray(rendererID);
|
|
}
|
|
|
|
void RenderCommand::EnableVertexAttribArray(unsigned int slot)
|
|
{
|
|
sRendererAPI->EnableVertexAttribArray(slot);
|
|
}
|
|
|
|
void RenderCommand::BindVertexArray(const unsigned int& rendererID)
|
|
{
|
|
sRendererAPI->BindVertexArray(rendererID);
|
|
}
|
|
|
|
void RenderCommand::VertexAttribPointer(const unsigned int index, const int size, const RendererEnum type, bool normalized, int stride, const void* pointer)
|
|
{
|
|
sRendererAPI->VertexAttribPointer(index, size, type, normalized, stride, pointer);
|
|
}
|
|
|
|
void RenderCommand::DrawMultiElements(const RendererEnum mode, const int count, const RendererEnum type, const void* const* indices, unsigned int drawCount)
|
|
{
|
|
sRendererAPI->DrawMultiElements(mode, count, type, indices, drawCount);
|
|
}
|
|
|
|
void RenderCommand::DrawElements(const RendererEnum mode, const int count, const RendererEnum type, const void* indices)
|
|
{
|
|
sRendererAPI->DrawElements(mode, count, type, indices);
|
|
}
|
|
|
|
void RenderCommand::DrawArrays(int first, int count)
|
|
{
|
|
sRendererAPI->DrawArrays(first, count);
|
|
}
|
|
|
|
void RenderCommand::DrawLines(int first, int count)
|
|
{
|
|
sRendererAPI->DrawLines(first, count);
|
|
}
|
|
} |