From dbccd866229a4b06d10fbafc3eb3343015caedba Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 26 Nov 2023 16:09:41 -0700 Subject: checkpoint --- src/main.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index f147f2f..0c91536 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,29 +1,33 @@ +#include "cube.hpp" #include "palette.hpp" +#include "renderable.hpp" +#include "scene.hpp" #include "vector.hpp" #include +class Box : public Renderable { +public: + virtual void render(std::shared_ptr scene) { + scene->draw_line({0, 0}, {2 << FIX_SHIFT, 3 << FIX_SHIFT}, 1); + } +}; + int main() { // interrupt & mode 4 foo irq_init(NULL); irq_enable(II_VBLANK); REG_DISPCNT = DCNT_MODE4 | DCNT_BG2; - - // initialize our palette palette::put_palette((std::uint16_t *)MEM_PAL); - // begin - bmp16_line(1, 3, 1 + SCREEN_WIDTH / 2 - 2, SCREEN_HEIGHT, 0x0101, vid_page, - SCREEN_WIDTH); - vid_flip(); - bmp16_line(2, 3, 2 + SCREEN_WIDTH / 2 - 2, SCREEN_HEIGHT, 0x0101, vid_page, - SCREEN_WIDTH); + auto scene = std::make_shared(); + // auto cube = std::shared_ptr((Renderable *)new Cube()); + // scene->renderables.add(cube); + auto box = std::shared_ptr((Renderable *)new Box()); + + scene->renderables.add(box); - std::uint32_t frame = 0; while (1) { - frame = (frame + 1) % 60; - if (frame == 0) { - vid_flip(); - } + Scene::render(scene); VBlankIntrWait(); } -- cgit v1.2.3-70-g09d2