From 57fdd82018e8f3449987cca19f3a41f630d7d62e Mon Sep 17 00:00:00 2001 From: Leonard Kugis Date: Mon, 5 Oct 2026 01:36:32 +0200 Subject: Implemented PuM pipeline --- WinQuake/pum_bridge.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 WinQuake/pum_bridge.h (limited to 'WinQuake/pum_bridge.h') diff --git a/WinQuake/pum_bridge.h b/WinQuake/pum_bridge.h new file mode 100644 index 0000000..96e1d40 --- /dev/null +++ b/WinQuake/pum_bridge.h @@ -0,0 +1,51 @@ +/* +============================================================================== +PUM_BRIDGE.H -- bridge between the renderer and the PuM driver +============================================================================== +*/ + +#ifndef PUM_BRIDGE_H +#define PUM_BRIDGE_H + +#ifndef byte +typedef unsigned char byte; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef RENDER_PUM + +int PUM_Init (void); +void PUM_Shutdown(void); +int PUM_Active (void); + +void PUM_BitwiseAnd (const byte *a, const byte *b, byte *dst, int num_bytes); +void PUM_BitwiseOr (const byte *a, const byte *b, byte *dst, int num_bytes); +void PUM_BitwiseXor (const byte *a, const byte *b, byte *dst, int num_bytes); +void PUM_BitwiseNot (const byte *a, byte *dst, int num_bytes); + +void PUM_LightMaskAndTexel (byte *dst, const byte *src, const byte *mask, + int num_bytes); +void PUM_EdgeSpanInit (byte *dst, const byte *clear, int num_bytes); + +#else /* !RENDER_PUM */ + +#define PUM_Init() (0) +#define PUM_Shutdown() do { } while (0) +#define PUM_Active() (0) +#define PUM_BitwiseAnd(a,b,d,n) do { (void)(a); (void)(b); (void)(d); (void)(n); } while (0) +#define PUM_BitwiseOr(a,b,d,n) do { (void)(a); (void)(b); (void)(d); (void)(n); } while (0) +#define PUM_BitwiseXor(a,b,d,n) do { (void)(a); (void)(b); (void)(d); (void)(n); } while (0) +#define PUM_BitwiseNot(a,d,n) do { (void)(a); (void)(d); (void)(n); } while (0) +#define PUM_LightMaskAndTexel(a,b,c,n) do { (void)(a); (void)(b); (void)(c); (void)(n); } while (0) +#define PUM_EdgeSpanInit(a,b,n) do { (void)(a); (void)(b); (void)(n); } while (0) + +#endif /* RENDER_PUM */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* PUM_BRIDGE_H */ -- cgit v1.2.3