No matter what i try , i cant seem to make the quad show any textures, tried with solid color in the fragshader works fine, tried drawing the gradient tex coords worked fine .. as soon as i introduced a sampler and tried setting the texture it wasnt working... attached some code and debugging details below

int width, height, nrChannels;
bool hasAlpha;
unsigned int refID;
glGenTextures(1, &refID);
glBindTexture(GL_TEXTURE_2D, refID);
// set the texture wrapping/filtering options (on the currently bound texture object)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
unsigned char* data = stbi_load("C:\\Users\\shubhz\\source\\repos\\Lumigen\\assets\\textures\\dia.png", & width, & height, & nrChannels, 0);
bool has_alpha = (nrChannels > 3) ? true : false;
if (data) {
if (has_alpha)
glTexImage2D(refID, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
else
glTexImage2D(refID, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
Debug::log("Loaded Texture from :", " w: ", width, " h:", height, " alpha : ", has_alpha, " refID ", refID);
}
else {
//Failed to load texture
Debug::log("Failed to load texture : ");
}
//frees up the tempdata after upload
stbi_image_free(data);
app.initialize();
glUseProgram(Resources::GetShader("default-shader"));
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, refID);
glUniform1i(glGetUniformLocation(Resources::GetShader("default-shader"), "texture1"), 0);
Drawing part:
void SceneRenderer::render(Mesh& _mesh, Material& _mat, glm::mat4 _modelMatrix)
{
glUseProgram(_mat.shader);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, _mat.texture.refID);
glBindVertexArray(_mesh.VAO);
Shader::Mat4f(_mat.shader, "modelMatrix", _modelMatrix);
Shader::Vec4f(_mat.shader, "_MainColor", glm::vec4(0.2f, 0.3f, 0.5f, 1));
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
}
Opened the application with render doc too, there was this weird error in the pipeline viewer showing invalid dimension in Base_level 0, but i logged the width and height they were fine


The first argument to
glTexImage2D()is a texturetargetnot the texture handle (in your caserefID). So you need to replacerefIDwithGL_TEXTURE_2D:This has most likely also produced errors, so this suggests that you're also not checking
glGetError(). You should at the very least checkglGetError()(see OpenGL Wiki).Even better setup Debug Output.
Check out LearnOpenGL - Debugging for more in-depth information about how to debug OpenGL.