VirtualBox

Changeset 53262 in vbox for trunk/src


Ignore:
Timestamp:
Nov 7, 2014 1:06:25 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
96829
Message:

Revert r96781, r96707 and r96693 since these commits affect 3D overlay window badly on Windows host.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/display_window.cpp

    r53232 r53262  
    2525    mParentId(parentId)
    2626{
    27     crDebug("CrFbDisplayWindow: created with parentID %p.", parentId);
    2827    mFlags.u32Value = 0;
    2928}
     
    6564    if (mpWindow)
    6665        mpWindow->UpdateEnd();
     66}
     67
     68
     69int CrFbDisplayWindow::RegionsChanged(struct CR_FRAMEBUFFER *pFb)
     70{
     71    int rc = CrFbDisplayBase::RegionsChanged(pFb);
     72    if (!RT_SUCCESS(rc))
     73    {
     74        WARN(("err"));
     75        return rc;
     76    }
     77
     78    if (mpWindow && mpWindow->GetParentId())
     79    {
     80        rc = mpWindow->Create();
     81        if (!RT_SUCCESS(rc))
     82        {
     83            WARN(("err"));
     84            return rc;
     85        }
     86    }
     87
     88    return VINF_SUCCESS;
     89}
     90
     91
     92int CrFbDisplayWindow::EntryCreated(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
     93{
     94    int rc = CrFbDisplayBase::EntryCreated(pFb, hEntry);
     95    if (!RT_SUCCESS(rc))
     96    {
     97        WARN(("err"));
     98        return rc;
     99    }
     100
     101    if (mpWindow && mpWindow->GetParentId())
     102    {
     103        rc = mpWindow->Create();
     104        if (!RT_SUCCESS(rc))
     105        {
     106            WARN(("err"));
     107            return rc;
     108        }
     109    }
     110
     111    return VINF_SUCCESS;
     112}
     113
     114
     115int CrFbDisplayWindow::EntryReplaced(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hNewEntry, HCR_FRAMEBUFFER_ENTRY hReplacedEntry)
     116{
     117    int rc = CrFbDisplayBase::EntryReplaced(pFb, hNewEntry, hReplacedEntry);
     118    if (!RT_SUCCESS(rc))
     119    {
     120        WARN(("err"));
     121        return rc;
     122    }
     123
     124    if (mpWindow && mpWindow->GetParentId())
     125    {
     126        rc = mpWindow->Create();
     127        if (!RT_SUCCESS(rc))
     128        {
     129            WARN(("err"));
     130            return rc;
     131        }
     132    }
     133
     134    return VINF_SUCCESS;
     135}
     136
     137
     138int CrFbDisplayWindow::EntryTexChanged(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
     139{
     140    int rc = CrFbDisplayBase::EntryTexChanged(pFb, hEntry);
     141    if (!RT_SUCCESS(rc))
     142    {
     143        WARN(("err"));
     144        return rc;
     145    }
     146
     147    if (mpWindow && mpWindow->GetParentId())
     148    {
     149        rc = mpWindow->Create();
     150        if (!RT_SUCCESS(rc))
     151        {
     152            WARN(("err"));
     153            return rc;
     154        }
     155    }
     156
     157    return VINF_SUCCESS;
    67158}
    68159
     
    334425{
    335426    int rc = VINF_SUCCESS;
    336 
    337     crDebug("CrFbDisplayWindow: sync window dimentions: fForceCleanup=%s, mpWindow=%p, isActive()=%s",
    338         fForceCleanup ? "yes" : "no",
    339         mpWindow,
    340         isActive() ? "yes" : "no");
    341427
    342428    if (!mpWindow)
     
    457543    }
    458544
     545    if (CrFbHas3DData(hFb))
     546    {
     547        if (mpWindow && mpWindow->GetParentId())
     548        {
     549            rc = mpWindow->Create();
     550            if (!RT_SUCCESS(rc))
     551            {
     552                WARN(("err"));
     553                return rc;
     554            }
     555        }
     556    }
     557
    459558    return VINF_SUCCESS;
    460559}
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/server_presenter.h

    r53232 r53262  
    206206
    207207        CrFbWindow(uint64_t parentId);
     208        bool IsCreated() const;
    208209        bool IsVisivle() const;
     210        void Destroy();
    209211        int Reparent(uint64_t parentId);
    210212        int SetVisible(bool fVisible);
     
    216218        void UpdateEnd();
    217219        uint64_t GetParentId();
     220        int Create();
    218221        ~CrFbWindow();
    219222
    220223    protected:
    221224
    222         int Create();
    223225        void checkRegions();
    224226        bool isPresentNeeded();
    225227        bool checkInitedUpdating();
    226         void Destroy();
    227228
    228229    private:
     
    260261        virtual int UpdateBegin(struct CR_FRAMEBUFFER *pFb);
    261262        virtual void UpdateEnd(struct CR_FRAMEBUFFER *pFb);
     263        virtual int RegionsChanged(struct CR_FRAMEBUFFER *pFb);
     264        virtual int EntryCreated(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry);
     265        virtual int EntryReplaced(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hNewEntry, HCR_FRAMEBUFFER_ENTRY hReplacedEntry);
     266        virtual int EntryTexChanged(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry);
    262267        virtual int FramebufferChanged(struct CR_FRAMEBUFFER *pFb);
    263268        const RTRECT* getViewportRect();
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/window.cpp

    r53232 r53262  
    3131{
    3232    mFlags.Value = 0;
    33     Create();
    34 }
    35 
     33}
     34
     35
     36bool CrFbWindow::IsCreated() const
     37{
     38    return !!mSpuWindow;
     39}
    3640
    3741bool CrFbWindow::IsVisivle() const
     
    4145
    4246
     47void CrFbWindow::Destroy()
     48{
     49    CRASSERT(!mcUpdates);
     50
     51    if (!mSpuWindow)
     52        return;
     53
     54    cr_server.head_spu->dispatch_table.WindowDestroy(mSpuWindow);
     55
     56    mSpuWindow = 0;
     57    mFlags.fDataPresented = 0;
     58}
     59
     60
    4361int CrFbWindow::Reparent(uint64_t parentId)
    4462{
     63    if (!checkInitedUpdating())
     64    {
     65        WARN(("err"));
     66        return VERR_INVALID_STATE;
     67    }
     68
    4569    crDebug("CrFbWindow: reparent to %p (current mxPos=%d, myPos=%d, mWidth=%u, mHeight=%u)",
    4670        parentId, mxPos, myPos, mWidth, mHeight);
    4771
    48     if (!checkInitedUpdating())
    49     {
    50         WARN(("err"));
    51         return VERR_INVALID_STATE;
    52     }
    53 
    5472    uint64_t oldParentId = mParentId;
    5573
     
    6381        renderspuSetWindowId(mParentId);
    6482        renderspuReparentWindow(mSpuWindow);
     83        renderspuSetWindowId(cr_server.screen[0].winID);
    6584
    6685        if (parentId)
     
    248267    if (mSpuWindow)
    249268    {
    250         WARN(("window already created"));
     269        //WARN(("window already created"));
    251270        return VINF_ALREADY_INITIALIZED;
    252271    }
     
    269288        cr_server.head_spu->dispatch_table.WindowShow(mSpuWindow, true);
    270289
    271     crDebug("CrFbWindow: create window with parent %p (mxPos=%d, myPos=%d, mWidth=%u, mHeight=%u)",
    272         mParentId, mxPos, myPos, mWidth, mHeight);
    273 
    274290    return VINF_SUCCESS;
    275291}
     
    331347}
    332348
    333 
    334 void CrFbWindow::Destroy()
    335 {
    336     CRASSERT(!mcUpdates);
    337 
    338     if (!mSpuWindow)
    339         return;
    340 
    341     cr_server.head_spu->dispatch_table.WindowDestroy(mSpuWindow);
    342 
    343     mSpuWindow = 0;
    344     mFlags.fDataPresented = 0;
    345 }
    346 
Note: See TracChangeset for help on using the changeset viewer.

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