From e83cdba55bd9ad13b71cfc5a0acdad81b54d89eb Mon Sep 17 00:00:00 2001 From: trotFunky Date: Wed, 25 Sep 2019 00:36:57 +0200 Subject: [PATCH] TGA and RGB image loading --- CMakeLists.txt | 2 +- resources/arbre.tga | Bin 0 -> 197669 bytes src/Texture.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++++ src/Texture.h | 38 +++++++++++++++++++++ src/displayers.cpp | 24 ++++++++++++- src/displayers.h | 4 ++- src/main.cpp | 24 +++++++++++++ 7 files changed, 169 insertions(+), 3 deletions(-) create mode 100644 resources/arbre.tga create mode 100644 src/Texture.cpp create mode 100644 src/Texture.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e2da82..ae5500e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ if(NOT ${OPENGL_GLU_FOUND}) endif() add_executable(tests_opengl - src/main.cpp src/displayers.h src/displayers.cpp) + src/main.cpp src/displayers.h src/displayers.cpp src/Texture.cpp src/Texture.h) target_link_libraries(tests_opengl ${OPENGL_LIBRARIES} diff --git a/resources/arbre.tga b/resources/arbre.tga new file mode 100644 index 0000000000000000000000000000000000000000..6d647fbfaee60f47dc384247d96613e96896d191 GIT binary patch literal 197669 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 L@?WXc%Ru=5A!> id_length; + + file_stream.seekg(1,std::ios_base::cur); + uint8_t tga_data_type = 0; + file_stream >> tga_data_type; + + // Only supported type : Raw RGB data + if (tga_data_type != 2) + { + std::cerr << "Error loading file " << filename << ": Unsupported format " << tga_data_type << std::endl; + file_stream.close(); + return false; + } + + // Place the cursor to the position of the width header data + file_stream.seekg(12,std::ios_base::beg); + file_stream.read((char*)&width,2); + file_stream.read((char*)&height,2); + file_stream >> color_bits; + + if (color_bits != 24 && color_bits != 32) + { + std::cerr << "Error loading file " << filename << ": Unsupported " << color_bits << " bits colors" << std::endl; + file_stream.close(); + return false; + } + + // Move cursor to the end to get file size + file_stream.seekg(0,std::ios_base::end); + // Size of the file minus header length minus ID length + int data_length = width*height*(color_bits/8); + + // Move cursor to the start of the data. + file_stream.seekg(18+id_length,std::ios_base::beg); + + data_array = new uint8_t[data_length]; + file_stream.read((char*)data_array,data_length); + + return true; +} + +bool Texture::load_rgb_tga(const std::string& rgb_filename) +{ + return load_tga(rgb_filename,image_data); +} + +bool Texture::load_rgba_tga(const std::string& rgb_filename,const std::string& mask_filename) +{ + return false; +} diff --git a/src/Texture.h b/src/Texture.h new file mode 100644 index 0000000..15724f5 --- /dev/null +++ b/src/Texture.h @@ -0,0 +1,38 @@ +// +// Created by trotfunky on 24/09/2019. +// + +#ifndef TESTS_OPENGL_TEXTURE_H +#define TESTS_OPENGL_TEXTURE_H + +#include +#include +#include +#include + +class Texture { +public: + uint16_t width; + uint16_t height; + + /// Number of bits describing the colors : 24 (RGB) or 32 (RGBA) + uint8_t color_bits; + + uint8_t* image_data; + uint32_t opengl_id[1]; + + Texture(); + ~Texture(); + + /// Load an RGBA image from an RGB TGA file + bool load_rgb_tga(const std::string& rgb_filename); + /// Load an RGBA image from an rgb and an alpha tga file + bool load_rgba_tga(const std::string& rgb_filename,const std::string& mask_filename); + +private: + /// Load TGA image file to an array + bool load_tga(const std::string& filename, uint8_t*& data_array); +}; + + +#endif //TESTS_OPENGL_TEXTURE_H diff --git a/src/displayers.cpp b/src/displayers.cpp index 63e70d3..a7b6fe6 100644 --- a/src/displayers.cpp +++ b/src/displayers.cpp @@ -60,17 +60,39 @@ void display_rotating_pyramid(float x, float y, float z, float c, float h, float glPopMatrix(); } -void display_tree(float x, float y, float z, float h, float w) +void display_tree(float x, float y, float z, float h, float w, const Texture& tree_texture) { + glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); + glBindTexture(GL_TEXTURE_2D,tree_texture.opengl_id[0]); + + glColor4f(1.0f, 1.0f, 1.0f,1.00); glBegin(GL_QUADS); + + // First rectangle + glTexCoord2f(1,0); glVertex3f(x+w/2,y,z); + + glTexCoord2f(0,0); glVertex3f(x-w/2,y,z); + + glTexCoord2f(0,1); glVertex3f(x-w/2,y+h,z); + + glTexCoord2f(1,1); glVertex3f(x+w/2,y+h,z); + // Second rectangle + glTexCoord2f(1,0); glVertex3f(x,y,z+w/2); + + glTexCoord2f(0,0); glVertex3f(x,y,z-w/2); + + glTexCoord2f(0,1); glVertex3f(x,y+h,z-w/2); + + glTexCoord2f(1,1); glVertex3f(x,y+h,z+w/2); + glEnd(); } diff --git a/src/displayers.h b/src/displayers.h index 1fb7d0f..119300c 100644 --- a/src/displayers.h +++ b/src/displayers.h @@ -7,6 +7,8 @@ #include +#include "Texture.h" + /// Displays a square based pyramid from a base position, height and side length /// \param x X coordinate of the center /// \param y Y coordinate of the center @@ -19,6 +21,6 @@ void display_pyramid(float x, float y, float z, float c, float h); void display_rotating_pyramid(float x, float y, float z, float c, float h, float alpha); /// Draw a tree with two quadrilaterals -void display_tree(float x, float y, float z, float h, float w); +void display_tree(float x, float y, float z, float h, float w, const Texture& tree_texture); #endif //TESTS_OPENGL_DISPLAYERS_H diff --git a/src/main.cpp b/src/main.cpp index 00ae327..1fd81e1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,12 @@ #include "GL/glut.h" +#include "GL/gl.h" #include "displayers.h" +#include "Texture.h" + volatile unsigned long long int timer_ticks = 0; +static Texture tree_texture; void display() { @@ -25,6 +29,8 @@ void display() display_rotating_pyramid(5,-2,0,1,5,angleY); display_rotating_pyramid(-2,-2,4,3,2,angleY); + display_tree(0,-5,0,3,5,tree_texture); + glutSwapBuffers(); } @@ -48,6 +54,24 @@ int main(int argc, char** argv) // glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); + // Setup OPenGL to use textures + glEnable(GL_TEXTURE_2D); + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GREATER, 0.5); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT/GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT/GL_CLAMP); + glTexEnvi(GL_TEXTURE_2D, GL_TEXTURE_ENV_MODE, GL_MODULATE); + + // Load and generate tree texture + tree_texture.load_rgb_tga("resources/arbre.tga"); + glGenTextures(1,tree_texture.opengl_id); + glBindTexture(GL_TEXTURE_2D,tree_texture.opengl_id[0]); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, tree_texture.width,tree_texture.height,0,GL_RGB,GL_UNSIGNED_BYTE,tree_texture.image_data); + gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGB8,tree_texture.width,tree_texture.height,GL_RGB,GL_UNSIGNED_BYTE,tree_texture.image_data); + glViewport(0,0,glutGet(GLUT_WINDOW_WIDTH),glutGet(GLUT_WINDOW_HEIGHT)); glutIdleFunc(display);