• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
NeilRoy

LoadGLTextures() crash

4 posts in this topic

I just got into programming again after a bit of a break from it. My operating system has changed and I moved from using WindowsXP to Windows 7 64bit.

I loaded up some old code I had worked on and it now crashes in the following code:

If I comment out the code that attempts to free TextureImage it crashes, but runs fine if I comment that out (but obviously that then creates a leak). The textures load and display just fine, no problems so long as I comment that out. It never used to crash before.

OS: Windows 7 64bit
Compiler: Code::Blocks with MinGW 4.5.2

It used to work when I used Windows XP and compiled this with Dev-C++ (MinGW 3.4.2 I think it was). The code itself was never changed by me between then and now.

Any ideas?

[code]
int LoadGLTextures() // Load Bitmaps And Convert To Textures
{
int Status=FALSE; // Status Indicator
int i;

AUX_RGBImageRec *TextureImage[7]; // Create Storage Space For The Texture

memset(TextureImage,0,sizeof(void *)*7); // Set The Pointer To NULL

// Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
TextureImage[0]=LoadBMP("Data/grass.bmp");
TextureImage[1]=LoadBMP("Data/FlatRoadNS.bmp");
TextureImage[2]=LoadBMP("Data/FlatRoadEW.bmp");
TextureImage[3]=LoadBMP("Data/FlatRoadSE.bmp");
TextureImage[4]=LoadBMP("Data/FlatRoadSW.bmp");
TextureImage[5]=LoadBMP("Data/FlatRoadNW.bmp");
TextureImage[6]=LoadBMP("Data/FlatRoadNE.bmp");

Status=TRUE;

glGenTextures(7, &texture[0]); // Create The Texture

for(i=0; i<7; i++) {
glBindTexture(GL_TEXTURE_2D, texture[i]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[i]->sizeX, TextureImage[i]->sizeY,
0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[i]->data);
}

// It crashes when it tries to free memory here, if I comment this out, it runs just fine.
for (i=0; i<7; i++) {
if (TextureImage[i]) {
if (TextureImage[i]->data) free(TextureImage[i]->data);
free(TextureImage[i]);
}
}

return Status; // Return The Status
}
[/code]
0

Share this post


Link to post
Share on other sites
Have you inspected the values that you're freeing during debugging and made sure they are pointing to what you expect?

Is LoadBMP actually malloc'ing your textures? You make a claim here:

[code]
AUX_RGBImageRec *TextureImage[7]; // Create Storage Space For The Texture
[/code]

that you're "creating storage space", but really all you're doing is creating some pointers, not actually creating any storage.
0

Share this post


Link to post
Share on other sites
Than you better talk to NeHe because that is straight out of his code, not mine. :) That is his comments, and this code compiled up fine on Windows XP. It still does if I don't try freeing memory all the textures show up just fine proving something IS being loaded (or I wouldn't see the textures, now would I?).

Like i said, I didn't write that code or comment, that was from NeHe's code.
0

Share this post


Link to post
Share on other sites
Just to update, I compiled my program and this crash ONLY happens under Windows 7 64bit. When I run the same program under Windows XP 32bit it runs fine.
0

Share this post


Link to post
Share on other sites
You'll probably have to do some more digging in the debugger, maybe the code wasn't written as safe to be on 64 bit (assumed int = 4 bytes or something like that, I don't know). I'd start digging into the loadBMP function to see what's going on, also find out which call exactly is causing the crash (does it crash on free when i is 0, or some other number?)
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0