109 lines
2.9 KiB
C
109 lines
2.9 KiB
C
//
|
|
// Copyright(C) 1993-1996 Id Software, Inc.
|
|
// Copyright(C) 2005-2014 Simon Howard
|
|
//
|
|
// 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.
|
|
//
|
|
// DESCRIPTION:
|
|
// Gamma correction LUT.
|
|
// Functions to draw patches (by post) directly to screen.
|
|
// Functions to blit a block to the screen.
|
|
//
|
|
|
|
|
|
#ifndef __V_VIDEO__
|
|
#define __V_VIDEO__
|
|
|
|
#include "doomtype.h"
|
|
|
|
// Needed because we are refering to patches.
|
|
#include "v_patch.h"
|
|
|
|
//
|
|
// VIDEO
|
|
//
|
|
|
|
#define CENTERY (SCREENHEIGHT/2)
|
|
|
|
|
|
extern int dirtybox[4];
|
|
|
|
extern byte *tinttable;
|
|
|
|
// haleyjd 08/28/10: implemented for Strife support
|
|
// haleyjd 08/28/10: Patch clipping callback, implemented to support Choco
|
|
// Strife.
|
|
typedef boolean (*vpatchclipfunc_t)(patch_t *, int, int);
|
|
void V_SetPatchClipCallback(vpatchclipfunc_t func);
|
|
|
|
|
|
// Allocates buffer screens, call before R_Init.
|
|
void V_Init (void);
|
|
|
|
// Draw a block from the specified source screen to the screen.
|
|
|
|
void V_CopyRect(int srcx, int srcy, byte *source,
|
|
int width, int height,
|
|
int destx, int desty);
|
|
|
|
void V_DrawPatch(int x, int y, patch_t *patch);
|
|
void V_DrawPatchFlipped(int x, int y, patch_t *patch);
|
|
void V_DrawTLPatch(int x, int y, patch_t *patch);
|
|
void V_DrawAltTLPatch(int x, int y, patch_t * patch);
|
|
void V_DrawShadowedPatch(int x, int y, patch_t *patch);
|
|
void V_DrawXlaPatch(int x, int y, patch_t * patch); // villsa [STRIFE]
|
|
void V_DrawPatchDirect(int x, int y, patch_t *patch);
|
|
|
|
// Draw a linear block of pixels into the view buffer.
|
|
|
|
void V_DrawBlock(int x, int y, int width, int height, byte *src);
|
|
|
|
void V_MarkRect(int x, int y, int width, int height);
|
|
|
|
void V_DrawFilledBox(int x, int y, int w, int h, int c);
|
|
void V_DrawHorizLine(int x, int y, int w, int c);
|
|
void V_DrawVertLine(int x, int y, int h, int c);
|
|
void V_DrawBox(int x, int y, int w, int h, int c);
|
|
|
|
// Draw a raw screen lump
|
|
|
|
void V_DrawRawScreen(byte *raw);
|
|
|
|
// Temporarily switch to using a different buffer to draw graphics, etc.
|
|
|
|
void V_UseBuffer(byte *buffer);
|
|
|
|
// Return to using the normal screen buffer to draw graphics.
|
|
|
|
void V_RestoreBuffer(void);
|
|
|
|
// Save a screenshot of the current screen to a file, named in the
|
|
// format described in the string passed to the function, eg.
|
|
// "DOOM%02i.pcx"
|
|
|
|
void V_ScreenShot(char *format);
|
|
|
|
// Load the lookup table for translucency calculations from the TINTTAB
|
|
// lump.
|
|
|
|
void V_LoadTintTable(void);
|
|
|
|
// villsa [STRIFE]
|
|
// Load the lookup table for translucency calculations from the XLATAB
|
|
// lump.
|
|
|
|
void V_LoadXlaTable(void);
|
|
|
|
void V_DrawMouseSpeedBox(int speed);
|
|
|
|
#endif
|
|
|