This commit is contained in:
tamat
2020-05-15 12:15:33 +02:00
parent a1c312fab9
commit 4cb1d9c0e5
7 changed files with 85 additions and 24 deletions

View File

@@ -504,7 +504,7 @@ Editor.prototype.addMiniWindow = function(w, h) {
var close_button = document.createElement("div");
close_button.className = "corner-button";
close_button.innerHTML = "X";
close_button.innerHTML = "❌";
close_button.addEventListener("click", function(e) {
graphcanvas.setGraph(null);
miniwindow.parentNode.removeChild(miniwindow);

View File

@@ -6115,7 +6115,7 @@ LGraphNode.prototype.executeAction = function(action)
this.adjustMouseEvent(e);
var pos = [e.canvasX, e.canvasY];
var node = this.graph.getNodeOnPos(pos[0], pos[1]);
var node = this.graph ? this.graph.getNodeOnPos(pos[0], pos[1]) : null;
if (!node) {
var r = null;
@@ -8412,7 +8412,7 @@ LGraphNode.prototype.executeAction = function(action)
break;
default:
if (w.draw) {
w.draw(ctx, node, w, y, H);
w.draw(ctx, node, width, y, H);
}
break;
}

View File

@@ -4259,7 +4259,7 @@ void main(void){\n\
LiteGraph.registerNodeType("texture/lensfx", LGraphLensFX);
//applies a curve (or generates one)
function LGraphTextureCurve() {
this.addInput("in", "Texture");
this.addOutput("out", "Texture");
@@ -4283,21 +4283,32 @@ void main(void){\n\
}
LGraphTextureCurve.title = "Curve";
LGraphTextureCurve.desc = "Generates or applies a curve to a texture";
LGraphTextureCurve.widgets_info = {
precision: { widget: "combo", values: LGraphTexture.MODE_VALUES }
};
LGraphTextureCurve.prototype.onExecute = function() {
var tex = this.getInputData(0);
if (!tex) {
return;
}
if (!this.isOutputConnected(0)) {
return;
} //saves work
var tex = this.getInputData(0);
var temp = this._temp_texture;
if ( !temp || temp.width != tex.width || temp.height != tex.height || temp.type != tex.type ) {
temp = this._temp_texture = new GL.Texture( tex.width, tex.height, { type: tex.type, format: gl.RGBA, filter: gl.LINEAR } );
var type = LGraphTexture.getTextureType(this.properties.precision);
if(!tex) //generate one texture, nothing else
{
if(this._must_update || !this._curve_texture )
this.updateCurve();
this.setOutputData(0, this._curve_texture);
return;
}
//apply curve to input texture
if ( !temp || temp.type != type )
temp = this._temp_texture = new GL.Texture( 256, 1, { type: type, format: gl.RGBA, filter: gl.LINEAR } );
var shader = LGraphTextureCurve._shader;
if (!shader) {

View File

@@ -236,6 +236,10 @@
this.addProperty("min", 0);
this.addProperty("max", 1);
this.addProperty("smooth", true);
this.addProperty("seed", 0);
this.addProperty("octaves", 1);
this.addProperty("persistence", 0.8);
this.addProperty("speed", 1);
this.size = [90, 30];
}
@@ -266,7 +270,22 @@
MathNoise.prototype.onExecute = function() {
var f = this.getInputData(0) || 0;
var r = MathNoise.getValue(f, this.properties.smooth);
var iterations = this.properties.octaves || 1;
var r = 0;
var amp = 1;
var seed = this.properties.seed || 0;
f += seed;
var speed = this.properties.speed || 1;
var total_amp = 0;
for(var i = 0; i < iterations; ++i)
{
r += MathNoise.getValue(f * (1+i) * speed, this.properties.smooth) * amp;
total_amp += amp;
amp *= this.properties.persistence;
if(amp < 0.001)
break;
}
r /= total_amp;
var min = this.properties.min;
var max = this.properties.max;
this._last_v = r * (max - min) + min;