92ab22e779
Rendering pipleline now support 3 different types of Material: Basic: a material with a single color on every property (diffuse, specular, ect). SingleTextures: a material with a single texture in all or any property. Have a single color on the rest. SplatMapping: has a SplatMap and 0 to 5 different textures to every property. Properties with o texture uses a single color insted. All materials with a texture has a UVRepeat, telling how many time to till in U and in V. modelJobs now uses ShadeID, ModelID and TextureID for the Hash insted of only Texture MayaExported exports 3 differnt types of material, the same as the piplen now supports.
38 lines
1.4 KiB
C++
38 lines
1.4 KiB
C++
#include "Rendering/DrawScreenQuadPass.h"
|
|
|
|
DrawScreenQuadPass::DrawScreenQuadPass(IRenderer* renderer)
|
|
{
|
|
m_Renderer = renderer;
|
|
|
|
m_ScreenQuad = ResourceManager::Load<Model>("Models/Core/ScreenQuad.mesh");
|
|
|
|
InitializeShaderPrograms();
|
|
}
|
|
|
|
void DrawScreenQuadPass::InitializeShaderPrograms()
|
|
{
|
|
m_DrawQuadProgram = ResourceManager::Load<ShaderProgram>("#DrawScreenQuadProgram");
|
|
m_DrawQuadProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/DrawScreenQuad.vert.glsl")));
|
|
m_DrawQuadProgram->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/DrawScreenQuad.frag.glsl")));
|
|
m_DrawQuadProgram->Compile();
|
|
m_DrawQuadProgram->Link();
|
|
}
|
|
|
|
void DrawScreenQuadPass::Draw(GLuint texture)
|
|
{
|
|
//glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
|
GLERROR("DrawScreenQuadPass::Draw: Pre");
|
|
|
|
DrawScreenQuadPassState state = DrawScreenQuadPassState();
|
|
m_DrawQuadProgram->Bind();
|
|
glClear(GL_COLOR_BUFFER_BIT);
|
|
|
|
glActiveTexture(GL_TEXTURE0);
|
|
glBindTexture(GL_TEXTURE_2D, texture);
|
|
|
|
glBindVertexArray(m_ScreenQuad->VAO);
|
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ScreenQuad->ElementBuffer);
|
|
glDrawElementsBaseVertex(GL_TRIANGLES, m_ScreenQuad->MaterialGroups()[0].material->EndIndex - m_ScreenQuad->MaterialGroups()[0].material->StartIndex +1
|
|
, GL_UNSIGNED_INT, 0, m_ScreenQuad->MaterialGroups()[0].material->StartIndex);
|
|
}
|