Advertisement
Guest User

Untitled

a guest
Nov 13th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SDL.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5. /*
  6. Rozmiar ekranu stale
  7. */
  8. const int SCREEN_WIDTH = 720;
  9. const int SCREEN_HEIGHT = 480;
  10.  
  11. bool Init();
  12. void Close();
  13. bool loadImage();
  14. /*
  15. Głowne okno "window", głowna tekstura
  16. */
  17. SDL_Window* window = NULL;
  18. SDL_Surface* screen = NULL;
  19. SDL_Surface* img = NULL;
  20. int main(int argc, char* args[])
  21. {
  22.     if (!Init())
  23.     {
  24.         cout << "AGAIN WRONG ERROR" << SDL_GetError();
  25.         return -1;
  26.     }
  27.    
  28.     bool exit = false;
  29.     /*
  30.     Cokolwiek klikne będzie wykryte przez program
  31.     */
  32.     SDL_Event e;
  33.     /*
  34.     Tworzenie koloru
  35.     */
  36.     Uint32 bgColor = SDL_MapRGB(screen->format, 0xFF, 0xFF, 0xFF);
  37.     while (!exit)
  38.     {
  39.         while (SDL_PollEvent(&e) != 0)
  40.         {
  41.             /*
  42.             Sprawdzamy czy bylo klikniete x albo esc
  43.             */
  44.             if (e.type == SDL_QUIT || e.key.keysym.sym == SDLK_ESCAPE)
  45.                 exit = true;
  46.             if (!loadImage())
  47.             {
  48.                 cout << "Nie mozna otworzyc obrazu";
  49.                 system("pause");
  50.             }
  51.             else
  52.             {
  53.                 /*
  54.                 Wypełnianie kolorem
  55.                 */
  56.                 SDL_FillRect(screen, NULL, bgColor);
  57.                 /*
  58.                 Wypełnianie obrazem
  59.                 */
  60.                 SDL_BlitSurface(img, NULL, screen, NULL);
  61.             }
  62.         }
  63.  
  64.        
  65.  
  66.  
  67.  
  68.         /*
  69.         Aktualizowanie okna
  70.         */
  71.         SDL_UpdateWindowSurface(window);
  72.     }
  73.     Close();
  74.  
  75.     return 0;
  76. }
  77.  
  78. bool Init()
  79. {
  80.     /*
  81.     Inicjuje Video jeśli mniejsze od 0 to nie udało sie
  82.     */
  83.     if (SDL_Init(SDL_INIT_VIDEO) < 0)
  84.     {
  85.         cout << "SDL could not be init, ERROR: " << SDL_GetError() << endl;
  86.         return false;
  87.     }
  88.     /*
  89.     Tworzenie okna Parametry:
  90.     1. Tytul, 2. Pozycja gora dol, 3. Pozycja lewo prawo, 4. Szerokosc okna,
  91.     5. Wysokość okna,6. Typ okna Shown z ramka, borderless bez ramki
  92.     SDL_WINDOWPOS_UNDEFINED - wyśrodkowuje
  93.     */
  94.     window = SDL_CreateWindow("BITMAPY PROBA", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
  95.         SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
  96.     /*
  97.     Błąd zapewne sterownika lub urządzenia
  98.     */
  99.     if (window == NULL)
  100.     {
  101.         cout << "WINDOW COULDNT BE CREATE ERORR: " << SDL_GetError();
  102.     }
  103.     /*
  104.     Przypisuje przestrzen do okna, w tym wypadku tło
  105.     */
  106.     screen = SDL_GetWindowSurface(window);
  107.     return true;
  108. }
  109. bool loadImage()
  110. {
  111.     img = SDL_LoadBMP("img_fjords.bmp");
  112.     if (!img)
  113.     {
  114.         cout << "BLAD: " << SDL_GetError();
  115.         return false;
  116.     }
  117.     return true;
  118. }
  119. void Close()
  120. {
  121.     SDL_DestroyWindow(window);
  122.     window = NULL;
  123.     SDL_FreeSurface(screen);
  124.     SDL_FreeSurface(img);
  125.     SDL_Quit();
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement