On 4/8/2015 12:56 PM, Rūdolfs Bundulis wrote: > 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? 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. Correct. > > >> 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. Yes, that is how VRDP 3D redirection works. Vitali. > > Best Regards, > Rudolfs Bundulis > > 2015-04-08 13:41 GMT+03:00 Vitali Pelenjow <[email protected] > <mailto:[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] <mailto:[email protected]> > https://www.virtualbox.org/mailman/listinfo/vbox-dev > > > _______________________________________________ vbox-dev mailing list [email protected] https://www.virtualbox.org/mailman/listinfo/vbox-dev
