diff options
author | Schark <jordan@schark.online> | 2024-03-21 01:10:37 -0700 |
---|---|---|
committer | Schark <jordan@schark.online> | 2024-03-21 01:10:37 -0700 |
commit | 9963f71b09a919cb37631f6764a7dc1a5fa273f2 (patch) | |
tree | c6a4c645916083ef9ae79167554446a6c5cadfaa /height-map-display/src/sprites | |
parent | af03f388cbcff795158ea8345b5c876470229e8b (diff) | |
download | gamedev-9963f71b09a919cb37631f6764a7dc1a5fa273f2.tar.gz gamedev-9963f71b09a919cb37631f6764a7dc1a5fa273f2.zip |
Diffstat (limited to 'height-map-display/src/sprites')
-rw-r--r-- | height-map-display/src/sprites/loader.c | 37 | ||||
-rw-r--r-- | height-map-display/src/sprites/loader.h | 14 |
2 files changed, 51 insertions, 0 deletions
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 <stdio.h> + +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; + +} diff --git a/height-map-display/src/sprites/loader.h b/height-map-display/src/sprites/loader.h new file mode 100644 index 0000000..5f3a35e --- /dev/null +++ b/height-map-display/src/sprites/loader.h @@ -0,0 +1,14 @@ +#ifndef LOADER_H +#define LOADER_H + +#include <GL/glew.h> + +typedef struct { + float x, y; + float width, height; + GLuint texture_id; +} Sprite; + +GLuint load_texture(const char* path); + +#endif |