home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / his / omake / vsync.c < prev    next >
C/C++ Source or Header  |  1995-06-20  |  2KB  |  63 lines

  1. /***********************************************************************
  2.  
  3.                            垂直同期サンプル
  4.  
  5.           1995.1.17                                by ちょもらんま
  6.  
  7. ***********************************************************************/
  8.  
  9. #include <stdio.h>
  10. #include <egb.h>
  11.  
  12. #define EGB_workSize 1536
  13. #define EGB_paraSize 32
  14.  
  15. char EGB_work[ EGB_workSize ];
  16. char EGB_para[ EGB_paraSize ];
  17.  
  18. #define BAR_size 10
  19. #define BAR_num  640/BAR_size
  20.  
  21. #define WaitCount 50000
  22.  
  23.  
  24. void main( void )
  25. {
  26.     int i,j,n;
  27.  
  28.     for( n = 0 ; n < 2 ; n++ )
  29.     {
  30.  
  31.         /******************** EGB初期化 ***********************/
  32.         EGB_init( EGB_work , EGB_workSize );
  33.         EGB_paintMode( EGB_work , 0x20 ); /* 面塗り */
  34.  
  35.         /**************** 画面を左から埋めてゆく *****************/
  36.         for( i = 0 ; i < BAR_num ; i++ )
  37.         {
  38.             /******************* ウェイト *******************/
  39.             switch( n )
  40.             {
  41.                 /*-------------- ソフトウェアタイマの場合 -----------*/
  42.                 case 0:
  43.                     for( j = 0 ; j < WaitCount ; j++ );
  44.                     break;
  45.  
  46.                 /*---------------- 垂直同期待ちの場合 ---------------*/
  47.                 case 1:
  48.                     DWORD( EGB_para + 0 ) = 0; /* 設定パレット数0 */
  49.                     EGB_palette( EGB_work , 1 , EGB_para );
  50.                     break;
  51.             }
  52.  
  53.             /******************* 棒を書く*******************/
  54.             WORD( EGB_para + 0 ) = i * BAR_size;
  55.             WORD( EGB_para + 2 ) = 0;
  56.             WORD( EGB_para + 4 ) = i * BAR_size + BAR_size - 1;
  57.             WORD( EGB_para + 6 ) = 479;
  58.             EGB_rectangle( EGB_work , EGB_para );
  59.         }
  60.  
  61.         getchar();
  62.     }
  63. }