Shadow Framebuffer Test 7 has now been released, and it includes a bevy of
new features:
1) The server is comprised of four "engines" specifiable on the command line
        A) A GDI based shadow framebuffer server "-engine 1"
        B) A DirectDraw3 based shadow framebuffer server "-engine 2"
        C) A DirectDraw4 based shadow framebuffer server "-engine 3"
                This server is special becuase it doesn't have to lock
                and unlock the shadow framebuffer for blitting.  This
                server seems to have the highest performance.
        D) A DirectDraw3 based primary framebuffer server "-engine 4"
                Engine 4 has the worst performance and is not
                as complete as the other servers, and it probably
                never will be complete, as the performance
                doesn't warrant the effort.
2) Each server can be run in two modes
        A) Standard windowed mode, this is the default
        B) Full screen mode, accessible via the "-fullscreen" parameter
3) All engines, except engine 4, clip their output to their display window.
4) All engines, except engine 4, redraw areas of their display window
        that has been covered and reexposed by another application's
        window.
5) All engines should automatically detect the color masks
6) Engines 2, 3, and 4 change the video mode to the mode
        specified on the command line.  However, these
        engines do not currently verify that the mode is valid,
        nor do they fallback on another mode, they simple
        exit if the mode cannot be set.
7) Engines 1, 2, and 3 can be minimized and moved all over the screen
        without crashing.
8) A bug was fixed in the window repainting code that caused an
        infinite loop.  I lost track of whether I ever released
        a version that contained that bug; but it is fixed now,
        so who cares? :)
9) All engines allow you to specify modes that will hang your computer.
        I'm not kidding... be careful what engine and mode you specify.
10) Engine 4 will freeze Window 95/98/Me in its tracks, don't try to run it
        on those versions of Windows.  Besides, engines 1, 2, and 3
        are much faster than engine 4, so you have no reason to try
        running engine 4.
11) Engine 3 only works when you have DirectX 6+ installed.
12) Mouse wheel support, just in case you missed the last couple
        of announcements :)

This release has some rough edges in the video mode department; I
        recommend that you pass your current video mode, including
        your current color depth, as your '-screen' parameter.

Thanks to John Fortin for pointing me in the direction of a client memory
DirectDraw shadow surface, which allowed the non locking server to be
created; also thanks for the example code.

As a side note, the Shadow Framebuffer Test name is now a misnomer, as the
server includes an engine that writes directly to the primary framebuffer,
without the need for the shadow fb code.

Also note that I have removed the old Overlay and No DirectInput Test 7 page
from my home pages to avoid confusion with Shadow Framebuffer Test 7.

Here is my short term agenda for the Shadow Framebuffer Test series:
1) Autodetect which engines are supported by a particular computer.
2) Ignore command line engine parameters that specify an
        engine that is not supported by a particular computer.
3) Verify and/or adjust video modes passed in on the command line.
4) Choose the most desirable engine supported by a platform
        when the used does not specify an engine on the
        command line.
5) When running in fullscreen, fall back on a video mode close
        to the suggested mode if the suggested mode
        is not supported.
6) Reorganize the internal branching on the current engine type
        to keep the code manageable and to allow easy
        insertion of the 5th engine: a native GDI engine.
7) Build the modified sources on a brand new Cygwin installation
        so I can find all modifications that I have made along
        the way.
8) Submit patches to Cygwin and XFree86 with fixes that I
        have implemented along the way.
9) Work on the native GDI engine.

At some point the code for the Shadow Framebuffer Test series will probably
be checked into the XFree86 CVS tree overtop of the current hw/xwin code, as
it provides the functionality of the current hw/xwin code, in addition to
new functionality.

Enjoy, and thanks for testing,

Harold L Hunt II

Reply via email to