LINUX.ORG.RU

OpenGL и Linux


0

2

Здравствуйте. Озабочен одной проблемой, суть в том что в интернете мало годных книг про опенгл да и почти все из них описывают работу с вендой. В инете нашел 1 статью про инициализацию опенгл в unix, но не осилил. Подкиньте пожалуйста материала про опенгл под линукс, чтобы был легкоусвояемый. Спасибо.

Для хелловорлдов использовал «OpenGL Суперкнига» (емнип там кросплатформенно), дальше просто пошел по официальной документации

cx ★★
()
Ответ на: комментарий от Razzeeyy

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

cx ★★
()
Ответ на: комментарий от Razzeeyy

ну тащемта кроме неподдерживания некоторых фишек в линуксовых драйверах опенгл везде одинаков, одна разница — в винде ты создаешь окно через winapi а в никсах через xlib какой нибудь, есть обертки более высокоуровневые, они позволяют в этих дебрях не копаться, что тебе и посоветую, дальше одно и то же
есть и кроссплатформенные обертки, по крайней мере для начала не грех ими воспользоваться, тебя же интересует графика а не то как окно где создать и как цикл организовать, ога?

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

и вот еще, были уроки, не припомню но ты должен на них натыкаться если будешь копаться, там были екзамплы такие себе и код как для винды так и для линуксов, помоему NeHe или как-то так, гугли короче, все есть я гарантирую

trashymichael ★★★
()

суть в том что в интернете мало годных книг про опенгл да и почти все из них описывают работу с вендой

В линуксе openGL ничем от мастдайного не отличается. Примеры с nehe, изначально написанные под мастдай, путем несложной замены обратных слешей на прямые в include'ах и небольшого выбрасывания вендоспецифичного кода, спокойно работают в линуксе. Пользуемся всякими GLUT'ами, и нам не нужны дебильные SDL...

Eddy_Em ☆☆☆☆☆
()

У первого туториала NeHe есть порт под линукс под чистый Xlib. Данный порт только не умеет, не пересоздавая окно переключаться в Xlib, что делается через посылку атома. Но для начала более чем достаточно. Далее - ковырять Xlib.

cattail
()

Спасибо всем, поразбираюсь

Razzeeyy
() автор топика
Ответ на: комментарий от grouzen

Зачем нужна SDL, если на Unix и без неё OpenGL работает? Лично я у себя её заметил, посчитал не нужной и недавно выпилил из зависимостей всех приложений. Ничего не упало.

Хотя, вот, приехала с Deluge снова:

> pkg_info -rx deluge | grep sdl
Dependency: sdl-1.2.14_2,2
Dependency: sdl_ttf-2.0.10
Dependency: sdl_image-1.2.10_2
Dependency: sdl_mixer-1.2.11_2

> pkg_info -R sdl-1.2.14_2,2
Information for sdl-1.2.14_2,2:

Required by:
deluge-1.3.2,1
py27-game-1.8.1_6
sdl_image-1.2.10_2
sdl_mixer-1.2.11_2
sdl_ttf-2.0.10
smpeg-0.4.4_8
— из-за пидоновских биндингов к GTK.

iZEN ★★★★★
()

разбираю первый хелловорлд из книги, ткнулся в проблему:

http://pastebin.ubuntu.com/649971/

компилиться, запускается и пишет что то вроде «нужно вызвать glutInit перед вызовом glutCreateWindow». Но я что то не втыкаю как этот glutInit вызывать? с какими параметрами?

Razzeeyy
() автор топика
Ответ на: комментарий от Eddy_Em

> Пользуемся всякими GLUT'ами, и нам не нужны дебильные SDL...
Тебя разработчики SDL покусали? Чем тебе не угодила эта библиотека?

Raving_Zealot ★★
()
Ответ на: комментарий от anonymous

>>Откудаж вы такие долбаёбы берётесь.

Ну так блять джедай профессионал, обьяснить без ссылок слабо? Гуглил я это, все равно не понял ничего.

Razzeeyy
() автор топика
Ответ на: комментарий от Razzeeyy
int main (int argc, char **argv)
{
    glutInit (&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutCreateWindow ("Simple");
    glutDisplayFunc (RenderScene);
    SetupRC();
    glutMainLoop();

    return 0;
}

Например

cx ★★
()
Ответ на: комментарий от iZEN

> Зачем нужна SDL, если на Unix и без неё OpenGL работает? Лично я у себя её заметил, посчитал не нужной и недавно выпилил из зависимостей всех приложений. Ничего не упало.

SDL нужна для кроссплатформенной работы с Unicode input, для джойстиков и геймпадов, для простого создания окна.
К сожалению тот же GLUT может помочь только в создании окна. У него никакая поддержка джойстика и огромный гемор с юникодным вводом.
Кроме того существует несколько реализаций GLUT, которые не очень совместимы друг с другом.
Одним словом для новичка или лентяя SDL в самый раз.

andreyu ★★★★★
()
Ответ на: комментарий от cx

спасибо заработало, а то я вообще не понимаю в этих аргументах main и тому подобных, причем не в одной книге что читал не нашел описание что за звери такие int argc, char **argv

Razzeeyy
() автор топика
Ответ на: комментарий от Razzeeyy

Эээ... Если коротко то argc - количество аргументов, argv - аргументы, переданные на вход программе.

Но все же стоит осилить сам язык, прежде чем браться за опенгл, да...

cx ★★
()
Ответ на: комментарий от andreyu

Ладно. Удалил Deluge всё, что ему было нужно. В опциях конфигурации сборки deluge убрал галочку PYGTK (стало: WITHOUT_PYGTK=true
WITHOUT_PSYCO=true). Пересобрал Deluge уже без зависимостей от SDL. Запустил — работает. ЧЯДНТ?

iZEN ★★★★★
()

Ищи SDL+OpenGL, это практически основная связка для написания кроссплатформенных OpenGL приложений.

P.S. LWJGL юзер ;)

vertexua ★★★★★
()
Ответ на: комментарий от Raving_Zealot

Я ожидал от вас другой логической цепочки. Хотя возможно я что-то пропустил и не прав.

OpenGL 3/4 не поддерживается виндой -> графическое приложение, которое нельзя портануть на винду не нужно -> OpenGL 3/4 - не нужен -> OpenGL $govno_mamonta_version - нужен -> ваш аргумент - не аргумент

vertexua ★★★★★
()
Ответ на: комментарий от Raving_Zealot

Не, я не утверждаю, просто давно не тыкал. Помнится мне что они остановили версию OpenGL на какой-то версии и сказали юзать расширения чтобы его задушить в пользу ДХ. Сейчас opengl32.dll уже содержит современную версию?

vertexua ★★★★★
()
Ответ на: комментарий от Raving_Zealot

Зачем она нужна? Если нужно «чисто openGL'ное приложение», то GLUT - то, что надо. Если же используются какие-нибудь кути или гтк, а в них рисуется виджет openGL, то GLUT можно и не использовать. Но все равно в этой библиотеке много полезных функций.

А зачем нужен SDL, мне непонятно :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Джойстики, нормальный ввод, загрузка картинок, звук, мало? Кажется все это вместе с графикой составляет игру, не?

vertexua ★★★★★
()
Ответ на: комментарий от stormblastt

Фряха же, видимо зависимости так криво прописаны, что PyGTK за собой SDL тянет.

pevzi ★★★★★
()
Ответ на: комментарий от Raving_Zealot

Как торрент клиент относится к теме топика и/или SDL?

Я тоже не понял, зачем Deluge нужен py-game с зависимостью от sdl. Поэтому выпилил.

Ещё раз повторяю: выпилил отовсюду, OpenGL от этого не пострадал.

iZEN ★★★★★
()
Ответ на: комментарий от Raving_Zealot

Как торрент клиент относится к теме топика и/или SDL?

Я тоже не понял, зачем Deluge нужен py-game с зависимостью от sdl. Поэтому выпилил, всего лишь сняв крестик с опции PYGTK в опциях сборки Deluge (вдруг вспомнилось: «либо крестик снимите, либо трусы наденьте») и заново пересобрал его и его зависимости.

Ещё раз повторяю: выпилил отовсюду. OpenGL от этого не пострадал. К теме это имеет значение. Посыл такой: SDL не нужен.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> OpenGL от этого не пострадал. К теме это имеет значение. Посыл такой: SDL не нужен.
Сделайте мне кто-нибудь facepalm.

Raving_Zealot ★★
()
Ответ на: комментарий от vertexua

SDL уже научили не заграбастывать себе клавиатуру, что невозможно свернуть игру или подрегулировать громкость?

Yareg ★★★
()
Ответ на: комментарий от vertexua

OpenGL 4 устанавливается в Windows с проприетарными драйверами. В том числе и в Windows XP.

ZenitharChampion ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.