Clean up count drawing logic a bit, add iterations to the count text

This commit is contained in:
2024-07-26 21:07:18 +01:00
parent edc0383132
commit 2ddf2d0b48

View File

@@ -112,11 +112,10 @@ int main(void)
word_t root = allocator.alloc({best_frac}); word_t root = allocator.alloc({best_frac});
to_iterate.push(root); to_iterate.push(root);
word_t count = 1; word_t count = 1, prev_count = 0;
word_t prev_count = 0; std::stringstream format_stream;
std::stringstream count_format; std::string format_str;
std::string count_str; word_t format_str_width = 0;
word_t count_str_width = 0;
InitWindow(WIDTH, HEIGHT, "Calkin-Wilf Trees"); InitWindow(WIDTH, HEIGHT, "Calkin-Wilf Trees");
while (!WindowShouldClose()) while (!WindowShouldClose())
@@ -129,16 +128,17 @@ int main(void)
if (prev_count != count) if (prev_count != count)
{ {
prev_count = count; prev_count = count;
count_format << "Count=" << count; format_stream << "Count=" << count << "\n\n";
count_str = count_format.str(); format_stream << "Iterations=" << (count - 1) / 2;
count_format.str(""); format_str = format_stream.str();
count_str_width = MeasureText(count_str.c_str(), FONT_SIZE * 2); format_stream.str("");
format_str_width = MeasureText(format_str.c_str(), FONT_SIZE * 2);
} }
ClearBackground(BLACK); ClearBackground(BLACK);
BeginDrawing(); BeginDrawing();
draw_number_line(allocator); draw_number_line(allocator);
DrawText(count_str.c_str(), WIDTH / 2 - count_str_width / 2, DrawText(format_str.c_str(), WIDTH / 2 - format_str_width / 2,
LINE_TOP - HEIGHT / 8, FONT_SIZE * 2, WHITE); LINE_TOP - HEIGHT / 8, FONT_SIZE * 2, WHITE);
EndDrawing(); EndDrawing();
} }