home *** CD-ROM | disk | FTP | other *** search
- /* Emacs style mode select -*- C++ -*- */
- /* ----------------------------------------------------------------------------- */
- /* */
- /* $Id:$ */
- /* */
- /* Copyright (C) 1993-1996 by id Software, Inc. */
- /* */
- /* This source is available for distribution and/or modification */
- /* only under the terms of the DOOM Source Code License as */
- /* published by id Software. All rights reserved. */
- /* */
- /* The source is distributed in the hope that it will be useful, */
- /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
- /* FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License */
- /* for more details. */
- /* */
- /* DESCRIPTION: */
- /* System specific interface stuff. */
- /* */
- /* ----------------------------------------------------------------------------- */
-
-
- #ifndef __R_DRAW__
- #define __R_DRAW__
-
- #include "doomtype.h"
- #include "r_defs.h"
-
- #ifdef __GNUG__
- #pragma interface
- #endif
-
- #define MAXWIDTH 1120
- #define MAXHEIGHT 832
-
- /* status bar height at bottom of screen */
- #define SBARHEIGHT 32
-
- /* All drawing to the view buffer is accomplished in this file. */
- /* The other refresh files only know about ccordinates, */
- /* not the architecture of the frame buffer. */
- /* Conveniently, the frame buffer is a linear one, */
- /* and we need only the base address, */
- /* and the total size == width*height*depth/8., */
- /* */
-
-
- extern byte* viewimage;
- extern int viewwidth;
- extern int scaledviewwidth;
- extern int viewheight;
- extern int viewwindowx;
- extern int viewwindowy;
- extern int columnofs[MAXWIDTH];
-
- extern byte *ylookup[MAXHEIGHT];
-
- /* Color tables for different players, */
- /* translate a limited part to another */
- /* (color ramps used for suit colors). */
- /* */
- extern byte translations[3][256];
-
-
-
- extern lighttable_t* dc_colormap;
- extern int dc_x;
- extern int dc_yl;
- extern int dc_yh;
- extern fixed_t dc_iscale;
- extern fixed_t dc_texturemid;
-
- /* first pixel in a column */
- extern byte* dc_source;
- extern int dccount; /* for profiling */
-
- /* The span blitting interface. */
- /* Hook in assembler or system specific BLT */
- /* here. */
- void R_DrawColumn8 (void);
- void R_DrawColumnLow8 (void);
- void R_DrawColumn16 (void);
- void R_DrawColumnLow16 (void);
- void R_DrawColumn24 (void);
- void R_DrawColumnLow24 (void);
- void R_DrawColumn32 (void);
- void R_DrawColumnLow32 (void);
-
- /* The Spectre/Invisibility effect. */
- void R_DrawFuzzColumn8 (void);
- void R_DrawFuzzColumnLow8 (void);
- void R_DrawFuzzColumn16 (void);
- void R_DrawFuzzColumnLow16 (void);
- void R_DrawFuzzColumn24 (void);
- void R_DrawFuzzColumnLow24 (void);
- void R_DrawFuzzColumn32 (void);
- void R_DrawFuzzColumnLow32 (void);
-
- /* Draw with color translation tables, */
- /* for player sprite rendering, */
- /* Green/Red/Blue/Indigo shirts. */
- void R_DrawTranslatedColumn8 (void);
- void R_DrawTranslatedColumnLow8 (void);
- void R_DrawTranslatedColumn16 (void);
- void R_DrawTranslatedColumnLow16 (void);
- void R_DrawTranslatedColumn24 (void);
- void R_DrawTranslatedColumnLow24 (void);
- void R_DrawTranslatedColumn32 (void);
- void R_DrawTranslatedColumnLow32 (void);
-
- void R_VideoErase(unsigned ofs,int count);
-
- extern int ds_y;
- extern int ds_x1;
- extern int ds_x2;
-
- extern lighttable_t* ds_colormap;
-
- extern fixed_t ds_xfrac;
- extern fixed_t ds_yfrac;
- extern fixed_t ds_xstep;
- extern fixed_t ds_ystep;
-
- /* start of a 64*64 tile image */
- extern byte* ds_source;
-
- extern byte* translationtables;
- extern byte* dc_translation;
- extern int dscount;
-
- /* Span blitting for rows, floor/ceiling. */
- /* No Sepctre effect needed. */
- void R_DrawSpan8 (void);
- void R_DrawSpanLow8 (void);
- void R_DrawSpan16 (void);
- void R_DrawSpanLow16 (void);
- void R_DrawSpan24 (void);
- void R_DrawSpanLow24 (void);
- void R_DrawSpan32 (void);
- void R_DrawSpanLow32 (void);
-
- void R_InitBuffer
- ( int width,
- int height );
-
-
- /* Initialize color translation tables, */
- /* for player rendering etc. */
- void R_InitTranslationTables (void);
-
-
-
- /* Rendering function. */
- void R_FillBackScreen (void);
-
- /* If the view size is not full screen, draws a border around it. */
- void R_DrawViewBorder (void);
-
-
-
- #endif
- /* ----------------------------------------------------------------------------- */
- /* */
- /* $Log:$ */
- /* */
- /* ----------------------------------------------------------------------------- */
-