Introduce SimpleTIM type

This commit is contained in:
Jaby 2022-10-01 21:02:58 +02:00
parent c872723409
commit 01a2f6134f
2 changed files with 35 additions and 2 deletions

View File

@ -134,12 +134,12 @@ public:
}
template<typename S>
constexpr S get_value(const BitRange<S>& range) {
constexpr S get_value(const BitRange<S>& range) const {
return static_cast<S>(bit::value::get_normalized(this->raw, range.begin, range.length));
}
template<typename S>
constexpr S get_value(const BitRange<S>& range) volatile {
constexpr S get_value(const BitRange<S>& range) const volatile {
return static_cast<S>(bit::value::get_normalized(this->raw, range.begin, range.length));
}

View File

@ -0,0 +1,33 @@
#ifndef __JABYENGINE_FILE_TYPES_HPP__
#define __JABYENGINE_FILE_TYPES_HPP__
#include "../Auxiliary/complex_bitmap.hpp"
#include "../jabyengine_defines.h"
struct __no_align SimpleTIM : private ComplexBitMap<uint32_t> {
static constexpr auto TextureX = BitRange<uint32_t>(0, 8);
static constexpr auto TextureY = BitRange<uint32_t>(9, 16);
static constexpr auto ClutX = BitRange<uint32_t>(17, 22);
static constexpr auto ClutY = BitRange<uint32_t>(23, 31);
constexpr SimpleTIM(uint16_t texX, uint16_t texY, uint16_t clutX, uint16_t clutY) : ComplexBitMap(ComplexBitMap::with(TextureX.with(texX), TextureY.with(texY), ClutX.with(clutX), ClutY.with(clutY))) {
}
constexpr uint16_t getTextureX() const {
return ComplexBitMap<uint32_t>::get_value(SimpleTIM::TextureX);
}
constexpr uint16_t getTextureY() const {
return ComplexBitMap<uint32_t>::get_value(SimpleTIM::TextureY);
}
constexpr uint16_t getClutX() const {
return ComplexBitMap<uint32_t>::get_value(SimpleTIM::ClutX);
}
constexpr uint16_t getClutY() const {
return ComplexBitMap<uint32_t>::get_value(SimpleTIM::ClutY);
}
};
#endif // !__JABYENGINE_FILE_TYPES_HPP__