SDL C++

Содержание
Introduction
Скачивание библиотеки SDL2
Создание проекта в Visual Studio
C/C++ General - include
Linker General - lib
Linker Input
SDL2.dll
Видео
Отрисовка пустого окна в SDL
Related Articles

SDL C++

Introduction

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, что позволяло свободно использовать библиотеку в коммерческих программах при условии, что она используется в них как динамически подключаемая библиотека.

↓ Contents ↓
Introduction
Скачивание библиотеки SDL2
Создание проекта в Visual Studio
C/C++ General - include
Linker General - lib
Linker Input
SDL2.dll
Видео

Загрузка библиотеки

Скачать 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

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

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

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

C/C++ General - include

C/C++ → General → Additional Include Directories

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Linker General - lib

Linker → General → Additional Library Directories → New Line

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Browse (…)

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

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

Зайдите туда и нажмите Select Folder

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Linker Input

Linker → Input → Additional Dependencies → <Edit…>

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Введите в две строки:

SDL2.lib
SDL2main.lib

И нажмите OK

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

SDL2.dll

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

Скопируйте файл SDL2.dll

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

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

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

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

Установка библиотеки SDL в Visual Studio image from website www.aredel.com

Видео

Отрисовка пустого окна в 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; }

Article author: Andrei Olegovich

Похожие статьи
Development in C++
Function overloading
Splitting code into parts
Vector
Pointers
Classes
SFML
Tetris in C++ with the SFML2 library
SDL
Array of structures
How to find out the type of a variable in C++
Problem solving in C++
How to create an empty line in C++
Errors C++

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.com
Write to info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: