Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

HX GUI improvements (threat fulfilled finally !!!) (DOSX)

posted by DOS386, 04.08.2007, 09:41

As I announced cca 1 month ago, I have some ideas how to improve HX GUI. My questions got answered partially only then, so I hope there is not too much nonsense in this post. As I also revealed, this doesn't have to do with speed, the speed has low priority for me now, and the only remarkably slow application is MPLAYER.

1. Add support for VGA 640x480x4bpp mode, besides linear VESA. Intentionally suggesting this VGA mode, banked VESA sucks :no: YES, this is related to the "CPUID" thread on FASM forum :lol3: I am aware this mode uses silly "planes", also 16 colours is not the best, OTOH even original Windaube uses it - it is the only available mode unless you successfully install a driver, and tends to re-appear when the great driver gets wrecked :lol3: Support of this mode would improve compatibility with older hardware (very important for DOS ;-) ), and allow to bypass an unusably buggy VESA, or verify origin of problems suspected to come from the VESA ;-)

2. This is the bigger one, OTOH should not require coding any additional sophisticated / expensive functionality :surprised: , consists mostly of "change behavior" adjustments ;-)

Issues to get fixed:

- MPLAYER instability
- MPLAYER messing text into GUI screen
- Colour translation problems
- Console vs GUI issues, bad experience with "being smart" in HX 2.11 that got reverted very soon
- Difficulty to use BOCHS (use console based menus, start emulation -> failure :no: )
- Screenshooting "console" stuff (needs 2 instances of DOS and HX now)
- Difficult-to-debug problems with apps changing screen resolution while running
- Buggy mouse cursor (?) blinking and leaving traces

The idea: implement 2 additional buffers, could be used as "parallel buffers" (brew screen in the parallel buffer, copy complete screen into the LFB, especially useful with the VGA mode) as well as backup buffers (write all directly into the LFB as-is).

Detail changes:

- Define 2 strictly separated HX modes, console and GUI. Console is default, GUI can be set up by:
- - Env. variable
- - DPMILD32 -g
- - Very first loaded executable is "subsystem GUI"
but not later / otherwise. In console mode, only console apps work, in GUI mode, console, GUI and mixed are supported. If GUI access occurs in console mode, abort with informative error then:
- - "XYZ.EXE attempted to start FIREFOX.EXE GUI executable while HX is in console mode"
- - "BOCHS.EXE declared as console in the header tried to use GUI API call CreateWindowEx while HX is in console mode"

- Prohibit changing screen resolution while program is running, let request pass if requested resolution matches the existing one, abort otherwise:
- - "OGLTEST.EXE requested 640x480x16bpp screen resolution, while it is 800x600x32bpp now, don't use "fullscreen" or adjust HXGUIHLP.INI next time"
"xmax" and "ymax" would be obsolete in HXGUIHLP.INI then ;-)

- As-is in console mode, write to standard screen using DOS or BIOS INT's

- Completely new in GUI mode:

- Set up 2 buffers of same size as the LFB is, one for the console "Window" and one for the GUI "Window"

- Translate console writes into pixels (routines already present in HX GUI), somewhat similar to the "unfullscreen" NT-consoles or "DOS"-BOXes, and output to the console "Window", allow to redirect the writes additionally to a file like "HXSTDERR.LOG", and allow to specify whether to redirect STDOUT, STDERR or both (new).

- New item in screenshooting menu: Switch screen - switch console <-> GUI "Window" (use the 2 buffers then, exchange them (if used as "backup") or copy "new" buffer->LFB if used as "parallel")

- Allow to screenshoot both of them (not at same time :lol3: ) ... also my older requests about more informations "Saving screenshot into H:\DOS\HX001.BMP" , "Saved" , "Not saved, disk full" might become more accessible having these 2 buffers available ;-)

And NO, this is not the request or start of a request to implement a " 100%-AERO-compatible Window manager " in HX ;-) OTOH the impossibility to switch 2 buffers ("Windows") is IMHO a serious weakness of HX, several useful apps use such 2 "Windows" (BOCHS, QEMU, MPLAYER, GNASH) and something should be done here ... so I present this easy (?) solution. :-)

PS: The HXRTD thread is good :-) please keep it up-to-date ... any way to make it "sticky" ?

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 94 users online (1 registered, 93 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum