Xref: news-dnh.mv.net comp.os.msdos.djgpp:2207 Path: news-dnh.mv.net!mv!news.sprintlink.net!howland.reston.ans.net!swrinde!sgigate.sgi.com!enews.sgi.com!decwrl!waikato!midland.co.nz!chrismac From: chrismac AT midland DOT co DOT nz (Chris McFarlane) Newsgroups: comp.os.msdos.djgpp Subject: Re: grx2.0 - page flipping example Date: Wed, 27 Sep 95 15:15:58 GMT Organization: . Lines: 65 References: <446be3$5ti AT fu-berlin DOT de> Nntp-Posting-Host: chrismac.midland.co.nz To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp In article <446be3$5ti AT fu-berlin DOT de>, amanjit AT fub46 DOT zedat DOT fu-berlin DOT de (Amanjit Gill) wrote: >I know itīs a beta. And yes, i want to do one basic thing: page flipping. Amanjit, this is a simple page flipping test prog. Some minor changes in non-test code complete it, and give excellent linear buffer results. #include #include #include #include "grx20.h" #define DSPRIGHT 640 #define DSPBOTTOM 480 int main() { GrContext *vscn, *page0, *page1; int vpage0=0, vpage1=DSPBOTTOM, lineno; GrSetMode(GR_custom_graphics, DSPRIGHT, DSPBOTTOM, 256, DSPRIGHT,2*DSPBOTTOM); // check to see if you really got what you wanted: if((GrScreenX() != DSPRIGHT) || (GrScreenY() != DSPBOTTOM) || (GrVirtualX() != DSPRIGHT) || (GrVirtualY() != DSPBOTTOM*2)) { return -1; } vscn = GrSaveContext( NULL ); page0 = GrCreateSubContext(0, 0, DSPRIGHT-1,DSPBOTTOM-1, vscn, NULL); page1 = GrCreateSubContext(0,DSPBOTTOM,DSPRIGHT-1,DSPBOTTOM*2-1, vscn, NULL); GrSetViewport(0, vpage1); do { GrSetContext( page0 ); GrClearContext( GrBlack() ); for ( lineno=0; lineno < DSPBOTTOM; lineno+=4) GrHLine( 20, DSPRIGHT-20, lineno, GrWhite()); GrTextXY( 20, DSPBOTTOM/2+10, "#Page0#", GrWhite(), GrBlack()); GrSetViewport(0, vpage0); GrSetContext( page1 ); GrClearContext( GrBlack() ); for ( lineno=2; lineno < DSPBOTTOM; lineno+=4) GrHLine( 20, DSPRIGHT-20, lineno, GrWhite()); GrTextXY( 20, DSPBOTTOM/2+10, "*Page1*", GrWhite(), GrBlack()); GrSetViewport(0, vpage1); if ( kbhit() ) if ( getkey() == 27 ) break; } while ( 1 ); GrSetMode( GR_default_text ); return 0; }; rgds Chris