#include "../../../include/asset_mgr.hpp" #include "../../../include/shared.hpp" #include #include #include #include namespace GTETest { using namespace JabyEngine; static auto matrix = GTE::MATRIX::identity(); static auto doener_fish = Make::POLY_FT4( GPU::Display::center(Make::AreaI16(Make::PositionI16(0, 0), Assets::Main::DoenerFishInfo.size)), Assets::Main::DoenerFishInfo.tim.get_page_offset_clut4(), Make::TPage(Assets::Main::DoenerFishInfo.tim.get_texture_position(), GPU::SemiTransparency::B_add_F, GPU::TextureColorMode::clut4), Make::PageClut(Assets::Main::DoenerFishInfo.tim.get_clut_position()), GPU::Color24::Grey() ); static void setup() { Shared::back_menu.reset(); matrix.trans[0] += 50; GTE::set_geom_offset(0, 0); GTE::set_geom_screen(512); } static bool update_or_exit() { Periphery::query_controller(); if(Shared::back_menu.update(Make::PositionI16(0, GPU::Display::Height - 32))) { return true; } GTE::set_trans_matrix(matrix); GTE::set_rot_matrix(matrix); // for now? GPU::Vertex* doener_vertices[] = {&doener_fish.vertex0, &doener_fish.vertex1, &doener_fish.vertex2, &doener_fish.vertex3}; for(auto* vertex : doener_vertices) { GTE::VECTOR output; int32_t flag; GTE::rot_trans(GTE::SVECTOR::from(*vertex), output, flag); *vertex = output.to(); } return false; } static void render() { GPU::render(doener_fish); Shared::back_menu.render(); } void main() { setup(); while(true) { if(update_or_exit()) { break; } GPU::swap_buffers_vsync(1); render(); } } }