processing/p5.js
Voir sur GitHubWebGL Error Triggered by `noSmooth()` Invocation Between Framebuffer Creation and Drawing on Framebuffer
Open
#6 369 ouverte le 22 août 2023
Area:WebGLBugHelp Wanted
Métriques du dépôt
- Stars
- (20 784 stars)
- Métriques de merge PR
- (Merge moyen 8j 13h) (45 PRs mergées en 30 j)
Description
Problem
In WEBGL mode, invoking the noSmooth() function specifically between the creation of a framebuffer and performing drawing operations on said framebuffer results in the following error:
WebGL: INVALID_OPERATION: bindTexture: object does not belong to this context
This issue appears to be browser-specific; it has been observed in Chrome, but not in Firefox.
Reproduction Steps
Here's a minimal example that demonstrates the issue:
let testBuffer;
function setup() {
createCanvas(400, 400, WEBGL);
testBuffer = createFramebuffer();
// 🔴 Using noSmooth() between creating the buffer and drawing on the buffer triggers the error
noSmooth();
testBuffer.begin();
circle(0, 0, 200);
testBuffer.end();
}
function draw() {
background(150);
texture(testBuffer);
orbitControl();
box(200);
}
Expected Behavior
Calling noSmooth() between framebuffer creation and drawing should not introduce WebGL errors.
Actual Behavior
An error is thrown, specifically: WebGL: INVALID_OPERATION: bindTexture: object does not belong to this context.
Environment
- p5.js Version: 1.7.x Beta (cc @davepagurek)
- Browser: Chrome 116 (Error observed), Firefox 116.0.3 (No error observed)
- OS: Windows 10