static void uiMenuDraw( void ) { uint32_t * buf = NULL; uint32_t * drw = NULL; int x,y,tmp; if ( !guiApp.menuIsPresent ) return; if ( !uiMenuRender && !guiApp.menuWindow.Visible ) return; if ( uiMenuRender || menuItem != oldMenuItem ) { memcpy( menuDrawBuffer,guiApp.menu.Bitmap.Image,guiApp.menu.Bitmap.ImageSize ); /* --- */ if ( menuItem != -1 ) { buf=(uint32_t *)menuDrawBuffer; drw=(uint32_t *)guiApp.menuSelected.Bitmap.Image; for ( y=guiApp.menuItems[ menuItem ].y; y < guiApp.menuItems[ menuItem ].y + guiApp.menuItems[ menuItem ].height; y++ ) for ( x=guiApp.menuItems[ menuItem ].x; x < guiApp.menuItems[ menuItem ].x + guiApp.menuItems[ menuItem ].width; x++ ) { tmp=drw[ y * guiApp.menuSelected.width + x ]; if ( !IS_TRANSPARENT ( tmp ) ) buf[ y * guiApp.menu.width + x ]=tmp; } } oldMenuItem=menuItem; /* --- */ wsImageRender( &guiApp.menuWindow,menuDrawBuffer ); uiMenuRender=False; } wsImageDraw( &guiApp.menuWindow ); }
static void uiVideoDraw( void ) { if ( guiApp.videoWindow.State == wsWindowClosed ) mplayer( MPLAYER_EXIT_GUI, EXIT_QUIT, 0 ); if ( guiApp.videoWindow.State == wsWindowFocusIn ) videoVisible++; if ( guiApp.videoWindow.State == wsWindowFocusOut && metacity_hack != 3 ) videoVisible--; if ( !guiApp.videoWindow.Mapped || guiApp.videoWindow.Visible == wsWindowNotVisible || guiInfo.Playing) return; if ( guiApp.videoWindow.State == wsWindowExpose ) { wsWindowBackground(&guiApp.videoWindow, guiApp.video.R, guiApp.video.G, guiApp.video.B); if ( guiApp.video.Bitmap.Image ) wsImageDraw( &guiApp.videoWindow ); } }
static void uiMainDraw( void ) { if ( guiApp.mainWindow.State == wsWindowClosed ) mplayer( MPLAYER_EXIT_GUI, EXIT_QUIT, 0 ); if ( guiApp.mainWindow.Visible == wsWindowNotVisible || !mainVisible ) return; // !guiApp.mainWindow.Mapped ) return; if ( uiMainRender && guiApp.mainWindow.State == wsWindowExpose ) { btnModify( evSetMoviePosition,guiInfo.Position ); btnModify( evSetVolume,guiInfo.Volume ); fast_memcpy( mainDrawBuffer,guiApp.main.Bitmap.Image,guiApp.main.Bitmap.ImageSize ); RenderAll( &guiApp.mainWindow,guiApp.mainItems,guiApp.IndexOfMainItems,mainDrawBuffer ); uiMainRender=False; } // NOTE TO MYSELF: probably not, if uiMainRender is False wsImageDraw( &guiApp.mainWindow ); // XFlush( wsDisplay ); }