generic_sparse_struct: constexpr constructors

ta_polygon_converter_transfer: const buf
This commit is contained in:
Zack Buhman 2024-05-19 08:23:13 -05:00
parent b874ec56b5
commit 0510598233
5 changed files with 273 additions and 273 deletions

View File

@ -54,7 +54,7 @@ void ta_polygon_converter_cont(uint32_t ol_base_offset,
(void)_dummy_read;
}
void ta_polygon_converter_transfer(volatile uint32_t * buf, uint32_t size)
void ta_polygon_converter_transfer(volatile uint32_t const * const buf, uint32_t size)
{
/* wait for previous transfer to complete (if any) */
//while ((system.C2DST & C2DST__STATUS) != 0); /* 1 == transfer is in progress */

View File

@ -8,7 +8,7 @@ void ta_polygon_converter_init(uint32_t opb_total_size, // for one tile, for all
uint32_t tile_height); // in tile units (e.g: (480 / 32))
void ta_polygon_converter_cont(uint32_t ol_base_offset,
uint32_t ta_alloc);
void ta_polygon_converter_transfer(volatile uint32_t * buf, uint32_t size);
void ta_polygon_converter_transfer(volatile uint32_t const * const buf, uint32_t size);
void ta_wait_opaque_list();
void ta_wait_opaque_modifier_volume_list();
void ta_wait_translucent_list();

View File

@ -14,8 +14,8 @@ namespace ta_global_parameter {
uint32_t _res5;
uint32_t _res6;
end_of_list(const uint32_t parameter_control_word
)
constexpr end_of_list(const uint32_t parameter_control_word
)
: parameter_control_word(parameter_control_word)
, _res0(0)
, _res1(0)
@ -51,12 +51,12 @@ namespace ta_global_parameter {
uint32_t user_clip_x_max;
uint32_t user_clip_y_max;
user_tile_clip(const uint32_t parameter_control_word,
const uint32_t user_clip_x_min,
const uint32_t user_clip_y_min,
const uint32_t user_clip_x_max,
const uint32_t user_clip_y_max
)
constexpr user_tile_clip(const uint32_t parameter_control_word,
const uint32_t user_clip_x_min,
const uint32_t user_clip_y_min,
const uint32_t user_clip_x_max,
const uint32_t user_clip_y_max
)
: parameter_control_word(parameter_control_word)
, _res0(0)
, _res1(0)
@ -92,13 +92,13 @@ namespace ta_global_parameter {
uint32_t bounding_box_x_max;
uint32_t bounding_box_y_max;
object_list_set(const uint32_t parameter_control_word,
const uint32_t object_pointer,
const uint32_t bounding_box_x_min,
const uint32_t bounding_box_y_min,
const uint32_t bounding_box_x_max,
const uint32_t bounding_box_y_max
)
constexpr object_list_set(const uint32_t parameter_control_word,
const uint32_t object_pointer,
const uint32_t bounding_box_x_min,
const uint32_t bounding_box_y_min,
const uint32_t bounding_box_x_max,
const uint32_t bounding_box_y_max
)
: parameter_control_word(parameter_control_word)
, object_pointer(object_pointer)
, _res0(0)
@ -134,13 +134,13 @@ namespace ta_global_parameter {
uint32_t data_size_for_sort_dma;
uint32_t next_address_for_sort_dma;
polygon_type_0(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma
)
constexpr polygon_type_0(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, tsp_instruction_word(tsp_instruction_word)
@ -176,15 +176,15 @@ namespace ta_global_parameter {
float face_color_g;
float face_color_b;
polygon_type_1(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const float face_color_alpha,
const float face_color_r,
const float face_color_g,
const float face_color_b
)
constexpr polygon_type_1(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const float face_color_alpha,
const float face_color_r,
const float face_color_g,
const float face_color_b
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, tsp_instruction_word(tsp_instruction_word)
@ -228,21 +228,21 @@ namespace ta_global_parameter {
float face_offset_color_g;
float face_offset_color_b;
polygon_type_2(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma,
const float face_color_alpha,
const float face_color_r,
const float face_color_g,
const float face_color_b,
const float face_offset_color_alpha,
const float face_offset_color_r,
const float face_offset_color_g,
const float face_offset_color_b
)
constexpr polygon_type_2(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma,
const float face_color_alpha,
const float face_color_r,
const float face_color_g,
const float face_color_b,
const float face_offset_color_alpha,
const float face_offset_color_r,
const float face_offset_color_g,
const float face_offset_color_b
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, tsp_instruction_word(tsp_instruction_word)
@ -294,15 +294,15 @@ namespace ta_global_parameter {
uint32_t data_size_for_sort_dma;
uint32_t next_address_for_sort_dma;
polygon_type_3(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word_0,
const uint32_t texture_control_word_0,
const uint32_t tsp_instruction_word_1,
const uint32_t texture_control_word_1,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma
)
constexpr polygon_type_3(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word_0,
const uint32_t texture_control_word_0,
const uint32_t tsp_instruction_word_1,
const uint32_t texture_control_word_1,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, tsp_instruction_word_0(tsp_instruction_word_0)
@ -346,23 +346,23 @@ namespace ta_global_parameter {
float face_color_g_1;
float face_color_b_1;
polygon_type_4(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word_0,
const uint32_t texture_control_word_0,
const uint32_t tsp_instruction_word_1,
const uint32_t texture_control_word_1,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma,
const float face_color_alpha_0,
const float face_color_r_0,
const float face_color_g_0,
const float face_color_b_0,
const float face_color_alpha_1,
const float face_color_r_1,
const float face_color_g_1,
const float face_color_b_1
)
constexpr polygon_type_4(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word_0,
const uint32_t texture_control_word_0,
const uint32_t tsp_instruction_word_1,
const uint32_t texture_control_word_1,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma,
const float face_color_alpha_0,
const float face_color_r_0,
const float face_color_g_0,
const float face_color_b_0,
const float face_color_alpha_1,
const float face_color_r_1,
const float face_color_g_1,
const float face_color_b_1
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, tsp_instruction_word_0(tsp_instruction_word_0)
@ -414,15 +414,15 @@ namespace ta_global_parameter {
uint32_t data_size_for_sort_dma;
uint32_t next_address_for_sort_dma;
sprite(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const uint32_t base_color,
const uint32_t offset_color,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma
)
constexpr sprite(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word,
const uint32_t tsp_instruction_word,
const uint32_t texture_control_word,
const uint32_t base_color,
const uint32_t offset_color,
const uint32_t data_size_for_sort_dma,
const uint32_t next_address_for_sort_dma
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, tsp_instruction_word(tsp_instruction_word)
@ -458,9 +458,9 @@ namespace ta_global_parameter {
uint32_t _res4;
uint32_t _res5;
modifier_volume(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word
)
constexpr modifier_volume(const uint32_t parameter_control_word,
const uint32_t isp_tsp_instruction_word
)
: parameter_control_word(parameter_control_word)
, isp_tsp_instruction_word(isp_tsp_instruction_word)
, _res0(0)

View File

@ -14,12 +14,12 @@ namespace ta_vertex_parameter {
uint32_t base_color;
uint32_t _res2;
polygon_type_0(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t base_color
)
constexpr polygon_type_0(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t base_color
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -55,15 +55,15 @@ namespace ta_vertex_parameter {
float base_color_g;
float base_color_b;
polygon_type_1(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float base_color_alpha,
const float base_color_r,
const float base_color_g,
const float base_color_b
)
constexpr polygon_type_1(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float base_color_alpha,
const float base_color_r,
const float base_color_g,
const float base_color_b
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -99,12 +99,12 @@ namespace ta_vertex_parameter {
float base_intensity;
uint32_t _res2;
polygon_type_2(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float base_intensity
)
constexpr polygon_type_2(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float base_intensity
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -140,15 +140,15 @@ namespace ta_vertex_parameter {
uint32_t base_color;
uint32_t offset_color;
polygon_type_3(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u,
const float v,
const uint32_t base_color,
const uint32_t offset_color
)
constexpr polygon_type_3(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u,
const float v,
const uint32_t base_color,
const uint32_t offset_color
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -184,14 +184,14 @@ namespace ta_vertex_parameter {
uint32_t base_color;
uint32_t offset_color;
polygon_type_4(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v,
const uint32_t base_color,
const uint32_t offset_color
)
constexpr polygon_type_4(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v,
const uint32_t base_color,
const uint32_t offset_color
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -235,21 +235,21 @@ namespace ta_vertex_parameter {
float offset_color_g;
float offset_color_b;
polygon_type_5(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u,
const float v,
const float base_color_alpha,
const float base_color_r,
const float base_color_g,
const float base_color_b,
const float offset_color_alpha,
const float offset_color_r,
const float offset_color_g,
const float offset_color_b
)
constexpr polygon_type_5(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u,
const float v,
const float base_color_alpha,
const float base_color_r,
const float base_color_g,
const float base_color_b,
const float offset_color_alpha,
const float offset_color_r,
const float offset_color_g,
const float offset_color_b
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -309,20 +309,20 @@ namespace ta_vertex_parameter {
float offset_color_g;
float offset_color_b;
polygon_type_6(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v,
const float base_color_alpha,
const float base_color_r,
const float base_color_g,
const float base_color_b,
const float offset_color_alpha,
const float offset_color_r,
const float offset_color_g,
const float offset_color_b
)
constexpr polygon_type_6(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v,
const float base_color_alpha,
const float base_color_r,
const float base_color_g,
const float base_color_b,
const float offset_color_alpha,
const float offset_color_r,
const float offset_color_g,
const float offset_color_b
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -374,15 +374,15 @@ namespace ta_vertex_parameter {
float base_intensity;
float offset_intensity;
polygon_type_7(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u,
const float v,
const float base_intensity,
const float offset_intensity
)
constexpr polygon_type_7(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u,
const float v,
const float base_intensity,
const float offset_intensity
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -418,14 +418,14 @@ namespace ta_vertex_parameter {
float base_intensity;
float offset_intensity;
polygon_type_8(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v,
const float base_intensity,
const float offset_intensity
)
constexpr polygon_type_8(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v,
const float base_intensity,
const float offset_intensity
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -461,13 +461,13 @@ namespace ta_vertex_parameter {
uint32_t _res0;
uint32_t _res1;
polygon_type_9(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t base_color_0,
const uint32_t base_color_1
)
constexpr polygon_type_9(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t base_color_0,
const uint32_t base_color_1
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -503,13 +503,13 @@ namespace ta_vertex_parameter {
uint32_t _res0;
uint32_t _res1;
polygon_type_10(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t base_intensity_0,
const uint32_t base_intensity_1
)
constexpr polygon_type_10(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t base_intensity_0,
const uint32_t base_intensity_1
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -553,19 +553,19 @@ namespace ta_vertex_parameter {
uint32_t _res2;
uint32_t _res3;
polygon_type_11(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u_0,
const float v_0,
const uint32_t base_color_0,
const uint32_t offset_color_0,
const float u_1,
const float v_1,
const uint32_t base_color_1,
const uint32_t offset_color_1
)
constexpr polygon_type_11(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u_0,
const float v_0,
const uint32_t base_color_0,
const uint32_t offset_color_0,
const float u_1,
const float v_1,
const uint32_t base_color_1,
const uint32_t offset_color_1
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -625,17 +625,17 @@ namespace ta_vertex_parameter {
uint32_t _res4;
uint32_t _res5;
polygon_type_12(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v_0,
const uint32_t base_color_0,
const uint32_t offset_color_0,
const uint32_t u_v_1,
const uint32_t base_color_1,
const uint32_t offset_color_1
)
constexpr polygon_type_12(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v_0,
const uint32_t base_color_0,
const uint32_t offset_color_0,
const uint32_t u_v_1,
const uint32_t base_color_1,
const uint32_t offset_color_1
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -695,19 +695,19 @@ namespace ta_vertex_parameter {
uint32_t _res2;
uint32_t _res3;
polygon_type_13(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u_0,
const float v_0,
const uint32_t base_intensity_0,
const float offset_intensity_0,
const float u_1,
const float v_1,
const uint32_t base_intensity_1,
const float offset_intensity_1
)
constexpr polygon_type_13(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const float u_0,
const float v_0,
const uint32_t base_intensity_0,
const float offset_intensity_0,
const float u_1,
const float v_1,
const uint32_t base_intensity_1,
const float offset_intensity_1
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -767,17 +767,17 @@ namespace ta_vertex_parameter {
uint32_t _res4;
uint32_t _res5;
polygon_type_14(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v_0,
const uint32_t base_intensity_0,
const float offset_intensity_0,
const uint32_t u_v_1,
const uint32_t base_intensity_1,
const float offset_intensity_1
)
constexpr polygon_type_14(const uint32_t parameter_control_word,
const float x,
const float y,
const float z,
const uint32_t u_v_0,
const uint32_t base_intensity_0,
const float offset_intensity_0,
const uint32_t u_v_1,
const uint32_t base_intensity_1,
const float offset_intensity_1
)
: parameter_control_word(parameter_control_word)
, x(x)
, y(y)
@ -837,19 +837,19 @@ namespace ta_vertex_parameter {
uint32_t _res2;
uint32_t _res3;
sprite_type_0(const uint32_t parameter_control_word,
const float a_x,
const float a_y,
const float a_z,
const float b_x,
const float b_y,
const float b_z,
const float c_x,
const float c_y,
const float c_z,
const float d_x,
const float d_y
)
constexpr sprite_type_0(const uint32_t parameter_control_word,
const float a_x,
const float a_y,
const float a_z,
const float b_x,
const float b_y,
const float b_z,
const float c_x,
const float c_y,
const float c_z,
const float d_x,
const float d_y
)
: parameter_control_word(parameter_control_word)
, a_x(a_x)
, a_y(a_y)
@ -909,22 +909,22 @@ namespace ta_vertex_parameter {
uint32_t b_u_b_v;
uint32_t c_u_c_v;
sprite_type_1(const uint32_t parameter_control_word,
const float a_x,
const float a_y,
const float a_z,
const float b_x,
const float b_y,
const float b_z,
const float c_x,
const float c_y,
const float c_z,
const float d_x,
const float d_y,
const uint32_t a_u_a_v,
const uint32_t b_u_b_v,
const uint32_t c_u_c_v
)
constexpr sprite_type_1(const uint32_t parameter_control_word,
const float a_x,
const float a_y,
const float a_z,
const float b_x,
const float b_y,
const float b_z,
const float c_x,
const float c_y,
const float c_z,
const float d_x,
const float d_y,
const uint32_t a_u_a_v,
const uint32_t b_u_b_v,
const uint32_t c_u_c_v
)
: parameter_control_word(parameter_control_word)
, a_x(a_x)
, a_y(a_y)
@ -984,17 +984,17 @@ namespace ta_vertex_parameter {
uint32_t _res4;
uint32_t _res5;
modifier_volume(const uint32_t parameter_control_word,
const float a_x,
const float a_y,
const float a_z,
const float b_x,
const float b_y,
const float b_z,
const float c_x,
const float c_y,
const float c_z
)
constexpr modifier_volume(const uint32_t parameter_control_word,
const float a_x,
const float a_y,
const float a_z,
const float b_x,
const float b_y,
const float b_z,
const float c_x,
const float c_y,
const float c_z
)
: parameter_control_word(parameter_control_word)
, a_x(a_x)
, a_y(a_y)

View File

@ -94,7 +94,7 @@ def parse(rows, expected_offset, expected_sizes):
return declarations
def render_initializer(declaration, get_type):
initializer = f"{declaration.name}("
initializer = f"constexpr {declaration.name}("
padding = " " * len(initializer)
def start(i):
if i == 0: