void * PACKSPU_APIENTRY
packspu_MapBufferARB( GLenum target, GLenum access )
{
    GET_CONTEXT(ctx);
    void *buffer;
    CRBufferObject *pBufObj;

    CRASSERT(GL_TRUE == ctx->clientState->bufferobject.retainBufferData);
    buffer = crStateMapBufferARB(target, access);

#ifdef CR_ARB_pixel_buffer_object
    if (buffer)
    {
        pBufObj = crStateGetBoundBufferObject(target, &ctx->clientState->bufferobject);
        CRASSERT(pBufObj);

        if (pBufObj->bResyncOnRead && 
            access != GL_WRITE_ONLY_ARB)
        {
            /*fetch data from host side*/
            packspu_GetHostBufferSubDataARB(target, 0, pBufObj->size, buffer);
        }
    }
#endif

    return buffer;
}
示例#2
0
文件: arrayspu.c 项目: L3oV1nc3/VMGL
static void * ARRAYSPU_APIENTRY
arrayspu_MapBufferARB(GLenum target, GLenum access)
{
	return crStateMapBufferARB(target, access);
}