Loading texture problem!

Started by
2 comments, last by POLSKASH 18 years, 10 months ago
I'm using CreateTextureFromFileEx() to load a texture. When I run the code in the VC++ 6 IDE, it generates an error when loading the texture. However, when I run the .exe file in the debug folder, the extra message box I added after the loading should have occured pops up, meaning the texture loaded successfully. Why is this?
There are some things so stupid that only an intellect could believe them.
Advertisement
Two words: relative paths
-Scoot
To elaborate: When you run the exe from the IDE, the working directory is the project's directory. That is, if you had this directory structure:
project
project/debug

When you run it from the IDE, the exe runs in "project", so when it attempts to load resources (textures), it doesn't find them (because they're in project/debug).

You can specify the working directory via project settings (Alt-F7). Make it "Debug" for the debug configuration, and "Release" for the release configuration.

void TitleScreen::loadTexture(char* filename, IDirect3DTexture9* texture, D3DCOLOR key){    // Last parameter is the color key. Use 0xFFFF00FF for magenta. 0xFF000000 for black.    // Use 0x00000000 for no 'color key' substitution    D3DXIMAGE_INFO SrcInfo; // Optional     D3DXCreateTextureFromFileEx( D3D_device, filename, 0, 0, 1, 0,           D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_DEFAULT,           key, &SrcInfo , NULL, &texture);	if(!texture)	{	     MessageBox(NULL, "Failed to load background texture!", "Error!",             MB_ICONEXCLAMATION | MB_OK);	}}

IDirect3DTexture9* bg;
bg = 0;
Here is the function call:
loadTexture("Debug\\bg.bmp",bg,0xFFFF00FF);

When I run this from the debugger, and check the values during this function call, texture = 0x001f60a0 but &texture = 0x0012fde0 " '|" except the '|' character is fat. And when I expand the variable, I see -96 ' '.Anyways, it just looks like garbage. After the function call, I check the value of bg and it's equal to NULL still. It says when I expand:
IDirect3DBaseTexture9 CXX0030:Error:expression cannot be evaluated

Why is this call not working?
There are some things so stupid that only an intellect could believe them.

This topic is closed to new replies.

Advertisement