SDL C++
Введение | |
Скачивание библиотеки SDL2 | |
Создание проекта в Visual Studio | |
C/C++ General - include | |
Linker General - lib | |
Linker Input | |
SDL2.dll | |
Видео | |
Похожие статьи |
> Введение
Simple DirectMedia Layer (SDL) — это свободная кроссплатформенная мультимедийная
библиотека, реализующая единый программный интерфейс к графической подсистеме,
звуковым устройствам и средствам ввода для широкого спектра платформ.
Данная библиотека активно используется при написании кроссплатформенных
мультимедийных программ (в основном игр).
Официально поддерживаются операционные системы:
Linux
,
Microsoft Windows
,
Mac OS X, iOS и Android.
SDL API доступны для языков:
C
,
C++
,
C#
, VB.NET, D, Ada, Vala, Eiffel, Haskell,
Erlang, Euphoria,
Java
, Lisp, Lua, ML, Pascal, Perl,
PHP
, Pike, PureBasic,
Python
,
Go
и
Ruby
.
Основная часть SDL содержит базовый, весьма ограниченный спектр возможностей.
Дополнительную функциональность обеспечивают библиотеки расширений,
которые обычно входят в поставку SDL.
Начиная с версии 2.0, SDL распространяется под условиями лицензии zlib;
до этого использовалась лицензия GNU LGPL, что позволяло свободно использовать
библиотеку в коммерческих программах при условии, что она используется в них
как динамически подключаемая библиотека.
Загрузка библиотеки
Скачать SDL2 можно на сайте
libsdl.org
Нужно скачивать из подраздела Development Libraries
на апрель 2020 версия была 2.0.12
поэтому я выбирал
SDL2-devel-2.0.12-VC.zip (Visual C++ 32/64-bit)
После скачивания создайте на диске С папку Development, распакуйте
архив туда и переименуйте папку в SDL2
Создание проекта
После этого в Visual Studio создайте пустой C++ проект. Консольное приложение для win32, например. И в этом проекте создайте файл main.cpp

Затем кликните на название проекта правой кнопокой мыши и перейдите в Properties в самом нижу контекстного меню. Либо нажмите ALT + Enter

C/C++ General - include
C/C++ → General → Additional Include Directories






Linker General - lib
Linker → General → Additional Library Directories → New Line

Browse (…)

Перейдите в папку SDL2, затем в папку lib и выберите x86 или x64
Зайдите туда и нажмите Select Folder

Linker Input
Linker → Input → Additional Dependencies → <Edit…>

Введите в две строки:
SDL2.lib
SDL2main.lib
И нажмите OK

SDL2.dll
В папке SDL2 перейдите в lib → x86 (или x64 если в предыдущих шагах выбрали x64)
Скопируйте файл
SDL2.dll

В Visual Studio сделайте правый клик на назывании проекта и в контекстном меню выберите Open Folder in File Explorer

Вставьте скопированный SDL2.dll в открывшуюся папку

Видео
Отрисовка пустого окна в SDL
#include <SDL.h> #include <iostream> SDL_Window* g_pWindow = 0; SDL_Renderer* g_pRenderer = 0; bool g_bRunning = false; // this will create a loop bool init(const char* title, int xpos, int ypos, int height, int width, int flags) { // initialize SDL if (SDL_Init(SDL_INIT_EVERYTHING) >= 0) { // if succeeded create our window g_pWindow = SDL_CreateWindow(title, xpos, ypos, height, width, flags); // if the window creation succeeded create our renderer if (g_pWindow != 0) { g_pRenderer = SDL_CreateRenderer(g_pWindow, -1, 0); } } else { return false; // sdl could not initialize } return true; } void render() { // set to dark red SDL_SetRenderDrawColor(g_pRenderer, 128, 0, 20, 255); // clear the window to black SDL_RenderClear(g_pRenderer); // show the window SDL_RenderPresent(g_pRenderer); } int main(int argc, char* argv[]) { if (init("Chapter 1: Setting up SDL", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN)) { g_bRunning = true; } else { return 1; // something is wrong } while (g_bRunning) { render(); } // clean up SDL SDL_Quit(); return 0; }
Автор статьи: Андрей Олегович