LINUX.ORG.RU
ФорумTalks

Реальная причина почему под Линуксом нет игр (и портов тоже)


0

0

Quote from ./

DX10 came out November 30, 2006 - which gave DX10 devs geometry shaders

The OpenGL 3.2 spec was released 21 days ago (spec != drivers though!), which finally put Geometry shaders into the core specification. That's only, what, almost 3 years after DX developers got them.

So... if you need to use geometry shaders in your game, what GL extension do you code against? GL_EXT_geometry_shader4? GL_ARB_geometry_shader4? NV_geometry_program? or the core spec? Chances are you'll end up coding against all 4, because you can be absolutely certain most cards will support 1 of those extensions, but each card will probably support a different one.

If the Khronos group keep insisting that they must keep the OpenGL APi 3 years behind D3D10, it's not difficult to see why developers aren't all that keen to go with OpenGL. If the Khronos group continue to keep giving us information which they later back track on (like the entire OpenGL3 spec), it's not surprising to see game developers ditching OpenGL3 in droves. To see Carmack ditching OpenGL really shouldn't come as a surprise to anyone working with OpenGL3. I've worked with OpenGL for the past ten years or so, and I'm sad to say that I'm currently stripping all OpenGL out of our codebase in favour of the 'other' API. Currently it seems to be what every developer is doing at the moment. OpenGL is just a royal pita these days. Let it die.

Печально :)

Ответ на: комментарий от dikiy

Он слишком ограничен и малофункционален. Шаг влево-шаг вправо - расстрел. Например в callback'ах нет возможноссти передать пользовательские данные. Окна создаются исключительно на root-window, которое намертво вбито в сорцах ... еще вагон и маленькая тележка таких мелких недоработок из-за которых glut надо либо полностью переписывать либо использовать свой велосипед вместо него.

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

>(и пиратов тоже)

с чего вы взяли что нет пиратов?

theli
()

>Печально :)

бггг. реалтаймовый рей-трейсинг уже почти на рынке, а вантузятники мастурбируют на DX10

black7
()
Ответ на: комментарий от duott

(Внезапно) это те хаки, которые якобы что-то делают? :)

Deleted
()

главное, что есть quake3 - остальное не нужно!

hired777
()
Ответ на: комментарий от Reset

>Он слишком ограничен и малофункционален. Шаг влево-шаг вправо - расстрел. Например в callback'ах нет возможноссти передать пользовательские данные.

Это как? callback какбэ подразумевает, что это callback :) откуда там пользовательские данные? Точнее как?

>Шаг влево-шаг вправо - расстрел.

Ибо нефиг:)

>Окна создаются исключительно на root-window, которое намертво вбито в сорцах ... еще вагон и маленькая тележка таких мелких недоработок из-за которых glut надо либо полностью переписывать либо использовать свой велосипед вместо него.

Ну таки есть дофига еще других велосипедов. Freeglut и т.п.

dikiy ★★☆☆☆
()

А что вы DX10 мусолите, когда уже есть 11, который можно попробовать сравнить с Gallium3D и похоливарить?

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

> откуда там пользовательские данные? Точнее как?

void *

> Ну таки есть дофига еще других велосипедов. Freeglut и т.п.

это тоже самое, но под другое лицензией и с еще меньшим функционалом

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

>> откуда там пользовательские данные? Точнее как?

>void *

Я спрашивал, если это callback, то откдуа в нем возьмутся пользовательские данные? Если нужны пользовательские данные - ловишь callback и потом делаешь свой вызов, с пользовательскими данными, не?

Весомых аргументов против я так и не услышал.

>> Ну таки есть дофига еще других велосипедов. Freeglut и т.п.

>это тоже самое, но под другое лицензией и с еще меньшим функционалом

Не факт.

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

Я спрашивал, если это callback, то откдуа в нем возьмутся пользовательские данные?

Ты что нибудь сложнее hello-world'а писал?

typedef void ( * callback_t) (void *);
void set_callback(callback_t callback, void * userdata);

library_main_loop:
....
callback(userdata)
....

Не факт.

Прежде чем чушь молоть сходи и сравни API и в особенности взгляни на слова not implemented у некоторых аналогов функций glut'а

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

>> Я спрашивал, если это callback, то откдуа в нем возьмутся пользовательские данные?

я тебе не про то, как сделать это синтаксически, а скорее зачем?

Что такого даст такой callback, чего нельзя реализовать потом в "юзерспейс" + callback без пользоватльских данных?

set_callback(callback_user);
void callback_user() { another_func(userdata); return };

не?

>> Не факт.


>Прежде чем чушь молоть сходи и сравни API и в особенности взгляни на слова not implemented у некоторых аналогов функций glut'а


пруф или не было.

freeglut is intended to be a 100% compatible, completely opensourced clone of the GLUT library. GLUT is a window system independent toolkit for writing OpenGL programs, implementing a simple windowing API, which makes learning about and exploring OpenGL programming very easy.

за исключением:

freeglut is now very stable and has fewer bugs than the original GLUT. However, there are places where the original GLUT specification did not make clear what order things like callbacks occur and it is possible for application programs that work under GLUT to fail under freeglut because they assume something that GLUT never guaranteed to be true.

Ну и PS:

Я таки глянул в GLOW. Там таки написано:

GLOW is designed to address those issues. It first provides a C++ wrapper API around GLUT, eliminating the callback and ID system and replacing it with an object-oriented API in which events are delivered directly to each C++ object. The new API is similar in spirit to existing object-oriented user interface frameworks, so if you understand how to use any GUI framework, you should be able to come up to speed on GLOW fairly quickly.

И еще:

So what's wrong with GLUT?

Nothing, if you're writing very simple programs that require only a minimal amount of user interaction. However, for more complex programs that use a large number of user interface elements and require complex interaction with the user, GLUT begins to demonstrate several key weaknesses:

* Its API is callback based and non-object-oriented. Writing a large program involves keeping track of many IDs and callbacks, which can be complex and error prone.
* Its facilities for user interaction are very primitive. In particular, GLUT does not provide access to widgets such as pushbuttons, pulldown menus and scroll bars.

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

> не?

Не, ибо порождает дублирование кода. И как ты такие callback'ки будешь создавать динамически? Городить костыли с какой-нибудь глобальной переменной с состоянием? В ОО модель такое вообще не вписывается.

> пруф или не было.

http://freeglut.sourceforge.net/docs/api.php поиск по "function is not implemented in freeglut" сам сделаешь или тебе помочь?

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

> Its API is callback based and non-object-oriented. Writing a large program involves keeping track of many IDs and callbacks, which can be complex and error prone.

это звиздец

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

>или Вы предлагаете искользовать поделки школьников?

Если DX10-only игра запустится (гм, а такие уже есть?), то почему нет.

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

>Если DX10-only игра запустится (гм, а такие уже есть?), то почему нет.

Нуну. Удачи. А я предпочитаю иметь _стабильную_ систему.

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

>> пруф или не было.

>http://freeglut.sourceforge.net/docs/api.php поиск по "function is not implemented in freeglut" сам сделаешь или тебе помочь?

Да. я не нашел, когад смотрел в первый раз.

Ну, не реализовано довольно мало - оверлеи (я не знаю, что это и зачем, если честно) + не реализовано еще пару методов ввода (и они не являются критичными). Зато реализовано 2 функции, которых нет в GLUT.

В общем. мы отклонились от темы. Я говорю, что glut + опциональнаю обертку можно вполне использовать как замену DirectInput и еще "кое что останется" :)

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

> Я говорю, что glut + опциональнаю обертку можно вполне использовать как замену DirectInput и еще "кое что останется" :)

Невозможно. В glut'е поддержка колесика для мыши патчем добавляется, а ты direct input. Сомневаюсь, что оно осилит современный джойстик с 5-6 аналоговыми осями, десятком клавиш и вибрацией.

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

>Невозможно. В glut'е поддержка колесика для мыши патчем добавляется, а ты direct input. Сомневаюсь, что оно осилит современный джойстик с 5-6 аналоговыми осями, десятком клавиш и вибрацией.

Да. с осями туго. Только три. Хотя их часто достаточно.

А с клавишами на нем ОК. С вибрацей - не знаю. Наверное надо будет самому писать.

Да. с джойстиком туго. С рулем наверное, тоже (хотя - тот же джойстик только вид сбоку). Те же три оси (руль и две педали).

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

Если говорить об авиасимуляторах, то надо минимум 4 оси: крен, тангаж, рыскание, тяга.

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