mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-04 02:02:06 +00:00
152 lines
3 KiB
C
152 lines
3 KiB
C
// SONIC ROBO BLAST 2
|
|
//-----------------------------------------------------------------------------
|
|
// Copyright (C) 2022-2023 by Sonic Team Junior.
|
|
//
|
|
// This program is free software distributed under the
|
|
// terms of the GNU General Public License, version 2.
|
|
// See the 'LICENSE' file for more details.
|
|
//-----------------------------------------------------------------------------
|
|
/// \file lua_hudlib_drawlist.h
|
|
/// \brief a data structure for managing cached drawlists for the Lua hud lib
|
|
|
|
// The idea behinds this module is to cache drawcall information into an ordered
|
|
// list to repeat the same draw operations in later frames. It's used to ensure
|
|
// that the HUD hooks from Lua are called at precisely 35hz to avoid problems
|
|
// with variable framerates in existing Lua addons.
|
|
|
|
#ifndef __LUA_HUDLIB_DRAWLIST__
|
|
#define __LUA_HUDLIB_DRAWLIST__
|
|
|
|
#include "doomtype.h"
|
|
#include "r_defs.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct huddrawlist_s *huddrawlist_h;
|
|
|
|
// Create a new drawlist. Returns a handle to it.
|
|
huddrawlist_h LUA_HUD_CreateDrawList(void);
|
|
// Clears the draw list.
|
|
void LUA_HUD_ClearDrawList(huddrawlist_h list);
|
|
// Destroys the drawlist, invalidating the given handle
|
|
void LUA_HUD_DestroyDrawList(huddrawlist_h list);
|
|
boolean LUA_HUD_IsDrawListValid(huddrawlist_h list);
|
|
|
|
void LUA_HUD_AddDraw(
|
|
huddrawlist_h list,
|
|
INT32 x,
|
|
INT32 y,
|
|
patch_t *patch,
|
|
INT32 flags,
|
|
UINT8 *colormap
|
|
);
|
|
void LUA_HUD_AddDrawScaled(
|
|
huddrawlist_h list,
|
|
fixed_t x,
|
|
fixed_t y,
|
|
fixed_t scale,
|
|
patch_t *patch,
|
|
INT32 flags,
|
|
UINT8 *colormap
|
|
);
|
|
void LUA_HUD_AddDrawStretched(
|
|
huddrawlist_h list,
|
|
fixed_t x,
|
|
fixed_t y,
|
|
fixed_t hscale,
|
|
fixed_t vscale,
|
|
patch_t *patch,
|
|
INT32 flags,
|
|
UINT8 *colormap
|
|
);
|
|
void LUA_HUD_AddDrawCropped(
|
|
huddrawlist_h list,
|
|
fixed_t x,
|
|
fixed_t y,
|
|
fixed_t hscale,
|
|
fixed_t vscale,
|
|
patch_t *patch,
|
|
INT32 flags,
|
|
UINT8 *colormap,
|
|
fixed_t sx,
|
|
fixed_t sy,
|
|
fixed_t w,
|
|
fixed_t h
|
|
);
|
|
void LUA_HUD_AddDrawNum(
|
|
huddrawlist_h list,
|
|
INT32 x,
|
|
INT32 y,
|
|
INT32 num,
|
|
INT32 flags
|
|
);
|
|
void LUA_HUD_AddDrawPaddedNum(
|
|
huddrawlist_h list,
|
|
INT32 x,
|
|
INT32 y,
|
|
INT32 num,
|
|
INT32 digits,
|
|
INT32 flags
|
|
);
|
|
void LUA_HUD_AddDrawFill(
|
|
huddrawlist_h list,
|
|
INT32 x,
|
|
INT32 y,
|
|
INT32 w,
|
|
INT32 h,
|
|
INT32 c
|
|
);
|
|
void LUA_HUD_AddDrawString(
|
|
huddrawlist_h list,
|
|
fixed_t x,
|
|
fixed_t y,
|
|
const char *str,
|
|
INT32 flags,
|
|
INT32 align
|
|
);
|
|
void LUA_HUD_AddDrawNameTag(
|
|
huddrawlist_h list,
|
|
INT32 x,
|
|
INT32 y,
|
|
const char *str,
|
|
INT32 flags,
|
|
UINT16 basecolor,
|
|
UINT16 outlinecolor,
|
|
UINT8 *basecolormap,
|
|
UINT8 *outlinecolormap
|
|
);
|
|
void LUA_HUD_AddDrawScaledNameTag(
|
|
huddrawlist_h list,
|
|
fixed_t x,
|
|
fixed_t y,
|
|
const char *str,
|
|
INT32 flags,
|
|
fixed_t scale,
|
|
UINT16 basecolor,
|
|
UINT16 outlinecolor,
|
|
UINT8 *basecolormap,
|
|
UINT8 *outlinecolormap
|
|
);
|
|
void LUA_HUD_AddDrawLevelTitle(
|
|
huddrawlist_h list,
|
|
INT32 x,
|
|
INT32 y,
|
|
const char *str,
|
|
INT32 flags
|
|
);
|
|
void LUA_HUD_AddFadeScreen(
|
|
huddrawlist_h list,
|
|
UINT16 color,
|
|
UINT8 strength
|
|
);
|
|
|
|
// Draws the given draw list
|
|
void LUA_HUD_DrawList(huddrawlist_h list);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // __LUA_HUDLIB_DRAWLIST__
|