add "scene" structure
This commit is contained in:
parent
040a70ee51
commit
1107158309
3
Makefile
3
Makefile
@ -4,7 +4,8 @@ OPT = -O2
|
||||
|
||||
MAKEFILE_PATH := $(patsubst %/,%,$(dir $(abspath $(firstword $(MAKEFILE_LIST)))))
|
||||
LIB ?= $(MAKEFILE_PATH)/dreamcast
|
||||
CFLAGS += -I$(MAKEFILE_PATH)
|
||||
CFLAGS += -I$(MAKEFILE_PATH)/
|
||||
CFLAGS += -I$(MAKEFILE_PATH)/src
|
||||
CFLAGS += -I$(MAKEFILE_PATH)/dreamcast
|
||||
CFLAGS += -Wno-error=strict-aliasing -fno-strict-aliasing
|
||||
CARCH = -m4-single -ml
|
||||
|
@ -25,25 +25,9 @@
|
||||
#include "font/tandy1k.data.h"
|
||||
|
||||
#include "framebuffer.hpp"
|
||||
#include "src/scene/tracker/scene.hpp"
|
||||
|
||||
constexpr uint32_t ta_alloc = 0
|
||||
| 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;
|
||||
|
||||
constexpr int ta_cont_count = 1;
|
||||
constexpr struct opb_size opb_size[ta_cont_count] = {
|
||||
{
|
||||
.opaque = 32 * 4,
|
||||
.opaque_modifier = 0,
|
||||
.translucent = 8 * 4,
|
||||
.translucent_modifier = 0,
|
||||
.punch_through = 32 * 4
|
||||
}
|
||||
};
|
||||
#include "scene/scene.hpp"
|
||||
#include "scene/tracker/scene.hpp"
|
||||
#include "graphics.hpp"
|
||||
|
||||
static volatile int ta_in_use = 0;
|
||||
static volatile int core_in_use = 0;
|
||||
@ -51,6 +35,12 @@ static volatile int next_frame = 0;
|
||||
static volatile int framebuffer_ix = 0;
|
||||
static volatile int next_frame_ix = 0;
|
||||
|
||||
static const scene::scene scenes[] = {
|
||||
scene::tracker::scene,
|
||||
};
|
||||
|
||||
static const scene::scene * current_scene = &scenes[0];
|
||||
|
||||
void graphics_interrupt(uint32_t istnrm)
|
||||
{
|
||||
if (istnrm & istnrm::v_blank_in) {
|
||||
@ -152,22 +142,25 @@ void graphics_init()
|
||||
background_parameter2(texture_memory_alloc.background[0].start,
|
||||
0xff800080);
|
||||
|
||||
transfer_textures();
|
||||
transfer_palettes();
|
||||
}
|
||||
|
||||
void graphics_scene_init()
|
||||
{
|
||||
region_array_multipass(framebuffer.tile_width(),
|
||||
framebuffer.tile_height(),
|
||||
opb_size,
|
||||
¤t_scene->opb_size,
|
||||
ta_cont_count,
|
||||
texture_memory_alloc.region_array.start,
|
||||
texture_memory_alloc.object_list.start);
|
||||
|
||||
transfer_textures();
|
||||
transfer_palettes();
|
||||
}
|
||||
|
||||
void graphics_event(ta_parameter_writer& writer)
|
||||
{
|
||||
writer.offset = 0;
|
||||
|
||||
tracker::scene::transfer(writer);
|
||||
scene::tracker::transfer(writer);
|
||||
|
||||
while (ta_in_use);
|
||||
while (core_in_use);
|
||||
@ -176,8 +169,8 @@ void graphics_event(ta_parameter_writer& writer)
|
||||
texture_memory_alloc.isp_tsp_parameters.end,
|
||||
texture_memory_alloc.object_list.start,
|
||||
texture_memory_alloc.object_list.end,
|
||||
opb_size[0].total(),
|
||||
ta_alloc,
|
||||
current_scene->opb_size.total(),
|
||||
current_scene->ta_alloc,
|
||||
framebuffer.tile_width(),
|
||||
framebuffer.tile_height());
|
||||
ta_polygon_converter_writeback(writer.buf, writer.offset);
|
||||
|
@ -4,6 +4,9 @@
|
||||
|
||||
#include "holly/ta_parameter.hpp"
|
||||
|
||||
constexpr int ta_cont_count = 1;
|
||||
|
||||
void graphics_interrupt(uint32_t istnrm);
|
||||
void graphics_init();
|
||||
void graphics_event(ta_parameter_writer& writer);
|
||||
void graphics_scene_init();
|
||||
|
@ -239,6 +239,7 @@ void main()
|
||||
const float aica_clock_multiplier = 44.1;
|
||||
load_xm(aica_clock_multiplier);
|
||||
graphics_init();
|
||||
graphics_scene_init();
|
||||
|
||||
test_pattern();
|
||||
|
||||
|
13
src/scene/scene.hpp
Normal file
13
src/scene/scene.hpp
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "holly/region_array.hpp"
|
||||
|
||||
namespace scene {
|
||||
|
||||
struct scene {
|
||||
const uint32_t ta_alloc;
|
||||
const struct opb_size opb_size;
|
||||
void (* const transfer)(ta_parameter_writer& writer);
|
||||
};
|
||||
|
||||
}
|
@ -22,8 +22,7 @@ static inline int round_up(int n, int m)
|
||||
return n + m - rem;
|
||||
}
|
||||
|
||||
namespace tracker {
|
||||
namespace channel_status {
|
||||
namespace scene::tracker::channel_status {
|
||||
|
||||
void transfer(ta_parameter_writer& writer, int x, int y)
|
||||
{
|
||||
@ -99,5 +98,4 @@ void transfer(ta_parameter_writer& writer, int x, int y)
|
||||
//borders(writer, x, y);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
#include "holly/ta_parameter.hpp"
|
||||
|
||||
namespace tracker {
|
||||
namespace channel_status {
|
||||
namespace scene::tracker::channel_status {
|
||||
void transfer(ta_parameter_writer& writer, int x, int y);
|
||||
}
|
||||
}
|
||||
|
@ -172,8 +172,7 @@ static void transfer_line(ta_parameter_writer& writer, int line_index, int x, in
|
||||
}
|
||||
}
|
||||
|
||||
namespace tracker {
|
||||
namespace notes {
|
||||
namespace scene::tracker::notes {
|
||||
|
||||
void borders(ta_parameter_writer& writer, int x, int y)
|
||||
{
|
||||
@ -249,5 +248,4 @@ void transfer_middle_line(ta_parameter_writer& writer, float x, float y)
|
||||
0x202020);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,10 @@
|
||||
|
||||
#include "holly/ta_parameter.hpp"
|
||||
|
||||
namespace tracker {
|
||||
namespace notes {
|
||||
namespace scene::tracker::notes {
|
||||
|
||||
void borders(ta_parameter_writer& writer, int x, int y);
|
||||
void transfer_lines(ta_parameter_writer& writer, int x, int y);
|
||||
void transfer_middle_line(ta_parameter_writer& writer, float x, float y);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
#include "../../ta_parameter.hpp"
|
||||
#include "holly/ta_bits.hpp"
|
||||
|
||||
#include "ta_parameter.hpp"
|
||||
|
||||
#include "notes.hpp"
|
||||
#include "channel_status.hpp"
|
||||
#include "scene/scene.hpp"
|
||||
|
||||
namespace tracker {
|
||||
namespace scene {
|
||||
namespace scene::tracker {
|
||||
|
||||
void transfer(ta_parameter_writer& writer)
|
||||
{
|
||||
void transfer(ta_parameter_writer& writer)
|
||||
{
|
||||
const int x = 3;
|
||||
const int y = 100;
|
||||
|
||||
@ -44,7 +46,5 @@ 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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
namespace tracker {
|
||||
namespace scene {
|
||||
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,
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user