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
() автор топика
Ответ на: комментарий от 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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.