VOWM
(Pronouced voa-whim)
The VRML-OpenGL Windows Manager
Once upon a time, there was a boy with an idea...
That was 1995.
Welcome to 1999
BACKGROUND
In a nutshell, I'm tired and bored with the old 2-D legacy interface.
It's time to punch out a third.
The low cost and availability of OpenGL-capable hardware and drivers, and the great Mesa
OpenGL development work has opened the door for a real
Linux advantage.
X Servers provide the physical, low level hardware/OS interface. VOWM will operate on the
next layer. In an OSI representation, VOWM would operate at Layer 6, the presentation layer, and work in much the same manner
as other windows managers, but instead of displaying a traditional windows+buttons GUI, the
windows would be texture-mapped on to OpenGL objects, and buttons would be hotspots on the geometry.
...and what better way to describe the environment than to use the existing VRML
standards?
FRAMEWORK
Feb. 12, 1998: Just put together this Structural Overview
The following is a general description of the general structure, function of this X windows manager.
- vowm is the name of this windows manager and an abbreviation for VRML OpenGL Windows Manager.
- .vowmrc is a VRML-format text file describing the user's environment.
- vowm must have all the hooks necessary for existing X-Windows applications to run properly:
- 2-D window interface based on the Field of View (FOV) of the user; projection onto the faces of an
imaginary world cube - six virtual screens, one for each face of the cube, in present 2-D wm terms.
- Icon, Re-sizable, Maximized, and Classical representations of the window object - Classical maps the window to a
traditional 2-D graphic, locked in the FOV window; Icon, Re-sizable and Maximized are all VRML-described manifestations of the
window.
- All I/O interactions with the active/window texture of a window object must be mappable to classical 2-D coordinates; the
3-D nature of the interface must be invisible to the 2-D programs running in it - if you map the texture to an irregular-shaped object, that's your problem. :-)
- Allow for volume-restriction bounds on voWindows, lest a program literally run away.
- User interface must be fully configurable, as a VRML object; a user should be able to assign their Quake keyboard layout as a navigation method as easily as mouse, dataglove, joystick, or <insert_device_here> - control
structures.
- Should be coded to take advantage of multi-processor architectures/OS.
- Because this is to be coded in OpenGL, in theory if a good hardware implementation of OpenGL is used (OpenGL graphics card), the
controlling processor need not be of great speed, only have a good chunk of RAM for swapping virtual screens and good floating-point
math functionality.
- Be Creative!
MY FIRST STEPS
Here's how I'm going to start...
- Take one of the simplest functional opensource wm's and play with it, replacing graphical aspects with OpenGL equivalents -
i.e. improve my OpenGL coding skills.
- Develop code to convert VRML objects into OpenGL equivalents; look into FreeWRL code for ideas, credit where credit is due. :-)
- Define the Object structure, inheritance (of traditional X wm functions), etc; draw a nice picture.
[ Before | Tekmage | Mail Me! ]
All ideas, developments and revolutions resulting from the contents of these pages are Open Source and GNU CopyLeft.
Created: February 10, 1999
Last Modified: February 12, 1999