Improve brush parsing
This commit is contained in:
@@ -28,7 +28,7 @@ class RenderPathPaint {
|
||||
static var baking = false;
|
||||
public static var liveLayer: arm.data.LayerSlot = null;
|
||||
public static var liveLayerDrawn = 0;
|
||||
public static var liveLayerLocked = true;
|
||||
public static var liveLayerLocked = false;
|
||||
static var _texpaint: RenderTarget;
|
||||
static var _texpaint_mask: RenderTarget;
|
||||
static var _texpaint_nor: RenderTarget;
|
||||
|
||||
+18
-13
@@ -106,15 +106,10 @@ class UINodes {
|
||||
if (ui.changed) {
|
||||
mchanged = true;
|
||||
if (!mdown) changed = true;
|
||||
if (canvasType == CanvasBrush) {
|
||||
canvasChanged();
|
||||
}
|
||||
}
|
||||
if ((mreleased && mchanged) || changed) {
|
||||
mchanged = changed = false;
|
||||
if (canvasType == CanvasMaterial) {
|
||||
canvasChanged();
|
||||
}
|
||||
canvasChanged();
|
||||
if (mreleased) {
|
||||
UITrait.inst.hwnd.redraws = 2;
|
||||
History.editNodes(lastCanvas, canvasType);
|
||||
@@ -187,10 +182,14 @@ class UINodes {
|
||||
iron.App.notifyOnRender(_parse);
|
||||
}
|
||||
else {
|
||||
MaterialParser.parseBrush();
|
||||
UITrait.inst.parseBrushInputs();
|
||||
RenderUtil.makeBrushPreview();
|
||||
UITrait.inst.hwnd1.redraws = 2;
|
||||
function _parse(_) {
|
||||
MaterialParser.parseBrush();
|
||||
UITrait.inst.parseBrushInputs();
|
||||
RenderUtil.makeBrushPreview();
|
||||
UITrait.inst.hwnd1.redraws = 2;
|
||||
iron.App.removeRender(_parse);
|
||||
}
|
||||
iron.App.notifyOnRender(_parse);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,11 +296,17 @@ class UINodes {
|
||||
public function render(g: kha.graphics2.Graphics) {
|
||||
if (recompileMat) {
|
||||
recompileMat = false;
|
||||
if (Layers.isFillMaterial()) {
|
||||
Layers.updateFillLayers();
|
||||
|
||||
if (canvasType == CanvasBrush) {
|
||||
canvasChanged();
|
||||
}
|
||||
else {
|
||||
RenderUtil.makeMaterialPreview();
|
||||
if (Layers.isFillMaterial()) {
|
||||
Layers.updateFillLayers();
|
||||
}
|
||||
else {
|
||||
RenderUtil.makeMaterialPreview();
|
||||
}
|
||||
}
|
||||
UITrait.inst.hwnd1.redraws = 2;
|
||||
}
|
||||
|
||||
@@ -187,6 +187,8 @@ class RenderUtil {
|
||||
|
||||
public static function makeBrushPreview() {
|
||||
|
||||
if (RenderPathPaint.liveLayerLocked) return;
|
||||
|
||||
// Prepare layers
|
||||
if (RenderPathPaint.liveLayer == null) {
|
||||
RenderPathPaint.liveLayer = new arm.data.LayerSlot("_live");
|
||||
@@ -211,28 +213,31 @@ class RenderUtil {
|
||||
Context.brush.imageIcon = Image.createRenderTarget(50, 50);
|
||||
}
|
||||
|
||||
var scons = Project.materials[0].data.shader.contexts;
|
||||
var mcons = Project.materials[0].data.contexts;
|
||||
var _scon: ShaderContext = null;
|
||||
var _mcon: MaterialContext = null;
|
||||
var _si = 0;
|
||||
var _mi = 0;
|
||||
for (i in 0...scons.length) {
|
||||
if (scons[i].raw.name == "paint") {
|
||||
_si = i;
|
||||
_scon = scons[i];
|
||||
scons[i] = MaterialParser.defaultScon;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (i in 0...mcons.length) {
|
||||
if (mcons[i].raw.name == "paint") {
|
||||
_mi = i;
|
||||
_mcon = mcons[i];
|
||||
mcons[i] = MaterialParser.defaultMcon;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// var scons = Project.materials[0].data.shader.contexts;
|
||||
// var mcons = Project.materials[0].data.contexts;
|
||||
// var _scon: ShaderContext = null;
|
||||
// var _mcon: MaterialContext = null;
|
||||
// var _si = 0;
|
||||
// var _mi = 0;
|
||||
// for (i in 0...scons.length) {
|
||||
// if (scons[i].raw.name == "paint") {
|
||||
// _si = i;
|
||||
// _scon = scons[i];
|
||||
// scons[i] = MaterialParser.defaultScon;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// for (i in 0...mcons.length) {
|
||||
// if (mcons[i].raw.name == "paint") {
|
||||
// _mi = i;
|
||||
// _mcon = mcons[i];
|
||||
// mcons[i] = MaterialParser.defaultMcon;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
var _material = Context.material;
|
||||
Context.material = new arm.data.MaterialSlot();
|
||||
MaterialParser.parsePaintMaterial();
|
||||
|
||||
RenderPathPaint.useLiveLayer(true);
|
||||
|
||||
@@ -276,6 +281,7 @@ class RenderUtil {
|
||||
planeo.transform.loc.set(m._30, -m._31, 0.0);
|
||||
planeo.transform.buildMatrix();
|
||||
|
||||
RenderPathPaint.liveLayerDrawn = 0;
|
||||
RenderPathDeferred.drawGbuffer();
|
||||
|
||||
// Paint brush preview
|
||||
@@ -312,8 +318,10 @@ class RenderUtil {
|
||||
UITrait.inst.lastPaintVecX = _lastX;
|
||||
UITrait.inst.lastPaintVecY = _lastY;
|
||||
Context.pdirty = _pdirty;
|
||||
scons[_si] = _scon;
|
||||
mcons[_mi] = _mcon;
|
||||
// scons[_si] = _scon;
|
||||
// mcons[_mi] = _mcon;
|
||||
Context.material = _material;
|
||||
MaterialParser.parsePaintMaterial();
|
||||
|
||||
// Restore paint mesh
|
||||
planeo.visible = false;
|
||||
|
||||
Reference in New Issue
Block a user