Skip to content

Commit

Permalink
Fix p5.Geometry absorbing the ambient fill color
Browse files Browse the repository at this point in the history
  • Loading branch information
davepagurek committed Jan 22, 2025
1 parent 2fdb5eb commit 45b02f8
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/webgl/p5.RendererGL.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import filterInvertFrag from "./shaders/filters/invert.frag";
import filterThresholdFrag from "./shaders/filters/threshold.frag";
import filterShaderVert from "./shaders/filters/default.vert";
import { PrimitiveToVerticesConverter } from "../shape/custom_shapes";
import { Color } from "../color/p5.Color";

const STROKE_CAP_ENUM = {};
const STROKE_JOIN_ENUM = {};
Expand Down Expand Up @@ -438,8 +439,8 @@ class RendererGL extends Renderer {
);
}
this.geometryBuilder = new GeometryBuilder(this);
this.geometryBuilder.prevFillColor = [...this.states.curFillColor];
this.states.curFillColor = [-1, -1, -1, -1];
this.geometryBuilder.prevFillColor = this.states.fillColor;
this.fill(new Color([-1, -1, -1, -1]));
}

/**
Expand All @@ -458,7 +459,7 @@ class RendererGL extends Renderer {
);
}
const geometry = this.geometryBuilder.finish();
this.states.curFillColor = this.geometryBuilder.prevFillColor;
this.fill(this.geometryBuilder.prevFillColor);
this.geometryBuilder = undefined;
return geometry;
}
Expand Down
24 changes: 24 additions & 0 deletions test/unit/visual/cases/webgl.js
Original file line number Diff line number Diff line change
Expand Up @@ -581,5 +581,29 @@ visualSuite('WebGL', function() {
p5.model(geom);
screenshot();
});

visualTest('only fills set in buildGeometry are kept', (p5, screenshot) => {
p5.createCanvas(50, 50, p5.WEBGL);

const geom = p5.buildGeometry(() => {
p5.push();
p5.translate(-p5.width*0.2, 0);
p5.scale(0.15);
p5.sphere();
p5.pop();

p5.push();
p5.fill('red');
p5.translate(p5.width*0.2, 0);
p5.scale(0.15);
p5.sphere();
p5.pop();
});

p5.fill('blue');
p5.noStroke();
p5.model(geom);
screenshot();
});
});
});
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"numScreenshots": 1
}

0 comments on commit 45b02f8

Please sign in to comment.