Skip to content

Commit 31d0a37

Browse files
committed
paint: cleanup
1 parent 2d14002 commit 31d0a37

59 files changed

Lines changed: 874 additions & 912 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

base/sources/libs/minic_api.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -643,16 +643,14 @@ void ui_files_show2(char *filters, bool is_save, bool open_multiple, void *files
643643
ui_files_show(filters, is_save, open_multiple, _ui_files_show_done);
644644
}
645645
void project_save(bool save_and_quit);
646-
extern char *project_filepath;
647646
extern context_t *g_context;
648647
extern config_t *g_config;
649648
extern project_t *g_project;
650-
extern mesh_object_t_array_t *project_paint_objects;
651649
char *project_filepath_get() {
652-
return project_filepath;
650+
return g_project->_->filepath;
653651
}
654652
void project_filepath_set(char *s) {
655-
project_filepath = string_copy(s);
653+
g_project->_->filepath = string_copy(s);
656654
}
657655
context_t *script_get_context() {
658656
return g_context;
@@ -665,9 +663,9 @@ project_t *script_get_project() {
665663
}
666664

667665
object_t *script_get_object(char *s) {
668-
for (int i = 0; i < project_paint_objects->length; ++i) {
669-
if (string_equals(project_paint_objects->buffer[i]->base->name, s)) {
670-
return project_paint_objects->buffer[i]->base;
666+
for (int i = 0; i < g_project->_->paint_objects->length; ++i) {
667+
if (string_equals(g_project->_->paint_objects->buffer[i]->base->name, s)) {
668+
return g_project->_->paint_objects->buffer[i]->base;
671669
}
672670
}
673671
return NULL;

paint/plugins/plugins.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ string_array_t *path_texture_formats(void);
3131
extern any_map_t *util_mesh_unwrappers;
3232
extern any_map_t *data_cached_images;
3333
void import_texture_run(char *path, bool hdr_as_envmap);
34-
extern any_array_t *project_assets;
34+
any_array_t *project_get_assets(void);
3535
void tab_textures_delete_texture(asset_t *asset);
3636

3737
int plugins_skinning_frame = -1;
@@ -54,6 +54,7 @@ static void *import_psd(char *path) {
5454

5555
// Delete existing layers so they can be re-imported
5656
char *prefix = string("%s.", filename);
57+
any_array_t *project_assets = project_get_assets();
5758
for (int i = project_assets->length - 1; i >= 0; --i) {
5859
asset_t *a = project_assets->buffer[i];
5960
if (starts_with(a->name, prefix)) {

paint/sources/args.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ void args_parse() {
2424
char *current_arg = iron_get_arg(i);
2525

2626
if (path_is_project(current_arg)) {
27-
gc_unroot(project_filepath);
28-
project_filepath = string_copy(current_arg);
29-
gc_root(project_filepath);
27+
g_project->_->filepath = string_copy(current_arg);
3028
}
3129
else if (string_equals(current_arg, "--background")) {
3230
args_background = true;
@@ -100,8 +98,8 @@ void args_run_export_queue(void *_) {
10098
}
10199

102100
void args_run_on_next_frame(void *_) {
103-
if (!string_equals(project_filepath, "")) {
104-
import_arm_run_project(project_filepath);
101+
if (!string_equals(g_project->_->filepath, "")) {
102+
import_arm_run_project(g_project->_->filepath);
105103
}
106104
else if (!string_equals(args_asset_path, "")) {
107105
import_asset_run(args_asset_path, -1, -1, false, true, NULL);

paint/sources/base.c

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void base_on_drop_files(char *drop_path) {
6262

6363
void base_init_on_start_arm(void *_) {
6464
if (base_start_arm_found) {
65-
import_arm_run_project(project_filepath);
65+
import_arm_run_project(g_project->_->filepath);
6666
}
6767
g_context->tool = TOOL_TYPE_CURSOR;
6868
// Auto-run main script
@@ -103,7 +103,7 @@ void base_material_dropped() {
103103
layers_create_fill_layer(uv_type, decal_mat, g_context->drag_dest);
104104
}
105105
else if (context_in_nodes()) {
106-
ui_nodes_accept_material_drop(array_index_of(project_materials, base_drag_material));
106+
ui_nodes_accept_material_drop(array_index_of(g_project->_->materials, base_drag_material));
107107
}
108108
else if (context_in_materials()) {
109109
tab_materials_accept_material_drop(base_drag_material);
@@ -114,7 +114,7 @@ void base_material_dropped() {
114114

115115
void base_update_import_asset_done() {
116116
// Asset was material
117-
if (project_materials->length > _base_material_count) {
117+
if (g_project->_->materials->length > _base_material_count) {
118118
gc_unroot(base_drag_material);
119119
base_drag_material = g_context->material;
120120
gc_root(base_drag_material);
@@ -191,7 +191,7 @@ void base_update(void *_) {
191191

192192
// Create image texture
193193
if (context_in_nodes()) {
194-
ui_nodes_accept_asset_drop(array_index_of(project_assets, base_drag_asset));
194+
ui_nodes_accept_asset_drop(array_index_of(g_project->_->assets, base_drag_asset));
195195
}
196196
else if (context_in_3d_view()) {
197197
if (ends_with(to_lower_case(base_drag_asset->file), ".hdr")) {
@@ -239,7 +239,7 @@ void base_update(void *_) {
239239
base_drop_x = mouse_x;
240240
base_drop_y = mouse_y;
241241

242-
_base_material_count = project_materials->length;
242+
_base_material_count = g_project->_->materials->length;
243243
import_asset_run(base_drag_file, base_drop_x, base_drop_y, true, true, &base_update_import_asset_done);
244244
}
245245

@@ -253,7 +253,7 @@ void base_update(void *_) {
253253
}
254254
else if (base_drag_layer != NULL) {
255255
if (context_in_nodes()) {
256-
ui_nodes_accept_layer_drop(array_index_of(project_layers, base_drag_layer));
256+
ui_nodes_accept_layer_drop(array_index_of(g_project->_->layers, base_drag_layer));
257257
}
258258
else if (context_in_layers() && base_is_dragging) {
259259
slot_layer_move(base_drag_layer, g_context->drag_dest);
@@ -652,7 +652,7 @@ void ui_base_init() {
652652

653653
project_new(false);
654654

655-
if (string_equals(project_filepath, "")) {
655+
if (string_equals(g_project->_->filepath, "")) {
656656
sys_notify_on_next_frame(&ui_base_init_on_next_frame, NULL);
657657
}
658658

@@ -1005,8 +1005,8 @@ void ui_base_update_ui() {
10051005
g_context->layer_preview_dirty = false;
10061006
g_context->mask_preview_last = NULL;
10071007
// Update all layer previews
1008-
for (i32 i = 0; i < project_layers->length; ++i) {
1009-
slot_layer_t *l = project_layers->buffer[i];
1008+
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
1009+
slot_layer_t *l = g_project->_->layers->buffer[i];
10101010
if (slot_layer_is_group(l)) {
10111011
continue;
10121012
}
@@ -1846,9 +1846,7 @@ void base_init() {
18461846
// Startup project
18471847
char *start_arm = string("%s/start.arm", iron_internal_files_location());
18481848
if (iron_file_exists(start_arm)) {
1849-
gc_unroot(project_filepath);
1850-
project_filepath = start_arm;
1851-
gc_root(project_filepath);
1849+
g_project->_->filepath = start_arm;
18521850
base_start_arm_found = true;
18531851
args_player = true;
18541852
}
@@ -2009,10 +2007,10 @@ void base_resize() {
20092007

20102008
string_array_t *base_combo_enum_texts(char *node_type) {
20112009
if (string_equals(node_type, "TEX_IMAGE")) {
2012-
if (project_assets->length > 0) {
2010+
if (g_project->_->assets->length > 0) {
20132011
string_array_t *asset_names = any_array_create_from_raw((void *[]){}, 0);
2014-
for (i32 i = 0; i < project_assets->length; ++i) {
2015-
any_array_push(asset_names, project_assets->buffer[i]->name);
2012+
for (i32 i = 0; i < g_project->_->assets->length; ++i) {
2013+
any_array_push(asset_names, g_project->_->assets->buffer[i]->name);
20162014
}
20172015
return asset_names;
20182016
}
@@ -2028,27 +2026,27 @@ string_array_t *base_combo_enum_texts(char *node_type) {
20282026

20292027
if (string_equals(node_type, "LAYER") || string_equals(node_type, "LAYER_MASK")) {
20302028
string_array_t *layer_names = any_array_create_from_raw((void *[]){}, 0);
2031-
for (i32 i = 0; i < project_layers->length; ++i) {
2032-
slot_layer_t *l = project_layers->buffer[i];
2029+
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
2030+
slot_layer_t *l = g_project->_->layers->buffer[i];
20332031
any_array_push(layer_names, l->name);
20342032
}
20352033
return layer_names;
20362034
}
20372035

20382036
if (string_equals(node_type, "MATERIAL")) {
20392037
string_array_t *material_names = any_array_create_from_raw((void *[]){}, 0);
2040-
for (i32 i = 0; i < project_materials->length; ++i) {
2041-
slot_material_t *m = project_materials->buffer[i];
2038+
for (i32 i = 0; i < g_project->_->materials->length; ++i) {
2039+
slot_material_t *m = g_project->_->materials->buffer[i];
20422040
any_array_push(material_names, m->canvas->name);
20432041
}
20442042
return material_names;
20452043
}
20462044

20472045
if (string_equals(node_type, "image_texture_node")) {
2048-
if (project_assets->length > 0) {
2046+
if (g_project->_->assets->length > 0) {
20492047
string_array_t *asset_names = any_array_create_from_raw((void *[]){}, 0);
2050-
for (i32 i = 0; i < project_assets->length; ++i) {
2051-
any_array_push(asset_names, project_assets->buffer[i]->name);
2048+
for (i32 i = 0; i < g_project->_->assets->length; ++i) {
2049+
any_array_push(asset_names, g_project->_->assets->buffer[i]->name);
20522050
}
20532051
return asset_names;
20542052
}
@@ -2068,8 +2066,8 @@ string_array_t *base_combo_enum_texts(char *node_type) {
20682066
any_array_t *base_combo_enum_images(char *node_type) {
20692067
if (string_equals(node_type, "TEX_IMAGE")) {
20702068
any_array_t *ar = any_array_create(0);
2071-
for (i32 i = 0; i < project_assets->length; ++i) {
2072-
asset_t *asset = project_assets->buffer[i];
2069+
for (i32 i = 0; i < g_project->_->assets->length; ++i) {
2070+
asset_t *asset = g_project->_->assets->buffer[i];
20732071
gpu_texture_t *img = project_get_image(asset);
20742072
any_array_push(ar, img);
20752073
}
@@ -2078,26 +2076,26 @@ any_array_t *base_combo_enum_images(char *node_type) {
20782076

20792077
if (string_equals(node_type, "LAYER") || string_equals(node_type, "LAYER_MASK")) {
20802078
any_array_t *ar = any_array_create(0);
2081-
for (i32 i = 0; i < project_layers->length; ++i) {
2082-
slot_layer_t *l = project_layers->buffer[i];
2079+
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
2080+
slot_layer_t *l = g_project->_->layers->buffer[i];
20832081
any_array_push(ar, l->texpaint_preview);
20842082
}
20852083
return ar;
20862084
}
20872085

20882086
if (string_equals(node_type, "MATERIAL")) {
20892087
any_array_t *ar = any_array_create(0);
2090-
for (i32 i = 0; i < project_materials->length; ++i) {
2091-
slot_material_t *m = project_materials->buffer[i];
2088+
for (i32 i = 0; i < g_project->_->materials->length; ++i) {
2089+
slot_material_t *m = g_project->_->materials->buffer[i];
20922090
any_array_push(ar, m->image_icon);
20932091
}
20942092
return ar;
20952093
}
20962094

20972095
if (string_equals(node_type, "image_texture_node")) {
20982096
any_array_t *ar = any_array_create(0);
2099-
for (i32 i = 0; i < project_assets->length; ++i) {
2100-
asset_t *asset = project_assets->buffer[i];
2097+
for (i32 i = 0; i < g_project->_->assets->length; ++i) {
2098+
asset_t *asset = g_project->_->assets->buffer[i];
21012099
gpu_texture_t *img = project_get_image(asset);
21022100
any_array_push(ar, img);
21032101
}
@@ -2108,8 +2106,8 @@ any_array_t *base_combo_enum_images(char *node_type) {
21082106
}
21092107

21102108
i32 base_get_asset_index(char *file_name) {
2111-
for (i32 i = 0; i < project_assets->length; ++i) {
2112-
if (string_equals(project_assets->buffer[i]->name, file_name)) {
2109+
for (i32 i = 0; i < g_project->_->assets->length; ++i) {
2110+
if (string_equals(g_project->_->assets->buffer[i]->name, file_name)) {
21132111
return i;
21142112
}
21152113
}
@@ -2442,8 +2440,8 @@ void base_update_workflow_create_sculpt_layer(void *_) {
24422440

24432441
void base_update_workflow() {
24442442
// Update Material Output nodes
2445-
for (i32 i = 0; i < project_materials->length; ++i) {
2446-
ui_node_array_t *nodes = project_materials->buffer[i]->canvas->nodes;
2443+
for (i32 i = 0; i < g_project->_->materials->length; ++i) {
2444+
ui_node_array_t *nodes = g_project->_->materials->buffer[i]->canvas->nodes;
24472445
for (i32 j = 0; j < nodes->length; ++j) {
24482446
if (string_equals(nodes->buffer[j]->type, "OUTPUT_MATERIAL_PBR")) {
24492447
nodes->buffer[j]->inputs->length = g_config->workflow == WORKFLOW_PBR ? 9 : 2;
@@ -2454,9 +2452,9 @@ void base_update_workflow() {
24542452

24552453
if (g_config->workflow == WORKFLOW_SCULPT) {
24562454
slot_layer_t *first_sculpt = NULL;
2457-
for (i32 i = project_layers->length - 1; i >= 0; --i) {
2458-
if (project_layers->buffer[i]->texpaint_sculpt != NULL) {
2459-
first_sculpt = project_layers->buffer[i];
2455+
for (i32 i = g_project->_->layers->length - 1; i >= 0; --i) {
2456+
if (g_project->_->layers->buffer[i]->texpaint_sculpt != NULL) {
2457+
first_sculpt = g_project->_->layers->buffer[i];
24602458
break;
24612459
}
24622460
}
@@ -2469,8 +2467,8 @@ void base_update_workflow() {
24692467
}
24702468
}
24712469
else {
2472-
for (i32 i = project_layers->length - 1; i >= 0; --i) {
2473-
slot_layer_t *l = project_layers->buffer[i];
2470+
for (i32 i = g_project->_->layers->length - 1; i >= 0; --i) {
2471+
slot_layer_t *l = g_project->_->layers->buffer[i];
24742472
if (l->texpaint_sculpt == NULL && slot_layer_is_layer(l)) {
24752473
context_set_layer(l);
24762474
break;
@@ -2480,13 +2478,13 @@ void base_update_workflow() {
24802478
}
24812479

24822480
void base_run_in_player() {
2483-
if (string_equals(project_filepath, "")) {
2481+
if (string_equals(g_project->_->filepath, "")) {
24842482
console_error(tr("Save project first"));
24852483
return;
24862484
}
24872485
export_arm_run_project();
24882486
char *bin = iron_get_arg(0);
2489-
iron_sys_command(string("%s %s --player", bin, project_filepath));
2487+
iron_sys_command(string("%s %s --player", bin, g_project->_->filepath));
24902488
// iron_exec_async()
24912489
}
24922490

0 commit comments

Comments
 (0)