68 lines
1.4 KiB
C++
68 lines
1.4 KiB
C++
#include "pipeline.h"
|
|
#include "forwardmodule.h"
|
|
#include "shadersource.h"
|
|
#include "sparrowrenderer.h"
|
|
#include "scene.h"
|
|
#include "camera.h"
|
|
|
|
|
|
Pipeline::~Pipeline()
|
|
{
|
|
for(Module *m : modules)
|
|
delete m;
|
|
}
|
|
|
|
SimplePipeline::SimplePipeline(ShaderSource *forwardSource)
|
|
{
|
|
glEnable(GL_DEPTH_TEST);
|
|
glEnable(GL_CULL_FACE);
|
|
glEnable(GL_TEXTURE_2D);
|
|
|
|
ForwardModule *forward = new ForwardModule();
|
|
forward->setShaderSource(forwardSource);
|
|
modules.push_back(forward);
|
|
}
|
|
|
|
void SimplePipeline::renderGL(Scene *scene)
|
|
{
|
|
glClearColor(m_clearColor.r, m_clearColor.g, m_clearColor.b, 1);
|
|
glClearDepth(1.0);
|
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
glViewport(0, 0, width, height);
|
|
modules[0]->renderGL(m_camera, scene);
|
|
}
|
|
|
|
void SimplePipeline::resizeGL(int w, int h)
|
|
{
|
|
width = w;
|
|
height = h;
|
|
if(m_camera != NULL)
|
|
m_camera->resize(w, h);
|
|
modules[0]->resize(w, h);
|
|
}
|
|
|
|
void SimplePipeline::refreshScene(Scene *scene)
|
|
{
|
|
ForwardModule *forward = (ForwardModule*)(modules[0]);
|
|
forward->compileShaders(scene);
|
|
}
|
|
|
|
StandardPipeline::StandardPipeline(const Settings &mySettings, const SourcePack &mySourcePack)
|
|
{
|
|
glEnable(GL_DEPTH_TEST);
|
|
glEnable(GL_CULL_FACE);
|
|
glEnable(GL_TEXTURE_2D);
|
|
|
|
// TODO
|
|
}
|
|
|
|
void StandardPipeline::renderGL(Scene *scene)
|
|
{
|
|
|
|
}
|
|
|
|
void StandardPipeline::resizeGL(int w, int h)
|
|
{
|
|
|
|
}
|