prime/include/Kyoto/Graphics/CTevCombiners.hpp

101 lines
1.7 KiB
C++
Raw Normal View History

#ifndef _CTEVCOMBINERS_HPP
#define _CTEVCOMBINERS_HPP
#include "gx_enum.h"
#include "types.h"
class CTevCombiners {
public:
enum EColorSrc {
kCS_PreviousColor,
kCS_PreviousAlpha,
kCS_RegisterC0,
kCS_RegisterA0,
kCS_RegisterC1,
kCS_RegisterA1,
kCS_RegisterC2,
kCS_RegisterA2,
kCS_TextureColor,
kCS_TextureAlpha,
kCS_RasterColor,
kCS_RasterAlpha,
kCS_One,
kCS_Half,
kCS_Konst,
kCS_Zero,
};
struct ColorVar {
EColorSrc x0_src;
};
struct ColorPass {
ColorVar x0_a;
ColorVar x4_b;
ColorVar x8_c;
ColorVar xc_d;
};
enum EAlphaSrc {
kAS_PreviousAlpha,
kAS_RegisterA0,
kAS_RegisterA1,
kAS_RegisterA2,
kAS_TextureAlpha,
kAS_RasterAlpha,
kAS_One,
kAS_Zero,
kAS_Konst,
};
struct AlphaVar {
EAlphaSrc x0_src;
};
struct AlphaPass {
AlphaVar x0_a;
AlphaVar x4_b;
AlphaVar x8_c;
AlphaVar xc_d;
};
enum ETevOp {
kTO_Add,
kTO_Subtract,
};
enum ETevBias {
kTB_Zero,
kTB_AddHalf,
kTB_SubHalf,
};
enum ETevScale {
kTS_Scale1,
kTS_Scale2,
kTS_Scale4,
kTS_Divide2,
};
enum ETevOutput {
kTO_Previous,
kTO_Register0,
kTO_Register1,
kTO_Register2,
};
struct CTevOp {
bool x0_clamp;
ETevOp x4_op;
ETevBias x8_bias;
ETevScale xc_scale;
ETevOutput x10_output;
};
class CTevPass {
public:
u32 x0_id;
ColorPass x4_colorPass;
AlphaPass x14_alphaPass;
CTevOp x24_colorOp;
CTevOp x38_alphaOp;
};
};
extern CTevCombiners::CTevPass CTevPass_805a5ebc;
// TODO move to CGraphics
extern CTevCombiners::CTevPass* PTR_skPassThru_805a8828;
#endif