Improve ui scale

This commit is contained in:
luboslenco
2019-09-17 12:07:22 +02:00
parent 62869e3731
commit 908b9a85ae
6 changed files with 34 additions and 14 deletions
+2 -2
View File
@@ -22,7 +22,7 @@ class TabBrushes {
}
if (ui.button("Nodes")) UITrait.inst.showBrushNodes();
var slotw = ui.SCALE > 1 ? 102 : 51;
var slotw = Std.int(51 * ui.SCALE);
var num = Std.int(UITrait.inst.windowW / slotw);
for (row in 0...Std.int(Math.ceil(Project.brushes.length / num))) {
@@ -31,7 +31,7 @@ class TabBrushes {
if (row > 0) ui._y += 6;
for (j in 0...num) {
var imgw = ui.SCALE > 1 ? 100 : 50;
var imgw = Std.int(50 * ui.SCALE);
var i = j + row * num;
if (i >= Project.brushes.length) {
@:privateAccess ui.endElement(imgw);
+2 -2
View File
@@ -72,7 +72,7 @@ class TabMaterials {
}
else if (ui.isHovered) ui.tooltip("Show Node Editor (TAB)");
var slotw = ui.SCALE > 1 ? 102 : 51;
var slotw = Std.int(51 * ui.SCALE);
var num = Std.int(UITrait.inst.windowW / slotw);
for (row in 0...Std.int(Math.ceil(materials.length / num))) {
@@ -81,7 +81,7 @@ class TabMaterials {
if (row > 0) ui._y += 6;
for (j in 0...num) {
var imgw = ui.SCALE > 1 ? 100 : 50;
var imgw = Std.int(50 * ui.SCALE);
var i = j + row * num;
if (i >= materials.length) {
@:privateAccess ui.endElement(imgw);
+1 -1
View File
@@ -28,7 +28,7 @@ class TabTextures {
if (Project.assets.length > 0) {
var slotw = ui.SCALE > 1 ? 102 : 51;
var slotw = Std.int(51 * ui.SCALE);
var num = Std.int(UITrait.inst.windowW / slotw);
for (i in 0...Project.assets.length) {
+7 -4
View File
@@ -26,6 +26,7 @@ class UINodes {
public var show = false;
public var defaultWindowW = 0;
public var defaultWindowH = 0;
public var wx:Int;
public var wy:Int;
public var ww:Int;
@@ -195,12 +196,14 @@ class UINodes {
if (!App.uienabled) return;
var kb = Input.getKeyboard();
if (defaultWindowW == 0) defaultWindowW = Std.int(iron.App.w() / 2);
if (defaultWindowH == 0) defaultWindowH = Std.int(iron.App.h() / 2);
wx = Std.int(iron.App.w()) + UITrait.inst.toolbarw;
wy = UITrait.inst.headerh * 2;
if (UIView2D.inst.show) {
wy += Std.int(iron.App.h() / 2);
wy += iron.App.h() - defaultWindowH;
}
if (defaultWindowW == 0) defaultWindowW = Std.int(iron.App.w() / 2);
var ww = defaultWindowW;
var mx = mouse.x + App.x();
var my = mouse.y + App.y();
@@ -352,8 +355,8 @@ class UINodes {
var ew = Std.int(ui.ELEMENT_W() * 0.7);
wh = iron.App.h();
if (UIView2D.inst.show) {
wh = Std.int(iron.App.h() / 2);
wy += Std.int(iron.App.h() / 2);
wh = defaultWindowH;
wy = iron.App.h() - defaultWindowH + UITrait.inst.headerh * 2;
}
if (ui.window(hwnd, wx, wy, ww, wh)) {
+20 -4
View File
@@ -72,6 +72,10 @@ class UITrait {
var borderStarted = 0;
var borderHandle:Handle = null;
public var defaultEnvmap:Image = null;
public var defaultIrradiance:kha.arrays.Float32Array = null;
public var defaultRadiance:Image = null;
public var defaultRadianceMipmaps:Array<Image> = null;
public var savedEnvmap:Image = null;
public var emptyEnvmap:Image = null;
public var previewEnvmap:Image = null;
@@ -305,6 +309,10 @@ class UITrait {
var world = Scene.active.world;
if (savedEnvmap == null) {
savedEnvmap = world.envmap;
defaultEnvmap = world.envmap;
defaultIrradiance = world.probe.irradiance;
defaultRadiance = world.probe.radiance;
defaultRadianceMipmaps = world.probe.radianceMipmaps;
}
world.envmap = showEnvmap ? savedEnvmap : emptyEnvmap;
Context.ddirty = 1;
@@ -584,9 +592,16 @@ class UITrait {
if (borderHandle != null) {
if (borderHandle == UINodes.inst.hwnd || borderHandle == UIView2D.inst.hwnd) {
UINodes.inst.defaultWindowW -= Std.int(mouse.movementX);
if (UINodes.inst.defaultWindowW < 32) UINodes.inst.defaultWindowW = 32;
else if (UINodes.inst.defaultWindowW > kha.System.windowWidth() * 0.7) UINodes.inst.defaultWindowW = Std.int(kha.System.windowWidth() * 0.7);
if (borderStarted == 0) {
UINodes.inst.defaultWindowW -= Std.int(mouse.movementX);
if (UINodes.inst.defaultWindowW < 32) UINodes.inst.defaultWindowW = 32;
else if (UINodes.inst.defaultWindowW > kha.System.windowWidth() * 0.7) UINodes.inst.defaultWindowW = Std.int(kha.System.windowWidth() * 0.7);
}
else { // UINodes / UIView2D ratio
UINodes.inst.defaultWindowH -= Std.int(mouse.movementY);
if (UINodes.inst.defaultWindowH < 32) UINodes.inst.defaultWindowH = 32;
else if (UINodes.inst.defaultWindowH > iron.App.h() * 0.95) UINodes.inst.defaultWindowH = Std.int(iron.App.h() * 0.95);
}
}
else {
if (borderStarted == 0) {
@@ -1224,7 +1239,8 @@ class UITrait {
function onBorderHover(handle:Handle, side:Int) {
if (!App.uienabled) return;
if (handle != hwnd && handle != hwnd1 && handle != hwnd2 && handle != UINodes.inst.hwnd && handle != UIView2D.inst.hwnd) return; // Scalable handles
if (handle == UINodes.inst.hwnd && side != 0) return; // Left border of node canvas
if (handle == UINodes.inst.hwnd && side != 0 && side != 2) return; // Left/top border of node canvas
if (handle == UINodes.inst.hwnd && side == 2 && !UIView2D.inst.show) return; // Left/top border of node canvas
if (handle == UIView2D.inst.hwnd && side != 0) return; // Left border of 2d view
if (handle == hwnd && side == 2) return; // Window top
if (handle == hwnd2 && side == 3) return; // Window bottom
+2 -1
View File
@@ -62,6 +62,7 @@ class UIView2D {
function render(g:kha.graphics2.Graphics) {
if (UINodes.inst.defaultWindowW == 0) UINodes.inst.defaultWindowW = Std.int(iron.App.w() / 2);
if (UINodes.inst.defaultWindowH == 0) UINodes.inst.defaultWindowH = Std.int(iron.App.h() / 2);
ww = UINodes.inst.defaultWindowW;
wx = Std.int(iron.App.w()) + UITrait.inst.toolbarw;
wy = UITrait.inst.headerh * 2;
@@ -86,7 +87,7 @@ class UIView2D {
ui.begin(g);
wh = iron.App.h();
if (UINodes.inst.show) {
wh = Std.int(iron.App.h() / 2);
wh -= UINodes.inst.defaultWindowH;
}
if (ui.window(hwnd, wx, wy, ww, wh)) {