diff --git a/Sources/arm/render/Uniforms.hx b/Sources/arm/render/Uniforms.hx index aa54f525..0122a26c 100644 --- a/Sources/arm/render/Uniforms.hx +++ b/Sources/arm/render/Uniforms.hx @@ -139,6 +139,10 @@ class Uniforms { var brushAngle = UISidebar.inst.brushAngle + UISidebar.inst.brushNodesAngle; var angle = Context.layer.material_mask != null ? Context.layer.angle : brushAngle; angle *= (Math.PI / 180); + var pen = Input.getPen(); + if (UISidebar.penPressureAngle && pen.down()) { + angle *= pen.pressure * UISidebar.penPressureSensitivity; + } vec2.set(Math.cos(angle), Math.sin(angle), 0); return vec2; } diff --git a/Sources/arm/ui/BoxPreferences.hx b/Sources/arm/ui/BoxPreferences.hx index 98c9997c..5404a137 100644 --- a/Sources/arm/ui/BoxPreferences.hx +++ b/Sources/arm/ui/BoxPreferences.hx @@ -154,9 +154,11 @@ class BoxPreferences { ui.enabled = true; } if (ui.tab(htab, tr("Pen"), true)) { + ui.text(tr("Pressure controls")); UISidebar.penPressureRadius = ui.check(Id.handle({selected: UISidebar.penPressureRadius}), tr("Brush Radius")); UISidebar.penPressureHardness = ui.check(Id.handle({selected: UISidebar.penPressureHardness}), tr("Brush Hardness")); UISidebar.penPressureOpacity = ui.check(Id.handle({selected: UISidebar.penPressureOpacity}), tr("Brush Opacity")); + UISidebar.penPressureAngle = ui.check(Id.handle({selected: UISidebar.penPressureAngle}), tr("Brush Angle")); UISidebar.penPressureSensitivity = ui.slider(Id.handle({value: UISidebar.penPressureSensitivity}), tr("Sensitivity"), 0.0, 2.0, true); } diff --git a/Sources/arm/ui/UISidebar.hx b/Sources/arm/ui/UISidebar.hx index 126cebbd..f0fc18bb 100644 --- a/Sources/arm/ui/UISidebar.hx +++ b/Sources/arm/ui/UISidebar.hx @@ -36,6 +36,7 @@ class UISidebar { 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;