2023-01-02 13:17:18 -06:00
|
|
|
#ifndef GX_C_GX_MATRIX_STACK_HPP
|
|
|
|
|
#define GX_C_GX_MATRIX_STACK_HPP
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
#include <tempest/Matrix.hpp>
|
|
|
|
|
|
|
|
|
|
class CGxMatrixStack {
|
|
|
|
|
public:
|
2023-04-15 21:21:27 -05:00
|
|
|
// Types
|
|
|
|
|
enum EMatrixFlags {
|
|
|
|
|
F_Identity = 0x1,
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-02 13:17:18 -06:00
|
|
|
// Member variables
|
|
|
|
|
uint32_t m_level = 0;
|
|
|
|
|
int8_t m_dirty = 0;
|
|
|
|
|
C44Matrix m_mtx[4];
|
|
|
|
|
uint32_t m_flags[4] = {};
|
|
|
|
|
|
|
|
|
|
// Member functions
|
|
|
|
|
CGxMatrixStack();
|
|
|
|
|
void Pop(void);
|
|
|
|
|
void Push(void);
|
|
|
|
|
C44Matrix& Top(void);
|
2023-04-15 10:32:07 -05:00
|
|
|
const C44Matrix& TopConst();
|
2023-01-02 13:17:18 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|