Add pen pressure to config

This commit is contained in:
luboslenco
2020-03-26 16:19:31 +01:00
parent b83f64024e
commit 002eea8a6d
5 changed files with 29 additions and 22 deletions
+9 -1
View File
@@ -68,9 +68,17 @@ class Config {
#if (krom_android || krom_ios)
raw.window_scale = 2.0;
#end
#if arm_painter
raw.undo_steps = 4;
raw.bookmarks = [];
raw.plugins = [];
raw.keymap = "default.json";
raw.undo_steps = 4;
raw.pressure_radius = true;
raw.pressure_hardness = true;
raw.pressure_angle = false;
raw.pressure_opacity = false;
raw.pressure_sensitivity = 1.0;
#end
}
else {
+7 -2
View File
@@ -24,8 +24,13 @@ typedef TConfig = {
@:optional var rp_gi: Null<Bool>;
// Application
@:optional var version: String; // ArmorPaint version
@:optional var plugins: Array<String>; // List of enabled plugins
@:optional var bookmarks: Array<String>; // Bookmarked folders in browser
@:optional var undo_steps: Null<Int>; // Number of undo steps to preserve
@:optional var plugins: Array<String>; // List of enabled plugins
@:optional var keymap: String; // Link to keymap file
@:optional var undo_steps: Null<Int>; // Number of undo steps to preserve
@:optional var pressure_radius: Null<Bool>; // Pen pressure controls
@:optional var pressure_hardness: Null<Bool>;
@:optional var pressure_angle: Null<Bool>;
@:optional var pressure_opacity: Null<Bool>;
@:optional var pressure_sensitivity: Null<Float>;
}
-6
View File
@@ -43,12 +43,6 @@ class Context {
public static var layerPreviewDirty = true;
public static var layersPreviewDirty = false;
public static var penPressureRadius = true;
public static var penPressureHardness = true;
public static var penPressureAngle = false;
public static var penPressureOpacity = false;
public static var penPressureSensitivity = 1.0;
public static var colorIdPicked = false;
public static var splitView = false;
public static var viewIndex = -1;
+8 -8
View File
@@ -29,8 +29,8 @@ class Uniforms {
if (link == "_brushRadius") {
var val = (Context.brushRadius * Context.brushNodesRadius) / 15.0;
var pen = Input.getPen();
if (Context.penPressureRadius && pen.down()) {
val *= pen.pressure * Context.penPressureSensitivity;
if (Config.raw.pressure_radius && pen.down()) {
val *= pen.pressure * Config.raw.pressure_sensitivity;
}
var decal = Context.tool == ToolDecal || Context.tool == ToolText;
if (Context.brush3d && !decal) {
@@ -45,8 +45,8 @@ class Uniforms {
if (link == "_brushOpacity") {
var val = Context.brushOpacity * Context.brushNodesOpacity;
var pen = Input.getPen();
if (Context.penPressureOpacity && pen.down()) {
val *= pen.pressure * Context.penPressureSensitivity;
if (Config.raw.pressure_opacity && pen.down()) {
val *= pen.pressure * Config.raw.pressure_sensitivity;
}
return val;
}
@@ -54,8 +54,8 @@ class Uniforms {
if (Context.tool != ToolBrush && Context.tool != ToolEraser) return 1.0;
var val = Context.brushHardness * Context.brushNodesHardness;
var pen = Input.getPen();
if (Context.penPressureHardness && pen.down()) {
val *= pen.pressure * Context.penPressureSensitivity;
if (Config.raw.pressure_hardness && pen.down()) {
val *= pen.pressure * Config.raw.pressure_sensitivity;
}
if (Context.brush3d && !Context.paint2d) {
val *= val;
@@ -141,8 +141,8 @@ class Uniforms {
var angle = Context.layer.material_mask != null ? Context.layer.angle : brushAngle;
angle *= (Math.PI / 180);
var pen = Input.getPen();
if (Context.penPressureAngle && pen.down()) {
angle *= pen.pressure * Context.penPressureSensitivity;
if (Config.raw.pressure_angle && pen.down()) {
angle *= pen.pressure * Config.raw.pressure_sensitivity;
}
vec.set(Math.cos(angle), Math.sin(angle), 0);
return vec;
+5 -5
View File
@@ -155,11 +155,11 @@ class BoxPreferences {
}
if (ui.tab(htab, tr("Pen"), true)) {
ui.text(tr("Pressure controls"));
Context.penPressureRadius = ui.check(Id.handle({selected: Context.penPressureRadius}), tr("Brush Radius"));
Context.penPressureHardness = ui.check(Id.handle({selected: Context.penPressureHardness}), tr("Brush Hardness"));
Context.penPressureOpacity = ui.check(Id.handle({selected: Context.penPressureOpacity}), tr("Brush Opacity"));
Context.penPressureAngle = ui.check(Id.handle({selected: Context.penPressureAngle}), tr("Brush Angle"));
Context.penPressureSensitivity = ui.slider(Id.handle({value: Context.penPressureSensitivity}), tr("Sensitivity"), 0.0, 2.0, true);
Config.raw.pressure_radius = ui.check(Id.handle({selected: Config.raw.pressure_radius}), tr("Brush Radius"));
Config.raw.pressure_hardness = ui.check(Id.handle({selected: Config.raw.pressure_hardness}), tr("Brush Hardness"));
Config.raw.pressure_opacity = ui.check(Id.handle({selected: Config.raw.pressure_opacity}), tr("Brush Opacity"));
Config.raw.pressure_angle = ui.check(Id.handle({selected: Config.raw.pressure_angle}), tr("Brush Angle"));
Config.raw.pressure_sensitivity = ui.slider(Id.handle({value: Config.raw.pressure_sensitivity}), tr("Sensitivity"), 0.0, 2.0, true);
}
Context.hssgi = Id.handle({selected: Config.raw.rp_ssgi});