Evening Charles,
Not only can I make a translucent standalone window in OpenGL but I can also create a translucent OpenGL overlay within an OpenGL-compatible variable-translucency
GDI+ window similar to the one implemented in the mockup!
A beautiful piece of such interactive GDI+/OpenGL compatibility originally implemented in PowerBASIC is attached below. It is just one sample among a ton of amazing submissions written by
Patrice Terrier and available at
José Roca's site on its
GDImage and other relevant subforums.
Patrice's graphical engine however has some serious license restrictions IIRC. On the other hand, OxyScheme is a
Public Domain project and I would like it to remain as such. My mockup doesn't use nor mimic a single code line in Patrice's works though of course the basic principles utilized in both approaches are similar and are built around MS Windows' inner workings.
Using OpenGL to implement relatively slow (CPU-wise) textual input-output would IMHO be like using a sledgehammer to crack a nut. The same can effectively be done using GDI+ alone. GDI+ is a system library on every MS platform starting with XP Sp3. The mockup's rendering part is written entirely in FBSL's unoptimized interpretative BASIC except for its highly efficient stack blur procedure that must be as fast as possible at all times and therefore was written in JIT DynC in this implementation.
(Stack blur is a Public Domain adjustable high-performance image blurring algo that of course isn't as good as genuine Gaussian blur but is much better visually and also much, much faster than its direct competitor, the box blur algo. It is in fact so fast that it can even be used for harware unassisted quality blurring of relatively small areas in real time as shown in this mockup.)Further, GDI+ allows any number of screen windows to be rendered simultaneously in a single process. OTOH OpenGL allows only one physical window to be rendered per process. This effectively means that if we want to use a separate window for OxyScheme's graphical output, we won't be able to do that because OpenGL would already be busy rendering our "console".
But again, if we would prefer to render (some) OpenGL into the "console" window proper, there would be nothing to prevent us from creating an (optionally translucent) OpenGL overlay for the "console" window region where we would like to render to. Then again, the number of yet other possible concurrent GDI+ windows in the process would remain unlimited.
And finally, using a common set of background bitmaps and common skinning/rendering engine for all the windows in the process regardles of their number would create a visually uniform yet adjustable GUI system pleasant to the eye.
Your move, sir.
.