home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_01_04 / 1n04060a < prev    next >
Text File  |  1990-08-06  |  2KB  |  94 lines

  1. /* wrld2.cpp */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. #include <typedefs.hpp>
  7.  
  8. extern "C"
  9. {
  10.     #include <tiga.h>
  11.     #include <extend.h>
  12. }
  13.  
  14. #define gspMain( n, s )        \
  15.     cp_ret( USER_CP( gspWorld | 0 ), 2, _WORD(n), _STRING(s) )
  16.  
  17. int    gspWorld;
  18.  
  19. int        main( int argc, char argv[ ] )
  20. {
  21.   
  22.   if( set_videomode( TIGA, INIT | CLR_SCREEN ) )
  23.   { 
  24.     if( install_primitives( ) >= 0 )
  25.     {
  26.       gspWorld = install_rlm( "gspWrld2.rlm" );
  27.       if( gspWorld < 0 )
  28.       {
  29.         printf("ERROR: could not load gspWrld2.rlm\n");
  30.         printf("Error code = %d\n", gspWorld );
  31.         exit( 7 );
  32.       }
  33.       int ret = gspMain( 10, "   H e l l o   W o r l d   " );
  34.       printf( "Returned value = %d\n", ret );
  35.     }
  36.     else
  37.     {
  38.       printf( "ERROR: Can not load TIGA primitives.\n" );
  39.       return 1;
  40.     }
  41.     set_videomode( PREVIOUS, NO_INIT );
  42.   }
  43.   else
  44.   {
  45.     printf( "ERROR: Please install TIGA and try again.\n" );
  46.     return 2;
  47.   }
  48.   return 0;
  49. }
  50.  
  51. /* gspWrld2.c */
  52.  
  53.  
  54. #include <gsptypes.h>
  55. #include <gspglobs.h>
  56. #include <gsptiga.h>
  57.  
  58. #define XSIZE    (config.mode.disp_hres)
  59. #define YSIZE    (config.mode.disp_vres)
  60. #define    XOR    10
  61.  
  62. short        gspMain( n, s )
  63. short    n;
  64. char*    s;
  65. {
  66.   int tw;
  67.   int w, h, i;
  68.     /*    Get display size        */
  69.   set_fcolor( WHITE );
  70.   set_bcolor( BLACK );
  71.  
  72.     /*    Center message on screen    */
  73.   tw = text_width( s );
  74.   text_out( (XSIZE-tw)/2, YSIZE/2, s );
  75.  
  76.     /*    Draw n surrounding boxes    */
  77.   set_ppop( XOR );
  78.   for( i = 1; i <= n; i++ )
  79.   {
  80.     w = tw + (XSIZE-tw) * i / n;
  81.     h = YSIZE * i / n;
  82.     fill_rect( w, h, (XSIZE-w)/2, (YSIZE-h)/2 );
  83.   }
  84.   return (XSIZE+tw)/2;
  85. }
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.