Fix decal when live brush preview is enabled
This commit is contained in:
+25
-22
@@ -768,39 +768,42 @@ class UISidebar {
|
||||
my > UINodes.inst.wy && my < UINodes.inst.wy + UINodes.inst.wh;
|
||||
var decal = Context.tool == ToolDecal || Context.tool == ToolText;
|
||||
|
||||
if (!Config.raw.brush_3d || in2dView || (decal && !Config.raw.brush_live)) {
|
||||
if (!Config.raw.brush_3d || in2dView || decal) {
|
||||
var decalMask = decal && Operator.shortcut(Config.keymap.decal_mask, ShortcutDown);
|
||||
if (decal && !inNodes) {
|
||||
var psizex = Std.int(256 * ui.SCALE() * (Context.brushRadius * Context.brushNodesRadius * Context.brushScaleX));
|
||||
var psizey = Std.int(256 * ui.SCALE() * (Context.brushRadius * Context.brushNodesRadius));
|
||||
var decalAlpha = 0.5;
|
||||
if (!decalMask) {
|
||||
Context.decalX = Context.paintVec.x;
|
||||
Context.decalY = Context.paintVec.y;
|
||||
decalAlpha = Context.brushOpacity;
|
||||
|
||||
// Radius being scaled
|
||||
if (Context.brushLocked) {
|
||||
Context.decalX += (Context.lockStartedX - System.windowWidth() / 2) / App.w();
|
||||
Context.decalY += (Context.lockStartedY - System.windowHeight() / 2) / App.h();
|
||||
}
|
||||
}
|
||||
|
||||
Context.viewIndex = Context.viewIndexLast;
|
||||
var decalX = App.x() + Context.decalX * App.w() - psizex / 2;
|
||||
var decalY = App.y() + Context.decalY * App.h() - psizey / 2;
|
||||
Context.viewIndex = -1;
|
||||
if (!Config.raw.brush_live) {
|
||||
var psizex = Std.int(256 * ui.SCALE() * (Context.brushRadius * Context.brushNodesRadius * Context.brushScaleX));
|
||||
var psizey = Std.int(256 * ui.SCALE() * (Context.brushRadius * Context.brushNodesRadius));
|
||||
|
||||
// Radius being scaled
|
||||
if (Context.brushLocked && !decalMask) {
|
||||
decalX += Context.lockStartedX - System.windowWidth() / 2;
|
||||
decalY += Context.lockStartedY - System.windowHeight() / 2;
|
||||
Context.viewIndex = Context.viewIndexLast;
|
||||
var decalX = App.x() + Context.decalX * App.w() - psizex / 2;
|
||||
var decalY = App.y() + Context.decalY * App.h() - psizey / 2;
|
||||
Context.viewIndex = -1;
|
||||
|
||||
g.color = kha.Color.fromFloats(1, 1, 1, decalAlpha);
|
||||
var angle = (Context.brushAngle + Context.brushNodesAngle) * (Math.PI / 180);
|
||||
g.pushRotation(-angle, decalX + psizex / 2, decalY + psizey / 2);
|
||||
#if (kha_direct3d11 || kha_direct3d12 || kha_metal || kha_vulkan)
|
||||
g.drawScaledImage(Context.decalImage, decalX, decalY, psizex, psizey);
|
||||
#else
|
||||
g.drawScaledImage(Context.decalImage, decalX, decalY + psizey, psizex, -psizey);
|
||||
#end
|
||||
g.popTransformation();
|
||||
g.color = 0xffffffff;
|
||||
}
|
||||
|
||||
g.color = kha.Color.fromFloats(1, 1, 1, decalAlpha);
|
||||
var angle = (Context.brushAngle + Context.brushNodesAngle) * (Math.PI / 180);
|
||||
g.pushRotation(-angle, decalX + psizex / 2, decalY + psizey / 2);
|
||||
#if (kha_direct3d11 || kha_direct3d12 || kha_metal || kha_vulkan)
|
||||
g.drawScaledImage(Context.decalImage, decalX, decalY, psizex, psizey);
|
||||
#else
|
||||
g.drawScaledImage(Context.decalImage, decalX, decalY + psizey, psizex, -psizey);
|
||||
#end
|
||||
g.popTransformation();
|
||||
g.color = 0xffffffff;
|
||||
}
|
||||
if (Context.tool == ToolBrush ||
|
||||
Context.tool == ToolEraser ||
|
||||
|
||||
Reference in New Issue
Block a user