Merge pull request #1379 from MathemanFlo/ModeShortcut
Shortcut for viewport mode
This commit is contained in:
@@ -288,6 +288,28 @@ class Context {
|
||||
setMaterial(Project.materials[i]);
|
||||
}
|
||||
|
||||
public static function setViewportMode(mode : ViewportMode) {
|
||||
if (mode == viewportMode) return;
|
||||
|
||||
viewportMode = mode;
|
||||
var deferred = Context.renderMode != RenderForward && (Context.viewportMode == ViewLit || Context.viewportMode == ViewPathTrace);
|
||||
if (deferred) {
|
||||
RenderPath.active.commands = RenderPathDeferred.commands;
|
||||
}
|
||||
// else if (Context.viewportMode == ViewPathTrace) {
|
||||
// }
|
||||
else {
|
||||
if (RenderPathForward.path == null) {
|
||||
RenderPathForward.init(RenderPath.active);
|
||||
}
|
||||
RenderPath.active.commands = RenderPathForward.commands;
|
||||
}
|
||||
var _workspace = UIHeader.inst.worktab.position;
|
||||
UIHeader.inst.worktab.position = SpacePaint;
|
||||
MakeMaterial.parseMeshMaterial();
|
||||
UIHeader.inst.worktab.position = _workspace;
|
||||
}
|
||||
|
||||
public static function setMaterial(m: MaterialSlot) {
|
||||
if (Project.materials.indexOf(m) == -1) return;
|
||||
material = m;
|
||||
|
||||
@@ -270,25 +270,7 @@ class UIMenu {
|
||||
ui.radio(modeHandle, i, modes[i]);
|
||||
}
|
||||
|
||||
Context.viewportMode = modeHandle.position;
|
||||
if (modeHandle.changed) {
|
||||
var deferred = Context.renderMode != RenderForward && (Context.viewportMode == ViewLit || Context.viewportMode == ViewPathTrace);
|
||||
if (deferred) {
|
||||
RenderPath.active.commands = RenderPathDeferred.commands;
|
||||
}
|
||||
// else if (Context.viewportMode == ViewPathTrace) {
|
||||
// }
|
||||
else {
|
||||
if (RenderPathForward.path == null) {
|
||||
RenderPathForward.init(RenderPath.active);
|
||||
}
|
||||
RenderPath.active.commands = RenderPathForward.commands;
|
||||
}
|
||||
var _workspace = UIHeader.inst.worktab.position;
|
||||
UIHeader.inst.worktab.position = SpacePaint;
|
||||
MakeMaterial.parseMeshMaterial();
|
||||
UIHeader.inst.worktab.position = _workspace;
|
||||
}
|
||||
if (modeHandle.changed) Context.setViewportMode(modeHandle.position);
|
||||
}
|
||||
else if (menuCategory == MenuCamera) {
|
||||
if (menuButton(ui, tr("Reset"), Config.keymap.view_reset)) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package arm.ui;
|
||||
import haxe.io.Bytes;
|
||||
import kha.Image;
|
||||
import kha.System;
|
||||
import kha.input.KeyCode;
|
||||
import zui.Zui;
|
||||
import zui.Id;
|
||||
import iron.data.Data;
|
||||
@@ -364,6 +365,48 @@ class UISidebar {
|
||||
else if (Operator.shortcut(Config.keymap.view_orbit_opposite)) Viewport.orbitOpposite();
|
||||
else if (Operator.shortcut(Config.keymap.view_zoom_in, ShortcutRepeat)) Viewport.zoom(0.2);
|
||||
else if (Operator.shortcut(Config.keymap.view_zoom_out, ShortcutRepeat)) Viewport.zoom(-0.2);
|
||||
else if (Operator.shortcut("ctrl+m")) {
|
||||
UIMenu.draw(function(ui: Zui) {
|
||||
var modeHandle = Id.handle();
|
||||
modeHandle.position = Context.viewportMode;
|
||||
ui.text(tr("Viewport mode"), Right, ui.t.HIGHLIGHT_COL);
|
||||
var modes = [
|
||||
tr("Lit"),
|
||||
tr("Base Color"),
|
||||
tr("Normal"),
|
||||
tr("Occlusion"),
|
||||
tr("Roughness"),
|
||||
tr("Metallic"),
|
||||
tr("Opacity"),
|
||||
tr("Height"),
|
||||
tr("TexCoord"),
|
||||
tr("Object Normal"),
|
||||
tr("Material ID"),
|
||||
tr("Object ID"),
|
||||
tr("Mask")
|
||||
];
|
||||
var shortcuts = [ "l", "b", "n", "o", "r", "m", "a", "h", "t", "1", "2", "3", "4" ];
|
||||
#if (kha_direct3d12 || kha_vulkan)
|
||||
modes.push(tr("Path Traced"));
|
||||
shortcuts.push("p");
|
||||
#end
|
||||
for (i in 0...modes.length) {
|
||||
ui.radio(modeHandle, i, modes[i], shortcuts[i]);
|
||||
}
|
||||
|
||||
var index = shortcuts.indexOf(Keyboard.keyCode(ui.key));
|
||||
if (ui.isKeyPressed && index != -1) {
|
||||
modeHandle.position = index;
|
||||
ui.changed = true;
|
||||
Context.setViewportMode(modeHandle.position);
|
||||
}
|
||||
else if (modeHandle.changed) {
|
||||
Context.setViewportMode(modeHandle.position);
|
||||
ui.changed = true;
|
||||
}
|
||||
}, 14 #if (kha_direct3d12 || kha_vulkan) + 1 #end );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user