From 66c96af62ae70f1d95e1b2511923a012a44ca556 Mon Sep 17 00:00:00 2001 From: Anthony Debucquoy Date: Thu, 1 Jun 2023 22:34:10 +0200 Subject: [PATCH] let there be textures --- opengl_train.c | 25 +++++++++++++++++-------- shader.fs | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/opengl_train.c b/opengl_train.c index 17b4152..7b5828d 100644 --- a/opengl_train.c +++ b/opengl_train.c @@ -65,6 +65,8 @@ GLuint LinkShader(GLuint vertexShader, GLuint fragmentShader){ glGetProgramInfoLog(shaderProgram, 512, NULL, buffer); printf("%s", buffer); + glUseProgram(shaderProgram); + return shaderProgram; } @@ -120,28 +122,36 @@ int main(void) GLuint tex[2]; glGenTextures(2, tex); - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, tex[0]); //Load image + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, tex[0]); image = stbi_load("./sample.png", &width, &height, NULL, 3); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); stbi_image_free(image); - glGenerateMipmap(GL_TEXTURE_2D); - glUniform1i(glGetUniformLocation(shaderProgram, "kitty"), 0); - glActiveTexture(GL_TEXTURE1); - glBindTexture(GL_TEXTURE_2D, tex[1]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + //Load image + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, tex[1]); image2 = stbi_load("./sample2.png", &width, &height, NULL, 3); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image2); stbi_image_free(image2); glGenerateMipmap(GL_TEXTURE_2D); - glUniform1i(glGetUniformLocation(shaderProgram, "puppy"), 1); +/* glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); */ +/* glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); */ +/* glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); */ +/* glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); */ + GLint posAttrib = glGetAttribLocation(shaderProgram, "positions"); glEnableVertexAttribArray(posAttrib); glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 7, 0); @@ -154,7 +164,6 @@ int main(void) glEnableVertexAttribArray(texCoordsAttrib); glVertexAttribPointer(texCoordsAttrib, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 7, (void*)(5*sizeof(float))); - glUseProgram(shaderProgram); int i = 0; bool should_close = false; diff --git a/shader.fs b/shader.fs index ca1a4cc..31e1196 100644 --- a/shader.fs +++ b/shader.fs @@ -13,7 +13,7 @@ out vec4 outColor; void main(){ vec4 kit = texture(kitty, TexCoords); vec4 pup = texture(puppy, TexCoords); - outColor = pup; + outColor = mix(kit, pup, 0.5); } /* vim: set ft=glsl: */