Hi Vitali, >> 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 screen. 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 performance. 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. Best Regards, Rudolfs Bundulis 2015-04-08 13:41 GMT+03:00 Vitali Pelenjow <[email protected]>: > 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. > > Vitali. > > > On 4/8/2015 9:50 AM, Rūdolfs Bundulis wrote: > >> Hi, >> >> 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 >> [email protected] >> https://www.virtualbox.org/mailman/listinfo/vbox-dev >> > >
_______________________________________________ vbox-dev mailing list [email protected] https://www.virtualbox.org/mailman/listinfo/vbox-dev
