SDL

im having a problem loading a background image using SDL
i have zero errors but when i run the program it crashes and everything is saved in my project file all images and whatever this is the code idk what im doing wrong but if someone could help me out it would be much appreciated

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "SDL.h"
#include <string>
#include <iostream>


//Attributes of the screen
const int SCREEN_WIDTH = 1000;
const int SCREEN_HEIGHT = 1000;
const int SCREEN_BPP = 32;

// The Images that will be used.
SDL_Surface *message = NULL;
 SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;
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;

// Load the image
	loadedimage = SDL_LoadBMP(filename.c_str());

//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 optimizedimage;
}

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);

}

int main(int argc,  char* args[])
{	
	//Initialize all SDL subsystems
	if(SDL_Init(SDL_INIT_EVERYTHING) == -1)
	{

	return 1;
	}

	// Setup the screen
	screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE);
	
	//If there was an error setting up the screen
	if(screen = NULL)
	{
		return 1;
	}

		//Set the window caption
	SDL_WM_SetCaption("Hello World", NULL);

	//Load the images 
	message = load_image("gears2.bmp");
	background = load_image("background.bmp");

	//Apply the background to the 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 the screen
	if(SDL_Flip(screen) == -1)
	{
		return 1;
	}
// Wait 2 seconds
	SDL_Delay(2000);

	// Free the surfaces
	SDL_FreeSurface(message); 
	SDL_FreeSurface(background);

	//Quit
	SDL_Quit();
// Return 
	return 0;

	}
i know SDL is obsolete now.. but we have to learn it for school and i even asked my teacher for help and he didnt even know why its crashing so im just hoping someone here knows possibly why this would be happening
ok i was able to figure it out on my own the compiler didnt catch this but on line 71 i had
1
2
3
4
5

if(screen = NULL)
	{
		return 1;
	}


one equal sign that was the cause of the whole problem
but thanks anywayz
Topic archived. No new replies allowed.