Hmm, im having a bit of a problem getting tutorial 7 since it uses gluax rather then SOIL and there's a few things that need the teture width/height and data like this line:
now of course SOIL doesn't seem to have a way of getting the width/height of the texture so as to allow the creation of this type of texture. Maybe im missing something i don't know.
Are you following the instructions given in the Lesson 6 Update? As long as you use SOIL_load_OGL_texture(), you shouldn't be calling at glTexImage2D() all - SOIL does it for you.
(you can instead call SOIL_load_image, to load the image data into a temporary buffer, and then manually glTexImage2D() it into OpenGL, but that's a lot of extra work, which you don't need to do here)
First remove #include <gl\glaux.h> and add #include "SOIL.h".
#include <stdio.h> can also be removed.
Remove the bmp loading function as in Lesson 06 then change LoadGLTextures() in the following manner
(different code posted 1-14-12 for a more flexible framework)
int LoadGLTextures()
{
unsigned int SOIL_flags;
GLint mag_param;
GLint min_param;
for (int i=0; i<3; i++) {
switch(i) {
case 0:
/* SOIL.h uses enum instead of #define for named flag values; easiest just to look them up */
SOIL_flags = 16; // SOIL_FLAG_INVERT_Y value
mag_param = GL_NEAREST;
min_param = GL_NEAREST;
break;
Also, I have been removing GLvoid from all function parameter lists leaving empty parenthesis as it is evidently not valid C++ to pass a void type as a parameter and MinGW complains.
Finally, the first parameter of CreateGLWindow should be changed from "char* title" to "const char* title".
With SOIL.h and libSOIL.a in the same directory as the lesson7.cpp file, MinGW compiles and links fine using:
g++ -mwindows lesson7.cpp -o lesson7.exe -L. -lSOIL -lopengl32 -lglu32