Use a default texture for rubber band
This commit is contained in:
parent
d7139920ed
commit
51a9a215b6
@ -336,7 +336,6 @@ void Shaders::loadShaders()
|
||||
MeshShader::InstancedObjectRefPass2Shader::init();
|
||||
MeshShader::InstancedGrassPass2Shader::init();
|
||||
MeshShader::DetailledObjectPass2Shader::init();
|
||||
MeshShader::UntexturedObjectShader::init();
|
||||
MeshShader::ObjectRefPass2Shader::init();
|
||||
MeshShader::ObjectUnlitShader::init();
|
||||
MeshShader::SphereMapShader::init();
|
||||
@ -865,44 +864,6 @@ namespace MeshShader
|
||||
glUniformMatrix4fv(uniform_MM, 1, GL_FALSE, ModelMatrix.pointer());
|
||||
}
|
||||
|
||||
GLuint UntexturedObjectShader::Program;
|
||||
GLuint UntexturedObjectShader::uniform_MM;
|
||||
GLuint UntexturedObjectShader::uniform_ambient;
|
||||
|
||||
void UntexturedObjectShader::init()
|
||||
{
|
||||
Program = LoadProgram(
|
||||
GL_VERTEX_SHADER, file_manager->getAsset("shaders/object_pass.vert").c_str(),
|
||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/getLightFactor.frag").c_str(),
|
||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/untextured_object.frag").c_str());
|
||||
uniform_MM = glGetUniformLocation(Program, "ModelMatrix");
|
||||
GLuint uniform_DiffuseMap = glGetUniformLocation(Program, "DiffuseMap");
|
||||
GLuint uniform_SpecularMap = glGetUniformLocation(Program, "SpecularMap");
|
||||
GLuint uniform_SSAO = glGetUniformLocation(Program, "SSAO");
|
||||
uniform_ambient = glGetUniformLocation(Program, "ambient");
|
||||
if (!UserConfigParams::m_ubo_disabled)
|
||||
{
|
||||
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
||||
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
||||
}
|
||||
|
||||
glUseProgram(Program);
|
||||
glUniform1i(uniform_DiffuseMap, 0);
|
||||
glUniform1i(uniform_SpecularMap, 1);
|
||||
glUniform1i(uniform_SSAO, 2);
|
||||
glUseProgram(0);
|
||||
}
|
||||
|
||||
void UntexturedObjectShader::setUniforms(const core::matrix4 &ModelMatrix)
|
||||
{
|
||||
if (UserConfigParams::m_ubo_disabled)
|
||||
bypassUBO(Program);
|
||||
glUniformMatrix4fv(uniform_MM, 1, GL_FALSE, ModelMatrix.pointer());
|
||||
const video::SColorf s = irr_driver->getSceneManager()->getAmbientLight();
|
||||
glUniform3f(uniform_ambient, s.r, s.g, s.b);
|
||||
}
|
||||
|
||||
|
||||
GLuint ObjectRefPass2Shader::Program;
|
||||
GLuint ObjectRefPass2Shader::uniform_MM;
|
||||
GLuint ObjectRefPass2Shader::uniform_TM;
|
||||
|
@ -166,16 +166,6 @@ public:
|
||||
static void setUniforms(const core::matrix4 &ModelMatrix);
|
||||
};
|
||||
|
||||
class UntexturedObjectShader
|
||||
{
|
||||
public:
|
||||
static GLuint Program;
|
||||
static GLuint uniform_MM, uniform_ambient;
|
||||
|
||||
static void init();
|
||||
static void setUniforms(const core::matrix4 &ModelMatrix);
|
||||
};
|
||||
|
||||
class ObjectUnlitShader
|
||||
{
|
||||
public:
|
||||
|
@ -222,6 +222,8 @@ void STKMeshSceneNode::updatevbo()
|
||||
}
|
||||
}
|
||||
|
||||
static video::ITexture *spareWhiteTex = 0;
|
||||
|
||||
void STKMeshSceneNode::render()
|
||||
{
|
||||
irr::video::IVideoDriver* driver = irr_driver->getVideoDriver();
|
||||
@ -310,7 +312,9 @@ void STKMeshSceneNode::render()
|
||||
if (immediate_draw)
|
||||
{
|
||||
glDisable(GL_CULL_FACE);
|
||||
glUseProgram(MeshShader::UntexturedObjectShader::Program);
|
||||
if (!spareWhiteTex)
|
||||
spareWhiteTex = getUnicolorTexture(video::SColor(255, 255, 255, 255));
|
||||
glUseProgram(MeshShader::ObjectPass2Shader::Program);
|
||||
// Only untextured
|
||||
for (unsigned i = 0; i < GLmeshes.size(); i++)
|
||||
{
|
||||
@ -320,7 +324,8 @@ void STKMeshSceneNode::render()
|
||||
GLenum itype = mesh.IndexType;
|
||||
size_t count = mesh.IndexCount;
|
||||
|
||||
MeshShader::UntexturedObjectShader::setUniforms(AbsoluteTransformation);
|
||||
setTexture(MeshShader::ObjectPass2Shader::TU_Albedo, getTextureGLuint(spareWhiteTex), GL_NEAREST, GL_NEAREST, false);
|
||||
MeshShader::ObjectPass2Shader::setUniforms(AbsoluteTransformation, mesh.TextureMatrix);
|
||||
assert(mesh.vao);
|
||||
glBindVertexArray(mesh.vao);
|
||||
glDrawElements(ptype, count, itype, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user