68 lines
2.0 KiB
C++
68 lines
2.0 KiB
C++
#include "../../../include/asset_mgr.hpp"
|
|
#include "../../../include/shared.hpp"
|
|
#include <PSX/GTE/gte.hpp>
|
|
#include <PSX/GPU/make_gpu_primitives.hpp>
|
|
#include <PSX/Periphery/periphery.hpp>
|
|
#include <stdio.h>
|
|
|
|
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<GPU::Vertex>();
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
} |