tenebrae2/nvparse/rc1.0_final.h

48 lines
1.2 KiB
C++

#ifndef _RC10_FINAL_H
#define _RC10_FINAL_H
#include "rc1.0_register.h"
class FinalAlphaFunctionStruct {
public:
void Init(MappedRegisterStruct _g) { g = _g; }
void ZeroOut();
MappedRegisterStruct g;
};
class FinalRgbFunctionStruct {
public:
void Init(MappedRegisterStruct _a, MappedRegisterStruct _b, MappedRegisterStruct _c, MappedRegisterStruct _d)
{ a = _a; b = _b; c = _c; d = _d; }
void ZeroOut();
MappedRegisterStruct a;
MappedRegisterStruct b;
MappedRegisterStruct c;
MappedRegisterStruct d;
};
class FinalProductStruct {
public:
void Init(MappedRegisterStruct _e, MappedRegisterStruct _f) { e = _e; f = _f; }
void ZeroOut();
MappedRegisterStruct e;
MappedRegisterStruct f;
};
class FinalCombinerStruct {
public:
void Init(FinalRgbFunctionStruct _rgb, FinalAlphaFunctionStruct _alpha, int _clamp, FinalProductStruct _product)
{ rgb = _rgb; alpha = _alpha; clamp = _clamp; product = _product; hasProduct = true;}
void Init(FinalRgbFunctionStruct _rgb, FinalAlphaFunctionStruct _alpha, int _clamp)
{ rgb = _rgb; alpha = _alpha; clamp = _clamp; hasProduct = false; product.ZeroOut();}
int hasProduct;
FinalProductStruct product;
int clamp;
FinalRgbFunctionStruct rgb;
FinalAlphaFunctionStruct alpha;
void Validate();
void Invoke();
};
#endif