2016-03-01 15:47:10 +00:00
|
|
|
// 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:
|
|
|
|
// Rendering of moving objects, sprites.
|
|
|
|
//
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __R_THINGS__
|
|
|
|
#define __R_THINGS__
|
|
|
|
|
2016-12-30 06:15:10 +00:00
|
|
|
#include "r_visible_sprite.h"
|
2016-03-01 15:47:10 +00:00
|
|
|
|
2016-12-01 01:38:32 +00:00
|
|
|
struct particle_t;
|
|
|
|
struct FVoxel;
|
|
|
|
|
2016-12-22 04:20:53 +00:00
|
|
|
namespace swrenderer
|
2016-12-01 01:38:32 +00:00
|
|
|
{
|
|
|
|
|
2016-12-17 09:11:52 +00:00
|
|
|
void R_DrawParticle (vissprite_t *);
|
2016-05-30 03:52:15 +00:00
|
|
|
|
2016-03-01 15:47:10 +00:00
|
|
|
void R_ProjectParticle (particle_t *, const sector_t *sector, int shade, int fakeside);
|
|
|
|
|
|
|
|
// Constant arrays used for psprite clipping
|
|
|
|
// and initializing clipping.
|
|
|
|
extern short zeroarray[MAXWIDTH];
|
|
|
|
extern short screenheightarray[MAXWIDTH];
|
|
|
|
|
|
|
|
// vars for R_DrawMaskedColumn
|
|
|
|
extern short* mfloorclip;
|
|
|
|
extern short* mceilingclip;
|
2016-04-16 01:30:05 +00:00
|
|
|
extern double spryscale;
|
|
|
|
extern double sprtopscreen;
|
2016-03-01 15:47:10 +00:00
|
|
|
extern bool sprflipvert;
|
|
|
|
|
2016-04-15 01:09:38 +00:00
|
|
|
extern double pspritexscale;
|
|
|
|
extern double pspritexiscale;
|
|
|
|
extern double pspriteyscale;
|
2016-03-01 15:47:10 +00:00
|
|
|
|
|
|
|
extern FTexture *WallSpriteTile;
|
|
|
|
|
|
|
|
|
2016-12-25 07:01:21 +00:00
|
|
|
void R_DrawMaskedColumn (FTexture *texture, fixed_t column, bool unmasked = false);
|
|
|
|
void R_WallSpriteColumn ();
|
2016-03-01 15:47:10 +00:00
|
|
|
|
|
|
|
void R_CacheSprite (spritedef_t *sprite);
|
2016-04-11 08:46:30 +00:00
|
|
|
void R_SortVisSprites (int (*compare)(const void *, const void *), size_t first);
|
2016-03-01 15:47:10 +00:00
|
|
|
void R_AddSprites (sector_t *sec, int lightlevel, int fakeside);
|
|
|
|
void R_DrawSprites ();
|
|
|
|
void R_ClearSprites ();
|
|
|
|
void R_DrawMasked ();
|
|
|
|
void R_DrawRemainingPlayerSprites ();
|
|
|
|
|
|
|
|
void R_CheckOffscreenBuffer(int width, int height, bool spansonly);
|
|
|
|
|
|
|
|
enum { DVF_OFFSCREEN = 1, DVF_SPANSONLY = 2, DVF_MIRRORED = 4 };
|
|
|
|
|
|
|
|
void R_ClipVisSprite (vissprite_t *vis, int xl, int xh);
|
|
|
|
|
2016-12-01 01:38:32 +00:00
|
|
|
}
|
2016-03-01 15:47:10 +00:00
|
|
|
|
|
|
|
#endif
|