Skip to content

Commit 2d14002

Browse files
committed
paint: cleanup
1 parent 5a677e0 commit 2d14002

17 files changed

Lines changed: 208 additions & 239 deletions

paint/sources/base.c

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2009,8 +2009,12 @@ void base_resize() {
20092009

20102010
string_array_t *base_combo_enum_texts(char *node_type) {
20112011
if (string_equals(node_type, "TEX_IMAGE")) {
2012-
if (project_asset_names->length > 0) {
2013-
return project_asset_names;
2012+
if (project_assets->length > 0) {
2013+
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);
2016+
}
2017+
return asset_names;
20142018
}
20152019
else {
20162020
string_array_t *empty = any_array_create_from_raw(
@@ -2041,8 +2045,12 @@ string_array_t *base_combo_enum_texts(char *node_type) {
20412045
}
20422046

20432047
if (string_equals(node_type, "image_texture_node")) {
2044-
if (project_asset_names->length > 0) {
2045-
return project_asset_names;
2048+
if (project_assets->length > 0) {
2049+
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);
2052+
}
2053+
return asset_names;
20462054
}
20472055
else {
20482056
string_array_t *empty = any_array_create_from_raw(
@@ -2100,8 +2108,12 @@ any_array_t *base_combo_enum_images(char *node_type) {
21002108
}
21012109

21022110
i32 base_get_asset_index(char *file_name) {
2103-
i32 i = string_array_index_of(project_asset_names, file_name);
2104-
return i >= 0 ? i : 0;
2111+
for (i32 i = 0; i < project_assets->length; ++i) {
2112+
if (string_equals(project_assets->buffer[i]->name, file_name)) {
2113+
return i;
2114+
}
2115+
}
2116+
return 0;
21052117
}
21062118

21072119
void base_toggle_fullscreen() {

paint/sources/globals.h

Lines changed: 127 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ char *manifest_url = "https://armorpaint.org";
1313
char *manifest_url_android = "https://play.google.com/store/apps/details?id=org.armorpaint";
1414
char *manifest_url_ios = "https://apps.apple.com/app/armorpaint/id1533967534";
1515

16+
context_t *g_context;
17+
project_t *g_project;
18+
config_t *g_config;
19+
ui_t *ui;
20+
1621
any_map_t *ui_children;
1722
any_map_t *ui_nodes_custom_buttons;
1823
gpu_texture_t *lut_image = NULL;
@@ -24,7 +29,6 @@ gpu_texture_t *layers_expc = NULL;
2429
f32 layers_default_base = 0.5;
2530
f32 layers_default_rough = 0.4;
2631
any_map_t *operator_ops;
27-
config_t *g_config = NULL;
2832
any_map_t *config_keymap;
2933
ui_align_t config_button_align = UI_ALIGN_LEFT;
3034
char *config_button_spacing = " ";
@@ -103,41 +107,40 @@ char *ui_files_default_path = "/Users";
103107
char *ui_files_default_path = "/";
104108
#endif
105109

106-
char *ui_files_filename;
107-
char *ui_files_path;
108-
char *ui_files_last_path = "";
109-
bool base_ui_enabled = true;
110-
bool base_view3d_show = true;
111-
bool base_is_dragging = false;
112-
bool base_is_resizing = false;
113-
asset_t *base_drag_asset = NULL;
114-
swatch_color_t *base_drag_swatch = NULL;
115-
char *base_drag_file = NULL;
116-
gpu_texture_t *base_drag_file_icon = NULL;
117-
f32 base_drag_off_x = 0.0;
118-
f32 base_drag_off_y = 0.0;
119-
draw_font_t *base_font = NULL;
120-
ui_theme_t *base_theme;
121-
i32 base_default_element_w = 100;
122-
i32 base_default_element_h = 28;
123-
i32 base_default_font_size = 13;
124-
ui_handle_t *base_res_handle;
125-
ui_handle_t *base_res_x_handle;
126-
ui_handle_t *base_res_y_handle;
127-
ui_handle_t *base_bits_handle;
128-
string_array_t *base_drop_paths;
129-
slot_material_t *base_drag_material = NULL;
130-
slot_layer_t *base_drag_layer = NULL;
131-
slot_brush_t *base_drag_brush = NULL;
132-
slot_font_t *base_drag_font = NULL;
133-
bool base_player_lock = false;
134-
ui_t *ui;
110+
char *ui_files_filename;
111+
char *ui_files_path;
112+
char *ui_files_last_path = "";
113+
bool base_ui_enabled = true;
114+
bool base_view3d_show = true;
115+
bool base_is_dragging = false;
116+
bool base_is_resizing = false;
117+
asset_t *base_drag_asset = NULL;
118+
swatch_color_t *base_drag_swatch = NULL;
119+
char *base_drag_file = NULL;
120+
gpu_texture_t *base_drag_file_icon = NULL;
121+
f32 base_drag_off_x = 0.0;
122+
f32 base_drag_off_y = 0.0;
123+
draw_font_t *base_font = NULL;
124+
ui_theme_t *base_theme;
125+
i32 base_default_element_w = 100;
126+
i32 base_default_element_h = 28;
127+
i32 base_default_font_size = 13;
128+
ui_handle_t *base_res_handle;
129+
ui_handle_t *base_res_x_handle;
130+
ui_handle_t *base_res_y_handle;
131+
ui_handle_t *base_bits_handle;
132+
string_array_t *base_drop_paths;
133+
slot_material_t *base_drag_material = NULL;
134+
slot_layer_t *base_drag_layer = NULL;
135+
slot_brush_t *base_drag_brush = NULL;
136+
slot_font_t *base_drag_font = NULL;
137+
bool base_player_lock = false;
138+
135139
bool ui_base_show = true;
136140
i32 ui_base_viewport_col;
137141
ui_handle_t_array_t *ui_base_hwnds;
138142
ui_handle_t_array_t *ui_base_htabs;
139143
tab_draw_array_t_array_t *ui_base_hwnd_tabs;
140-
context_t *g_context;
141144
i32 ui_toolbar_default_w = 36;
142145
ui_handle_t *ui_toolbar_handle;
143146
string_array_t *ui_toolbar_tool_names;
@@ -171,22 +174,16 @@ bool ui_menu_show_first = true;
171174
i32 render_path_base_bloom_current_mip = 0;
172175
f32 render_path_base_bloom_sample_scale;
173176
bool render_path_base_buf_swapped = false;
174-
project_t *g_project;
175-
char *project_filepath = "";
177+
char *project_filepath = "";
176178
asset_t_array_t *project_assets;
177-
string_array_t *project_asset_names;
178179
i32 project_asset_id = 0;
179-
string_array_t *project_mesh_assets;
180180
node_group_t_array_t *project_material_groups;
181181
mesh_object_t_array_t *project_paint_objects = NULL;
182-
any_imap_t *project_asset_map; // gpu_texture_t | font_t
183182
string_array_t *project_mesh_list = NULL;
184183
slot_material_t_array_t *project_materials;
185184
slot_brush_t_array_t *project_brushes;
186185
slot_layer_t_array_t *project_layers;
187186
slot_font_t_array_t *project_fonts;
188-
i32_array_t *project_atlas_objects = NULL;
189-
string_array_t *project_atlas_names = NULL;
190187
gpu_pipeline_t *ui_view2d_pipe;
191188
i32 ui_view2d_channel_loc;
192189
view_2d_type_t ui_view2d_type = VIEW_2D_TYPE_LAYER;
@@ -300,6 +297,98 @@ ui_node_t_array_t *nodes_material_neural;
300297
ui_node_t_array_t *nodes_material_group;
301298
node_list_t_array_t *nodes_material_list = NULL;
302299
i32 make_mesh_layer_pass_count = 1;
300+
301+
i32 ui_sidebar_default_w_mini = 56;
302+
i32 ui_sidebar_default_w_full = 280;
303+
i32 ui_sidebar_default_w;
304+
ui_handle_t *ui_sidebar_hminimized;
305+
i32 ui_sidebar_w_mini;
306+
char *console_message = "";
307+
f32 console_message_timer = 0.0;
308+
i32 console_message_color = 0x00000000;
309+
string_array_t *console_last_traces;
310+
vec4_t camera_origins[2];
311+
mat4_t camera_views[2];
312+
ui_handle_t *box_preferences_htab;
313+
string_array_t *box_preferences_files_plugin = NULL;
314+
ui_handle_t *box_preferences_h_theme;
315+
ui_handle_t *box_preferences_h_preset;
316+
slot_layer_t *render_path_paint_live_layer = NULL;
317+
i32 render_path_paint_live_layer_drawn = 0;
318+
bool render_path_paint_live_layer_locked = false;
319+
bool render_path_paint_push_undo_last;
320+
bool ui_box_show = false;
321+
ui_handle_t *ui_box_hwnd;
322+
bool ui_box_click_to_hide = true;
323+
i32 ui_box_modalw = 400;
324+
i32 ui_box_modalh = 170;
325+
ui_handle_t *tab_layers_layer_name_handle;
326+
gpu_texture_t *util_uv_uvmap = NULL;
327+
bool util_uv_uvmap_cached = false;
328+
gpu_texture_t *util_uv_trianglemap = NULL;
329+
bool util_uv_trianglemap_cached = false;
330+
gpu_texture_t *util_uv_dilatemap = NULL;
331+
bool util_uv_dilatemap_cached = false;
332+
gpu_texture_t *util_uv_uvislandmap = NULL;
333+
bool util_uv_uvislandmap_cached = false;
334+
i32 render_path_raytrace_frame = 0;
335+
bool render_path_raytrace_ready = false;
336+
bool render_path_raytrace_init_shader = true;
337+
f32_array_t *render_path_raytrace_f32a;
338+
mat4_t render_path_raytrace_help_mat;
339+
gpu_texture_t *render_path_raytrace_last_envmap = NULL;
340+
bool render_path_raytrace_is_bake = false;
341+
342+
#ifdef IRON_DIRECT3D12
343+
char *render_path_raytrace_ext = ".cso";
344+
#elif defined(IRON_METAL)
345+
char *render_path_raytrace_ext = ".metal";
346+
#else
347+
char *render_path_raytrace_ext = ".spirv";
348+
#endif
349+
350+
bool sculpt_push_undo = false;
351+
i32 ui_statusbar_default_h = 33;
352+
char *parser_material_bake_passthrough_strength = "0.0";
353+
char *parser_material_bake_passthrough_radius = "0.0";
354+
char *parser_material_bake_passthrough_offset = "0.0";
355+
356+
any_imap_t *neural_node_results;
357+
ui_node_t *neural_node_current;
358+
i32 neural_node_downloading = 0;
359+
neural_node_model_t_array_t *neural_node_models = NULL;
360+
361+
char *str_hue_sat = "\
362+
fun hsv_to_rgb(c: float3): float3 { \
363+
var K: float4 = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); \
364+
var p: float3 = abs3(frac3(c.xxx + K.xyz) * 6.0 - K.www); \
365+
return lerp3(K.xxx, clamp3(p - K.xxx, float3(0.0, 0.0, 0.0), float3(1.0, 1.0, 1.0)), c.y) * c.z; \
366+
} \
367+
fun rgb_to_hsv(c: float3): float3 { \
368+
var K: float4 = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); \
369+
var p: float4 = lerp4(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g)); \
370+
var q: float4 = lerp4(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r)); \
371+
var d: float = q.x - min(q.w, q.y); \
372+
var e: float = 0.0000000001; \
373+
return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); \
374+
} \
375+
fun hue_sat(col: float3, shift: float4): float3 { \
376+
var hsv: float3 = rgb_to_hsv(col); \
377+
hsv.x += shift.x; \
378+
hsv.y *= shift.y; \
379+
hsv.z *= shift.z; \
380+
return lerp3(hsv_to_rgb(hsv), col, shift.w); \
381+
} \
382+
";
383+
384+
char *str_brightcontrast = "\
385+
fun brightcontrast(col: float3, bright: float, contr: float): float3 { \
386+
var a: float = 1.0 + contr; \
387+
var b: float = bright - contr * 0.5; \
388+
return max3(a * col + b, float3(0.0, 0.0, 0.0)); \
389+
} \
390+
";
391+
303392
char *str_cotangent_frame = "\
304393
fun cotangent_frame(n: float3, p: float3, tex_coord: float2): float3x3 { \
305394
var duv1: float2 = ddx2(tex_coord); \
@@ -404,93 +493,3 @@ fun dither_bayer(uv: float2): float { \
404493
return 5.0 / 16.0; \
405494
} \
406495
";
407-
i32 ui_sidebar_default_w_mini = 56;
408-
i32 ui_sidebar_default_w_full = 280;
409-
i32 ui_sidebar_default_w;
410-
ui_handle_t *ui_sidebar_hminimized;
411-
i32 ui_sidebar_w_mini;
412-
char *console_message = "";
413-
f32 console_message_timer = 0.0;
414-
i32 console_message_color = 0x00000000;
415-
string_array_t *console_last_traces;
416-
vec4_t camera_origins[2];
417-
mat4_t camera_views[2];
418-
ui_handle_t *box_preferences_htab;
419-
string_array_t *box_preferences_files_plugin = NULL;
420-
ui_handle_t *box_preferences_h_theme;
421-
ui_handle_t *box_preferences_h_preset;
422-
slot_layer_t *render_path_paint_live_layer = NULL;
423-
i32 render_path_paint_live_layer_drawn = 0;
424-
bool render_path_paint_live_layer_locked = false;
425-
bool render_path_paint_push_undo_last;
426-
bool ui_box_show = false;
427-
ui_handle_t *ui_box_hwnd;
428-
bool ui_box_click_to_hide = true;
429-
i32 ui_box_modalw = 400;
430-
i32 ui_box_modalh = 170;
431-
ui_handle_t *tab_layers_layer_name_handle;
432-
gpu_texture_t *util_uv_uvmap = NULL;
433-
bool util_uv_uvmap_cached = false;
434-
gpu_texture_t *util_uv_trianglemap = NULL;
435-
bool util_uv_trianglemap_cached = false;
436-
gpu_texture_t *util_uv_dilatemap = NULL;
437-
bool util_uv_dilatemap_cached = false;
438-
gpu_texture_t *util_uv_uvislandmap = NULL;
439-
bool util_uv_uvislandmap_cached = false;
440-
i32 render_path_raytrace_frame = 0;
441-
bool render_path_raytrace_ready = false;
442-
bool render_path_raytrace_init_shader = true;
443-
f32_array_t *render_path_raytrace_f32a;
444-
mat4_t render_path_raytrace_help_mat;
445-
gpu_texture_t *render_path_raytrace_last_envmap = NULL;
446-
bool render_path_raytrace_is_bake = false;
447-
448-
#ifdef IRON_DIRECT3D12
449-
char *render_path_raytrace_ext = ".cso";
450-
#elif defined(IRON_METAL)
451-
char *render_path_raytrace_ext = ".metal";
452-
#else
453-
char *render_path_raytrace_ext = ".spirv";
454-
#endif
455-
456-
bool sculpt_push_undo = false;
457-
i32 ui_statusbar_default_h = 33;
458-
char *parser_material_bake_passthrough_strength = "0.0";
459-
char *parser_material_bake_passthrough_radius = "0.0";
460-
char *parser_material_bake_passthrough_offset = "0.0";
461-
462-
char *str_hue_sat = "\
463-
fun hsv_to_rgb(c: float3): float3 { \
464-
var K: float4 = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); \
465-
var p: float3 = abs3(frac3(c.xxx + K.xyz) * 6.0 - K.www); \
466-
return lerp3(K.xxx, clamp3(p - K.xxx, float3(0.0, 0.0, 0.0), float3(1.0, 1.0, 1.0)), c.y) * c.z; \
467-
} \
468-
fun rgb_to_hsv(c: float3): float3 { \
469-
var K: float4 = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); \
470-
var p: float4 = lerp4(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g)); \
471-
var q: float4 = lerp4(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r)); \
472-
var d: float = q.x - min(q.w, q.y); \
473-
var e: float = 0.0000000001; \
474-
return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); \
475-
} \
476-
fun hue_sat(col: float3, shift: float4): float3 { \
477-
var hsv: float3 = rgb_to_hsv(col); \
478-
hsv.x += shift.x; \
479-
hsv.y *= shift.y; \
480-
hsv.z *= shift.z; \
481-
return lerp3(hsv_to_rgb(hsv), col, shift.w); \
482-
} \
483-
";
484-
485-
char *str_brightcontrast = "\
486-
fun brightcontrast(col: float3, bright: float, contr: float): float3 { \
487-
var a: float = 1.0 + contr; \
488-
var b: float = bright - contr * 0.5; \
489-
return max3(a * col + b, float3(0.0, 0.0, 0.0)); \
490-
} \
491-
";
492-
493-
any_imap_t *neural_node_results;
494-
ui_node_t *neural_node_current;
495-
i32 neural_node_downloading = 0;
496-
neural_node_model_t_array_t *neural_node_models = NULL;

paint/sources/io/export_arm.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ string_array_t *export_arm_assets_to_files(char *project_path, asset_t_array_t *
5757

5858
string_array_t *export_arm_meshes_to_files(char *project_path) {
5959
string_array_t *mesh_files = any_array_create_from_raw((void *[]){}, 0);
60-
for (i32 i = 0; i < project_mesh_assets->length; ++i) {
61-
char *file = project_mesh_assets->buffer[i];
60+
for (i32 i = 0; i < g_project->mesh_assets->length; ++i) {
61+
char *file = g_project->mesh_assets->buffer[i];
6262
#ifdef IRON_IOS
6363
bool same_drive = false;
6464
#else
@@ -263,8 +263,6 @@ void export_arm_run_project() {
263263
g_project->layer_datas = ld;
264264
g_project->font_assets = font_files;
265265
g_project->mesh_assets = mesh_files;
266-
g_project->atlas_objects = project_atlas_objects;
267-
g_project->atlas_names = project_atlas_names;
268266

269267
tab_timeline_export(g_project);
270268

0 commit comments

Comments
 (0)