From 43cf90f55a74e3ec5884bc26d3e1b0593bb18bd1 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Wed, 16 Jul 2025 22:40:02 -0500 Subject: [PATCH] adjust default view transform --- src/demo/demo.cpp | 1 - src/demo/font.cpp | 32 +++++++++++++++++++++++++++----- src/demo/font.hpp | 16 +++++++++++----- src/demo/graphics.cpp | 13 ++++++++----- 4 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/demo/demo.cpp b/src/demo/demo.cpp index a6f0f5e..615f37e 100644 --- a/src/demo/demo.cpp +++ b/src/demo/demo.cpp @@ -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 diff --git a/src/demo/font.cpp b/src/demo/font.cpp index 975b6eb..5872998 100644 --- a/src/demo/font.cpp +++ b/src/demo/font.cpp @@ -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 = { diff --git a/src/demo/font.hpp b/src/demo/font.hpp index a9d2302..3815094 100644 --- a/src/demo/font.hpp +++ b/src/demo/font.hpp @@ -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; diff --git a/src/demo/graphics.cpp b/src/demo/graphics.cpp index ec1086f..47aced5 100644 --- a/src/demo/graphics.cpp +++ b/src/demo/graphics.cpp @@ -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(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); } } }