Crappy Layout

This commit is contained in:
Jaby
2024-01-04 17:11:40 -06:00
committed by Jaby
parent 79703a4e06
commit 82821791b9
5 changed files with 138 additions and 5 deletions

View File

@@ -0,0 +1,55 @@
#pragma once
#include "controller_test_assets.hpp"
#include <PSX/GPU/make_gpu_primitives.hpp>
namespace ControllerTest {
using namespace JabyEngine;
class ControllerState {
private:
GPU::TexPage::Linked tex_page[2];
GPU::SPRT_16::Linked buttons[2][10];
GPU::POLY_FT4::Linked arrows[2][4];
public:
static constexpr ControllerState create() {
ControllerState state;
for(auto& tex_page : state.tex_page) {
tex_page = Make::TexPage(ControllerButtonTIM.get_texture_position(), GPU::TexturePageColor::$4bit).linked();
}
for(auto& buttons : state.buttons) {
constexpr auto Offset = Make::PositionI16(80, 0);
buttons[0] = Make::SPRT_16(Make::Vertex(1*16, 0*16).move(Offset.x, Offset.y+32), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(0, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[1] = Make::SPRT_16(Make::Vertex(2*16, 1*16).move(Offset.x, Offset.y+32), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(1, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[2] = Make::SPRT_16(Make::Vertex(1*16, 2*16).move(Offset.x, Offset.y+32), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(2, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[3] = Make::SPRT_16(Make::Vertex(0*16, 1*16).move(Offset.x, Offset.y+32), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(3, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[4] = Make::SPRT_16(Make::Vertex(-40, 32).move(Offset.x, Offset.y+32), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(5, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[5] = Make::SPRT_16(Make::Vertex(-24, 32).move(Offset.x, Offset.y+32), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(4, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[6] = Make::SPRT_16(Make::Vertex(-64, 0).move(Offset.x, Offset.y), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(7, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[7] = Make::SPRT_16(Make::Vertex(-64, 16).move(Offset.x, Offset.y), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(8, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[8] = Make::SPRT_16(Make::Vertex(16, 0).move(Offset.x, Offset.y), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(7, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
buttons[9] = Make::SPRT_16(Make::Vertex(16, 16).move(Offset.x, Offset.y), Make::OffsetPageWithClut(GPU::PageOffset::from_tile_id16(8, Make::SizeI16(16, 16)), Make::PageClut(ControllerButtonTIM.get_clut_position()))).linked();
}
for(auto& arrows : state.arrows) {
constexpr auto Offset = Make::PositionI16(0, 8);
arrows[0] = Make::POLY_FT4(__jabyengine_polyFT4_vertex_rect( Make::AreaI16(Make::PositionI16(1*12, 0*12).move(Offset.x, Offset.y), Make::SizeI16(16, 16)), Make::PositionI16(6*16, 0)), Make::TPage(ControllerButtonTIM.get_texture_position(), GPU::SemiTransparency::B_Half_add_F_Half, GPU::TexturePageColor::$4bit), Make::PageClut(ControllerButtonTIM.get_clut_position())).linked();
arrows[1] = Make::POLY_FT4(__jabyengine_polyFT4_vertex_rect270(Make::AreaI16(Make::PositionI16(2*12, 1*12).move(Offset.x, Offset.y), Make::SizeI16(16, 16)), Make::PositionI16(6*16, 0)), Make::TPage(ControllerButtonTIM.get_texture_position(), GPU::SemiTransparency::B_Half_add_F_Half, GPU::TexturePageColor::$4bit), Make::PageClut(ControllerButtonTIM.get_clut_position())).linked();
arrows[2] = Make::POLY_FT4(__jabyengine_polyFT4_vertex_rect180(Make::AreaI16(Make::PositionI16(1*12, 2*12).move(Offset.x, Offset.y), Make::SizeI16(16, 16)), Make::PositionI16(6*16, 0)), Make::TPage(ControllerButtonTIM.get_texture_position(), GPU::SemiTransparency::B_Half_add_F_Half, GPU::TexturePageColor::$4bit), Make::PageClut(ControllerButtonTIM.get_clut_position())).linked();
arrows[3] = Make::POLY_FT4(__jabyengine_polyFT4_vertex_rect90( Make::AreaI16(Make::PositionI16(0*12, 1*12).move(Offset.x, Offset.y), Make::SizeI16(16, 16)), Make::PositionI16(6*16, 0)), Make::TPage(ControllerButtonTIM.get_texture_position(), GPU::SemiTransparency::B_Half_add_F_Half, GPU::TexturePageColor::$4bit), Make::PageClut(ControllerButtonTIM.get_clut_position())).linked();
}
return state;
}
void setup();
void update();
void render();
};
}