Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SDL/SDL.h"
- #include <string>
- #include <iostream>
- //Attributes
- const int SCREEN_WIDTH = 640;
- const int SCREEN_HEIGHT = 480;
- const int SCREEN_BPP = 32;
- //Surfaces
- SDL_Surface* message = NULL;
- SDL_Surface* background = NULL;
- SDL_Surface* screen = NULL;
- SDL_Surface* load_image(std::string filename)
- // Оптимизированная загрузка изображения.
- {
- SDL_Surface* loadedImage = NULL;
- SDL_Surface* optimizedImage = NULL;
- loadedImage = SDL_LoadBMP(filename.c_str());
- if (loadedImage != NULL)
- {
- optimizedImage = SDL_DisplayFormat(loadedImage);
- SDL_FreeSurface(loadedImage);
- }
- else
- {
- std::cout << "[W]: Ошибка загрузки " << filename.c_str() <<std::endl;
- }
- return optimizedImage;
- }
- void apply_surface(int x, int y, SDL_Surface* source, SDL_Surface* destination)
- {
- SDL_Rect offset;
- offset.x = x;
- offset.y = y;
- SDL_BlitSurface(source, NULL, destination, &offset);
- }
- int main(int argc, char** args)
- {
- if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
- {
- std::cout << "[!]: Ошибка инициализации SDL" << std::endl;
- return 1;
- }
- screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE);
- if (screen == NULL)
- {
- std::cout << "[!]: Ошибка инициализации экрана" << std::endl;
- return 1;
- }
- SDL_WM_SetCaption("Hello World!", NULL);
- message = load_image("message.bmp");
- background = load_image("background.bmp");
- 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_surface(180, 140, message, screen);
- if (SDL_Flip(screen) == -1)
- {
- std::cout << "[!]: Ошибка функции Flip" << std::endl;
- return 1;
- }
- SDL_Delay(3000);
- SDL_FreeSurface(message);
- SDL_FreeSurface(background);
- SDL_Quit();
- return 0;
- }
Add Comment
Please, Sign In to add comment