2014-03-15 16:59:03 +00:00
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
// Copyright (C) 1998-2000 by DooM Legacy Team.
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
//-----------------------------------------------------------------------------
/// \file
/// \brief 3D render mode functions
# ifndef __HWR_MAIN_H__
# define __HWR_MAIN_H__
# include "hw_data.h"
# include "hw_defs.h"
# include "../am_map.h"
# include "../d_player.h"
# include "../r_defs.h"
// Startup & Shutdown the hardware mode renderer
void HWR_Startup ( void ) ;
void HWR_Shutdown ( void ) ;
void HWR_drawAMline ( const fline_t * fl , INT32 color ) ;
void HWR_FadeScreenMenuBack ( UINT32 color , INT32 height ) ;
void HWR_DrawConsoleBack ( UINT32 color , INT32 height ) ;
2014-03-20 20:13:15 +00:00
void HWR_RenderSkyboxView ( INT32 viewnumber , player_t * player ) ;
2014-03-15 16:59:03 +00:00
void HWR_RenderPlayerView ( INT32 viewnumber , player_t * player ) ;
void HWR_DrawViewBorder ( INT32 clearlines ) ;
void HWR_DrawFlatFill ( INT32 x , INT32 y , INT32 w , INT32 h , lumpnum_t flatlumpnum ) ;
UINT8 * HWR_GetScreenshot ( void ) ;
boolean HWR_Screenshot ( const char * lbmname ) ;
void HWR_InitTextureMapping ( void ) ;
void HWR_SetViewSize ( void ) ;
void HWR_DrawPatch ( GLPatch_t * gpatch , INT32 x , INT32 y , INT32 option ) ;
2014-03-21 18:42:55 +00:00
void HWR_DrawFixedPatch ( GLPatch_t * gpatch , fixed_t x , fixed_t y , fixed_t scale , INT32 option , const UINT8 * colormap ) ;
void HWR_DrawCroppedPatch ( GLPatch_t * gpatch , fixed_t x , fixed_t y , fixed_t scale , INT32 option , fixed_t sx , fixed_t sy , fixed_t w , fixed_t h ) ;
2014-03-19 23:10:37 +00:00
void HWR_DrawCroppedPatch ( GLPatch_t * gpatch , fixed_t x , fixed_t y , INT32 option , fixed_t scale , fixed_t sx , fixed_t sy , fixed_t w , fixed_t h ) ;
2014-03-15 16:59:03 +00:00
void HWR_MakePatch ( const patch_t * patch , GLPatch_t * grPatch , GLMipmap_t * grMipmap , boolean makebitmap ) ;
void HWR_CreatePlanePolygons ( INT32 bspnum ) ;
void HWR_CreateStaticLightmaps ( INT32 bspnum ) ;
void HWR_PrepLevelCache ( size_t pnumtextures ) ;
void HWR_DrawFill ( INT32 x , INT32 y , INT32 w , INT32 h , INT32 color ) ;
2018-07-31 09:10:02 +00:00
void HWR_DrawConsoleFill ( INT32 x , INT32 y , INT32 w , INT32 h , UINT32 color , INT32 options ) ; // Lat: separate flags from color since color needs to be an uint to work right.
2014-03-15 16:59:03 +00:00
void HWR_DrawPic ( INT32 x , INT32 y , lumpnum_t lumpnum ) ;
void HWR_AddCommands ( void ) ;
void HWR_CorrectSWTricks ( void ) ;
void transform ( float * cx , float * cy , float * cz ) ;
FBITFIELD HWR_TranstableToAlpha ( INT32 transtablenum , FSurfaceInfo * pSurf ) ;
void HWR_SetPaletteColor ( INT32 palcolor ) ;
INT32 HWR_GetTextureUsed ( void ) ;
void HWR_DoPostProcessor ( player_t * player ) ;
void HWR_StartScreenWipe ( void ) ;
void HWR_EndScreenWipe ( void ) ;
void HWR_DrawIntermissionBG ( void ) ;
2014-09-04 00:35:29 +00:00
void HWR_DoWipe ( UINT8 wipenum , UINT8 scrnnum ) ;
2014-11-14 00:06:38 +00:00
void HWR_MakeScreenFinalTexture ( void ) ;
void HWR_DrawScreenFinalTexture ( int width , int height ) ;
2014-03-15 16:59:03 +00:00
// This stuff is put here so MD2's can use them
UINT32 HWR_Lighting ( INT32 light , UINT32 color , UINT32 fadecolor , boolean fogblockpoly , boolean plane ) ;
FUNCMATH UINT8 LightLevelToLum ( INT32 l ) ;
extern CV_PossibleValue_t granisotropicmode_cons_t [ ] ;
2016-04-21 17:50:30 +00:00
# ifdef ALAM_LIGHTING
2014-03-15 16:59:03 +00:00
extern consvar_t cv_grdynamiclighting ;
extern consvar_t cv_grstaticlighting ;
extern consvar_t cv_grcoronas ;
extern consvar_t cv_grcoronasize ;
2016-04-21 17:50:30 +00:00
# endif
2014-03-15 16:59:03 +00:00
extern consvar_t cv_grfov ;
extern consvar_t cv_grmd2 ;
extern consvar_t cv_grfog ;
extern consvar_t cv_grfogcolor ;
extern consvar_t cv_grfogdensity ;
extern consvar_t cv_grsoftwarefog ;
extern consvar_t cv_grgammared ;
extern consvar_t cv_grgammagreen ;
extern consvar_t cv_grgammablue ;
extern consvar_t cv_grfiltermode ;
extern consvar_t cv_granisotropicmode ;
extern consvar_t cv_grcorrecttricks ;
extern consvar_t cv_voodoocompatibility ;
extern consvar_t cv_grfovchange ;
extern consvar_t cv_grsolvetjoin ;
extern float gr_viewwidth , gr_viewheight , gr_baseviewwindowy ;
extern float gr_viewwindowx , gr_basewindowcentery ;
// BP: big hack for a test in lighting ref : 1249753487AB
extern fixed_t * hwbbox ;
extern FTransform atransform ;
typedef struct
{
wallVert3D floorVerts [ 4 ] ;
FSurfaceInfo Surf ;
INT32 texnum ;
INT32 blend ;
INT32 drawcount ;
} floorinfo_t ;
# endif