use translucent rendering for everything
This commit is contained in:
parent
b2f5e09465
commit
dbd3fdba88
@ -62,16 +62,6 @@ void graphics_interrupt(uint32_t istnrm)
|
||||
core_in_use = 0;
|
||||
}
|
||||
|
||||
if (istnrm & istnrm::end_of_transferring_translucent_list) {
|
||||
system.ISTNRM = istnrm::end_of_transferring_translucent_list;
|
||||
|
||||
assert(pt_buf != nullptr);
|
||||
assert(pt_offset > 0);
|
||||
|
||||
ta_polygon_converter_writeback(pt_buf, pt_offset);
|
||||
ta_polygon_converter_transfer(pt_buf, pt_offset);
|
||||
}
|
||||
|
||||
if (istnrm & istnrm::end_of_transferring_punch_through_list) {
|
||||
system.ISTNRM = istnrm::end_of_transferring_punch_through_list;
|
||||
|
||||
@ -82,8 +72,8 @@ void graphics_interrupt(uint32_t istnrm)
|
||||
ta_polygon_converter_transfer(op_buf, op_offset);
|
||||
}
|
||||
|
||||
if (istnrm & istnrm::end_of_transferring_opaque_list) {
|
||||
system.ISTNRM = istnrm::end_of_transferring_opaque_list;
|
||||
if (istnrm & istnrm::end_of_transferring_translucent_list) {
|
||||
system.ISTNRM = istnrm::end_of_transferring_translucent_list;
|
||||
|
||||
core_in_use = 1;
|
||||
core_start_render2(texture_memory_alloc.region_array.start,
|
||||
@ -173,7 +163,7 @@ void graphics_scene_init(const opb_size * opb_size)
|
||||
void graphics_cursor(ta_multiwriter& multi)
|
||||
{
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
@ -194,7 +184,6 @@ void graphics_event(ta_multiwriter& multi)
|
||||
{
|
||||
multi.op.offset = 0;
|
||||
multi.pt.offset = 0;
|
||||
multi.tl.offset = 0;
|
||||
|
||||
if (scene::current_scene == &scene::scenes[scene::id::tracker] || scene::current_scene == &scene::scenes[scene::id::options]) {
|
||||
graphics_cursor(multi);
|
||||
@ -224,21 +213,7 @@ void graphics_event(ta_multiwriter& multi)
|
||||
ta_global_parameter::end_of_list(para_control::para_type::end_of_list);
|
||||
}
|
||||
|
||||
if (multi.tl.offset != 0) {
|
||||
multi.tl.append<ta_global_parameter::end_of_list>() =
|
||||
ta_global_parameter::end_of_list(para_control::para_type::end_of_list);
|
||||
}
|
||||
|
||||
if (multi.tl.offset != 0) {
|
||||
pt_buf = multi.pt.buf;
|
||||
pt_offset = multi.pt.offset;
|
||||
|
||||
op_buf = multi.op.buf;
|
||||
op_offset = multi.op.offset;
|
||||
|
||||
ta_polygon_converter_writeback(multi.tl.buf, multi.tl.offset);
|
||||
ta_polygon_converter_transfer(multi.tl.buf, multi.tl.offset);
|
||||
} else if (multi.pt.offset != 0) {
|
||||
if (multi.pt.offset != 0) {
|
||||
op_buf = multi.op.buf;
|
||||
op_offset = multi.op.offset;
|
||||
|
||||
|
@ -125,17 +125,14 @@ void main()
|
||||
system.IML6NRM = istnrm::end_of_render_tsp
|
||||
| istnrm::v_blank_in
|
||||
| istnrm::end_of_transferring_translucent_list
|
||||
| istnrm::end_of_transferring_punch_through_list
|
||||
| istnrm::end_of_transferring_opaque_list;
|
||||
| istnrm::end_of_transferring_punch_through_list;
|
||||
|
||||
system.IML4EXT = istext::aica;
|
||||
|
||||
static uint8_t op_buf[1024 * 1024] __attribute__((aligned(32)));
|
||||
static uint8_t pt_buf[1024 * 1024] __attribute__((aligned(32)));
|
||||
static uint8_t tl_buf[1024 * 1024 / 2] __attribute__((aligned(32)));
|
||||
ta_multiwriter multi(ta_parameter_writer(op_buf, (sizeof (op_buf))),
|
||||
ta_parameter_writer(pt_buf, (sizeof (pt_buf))),
|
||||
ta_parameter_writer(tl_buf, (sizeof (tl_buf))));
|
||||
ta_parameter_writer(pt_buf, (sizeof (pt_buf))));
|
||||
|
||||
static uint8_t send_buf[1024] __attribute__((aligned(32)));
|
||||
static uint8_t recv_buf[1024] __attribute__((aligned(32)));
|
||||
|
@ -15,13 +15,13 @@ namespace scene::emulator {
|
||||
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::no_list
|
||||
| ta_alloc_ctrl::t_opb::_32x4byte
|
||||
| ta_alloc_ctrl::om_opb::no_list
|
||||
| ta_alloc_ctrl::o_opb::_32x4byte,
|
||||
| ta_alloc_ctrl::o_opb::no_list,
|
||||
.opb_size = {
|
||||
.opaque = 32 * 4,
|
||||
.opaque = 0,
|
||||
.opaque_modifier = 0,
|
||||
.translucent = 0,
|
||||
.translucent = 32 * 4,
|
||||
.translucent_modifier = 0,
|
||||
.punch_through = 32 * 4
|
||||
},
|
||||
@ -90,7 +90,7 @@ namespace scene::emulator {
|
||||
draw_paragraph(multi.pt, color);
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
quad_type_0(multi.op,
|
||||
|
@ -59,14 +59,14 @@ static void render_mesh(ta_parameter_writer& writer, const mesh& mesh, const mat
|
||||
{
|
||||
if (wireframe) {
|
||||
global_polygon_untextured(writer,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
} else {
|
||||
uint32_t texture_size = tsp_instruction_word::texture_u_size::from_int(8)
|
||||
| tsp_instruction_word::texture_v_size::from_int(8);
|
||||
|
||||
global_polygon_intensity(writer,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
texture::offset::logo,
|
||||
texture_size,
|
||||
texture_control_word::pixel_format::_565);
|
||||
@ -136,13 +136,13 @@ 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::t_opb::_32x4byte
|
||||
| ta_alloc_ctrl::om_opb::no_list
|
||||
| ta_alloc_ctrl::o_opb::_32x4byte,
|
||||
| ta_alloc_ctrl::o_opb::no_list,
|
||||
.opb_size = {
|
||||
.opaque = 32 * 4,
|
||||
.opaque = 0,
|
||||
.opaque_modifier = 0,
|
||||
.translucent = 0,
|
||||
.translucent = 32 * 4,
|
||||
.translucent_modifier = 0,
|
||||
.punch_through = 0
|
||||
},
|
||||
|
@ -221,9 +221,9 @@ namespace scene::options {
|
||||
| ta_alloc_ctrl::tm_opb::no_list
|
||||
| ta_alloc_ctrl::t_opb::_32x4byte
|
||||
| ta_alloc_ctrl::om_opb::no_list
|
||||
| ta_alloc_ctrl::o_opb::_32x4byte,
|
||||
| ta_alloc_ctrl::o_opb::no_list,
|
||||
.opb_size = {
|
||||
.opaque = 32 * 4,
|
||||
.opaque = 0,
|
||||
.opaque_modifier = 0,
|
||||
.translucent = 32 * 4,
|
||||
.translucent_modifier = 0,
|
||||
@ -300,8 +300,8 @@ namespace scene::options {
|
||||
{
|
||||
update();
|
||||
top.draw(multi);
|
||||
draw_corners(multi.tl);
|
||||
draw_shroud(multi.tl);
|
||||
draw_corners(multi.op);
|
||||
draw_shroud(multi.op);
|
||||
}
|
||||
|
||||
void interrupt()
|
||||
|
@ -49,7 +49,7 @@ void draw(ta_multiwriter& multi, int x, int y)
|
||||
int xi = x + offset - 2;
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
transfer_horizontal_border(multi.op, xi, y, width_per_col * channels_per_row);
|
||||
@ -57,7 +57,7 @@ void draw(ta_multiwriter& multi, int x, int y)
|
||||
for (int col = 0; col < channels_per_row; col++) {
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
transfer_vertical_border(multi.op, xi, y, height_per_row);
|
||||
@ -85,7 +85,7 @@ void draw(ta_multiwriter& multi, int x, int y)
|
||||
}
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
transfer_vertical_border(multi.op, xi, y, height_per_row);
|
||||
|
@ -41,7 +41,7 @@ namespace scene::tracker::cover {
|
||||
| tsp_instruction_word::dst_alpha_instr::zero;
|
||||
|
||||
global_polygon_textured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
texture::offset::cover1,
|
||||
texture_size,
|
||||
texture_control_word::pixel_format::_565);
|
||||
|
@ -156,7 +156,7 @@ namespace scene::tracker::metadata {
|
||||
draw_values(multi.pt, x_values + 3, y + 3);
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
draw_border(multi.op, x_values, y);
|
||||
|
@ -342,7 +342,7 @@ void draw(ta_multiwriter& multi, float x, float y)
|
||||
draw_lines(multi.pt, x, y);
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
draw_borders(multi.op, x, y);
|
||||
|
||||
|
@ -156,9 +156,9 @@ namespace scene::tracker {
|
||||
| ta_alloc_ctrl::tm_opb::no_list
|
||||
| ta_alloc_ctrl::t_opb::_32x4byte
|
||||
| ta_alloc_ctrl::om_opb::no_list
|
||||
| ta_alloc_ctrl::o_opb::_32x4byte,
|
||||
| ta_alloc_ctrl::o_opb::no_list,
|
||||
.opb_size = {
|
||||
.opaque = 32 * 4,
|
||||
.opaque = 0,
|
||||
.opaque_modifier = 0,
|
||||
.translucent = 32 * 4,
|
||||
.translucent_modifier = 0,
|
||||
@ -261,20 +261,6 @@ namespace scene::tracker {
|
||||
}
|
||||
}
|
||||
|
||||
void draw_dummy_tl(ta_parameter_writer& writer)
|
||||
{
|
||||
global_polygon_untextured(writer,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
quad_type_0(writer,
|
||||
{0, 0, 0.1},
|
||||
{0, 0, 0.1},
|
||||
{0, 0, 0.1},
|
||||
{0, 0, 0.1},
|
||||
0x0);
|
||||
}
|
||||
|
||||
void transfer(ta_multiwriter& multi)
|
||||
{
|
||||
update_start();
|
||||
@ -292,8 +278,6 @@ namespace scene::tracker {
|
||||
if (options) {
|
||||
::scene::options::transfer(multi);
|
||||
} else {
|
||||
draw_dummy_tl(multi.tl);
|
||||
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ namespace scene::tracker::tracklist {
|
||||
draw_middle_line(multi.op, x, y + 3);
|
||||
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
float yi = y + glyph::vert_advance + 3;
|
||||
|
@ -5,5 +5,4 @@
|
||||
struct ta_multiwriter {
|
||||
ta_parameter_writer op;
|
||||
ta_parameter_writer pt;
|
||||
ta_parameter_writer tl;
|
||||
};
|
||||
|
@ -94,7 +94,7 @@ namespace widget {
|
||||
void button::draw(ta_multiwriter& multi)
|
||||
{
|
||||
global_polygon_untextured(multi.op,
|
||||
para_control::list_type::opaque,
|
||||
para_control::list_type::translucent,
|
||||
tsp_instruction_word::dst_alpha_instr::zero);
|
||||
|
||||
draw_shadow(multi.op);
|
||||
|
Loading…
x
Reference in New Issue
Block a user