mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-28 20:20:43 +00:00
4ad360155f
(cherry picked from commit d2a7a87c7f39bd423fde7f8b4228082d12839583)
116 lines
4 KiB
C
116 lines
4 KiB
C
// SONIC ROBO BLAST 2
|
|
//-----------------------------------------------------------------------------
|
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
|
// Copyright (C) 1999-2019 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
|
|
/// \brief defines structures and exports for the standard GPU driver
|
|
|
|
#ifndef _HWR_DATA_
|
|
#define _HWR_DATA_
|
|
|
|
#include "../doomdef.h"
|
|
#include "../screen.h"
|
|
|
|
// ==========================================================================
|
|
// TEXTURE INFO
|
|
// ==========================================================================
|
|
|
|
//
|
|
// hw_glide.h
|
|
//
|
|
|
|
typedef long GLAspectRatio_t;
|
|
#define GR_ASPECT_LOG2_8x1 3 /* 8W x 1H */
|
|
#define GR_ASPECT_LOG2_4x1 2 /* 4W x 1H */
|
|
#define GR_ASPECT_LOG2_2x1 1 /* 2W x 1H */
|
|
#define GR_ASPECT_LOG2_1x1 0 /* 1W x 1H */
|
|
#define GR_ASPECT_LOG2_1x2 -1 /* 1W x 2H */
|
|
#define GR_ASPECT_LOG2_1x4 -2 /* 1W x 4H */
|
|
#define GR_ASPECT_LOG2_1x8 -3 /* 1W x 8H */
|
|
|
|
typedef long GLlod_t;
|
|
#define GR_LOD_LOG2_256 0x8
|
|
#define GR_LOD_LOG2_128 0x7
|
|
#define GR_LOD_LOG2_64 0x6
|
|
#define GR_LOD_LOG2_32 0x5
|
|
#define GR_LOD_LOG2_16 0x4
|
|
#define GR_LOD_LOG2_8 0x3
|
|
#define GR_LOD_LOG2_4 0x2
|
|
#define GR_LOD_LOG2_2 0x1
|
|
#define GR_LOD_LOG2_1 0x0
|
|
|
|
typedef long GLTextureFormat_t;
|
|
#define GR_TEXFMT_ALPHA_8 0x2 /* (0..0xFF) alpha */
|
|
#define GR_TEXFMT_INTENSITY_8 0x3 /* (0..0xFF) intensity */
|
|
#define GR_TEXFMT_ALPHA_INTENSITY_44 0x4
|
|
#define GR_TEXFMT_P_8 0x5 /* 8-bit palette */
|
|
#define GR_TEXFMT_RGB_565 0xa
|
|
#define GR_TEXFMT_ARGB_1555 0xb
|
|
#define GR_TEXFMT_ARGB_4444 0xc
|
|
#define GR_TEXFMT_ALPHA_INTENSITY_88 0xd
|
|
#define GR_TEXFMT_AP_88 0xe /* 8-bit alpha 8-bit palette */
|
|
#define GR_RGBA 0x6 // 32 bit RGBA !
|
|
|
|
typedef struct
|
|
{
|
|
GLlod_t smallLodLog2;
|
|
GLlod_t largeLodLog2;
|
|
GLAspectRatio_t aspectRatioLog2;
|
|
GLTextureFormat_t format;
|
|
void *data;
|
|
} GLTexInfo;
|
|
|
|
// grInfo.data holds the address of the graphics data cached in heap memory
|
|
// NULL if the texture is not in Doom heap cache.
|
|
struct GLMipmap_s
|
|
{
|
|
GLTexInfo grInfo;
|
|
unsigned long flags;
|
|
UINT16 width, height;
|
|
UINT32 downloaded; // tex_downloaded
|
|
|
|
struct GLMipmap_s *nextmipmap;
|
|
struct GLMipmap_s *nextcolormap;
|
|
const UINT8 *colormap;
|
|
};
|
|
typedef struct GLMipmap_s GLMipmap_t;
|
|
|
|
//
|
|
// Doom texture info, as cached for hardware rendering
|
|
//
|
|
struct GLTexture_s
|
|
{
|
|
GLMipmap_t mipmap;
|
|
float scaleX; //used for scaling textures on walls
|
|
float scaleY;
|
|
};
|
|
typedef struct GLTexture_s GLTexture_t;
|
|
|
|
// a cached patch as converted to hardware format, holding the original patch_t
|
|
// header so that the existing code can retrieve ->width, ->height as usual
|
|
// This is returned by W_CachePatchNum()/W_CachePatchName(), when rendermode
|
|
// is 'render_opengl'. Else it returns the normal patch_t data.
|
|
struct GLPatch_s
|
|
{
|
|
// the 4 first fields come right away from the original patch_t
|
|
INT16 width;
|
|
INT16 height;
|
|
INT16 leftoffset; // pixels to the left of origin
|
|
INT16 topoffset; // pixels below the origin
|
|
//
|
|
float max_s,max_t;
|
|
UINT16 wadnum; // the software patch lump num for when the hardware patch
|
|
UINT16 lumpnum; // was flushed, and we need to re-create it
|
|
GLMipmap_t *mipmap;
|
|
|
|
boolean notfound; // if the texture file was not found, mark it here (used in model texture loading)
|
|
} ATTRPACK;
|
|
typedef struct GLPatch_s GLPatch_t;
|
|
|
|
#endif //_HWR_DATA_
|