From: Steve A. <ste...@us...> - 2004-06-23 03:43:55
|
Update of /cvsroot/stella/stella/src/emucore In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26227/src/emucore Modified Files: FrameBuffer.cxx FrameBuffer.hxx Log Message: Reworked the OpenGL class yet again. I figured out how to fix the problems in Windows without all the invasive changes, so I reverted most of it. Snapshots are now fully working in both software/OpenGL and windowed/fullscreen modes. Index: FrameBuffer.cxx =================================================================== RCS file: /cvsroot/stella/stella/src/emucore/FrameBuffer.cxx,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** FrameBuffer.cxx 27 Apr 2004 00:50:51 -0000 1.8 --- FrameBuffer.cxx 23 Jun 2004 03:43:47 -0000 1.9 *************** *** 71,74 **** --- 71,75 ---- myMessageTime(0), myMessageText(""), + myMenuRedraws(2), myInfoMenuWidth(0) { *************** *** 211,215 **** // Now the screen is up to date ! theMenuChangedIndicator = theRedrawEntireFrameIndicator = false; } } --- 212,224 ---- // Now the screen is up to date ! theRedrawEntireFrameIndicator = false; ! ! // This is a performance hack to only draw the menus when necessary ! // Software mode is single-buffered, so we don't have to worry ! // However, OpenGL mode is double-buffered, so we need to draw the ! // menus at least twice (so they'll be in both buffers) ! // Otherwise, we get horrible flickering ! myMenuRedraws--; ! theMenuChangedIndicator = (myMenuRedraws != 0); } } *************** *** 335,338 **** --- 344,348 ---- // Redraw the menus whenever a key event is received theMenuChangedIndicator = true; + myMenuRedraws = 2; // Check which type of widget is pending Index: FrameBuffer.hxx =================================================================== RCS file: /cvsroot/stella/stella/src/emucore/FrameBuffer.hxx,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** FrameBuffer.hxx 23 Jun 2004 00:15:32 -0000 1.9 --- FrameBuffer.hxx 23 Jun 2004 03:43:47 -0000 1.10 *************** *** 325,328 **** --- 325,331 ---- string myMessageText; + // Number of times menu have been drawn + uInt32 myMenuRedraws; + // The width of the information menu, determined by the longest string Int32 myInfoMenuWidth; |