Jump to content
  • Advertisement
Sign in to follow this  
jonzy_x86

Release mode EXE wont render textures?

This topic is 3378 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

When I produce an EXE in Debug mode, the textures in my application render no problem, the FPS is about 128. When I produce the EXE as a release application, there are no textures. I can see 1 rendered pixel and the FPS is abot 2500. Does anybody know what is happening?

Share this post


Link to post
Share on other sites
Advertisement
Hello ... check for uninitialized variables in your project (maybe in one of your classes). I think this is the number one cause when dealing with release problems.
As far as I know , in debug mode variables are being initialized whereas in the release they aren't which leads to problems.
So ... check the relevant parts of your code for uninitialized variables.

I hope I've been of help to you...

-------------------------------------------------------------------------------------------
My Website - Portfolio, Tutorials
My blog

Share this post


Link to post
Share on other sites
Quote:
Original post by jonzy_x86
The paths are relative, and both work fine.


I thought they don't work fine?

What the first two posts were guessing is btw that yes, they are relative, but that your filestructure looks roughly like this:

Project/
+-Debug/
| +-Textures/
| | +-foo.bmp
| | +-bar.bmp
| |
| +-yourGame.exe
|
+-Release/
+-yourGame.exe "Textures/" not here


So that maybe you try to load "Textures/foo.bmp", but when in release-mode, it simply isn't there.


Quote:
I have a return value on the function that loads the textures and that returns true.

We are not clairvoyants and cannot guess what happens inside your function that returns true. Maybe post some code?

Btw, you can easily check if a file exists (yay, I made a cheat sheet!):

------------------------------------------------------
C++: if (std::ifstream (path)) { /*exists*/ }

-or maybe-

const bool exists = std::ifstream (path);
------------------------------------------------------
C#: if System.IO.File.Exists (path)) { /*exists*/ }
------------------------------------------------------
C: if (FILE *f = fopen (path, "r")) {
// exists
fclose (f); // don't forget!
}
------------------------------------------------------
PHP:if (file_exists ($path)) { /*exists*/ }
------------------------------------------------------

Share this post


Link to post
Share on other sites
Check your texture bindings, add some code in release version to dump texture IDs to a file and see if they remain consistent at various parts in your program. Also check how you load textures via glTexImage and friends as well. Struct alignment and padding in release code could also screw things up, particularly if you use hard coded offset pointers.

Share this post


Link to post
Share on other sites
Thanks all for your replies.

I'll have a look at the uninitialised variables today, perhaps that is the problem.

I will post some cut-down code here to demonstrate the problem.

The directory structure is like this...

Project
+-Debug
| +MyProject.exe (opens "Images\\Images.tga")
|
+- Release
| +MyProject.exe (opens "Images\\Images.tga")
|
+-Images
+Image.tga

*For some reason, the Image.tga part of the above will not format properly, this should be under the Images folder.*

I know that the Images folder is outside of the debug/release folders, but this work when running from the compiler because it uses the project path as the root.

And even without running in the compiler, I can copy the exes to the right directory and still the debug works but the release doesn't.

When I say that they both work fine, I mean that the function can open and read the file in both projects (I already have a file exists test there).

Thanks

Paul

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!