Example #1
0
void Window::joinNVSwapBarrier( const uint32_t group, const uint32_t barrier)
{
    if( group == 0 )
        return;

#if 1
    EQWARN << "Entering untested function GLXWindow::joinNVSwapBarrier"
           << std::endl;

    if ( !GLXEW_NV_swap_group )
    {
        EQWARN << "NV Swap group extension not supported" << std::endl;
        return;
    }

    const int screen = DefaultScreen( _xDisplay );
    uint32_t maxBarrier = 0;
    uint32_t maxGroup = 0;
    
    glXQueryMaxSwapGroupsNV( _xDisplay, screen, &maxGroup, &maxBarrier );

    if( group > maxGroup )
    {
        EQWARN << "Failed to initialize GLX_NV_swap_group: requested group "
               << group << " greater than maxGroups (" << maxGroup << ")"
               << std::endl;
        return;
    }

    if( barrier > maxBarrier )
    {
        EQWARN << "Failed to initialize GLX_NV_swap_group: requested barrier "
               << barrier << "greater than maxBarriers (" << maxBarrier << ")"
               << std::endl;
        return;
    }

    if( !glXJoinSwapGroupNV( _xDisplay, _xDrawable, group ))
    {
        EQWARN << "Failed to join swap group " << group << std::endl;
        return;
    }

    _glXNVSwapGroup = group;

    if( !glXBindSwapBarrierNV( _xDisplay, group, barrier ))
    {
        EQWARN << "Failed to bind swap barrier " << barrier << std::endl;
        return;
    }
    
    EQINFO << "Joined swap group " << group << " and barrier " << barrier
           << std::endl;
#else
    EQUNIMPLEMENTED;
#endif
}
Example #2
0
void Window::leaveNVSwapBarrier()
{
    if( _impl->glXNVSwapGroup == 0 )
        return;

    glXBindSwapBarrierNV( _impl->xDisplay, _impl->glXNVSwapGroup, 0 );
    glXJoinSwapGroupNV( _impl->xDisplay, _impl->xDrawable, 0 );

    _impl->glXNVSwapGroup = 0;
}
Example #3
0
void Window::leaveNVSwapBarrier()
{
    if( _glXNVSwapGroup == 0 )
        return;

#if 1
    glXBindSwapBarrierNV( _xDisplay, _glXNVSwapGroup, 0 );
    glXJoinSwapGroupNV( _xDisplay, _xDrawable, 0 );
    
    _glXNVSwapGroup = 0;
#else
    EQUNIMPLEMENTED;
#endif
}