#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