int CrFbDisplayWindowRootVr::EntryCreated(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
{
    int rc = CrFbDisplayWindow::EntryCreated(pFb, hEntry);
    if (!RT_SUCCESS(rc))
    {
        WARN(("err"));
        return rc;
    }

    Assert(!CrFbDDataEntryGet(hEntry, slotGet()));

    const VBOXVR_SCR_COMPOSITOR_ENTRY* pSrcEntry = CrFbEntryGetCompositorEntry(hEntry);
    VBOXVR_SCR_COMPOSITOR_ENTRY *pMyEntry = entryAlloc();
    CrVrScrCompositorEntryInit(pMyEntry, CrVrScrCompositorEntryRectGet(pSrcEntry), CrVrScrCompositorEntryTexGet(pSrcEntry), NULL);
    CrVrScrCompositorEntryFlagsSet(pMyEntry, CrVrScrCompositorEntryFlagsGet(pSrcEntry));
    rc = CrFbDDataEntryPut(hEntry, slotGet(), pMyEntry);
    if (!RT_SUCCESS(rc))
    {
        WARN(("CrFbDDataEntryPut failed rc %d", rc));
        entryFree(pMyEntry);
        return rc;
    }

    return VINF_SUCCESS;
}
Example #2
0
void CrDpEntryInit(PCR_DISPLAY_ENTRY pEntry, const VBOXVR_TEXTURE *pTextureData)
{
    CrVrScrCompositorEntryInit(&pEntry->CEntry, pTextureData);
}