<div dir="ltr">Hi Vitali,<div><br></div><div>>> <span style="font-size:12.8000001907349px">the OpenGL output redirect was created only for VRDP 3D support. Currently it is internal and can use only 1 redirect.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">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?</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">>> 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</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">>> only content of the window.</span><br style="font-size:12.8000001907349px"><br>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.</div><div><br><span style="font-size:12.8000001907349px">>> 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.</span><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">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. </span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">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.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Best Regards,</span></div><div><span style="font-size:12.8000001907349px">Rudolfs Bundulis</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-04-08 13:41 GMT+03:00 Vitali Pelenjow <span dir="ltr"><<a href="mailto:Vitali.Pelenjow@oracle.com" target="_blank">Vitali.Pelenjow@oracle.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Rudolfs,<br>
<br>
the OpenGL output redirect was created only for VRDP 3D support. Currently it is internal and can use only 1 redirect.<br>
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<br>
only content of the window.<br>
<br>
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.<br>
<br>
Vitali.<div><div class="h5"><br>
<br>
On 4/8/2015 9:50 AM, Rūdolfs Bundulis wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi,<br>
<br>
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::<u></u>remote3DRedirect basically just does one HGSMI call SHCRGL_HOST_FN_SET_OUTPUT_<u></u>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?<br>
<br>
Best Regards,<br>
Rudolfs Bundulis<br>
<br>
<br>
<br></div></div>
______________________________<u></u>_________________<br>
vbox-dev mailing list<br>
<a href="mailto:vbox-dev@virtualbox.org" target="_blank">vbox-dev@virtualbox.org</a><br>
<a href="https://www.virtualbox.org/mailman/listinfo/vbox-dev" target="_blank">https://www.virtualbox.org/<u></u>mailman/listinfo/vbox-dev</a><br>
</blockquote>
<br>
</blockquote></div><br></div>