Crappy Layout
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#include "include/controller_state.hpp"
|
||||
#include <PSX/GPU/gpu.hpp>
|
||||
|
||||
namespace ControllerTest {
|
||||
using namespace JabyEngine;
|
||||
|
||||
template<typename T>
|
||||
static GPU::Link* link_array(GPU::Link* last_prim, T* elements, size_t length) {
|
||||
for(size_t n = 0; n < length; n++) {
|
||||
last_prim->concat(elements[n]);
|
||||
last_prim = &elements[n];
|
||||
}
|
||||
|
||||
last_prim->terminate();
|
||||
return last_prim;
|
||||
}
|
||||
|
||||
template<typename T, size_t N>
|
||||
static GPU::Link* link_array(GPU::Link* last_prim, T(&elements)[N]) {
|
||||
return link_array(last_prim, elements, N);
|
||||
}
|
||||
|
||||
void ControllerState :: setup() {
|
||||
for(size_t n = 0; n < 2; n++) {
|
||||
link_array(link_array(&this->tex_page[n], this->buttons[n]), this->arrows[n]);
|
||||
}
|
||||
}
|
||||
|
||||
void ControllerState :: update() {
|
||||
|
||||
}
|
||||
|
||||
void ControllerState :: render() {
|
||||
GPU::render(this->tex_page[GPU::render_id()]);
|
||||
}
|
||||
}
|
@@ -1,33 +1,42 @@
|
||||
#include "../../../include/shared.hpp"
|
||||
#include "include/controller_state.hpp"
|
||||
#include <PSX/Periphery/periphery.hpp>
|
||||
#include <stdio.h>
|
||||
|
||||
namespace ControllerTest {
|
||||
using namespace JabyEngine;
|
||||
|
||||
static auto controller_state = ControllerState::create();
|
||||
|
||||
static void setup() {
|
||||
Shared::back_menu.reset();
|
||||
controller_state.setup();
|
||||
}
|
||||
|
||||
static bool update_or_exit() {
|
||||
Periphery::query_controller();
|
||||
if(Shared::back_menu.update(Make::PositionI16(0, GPU::Display::Height - 32))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
controller_state.update();
|
||||
return false;
|
||||
}
|
||||
|
||||
static void render() {
|
||||
controller_state.render();
|
||||
Shared::back_menu.render();
|
||||
}
|
||||
|
||||
void main() {
|
||||
printf("CONT: BlubbBlubbBlubb!!\n");
|
||||
Shared::back_menu.reset();
|
||||
setup();
|
||||
|
||||
while(true) {
|
||||
if(update_or_exit()) {
|
||||
break;
|
||||
}
|
||||
GPU::swap_buffers_vsync(1);
|
||||
Shared::back_menu.render();
|
||||
render();
|
||||
}
|
||||
}
|
||||
}
|
@@ -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();
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user