📄 s3v_lock.c
字号:
/* * Author: Max Lingua <sunmax@libero.it> */#include "s3v_context.h"#if DEBUG_LOCKINGchar *prevLockFile = NULL;int prevLockLine = 0;#endif/* Update the hardware state. This is called if another context has * grabbed the hardware lock, which includes the X server. This * function also updates the driver's window state after the X server * moves, resizes or restacks a window -- the change will be reflected * in the drawable position and clip rects. Since the X server grabs * the hardware lock when it changes the window state, this routine will * automatically be called after such a change. */void s3vGetLock( s3vContextPtr vmesa, GLuint flags ){ __DRIdrawablePrivate *dPriv = vmesa->driDrawable;/* __DRIscreenPrivate *sPriv = vmesa->driScreen; */ printf("s3vGetLock <- ***\n"); drmGetLock( vmesa->driFd, vmesa->hHWContext, flags ); /* The window might have moved, so we might need to get new clip * rects. * * NOTE: This releases and regrabs the hw lock to allow the X server * to respond to the DRI protocol request for new drawable info. * Since the hardware state depends on having the latest drawable * clip rects, all state checking must be done _after_ this call. */ /* DRI_VALIDATE_DRAWABLE_INFO( vmesa->display, sPriv, dPriv ); */ if ( vmesa->lastStamp != dPriv->lastStamp ) { vmesa->lastStamp = dPriv->lastStamp; vmesa->new_state |= S3V_NEW_WINDOW | S3V_NEW_CLIP; } vmesa->numClipRects = dPriv->numClipRects; vmesa->pClipRects = dPriv->pClipRects;#if 0 vmesa->dirty = ~0; if ( sarea->ctxOwner != vmesa->hHWContext ) { sarea->ctxOwner = vmesa->hHWContext; vmesa->dirty = S3V_UPLOAD_ALL; } for ( i = 0 ; i < vmesa->lastTexHeap ; i++ ) { if ( sarea->texAge[i] != vmesa->lastTexAge[i] ) { s3vAgeTextures( vmesa, i ); } }#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -