User:Monster Iestyn/Source Code Documentation/v_video.h

From SRB2 Wiki
Jump to navigation Jump to search
This article or section is incomplete. It doesn't have all of the necessary core information on this topic. Please help the SRB2 Wiki by finishing this article.
Online link GitHub entry
File type C header file
#include guard __V_VIDEO__

Includes

Externs

Data name Data type Non-extern location(s) Description
*screens[5] UINT8 v_video.c Array storing up to 5 screen buffers:
  • screens[0] – main display window
  • screens[1] – buffer for storing last frame of gameplay (for Single Player/Coop tally screen background), temporary buffer for the FOF plane "ripple" effect (FF_RIPPLE)
  • screens[2] – screenshot buffer, GIF/APNG movie frame buffer
  • screens[3] – buffer for storing a saved "before" screen for a screen fade
  • screens[4] – buffer for storing a saved "after" screen for a screen fade, temporary buffer for image post-processing effects

Each screen buffer has a size of vid.rowbytes × vid.height bytes.

cv_ticrate
cv_constextsize
cv_globalgamma
cv_globalsaturation
cv_rhue
cv_yhue
cv_ghue
cv_chue
cv_bhue
cv_mhue
cv_rgamma
cv_ygamma
cv_ggamma
cv_cgamma
cv_bgamma
cv_mgamma
cv_rsaturation
cv_ysaturation
cv_gsaturation
cv_csaturation
cv_bsaturation
cv_msaturation
cv_allcaps
consvar_t v_video.c showfps, con_textsize, gamma, saturation, rhue, yhue, ghue, chue, bhue, mhue, rgamma, ygamma, ggamma, cgamma, bgamma, mgamma, rsaturation, ysaturation, gsaturation, csaturation, bsaturation, msaturation, allcaps console variable structs
*pMasterPalette RGBA_t v_video.c A local copy of the current palette, storing the RGB values for all 256 colors in the palette.
*pLocalPalette RGBA_t v_video.c

Function prototypes

Function name Return type Params Defined in Description
V_Init void none v_video.c
V_SetPalette void INT32 palettenum v_video.c
V_SetPaletteLump void const char *pal v_video.c
R_GetPalname const char * UINT16 num v_video.c
GetPalette const char * none v_video.c
V_DrawStretchyFixedPatch void fixed_t x,
fixed_t y,
fixed_t pscale,
fixed_t vscale,
INT32 scrn,
patch_t *patch,
const UINT8 *colormap
v_video.c
V_DrawCroppedPatch void fixed_t x,
fixed_t y,
fixed_t pscale,
INT32 scrn,
patch_t *patch,
fixed_t sx,
fixed_t sy,
fixed_t w,
fixed_t h
v_video.c
V_DrawContinueIcon void INT32 x,
INT32 y,
INT32 flags,
INT32 skinnum,
UINT8 skincolor
v_video.c
V_DrawBlock void INT32 x,
INT32 y,
INT32 scrn,
INT32 width,
INT32 height,
const UINT8 *src
v_video.c
V_DrawScaledPic void INT32 px1,
INT32 py1,
INT32 scrn,
INT32 lumpnum
v_video.c
V_DrawFill void INT32 x,
INT32 y,
INT32 w,
INT32 h,
INT32 c
v_video.c
V_DrawFillConsoleMap void INT32 x,
INT32 y,
INT32 w,
INT32 h,
INT32 c
v_video.c
V_DrawFlatFill void INT32 x,
INT32 y,
INT32 w,
INT32 h,
lumpnum_t flatnum
v_video.c
V_DrawFadeScreen void UINT16 color,
UINT8 strength
v_video.c
V_DrawFadeFill void INT32 x,
INT32 y,
INT32 w,
INT32 h,
INT32 c,
UINT16 color,
UINT8 strength
v_video.c
V_DrawFadeConsBack void INT32 plines v_video.c
V_DrawPromptBack void INT32 boxheight,
INT32 color
v_video.c
V_DrawCharacter void INT32 x,
INT32 y,
INT32 c,
boolean lowercaseallowed
v_video.c
V_DrawChatCharacter void INT32 x,
INT32 y,
INT32 c,
boolean lowercaseallowed,
UINT8 *colormap
v_video.c
V_GetStringColormap UINT8 * INT32 colorflags v_video.c
V_DrawLevelTitle void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_WordWrap char * INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_GetStringColormap UINT8 * INT32 colorflags v_video.c (duplicate)
V_DrawString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawCenteredString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawRightAlignedString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawSmallString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawRightAlignedSmallString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawThinString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawRightAlignedThinString void INT32 x,
INT32 y,
INT32 option,
const char *string
v_video.c
V_DrawStringAtFixed void fixed_t x,
fixed_t y,
INT32 option,
const char *string
v_video.c
V_DrawTallNum void INT32 x,
INT32 y,
INT32 flags,
INT32 num
v_video.c
V_DrawPaddedTallNum void INT32 x,
INT32 y,
INT32 flags,
INT32 num,
INT32 digits
v_video.c
V_DrawLevelActNum void INT32 x,
INT32 y,
INT32 flags,
INT32 num
v_video.c
V_LevelNameWidth INT32 const char *string v_video.c
V_LevelNameHeight INT32 const char *string v_video.c
V_LevelActNumWidth INT32 INT32 num v_video.c
V_DrawCreditString void fixed_t x,
fixed_t y,
INT32 option,
const char *string
v_video.c
V_CreditStringWidth INT32 const char *string v_video.c
V_DrawNameTag void INT32 x,
INT32 y,
INT32 option,
fixed_t scale,
UINT8 *basecolormap,
UINT8 *outlinecolormap,
const char *string
v_video.c
V_CountNameTagLines INT32 const char *string v_video.c
V_NameTagWidth INT32 const char *string v_video.c
V_StringWidth INT32 const char *string,
INT32 option
v_video.c
V_SmallStringWidth INT32 const char *string,
INT32 option
v_video.c
V_ThinStringWidth INT32 const char *string,
INT32 option
v_video.c
V_DoPostProcessor void INT32 view,
postimg_t type,
INT32 param
v_video.c
V_DrawPatchFill void patch_t *pat v_video.c
VID_BlitLinearScreen void const UINT8 *srcptr,
UINT8 *destptr,
INT32 width,
INT32 height,
size_t srcrowbytes,
size_t destrowbytes
v_video.c

Macros

Macro Defined as Description
V_GetColor(color) (pLocalPalette[color&0xFF])
V_PARAMMASK 0x000000FF
V_SCALEPATCHSHIFT 8
V_SCALEPATCHMASK 0x00000300
V_NOSCALEPATCH 0x00000100
V_SMALLSCALEPATCH 0x00000200
V_MEDSCALEPATCH 0x00000300
V_SPACINGMASK 0x00000C00
V_6WIDTHSPACE 0x00000400
V_OLDSPACING 0x00000800
V_MONOSPACE 0x00000C00
V_CHARCOLORSHIFT 12
V_CHARCOLORMASK 0x0000F000
V_MAGENTAMAP 0x00001000
V_YELLOWMAP 0x00002000
V_GREENMAP 0x00003000
V_BLUEMAP 0x00004000
V_REDMAP 0x00005000
V_GRAYMAP 0x00006000
V_ORANGEMAP 0x00007000
V_SKYMAP 0x00008000
V_PURPLEMAP 0x00009000
V_AQUAMAP 0x0000A000
V_PERIDOTMAP 0x0000B000
V_AZUREMAP 0x0000C000
V_BROWNMAP 0x0000D000
V_ROSYMAP 0x0000E000
V_INVERTMAP 0x0000A000
V_ALPHASHIFT 16
V_ALPHAMASK 0x000F0000
V_10TRANS 0x00010000
V_20TRANS 0x00020000
V_30TRANS 0x00030000
V_40TRANS 0x00040000
V_TRANSLUCENT 0x00050000
V_60TRANS 0x00060000
V_70TRANS 0x00070000
V_80TRANS 0x00080000
V_90TRANS 0x00090000
V_HUDTRANSHALF 0x000D0000
V_HUDTRANS 0x000E0000
V_HUDTRANSDOUBLE 0x000F0000
V_USERTRANSHALF
((10-(cv_translucenthud.value/2))<<V_ALPHASHIFT)
V_USERHUDTRANS
((10-cv_translucenthud.value)<<V_ALPHASHIFT)
V_USERTRANSDOUBLE
((10-min(cv_translucenthud.value*2, 10))<<V_ALPHASHIFT)
V_AUTOFADEOUT 0x00100000
V_RETURN8 0x00200000
V_OFFSET 0x00400000
V_ALLOWLOWERCASE 0x00800000 (strings only)
V_FLIP 0x00800000 (patches only)
V_CENTERNAMETAG 0x00800000 (nametags only)
V_SNAPTOTOP 0x01000000
V_SNAPTOBOTTOM 0x02000000
V_SNAPTOLEFT 0x04000000
V_SNAPTORIGHT 0x08000000
V_WRAPX 0x10000000
V_WRAPY 0x20000000
V_NOSCALESTART 0x40000000
V_PERPLAYER 0x80000000

Patch drawing function macros

Macro Defined as Description
V_DrawPatch(x,y,s,p)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT, s|V_NOSCALESTART|V_NOSCALEPATCH, p, NULL)
V_DrawTranslucentMappedPatch(x,y,s,p,c)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT, s, p, c)
V_DrawSmallTranslucentMappedPatch(x,y,s,p,c)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/2, s, p, c)
V_DrawTinyTranslucentMappedPatch(x,y,s,p,c)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/4, s, p, c)
V_DrawMappedPatch(x,y,s,p,c)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT, s, p, c)
V_DrawSmallMappedPatch(x,y,s,p,c)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/2, s, p, c)
V_DrawTinyMappedPatch(x,y,s,p,c)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/4, s, p, c)
V_DrawScaledPatch(x,y,s,p)
V_DrawFixedPatch((x)*FRACUNIT, (y)<<FRACBITS, FRACUNIT, s, p, NULL)
V_DrawSmallScaledPatch(x,y,s,p)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/2, s, p, NULL)
V_DrawTinyScaledPatch(x,y,s,p)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/4, s, p, NULL)
V_DrawTranslucentPatch(x,y,s,p)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT, s, p, NULL)
V_DrawSmallTranslucentPatch(x,y,s,p)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/2, s, p, NULL)
V_DrawTinyTranslucentPatch(x,y,s,p)
V_DrawFixedPatch((x)<<FRACBITS, (y)<<FRACBITS, FRACUNIT/4, s, p, NULL)
V_DrawSciencePatch(x,y,s,p,sc)
V_DrawFixedPatch(x,y,sc,s,p,NULL)
V_DrawFixedPatch(x,y,sc,s,p,c)
V_DrawStretchyFixedPatch(x,y,sc,sc,s,p,c)