Added codegen for column drawers
This commit is contained in:
parent
e592473f57
commit
c1e859dbca
10 changed files with 444 additions and 645 deletions
|
|
@ -5,22 +5,53 @@
|
|||
|
||||
enum class DrawColumnVariant
|
||||
{
|
||||
Opaque,
|
||||
Fuzz,
|
||||
Add,
|
||||
Translated,
|
||||
TlatedAdd,
|
||||
Shaded,
|
||||
AddClamp,
|
||||
AddClampTranslated,
|
||||
SubClamp,
|
||||
SubClampTranslated,
|
||||
RevSubClamp,
|
||||
RevSubClampTranslated
|
||||
Fill,
|
||||
FillAdd,
|
||||
FillAddClamp,
|
||||
FillSubClamp,
|
||||
FillRevSubClamp,
|
||||
Draw,
|
||||
DrawAdd,
|
||||
DrawTranslated,
|
||||
DrawTlatedAdd,
|
||||
DrawShaded,
|
||||
DrawAddClamp,
|
||||
DrawAddClampTranslated,
|
||||
DrawSubClamp,
|
||||
DrawSubClampTranslated,
|
||||
DrawRevSubClamp,
|
||||
DrawRevSubClampTranslated
|
||||
};
|
||||
|
||||
class DrawColumnCodegen : public DrawerCodegen
|
||||
{
|
||||
public:
|
||||
void Generate(DrawColumnVariant variant, SSAValue args);
|
||||
void Generate(DrawColumnVariant variant, SSAValue args, SSAValue thread_data);
|
||||
|
||||
private:
|
||||
void Loop(DrawColumnVariant variant, bool isSimpleShade);
|
||||
SSAInt ColormapSample(SSAInt frac);
|
||||
SSAInt TranslateSample(SSAInt frac);
|
||||
SSAVec4i Shade(SSAInt palIndex, bool isSimpleShade);
|
||||
|
||||
SSAStack<SSAInt> stack_index, stack_frac;
|
||||
|
||||
SSAUBytePtr dest;
|
||||
SSAUBytePtr source;
|
||||
SSAUBytePtr colormap;
|
||||
SSAUBytePtr translation;
|
||||
SSAUBytePtr basecolors;
|
||||
SSAInt pitch;
|
||||
SSAInt count;
|
||||
SSAInt dest_y;
|
||||
SSAInt iscale;
|
||||
SSAInt texturefrac;
|
||||
SSAInt light;
|
||||
SSAVec4i color;
|
||||
SSAVec4i srccolor;
|
||||
SSAInt srcalpha;
|
||||
SSAInt destalpha;
|
||||
SSABool is_simple_shade;
|
||||
SSAShadeConstants shade_constants;
|
||||
SSAWorkerThread thread;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue