• Advertisement
Sign in to follow this  

More SDL problems

This topic is 1923 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

Hello again,

im having more troubles with SDL. I am following lazy foo's toutorials and i did the second project.

CODE:
[code]
#include "SDL.h"
#include <string>
using namespace std;
//attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32; //bits-per-pixel
//Surfaces
SDL_Surface *message = NULL;
SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;
void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination ) {
//Make a temporary rectangle to hold the offsets
SDL_Rect offset;
//Give the offsets to the rectangle
offset.x = x;
offset.y = y;
//Blit the surface
SDL_BlitSurface( source, NULL, destination, &offset );
}
SDL_Surface *load_image( std::string filename ) {

//Temporary storage for the image that's loaded
SDL_Surface* loadedImage = NULL;
//The optimized image that will be used
SDL_Surface* optimizedImage = NULL;
//If nothing went wrong in loading the image
if( loadedImage != NULL ) {
//Create an optimized image
optimizedImage = SDL_DisplayFormat( loadedImage );
//Free the old image
SDL_FreeSurface( loadedImage );
}
//Return the optimized image
return optimizedImage;
}
int main( int argc, char* args[] ) {
//Initilize
if(SDL_Init( SDL_INIT_EVERYTHING ) == -1) return 1;
//Set up screen
screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );
if( screen == NULL ) return 1;

//set video caption
SDL_WM_SetCaption( "Hello World", NULL );

//Load image
message = load_image( "hello.bmp" );
background = load_image( "background.bmp" );
//Apply image to screen
apply_surface( 0, 0, background, screen );
apply_surface( 320, 0, background, screen );
apply_surface( 0, 240, background, screen );
apply_surface( 320, 240, background, screen );

//Apply the message to the screen
apply_surface( 180, 140, message, screen );


//Update Screen
if( SDL_Flip( screen ) == -1 ) return 1;

//Pause
SDL_Delay( 10000 );
//Free the loaded image
SDL_FreeSurface( message );
SDL_FreeSurface(background);

//Quit SDL
SDL_Quit();
return 0;
}
[/code]
(Sorry i dont know how to put the code in those things)

and i get this message when im done:
[code]
'Space Game.exe': Loaded 'C:\Users\Mathew\Documents\Visual Studio 2010\Projects\Space Game\Debug\Space Game.exe', Symbols loaded.
'Space Game.exe': Loaded 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\KernelBase.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Users\Mathew\Documents\Visual Studio 2010\Projects\Space Game\Debug\SDL.dll', Binary was not built with debug information.
'Space Game.exe': Loaded 'C:\Windows\System32\advapi32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\msvcrt.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\sechost.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\rpcrt4.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\gdi32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\user32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\lpk.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\usp10.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\winmm.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\msvcp100.dll', Symbols loaded.
'Space Game.exe': Loaded 'C:\Windows\System32\msvcr100.dll', Symbols loaded.
'Space Game.exe': Loaded 'C:\Windows\System32\imm32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\msctf.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\ddraw.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\dciman32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\setupapi.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\cfgmgr32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\oleaut32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\ole32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\devobj.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\dwmapi.dll', Cannot find or open the PDB file
'Space Game.exe': Unloaded 'C:\Windows\System32\ddraw.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\dwmapi.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\setupapi.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\devobj.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\oleaut32.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\ole32.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\cfgmgr32.dll'
'Space Game.exe': Unloaded 'C:\Windows\System32\dciman32.dll'
'Space Game.exe': Loaded 'C:\Windows\System32\uxtheme.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\dwmapi.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\KBDUS.DLL', Cannot find or open the PDB file
'Space Game.exe': Unloaded 'C:\Windows\System32\KBDUS.DLL'
'Space Game.exe': Loaded 'C:\Windows\System32\KBDUS.DLL', Cannot find or open the PDB file
'Space Game.exe': Unloaded 'C:\Windows\System32\KBDUS.DLL'
'Space Game.exe': Loaded 'C:\Windows\System32\dsound.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\ole32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\powrprof.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\setupapi.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\cfgmgr32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\oleaut32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\devobj.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\dinput.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\hid.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\wintrust.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\crypt32.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\msasn1.dll', Cannot find or open the PDB file
'Space Game.exe': Loaded 'C:\Windows\System32\cryptbase.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0xfcc) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xb90) has exited with code 0 (0x0).
The program '[2768] Space Game.exe: Native' has exited with code 0 (0x0).
[/code]

so the program runs for the 10 sec, but its black. There is no picture. I have all the files and librarys/linker stuff done right. My image Background is 320 by 240. and the hello is 280 by 200. im not sure if i did the math right, or if there is some other problem but i need some help. Edited by JTippetts
Added code tags for you.

Share this post


Link to post
Share on other sites
Advertisement
Don't show us those messages you get when you are done, that's happens with every library, it's perfectly normal and just clutters up your post. Also, try using the code formatting, it make reading your code far easier. All problems aside, here's what I think is wrong:

Do you have the image files in your project under the exact same names? When you say:
loadimage("Blah")
The string inside the quotes is the filename. It looks in the folder you're projects in and searches for that files name. Try setting up an if loop that says if it can't load the image to print out an error message. I believe you don't have the files, or they're not .bmp. Edited by superman3275

Share this post


Link to post
Share on other sites
Some googling indicates that the PDB file warnings might go away if you run Visual Studio with administrator priveleges. I couldn't say if this is the answer or not, since I don't use VS, but it might be worth a shot.

After you call load_image(), check the return values to verify that they are not NULL. If they are, then loading the surfaces failed and as the previous poster indicated you'll want to ensure that your images are located where your executable can find them.

Share this post


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

  • Advertisement