Update PoolBox with latest changes

This commit is contained in:
2024-01-05 12:25:11 -06:00
parent e1c0f2bcb1
commit 3e6f5505c2
4 changed files with 53 additions and 7 deletions

View File

@@ -198,6 +198,7 @@ namespace JabyEngine {
using PositionU8 = Position<uint8_t>;
using PositionI16 = Position<int16_t>;
using PositionU16 = Position<uint16_t>;
using Vertex = PositionI16;
template<typename T>
struct Size {
@@ -208,12 +209,17 @@ namespace JabyEngine {
return Size{w, h};
}
template<typename S>
static constexpr Size from(const Size<S>& size) {
return Size::create(static_cast<T>(size.width), static_cast<T>(size.height));
}
auto operator<=>(const Size<T>&) const = default;
};
typedef Size<int16_t> SizeI16;
typedef Size<uint16_t> SizeU16;
// Type used for primitives
typedef PositionI16 Vertex;
using SizeI8 = Size<int8_t>;
using SizeU8 = Size<uint8_t>;
using SizeI16 = Size<int16_t>;
using SizeU16 = Size<uint16_t>;
template<typename T, typename S>
static constexpr T tile_id_for(S id, S row_count, Size<S> size) {

View File

@@ -13,6 +13,24 @@ namespace JabyEngine {
// ###################################################################
static constexpr GPU::SizeI8 SizeI8() {
return creator_template<GPU::SizeI8>(0_i8, 0_i8);
}
static constexpr GPU::SizeI8 SizeI8(int8_t x, int8_t y) {
return creator_template<GPU::SizeI8>(x, y);
}
// ###################################################################
static constexpr GPU::SizeU8 SizeU8() {
return creator_template<GPU::SizeU8>(0_u8, 0_u8);
}
static constexpr GPU::SizeU8 SizeU8(uint8_t x, uint8_t y) {
return creator_template<GPU::SizeU8>(x, y);
}
// ###################################################################
static constexpr GPU::SizeI16 SizeI16() {
return creator_template<GPU::SizeI16>(0_i16, 0_i16);
}