adjust default view transform

This commit is contained in:
Zack Buhman 2025-07-16 22:40:02 -05:00
parent 25817f7780
commit 43cf90f55a
4 changed files with 46 additions and 16 deletions

View File

@ -61,7 +61,6 @@ void main()
input::init();
graphics::init();
texture::init();
printf("texture init\n");
interrupt_init();
system.IML6NRM = istnrm::end_of_render_tsp

View File

@ -90,11 +90,11 @@ namespace font {
return offset;
}
void face::draw_float(ta_parameter_writer& writer,
const vec3& p,
float num,
uint32_t base_color,
int length) const
int face::draw_float(ta_parameter_writer& writer,
const vec3& p,
float num,
uint32_t base_color,
int length) const
{
char s[20];
int offset = format_float(s, num);
@ -104,6 +104,28 @@ namespace font {
x += hori_advance * (length - offset);
}
draw_string(writer, {x, p.y, p.z}, s, base_color);
return length >= offset ? length : offset;
}
void face::draw_mat4(ta_parameter_writer& writer,
const vec3& p,
const mat4x4& mat,
uint32_t base_color,
int value_length) const
{
int len;
vec3 pos = p;
for (int row = 0; row < 4; row++) {
len = draw_float(writer, pos, mat[row][0], base_color, value_length);
pos.x += hori_advance * len;
len = draw_float(writer, pos, mat[row][1], base_color, value_length);
pos.x += hori_advance * len;
len = draw_float(writer, pos, mat[row][2], base_color, value_length);
pos.x += hori_advance * len;
len = draw_float(writer, pos, mat[row][3], base_color, value_length);
pos.x = p.x;
pos.y += height;
}
}
const face ter_u12n = {

View File

@ -37,11 +37,17 @@ namespace font {
}
}
void draw_float(ta_parameter_writer& writer,
const vec3& p,
float num,
uint32_t base_color,
int length = 0) const;
int draw_float(ta_parameter_writer& writer,
const vec3& p,
float num,
uint32_t base_color,
int length = 0) const;
void draw_mat4(ta_parameter_writer& writer,
const vec3& p,
const mat4x4& mat,
uint32_t base_color,
int value_length) const;
};
extern const face ter_u12n;

View File

@ -95,14 +95,12 @@ namespace graphics {
void draw()
{
font::ter_u12n.global(writer);
font::ter_u12n.draw_glyph(writer, vec3(10, 10, 10), 'a', 0xffffffff);
font::ter_u12n.draw_float(writer, vec3(10, 22, 10), 1.234, 0xffffffff, 7);
font::ter_u12n.draw_float(writer, vec3(10, 34, 10), -50.234, 0xffffffff, 7);
//font::ter_u12n.draw_mat4(writer, vec3(10, 22, 10), view_trans, 0xffffffff, 12);
writer.append<ta_global_parameter::end_of_list>() =
ta_global_parameter::end_of_list(para_control::para_type::end_of_list);
draw_axis(writer, view_trans);
draw_axis(writer, view_trans * scale(0.5f));
b.draw(writer, view_trans * scale(0.05f));
@ -133,6 +131,8 @@ namespace graphics {
0xc5f7c5f7);
framebuffer::spg_set_mode_640x480_vga();
//framebuffer::spg_set_mode_720x480_vga();
//framebuffer::init(720, 480,
framebuffer::init(640, 480,
texture_memory_alloc.framebuffer[0].start);
core_param_init(texture_memory_alloc.region_array.start,
@ -160,7 +160,10 @@ namespace graphics {
view_trans
= scale(vec3(s, s, 1))
* translate(vec3(0, 0, 10))
* rotate_x(pi / 4)
* rotate_y(pi / 4)
* scale(vec3(-1, -1, 1));
view_trans = view_trans * translate(vec3(0, 0, -0.9));
}
void view_transform()
@ -186,7 +189,7 @@ namespace graphics {
}
last_a[port_ix] = a;
view_trans = view_trans * rotate_x(dx) * rotate_y(dy);
//view_trans = view_trans * rotate_x(dx) * rotate_y(dy);
}
}
}