paint: cleanup

This commit is contained in:
luboslenco
2026-08-23 14:19:14 +02:00
parent 01357447ba
commit 97ade317ee
3 changed files with 8 additions and 45 deletions
-1
View File
@@ -199,7 +199,6 @@ bool ui_view2d_tiled_show = false;
bool ui_view2d_grid_redraw = true;
ui_handle_t *ui_view2d_htab;
bool sim_running = false;
bool sim_record = false;
bool viewport_recording = false;
bool node_shader_dump_to_script = false;
node_shader_context_t *parser_material_con;
+1 -44
View File
@@ -1,8 +1,7 @@
#include "global.h"
any_array_t *sim_transforms;
bool sim_initialized = false;
bool sim_initialized = false;
void sim_init() {
if (sim_initialized) {
@@ -19,58 +18,16 @@ void sim_update() {
trait_update();
physics_world_update();
iron_delay_idle_sleep();
if (sim_record) {
render_target_t *rt = any_map_get(render_path_render_targets, "last");
buffer_t *pixels = gpu_get_texture_pixels(rt->_image);
#ifdef IRON_BGRA
buffer_bgra_swap(pixels);
#endif
// iron_mp4_encode(pixels);
}
}
}
void sim_play() {
sim_running = true;
if (sim_record) {
if (string_equals(g_project->_->filepath, "")) {
console_error(tr("Save project first"));
sim_record = false;
return;
}
char *path = string("%s/output.mp4", path_base_dir(g_project->_->filepath));
render_target_t *rt = any_map_get(render_path_render_targets, "last");
// iron_mp4_begin(path, rt._image.width, rt._image.height);
}
// Save transforms
sim_transforms = any_array_create_from_raw((void *[]){}, 0);
mesh_object_t_array_t *pos = g_project->_->paint_objects;
for (i32 i = 0; i < pos->length; ++i) {
mat4_t *m = calloc(1, sizeof(mat4_t));
memcpy(m->m, pos->buffer[i]->base->transform->local.m, sizeof(m->m));
any_array_push(sim_transforms, m);
}
}
void sim_stop() {
sim_running = false;
trait_stop();
if (sim_record) {
// iron_mp4_end();
}
// Restore transforms
mesh_object_t_array_t *pos = g_project->_->paint_objects;
for (i32 i = 0; i < pos->length; ++i) {
transform_set_matrix(pos->buffer[i]->base->transform, *(mat4_t *)sim_transforms->buffer[i]);
physics_body_t *pb = pos->buffer[i]->base->_->body;
if (pb != NULL) {
physics_body_sync_transform(pb);
}
}
}
void sim_add_body(object_t *o, physics_shape_t shape, f32 mass) {
+7
View File
@@ -153,7 +153,10 @@ void viewport_capture_video_update(void *_) {
#ifdef IRON_BGRA
buffer_bgra_swap(pixels);
#endif
#ifdef WITH_VIDEO_WRITE
iron_mp4_encode(pixels);
#endif
}
void viewport_capture_video_begin() {
@@ -164,12 +167,16 @@ void viewport_capture_video_begin() {
viewport_recording = true;
char *path = string("%s/output.mp4", path_base_dir(g_project->_->filepath));
render_target_t *rt = any_map_get(render_path_render_targets, "last");
#ifdef WITH_VIDEO_WRITE
iron_mp4_begin(path, rt->_image->width, rt->_image->height);
#endif
sys_notify_on_update(viewport_capture_video_update, NULL);
}
void viewport_capture_video_end() {
sys_remove_update(viewport_capture_video_update);
#ifdef WITH_VIDEO_WRITE
iron_mp4_end();
#endif
viewport_recording = false;
}