Меню Рубрики

Sdl2 compile windows msys

Библиотека SDL2. Урок 1. Установка в MSVC 2015

Добрый день и добро пожаловать. Это серия статей будет посвящена библиотеке SDL2. В них я дам базовые знания, необходимые для написания графических приложений с помощью этой библиотеки. SDL2 — низкоуровневая библиотека, написанная для получения «почти» прямого доступа ко всему оборудованию компьютера. Что это значит? Больше скорости работы, меньше памяти, но и требования по знаниям у нее чуть больше. Но ничего бояться не нужно. Самый большой ее плюс в том, что она кроссплатформена, хотите писать код с минимальным отличием, который будет работать как в Windows так и в Linux/Mac? Тогда вам сюда.

Сразу же скачаем библиотеку. Для пользователей windows все упаковано в архив и прикреплено к уроку. Распакуйте этот архив куда угодно. Я положил в корень диска С (С:\SDL2)

Открываем студию и создаем новый проект -> Пустой проект.
Создаем в нем любой .cpp файл. Это важный шаг.
Нажимаем правой кнопкой мыши (ПКМ) в обозревателе решений по проекту -> свойства.

Если все хорошо то видим такое окно:

Выбираем С/С++ -> Общие -> Дополнительные каталоги включаемых файлов
Находим папку SDL2 и заходим в папку Includes. Нажимаем ОК. В строке получится что-то вроде C:\SDL2\include;%(AdditionalIncludeDirectories)

Дальше идем в Компоновщик -> Общие -> Дополнительные файлы библиотек
Сюда уже вставляем папку SDL2\lib\x86 (можно и 64, но для наших приложений разницы, кроме как в объеме ОП, нет).

Компоновщик -> Ввод -> Дополнительные зависимости
Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это:

Заходим в Компоновщик -> Система -> Подсистема
Выбираем (если не стоит) консоль.

А теперь последний штрих. Соберите проект как он есть. Это создаст ехе-файл.
Перейдите в папку «мои документы» и найдите свой проект (у меня мои документы/Visual studio 2015/projects/project1/debug) и помеcтите туда файл SDL2.DLL. Ваша программа НЕ БУДЕТ работать без этого файла.

Теперь небольшой код для проверки всего, что мы настроили:

Если в результате его выполнения вы увидели консоль и окно (Которое через 2 секунды закрылось), то вы все сделали правильно! До встречи на следующем уроке.

Источник

Уроки по SDL 2: Урок 2 — Main не резиновый

Всем привет! Это мой второй урок по SDL 2. Информацию я всё ещё беру «>отсюда.

Итак, приветствую вас на уроке

Main не резиновый

На прошлом уроке я всё красиво расположил в функции Main(), но для больших программ это не есть хорошо. Именно по-этому появилась возможность писать функции. Сейчас мы ею и воспользуемся.

Начнем написание кода с подключения SDL и объявления нескольких глобальных переменных.

Здесь мы вне Main() функции объявили объекты окна(win), поверхности экрана(scr) и изображение этого смайлика(smile).

Давайте напишем функцию для инициализации SDL, создания окна и поверхности для рисования. Выглядит она таким образом:

Этот код вам должен быть знаком из предыдущего урока. Здесь мы инициализировали видео систему, создали окно с именем “Main не резиновый”, незаданными координатами и с ранее заданными размерами, а так же получили поверхность окна, сохранив её в scr. При ошибке эта функция вернет 1, иначе 0.

Теперь можно написать функцию для загрузки необходимых медиафайлов. Вот она:

Эта функция предельно проста. Мы загружаем .bmp изображение с помощью функции SDL_LoadBMP. Эта функция принимает путь к файлу с изображением(полный или относительный), а возвращает объект класса SDL_Surface. Также следует проверить, корректность выполнения: если были проблемы с загрузкой(файл не найден, битый файл), то функция SDL_LoadBMP вернет NULL.

Также напишем программу для завершения приложения.

Здесь появилась новая функция SDL_FreeSurface, которая просто очищает поверхность. После присваиваем переменной smile значение NULL. Все остальные функции были разобраны в предыдущем уроке.

На этом написание функций закончилось и можно приступить к Main().

Здесь мы сначала вызываем функцию init(), написанную ранее, потом функцию load(), которую мы тоже раньше написали. Далее отображаем smile в scr, с помощью функции SDL_BlitSurface. Эта функция принимает поверхность для рисования, прямоугольник, который следует вырезать из данной поверхности(это бывает нужным для анимации), если ничего вырезать не надо — передается NULL, поверхность, на которую рисуют и прямоугольник, координаты которого используются для рисования. Если координаты нулевые – мы передаем NULL.

Пришло время поговорить про координаты. В SDL используется другая система координат, не та к которой все привыкли. Здесь точка с координатами (0, 0) находится в левом верхнем углу. Это важно учитывать при отображении, чтобы избежать неприятных ситуаций.

Что ж, это было увлекательно, продолжаем. Далее мы обновляем окно уже знакомой функцией, заставляем программу застыть на 2 секунды, вызываем написанную нами функцию quit() и завершаем программу. На выходе у нас выходит программа которая 2 секунды отображает крутого смайла. Весь код выглядит так:

Надеюсь всё было понятно. Всем удачи!

Источник

Sdl2 compile windows msys

Давайте разберемся, что такое MinGW, а что такое MSYS и для чего они нужны.

MinGW – сокращение от “Minimalist GNU for Windows”, по своей сути MinGW является небольшой и лаконичной средой разработки нативных приложений для семейства OS Microsoft Windows.

MinGW предоставляет полный набор Open Source инструментов для программирования, который подходит для разработки нативного Windows приложения, которое не будет зависеть от C-Runtime библиотек каких-либо третьих сторон.

MinGW поддерживает идею минимализма, поэтому он никогда не будет полностью поддерживать среду исполнения POSIX, для развертывания POSIX приложений на Windows, для их полной поддержки существует Cygwin. В первую очередь MinGW предназначен для использования разработчиками, которые привыкли работать с компилятором gcc.

MinGW включает в себя:

  • Порт GNU Compiler Collection (GCC), который включает в себя компиляторы таких языков, как: C, C++, ADA и Fortran.
  • Порт GNU Binutils для Windows (as, ld, ar)
  • Консольный установщик (mingw-get) для MinGW и MSYS
  • Графический установщик (mingw-get-inst)

MSYS – сокращение от “Minimal SYStem”, это порт командной оболочки Bourne Shell (sh) для Windows. Он предлагается в качестве альтернативы “cmd.exe” от Microsoft’а. Оболочка хорошо подходит для портирования существующих приложений и библиотек, которые есть в *nix системах и включает в себя небольшой выбор портов инструментов Unix, облегчающих задачу портирования.

Комбинация MinGW и MSYS предоставляет разработчикам небольшую независимую среду, которая может быть легко загружена на съемные носители, не требуя добавления записей в файлы реестра.

Далее набираем в консольном окне такие команды:

И в итоге получаем исполнительный файл “GLUT-Req.exe”. Обратите внимание на:

Без установки этих переменных CMake не видит библиотеку GLUT.

Из названий переменных все должно быть понятно:

Каталог с исходниками можно оставить в чистом состоянии. Для этого следует перейти в сборочный каталог (в данном случае “build_project”) и разверенуть в него дерево исходного кода с последующей генерацией Makefile’ов. Пример:

В аргумент “build” необходимо прописать путь до каталога с исходным кодом, который нужно оставить чистым. После выполнения команды в каталоге “build_project/” создастся полная копия дерева проекта и в этом каталоге можно будет выполнять дальнейшую сборку.

1.4.2.4. Кросскомпиляция с помощью CMake.

В папке с проектом создаем файл с расширением “.cmake”, например, “Toolchain-eldk-ppc74xx.cmake”, с подобным содержимым:

И конфигурируем проект:

Если переменная “CMAKE_FIND_ROOT_PATH_MODE_PROGRAM” установлена в NEVER, то будут использоваться инструменты из недр вашей системы. Если она установлена в ONLY, то будут использованы инструменты из каталога “CMAKE_FIND_ROOT_PATH/bin”. В этом случае следует быть осторожным, так как из поля видимости CMake пропадают некоторые кросс-утилиты из состава binutils, например tuple-ar и tuple-ranlib. Решить эту поблему можно с помощью создания симлинков на эти инструменты. Симлинки следует расположить в директорию “CMAKE_FIND_ROOT_PATH/bin”. В противном случае, при сборке проекта может возникать следующая ошибка:

Подробнее можно прочесть тут: CMake Cross Compiling

1.4.3 Что почитать про CMake? (литература):

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Sdk для windows 10 что это
  • Sdk manager не запускается windows 10
  • Sdk for windows и driver kit
  • Sdhc driver for windows 7
  • Sdformatter для windows 10