paint: cleanup
This commit is contained in:
@@ -31,8 +31,8 @@ node_shader_context_t *make_depth_run(material_t *data, material_context_t *matc
|
||||
// kong->vert_n = true;
|
||||
// node_shader_write_vert(kong, "var height: float = 0.0;");
|
||||
// i32 num_layers = 0;
|
||||
// for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
// slot_layer_t *l = project_layers->buffer[i];
|
||||
// for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
// slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
// if (!slot_layer_is_visible(l) || !l->paint_height || !slot_layer_is_layer(l)) {
|
||||
// continue;
|
||||
// }
|
||||
@@ -63,8 +63,8 @@ node_shader_context_t *make_depth_run(material_t *data, material_context_t *matc
|
||||
// {
|
||||
// slot_layer_t_array_t *sculpt_layers = any_array_create_from_raw((void *[]){}, 0);
|
||||
// i32_array_t *sculpt_indices = i32_array_create(0);
|
||||
// for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
// slot_layer_t *l = project_layers->buffer[i];
|
||||
// for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
// slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
// if (l->texpaint_sculpt != NULL && slot_layer_is_visible(l)) {
|
||||
// any_array_push(sculpt_layers, l);
|
||||
// i32_array_push(sculpt_indices, i);
|
||||
|
||||
@@ -26,7 +26,7 @@ void make_material_delete_context(shader_context_t *c) {
|
||||
}
|
||||
|
||||
void make_material_parse_mesh_material() {
|
||||
material_data_t *m = project_materials->buffer[0]->data;
|
||||
material_data_t *m = g_project->_->materials->buffer[0]->data;
|
||||
|
||||
for (i32 i = 0; i < m->_->shader->contexts->length; ++i) {
|
||||
shader_context_t *c = m->_->shader->contexts->buffer[i];
|
||||
@@ -98,7 +98,7 @@ void make_material_parse_mesh_preview_material() {
|
||||
return;
|
||||
}
|
||||
|
||||
material_data_t *m = project_materials->buffer[0]->data;
|
||||
material_data_t *m = g_project->_->materials->buffer[0]->data;
|
||||
shader_context_t *scon = NULL;
|
||||
for (i32 i = 0; i < m->_->shader->contexts->length; ++i) {
|
||||
shader_context_t *c = m->_->shader->contexts->buffer[i];
|
||||
@@ -243,8 +243,8 @@ void make_material_traverse_nodes(ui_node_t_array_t *nodes, ui_node_canvas_t *gr
|
||||
ui_node_t *node = nodes->buffer[i];
|
||||
make_material_bake_node_preview(node, group, parents);
|
||||
if (string_equals(node->type, "GROUP")) {
|
||||
for (i32 j = 0; j < project_material_groups->length; ++j) {
|
||||
node_group_t *g = project_material_groups->buffer[j];
|
||||
for (i32 j = 0; j < g_project->_->material_groups->length; ++j) {
|
||||
node_group_t *g = g_project->_->material_groups->buffer[j];
|
||||
char *cname = g->canvas->name;
|
||||
if (string_equals(cname, node->name)) {
|
||||
any_array_push(parents, node);
|
||||
@@ -291,7 +291,7 @@ void make_material_parse_paint_material(bool bake_previews) {
|
||||
draw_begin(current, false, 0);
|
||||
}
|
||||
|
||||
material_data_t *m = project_materials->buffer[0]->data;
|
||||
material_data_t *m = g_project->_->materials->buffer[0]->data;
|
||||
for (i32 i = 0; i < m->_->shader->contexts->length; ++i) {
|
||||
shader_context_t *c = m->_->shader->contexts->buffer[i];
|
||||
if (string_equals(c->name, "paint")) {
|
||||
@@ -343,7 +343,7 @@ void make_material_parse_paint_material(bool bake_previews) {
|
||||
}
|
||||
|
||||
void make_material_save_paint_material() {
|
||||
material_data_t *m = project_materials->buffer[0]->data;
|
||||
material_data_t *m = g_project->_->materials->buffer[0]->data;
|
||||
for (i32 i = 0; i < m->_->shader->contexts->length; ++i) {
|
||||
shader_context_t *c = m->_->shader->contexts->buffer[i];
|
||||
if (string_equals(c->name, "paint")) {
|
||||
@@ -368,7 +368,7 @@ void make_material_restore_paint_material() {
|
||||
if (make_material_saved_scon == NULL) {
|
||||
return;
|
||||
}
|
||||
material_data_t *m = project_materials->buffer[0]->data;
|
||||
material_data_t *m = g_project->_->materials->buffer[0]->data;
|
||||
for (i32 i = 0; i < m->_->shader->contexts->length; ++i) {
|
||||
shader_context_t *c = m->_->shader->contexts->buffer[i];
|
||||
if (string_equals(c->name, "paint")) {
|
||||
@@ -516,7 +516,7 @@ f32 make_material_get_displace_strength() {
|
||||
}
|
||||
|
||||
void make_material_parse_depth_material() {
|
||||
material_data_t *m = project_materials->buffer[0]->data;
|
||||
material_data_t *m = g_project->_->materials->buffer[0]->data;
|
||||
|
||||
for (i32 i = 0; i < m->_->shader->contexts->length; ++i) {
|
||||
shader_context_t *c = m->_->shader->contexts->buffer[i];
|
||||
|
||||
@@ -119,8 +119,8 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
kong->vert_n = true;
|
||||
node_shader_write_vert(kong, "var height: float = 0.0;");
|
||||
i32 num_layers = 0;
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
slot_layer_t *l = project_layers->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
if (!slot_layer_is_visible(l) || !l->paint_height || !slot_layer_is_layer(l)) {
|
||||
continue;
|
||||
}
|
||||
@@ -165,8 +165,8 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
{
|
||||
slot_layer_t_array_t *sculpt_layers = any_array_create_from_raw((void *[]){}, 0);
|
||||
i32_array_t *sculpt_indices = i32_array_create(0);
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
slot_layer_t *l = project_layers->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
if (l->texpaint_sculpt != NULL && slot_layer_is_visible(l)) {
|
||||
any_array_push(sculpt_layers, l);
|
||||
i32_array_push(sculpt_indices, i);
|
||||
@@ -242,7 +242,7 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
continue;
|
||||
}
|
||||
texture_count++;
|
||||
i32 index = array_index_of(project_layers, m);
|
||||
i32 index = array_index_of(g_project->_->layers, m);
|
||||
node_shader_add_texture(kong, string("texpaint_view_mask%s", i32_to_string(m->id)), string("_texpaint%s", i32_to_string(index)));
|
||||
}
|
||||
}
|
||||
@@ -262,8 +262,8 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
slot_layer_t_array_t *layers = any_array_create_from_raw((void *[]){}, 0);
|
||||
i32 start_count = texture_count;
|
||||
bool is_material_tool = g_context->tool == TOOL_TYPE_MATERIAL;
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
slot_layer_t *l = project_layers->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
if (is_material_tool && l != g_context->layer) {
|
||||
continue;
|
||||
}
|
||||
@@ -301,7 +301,7 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
slot_layer_t *l = layers->buffer[i];
|
||||
if (slot_layer_get_object_mask(l) > 0) {
|
||||
node_shader_add_constant(kong, "uid: int", "_uid");
|
||||
if (slot_layer_get_object_mask(l) > project_paint_objects->length) { // Atlas
|
||||
if (slot_layer_get_object_mask(l) > g_project->_->paint_objects->length) { // Atlas
|
||||
mesh_object_t_array_t *visibles = project_get_atlas_objects(slot_layer_get_object_mask(l));
|
||||
node_shader_write_frag(kong, "if (");
|
||||
for (i32 i = 0; i < visibles->length; ++i) {
|
||||
@@ -314,7 +314,7 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
node_shader_write_frag(kong, ") {");
|
||||
}
|
||||
else { // Object mask
|
||||
i32 uid = project_paint_objects->buffer[slot_layer_get_object_mask(l) - 1]->base->uid;
|
||||
i32 uid = g_project->_->paint_objects->buffer[slot_layer_get_object_mask(l) - 1]->base->uid;
|
||||
node_shader_write_frag(kong, string("if (%s == constants.uid) {", i32_to_string(uid)));
|
||||
}
|
||||
}
|
||||
@@ -373,7 +373,7 @@ node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass) {
|
||||
}
|
||||
|
||||
if (l->paint_base) {
|
||||
if (l == project_layers->buffer[0]) {
|
||||
if (l == g_project->_->layers->buffer[0]) {
|
||||
node_shader_write_frag(kong, "basecol = texpaint_sample.rgb * texpaint_opac;");
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -597,8 +597,8 @@ node_shader_context_t *make_paint_run(material_t *data, material_context_t *matc
|
||||
{
|
||||
slot_layer_t_array_t *sculpt_layers = any_array_create_from_raw((void *[]){}, 0);
|
||||
i32_array_t *sculpt_indices = i32_array_create(0);
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
slot_layer_t *l = project_layers->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
if (l->texpaint_sculpt != NULL && slot_layer_is_visible(l)) {
|
||||
any_array_push(sculpt_layers, l);
|
||||
i32_array_push(sculpt_indices, i);
|
||||
|
||||
@@ -294,8 +294,8 @@ void sculpt_init_sculpt_texture(slot_layer_t *l, mesh_data_t *md) {
|
||||
sculpt_import_mesh_pack_to_texture(md, l->texpaint_sculpt);
|
||||
|
||||
i32 sculpt_layer_count = 0;
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
if (project_layers->buffer[i]->texpaint_sculpt != NULL) {
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
if (g_project->_->layers->buffer[i]->texpaint_sculpt != NULL) {
|
||||
sculpt_layer_count++;
|
||||
}
|
||||
}
|
||||
@@ -430,7 +430,7 @@ void render_path_sculpt_commands() {
|
||||
|
||||
material_context_t *material_context = NULL;
|
||||
shader_context_t *shader_context = NULL;
|
||||
material_data_t *mat = project_paint_objects->buffer[0]->material;
|
||||
material_data_t *mat = g_project->_->paint_objects->buffer[0]->material;
|
||||
for (i32 j = 0; j < mat->contexts->length; ++j) {
|
||||
if (string_equals(mat->contexts->buffer[j]->name, "paint")) {
|
||||
shader_context = shader_data_get_context(mat->_->shader, "paint");
|
||||
@@ -441,7 +441,7 @@ void render_path_sculpt_commands() {
|
||||
|
||||
gpu_set_pipeline(shader_context->_->pipe);
|
||||
uniforms_set_context_consts(shader_context, _render_path_bind_params);
|
||||
uniforms_set_obj_consts(shader_context, project_paint_objects->buffer[0]->base);
|
||||
uniforms_set_obj_consts(shader_context, g_project->_->paint_objects->buffer[0]->base);
|
||||
uniforms_set_material_consts(shader_context, material_context);
|
||||
gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
@@ -473,7 +473,7 @@ void slot_layer_apply_sculpt(slot_layer_t *raw) {
|
||||
return;
|
||||
}
|
||||
|
||||
mesh_object_t *o = project_paint_objects->buffer[0];
|
||||
mesh_object_t *o = g_project->_->paint_objects->buffer[0];
|
||||
mesh_data_t *g = o->data;
|
||||
i16_array_t *va0 = g->vertex_arrays->buffer[0]->values;
|
||||
i32 num_verts = math_floor(va0->length / 4.0);
|
||||
|
||||
@@ -299,8 +299,8 @@ void render_path_paint_commands_paint(bool dilation) {
|
||||
// matid % 3 == 0 - normal, 1 - emission, 2 - subsurface
|
||||
i32 id = buffer_get_u8(b, 3);
|
||||
i32 matid = math_floor((id - (id % 3)) / 3.0);
|
||||
for (i32 i = 0; i < project_materials->length; ++i) {
|
||||
slot_material_t *m = project_materials->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->materials->length; ++i) {
|
||||
slot_material_t *m = g_project->_->materials->buffer[i];
|
||||
if (m->id == matid) {
|
||||
context_set_material(m);
|
||||
g_context->materialid_picked = matid;
|
||||
@@ -312,8 +312,8 @@ void render_path_paint_commands_paint(bool dilation) {
|
||||
|
||||
// Update fill layers which are using materials containing a PICKER node
|
||||
slot_material_t *_material = g_context->material;
|
||||
for (i32 i = 0; i < project_materials->length; ++i) {
|
||||
slot_material_t *m = project_materials->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->materials->length; ++i) {
|
||||
slot_material_t *m = g_project->_->materials->buffer[i];
|
||||
bool has_picker = false;
|
||||
for (i32 j = 0; j < m->canvas->nodes->length; ++j) {
|
||||
ui_node_t *node = m->canvas->nodes->buffer[j];
|
||||
@@ -357,8 +357,8 @@ void render_path_paint_commands_paint(bool dilation) {
|
||||
i32 r_byte = buffer_get_u8(pixel, 0);
|
||||
#endif
|
||||
i32 index = r_byte - 1;
|
||||
if (index >= 0 && index < project_paint_objects->length) {
|
||||
g_context->paint_object = project_paint_objects->buffer[index];
|
||||
if (index >= 0 && index < g_project->_->paint_objects->length) {
|
||||
g_context->paint_object = g_project->_->paint_objects->buffer[index];
|
||||
|
||||
// g_context->layer->object_mask = index + 1;
|
||||
// context_set_layer(g_context->layer);
|
||||
@@ -434,8 +434,8 @@ void render_path_paint_commands_paint(bool dilation) {
|
||||
render_path_bind_target("gbuffer2", "gbuffer2");
|
||||
}
|
||||
i32 sculpt_layer_count = 0;
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
slot_layer_t *sl = project_layers->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
slot_layer_t *sl = g_project->_->layers->buffer[i];
|
||||
if (sl->texpaint_sculpt != NULL && slot_layer_is_visible(sl)) {
|
||||
render_path_bind_target(string("texpaint_sculpt%d", sl->id), string("texpaint_sculpt%d", sl->id));
|
||||
sculpt_layer_count++;
|
||||
@@ -762,7 +762,7 @@ bool render_path_paint_paint_enabled() {
|
||||
|
||||
// Skip paint if material references this layer and wants to paint into it at the same time
|
||||
bool self_in_material = false;
|
||||
i32 layer_i = array_index_of(project_layers, g_context->layer);
|
||||
i32 layer_i = array_index_of(g_project->_->layers, g_context->layer);
|
||||
ui_node_t_array_t *nodes = g_context->material->canvas->nodes;
|
||||
for (i32 i = 0; i < nodes->length; ++i) {
|
||||
ui_node_t *n = nodes->buffer[i];
|
||||
@@ -902,7 +902,7 @@ void render_path_paint_draw() {
|
||||
g_context->bake_type = g_context->bake_type == BAKE_TYPE_NORMAL ? BAKE_TYPE_NORMAL_OBJECT : BAKE_TYPE_POSITION; // Bake high poly data
|
||||
make_material_parse_paint_material(false);
|
||||
mesh_object_t *_paint_object = g_context->paint_object;
|
||||
mesh_object_t *high_poly = project_paint_objects->buffer[g_context->bake_high_poly];
|
||||
mesh_object_t *high_poly = g_project->_->paint_objects->buffer[g_context->bake_high_poly];
|
||||
bool _visible = high_poly->base->visible;
|
||||
high_poly->base->visible = true;
|
||||
context_select_paint_object(high_poly);
|
||||
@@ -931,8 +931,8 @@ void render_path_paint_draw() {
|
||||
g_context->merged_object->base->visible = false;
|
||||
}
|
||||
|
||||
for (i32 i = 0; i < project_paint_objects->length; ++i) {
|
||||
mesh_object_t *p = project_paint_objects->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->paint_objects->length; ++i) {
|
||||
mesh_object_t *p = g_project->_->paint_objects->buffer[i];
|
||||
context_select_paint_object(p);
|
||||
render_path_paint_commands_paint(true);
|
||||
}
|
||||
@@ -975,8 +975,8 @@ void render_path_paint_set_plane_mesh() {
|
||||
gc_unroot(render_path_paint_visibles);
|
||||
render_path_paint_visibles = u8_array_create_from_raw((u8[]){}, 0);
|
||||
gc_root(render_path_paint_visibles);
|
||||
for (i32 i = 0; i < project_paint_objects->length; ++i) {
|
||||
mesh_object_t *p = project_paint_objects->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->paint_objects->length; ++i) {
|
||||
mesh_object_t *p = g_project->_->paint_objects->buffer[i];
|
||||
u8_array_push(render_path_paint_visibles, p->base->visible);
|
||||
p->base->visible = false;
|
||||
}
|
||||
@@ -1085,8 +1085,8 @@ void render_path_paint_restore_plane_mesh() {
|
||||
g_context->paint2d_view = false;
|
||||
render_path_paint_planeo->base->visible = false;
|
||||
render_path_paint_planeo->base->transform->loc = (vec4_t){0.0, 0.0, 0.0, 1.0};
|
||||
for (i32 i = 0; i < project_paint_objects->length; ++i) {
|
||||
project_paint_objects->buffer[i]->base->visible = render_path_paint_visibles->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->paint_objects->length; ++i) {
|
||||
g_project->_->paint_objects->buffer[i]->base->visible = render_path_paint_visibles->buffer[i];
|
||||
}
|
||||
if (g_context->merged_object != NULL) {
|
||||
g_context->merged_object->base->visible = render_path_paint_merged_object_visible;
|
||||
@@ -1108,8 +1108,8 @@ void render_path_paint_bind_layers() {
|
||||
render_path_paint_use_live_layer(true);
|
||||
}
|
||||
|
||||
for (i32 i = 0; i < project_layers->length; ++i) {
|
||||
slot_layer_t *l = project_layers->buffer[i];
|
||||
for (i32 i = 0; i < g_project->_->layers->length; ++i) {
|
||||
slot_layer_t *l = g_project->_->layers->buffer[i];
|
||||
render_path_bind_target(string("texpaint%d", l->id), string("texpaint%d", l->id));
|
||||
|
||||
if (slot_layer_is_layer(l)) {
|
||||
|
||||
@@ -160,8 +160,8 @@ void render_path_raytrace_raytrace_init(char *shader_name, bool build) {
|
||||
_gpu_raytrace_as_init();
|
||||
|
||||
// if (g_context->tool == TOOL_TYPE_CURSOR) {
|
||||
// for (i32 i = 0; i < project_paint_objects->length; ++i) {
|
||||
// mesh_object_t *po = project_paint_objects->buffer[i];
|
||||
// for (i32 i = 0; i < g_project->_->paint_objects->length; ++i) {
|
||||
// mesh_object_t *po = g_project->_->paint_objects->buffer[i];
|
||||
// if (!po->base->visible) {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user