home *** CD-ROM | disk | FTP | other *** search
/ Monster Disc 2: The Best of 1992 / MONSTER2.ISO / prog / djgpp / cbgrx102.a01 / CONTRIB / LIBGRX / SRC / LAYOUT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-12  |  1.7 KB  |  67 lines

  1. /**
  2.  ** LAYOUT.C
  3.  **
  4.  **  Copyright (C) 1992, Csaba Biegl
  5.  **    820 Stirrup Dr, Nashville, TN, 37221
  6.  **    csaba@vuse.vanderbilt.edu
  7.  **
  8.  **  This file is distributed under the terms listed in the document
  9.  **  "copying.cb", available from the author at the address above.
  10.  **  A copy of "copying.cb" should accompany this file; if not, a copy
  11.  **  should be available from where this file was obtained.  This file
  12.  **  may not be distributed without a verbatim copy of "copying.cb".
  13.  **  You should also have received a copy of the GNU General Public
  14.  **  License along with this program (it is in the file "copying");
  15.  **  if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  16.  **  Cambridge, MA 02139, USA.
  17.  **
  18.  **  This program is distributed in the hope that it will be useful,
  19.  **  but WITHOUT ANY WARRANTY; without even the implied warranty of
  20.  **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21.  **  GNU General Public License for more details.
  22.  **/
  23.  
  24. #include "grx.h"
  25. #include "libgrx.h"
  26.  
  27. int GrLineOffset(int width)
  28. {
  29.     if(width > 0) switch(_GrNumColors) {
  30. #if (GRXPLANES & 16)
  31.       case 32768:
  32.         return(width << 1);
  33. #endif
  34.       case 256:
  35.         if(_GrDriverIndex == MODE_X_DRIVER)
  36.         return((width + 3) >> 2);
  37.         return(width);
  38.       case 16:
  39.       case 2:
  40.         return((width + 7) >> 3);
  41.     }
  42.     return(0);
  43. }
  44.  
  45. int GrNumPlanes(void)
  46. {
  47.     switch(_GrNumColors) {
  48.       case 16:
  49.         return(4);
  50.       case 256:
  51.         if(_GrDriverIndex == MODE_X_DRIVER) return(4);
  52.       default:
  53.         return(1);
  54.     }
  55. }
  56.  
  57. long GrPlaneSize(int w,int h)
  58. {
  59.     return((h > 0) ? ((long)GrLineOffset(w) * (long)h) : 0L);
  60. }
  61.  
  62. long GrContextSize(int w,int h)
  63. {
  64.     return(GrPlaneSize(w,h) * (long)GrNumPlanes());
  65. }
  66.  
  67.