From 9963f71b09a919cb37631f6764a7dc1a5fa273f2 Mon Sep 17 00:00:00 2001 From: Schark Date: Thu, 21 Mar 2024 01:10:37 -0700 Subject: Sprite loader foundation --- height-map-display/src/sprites/loader.c | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 height-map-display/src/sprites/loader.c (limited to 'height-map-display/src/sprites/loader.c') diff --git a/height-map-display/src/sprites/loader.c b/height-map-display/src/sprites/loader.c new file mode 100644 index 0000000..393af10 --- /dev/null +++ b/height-map-display/src/sprites/loader.c @@ -0,0 +1,37 @@ +#include "loader.h" + +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" +#include + +GLuint load_texture(const char* path) { + + GLuint texture_id; + glGenTextures(1, &texture_id); + + glBindTexture(GL_TEXTURE_2D, texture_id); + + 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_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_REPEAT); + + + // Load image data + int width, height, nr_channels; + unsigned char* data = stbi_load(path, &width, &height, &nr_channels, 0); + if (data) { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); + glGenerateMipmap(GL_TEXTURE_2D); + } else { + printf("Failed to load texture: %s\n", path); + } + stbi_image_free(data); + + // Unbind texture + glBindTexture(GL_TEXTURE_2D, 0); + + return texture_id; + +} -- cgit v1.2.3-18-g5258