paint: draw fixes
This commit is contained in:
+15
-33
@@ -216,27 +216,23 @@ void ui_base_update(void *_) {
|
||||
|
||||
ui_sidebar_w_mini = math_floor(ui_sidebar_default_w_mini * UI_SCALE());
|
||||
|
||||
if (!base_ui_enabled) {
|
||||
return;
|
||||
if (base_ui_enabled) {
|
||||
render_gizmo_update();
|
||||
util_layer_update_path();
|
||||
util_touch_update();
|
||||
util_stencil_transform();
|
||||
util_select_update();
|
||||
util_brush_update();
|
||||
util_layer_update_preview();
|
||||
util_shortcut_undo_redo();
|
||||
util_shortcut_global();
|
||||
util_shortcut_brush();
|
||||
util_shortcut_viewport();
|
||||
util_resize_borders();
|
||||
util_particle_update();
|
||||
operator_update();
|
||||
}
|
||||
|
||||
render_gizmo_update();
|
||||
util_layer_update_path();
|
||||
|
||||
util_touch_update();
|
||||
|
||||
util_stencil_transform();
|
||||
|
||||
util_select_update();
|
||||
|
||||
util_brush_update();
|
||||
|
||||
util_layer_update_preview();
|
||||
|
||||
util_shortcut_undo_redo();
|
||||
|
||||
operator_update();
|
||||
|
||||
string_array_t *keys = map_keys(g_plugins);
|
||||
for (i32 i = 0; i < keys->length; ++i) {
|
||||
plugin_t *p = any_map_get(g_plugins, keys->buffer[i]);
|
||||
@@ -245,26 +241,12 @@ void ui_base_update(void *_) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!base_ui_enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
util_shortcut_global();
|
||||
|
||||
util_shortcut_brush();
|
||||
|
||||
util_shortcut_viewport();
|
||||
|
||||
util_resize_borders();
|
||||
|
||||
if (!mouse_down("left")) {
|
||||
gc_unroot(ui_base_border_handle);
|
||||
ui_base_border_handle = NULL;
|
||||
base_is_resizing = false;
|
||||
}
|
||||
|
||||
util_particle_update();
|
||||
|
||||
util_cursor_render(_);
|
||||
|
||||
if (!ui_base_show && g_config->touch_ui) {
|
||||
|
||||
+86
-88
@@ -660,106 +660,104 @@ void ui_nodes_draw_menubar() {
|
||||
}
|
||||
|
||||
void ui_nodes_update(void *_) {
|
||||
if (!ui_nodes_show || !base_ui_enabled) {
|
||||
return;
|
||||
}
|
||||
if (ui_nodes_show && base_ui_enabled) {
|
||||
|
||||
ui_nodes_wx = math_floor(sys_w()) + ui_toolbar_w(true);
|
||||
ui_nodes_wy = ui_header_h * 2;
|
||||
ui_nodes_wx = math_floor(sys_w()) + ui_toolbar_w(true);
|
||||
ui_nodes_wy = ui_header_h * 2;
|
||||
|
||||
if (ui_view2d_show && base_view3d_show) {
|
||||
ui_nodes_wy += sys_h() - g_config->layout->buffer[LAYOUT_SIZE_NODES_H];
|
||||
}
|
||||
|
||||
i32 ww = g_config->layout->buffer[LAYOUT_SIZE_NODES_W];
|
||||
if (!ui_base_show) {
|
||||
ww += g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] + ui_toolbar_w(true);
|
||||
ui_nodes_wx -= ui_toolbar_w(true);
|
||||
ui_nodes_wy = 0;
|
||||
}
|
||||
if (!base_view3d_show) {
|
||||
ww += base_view3d_w();
|
||||
}
|
||||
|
||||
if (!base_view3d_show && ui_view2d_show) {
|
||||
ui_nodes_wx = base_view3d_w();
|
||||
ui_nodes_wy = 0;
|
||||
ui_nodes_ww = g_config->layout->buffer[LAYOUT_SIZE_NODES_W];
|
||||
ui_nodes_wh = sys_h();
|
||||
if (g_config->layout->buffer[LAYOUT_SIZE_HEADER] == 1) {
|
||||
ui_nodes_wh += ui_header_h * 2;
|
||||
if (ui_view2d_show && base_view3d_show) {
|
||||
ui_nodes_wy += sys_h() - g_config->layout->buffer[LAYOUT_SIZE_NODES_H];
|
||||
}
|
||||
}
|
||||
|
||||
if (!base_view3d_show) {
|
||||
ui_nodes_wh -= ui_header_h * 4;
|
||||
}
|
||||
i32 ww = g_config->layout->buffer[LAYOUT_SIZE_NODES_W];
|
||||
if (!ui_base_show) {
|
||||
ww += g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] + ui_toolbar_w(true);
|
||||
ui_nodes_wx -= ui_toolbar_w(true);
|
||||
ui_nodes_wy = 0;
|
||||
}
|
||||
if (!base_view3d_show) {
|
||||
ww += base_view3d_w();
|
||||
}
|
||||
|
||||
i32 mx = mouse_x;
|
||||
i32 my = mouse_y;
|
||||
bool enabled = true;
|
||||
if (mx < ui_nodes_wx || mx > ui_nodes_wx + ww || my < ui_nodes_wy) {
|
||||
enabled = false;
|
||||
}
|
||||
if (g_ui->is_typing || !g_ui->input_enabled) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
if (enabled) {
|
||||
|
||||
ui_nodes_t *nodes = ui_nodes_get_nodes();
|
||||
if (nodes->nodes_selected_id->length > 0 && g_ui->is_key_pressed) {
|
||||
if (g_ui->key_code == KEY_CODE_LEFT) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->x -= 1;
|
||||
}
|
||||
}
|
||||
else if (g_ui->key_code == KEY_CODE_RIGHT) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->x += 1;
|
||||
}
|
||||
}
|
||||
if (g_ui->key_code == KEY_CODE_UP) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->y -= 1;
|
||||
}
|
||||
}
|
||||
else if (g_ui->key_code == KEY_CODE_DOWN) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->y += 1;
|
||||
}
|
||||
if (!base_view3d_show && ui_view2d_show) {
|
||||
ui_nodes_wx = base_view3d_w();
|
||||
ui_nodes_wy = 0;
|
||||
ui_nodes_ww = g_config->layout->buffer[LAYOUT_SIZE_NODES_W];
|
||||
ui_nodes_wh = sys_h();
|
||||
if (g_config->layout->buffer[LAYOUT_SIZE_HEADER] == 1) {
|
||||
ui_nodes_wh += ui_header_h * 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Node search popup
|
||||
if (operator_shortcut(any_map_get(g_keymap, "node_search"), SHORTCUT_TYPE_STARTED)) {
|
||||
ui_nodes_node_search(-1, -1, NULL);
|
||||
}
|
||||
if (ui_nodes_node_search_spawn != NULL) {
|
||||
g_ui->input_x = mouse_x; // Fix input_dx after popup removal
|
||||
g_ui->input_y = mouse_y;
|
||||
gc_unroot(ui_nodes_node_search_spawn);
|
||||
ui_nodes_node_search_spawn = NULL;
|
||||
if (!base_view3d_show) {
|
||||
ui_nodes_wh -= ui_header_h * 4;
|
||||
}
|
||||
|
||||
if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) {
|
||||
nodes->pan_x = 0.0;
|
||||
nodes->pan_y = 0.0;
|
||||
nodes->zoom = 1.0;
|
||||
i32 mx = mouse_x;
|
||||
i32 my = mouse_y;
|
||||
bool enabled = true;
|
||||
if (mx < ui_nodes_wx || mx > ui_nodes_wx + ww || my < ui_nodes_wy) {
|
||||
enabled = false;
|
||||
}
|
||||
if (g_ui->is_typing || !g_ui->input_enabled) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
if (operator_shortcut(any_map_get(g_keymap, "node_overview"), SHORTCUT_TYPE_STARTED)) {
|
||||
nodes->zoom = nodes->zoom == 1.0 ? 0.2 : 1.0;
|
||||
nodes->uiw = ui_nodes_ww;
|
||||
nodes->uih = ui_nodes_wh;
|
||||
if (enabled) {
|
||||
ui_nodes_t *nodes = ui_nodes_get_nodes();
|
||||
if (nodes->nodes_selected_id->length > 0 && g_ui->is_key_pressed) {
|
||||
if (g_ui->key_code == KEY_CODE_LEFT) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->x -= 1;
|
||||
}
|
||||
}
|
||||
else if (g_ui->key_code == KEY_CODE_RIGHT) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->x += 1;
|
||||
}
|
||||
}
|
||||
if (g_ui->key_code == KEY_CODE_UP) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->y -= 1;
|
||||
}
|
||||
}
|
||||
else if (g_ui->key_code == KEY_CODE_DOWN) {
|
||||
for (i32 i = 0; i < nodes->nodes_selected_id->length; ++i) {
|
||||
i32 n = nodes->nodes_selected_id->buffer[i];
|
||||
ui_node_t_array_t *_nodes = ui_nodes_get_canvas(true)->nodes;
|
||||
ui_get_node(_nodes, n)->y += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Node search popup
|
||||
if (operator_shortcut(any_map_get(g_keymap, "node_search"), SHORTCUT_TYPE_STARTED)) {
|
||||
ui_nodes_node_search(-1, -1, NULL);
|
||||
}
|
||||
if (ui_nodes_node_search_spawn != NULL) {
|
||||
g_ui->input_x = mouse_x; // Fix input_dx after popup removal
|
||||
g_ui->input_y = mouse_y;
|
||||
gc_unroot(ui_nodes_node_search_spawn);
|
||||
ui_nodes_node_search_spawn = NULL;
|
||||
}
|
||||
|
||||
if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) {
|
||||
nodes->pan_x = 0.0;
|
||||
nodes->pan_y = 0.0;
|
||||
nodes->zoom = 1.0;
|
||||
}
|
||||
|
||||
if (operator_shortcut(any_map_get(g_keymap, "node_overview"), SHORTCUT_TYPE_STARTED)) {
|
||||
nodes->zoom = nodes->zoom == 1.0 ? 0.2 : 1.0;
|
||||
nodes->uiw = ui_nodes_ww;
|
||||
nodes->uih = ui_nodes_wh;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+104
-103
@@ -142,121 +142,122 @@ void ui_view2d_update(void *_) {
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down, false);
|
||||
ui_view2d_controls_down = control->controls_down;
|
||||
}
|
||||
return;
|
||||
}
|
||||
else {
|
||||
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down, false);
|
||||
ui_view2d_pan_x += control->pan_x;
|
||||
ui_view2d_pan_y += control->pan_y;
|
||||
ui_view2d_controls_down = control->controls_down;
|
||||
if (control->zoom != 0.0) {
|
||||
f32 _pan_x = ui_view2d_pan_x / (float)ui_view2d_pan_scale;
|
||||
f32 _pan_y = ui_view2d_pan_y / (float)ui_view2d_pan_scale;
|
||||
ui_view2d_pan_scale += control->zoom;
|
||||
if (ui_view2d_pan_scale < 0.1) {
|
||||
ui_view2d_pan_scale = 0.1;
|
||||
}
|
||||
if (ui_view2d_pan_scale > 6.0) {
|
||||
ui_view2d_pan_scale = 6.0;
|
||||
}
|
||||
ui_view2d_pan_x = _pan_x * ui_view2d_pan_scale;
|
||||
ui_view2d_pan_y = _pan_y * ui_view2d_pan_scale;
|
||||
|
||||
if (ui_touch_control) {
|
||||
// Zoom to finger location
|
||||
ui_view2d_pan_x -= (g_ui->input_x - g_ui->_window_x - g_ui->_window_w / 2.0) * control->zoom;
|
||||
ui_view2d_pan_y -= (g_ui->input_y - g_ui->_window_y - g_ui->_window_h / 2.0) * control->zoom;
|
||||
}
|
||||
ui_view2d_grid_redraw = true;
|
||||
}
|
||||
|
||||
bool decal_mask = context_is_decal_mask_paint();
|
||||
bool set_clone_source =
|
||||
g_context->tool == TOOL_TYPE_CLONE &&
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN);
|
||||
|
||||
if (!g_ui->input_down) {
|
||||
ui_view2d_layer_touched = false;
|
||||
}
|
||||
|
||||
if (ui_view2d_type == VIEW_2D_TYPE_LAYER && !ui_view2d_text_input_hover &&
|
||||
(operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) ||
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || decal_mask ||
|
||||
set_clone_source || g_config->brush_live)) {
|
||||
|
||||
if (g_config->touch_ui) {
|
||||
// Paint only when clicking on the layer rect
|
||||
slot_layer_t *layer = g_context->layer;
|
||||
gpu_texture_t *tex = layer->texpaint;
|
||||
f32 ratio = tex->height / (float)tex->width;
|
||||
f32 wm = fmin(ui_view2d_ww, ui_view2d_wh);
|
||||
f32 tw = wm * 0.9 * ui_view2d_pan_scale;
|
||||
f32 th = tw * ratio;
|
||||
f32 tx = ui_view2d_ww / 2.0 - tw / 2.0 + ui_view2d_pan_x;
|
||||
i32 headerh = g_config->layout->buffer[LAYOUT_SIZE_HEADER] == 1 ? ui_header_h * 2 : ui_header_h;
|
||||
i32 apph = iron_window_height() - g_config->layout->buffer[LAYOUT_SIZE_STATUS_H] + headerh;
|
||||
f32 ty = apph / 2.0 - th / 2.0 + ui_view2d_pan_y;
|
||||
f32 mx = mouse_x - ui_view2d_wx;
|
||||
f32 my = mouse_y - ui_view2d_wy;
|
||||
if (mx > tx && mx < tx + tw && my > ty && my < ty + th) {
|
||||
ui_view2d_layer_touched = true;
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down, false);
|
||||
ui_view2d_pan_x += control->pan_x;
|
||||
ui_view2d_pan_y += control->pan_y;
|
||||
ui_view2d_controls_down = control->controls_down;
|
||||
if (control->zoom != 0.0) {
|
||||
f32 _pan_x = ui_view2d_pan_x / (float)ui_view2d_pan_scale;
|
||||
f32 _pan_y = ui_view2d_pan_y / (float)ui_view2d_pan_scale;
|
||||
ui_view2d_pan_scale += control->zoom;
|
||||
if (ui_view2d_pan_scale < 0.1) {
|
||||
ui_view2d_pan_scale = 0.1;
|
||||
}
|
||||
if (ui_view2d_layer_touched) {
|
||||
if (ui_view2d_pan_scale > 6.0) {
|
||||
ui_view2d_pan_scale = 6.0;
|
||||
}
|
||||
ui_view2d_pan_x = _pan_x * ui_view2d_pan_scale;
|
||||
ui_view2d_pan_y = _pan_y * ui_view2d_pan_scale;
|
||||
|
||||
if (ui_touch_control) {
|
||||
// Zoom to finger location
|
||||
ui_view2d_pan_x -= (g_ui->input_x - g_ui->_window_x - g_ui->_window_w / 2.0) * control->zoom;
|
||||
ui_view2d_pan_y -= (g_ui->input_y - g_ui->_window_y - g_ui->_window_h / 2.0) * control->zoom;
|
||||
}
|
||||
ui_view2d_grid_redraw = true;
|
||||
}
|
||||
|
||||
bool decal_mask = context_is_decal_mask_paint();
|
||||
bool set_clone_source =
|
||||
g_context->tool == TOOL_TYPE_CLONE &&
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN);
|
||||
|
||||
if (!g_ui->input_down) {
|
||||
ui_view2d_layer_touched = false;
|
||||
}
|
||||
|
||||
if (ui_view2d_type == VIEW_2D_TYPE_LAYER && !ui_view2d_text_input_hover &&
|
||||
(operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) ||
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || decal_mask ||
|
||||
set_clone_source || g_config->brush_live)) {
|
||||
|
||||
if (g_config->touch_ui) {
|
||||
// Paint only when clicking on the layer rect
|
||||
slot_layer_t *layer = g_context->layer;
|
||||
gpu_texture_t *tex = layer->texpaint;
|
||||
f32 ratio = tex->height / (float)tex->width;
|
||||
f32 wm = fmin(ui_view2d_ww, ui_view2d_wh);
|
||||
f32 tw = wm * 0.9 * ui_view2d_pan_scale;
|
||||
f32 th = tw * ratio;
|
||||
f32 tx = ui_view2d_ww / 2.0 - tw / 2.0 + ui_view2d_pan_x;
|
||||
i32 headerh = g_config->layout->buffer[LAYOUT_SIZE_HEADER] == 1 ? ui_header_h * 2 : ui_header_h;
|
||||
i32 apph = iron_window_height() - g_config->layout->buffer[LAYOUT_SIZE_STATUS_H] + headerh;
|
||||
f32 ty = apph / 2.0 - th / 2.0 + ui_view2d_pan_y;
|
||||
f32 mx = mouse_x - ui_view2d_wx;
|
||||
f32 my = mouse_y - ui_view2d_wy;
|
||||
if (mx > tx && mx < tx + tw && my > ty && my < ty + th) {
|
||||
ui_view2d_layer_touched = true;
|
||||
}
|
||||
if (ui_view2d_layer_touched) {
|
||||
g_context->paint2d = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
g_context->paint2d = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
g_context->paint2d = true;
|
||||
|
||||
if (g_ui->is_typing) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_ui->is_typing) {
|
||||
return;
|
||||
}
|
||||
if (keyboard_started("left")) {
|
||||
ui_view2d_pan_x -= 5;
|
||||
}
|
||||
else if (keyboard_started("right")) {
|
||||
ui_view2d_pan_x += 5;
|
||||
}
|
||||
if (keyboard_started("up")) {
|
||||
ui_view2d_pan_y -= 5;
|
||||
}
|
||||
else if (keyboard_started("down")) {
|
||||
ui_view2d_pan_y += 5;
|
||||
}
|
||||
|
||||
if (keyboard_started("left")) {
|
||||
ui_view2d_pan_x -= 5;
|
||||
}
|
||||
else if (keyboard_started("right")) {
|
||||
ui_view2d_pan_x += 5;
|
||||
}
|
||||
if (keyboard_started("up")) {
|
||||
ui_view2d_pan_y -= 5;
|
||||
}
|
||||
else if (keyboard_started("down")) {
|
||||
ui_view2d_pan_y += 5;
|
||||
}
|
||||
if (!g_context->paint2d && g_config->touch_ui && g_ui->input_down && ui_view2d_type != VIEW_2D_TYPE_UVMAP) {
|
||||
ui_view2d_pan_x += g_ui->input_dx;
|
||||
ui_view2d_pan_y += g_ui->input_dy;
|
||||
}
|
||||
|
||||
if (!g_context->paint2d && g_config->touch_ui && g_ui->input_down && ui_view2d_type != VIEW_2D_TYPE_UVMAP) {
|
||||
ui_view2d_pan_x += g_ui->input_dx;
|
||||
ui_view2d_pan_y += g_ui->input_dy;
|
||||
}
|
||||
// Limit panning to keep texture in viewport
|
||||
i32 border = 32;
|
||||
f32 wm = fmin(ui_view2d_ww, ui_view2d_wh);
|
||||
f32 tw = ui_view2d_ww * 0.9 * ui_view2d_pan_scale;
|
||||
f32 tx = ui_view2d_ww / 2.0 - tw / 2.0 + ui_view2d_pan_x;
|
||||
f32 hh = sys_h();
|
||||
f32 ty = hh / 2.0 - tw / 2.0 + ui_view2d_pan_y;
|
||||
|
||||
// Limit panning to keep texture in viewport
|
||||
i32 border = 32;
|
||||
f32 wm = fmin(ui_view2d_ww, ui_view2d_wh);
|
||||
f32 tw = ui_view2d_ww * 0.9 * ui_view2d_pan_scale;
|
||||
f32 tx = ui_view2d_ww / 2.0 - tw / 2.0 + ui_view2d_pan_x;
|
||||
f32 hh = sys_h();
|
||||
f32 ty = hh / 2.0 - tw / 2.0 + ui_view2d_pan_y;
|
||||
if (tx + border > ui_view2d_ww) {
|
||||
ui_view2d_pan_x = ui_view2d_ww / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (tx - border < -tw) {
|
||||
ui_view2d_pan_x = -tw / 2.0 - ui_view2d_ww / 2.0 + border;
|
||||
}
|
||||
if (ty + border > hh) {
|
||||
ui_view2d_pan_y = hh / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (ty - border < -tw) {
|
||||
ui_view2d_pan_y = -tw / 2.0 - hh / 2.0 + border;
|
||||
}
|
||||
|
||||
if (tx + border > ui_view2d_ww) {
|
||||
ui_view2d_pan_x = ui_view2d_ww / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (tx - border < -tw) {
|
||||
ui_view2d_pan_x = -tw / 2.0 - ui_view2d_ww / 2.0 + border;
|
||||
}
|
||||
if (ty + border > hh) {
|
||||
ui_view2d_pan_y = hh / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (ty - border < -tw) {
|
||||
ui_view2d_pan_y = -tw / 2.0 - hh / 2.0 + border;
|
||||
}
|
||||
|
||||
if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) {
|
||||
ui_view2d_pan_x = 0.0;
|
||||
ui_view2d_pan_y = 0.0;
|
||||
ui_view2d_pan_scale = 1.0;
|
||||
if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) {
|
||||
ui_view2d_pan_x = 0.0;
|
||||
ui_view2d_pan_y = 0.0;
|
||||
ui_view2d_pan_scale = 1.0;
|
||||
}
|
||||
}
|
||||
|
||||
// Render
|
||||
|
||||
Reference in New Issue
Block a user