48 lines
1.2 KiB
C++
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
|