Can OpenGL do this?

A quick question about using OpenGL. Say I run a full screen OpenGL application. Then I run another application that displays a window (non-native, homebrew widget set) that is drawn in the full-screen. Then I run yet another application that draws another window as per the first one. I guess the best description would be to imagine a desktop-like group of programs, the first being the root desktop and the subsequent programs being regular desktop applications.

Is this possible at all? I’m just considering concepts that make use of OpenGL for hardware rendering, without using native desktop APis a-la MFC/Gtk etc. Hope this isn’t too confusing - though I’m sure I’m confusing myself! I know what I’m trying to describe but I can’t find the words to explain it properly.


There was a thread about putting up multiple Glut windows.
I notice you can overlap them smoothly so one of them could be set to fullscreen via GLUT_BORDERLESS
Two exe’s will also overlap with no unexpected glitches.…8338#Post238338

I’m thinking that talking to GLSL from outside a process might be possible.
My aim is to put up OGL windows to display GLSL variables in realtime from an outside process, but I don’t know yet. Just getting started.

It is confusing… You want to have multiple windows with OpenGL rendering? Of course it is possible! You want to use OpenGL without native window API? No, this is not possible — at least a wrapper that hides the native calls (like GLUT or similar) is needed as GL has no means to set up itself in a platform-independent way.

If I understand you correctly, what you want to do is making a “windowing API” on top of OpenGL.

Of course you can do this. Just make a fullscreen window using the native windowing API. Then, inside this window, you can do anything you like.

All the tools that may possibly be needed to do this are there. The simplest way is probably to render each “child window” into a texture, and then render the “parent window” using this texture, and so on… until you render the “desktop” into the real window.

Have a look at Xgl. That’s an X server implemented in OpenGL.