gzdoom-gles/src/r_compiler/llvmdrawers.h

104 lines
2.3 KiB
C
Raw Normal View History

#pragma once
2016-09-29 05:38:33 +00:00
struct DrawWallArgs
{
uint32_t *dest;
const uint32_t *source[4];
const uint32_t *source2[4];
int32_t pitch;
int32_t count;
int32_t dest_y;
uint32_t texturefrac[4];
uint32_t texturefracx[4];
uint32_t iscale[4];
uint32_t textureheight[4];
uint32_t light[4];
uint32_t srcalpha;
uint32_t destalpha;
uint16_t light_alpha;
uint16_t light_red;
uint16_t light_green;
uint16_t light_blue;
uint16_t fade_alpha;
uint16_t fade_red;
uint16_t fade_green;
uint16_t fade_blue;
uint16_t desaturate;
uint32_t flags;
enum Flags
{
simple_shade = 1,
nearest_filter = 2
};
};
2016-09-29 02:01:42 +00:00
struct DrawSpanArgs
{
uint32_t *destorg;
const uint32_t *source;
int32_t destpitch;
int32_t xfrac;
int32_t yfrac;
int32_t xstep;
int32_t ystep;
int32_t x1;
int32_t x2;
int32_t y;
int32_t xbits;
int32_t ybits;
uint32_t light;
uint32_t srcalpha;
uint32_t destalpha;
uint16_t light_alpha;
uint16_t light_red;
uint16_t light_green;
uint16_t light_blue;
uint16_t fade_alpha;
uint16_t fade_red;
uint16_t fade_green;
uint16_t fade_blue;
uint16_t desaturate;
uint32_t flags;
enum Flags
{
simple_shade = 1,
nearest_filter = 2
};
};
class LLVMDrawers
{
public:
virtual ~LLVMDrawers() { }
static void Create();
static void Destroy();
static LLVMDrawers *Instance();
2016-09-29 02:01:42 +00:00
void(*DrawSpan)(const DrawSpanArgs *) = nullptr;
void(*DrawSpanMasked)(const DrawSpanArgs *) = nullptr;
void(*DrawSpanTranslucent)(const DrawSpanArgs *) = nullptr;
void(*DrawSpanMaskedTranslucent)(const DrawSpanArgs *) = nullptr;
void(*DrawSpanAddClamp)(const DrawSpanArgs *) = nullptr;
void(*DrawSpanMaskedAddClamp)(const DrawSpanArgs *) = nullptr;
2016-09-29 05:38:33 +00:00
void(*vlinec1)(const DrawWallArgs *) = nullptr;
void(*vlinec4)(const DrawWallArgs *) = nullptr;
void(*mvlinec1)(const DrawWallArgs *) = nullptr;
void(*mvlinec4)(const DrawWallArgs *) = nullptr;
void(*tmvline1_add)(const DrawWallArgs *) = nullptr;
void(*tmvline4_add)(const DrawWallArgs *) = nullptr;
void(*tmvline1_addclamp)(const DrawWallArgs *) = nullptr;
void(*tmvline4_addclamp)(const DrawWallArgs *) = nullptr;
void(*tmvline1_subclamp)(const DrawWallArgs *) = nullptr;
void(*tmvline4_subclamp)(const DrawWallArgs *) = nullptr;
void(*tmvline1_revsubclamp)(const DrawWallArgs *) = nullptr;
void(*tmvline4_revsubclamp)(const DrawWallArgs *) = nullptr;
private:
static LLVMDrawers *Singleton;
};