[vbox-dev] OpenGL service screen redirection
rudolfs.bundulis at gmail.com
Wed Apr 8 10:56:10 UTC 2015
>> the OpenGL output redirect was created only for VRDP 3D support.
Currently it is internal and can use only 1 redirect.
I got the same impression from the sources. But if I am running a custom
frontend and disable VRDP (or to be more exact, do not allow to enable it),
and perform this call and occupy the single allowed redirect, then I should
be fine right?
>> The output redirect provides a bitmap of 3D frame when it is displayed.
If you have a 3D application in a window then you'll get
>> only content of the window.
If I understand correctly then CRORGeometry gives me the window dimensions
so as far as I see there should be no issues with blitting it over the
contents of VRAM.
>> As an alternative you could also use the screenshot API to get the
image. In this case you can choose the update interval and get the entire
Since I already have the VRAM contents from the IFramebuffer, asking for
the whole screen in parallel would be an overkill, and I also like the the
IFramebuffer methods provide the updated rectangle coordinates, that helps
me further down the pipeline with color conversion and encoding. If I get
the whole screen (which in my case is 9600x5400) that again downgrades the
Please correct me if I'm getting something very wrong, but as far as I see,
combining the IFramebuffer updates and the frame callback from the OpenGL
service should do what I need since then I just update a region inside the
whole large screen with the 3D frame when it's done.
2015-04-08 13:41 GMT+03:00 Vitali Pelenjow <Vitali.Pelenjow at oracle.com>:
> Hi Rudolfs,
> the OpenGL output redirect was created only for VRDP 3D support. Currently
> it is internal and can use only 1 redirect.
> The output redirect provides a bitmap of 3D frame when it is displayed. If
> you have a 3D application in a window then you'll get
> only content of the window.
> As an alternative you could also use the screenshot API to get the image.
> In this case you can choose the update interval and get the entire screen.
> On 4/8/2015 9:50 AM, Rūdolfs Bundulis wrote:
>> I am finally starting to look into 3D acceleration for my headless
>> frontend and the first thing I wanted to try is the OpenGL output
>> redirection to a frambuffer. Looking at the code I came down to the
>> following question - what is the correct way to hook into the OpenGL
>> service? Looking ConsoleVRDPServer.cpp it seems very straightforward -
>> ConsoleVRDPServer::remote3DRedirect basically just does one HGSMI call
>> SHCRGL_HOST_FN_SET_OUTPUT_REDIRECT but as far as I understand they are
>> done through internal functions that are not exported by any of the dlls so
>> I cannot hook into that, correct? The shared OpenGL dll exports a function
>> crVBoxServerOutputRedirectSet where I can pass the same callbacks, so I
>> assume I should use that, correct?
>> Best Regards,
>> Rudolfs Bundulis
>> vbox-dev mailing list
>> vbox-dev at virtualbox.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vbox-dev