add empty "logo" scene

This commit is contained in:
Zack Buhman 2025-06-26 17:24:31 -05:00
parent 1107158309
commit 3cf693adb1
6 changed files with 65 additions and 17 deletions

View File

@ -27,6 +27,7 @@
#include "framebuffer.hpp"
#include "scene/scene.hpp"
#include "scene/tracker/scene.hpp"
#include "scene/logo/scene.hpp"
#include "graphics.hpp"
static volatile int ta_in_use = 0;
@ -37,6 +38,7 @@ static volatile int next_frame_ix = 0;
static const scene::scene scenes[] = {
scene::tracker::scene,
scene::logo::scene,
};
static const scene::scene * current_scene = &scenes[0];

28
src/scene/logo/scene.cpp Normal file
View File

@ -0,0 +1,28 @@
#include "ta_parameter.hpp"
#include "scene/logo/scene.hpp"
namespace scene::logo {
const struct scene::scene scene = {
.ta_alloc = ta_alloc_ctrl::pt_opb::no_list
| ta_alloc_ctrl::tm_opb::no_list
| ta_alloc_ctrl::t_opb::no_list
| ta_alloc_ctrl::om_opb::no_list
| ta_alloc_ctrl::o_opb::_32x4byte,
.opb_size = {
.opaque = 32 * 4,
.opaque_modifier = 0,
.translucent = 0,
.translucent_modifier = 0,
.punch_through = 0
},
.transfer = transfer,
};
void transfer(ta_parameter_writer& writer)
{
writer.append<ta_global_parameter::end_of_list>() =
ta_global_parameter::end_of_list(para_control::para_type::end_of_list);
}
}

11
src/scene/logo/scene.hpp Normal file
View File

@ -0,0 +1,11 @@
#pragma once
#include "holly/ta_bits.hpp"
#include "scene/scene.hpp"
namespace scene::logo {
void transfer(ta_parameter_writer& writer);
extern const struct scene::scene scene;
}

View File

@ -2,12 +2,29 @@
#include "ta_parameter.hpp"
#include "scene/tracker/scene.hpp"
#include "notes.hpp"
#include "channel_status.hpp"
#include "scene/scene.hpp"
namespace scene::tracker {
const struct scene::scene scene = {
.ta_alloc = ta_alloc_ctrl::pt_opb::_32x4byte
| ta_alloc_ctrl::tm_opb::no_list
| ta_alloc_ctrl::t_opb::_8x4byte
| ta_alloc_ctrl::om_opb::no_list
| ta_alloc_ctrl::o_opb::_32x4byte,
.opb_size = {
.opaque = 32 * 4,
.opaque_modifier = 0,
.translucent = 8 * 4,
.translucent_modifier = 0,
.punch_through = 32 * 4
},
.transfer = transfer,
};
void transfer(ta_parameter_writer& writer)
{
const int x = 3;

View File

@ -1,22 +1,11 @@
#pragma once
#include "holly/ta_bits.hpp"
#include "scene/scene.hpp"
namespace scene::tracker {
void transfer(ta_parameter_writer& writer);
struct scene::scene scene = {
.ta_alloc = ta_alloc_ctrl::pt_opb::_32x4byte
| ta_alloc_ctrl::tm_opb::no_list
| ta_alloc_ctrl::t_opb::_8x4byte
| ta_alloc_ctrl::om_opb::no_list
| ta_alloc_ctrl::o_opb::_32x4byte,
.opb_size = {
.opaque = 32 * 4,
.opaque_modifier = 0,
.translucent = 8 * 4,
.translucent_modifier = 0,
.punch_through = 32 * 4
},
.transfer = transfer,
};
extern const struct scene::scene scene;
}

View File

@ -26,7 +26,8 @@ XM_PLAYER_OBJ = \
src/graphics_primitive.o \
src/scene/tracker/scene.o \
src/scene/tracker/channel_status.o \
src/scene/tracker/notes.o
src/scene/tracker/notes.o \
src/scene/logo/scene.o
xm_player.elf: LDSCRIPT = $(LIB)/main.lds
xm_player.elf: $(START_OBJ) $(XM_PLAYER_OBJ) $(TEXTURE_OBJ) $(XM_OBJ) $(LIBGCC)