2025-11-19 22:20:27 +01:00
|
|
|
#include <amethyst.hpp>
|
|
|
|
|
|
2025-11-24 10:02:22 +01:00
|
|
|
#include "amethyst/iron.hpp"
|
|
|
|
|
|
|
|
|
|
class example : public amy::app {
|
|
|
|
|
public:
|
|
|
|
|
example() {
|
|
|
|
|
amy::ctru::init();
|
2025-11-24 22:11:26 +01:00
|
|
|
consoleInit(GFX_BOTTOM, NULL);
|
2025-11-24 10:02:22 +01:00
|
|
|
amy::c3d::init();
|
|
|
|
|
m_top = amy::c3d::createScreen(GFX_TOP, GFX_LEFT);
|
|
|
|
|
amy::iron::init();
|
2025-11-24 22:11:26 +01:00
|
|
|
dl = new amy::iron::drawlist();
|
|
|
|
|
dl->drawSolid();
|
2025-11-25 17:22:26 +01:00
|
|
|
auto cmd = std::make_unique<amy::iron::command>();
|
|
|
|
|
cmd->index = 0;
|
|
|
|
|
cmd->layer = 0;
|
|
|
|
|
cmd->tex = amy::iron::whiteTex();
|
|
|
|
|
cmd->add(0).add(1).add(2);
|
|
|
|
|
cmd->add(amy::iron::vertex(200, 50, 0, 0, 0xff0000ff));
|
|
|
|
|
cmd->add(amy::iron::vertex(100, 190, 0, 0, 0xff00ff00));
|
|
|
|
|
cmd->add(amy::iron::vertex(300, 190, 0, 0, 0xffff0000));
|
|
|
|
|
cmdl.push_back(std::move(cmd));
|
|
|
|
|
// throw std::runtime_error(std::format(
|
|
|
|
|
// "solid tex: {:#08x}\nsize: {}\nptr: {:#08x}",
|
|
|
|
|
// (amy::ui)amy::iron::whiteTex(), amy::iron::whiteTex()->size(),
|
|
|
|
|
// (amy::ui)amy::iron::whiteTex()->ptr()));
|
|
|
|
|
};
|
2025-11-24 10:02:22 +01:00
|
|
|
~example() {
|
|
|
|
|
amy::c3d::deleteScreen(m_top);
|
|
|
|
|
amy::c3d::deinit();
|
|
|
|
|
};
|
2025-11-19 22:20:27 +01:00
|
|
|
|
2025-11-24 10:02:22 +01:00
|
|
|
void main() {
|
2025-11-19 22:20:27 +01:00
|
|
|
amy::c3d::startFrame();
|
2025-11-24 10:02:22 +01:00
|
|
|
m_top->startDraw();
|
|
|
|
|
m_top->clear();
|
2025-11-25 17:22:26 +01:00
|
|
|
// dl->drawRectFilled(0, 50, 0xff00ff00);
|
2025-11-24 10:02:22 +01:00
|
|
|
amy::iron::newFrame();
|
|
|
|
|
amy::iron::drawOn(m_top);
|
2025-11-25 17:22:26 +01:00
|
|
|
// amy::iron::draw(dl->data());
|
|
|
|
|
amy::iron::draw(cmdl);
|
|
|
|
|
// dl->clear();
|
2025-11-19 22:20:27 +01:00
|
|
|
amy::c3d::endFrame();
|
|
|
|
|
}
|
2025-11-24 10:02:22 +01:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
amy::c3d::screen* m_top = nullptr;
|
2025-11-24 22:11:26 +01:00
|
|
|
amy::iron::drawlist* dl = nullptr;
|
2025-11-25 17:22:26 +01:00
|
|
|
std::vector<amy::iron::command::ref> cmdl;
|
2025-11-24 10:02:22 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
amy::registerCxxExceptionHandler();
|
|
|
|
|
example app;
|
|
|
|
|
app.run();
|
2025-11-19 22:20:27 +01:00
|
|
|
return 0;
|
|
|
|
|
}
|