Author: hbelusca
Date: Wed May 29 00:29:07 2013
New Revision: 59099
URL:
http://svn.reactos.org/svn/reactos?rev=59099&view=rev
Log:
[CONSOLE.CPL-KERNEL32]
Fix some compilation warnings with MSVC.
[KERNEL32-CONSRV]
- Implement console graphics screen buffers, as described in
http://blog.airesoft.co.uk/2012/10/things-ms-can-do-that-they-dont-tell-you…
.
The idea is that the console server creates a memory shared section to be shared with
the client console application (it increases performance). A mutex is used to
"say" to the console server that he can repaint the screen. The function
InvalidateConsoleDIBits is implemented too. The definition of the structure
CONSOLE_GRAPHICS_BUFFER_INFO comes directly from the site.
- CreateConsoleScreenBuffer was modified to be able to create such buffers.
This is needed for a working NTVDM-like application.
[CONSRV]
- Rework the console buffer structures so that text-mode buffers and graphics-mode buffers
can "inherit" from an "abstract" structure, CONSOLE_SCREEN_BUFFER. Add
few helper functions for manipulating them.
- Reorganize the output code in "graphics.c" and "text.c" files to
separate text-mode only code from graphics-mode only code, both in the console server and
in the GUI front-end.
Other fixes:
- Fix mouse handling (left and right clicks when one goes away from the
"Selection" mode); do not handle mouse signal when we reactivate the GUI
front-end window by a click.
- Fix GetLargestConsoleWindowSize API in console server side. Now pressing Alt+F9 in Far
Manager to "change" the "video" mode works correctly.
Finally:
- Start to implement a (fake, i.e. not using directly a VGA driver) console fullscreen
mode. Currently Alt-Enter key presses call a stub which just alternates DPRINTing between
"switch to fullscreen mode" and "switch to windowed mode".
Images here:
- Example of an application (a 16-bit emulator by Mysoft) which uses the console graphics
screen-buffer functionality:
http://img577.imageshack.us/img577/1693/mysoftemulatorargon.png
- A potpourri of console applications which use graphics screen-buffers:
http://img571.imageshack.us/img571/6526/consoledelirium.png
Enjoy :)
Added:
trunk/reactos/win32ss/user/consrv/frontends/gui/graphics.c (with props)
trunk/reactos/win32ss/user/consrv/frontends/gui/text.c (with props)
trunk/reactos/win32ss/user/consrv/graphics.c (with props)
trunk/reactos/win32ss/user/consrv/text.c (with props)
Modified:
trunk/reactos/dll/cpl/console/console.c
trunk/reactos/dll/cpl/console/layout.c
trunk/reactos/dll/cpl/console/options.c
trunk/reactos/dll/win32/kernel32/client/console/console.c
trunk/reactos/dll/win32/kernel32/client/console/history.c
trunk/reactos/include/psdk/winbase.h
trunk/reactos/include/psdk/wincon.h
trunk/reactos/include/reactos/subsys/win/conmsg.h
trunk/reactos/win32ss/user/consrv/CMakeLists.txt
trunk/reactos/win32ss/user/consrv/api.h
trunk/reactos/win32ss/user/consrv/coninput.c
trunk/reactos/win32ss/user/consrv/conio.h
trunk/reactos/win32ss/user/consrv/conoutput.c
trunk/reactos/win32ss/user/consrv/conoutput.h
trunk/reactos/win32ss/user/consrv/console.c
trunk/reactos/win32ss/user/consrv/consrv.h
trunk/reactos/win32ss/user/consrv/frontends/gui/guisettings.c
trunk/reactos/win32ss/user/consrv/frontends/gui/guisettings.h
trunk/reactos/win32ss/user/consrv/frontends/gui/guiterm.c
trunk/reactos/win32ss/user/consrv/frontends/tui/tuiterm.c
trunk/reactos/win32ss/user/consrv/handle.c
trunk/reactos/win32ss/user/consrv/include/conio.h
trunk/reactos/win32ss/user/consrv/include/settings.h
trunk/reactos/win32ss/user/consrv/init.c
trunk/reactos/win32ss/user/consrv/lineinput.c
trunk/reactos/win32ss/user/consrv/settings.c
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: trunk/reactos/dll/cpl/console/console.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/console/console.c?…
Modified: trunk/reactos/dll/cpl/console/layout.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/console/layout.c?r…
Modified: trunk/reactos/dll/cpl/console/options.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/console/options.c?…
Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
Modified: trunk/reactos/dll/win32/kernel32/client/console/history.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
Modified: trunk/reactos/include/psdk/winbase.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winbase.h?rev…
Modified: trunk/reactos/include/psdk/wincon.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wincon.h?rev=…
Modified: trunk/reactos/include/reactos/subsys/win/conmsg.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/subsys/win…
Modified: trunk/reactos/win32ss/user/consrv/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/CMakeL…
Modified: trunk/reactos/win32ss/user/consrv/api.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/api.h?…
Modified: trunk/reactos/win32ss/user/consrv/coninput.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/coninp…
Modified: trunk/reactos/win32ss/user/consrv/conio.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/conio.…
Modified: trunk/reactos/win32ss/user/consrv/conoutput.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/conout…
Modified: trunk/reactos/win32ss/user/consrv/conoutput.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/conout…
Modified: trunk/reactos/win32ss/user/consrv/console.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/consol…
Modified: trunk/reactos/win32ss/user/consrv/consrv.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/consrv…
Added: trunk/reactos/win32ss/user/consrv/frontends/gui/graphics.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
Modified: trunk/reactos/win32ss/user/consrv/frontends/gui/guisettings.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
Modified: trunk/reactos/win32ss/user/consrv/frontends/gui/guisettings.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
Modified: trunk/reactos/win32ss/user/consrv/frontends/gui/guiterm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
Added: trunk/reactos/win32ss/user/consrv/frontends/gui/text.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
Modified: trunk/reactos/win32ss/user/consrv/frontends/tui/tuiterm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
Added: trunk/reactos/win32ss/user/consrv/graphics.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/graphi…
Modified: trunk/reactos/win32ss/user/consrv/handle.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/handle…
Modified: trunk/reactos/win32ss/user/consrv/include/conio.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/includ…
Modified: trunk/reactos/win32ss/user/consrv/include/settings.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/includ…
Modified: trunk/reactos/win32ss/user/consrv/init.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/init.c…
Modified: trunk/reactos/win32ss/user/consrv/lineinput.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/linein…
Modified: trunk/reactos/win32ss/user/consrv/settings.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/settin…
Added: trunk/reactos/win32ss/user/consrv/text.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/text.c…