Re: [AD] Fullscreen problems on Linux

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


OK here's my proposal...

Since we don't have a way to detect a broken WM, we should do what SDL does. Namely if the window manager supports going fullscreen, we should emulate a real fullscreen mode by scaling the backbuffer.

Some points:

- We don't need any integer, etc modes. The user can do this themselves. Example: they request a 640x480 fullscreen display, the native res is 1280x720 so the user sets up a transform themselves to keep their rendering at 16:9.

- We can use the patch I posted as a starting point but we have to fix the problems on xfwm4 and any others. This means we do not use ALLEGRO_FULLSCREEN_WINDOW, we use window manager fullscreen but we fix the problems with the patch.

Trent

On 2014-07-09 3:18 PM, Thomas Fjellstrom wrote:
On Wed 09 Jul 2014 03:05:48 PM Trent Gamblin wrote:
Maybe I didn't explain it right but I believe if you request a smaller
size then it fills it out with black. Not sure what the window size is
but there doesn't appear to be a border on it.
Ah, so it might reparent us. Or potentially it just makes sure to remember the
windows's requested size, and the size it sets it to, then blits our hidden
backbuffer to the real window (compositing turns all windows into render
buffers).

Trent

On 2014-07-09 1:56 PM, Thomas Fjellstrom wrote:
On Wed 09 Jul 2014 01:33:54 PM Trent Gamblin wrote:
I don't know what it looks like under the hood, but when I uncheck
"legacy fullscreen support" for Compiz, Allegro doesn't fail to create
the display, instead it creates a big window that covers everything
except the Unity dock and title bar.
Query our window size after we are fully mapped?

Trent

On 2014-07-09 1:14 PM, Thomas Fjellstrom wrote:
On Wed 09 Jul 2014 01:12:04 PM Trent Gamblin wrote:
If you can figure out how to detect if mode setting doesn't work that
would be a good start.
Indeed. Hmm. Well, there ought to be something we can ask the WM or X.
If
it won't set modes, that operation should either fail, or not be
available at all.

Trent

On 2014-07-09 1:09 PM, Thomas Fjellstrom wrote:
On Wed 09 Jul 2014 09:45:47 AM Trent Gamblin wrote:
A full screen blit is not negligible on a netbook or similarly low
powered computer. It's a huge difference. The point is, whether you
personally would use it or not mode setting is something that should
be
supported for people who want it. We won't get it though because open
source devs are morons as usual.
Personally I think we need both mode setting, and emulation. Of course
if
the WM breaks mode setting on us, there's not much we can do about
that.
It'll have to go in a FAQ, possibly in the docs, and on the wiki.

"Hey, your WM is broken!" And compiz is truly broken. A lot of things
were
broken when I was writing the full screen and mode listing code, so
much
so
that I gave up trying to fix it all.

But yeah, if we can detect that mode setting is broken in
ALLEGRO_FULLSCREEN, it might make sense to emulate in that case. And
allow the user to select the emulated case as well.

Trent

On 2014-07-09 9:30 AM, Elias Pschernig wrote:
On Wed, Jul 9, 2014 at 5:11 PM, Beoran <beoran@xxxxxxxxxx> wrote:
Elias, I beg to disagree on that point.

Real mode setting is essential for games and perhaps surprisingly
so,
for security applications.
Not everyone uses a low quality LCD panel that only works well at
it's
native resolution as their
display! What if I want to show my images on a real TV, or on a
high
quality display that supports
mode setting well?
Which theoretical displays are you talking of? Everything I know,
especially TVs (be it LCD, LED, plasma), has a native resolution and
running something in another resolution looks bad.

Also, for games, especially old games, retro games, or games that
have
to run well on
older computers or low powered ones, the ability to mode set is
essential for higher performance
and pixel perfect quality. So we can give our players what they
want.
But no one in the Wayland team thinks much of games or industrial
control safety apps...
I don't think performance matters. The game itself would still use
the
lower resolution so there is no difference. The only change is the
one
final scaled image in al_flip_display - any GPU in existance should
be
able to perform that without noticable overhead.

Also, the quality will be better. If you use a mode-changing
fullscreen, then the monitor itself will have to do the scaling. But
it has no GPU so will do a very crude and low quality job. That's
certainly true for any LCD monitor I've ever had. Using the GPU to
do
the scaling on the other hand you can get good quality scaling.
Also,
I suggested an extra integer-only scaling mode, which would make
sure
there's no possible scaling artefacts at all. Something
mode-changing
fullscreen would not allow.

--------------------------------------------------------------------
--
--
--
---- Open source business process management suite built on Java and
Eclipse Turn processes into business applications with Bonita BPM
Community Edition Quickly connect people, data, and systems into
organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
---------------------------------------------------------------------
--
--
--- -- Open source business process management suite built on Java
and
Eclipse Turn processes into business applications with Bonita BPM
Community Edition Quickly connect people, data, and systems into
organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
-----------------------------------------------------------------------
--
--- -- Open source business process management suite built on Java and
Eclipse Turn processes into business applications with Bonita BPM
Community Edition Quickly connect people, data, and systems into
organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
-------------------------------------------------------------------------
--- -- Open source business process management suite built on Java and
Eclipse Turn processes into business applications with Bonita BPM
Community Edition Quickly connect people, data, and systems into
organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
----------------------------------------------------------------------------
-- Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows Winner
of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/