Port to latest GCC and fix CD loading bug

This commit is contained in:
Jaby Blubb
2023-09-03 01:57:28 +02:00
parent 86e1d76733
commit 30759b85c7
12 changed files with 83 additions and 67 deletions

View File

@@ -12,7 +12,7 @@ namespace JabyEngine {
namespace internal {
struct RectCode : public CodeBase<RectCode> {
enum struct Size : uint8_t {
enum struct SizeType : uint8_t {
Variable = 0,
Pixel1x1 = 1,
Sprite8x8 = 2,
@@ -37,9 +37,9 @@ namespace JabyEngine {
}
};
template<typename RectCode::Size Size>
template<typename RectCode::SizeType Size>
struct RECT_BASE_F : public RectCodeInterface<RECT_BASE_F<Size>> {
typedef RECT_BASE_F<Size>::Code Code;
typedef RectCodeInterface<RECT_BASE_F<Size>>::Code Code;
static constexpr auto IdentityCode = Code::create().set(Code::Size.with(static_cast<uint8_t>(Size))).set(Code::Untextured).set(Code::NonTransparent);
Color24 color;
@@ -51,9 +51,9 @@ namespace JabyEngine {
}
};
template<typename RectCode::Size Size>
template<typename RectCode::SizeType Size>
struct RECT_BASE_T : public RectCodeInterface<RECT_BASE_T<Size>> {
typedef RECT_BASE_T<Size>::Code Code;
typedef RectCodeInterface<RECT_BASE_T<Size>>::Code Code;
static constexpr auto IdentityCode = Code(RECT_BASE_F<Size>::IdentityCode).set(Code::Textured);
Color24 color;
@@ -67,21 +67,21 @@ namespace JabyEngine {
}
};
template<typename RectCode::Size Size>
template<typename RectCode::SizeType Size>
struct RECT_F : public RECT_BASE_F<Size>, public internal::RenderPrimitive<RECT_F<Size>>, public internal::LinkedElementCreator<RECT_F<Size>> {
using RECT_BASE_F<Size>::RECT_BASE_F;
};
template<typename RectCode::Size Size>
template<typename RectCode::SizeType Size>
struct RECT_T : public RECT_BASE_T<Size>, public internal::RenderPrimitive<RECT_T<Size>>, public internal::LinkedElementCreator<RECT_T<Size>> {
using RECT_BASE_T<Size>::RECT_BASE_T;
};
}
typedef internal::RECT_F<internal::RectCode::Size::Pixel1x1> TILE_1;
typedef internal::RECT_F<internal::RectCode::Size::Sprite8x8> TILE_8;
typedef internal::RECT_F<internal::RectCode::Size::Sprite16x16> TILE_16;
struct TILE : public internal::RECT_BASE_F<internal::RectCode::Size::Variable>, public internal::RenderPrimitive<TILE>, public internal::LinkedElementCreator<TILE> {
typedef internal::RECT_F<internal::RectCode::SizeType::Pixel1x1> TILE_1;
typedef internal::RECT_F<internal::RectCode::SizeType::Sprite8x8> TILE_8;
typedef internal::RECT_F<internal::RectCode::SizeType::Sprite16x16> TILE_16;
struct TILE : public internal::RECT_BASE_F<internal::RectCode::SizeType::Variable>, public internal::RenderPrimitive<TILE>, public internal::LinkedElementCreator<TILE> {
SizeI16 size;
constexpr TILE() = default;
@@ -89,10 +89,10 @@ namespace JabyEngine {
}
};
typedef internal::RECT_T<internal::RectCode::Size::Pixel1x1> SPRT_1;
typedef internal::RECT_T<internal::RectCode::Size::Sprite8x8> SPRT_8;
typedef internal::RECT_T<internal::RectCode::Size::Sprite16x16> SPRT_16;
struct SPRT : public internal::RECT_BASE_T<internal::RectCode::Size::Variable>, public internal::RenderPrimitive<SPRT>, public internal::LinkedElementCreator<SPRT> {
typedef internal::RECT_T<internal::RectCode::SizeType::Pixel1x1> SPRT_1;
typedef internal::RECT_T<internal::RectCode::SizeType::Sprite8x8> SPRT_8;
typedef internal::RECT_T<internal::RectCode::SizeType::Sprite16x16> SPRT_16;
struct SPRT : public internal::RECT_BASE_T<internal::RectCode::SizeType::Variable>, public internal::RenderPrimitive<SPRT>, public internal::LinkedElementCreator<SPRT> {
SizeI16 size;
constexpr SPRT() = default;