home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_08_08 / 8n08057a < prev    next >
Text File  |  1990-07-18  |  3KB  |  94 lines

  1.  
  2. Listing 1
  3.  
  4. /* a few defines that make this more readable */
  5. #define VRES config.mode.disp_vres
  6. #define HRES config.mode.disp_hres
  7. #define CHAR_WIDE font.charwide
  8. #define CHAR_HIGH font.charhigh
  9.  
  10. integer opengraphics()
  11. {
  12.   integer ret_code;
  13.   integer status = 1;
  14.   integer screens;
  15.   
  16.   screens = scrnparams[0];
  17.   
  18.   /* init the TIGA interface */
  19.   if (!set_videomode(TIGA, INIT_GLOBALS | CLR_SCREEN))
  20.     {
  21.       /* tell them we just couldn't init the card */
  22.       cputs("failed in set_videomode()\n\r");
  23.       status = 13;
  24.     }
  25.   else
  26.     if ((ret_code = install_primitives()) < 0)
  27.       {
  28.         cputs("failed in install_primitives()\n\r");
  29.         status = 12;
  30.       }
  31.   
  32.   if (status == 1)
  33.     {
  34.       /* init global variables */
  35.       get_config(&config);
  36.       get_fontinfo(0, &font);
  37.       dispcolors = (integer)config.mode.palet_size - 1;
  38.       xdots = HRES - 1;
  39.       ydots = VRES - 1;
  40.       maxgrrow = VRES / CHAR_HIGH;
  41.       maxgrcol = HRES / CHAR_WIDE;
  42.       gdrawmode = REPLACE;
  43.       
  44.       set_textattr( "%1a", 0, 0 );
  45.  
  46.       /* set up the viewport struct so VCAD knows how big
  47.          this card is... */
  48.       if (screens == 1)
  49.         {
  50.           sharedscreen = TRUE;
  51.           /*  Setup viewport related parameters  */
  52.           viewport.vpxl = 10 * CHAR_WIDE;
  53.           viewport.vpxr = xdots;
  54.           viewport.vpyb = 4 * CHAR_HIGH;
  55.           viewport.vpyt = ydots;
  56.           /*  Viewport extremes in character (row,col)
  57.               coordinates  */
  58.           viewport.vtxl = 10;
  59.           viewport.vtxr = maxgrcol;
  60.           viewport.vtyb = maxgrrow - 4;
  61.           viewport.vtyt = 0;
  62.         }
  63.       else
  64.         { /* 2 screen */
  65.           sharedscreen = FALSE;
  66.           /*  Setup viewport related parameters  */
  67.           viewport.vpxl = 0;
  68.           viewport.vpxr = xdots;
  69.           viewport.vpyb = 0;
  70.           viewport.vpyt = ydots;
  71.           /*  Viewport extremes in character (row,col)
  72.               coordinates  */
  73.           viewport.vtxl = 0;
  74.           viewport.vtxr = maxgrcol;
  75.           viewport.vtyb = maxgrrow;
  76.           viewport.vtyt = 0;
  77.         }
  78.       
  79.       /* set up the clipping rect */
  80.       set_clip_rect(
  81.                     viewport.vpxr - viewport.vpxl,
  82.                     viewport.vpyt - viewport.vpyb,
  83.                     viewport.vpxl,
  84.                     ydots-viewport.vpyt);
  85.       
  86.       clear_screen(0);
  87.       if (sharedscreen) dispstate = GRAPHICS;
  88.       else dispstate = TEXT;
  89.       
  90.       graphwasinit = TRUE;
  91.     }
  92.   return((integer) (status));
  93. } /* opengraphics */
  94.