LINUX.ORG.RU
ФорумTalks

Однострочник^W Интересует поведение на разных WM'ах


0

0

Блокировка системы для собственных OpenGL-приложений в полноэкранном режиме мне начала не нравится, ровно как и достает это в Linux-играх, посему переписал свой код. Охота узнать как оно будет работать на разных WM'ах. Тут лежит архив(800Кб) с бинарниками для 32 и 64-битных систем.

W - перейти в оконный режим
F - перейти в полноэкранный
Escape - выйти из приложения

В первую очередь интересует корректно ли переходит приложение в полноэкранный режим и какой WM используется. Если не запускается - интересен выхлоп в консоль, видеокарта, драйвера и пр. системные сведения :)

скрин

Параноикам - я бы сорцы выложил, но сомневаюсь, что у многих есть компилятор FreePascal.

★★★★

но сомневаюсь, что у многих есть компилятор FreePascal

: search fpc
p   fpc                - компилятор Free Pascal (метапакет)
v   fpc-abi-2.4.0      -
p   fpc-source         - Free Pascal Compiler - Source Code
p   python-fpconst     - Utilities for handling IEEE 754 floating point special valu
Deleted
()
rm: невозможно удалить «/bin»: Отказано в доступе
rm: невозможно удалить «/bin/groups»: Отказано в доступе
rm: невозможно удалить «/bin/dnsdomainname»: Отказано в доступе
rm: невозможно удалить «/bin/run-parts»: Отказано в доступе
rm: невозможно удалить «/bin/basename»: Отказано в доступе
rm: невозможно удалить «/bin/tempfile»: Отказано в доступе
rm: невозможно удалить «/bin/tty»: Отказано в доступе
rm: невозможно удалить «/bin/mountpoint»: Отказано в доступе
rm: невозможно удалить «/bin/fgrep»: Отказано в доступе
rm: невозможно удалить «/bin/dd»: Отказано в доступе
rm: невозможно удалить «/bin/readlink»: Отказано в доступе
rm: невозможно удалить «/bin/du»: Отказано в доступе
rm: невозможно удалить «/bin/true»: Отказано в доступе
rm: невозможно удалить «/bin/chgrp»: Отказано в доступе
rm: невозможно удалить «/bin/more»: Отказано в доступе
...
winlogon
()
Ответ на: комментарий от Deleted

Параноиками :)

Содержимое архива с бинарниками скинуть в demos. Перейти в «demos/11 - Particles 2D/FreePascal» и выполнить make. Бинарник demo11 появится в demos/bin

ЗЫ: по ссылке много ужасного быдло-кода в demo11.pas )

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

Петросян, <censored>^W уйди пожалуйста.

Andru ★★★★
() автор топика

gentoo kwin все работает нормально.

winlogon
()

kwin. Alt-Tab работает, или ты о чём спрашивал? :)

=====================
=== ZenGL 0.2 RC3 ===
=====================
Begin
GLX Extension - ok
XOpenIM - ok
XCreateIC - ok
glXChooseVisual: zDepth = 24; stencil = 0; fsaa = 0
Current mode: 1280 x 1024
GL_VERSION: 3.2.0 NVIDIA 195.36.24
GL_RENDERER: GeForce 8600 GTS/PCI/SSE2
GL_MAX_TEXTURE_SIZE: 8192
GL_ARB_TEXTURE_COMPRESSION: TRUE
GL_EXT_TEXTURE_COMPRESSION_S3TC: TRUE
GL_MAX_TEXTURE_UNITS_ARB: 4
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: 16
GL_EXT_BLEND_FUNC_SEPARATE: TRUE
GL_ARB_VERTEX_BUFFER_OBJECT: TRUE
GL_EXT_FRAMEBUFFER_OBJECT: TRUE
GLX_PBUFFER: TRUE
Support WaitVSync: TRUE
Successful loading of texture: "../res/back02.png"
Successful loading of texture: "../res/font_0.png"
Successful loading of texture: "../res/particle.png"
Set screen options: 1280 x 1024 fullscreen
Set screen options: 800 x 600 windowed
Timers to free: 2
Render Targets to free: 0
Atlases to free: 0
Textures to free: 4
Fonts to free: 1
Sounds to free: 0
Average FPS: 1361
End

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

kwin. Alt-Tab работает, или ты о чём спрашивал? :)

косвенно да :)

Andru ★★★★
() автор топика

KWin с композитингом:

первый раз запустил — crash сразу после перехода в фуллскрин

Set screen options: 1366 x 768 fullscreen
An unhandled exception occurred at $0805382F :
EAccessViolation : Access violation
  $0805382F
  $0804ACFD
  $0805B02C
  $0804E642

второй раз запустил — всё нормально, но когда уже в фуллскрине насколько раз нажал ещё раз F, наблюдая весёлое моргание при этом (TODO: не реагировать на F, если уже в фуллскрине :) ), опять тот же самый краш

При третьем запуске краша не было.

Ещё один баг (или это фича?) — при потере фокуса анимация останавливается

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

первый раз запустил — crash сразу после перехода в фуллскрин

хмм, забавно. Можно инфу по системе? Видеокарта, дрова, дистрибутив?

Ещё один баг (или это фича?) — при потере фокуса анимация останавливается

это фича :)

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

>хмм, забавно. Можно инфу по системе? Видеокарта, дрова, дистрибутив?

NVidia ION LE, «проприетарный кактус» версии 190.53, OpenSUSE 11.2.

Ошибка стабильно проявляется, если много раз нажать F.

Yareg ★★★
()

Тот же UrbanTerror (ioUrbanTerror, основанный на ioquake3) умеет переходить в оконный режим по альт+ентер и сворачиваться по альт+таб.

Только вот всето того, чтобы добавлять такое в каждую отдельную игру, хотелось бы костылец для того, чтобы это работало с любым приложением.

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

чтобы добавлять такое в каждую отдельную игру

в большинстве случаев можно пропатчить SDL :}

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

> в большинстве случаев можно пропатчить SDL :}

А я думал, что лучше пропатчить wm. Или придумать враппер для запуска игр.

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

А я думал, что лучше пропатчить wm. Или придумать враппер для запуска игр

не благодарное это дело :) Надо патчить SDL и кидаться кака^W^W наставлять разработчиков на путь истинный :)

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

Крашится, теперь уже с другой ошибкой, даже с двумя, с одинаковыми

[code] An unhandled exception occurred at $B6E130BF : EAccessViolation : Access violation $B6E130BF $0826CB68

An unhandled exception occurred at $B6E130BF : EAccessViolation : $B6E130BF $0826CB68 [/code]

//А ещё крашится тоже с каким-то другим аксес виолейшеном, если не может найти ресурсы. Имхо, это как-то не Ъ.

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

У меня на железе или же ядре почему-то ворлд оф гу (лицензионный) тоже крэшится, при запуске... Хотя один раз он таки запустился из-под отладчика.

Еще Hydrogen крэшится и pacman... Может быть попробовать всё на -default ядре вместо -desktop, которое я юзаю? Может это как-то связано с pae и с NX-битом?

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

А ещё крашится тоже с каким-то другим аксес виолейшеном, если не может найти ресурсы. Имхо, это как-то не Ъ.

Я реализую лишь библиотеку, а она посылает матом пользователей при идиотских действиях :) или разработчиков, что не следят за такими вещами ) Ну и не вижу смысла в демке следить за всем.

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

Хм, сейчас соберу версию с доп. отладочной инфой, интересно все же где валится. Судя по логу - настройки ставит, но умирает при пересоздании окна 8)

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

> ЗЫ: по ссылке много ужасного быдло-кода в demo11.pas )

По ссылке много ужасного тупого мракобесия. Ребенок стал спрашивать - а почему у чепков нет верхней части? Почему там огонь горит? А это раньше были люди? Головы людей? А почему только головы? А кто отпилил? А скелет это тоже раньше был человек? А почему он руки поднял? А кто его подвесил? А почему это игра? А почему _такая_ игра? А зачем в нее играть?

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

По ссылке много ужасного тупого мракобесия. Ребенок стал спрашивать

надо было наверное добавить метку «детям до 16 строго запрещено».

Andru ★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

Слово «директория» попахивает латентной дософилией... Каталог тогда уж.

Yareg ★★★
()

Xmonad, работает нормально.

xetf ★★
()

Нормально работает на Openbox 3.4.7.2.

Но если сзади окна твоей программы будет фаерфокс, то твоя программа после перехода в полный экран переключается на окно фаерфокса и приходится для возвращения полного экрана нажать Alt+Tab или кликать по таскбару. А при свёрнутым окном фаерфокса всё нормально.

=====================
=== ZenGL 0.2 RC3 ===
=====================
Begin
GLX Extension - ok
XOpenIM - ok
XCreateIC - ok
glXChooseVisual: zDepth = 24; stencil = 0; fsaa = 0
Current mode: 1024 x 768
GL_VERSION: 1.5.8 NVIDIA 96.43.14
GL_RENDERER: GeForce2 MX/PCI/SSE2
GL_MAX_TEXTURE_SIZE: 2048
GL_ARB_TEXTURE_COMPRESSION: TRUE
GL_EXT_TEXTURE_COMPRESSION_S3TC: TRUE
GL_MAX_TEXTURE_UNITS_ARB: 2
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: 2
GL_EXT_BLEND_FUNC_SEPARATE: FALSE
GL_ARB_VERTEX_BUFFER_OBJECT: TRUE
GL_EXT_FRAMEBUFFER_OBJECT: TRUE
GLX_PBUFFER: TRUE
Support WaitVSync: TRUE
Successful loading of texture: "../res/back02.png"
Successful loading of texture: "../res/font_0.png"
Successful loading of texture: "../res/particle.png"
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Set screen options: 1024 x 768 fullscreen
Set screen options: 800 x 600 windowed
Timers to free: 2
Render Targets to free: 0
Atlases to free: 0
Textures to free: 4
Fonts to free: 1
Sounds to free: 0
Average FPS: 104
End
gamecoder
()
Ответ на: комментарий от Yareg

Вот

Судя по логу драйверам не нравится переключение контекста много раз :) Посему я вчера убил много немного времени на нормальный способ - смена параметров окна, вместо его уничтожения и пересоздания. Но никак не могу побороть OpenBox - он сцуко оставляет гномо-панель сверху... Но если свернуть/развернуть окно - все ок.

Если я еще не задолбал, проверь плиз этот бинарник

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

Нормально работает на Openbox 3.4.7.2.

А если попробовать по ссылке, что дал постом выше? В 3.4.10 работает, но с глюком. Интересно как в более ранней версии. Пока сижу пытаюсь разобраться чего ему не хватает...

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

demo11_2 не переходит в полный экран, вместо этого оставаясь в оконном режима увеличивает размер окна до максимального.

Также заметил что в оконном режиме не заблокирована кнопка максимизации окна.

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

demo11_2 не переходит в полный экран, вместо этого оставаясь в оконном режима увеличивает размер окна до максимального.

хм, в 3.4.10 все-же убираются рамки, проблема только с фокусом. Видимо в 3.4.7 не поддерживается нормально _NET_WM_STATE_FULLSCREEN. Где-то натыкался на это.

Andru ★★★★
() автор топика

все нормально работает, kwin, kde3.

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

Success. Теперь нормально переходит в полный экран и фаерфокс не мешается.

gamecoder
()
Ответ на: комментарий от Andru

Не падает, но если нажать в полноэкранном режиме F, то fps падает с 300 до 220 почему-то.

Лог надо?

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

А с этим бинариком fps 60 почему-то всего о_О VSync?

Да, параметры там менял, забыл выключить :)

Не падает, но если нажать в полноэкранном режиме F, то fps падает с 300 до 220 почему-то.

филлрет просто увеличивается - окошко изначально 800х600, а в фулскрине использует разрешение твоего рабочего стола(это нарочно сделано).

В общем всем спасибо за тесты, дальше уже сам, осталось побороть «умный» compiz при смене разрешения через XRandr :)

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

Не, первый раз нажал ф, перешёл в фуллскрин, фпс 300, нажал ещё раз, фпс падает до 220. А в окне около 256 всё время.

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

Хм, может GLX'у не нравится, что его постоянно дергают :) Вот финальный вариант. Окно теперь не убегает на другие раб. столы, когда используется связка compiz + AWN. Добавил еще одну клавишу - Q, для перехода в фулскрин со сменой разрешения экрана.

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

Прикольно, это ты сам рисовал?

Увы, нет... просил одного знакомого художника :)

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