Gpu cleanup (unstable)
This commit is contained in:
+40
-40
@@ -34,18 +34,18 @@ function layers_init() {
|
||||
draw_end();
|
||||
// Nor
|
||||
_gpu_begin(texpaint_nor._image, null, clear_flag_t.COLOR, color_from_floats(0.5, 0.5, 1.0, 0.0));
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
// Occ, rough, met
|
||||
_gpu_begin(texpaint_pack._image, null, clear_flag_t.COLOR, color_from_floats(1.0, 0.4, 0.0, 0.0));
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
let texpaint_nor_empty: render_target_t = map_get(render_path_render_targets, "texpaint_nor_empty");
|
||||
let texpaint_pack_empty: render_target_t = map_get(render_path_render_targets, "texpaint_pack_empty");
|
||||
// Nor
|
||||
_gpu_begin(texpaint_nor_empty._image, null, clear_flag_t.COLOR, color_from_floats(0.5, 0.5, 1.0, 0.0));
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
// Occ, rough, met
|
||||
_gpu_begin(texpaint_pack_empty._image, null, clear_flag_t.COLOR, color_from_floats(1.0, 0.4, 0.0, 0.0));
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
///end
|
||||
}
|
||||
|
||||
@@ -256,29 +256,29 @@ function layers_apply_mask(l: slot_layer_t, m: slot_layer_t) {
|
||||
|
||||
// Apply mask
|
||||
_gpu_begin(l.texpaint);
|
||||
gpu_set_pipeline(pipes_apply_mask);
|
||||
gpu_set_texture(pipes_tex0_mask, layers_temp_image);
|
||||
gpu_set_texture(pipes_texa_mask, m.texpaint);
|
||||
gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
iron_gpu_set_pipeline(pipes_apply_mask);
|
||||
iron_gpu_set_texture(pipes_tex0_mask, layers_temp_image);
|
||||
iron_gpu_set_texture(pipes_texa_mask, m.texpaint);
|
||||
iron_gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
iron_gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
gpu_draw();
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
}
|
||||
|
||||
function layers_commands_merge_pack(pipe: iron_gpu_pipeline_t, i0: iron_gpu_texture_t, i1: iron_gpu_texture_t, i1pack: iron_gpu_texture_t, i1mask_opacity: f32, i1texmask: iron_gpu_texture_t, i1blending: i32 = -1) {
|
||||
_gpu_begin(i0);
|
||||
gpu_set_pipeline(pipe);
|
||||
gpu_set_texture(pipes_tex0, i1);
|
||||
gpu_set_texture(pipes_tex1, i1pack);
|
||||
gpu_set_texture(pipes_texmask, i1texmask);
|
||||
gpu_set_texture(pipes_texa, layers_temp_image);
|
||||
iron_gpu_set_pipeline(pipe);
|
||||
iron_gpu_set_texture(pipes_tex0, i1);
|
||||
iron_gpu_set_texture(pipes_tex1, i1pack);
|
||||
iron_gpu_set_texture(pipes_texmask, i1texmask);
|
||||
iron_gpu_set_texture(pipes_texa, layers_temp_image);
|
||||
gpu_set_float(pipes_opac, i1mask_opacity);
|
||||
gpu_set_float(pipes_tex1w, i1pack.width);
|
||||
gpu_set_int(pipes_blending, i1blending);
|
||||
gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
iron_gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
iron_gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
gpu_draw();
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
}
|
||||
|
||||
function layers_is_fill_material(): bool {
|
||||
@@ -731,32 +731,32 @@ function layers_merge_layer(l0 : slot_layer_t, l1: slot_layer_t, use_mask: bool
|
||||
|
||||
if (slot_layer_is_mask(l1)) {
|
||||
_gpu_begin(l0.texpaint);
|
||||
gpu_set_pipeline(pipes_merge_mask);
|
||||
gpu_set_texture(pipes_tex0_merge_mask, l1.texpaint);
|
||||
gpu_set_texture(pipes_texa_merge_mask, layers_temp_image);
|
||||
iron_gpu_set_pipeline(pipes_merge_mask);
|
||||
iron_gpu_set_texture(pipes_tex0_merge_mask, l1.texpaint);
|
||||
iron_gpu_set_texture(pipes_texa_merge_mask, layers_temp_image);
|
||||
gpu_set_float(pipes_opac_merge_mask, slot_layer_get_opacity(l1));
|
||||
gpu_set_int(pipes_blending_merge_mask, l1.blending);
|
||||
gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
iron_gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
iron_gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
gpu_draw();
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
}
|
||||
|
||||
if (slot_layer_is_layer(l1)) {
|
||||
if (l1.paint_base) {
|
||||
_gpu_begin(l0.texpaint);
|
||||
gpu_set_pipeline(pipes_merge);
|
||||
gpu_set_texture(pipes_tex0, l1.texpaint);
|
||||
gpu_set_texture(pipes_tex1, empty);
|
||||
gpu_set_texture(pipes_texmask, mask);
|
||||
gpu_set_texture(pipes_texa, layers_temp_image);
|
||||
iron_gpu_set_pipeline(pipes_merge);
|
||||
iron_gpu_set_texture(pipes_tex0, l1.texpaint);
|
||||
iron_gpu_set_texture(pipes_tex1, empty);
|
||||
iron_gpu_set_texture(pipes_texmask, mask);
|
||||
iron_gpu_set_texture(pipes_texa, layers_temp_image);
|
||||
gpu_set_float(pipes_opac, slot_layer_get_opacity(l1));
|
||||
gpu_set_float(pipes_tex1w, empty.width);
|
||||
gpu_set_int(pipes_blending, l1.blending);
|
||||
gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
iron_gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
iron_gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
gpu_draw();
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
}
|
||||
|
||||
if (l0.texpaint_nor != null) {
|
||||
@@ -768,18 +768,18 @@ function layers_merge_layer(l0 : slot_layer_t, l1: slot_layer_t, use_mask: bool
|
||||
|
||||
if (l1.paint_nor) {
|
||||
_gpu_begin(l0.texpaint_nor);
|
||||
gpu_set_pipeline(pipes_merge);
|
||||
gpu_set_texture(pipes_tex0, l1.texpaint);
|
||||
gpu_set_texture(pipes_tex1, l1.texpaint_nor);
|
||||
gpu_set_texture(pipes_texmask, mask);
|
||||
gpu_set_texture(pipes_texa, layers_temp_image);
|
||||
iron_gpu_set_pipeline(pipes_merge);
|
||||
iron_gpu_set_texture(pipes_tex0, l1.texpaint);
|
||||
iron_gpu_set_texture(pipes_tex1, l1.texpaint_nor);
|
||||
iron_gpu_set_texture(pipes_texmask, mask);
|
||||
iron_gpu_set_texture(pipes_texa, layers_temp_image);
|
||||
gpu_set_float(pipes_opac, slot_layer_get_opacity(l1));
|
||||
gpu_set_float(pipes_tex1w, l1.texpaint_nor.width);
|
||||
gpu_set_int(pipes_blending, l1.paint_nor_blend ? 102 : 101);
|
||||
gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
iron_gpu_set_vertex_buffer(const_data_screen_aligned_vb);
|
||||
iron_gpu_set_index_buffer(const_data_screen_aligned_ib);
|
||||
gpu_draw();
|
||||
_gpu_end();
|
||||
iron_gpu_end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user