Библиотека SDL (http://www.libsdl.org) (Simple DirectMedia Layer) достигла (http://www.libsdl.org/news.php) состояния кандидата в релизы для версии 2.0. Как известно, разговоры о создании версии 2.0 велись уже давно, однако до недавних пор они не материализовывались в какие-либо конкретные воплощения в коде. Тем не менее, в конечном итоге версия 2.0 все-таки была реализована и достигла состояния кандидата в релизы.
Библиотека SDL предоставляет такие средства, как быстрый вывод 2D-графики, обработку ввода, проигрывание звука, вывод 3D через OpenGL и множество иных сопутствующих операций в кроссплатформенном виде, независимо от используемой системы. Это упрощает создание приложений и игр, которым необходимо быстро выводить двухмерную графику, проигрывать звук, использовать продвинутую обработку ввода пользователя и т.п. Библиотека выпускается под лицензией LGPLv2 и поддерживает как минимум Linux, Windows, Windows CE, BeOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX и QNX. Также существует ряд неподдерживаемых официально портов на иные системы (например, существуют порты для Android и Wayland).
Библиотека написана на C и "нативно" поддерживает C++, однако существует также и множество биндингов, предоставляющих средства для её использования для множества других языков программирования. Примечательно, что автор libsdl был нанят компанией Valve, ряд продуктов которой в данный момент построены с использованием данной библиотеки для упрощения обеспечения кроссплатформенности.
Наиболее интересные новшества (http://wiki.libsdl.org/moin.fcg/Roadmap) SDL 2.0:- API для текстурированного рендеринга с использованием средств 3D-акселерации;
- Поддержка API отдачи (force feedback) для джойстиков;
- Поддержка захвата звука;
- Улучшенная многопоточность;
- Ряд новых возможностей, касающихся вывода звука, например, поддержка вывода звука в формате 7.1 и возможность одновременного использования нескольких звуковых устройств;
- Поддержка аппаратного ускорения для вывода 2D графики;
- Поддержка многооконного режима;
- Ряд улучшений, касающихся полноэкранного режима работы. Добавлена концепций viewport для определения области вывода для полноэкранных окон;- API доступа к буферу обмена;- Поддержка одновременного использования нескольких устройств ввода (несколько мышей, клавиатур и т.п.);- API для поддержки Multi-touch;- Поддержка горизонтальной прокрутки мышью;- Поддержка целей рендеринга (render targets);- API для включения и отключения хранителя экрана;- Поддержка многомониторных конфигураций с выводом на несколько экранов.
Дополнительно отмечается, что хотя стабильная версия библиотеки еще не выпущена, ряд продуктов Valve уже пользуется данной веткой библиотеки, а ABI версии 2.0 считается стабилизированным. Кроме того, версией 2.0 уже пользуются некоторые indie и OpenSource проекты.Загрузить кандидат в релиз можно на данной странице (http://www.libsdl.org/tmp/download-2.0.php).
URL: http://www.phoronix.com/scan.php?page=news_item&px=MTM4MzU
Новость: http://www.opennet.me/opennews/art.shtml?num=37098
Half Life 3 будет на SDL.
если вообще будет
Сталкер-же допилили
Нюка Дюкема допилили
И халфу допилят
Сталкер в линуксе? Нативный? Не под вайном? Можно ссылочку. Или я чего-то не понял?
> Сталкер в линуксе? Нативный? Не под вайном? Можно ссылочку. Или я чего-то не понял?Да, ты чего-то не понял. Разговор был о vaporware-статусе халфы и о том, что когда то дюк нюкем и сталкер тоже были в состоянии вечного допиливания, но таки были допилены. О линуксе речь не шла ни в одном из комментариев выше (хотя, конечно, подразумевается, что HL3 на линуксе будет нативный).
>Сталкер-жеСталкер же
Сталкер жеж
Оформите в виде патча, пожалуйста.
>> Поддержка аппаратного ускорения для вывода 2D графики;Данная возможность востребована разработчиками игр.
> Half Life 3 будет на SDL.На DirectX 15. :) Как раз внуку на юбилей.
>> Half Life 3 будет на SDL.
> На DirectX 15. :) Как раз внуку на юбилей.DirectX 15 не будет. Боливар не выдержит такого насилия.
Скажите, а не альтернатива ли это директ икс?Причём интересно, директ икс изначально и задумывался как слой абстракции над опенгл же, а тут я вижу именно это
Это альтернатива всему тому, что OpenGL, OpenAL и математические библиотеки не покрывают. В непосредственном вывода графики и звука SDL слишком уж ограничен.
Нормален он вполне, для 2D графики и не слишком требовательных игр. Ну вон Battle for Wesnoth например этого выше крыши. Там 2D графика и OpenGL не упал. Ну разве что как костыль для обхода тормознутости иксов, которые таки тупят, если много анимации отрисовывается. И позиционируемое аудио ради которого имеет смысл таскать навернутые либы там тоже смысла не имеет - карта плоская, действия видятся игроком по центру. Поэтому для звука отсутстует понятие позиционирования.Для более навороченных случаев, где это имеет смысл - ну да, все как вы и сказали.
2D графика бывает разная. В мобильных играх движки работают вполне себе на GLES, а также используются звуковые эффекты типа изменения частоты звука или стереоэффекта - в SDL 1.2 это пришлось бы сделать в коде, OpenAL делает такое сам."Тянуть" OpenGL и OpenAL не надо - они должны уже быть на каждой платформе, пригодной для игр.
> 2D графика бывает разная. В мобильных играх движки работают вполне себе на GLES,Да я и на пингвине видел гибриды где sdl юзанули а поверх GLное api заюзали для ускорения прорисовки, т.к. на современных GPU так быстрее получается. Тем паче что иксы - тот еще тормоз, а opengl к счастью вообще на них не завязано.
> OpenAL делает такое сам.
Опять же - степень нужности этого - зависит от игры. Вон какому-нибудь BfW это не в кассу вообще.
> "Тянуть" OpenGL и OpenAL не надо - они должны уже быть на
> каждой платформе, пригодной для игр.А с этим никто и не спорит особо. Ну разве что MS :)
Через sdl создается окно, преключается режим, переводится в полноэкранный... а дальше командами opengl рисуется игра.
сам opengl это не умеет. и ввод не умеет
Ну, медиаплееры на нём, тем не менее, писать можно. ffplay, например, из пакета ffmpeg. Лёгкий, шустрый, кроссплатформенный. Я его в качестве вьюера аудио/видео использую.
> Причём интересно, директ икс изначально и задумывался как слой абстракции над опенгл жеВсё смешалось, DirectX, Direct3D...
> Скажите, а не альтернатива ли это директ икс?
Это DirectX - жалкое подобие SDL :)
DirectX - это коллекция библиотек для Windows, реализующих функционал SDL и OpenGL. Я впервые слышу о том, что он разрабатывался как слой абстракции над OpenGL. И, да. Это альтернатива. Если Вы делаете 2D-игрушку, то все, что Вам нужно для её работы - это библиотека SDL. И больше можете не вспоминать про DirectX.
> Если Вы делаете 2D-игрушку, то все, что Вам нужно для её работы - это библиотека SDL.Что-то она ужасает своими примерами...
void DrawPixel(SDL_Surface *screen, Uint8 R, Uint8 G, Uint8 B)
{
....
switch (screen->format->BytesPerPixel) {
case 1: { /* Assuming 8-bpp */
Uint8 *bufp;bufp = (Uint8 *)screen->pixels + y*screen->pitch + x;
*bufp = color;Так говнокодили ещё во времена pacman'а, в 21 веке хочется уже чего-то типа screen[Y][X] = Pixel(10, 11, 12, 255);
> типа screen[Y][X] = Pixel(10, 11, 12, 255);А теперь покажи допустим вывод более 8 битов на составляющую на экран, м?
> А теперь покажи допустим вывод более 8 битов на составляющую на экран,
> м?зачем ты его спрашиваешь о чём-то? это же говорящая жопа.
Ну я надеюсь что там шевельнется хоть какая-то нервная трубка и каким-то чудом появится понимание что чуть более низкоуровневое апи доступа к экрану, с более явным пониманием свойств этого самого экрана - для игр и тому подобных все-таки не баг а фича.
да тут сначала бы понимание того, что такое «примеры» и зачем они нужны. а также понимание того, что такое C. и ещё многое другое. а ты сразу на такие абстракции… неа, нереально.
Ага, хотел я этому Kodir'у в пичку ответить, да вы, ребята, все уже за меня сделали. =)
> Ага, хотел я этому Kodir'у в пичку ответить, да вы, ребята, все
> уже за меня сделали. =)Чип и Дэйл to the rescue.
этому Kodir'у в пачку // Fixed.
не альтернатива. opengl и directx для 3d, sdl для 2d. хотя очень интересны работы с джостиком и звуком. я бы даже сказал в нем есть все, кроме 3d.
> opengl и directx для 3d, sdl для 2d
> я бы даже сказал в нем есть все, кроме 3d> 3D hardware via OpenGL
Э?
DirectX не совсем для "3D". Это набор библиотек для работы со звуком, устройствами ввода, сетью, 2D, 3D и вроде управление "окошками". Может еще что-то забыл.А SDL самая что ни на есть альтернатива. SDL умеет работать со звуком, устройствами ввода, сетью, 2D, 3D (с помощью OpenGL) и управление "окошками". Может еще что-то забыл. В добавок кроссплатформенна и под свободной лицензией в отличии от.
А у нее есть совместимость с sdl 1.2, или опять бдет много геморроя со старой проприетарщиной, когда дистры начнут выкидывать sdl 1.2 из репозиториев?Очень понравилось то, что в 2.0 полноэкрнанные программы наконец-то не выключают второй монитор.
SDL2 может ставиться параллельно вместе с 1.2
> геморроя со старой проприетарщиной,С проприетарщиной геморрой будет всегда. Единственный способ его избежать - выбросить уже на...й это безобразие! ;).
> Очень понравилось то, что в 2.0 полноэкрнанные программы наконец-то не выключают второй монитор.
А еще например апи работы с клипбордом. Кого еще не задолбало что в играх не работает копипаста в, допустим, консоли команд или игровом чате? Я видел как некоторые граждане даже реализуют весьма убедительные хаки, например через пинок внешних утилит, например иксовых. Но это - совершенно сказочный костыль. Сходу вижу несколько проектов у которых одними граблями станет меньше.
Уря, наконец-то можно будет без плясок с бубном собрать T.o.M.E. . Лишь бы не конфликтовали с 1.2.
Думаю перейти на это чудо с LibGDX/Mono, для создания игра на Android/iOS
А где сказанно, что SDL 2 поддерживает Android?
В README.txt
Круто, надо будет посмотреть на его API.
> Думаю перейти на это чудо с LibGDX/MonoА что, на моно можно что-нибудь напрограммить, окромя какой-то совсем уж некритичной к скорости казуальщины?
>> Думаю перейти на это чудо с LibGDX/Mono
> А что, на моно можно что-нибудь напрограммить, окромя какой-то совсем уж некритичной
> к скорости казуальщины?С помощью моно можно портануть проект на LibGDX под iOS
http://code.google.com/p/libgdx/wiki/IOSWIP
iOS меня совершенно не интересует, извините. Мне было интересно - смог ли хоть кто-то на этом сделать что-то кроме убогой казуальщины.
> iOS меня совершенно не интересует, извините. Мне было интересно - смог ли
> хоть кто-то на этом сделать что-то кроме убогой казуальщины.SDL для 2D игра отличный инструмент, для 3D он и не нужен.
> iOS меня совершенно не интересует, извините. Мне было интересно - смог ли
> хоть кто-то на этом сделать что-то кроме убогой казуальщины.Да спи ты уже:
aptitude search '~Dlibsdl1.2debian ~sgames' -F '%%p - %%d'
http://51t.ru/sdlgames.txtaptitude search '~Dlibsdl1.2debian !~sgames' -F '%%p - %%d'
http://51t.ru/sdlapps.txt
Речь шла про моно...
> Речь шла про моно...Ты тоже спи. Не дают человеку знанием команд aptitude повыпендриваться...
На cocos2d-x взгляните.
> На cocos2d-x взгляните.Смотрел, слишком много костылей, нужно чтоб как можно меньше было платформозависимого кода.
Просматривал исходники некоторых популярных крупнейших игр,и они все на чистом X11+OpenGL+OSS+PulseAudio.На SDL,похоже,пишут маленькие проектики,создаваемые за пару дней для галочки,развлечения,обучения.Порыться в SDL,может она сама лишь
обёртка над X11+OpenGL+OSS+PulseAudio.Вот если они запилят полноценную
OpenGL через framebuffer,то тогда уже будет серьёзно.
Как минимум, почти все игры, изданные Loki Software были портированы с помощью sdl (собственно они ее и разрабатывали). Плюс, многие игры, которые icculus портировал уже после смерти loki также юзали sdl.
> Как минимум, почти все игры, изданные Loki Software были портированы с помощью
> sdl (собственно они ее и разрабатывали). Плюс, многие игры, которые icculus
> портировал уже после смерти loki также юзали sdl.Загляните в Doom 3.
Оригинальный Doom3 не использует, но вот prey, который сделан на том же движке, использует sdl. Как, кстати, и dhewm3 - один из форков doom3.
apt-cache depends 0ad | grep sdl
Зависит: libsdl1.2debianapt-cache depends redeclipse | grep sdl
Зависит: libsdl-image1.2
Зависит: libsdl-mixer1.2
Зависит: libsdl1.2debianapt-cache depends lugaru | grep sdl
Зависит: libsdl1.2debianapt-cache depends astromenace | grep sdl
Зависит: libsdl1.2debianapt-cache depends chocolate-doom | grep sdl
Зависит: libsdl-mixer1.2
Зависит: libsdl-net1.2
Зависит: libsdl1.2debianapt-cache depends wesnoth-1.11-core | grep sdl
Зависит: libsdl-image1.2
Зависит: libsdl-mixer1.2
Зависит: libsdl-net1.2
Зависит: libsdl-ttf2.0-0
Зависит: libsdl1.2debian
Тогда уж так. http://pastebin.com/GXVDLK4u
#5.53
и, вообщеaptitude search '~Dlibsdl1.2debian ~sgames' | wc -l
282aptitude search ~sgames | wc -l
1338echo 282*100 / 1338 | bc
21
>На SDL,похоже,пишут маленькие проектики,создаваемые за пару дней для…Да-да, типа steam (включая клиент) и тд.
А также НЕ только игры (безусловно мелкие, за пару дней и для галочки):
$ equery depends media-libs/libsdl
* These packages depend on media-libs/libsdl:
app-emulation/virtualbox-4.2.12 (media-libs/libsdl:0[X,video])
dev-games/openscenegraph-3.1.4 (sdl ? media-libs/libsdl)
dev-libs/ecore-1.7.7 (sdl ? media-libs/libsdl)
dev-libs/zziplib-0.13.60-r1 (sdl ? >=media-libs/libsdl-1.2.6)
dev-python/pygame-1.9.2_pre20120101-r2 (X ? >=media-libs/libsdl-1.2.5[X,video])
(!X ? >=media-libs/libsdl-1.2.5)
games-engines/scummvm-1.5.0 (>=media-libs/libsdl-1.2.2[audio,joystick,video])
games-fps/nexuiz-2.5.2 (sdl ? media-libs/libsdl[joystick,video])
games-fps/openarena-0.8.8 (media-libs/libsdl[joystick,opengl,video])
games-fps/tremulous-1.1.0-r4 (opengl ? media-libs/libsdl[joystick,opengl?])
(!dedicated ? media-libs/libsdl[joystick,opengl?])
games-fps/warsow-1.02-r1 (!dedicated ? media-libs/libsdl)
games-fps/worldofpadman-1.6 (!dedicated ? media-libs/libsdl)
games-fps/xonotic-0.6.0 (sdl ? media-libs/libsdl[X,audio,joystick,opengl,video,alsa?])
games-simulation/openttd-1.3.0 (!dedicated ? media-libs/libsdl[audio,X,video])
games-strategy/vcmi-0.91 (media-libs/libsdl[video])
games-strategy/warmux-11.04.1 (media-libs/libsdl[joystick,video])
media-gfx/darktable-1.2-r1 (slideshow ? media-libs/libsdl)
media-gfx/povray-3.7.0_rc3 (X ? media-libs/libsdl)
а также куча, куча ещё…
Библиотека SDL 2.0 достилга стадии кандидата в релизы. А чего достиг ты?
> Просматривал исходники некоторых популярных крупнейших игр,и они все на чистом
> X11+OpenGL+OSS+PulseAudio.А нельзя ли перечислить эти "все", сделанные по таким замечательным игродельным технологиям? Я на них посмотреть хочу. Чтоб было понятно кого на доску позора надо за кривой кодинг.
Вот так сходу: Battle for Wesnoth. Один из вариантов сборки Xonotic. 0AD. OpenTTD. VCMI из соседней новости. Далеко не самые маленькие проекты, мягко говоря. Достаточно качественные.
А так, FYI: X11 всерьез и напрямую пользуют только полные придyрки, остальные или абстрагируются через libsdl, либо это 3D гамезы которые opengl гоняют и о иксах они если и знают что-то, то совершенно минимально и где-то сбоку. Иначе кроссплатформенности хана. Это же касается и вывода аудио. Нормальные люди, которым не надо наворотов гонят его в играх через libsdl опять же. Потому что кроссплатформенно и не надо долбать свой мозг интимными особенностями той или иной платформы - это в libsdl уже сделано. Кому надо что-то навороченнее - юзают OpenAL например. По той же самой причине.
> На SDL,похоже,пишут маленькие проектики,
На нем как раз пишут весьма большие игры, создаваемые годами. С приличными ресурасами, кроссплатформенные. С качественными ресурсами. Как и положено серьезным проектам в общем.
> создаваемые за пару дней для галочки,развлечения,обучения.Ага, иди Valve расскажи какие у них там галочки для обучения. Поучи игроделов игры и софт делать, хе-хе :)
> OpenGL через framebuffer,то тогда уже будет серьёзно.
Бред сивой кобылы в лунную ночь.
> А нельзя ли перечислить эти "все", сделанные по таким замечательным игродельным технологиям?
> Я на них посмотреть хочу. Чтоб было понятно кого на доску
> позора надо за кривой кодинг.Попробуйте для начала на доску позора doom 3.Что прицепился?Прекрасный код во всех отношениях.И ещё загляните в саму SDL,в файл SDL_x11video.c,там тоже X11,короче
слой интерфейса к пользователю-это мизерная часть от всего объёма кода,и его можно расписать достаточно быстро.Преимущества в том,что можно будет добавить в реализацию
интерфеса свои приколы,а не тупо следовать библиотечными рамками.А про кроссплатформенность,есть две платформы unix-like/X11 и win.Все остальные для мелких
свиристелок типа android-приложения,iphone-приложения.
> две платформы unix-like/X11 и win.сейчас набигут фанаты вяленого и тебе капец. и, кстати, в кои-то веки будут правы.
давай я тебе сейчас маленький секрет открою: может так случиться, что тебе захочется портировать программу под вяленый. или под фрэймбуфер. или под иос, где денег дадут. или под ведроид. или ещё куда-нибудь. и у тебя будет выдирание волосьев с фэйспалмами, а потом написание универсальной библиотеки-враппера. и когда ты её допишешь, то увидишь, что за это время люди, которые использовали SDL (являющийся именно такой библиотекой, какую пытался написать ты), уже успели влезть во все дырки. потому что не тратили время сначала на тупняк, а потом на переписывание существующего.
после чего у тебя останется два выхода: или покаяться и принять SDL, или пойти и начать писать свою ОСь, потому что «ядро — это мизерная часть всего объёма кода, зачем нам универсальное ядро? у нас же всего две архитектуры.»
>[оверквотинг удален]
> где денег дадут. или под ведроид. или ещё куда-нибудь. и у
> тебя будет выдирание волосьев с фэйспалмами, а потом написание универсальной библиотеки-враппера.
> и когда ты её допишешь, то увидишь, что за это время
> люди, которые использовали SDL (являющийся именно такой библиотекой, какую пытался написать
> ты), уже успели влезть во все дырки. потому что не тратили
> время сначала на тупняк, а потом на переписывание существующего.
> после чего у тебя останется два выхода: или покаяться и принять SDL,
> или пойти и начать писать свою ОСь, потому что «ядро —
> это мизерная часть всего объёма кода, зачем нам универсальное ядро? у
> нас же всего две архитектуры.»Игра игре рознь,про маленькие свиристелки,которые клепаются за пару дней для галочки,
обучения,развлечения,так они есть и должны быть на SDL,а монстры,которых тянут только
геймерские тазики с PCI-e видюхой распоследнего поколения,с разогнанным процом,не попрут ни на вяленом,ни на яблофонах,так что кесарю кесарево,а *барю *барево.
свидетелей балмера в обсуждение не звали. иди, пожалуйста, на сайты с себе подобными.
> свидетелей балмера в обсуждение не звали. иди, пожалуйста, на сайты с себе
> подобными.Нет это Вы не поняли,повторюсь:как игру,от которой вовсю пыхтит мощная геймерская машина,
портировать без урезания наворотов на вяленых/яблочных,чтоб там она хоть запустилась?
вот что, кстати, любопытно: если человек не ставит пробелов после знаков препинания, то очень, очень часто у этого человека проблемы с чтением. буквы в слова складывать его ещё как-то научили, а вот понимать смысл текста — на это мощностей уже не хватает.
> портировать без урезания наворотов на вяленых/яблочных,чтоб там она хоть запустилась?А прикинь, вяленый вообще никак нормальной игре мешать не должен - нормальные игры OpenGL используют. Который к иксам сам по себе не относится чуть менее чем никак и является совершенно отдельной подсистемой и отдельным API. Оно может немного знать что-то о иках через костыли типа GLX, но - ни разу не обязано. Это опциональный костыль-расширение для 1 частной ситуации. А например в винде те же вызовы не пройдут - за отсутствием иксов. А GL там вполне себе может быть. Каким надо быть дурнем чтобы искусственно себе жизнь усложнить?
> А прикинь, вяленый вообще никак нормальной игре мешать не должен - нормальныеПомешает,и тем,что его не поставить на железо c необходимой для наворотов мощностью.
> Который к иксам сам по себе не относится
> чуть менее чем никак и является совершенно отдельной подсистемой и отдельным
> API. Оно может немного знать что-то о иках через костыли типа
> GLX, но - ни разу не обязано. Это опциональный костыль-расширение для
> 1 частной ситуации. А например в винде те же вызовы не
> пройдут - за отсутствием иксов. А GL там вполне себе может
> быть. Каким надо быть дурнем чтобы искусственно себе жизнь усложнить?Смотря какая реализация.Иксы одна из немногих оконных систем,умеющих взаимодействовать с подсистемой синхронизации вывода между оконной системой и системой реализующей OpenGL.
Конкретно mesa к иксам относится тем,что обязательно синхронизируется через dri с иксами.
> сейчас набигут фанаты вяленого и тебе капец.А потом макинтошники проинформируют что у них X11 только через непотребные костыли. А уж бедные юзеры всяких хаек и вовсе за человека не считаются. Хотя казалось бы, а чем они хуже? Либа то у них худо-бедно есть.
А так можно дойти до того что ядро ограничивает возможности програмера в дерге сисколов. Давайте поставлять программу с своим ядром ОС, где програмер может дописывать сисколы по мере дурости :)
> А так можно дойти до того что ядро ограничивает возможности програмера в
> дерге сисколов. Давайте поставлять программу с своим ядром ОС, где програмер
> может дописывать сисколы по мере дурости :)не плагиатствуй, я протестую! я это как раз в «родителе» и написал!
> А потом макинтошники проинформируют что у них X11 только через непотребные костыли.Должны страдать.
> Попробуйте для начала на доску позора doom 3.Он IIRC, в линухе совсем не работал, пока не допортировали это отдельно. Вот SDL - для тех кому не хочется наступать на такие ситуации.
> Что прицепился?Прекрасный код во всех отношениях.
А критерии прекрасного можно в студию? Вот у многих конструкций использующих libsdl код я видел. Нормально вполне - libsdl делает народу жизнь намного проще во многих отношениях. Так что оно потом вполне себе одинаково и без головняка у програмера работает на винде, в макоси, лине, на ведроидофоне и даже черти-каких экзотах типа haiku и что там еще, если там смогли libsdl билдануть и запустить.
> И ещё загляните в саму SDL,в файл SDL_x11video.c,
А почему я должен смотреть именно туда? Этот файл юзается лишь в каком-то одном конкретном случае. А для иных графических систем там иные файлы.
> там тоже X11,короче слой интерфейса к пользователю-это мизерная часть от
> всего объёма кода,и его можно расписать достаточно быстро.Это, конечно, не самая большая часть кода. Но одна из самых проблематичных и вызывающих много нареканий. И мало кто хочет вместо реализации задуманного лично сношаться с интимными особенностями всех операционок существующих в мире. Вот в libsdl это уже сделали другие. Тем более что програмеру чисто технически сложно затестить все, от андроида до хайки. Опухнет он. А вот люди которые пишут/портируют на свою платформу такую либу - они явно протестят и отладят "свой" платформозависимый код под "свою" платформу.
> Преимущества в том,что можно будет добавить в реализацию
> интерфеса свои приколы,а не тупо следовать библиотечными рамками.Вы что, вообще не пользуетесь библиотеками чтоли? А то этот аргумент можно любой библиотеке предъявить. Тем более что опенсорсные либы можно менять, если уж реально приспичило. Или просто сбоку написать хелпер/враппер/... :)
> свиристелок типа android-приложения,iphone-приложения.
С точки зрения програмера, свиристелки типа андроида и ифона из-под libsdl ничем таким не отличаются особо. И OpenGL ES не так уж сильно от "полного" GL отличается. По поводу чего довольно тупо обувать себя на портабельность программы неизвестно зачем. И если я например юзаю пингвин - узнавать все интимные особенности директикса мне как-то совсем не в кассу, не говоря о том что мне не начем это особо проверить. А SDL чо, если там что-то будет барахлить в, допустим, установке видеорежима, автору либы юзеры SDL конструкций мозг сожрут. Ему, а не мне. Это хорошо, да :)
> На SDL,похоже,пишут маленькие проектики,создаваемые за пару дней для галочки,развлечения,обучения.(задумчиво посмотрел на «нативный» neverwinter) действительно, мелочь всякая…
толи толсто, толи не очень. Но тролинг
>OpenGL через framebuffer,то тогда уже будет серьёзно.Это никому не нужно, и это недавно выкинули из mesa.
>На SDL,похоже,пишут маленькие проектики,создаваемые за пару дней для галочки,развлечения,обученияNWN например.
а так же
OpenArena, Nexuiz, FreeCIV и многие многие другие.
> толи толсто, толи не очень. Но тролинг
>>OpenGL через framebuffer,то тогда уже будет серьёзно.
> Это никому не нужноВ том же андроид и некоторых других системах иксов нет.
> В том же андроид и некоторых других системах иксов нет.а это их проблемы, пусть они с этими проблемами и сношаются.
> а это их проблемы, пусть они с этими проблемами и сношаются.Ты, главное, дописывай тег sarcasm, а то одноклеточные за чистую монету ведь примут.
> Ты, главное, дописывай тег sarcasmнененене. так станет намного менее смешно.
В том же андроид нет OpenGL
Не понял?«Android supports OpenGL both through its framework API and the Native Development Kit (NDK).»
http://developer.android.com/guide/topics/graphics/opengl.html
> В том же андроид нет OpenGLВазап? А куда из него OpenGL ES дели? :)
Вы мне лучше вот что скажите - почему по ссылке http://www.opengl.org/wiki/Tutorial1:_Creating_a_Cross_Platf...
Я вижу код, в котором есть нативный вызов функций openGL(и даже инклуд), если, как говорится здесь, можно использовать SDL без явного использования opengl ?Конечно, можно и openGL, но зачем это в туториале про sdl ? Или пока нельзя пользоваться только вызовами sdl для вывода графики?
> Вы мне лучше вот что скажите - почему по ссылке http://www.opengl.org/wiki/Tutorial1:_Creating_a_Cross_Platf...
> Я вижу код, в котором есть нативный вызов функций openGL(и даже инклуд),
> если, как говорится здесь, можно использовать SDL без явного использования opengl
> ?
> Конечно, можно и openGL, но зачем это в туториале про sdl ?
> Или пока нельзя пользоваться только вызовами sdl для вывода графики?SDL предоставляет только создание контекста для OpenGL,создание управляемых окон,в которых
отображается образы,рисуемые с OpenGL,обработка ввода,с помощью более удобного API,чем
в X11.Сами графические образы создаются только на чистом OpenGL.
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(1200,1100,32,SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE,8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE,8);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,16);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1);
init();
glClearColor(0,0,0,0);
glEnable(GL_NORMALIZE);
glEnable(GL_DEPTH_TEST);.....
> отображается образы,рисуемые с OpenGL,обработка ввода,с помощью более удобного API,чем в X11.Основная прелесть - в том что платформо-независимо. Уповать на только x11 API - это очень и очень сильно урезать портабельность программы без какой либо причины. Глупое и недальновидное решение - цепляться за графическую систему, которая на ладан дышит даже в пингвине. А выписывать самолично реализацию этого самого для ВСЕХ существующих в природе платформ самолично - довольно глупо. Потому что это уже сделано в libsdl.
> Основная прелесть - в том что платформо-независимо. Уповать на только x11 API
> - это очень и очень сильно урезать портабельность программы без какой
> либо причины. Глупое и недальновидное решение - цепляться за графическую систему,
> которая на ладан дышит даже в пингвине. А выписывать самолично реализацию
> этого самого для ВСЕХ существующих в природе платформ самолично - довольно
> глупо. Потому что это уже сделано в libsdl.Только при этом добавятся глюки. А переключение режима и ввод это всего несколько десятков строк кода, проще их написать и не возится что-там в нутрях у sdl или дистрибутива работает с ошибками. А платформ всего 3
> Только при этом добавятся глюки. А переключение режима и ввод это всего
> несколько десятков строк кодане покажешь? только в нормальном стиле, строки длиной 100500 символов не нужно.
да, кстати: заодно и по паре десятков строк кода для вывода звука, ок?
давай, у меня есть хитрый план: собрать эту сотню-другую строк кода и запилить мегаубийцу SDL. а то они там все «дураки и адиёты», сктолько уже строчек наколбасили. а мы с анонимусом им всем покажем! а я ещё и прославлюсь.
> в нутрях у sdl или дистрибутива работает с ошибками.А вот это будут их проблемы и мозги клевать будут тем кто накосячил. И я меньше всего хочу чтобы этим кем-то оказался лично я :)
> А платформ всего 3
Вас обманули, их намного больше. Я вон видел пользователя хайки который SDLную программу гонял. Я вот например понятия не имею какое там в хайке апи. А SDLная программа работать будет. Потому что или авторы либы обучат либу работать с этой хреновиной, или те кто портировал либу на хайку. И как-нибудь обезглючат.
Нет, не то чтобы меня сильно волнует поддержка хайки. Но когда оно до кучи может еще и вот так, а еще на андроид, и даже макинтошников можно не слать нафиг и прочая - так это ж хорошо.
> Глупое и недальновидное решение - цепляться за графическую систему,
> которая на ладан дышит даже в пингвине.Ох уж эти младотурки.
> если, как говорится здесь, можно использовать SDL без явного использования openglЗдесь не говорится что SDL можно использовать для 3D без opengl. Он лишь помогает абстрагироваться от специфики конкретных платформ. А opengl - он тоже абстрагирован от специфики платформ и поэтому его можно невозбранно дергать везде где он есть и он будет более-менее одинаковым. Так что libsdl просто не требуется его абстрагировать. К тому же, многие вызовы критичны к скорости и лишний слой абстракций добавил бы головняка.
В том и проблема, что какое-то ламерьё преподносит библиотеку как "абстракцию", хотя наружу торчат кишки OpenGL. Возникает резонный вопрос: если я и так могу писать на OpenGL (вставив пару-тройку #if'ов для всех трёх платформ, которые имеют смысл), зачем тогда все эти приседания вокруг какой-то опенсорсной "абстракции", API коотрой к тому же настолько непродуман, что пришлось делать новую версию!
Если вы разбираетесь в этом, скажите сколько кода исключительно виндозависимого надо написать для инициализации граф. режима OpenGL? И вот для этого предназначена SDL??
скажи, вот зачем ты вопросы задаёшь? ведь у тебя отсутствует орган, необходимый для понимания ответов. у тебя и в кресле жопа, и на плечах жопа. посади тебя в кресло вверх ногами — никто разницы и не заметит.
> В том и проблема, что какое-то ламерьё преподносит библиотеку как "абстракцию", хотя
> наружу торчат кишки OpenGL.А OpenGL - сам абстракция. Зачем его абстрагировать еще раз? Чтобы больше тормозило? :)
>И вот для этого предназначена SDL??"Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer."
Хорошая библиотека, для линукса наверно лучший оконный интерфейс для opengl
> Хорошая библиотека, для линукса наверно лучший оконный интерфейс для openglОна хороша не только для Linux - на ней удобно кроссплатформенные игрушки делать и просто софт который активно выводит какую-то вычисляемую графику, etc и для которого допустимы или приветствуются "нестандартные" (относительно системных) контролы.
лицензия не LGPLv2, а zlib теперь - в сорцах указана именно она. и на сайте тоже про это говорится "SDL 2.0 and newer are available under the zlib license." (http://www.libsdl.org/license.php)
Странный выбор лицензии. А что, там прямо так и написано что кредитсы за эту либу тоже надо раздавать Jean-loup Gailly and Mark Adler? А то очень странно посылают...
да, явно косяк на сайте. в сорцах нормальная лицензия за авторством Sam Lantinga
> да, явно косяк на сайте. в сорцах нормальная лицензия за авторством Sam LantingaПросто я [автор новости] сунулся в самое очевидное место сайта, а там LGPL. Я им поверил и в сорце перепроверять поленился. А как оказалось зря. Как оказалось чуть позже - они и сами в процессе накосячили слегка.
> Поддержка аппаратного ускорения для вывода 2D графики;Ну теперь Violetland точно не будет тормозить.