13 Августа 2013 года после нескольких лет разработки наконец опубликована финальная версия кроссплатформенной библиотеки для работы с мультимедиа SDL 2.0.0.
Наиболее важные особенности:
Полное аппаратное 3D ускорение.
Поддержка различных профилей OpenGL 3.0+ (основной, совместимый, отладка, надежный, и т.п.).
Поддержка OpenGL ES.
Поддержка нескольких окон.
Поддержка нескольких экранов.
Поддержка нескольких аудио устройств.
Поддержка Android и iOS.
Простое 2D API которое может использовать Direct3D, OpenGL, OpenGL ES, или софтварный рендер.
Force Feedback доступна для Windows, Mac OS X и Linux.
Поддержка XInput и XAudio2 для Windows.
Атомарные операции.
Управление питанием (предоставление заряда батареи, и тп).
Фигурные окна.
Окна не стандартной формы.
32-битное аудио (int и float).
Упрощенное API игровых контроллеров (API джойстиков так же представлено).
Поддержка касаний (множественных, жестов и тп).
Улучшенная поддержка полного экрана.
Улучшенная поддержка клавиатуры.
Окна сообщений.
Поддержка буфера обмена.
Базовая поддержка Drag'n'Drop.
Надлежащая поддержка ввода Юникода и IME.
Действительно мощный макрос assert.
Исправлено множество неприятных вещей из 1.2.
И многое другое.
SDL2 нацелен в т.ч. на платформы где нет никакого main.
Точкой входа делают SDL_main, чтобы была полная кроссплатформа.
Но в то же время сохранена возможность написать main, для слабонервных, кто привык.
=A=L=X=
Если твой продукт нацелен на платформы, где нет никакого main, то те проблемы, которые решает #define SDL_main main должны волновать тебя в самую последнюю очередь.
А вот создаёт такой дефайн проблем прилично, как пример мне пришлось создать вот такой хак:
bazhenovc > потому что SDL - опционален и может не использоватся.
это проблемы твоей архитектуры
глупо использовать SDL как опцию, проще его не использовать, совсем
bazhenovc > Не засорять же весь solution путями и дефайнами для него?
т.е. один дефайн это такая большая проблема