Integrate all the progress into master #6

Merged
jaby merged 595 commits from ToolBox into main 2025-01-01 13:17:44 +00:00
2 changed files with 83 additions and 26 deletions
Showing only changes of commit 40ec19ce7a - Show all commits

View File

@ -26,13 +26,13 @@ static constexpr auto RectangleClut = Make::PageClut(320, 510);
static constexpr auto LineColor = GPU::Color24::from_rgb(0xFF, 0x0, 0x0); static constexpr auto LineColor = GPU::Color24::from_rgb(0xFF, 0x0, 0x0);
static constexpr const auto triangle1 = GPU::POLY_F3::create({ static constexpr const auto triangle1 = Make::POLY_F3({
Make::Vertex(TriangleArea.position.x, TriangleArea.position.y), Make::Vertex(TriangleArea.position.x, TriangleArea.position.y),
Make::Vertex(TriangleArea.size.width, TriangleArea.size.height), Make::Vertex(TriangleArea.size.width, TriangleArea.size.height),
Make::Vertex(TriangleArea.position.x, TriangleArea.size.height) Make::Vertex(TriangleArea.position.x, TriangleArea.size.height)
}, TriangleColor }, TriangleColor
); );
static constexpr const auto triangle2 = GPU::POLY_FT3::create({ static constexpr const auto triangle2 = Make::POLY_FT3({
Make::Vertex(TriangleArea.position.x, TriangleArea.position.y), Make::Vertex(TriangleArea.position.x, TriangleArea.position.y),
Make::Vertex(TriangleArea.size.width, TriangleArea.position.y), Make::Vertex(TriangleArea.size.width, TriangleArea.position.y),
Make::Vertex(TriangleArea.size.width, TriangleArea.size.height) Make::Vertex(TriangleArea.size.width, TriangleArea.size.height)
@ -43,12 +43,12 @@ static constexpr const auto triangle2 = GPU::POLY_FT3::create({
Make::PagePosition(TriangleArea.size.width, TriangleArea.size.height) Make::PagePosition(TriangleArea.size.width, TriangleArea.size.height)
}, TriangleTPage, TriangleClut, GPU::Color24::Grey() }, TriangleTPage, TriangleClut, GPU::Color24::Grey()
); );
static constexpr const auto triangle3 = GPU::POLY_G3::create({ static constexpr const auto triangle3 = Make::POLY_G3({
{triangle1.vertex0.move(TriangleArea.size.width, 0), GPU::Color24::Red()}, {triangle1.vertex0.move(TriangleArea.size.width, 0), GPU::Color24::Red()},
{triangle1.vertex1.move(TriangleArea.size.width, 0), GPU::Color24::Green()}, {triangle1.vertex1.move(TriangleArea.size.width, 0), GPU::Color24::Green()},
{triangle1.vertex2.move(TriangleArea.size.width, 0), GPU::Color24::Blue()}} {triangle1.vertex2.move(TriangleArea.size.width, 0), GPU::Color24::Blue()}}
); );
static constexpr const auto triangle4 = GPU::POLY_GT3::create({ static constexpr const auto triangle4 = Make::POLY_GT3({
{triangle2.vertex0.move(TriangleArea.size.width, 0), triangle2.page0, GPU::Color24::Red()}, {triangle2.vertex0.move(TriangleArea.size.width, 0), triangle2.page0, GPU::Color24::Red()},
{triangle2.vertex1.move(TriangleArea.size.width, 0), triangle2.page1, GPU::Color24::Blue()}, {triangle2.vertex1.move(TriangleArea.size.width, 0), triangle2.page1, GPU::Color24::Blue()},
{triangle2.vertex2.move(TriangleArea.size.width, 0), triangle2.page2, GPU::Color24::Green()}}, {triangle2.vertex2.move(TriangleArea.size.width, 0), triangle2.page2, GPU::Color24::Green()}},
@ -56,20 +56,20 @@ static constexpr const auto triangle4 = GPU::POLY_GT3::create({
TriangleClut TriangleClut
); );
static constexpr const auto rectangle1 = GPU::POLY_F4::create(RectangleArea, RectangleColor); static constexpr const auto rectangle1 = Make::POLY_F4(RectangleArea, RectangleColor);
static constexpr const auto rectangle2 = GPU::POLY_FT4::create(Make::AreaI16( static constexpr const auto rectangle2 = Make::POLY_FT4(Make::AreaI16(
RectangleArea.position.move(RectangleArea.size.width, 0), RectangleArea.size), Make::PagePosition(0, 0), RectangleArea.position.move(RectangleArea.size.width, 0), RectangleArea.size), Make::PagePosition(0, 0),
RectangleTPage, RectangleTPage,
RectangleClut, RectangleClut,
GPU::Color24::Grey() GPU::Color24::Grey()
); );
static constexpr const auto rectangle3 = GPU::POLY_G4::create( static constexpr const auto rectangle3 = Make::POLY_G4(
{RectangleArea.position.move(RectangleArea.size.width*2, 0), RectangleArea.size}, { {RectangleArea.position.move(RectangleArea.size.width*2, 0), RectangleArea.size}, {
GPU::Color24::Red(), GPU::Color24::Red(),
GPU::Color24::Blue(), GPU::Color24::Blue(),
GPU::Color24::Green(), GPU::Color24::Green(),
GPU::Color24::White()}); GPU::Color24::White()});
static constexpr const auto rectangle4 = GPU::POLY_GT4::create(Make::AreaI16( static constexpr const auto rectangle4 = Make::POLY_GT4(Make::AreaI16(
RectangleArea.position.move(RectangleArea.size.width*3, 0), RectangleArea.size), Make::PagePosition(0, 0), RectangleArea.position.move(RectangleArea.size.width*3, 0), RectangleArea.size), Make::PagePosition(0, 0),
RectangleTPage, RectangleTPage,
RectangleClut, { RectangleClut, {
@ -78,7 +78,7 @@ static constexpr const auto rectangle4 = GPU::POLY_GT4::create(Make::AreaI16(
GPU::Color24::Green(), GPU::Color24::Green(),
GPU::Color24::White()} GPU::Color24::White()}
); );
static constexpr const auto rectangle5 = GPU::POLY_GT4::create(Make::AreaI16( static constexpr const auto rectangle5 = Make::POLY_GT4(Make::AreaI16(
RectangleArea.position.move(0, RectangleArea.size.height), RectangleArea.size), Make::PagePosition(0, 0), RectangleArea.position.move(0, RectangleArea.size.height), RectangleArea.size), Make::PagePosition(0, 0),
RectangleTPage, RectangleTPage,
RectangleClut, { RectangleClut, {

View File

@ -12,7 +12,7 @@ namespace JabyEngine {
using JabyEngine::operator""_u16; using JabyEngine::operator""_u16;
template<typename T, typename...ARGS> template<typename T, typename...ARGS>
static constexpr T creator_template(ARGS...args) { static constexpr T creator_template(const ARGS&...args) {
return T::create(args...); return T::create(args...);
} }
@ -21,7 +21,6 @@ namespace JabyEngine {
static constexpr GPU::SizeI16 SizeI16() { static constexpr GPU::SizeI16 SizeI16() {
return creator_template<GPU::SizeI16>(0_i16, 0_i16); return creator_template<GPU::SizeI16>(0_i16, 0_i16);
} }
static constexpr GPU::SizeI16 SizeI16(int16_t x, int16_t y) { static constexpr GPU::SizeI16 SizeI16(int16_t x, int16_t y) {
return creator_template<GPU::SizeI16>(x, y); return creator_template<GPU::SizeI16>(x, y);
} }
@ -31,7 +30,6 @@ namespace JabyEngine {
static constexpr GPU::SizeU16 SizeU16() { static constexpr GPU::SizeU16 SizeU16() {
return creator_template<GPU::SizeU16>(0_u16, 0_u16); return creator_template<GPU::SizeU16>(0_u16, 0_u16);
} }
static constexpr GPU::SizeU16 SizeU16(uint16_t x, uint16_t y) { static constexpr GPU::SizeU16 SizeU16(uint16_t x, uint16_t y) {
return creator_template<GPU::SizeU16>(x, y); return creator_template<GPU::SizeU16>(x, y);
} }
@ -41,7 +39,6 @@ namespace JabyEngine {
static constexpr GPU::PositionI16 PositionI16() { static constexpr GPU::PositionI16 PositionI16() {
return creator_template<GPU::PositionI16>(0_i16, 0_i16); return creator_template<GPU::PositionI16>(0_i16, 0_i16);
} }
static constexpr GPU::PositionI16 PositionI16(int16_t x, int16_t y) { static constexpr GPU::PositionI16 PositionI16(int16_t x, int16_t y) {
return creator_template<GPU::PositionI16>(x, y); return creator_template<GPU::PositionI16>(x, y);
} }
@ -51,7 +48,6 @@ namespace JabyEngine {
static constexpr GPU::PositionU16 PositionU16() { static constexpr GPU::PositionU16 PositionU16() {
return creator_template<GPU::PositionU16>(0_u16, 0_u16); return creator_template<GPU::PositionU16>(0_u16, 0_u16);
} }
static constexpr GPU::PositionU16 PositionU16(uint16_t x, uint16_t y) { static constexpr GPU::PositionU16 PositionU16(uint16_t x, uint16_t y) {
return creator_template<GPU::PositionU16>(x, y); return creator_template<GPU::PositionU16>(x, y);
} }
@ -61,7 +57,6 @@ namespace JabyEngine {
static constexpr GPU::Vertex Vertex() { static constexpr GPU::Vertex Vertex() {
return creator_template<GPU::Vertex>(0_i16, 0_i16); return creator_template<GPU::Vertex>(0_i16, 0_i16);
} }
static constexpr GPU::Vertex Vertex(int16_t x, int16_t y) { static constexpr GPU::Vertex Vertex(int16_t x, int16_t y) {
return creator_template<GPU::Vertex>(x, y); return creator_template<GPU::Vertex>(x, y);
} }
@ -71,11 +66,9 @@ namespace JabyEngine {
static constexpr GPU::AreaI16 AreaI16() { static constexpr GPU::AreaI16 AreaI16() {
return creator_template<GPU::AreaI16>(0, 0, 0, 0); return creator_template<GPU::AreaI16>(0, 0, 0, 0);
} }
static constexpr GPU::AreaI16 AreaI16(int16_t x, int16_t y, int16_t w, int16_t h) { static constexpr GPU::AreaI16 AreaI16(int16_t x, int16_t y, int16_t w, int16_t h) {
return creator_template<GPU::AreaI16>(x, y, w, h); return creator_template<GPU::AreaI16>(x, y, w, h);
} }
static constexpr GPU::AreaI16 AreaI16(GPU::PositionI16 pos, GPU::SizeI16 size) { static constexpr GPU::AreaI16 AreaI16(GPU::PositionI16 pos, GPU::SizeI16 size) {
return creator_template<GPU::AreaI16>(pos, size); return creator_template<GPU::AreaI16>(pos, size);
} }
@ -85,11 +78,9 @@ namespace JabyEngine {
static constexpr GPU::AreaU16 AreaU16() { static constexpr GPU::AreaU16 AreaU16() {
return creator_template<GPU::AreaU16>(0, 0, 0, 0); return creator_template<GPU::AreaU16>(0, 0, 0, 0);
} }
static constexpr GPU::AreaU16 AreaU16(uint16_t x, uint16_t y, uint16_t w, uint16_t h) { static constexpr GPU::AreaU16 AreaU16(uint16_t x, uint16_t y, uint16_t w, uint16_t h) {
return creator_template<GPU::AreaU16>(x, y, w, h); return creator_template<GPU::AreaU16>(x, y, w, h);
} }
static constexpr GPU::AreaU16 AreaU16(GPU::PositionU16 pos, GPU::SizeU16 size) { static constexpr GPU::AreaU16 AreaU16(GPU::PositionU16 pos, GPU::SizeU16 size) {
return creator_template<GPU::AreaU16>(pos, size); return creator_template<GPU::AreaU16>(pos, size);
} }
@ -99,7 +90,6 @@ namespace JabyEngine {
static constexpr GPU::PagePosition PagePosition() { static constexpr GPU::PagePosition PagePosition() {
return creator_template<GPU::PagePosition>(0_u8, 0_u8); return creator_template<GPU::PagePosition>(0_u8, 0_u8);
} }
static constexpr GPU::PagePosition PagePosition(uint8_t u, uint8_t v) { static constexpr GPU::PagePosition PagePosition(uint8_t u, uint8_t v) {
return creator_template<GPU::PagePosition>(u, v); return creator_template<GPU::PagePosition>(u, v);
} }
@ -109,7 +99,6 @@ namespace JabyEngine {
static constexpr GPU::PageClut PageClut() { static constexpr GPU::PageClut PageClut() {
return creator_template<GPU::PageClut>(0_u16, 0_u16); return creator_template<GPU::PageClut>(0_u16, 0_u16);
} }
static constexpr GPU::PageClut PageClut(uint16_t x, uint16_t y) { static constexpr GPU::PageClut PageClut(uint16_t x, uint16_t y) {
return creator_template<GPU::PageClut>(x, y); return creator_template<GPU::PageClut>(x, y);
} }
@ -119,7 +108,6 @@ namespace JabyEngine {
static constexpr GPU::TPage TPage() { static constexpr GPU::TPage TPage() {
return creator_template<GPU::TPage>(0_u16, 0_u16, GPU::SemiTransparency::B_add_F, GPU::TexturePageColor::$4bit); return creator_template<GPU::TPage>(0_u16, 0_u16, GPU::SemiTransparency::B_add_F, GPU::TexturePageColor::$4bit);
} }
static constexpr GPU::TPage TPage(uint16_t x, uint16_t y, GPU::SemiTransparency transparency, GPU::TexturePageColor clut_color) { static constexpr GPU::TPage TPage(uint16_t x, uint16_t y, GPU::SemiTransparency transparency, GPU::TexturePageColor clut_color) {
return creator_template<GPU::TPage>(x, y, transparency, clut_color); return creator_template<GPU::TPage>(x, y, transparency, clut_color);
} }
@ -129,7 +117,6 @@ namespace JabyEngine {
static constexpr GPU::TexPage TexPage() { static constexpr GPU::TexPage TexPage() {
return creator_template<GPU::TexPage>(PositionU16(), GPU::TexturePageColor::$4bit, GPU::SemiTransparency::B_Half_add_F_Half, false); return creator_template<GPU::TexPage>(PositionU16(), GPU::TexturePageColor::$4bit, GPU::SemiTransparency::B_Half_add_F_Half, false);
} }
static constexpr GPU::TexPage TexPage(const GPU::PositionU16& tex_pos, GPU::TexturePageColor tex_color, GPU::SemiTransparency transparency = GPU::SemiTransparency::B_Half_add_F_Half, bool dither = false) { static constexpr GPU::TexPage TexPage(const GPU::PositionU16& tex_pos, GPU::TexturePageColor tex_color, GPU::SemiTransparency transparency = GPU::SemiTransparency::B_Half_add_F_Half, bool dither = false) {
return creator_template<GPU::TexPage>(tex_pos, tex_color, transparency, dither); return creator_template<GPU::TexPage>(tex_pos, tex_color, transparency, dither);
} }
@ -139,7 +126,6 @@ namespace JabyEngine {
static constexpr GPU::PagePositionClut PagePositionClut() { static constexpr GPU::PagePositionClut PagePositionClut() {
return creator_template<GPU::PagePositionClut>(PagePosition(), PageClut()); return creator_template<GPU::PagePositionClut>(PagePosition(), PageClut());
} }
static constexpr GPU::PagePositionClut PagePositionClut(GPU::PagePosition page, GPU::PageClut clut) { static constexpr GPU::PagePositionClut PagePositionClut(GPU::PagePosition page, GPU::PageClut clut) {
return creator_template<GPU::PagePositionClut>(page, clut); return creator_template<GPU::PagePositionClut>(page, clut);
} }
@ -149,7 +135,6 @@ namespace JabyEngine {
static constexpr GPU::VertexColor VertexColor() { static constexpr GPU::VertexColor VertexColor() {
return creator_template<GPU::VertexColor>(Vertex(), GPU::Color24::Black()); return creator_template<GPU::VertexColor>(Vertex(), GPU::Color24::Black());
} }
static constexpr GPU::VertexColor VertexColor(GPU::Vertex pos, GPU::Color24 color) { static constexpr GPU::VertexColor VertexColor(GPU::Vertex pos, GPU::Color24 color) {
return creator_template<GPU::VertexColor>(pos, color); return creator_template<GPU::VertexColor>(pos, color);
} }
@ -159,7 +144,6 @@ namespace JabyEngine {
static constexpr GPU::ColorVertex ColorVertex() { static constexpr GPU::ColorVertex ColorVertex() {
return creator_template<GPU::ColorVertex>(GPU::Color24::Black(), Vertex()); return creator_template<GPU::ColorVertex>(GPU::Color24::Black(), Vertex());
} }
static constexpr GPU::ColorVertex ColorVertex(GPU::Color24 color, GPU::Vertex pos) { static constexpr GPU::ColorVertex ColorVertex(GPU::Color24 color, GPU::Vertex pos) {
return creator_template<GPU::ColorVertex>(color, pos); return creator_template<GPU::ColorVertex>(color, pos);
} }
@ -168,6 +152,79 @@ namespace JabyEngine {
// ################################################################### // ###################################################################
// ################################################################### // ###################################################################
// ################################################################### // ###################################################################
static constexpr GPU::POLY_F3 POLY_F3(const GPU::Vertex (&verticies)[3], GPU::Color24 color) {
return creator_template<GPU::POLY_F3>(verticies, color);
}
static constexpr GPU::POLY_FT3 POLY_FT3(const GPU::Vertex (&verticies)[3], const GPU::PagePosition (&page_pos)[3], GPU::TPage tpage, GPU::PageClut clut, GPU::Color24 color = GPU::Color24::Grey()) {
return creator_template<GPU::POLY_FT3>(verticies, page_pos, tpage, clut, color);
}
static constexpr GPU::POLY_FT3 POLY_FT3(const GPU::POLY_FT3::VertexEx (&vertices_ex)[3], GPU::TPage tpage, GPU::PageClut clut, GPU::Color24 color) {
return creator_template<GPU::POLY_FT3>(vertices_ex, tpage, clut, color);
}
static constexpr GPU::POLY_G3 POLY_G3(const GPU::Vertex (&verticies)[3], const GPU::Color24 (&color)[3]) {
return creator_template<GPU::POLY_G3>(verticies, color);
}
static constexpr GPU::POLY_G3 POLY_G3(const GPU::VertexColor (&verticies_ex)[3]) {
return creator_template<GPU::POLY_G3>(verticies_ex);
}
static constexpr GPU::POLY_GT3 POLY_GT3(const GPU::Vertex (&verticies)[3], const GPU::PagePosition (&page_pos)[3], const GPU::Color24 (&color)[3], GPU::TPage tpage, GPU::PageClut clut) {
return creator_template<GPU::POLY_GT3>(verticies, page_pos, color, tpage, clut);
}
static constexpr GPU::POLY_GT3 POLY_GT3(const GPU::POLY_GT3::VertexEx (&verticies_ex)[3], GPU::TPage tpage, GPU::PageClut clut) {
return creator_template<GPU::POLY_GT3>(verticies_ex, tpage, clut);
}
static constexpr GPU::POLY_F4 POLY_F4(const GPU::Vertex (&verticies)[4], GPU::Color24 color) {
return creator_template<GPU::POLY_F4>(verticies, color);
}
static constexpr GPU::POLY_F4 POLY_F4(const GPU::AreaI16& area, GPU::Color24 color) {
return creator_template<GPU::POLY_F4>(area, color);
}
static constexpr GPU::POLY_FT4 POLY_FT4(const GPU::Vertex (&verticies)[4], const GPU::PagePosition (&page_pos)[4], GPU::TPage tpage, GPU::PageClut clut, GPU::Color24 color) {
return creator_template<GPU::POLY_FT4>(verticies, page_pos, tpage, clut, color);
}
static constexpr GPU::POLY_FT4 POLY_FT4(const GPU::POLY_FT4::VertexEx (&vertices_ex)[4], GPU::TPage tpage, GPU::PageClut clut, GPU::Color24 color = GPU::Color24::Grey()) {
return creator_template<GPU::POLY_FT4>(vertices_ex, tpage, clut, color);
}
static constexpr GPU::POLY_FT4 POLY_FT4(const GPU::AreaI16& area, const GPU::PagePosition& texture_pos, GPU::TPage tpage, GPU::PageClut clut, GPU::Color24 color) {
return creator_template<GPU::POLY_FT4>(area, texture_pos, tpage, clut, color);
}
static constexpr GPU::POLY_G4 POLY_G4(const GPU::Vertex (&verticies)[4], const GPU::Color24 (&color)[4]) {
return creator_template<GPU::POLY_G4>(verticies, color);
}
static constexpr GPU::POLY_G4 POLY_G4(const GPU::VertexColor (&verticies_ex)[4]) {
return creator_template<GPU::POLY_G4>(verticies_ex);
}
static constexpr GPU::POLY_G4 POLY_G4(const GPU::AreaI16& area, const GPU::Color24 (&color)[4]) {
return creator_template<GPU::POLY_G4>(area, color);
}
static constexpr GPU::POLY_GT4 POLY_GT4(const GPU::Vertex (&verticies)[4], const GPU::PagePosition (&page_pos)[4], const GPU::Color24 (&color)[4], GPU::TPage tpage, GPU::PageClut clut) {
return creator_template<GPU::POLY_GT4>(verticies, page_pos, color, tpage, clut);
}
static constexpr GPU::POLY_GT4 POLY_GT4(const GPU::POLY_GT4::VertexEx (&verticies_ex)[4], GPU::TPage tpage, GPU::PageClut clut) {
return creator_template<GPU::POLY_GT4>(verticies_ex, tpage, clut);
}
static constexpr GPU::POLY_GT4 POLY_GT4(const GPU::AreaI16& area, const GPU::PagePosition& texture_pos, GPU::TPage tpage, GPU::PageClut clut, const GPU::Color24 (&color)[4]) {
return creator_template<GPU::POLY_GT4>(area, texture_pos, tpage, clut, color);
}
// ################################################################### // ###################################################################
static constexpr GPU::TILE_1 TILE_1() { static constexpr GPU::TILE_1 TILE_1() {