VirtualBox

忽略:
時間撮記:
2014-11-26 上午11:25:27 (10 年 以前)
作者:
vboxsync
訊息:

Restore 3D state: fix SEGFAULT on X11 host (Linux): bind to corresponding (frame-, render-) buffer before put data into it (tested on X11 only).

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_diff.c

    r52263 r53400  
    308308        {
    309309            CRFBDataElement *el = &data->aElements[i];
     310            bool fUseRenderBuffer =
     311                (el->enmFormat == GL_STENCIL_INDEX || el->enmFormat == GL_DEPTH_COMPONENT || el->enmFormat == GL_DEPTH_STENCIL);
    310312#if 0
    311313            char fname[200];
     
    343345            }
    344346
    345             diff_api.BindFramebufferEXT(GL_DRAW_FRAMEBUFFER, el->idFBO);
     347            /* Bind to corresponding buffer. */
     348            if (fUseRenderBuffer)
     349                diff_api.BindRenderbufferEXT(GL_RENDERBUFFER_EXT, el->idFBO);
     350            else
     351                diff_api.BindFramebufferEXT(GL_DRAW_FRAMEBUFFER, el->idFBO);
    346352
    347353            if (el->enmBuffer)
     
    380386                diff_api.Disable(GL_STENCIL_TEST);
    381387            }
     388
     389            /* Bind to window system default buffer. */
     390            if (fUseRenderBuffer)
     391                diff_api.BindRenderbufferEXT(GL_RENDERBUFFER_EXT, 0);
     392            else
     393                diff_api.BindFramebufferEXT(GL_DRAW_FRAMEBUFFER, 0);
    382394        }
    383395
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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