diff --git a/testSDL/Lesson1/Hello2 b/testSDL/Lesson1/Hello2 new file mode 100755 index 0000000..d6f7595 Binary files /dev/null and b/testSDL/Lesson1/Hello2 differ diff --git a/testSDL/Lesson1/main.cpp b/testSDL/Lesson1/main.cpp index fcfaa7c..9107e92 100644 --- a/testSDL/Lesson1/main.cpp +++ b/testSDL/Lesson1/main.cpp @@ -10,7 +10,7 @@ int main() cout << "SDL_Init error\n"; return 1; } - SDL_Window* window = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN); + SDL_Window* window = SDL_CreateWindow("Hello World!", 300, 300, 640, 480, SDL_WINDOW_SHOWN); if (window == nullptr) { cout << "Window create error\n"; diff --git a/testSDL/Lesson2/main.cpp b/testSDL/Lesson2/main.cpp new file mode 100644 index 0000000..b5d62a0 --- /dev/null +++ b/testSDL/Lesson2/main.cpp @@ -0,0 +1,53 @@ +#include +#include +using namespace std; + +const int screen_width ; +const int scren_height ; +SDL_Window* win = NULL; +SDL_Renderer* renderer = NULL; + +SDL_Texture* LoadImage(char* path) +{ + SDL_Surface* loadedImage = NULL; + SDL_Texture* texture = NULL; + loadedImage = SDL_LoadBMP(path); + if (loadedImage != 0) + { + texture = SDL_CreateTextureFromSurface(renderer, loadedImage); + SDL_FreeSurface(loadedImage); + } + else + cout << SDL_GetError << endl; + return texture; +} + +int main() +{ + if (SDL_Init(SDL_INIT_EVERYTHING) != 0 ) + { + cout << "SDL_Init error\n"; + return 1; + } + SDL_Window* window = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN); + if (window == nullptr) + { + cout << "Window create error\n"; + return 1; + } + SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED || SDL_RENDERER_PRESENTVSYNC); + if (renderer == nullptr) + { + cout << "Renderer error\n"; + return 1; + } + SDL_RenderClear(renderer); + SDL_RenderCopy(renderer, LoadImage("./hello.bmp"), NULL, NULL); + SDL_RenderPresent(renderer); + SDL_Delay(3000); + SDL_DestroyRenderer(renderer); + SDL_DestroyTexture(LoadImage("./hello.bmp")); + SDL_DestroyWindow(window); + SDL_Quit; + return 0; +} \ No newline at end of file diff --git a/testSDL/synopsis b/testSDL/synopsis new file mode 100644 index 0000000..1764979 --- /dev/null +++ b/testSDL/synopsis @@ -0,0 +1,21 @@ + +ФУНКЦИЯ | ПРИНИМАЕТ | ВОЗВРАЩАЕТ | ЗНАЧЕНИЕ +SDL_Init |набор флагов (▲1) | - |инициализация различных SDl подсистем +SDL_CreateWindow |название окна, координаты окна х, y, |SDL_Window* |создает окно (возвр.указатель на окно) + |размеры ширина, высота, флаги (▲2) | | +SDL_CreateRenderer |указатель на окно, индекс драйвера(-1), |SDL_Renderer* |создает рендерер для отрисовки изображения + |флаги(▲3) | | +SDL_LoadBMP |путь на файл |SDL_Surface* |загружает картинку +SDL_CreateTextureFromSurface |указатель на рендерер и на сарфейс |SDL_Texture* |создание текстуры (загрузка изображения в рендер) +-----------------------------+----------------------------------------+---------------+------------------------------------------------- +SDL_RenderClear |указатель на рендерер | - |очищает рендер +SDL_RenderCopy |указатель на рендерер, указатель на тек-| - |рендер текстуры + |стуру, | | +SDL_RenderPresent |указатель на рендерер | - |вывод обновленного экрана +-----------------------------+----------------------------------------+---------------+------------------------------------------------- +SDL_FreeSurface |указатель на сарфейс | - |освобождает память +SDL_DestroyTexture |указатель на текстуру | - |уничтожает текстуру +SDL_DestroyRenderer |указатель на рендерер | - |учитожает рендерер +SDL_DestroyWindow |указатель на окно | - |уничтожает окно +SDL_Quit() | - | - |выходил из систем SDL +SDL_Delay |время в мс | - |просто некоторая задержка