Now heres the weird part. If i compile and run the code using the bmp file from tutorial 6 it runs perfectly. When I switch out the bmp with the one from 7 it crashes on startup and spits out the Access Violation.
I've tried completely closing the IDE and restarting it. I've tried commenting out lines until i found the one that crashes it. I've tried pretty much everything i can think of. Its just wierd cause it works with the one but not the other. Here's my code.
//Loading Texture to GLuint texture[] is declared as GLUint texture[3];
texture[0] =LoadTexture("Crate.bmp", 1);
//Funtion to load img and convert to texture
int LoadTexture(const char *file, int TexFilter)
{
SDL_Surface *tex = IMG_Load(file);
GLuint texture;
switch(TexFilter)
{
case 1:
if(tex)
{
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 3, tex->w, tex->h, //IF commented out the program will run but will be just a black screen with no crashing
0, GL_BGR, GL_UNSIGNED_BYTE, tex->pixels);
SDL_FreeSurface(tex);
return texture;
}
break;
case 2:
if(tex)
{
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, 3, tex->w, tex->h,
0, GL_BGR, GL_UNSIGNED_BYTE, tex->pixels);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
SDL_FreeSurface(tex);
return texture;
}
break;
case 3:
if(tex)
{
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, tex->w, tex->h,
GL_BGR, GL_UNSIGNED_BYTE, tex->pixels);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
SDL_FreeSurface(tex);
return texture;
}
break;
default:
SDL_FreeSurface(tex);
return NULL;
}
SDL_FreeSurface(tex);
return NULL;
}
And heres my specs (shouldn't matter for something this simple for programming though I would think.
Using
VS Studios 2010 Ultimate
Win 7 Ultimate 32 bit
4 gigs ram
Nvidia 9800 Geforce graphics card
Core 2 duo Intel processor
SDL with OpenGL both updated to latest releases
Come to think of it I think it may be because I didn't free the texture?
Its late here where i'm at and I'm done fooling with it tonight but if that might be it please say so and i'll test it tomorrow after a reboot.