VirtualBox

Ignore:
Timestamp:
Jul 15, 2013 12:37:15 PM (12 years ago)
Author:
vboxsync
Message:

VRDP,Main,SharedOpenGL: enable 3d redirection if a RDP client connects

Location:
trunk/src/VBox/HostServices/SharedOpenGL
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserver/crservice.cpp

    r46783 r47158  
    12431243                else /* Execute the function. */
    12441244                {
    1245                     rc = crVBoxServerSetOffscreenRendering(GL_TRUE);
    1246 
    1247                     if (RT_SUCCESS(rc))
     1245                    if (pOutputRedirect->H3DORBegin != NULL)
    12481246                    {
    1249                         CROutputRedirect outputRedirect;
    1250                         outputRedirect.pvContext = pOutputRedirect->pvContext;
    1251                         outputRedirect.CRORBegin = pOutputRedirect->H3DORBegin;
    1252                         outputRedirect.CRORGeometry = pOutputRedirect->H3DORGeometry;
    1253                         outputRedirect.CRORVisibleRegion = pOutputRedirect->H3DORVisibleRegion;
    1254                         outputRedirect.CRORFrame = pOutputRedirect->H3DORFrame;
    1255                         outputRedirect.CROREnd = pOutputRedirect->H3DOREnd;
    1256                         outputRedirect.CRORContextProperty = pOutputRedirect->H3DORContextProperty;
    1257                         rc = crVBoxServerOutputRedirectSet(&outputRedirect);
     1247                        rc = crVBoxServerSetOffscreenRendering(GL_TRUE);
     1248
     1249                        if (RT_SUCCESS(rc))
     1250                        {
     1251                            CROutputRedirect outputRedirect;
     1252                            outputRedirect.pvContext = pOutputRedirect->pvContext;
     1253                            outputRedirect.CRORBegin = pOutputRedirect->H3DORBegin;
     1254                            outputRedirect.CRORGeometry = pOutputRedirect->H3DORGeometry;
     1255                            outputRedirect.CRORVisibleRegion = pOutputRedirect->H3DORVisibleRegion;
     1256                            outputRedirect.CRORFrame = pOutputRedirect->H3DORFrame;
     1257                            outputRedirect.CROREnd = pOutputRedirect->H3DOREnd;
     1258                            outputRedirect.CRORContextProperty = pOutputRedirect->H3DORContextProperty;
     1259                            rc = crVBoxServerOutputRedirectSet(&outputRedirect);
     1260                        }
     1261                    }
     1262                    else
     1263                    {
     1264                        /* Redirection is disabled. */
     1265                        crVBoxServerSetOffscreenRendering(GL_FALSE);
     1266                        crVBoxServerOutputRedirectSet(NULL);
    12581267                    }
    12591268                }
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c

    r47116 r47158  
    29412941}
    29422942
     2943static void crVBoxServerOutputRedirectCB(unsigned long key, void *data1, void *data2)
     2944{
     2945    CRMuralInfo *mural = (CRMuralInfo*) data1;
     2946
     2947    crServerSetupOutputRedirect(mural);
     2948}
     2949
    29432950DECLEXPORT(int32_t) crVBoxServerOutputRedirectSet(const CROutputRedirect *pCallbacks)
    29442951{
     
    29542961    }
    29552962
    2956     // @todo dynamically intercept already existing output:
    2957     // crHashtableWalk(cr_server.muralTable, crVBoxServerOutputRedirectCB, NULL);
     2963    /* dynamically intercept already existing output */
     2964    crHashtableWalk(cr_server.muralTable, crVBoxServerOutputRedirectCB, NULL);
    29582965
    29592966    return VINF_SUCCESS;
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.c

    r47116 r47158  
    103103            cr_server.outputRedirect.CRORVisibleRegion(mural->pvOutputRedirectInstance,
    104104                                                       mural->cVisibleRects, (RTRECT *)mural->pVisibleRects);
     105
     106            crServerPresentFBO(mural);
    105107        }
    106108    }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette