I’m a newbie on OpenGL. Now I need to write an application which have a transparent window to draw some line, circle, whatever, on another full screen OpenGL application.
I tried - (void)[NSWindow setLevel:kCGMaximumWindowLevel] but it doesn’t work.
It seems a full screen OpenGL function will always use CGDisplayCapture(kCGDirectMainDisplay); at the begining and CGReleaseAllDisplays(); at the end. Does this mean a full screen application will manage the display exclusively? But if there’s any way to draw directly to the display’s base address/ video buffer?
If the full-screen application is capturing the display, there should not be any way for you to draw over the top of it.
The window server is essentially gone when an app has captured the display, so most window things won’t work, and a full-screen OpenGL context will usually have the framebuffer tiled, so even in the unlikely event you could draw directly to the framebuffer, there’s no way to know which pixel corresponds to which address.
Do you have control over this full-screen application?