processing / processing/processing4
Drawing the same SVG with different stroke weights causes rendering bug with P2D renderer
未关闭
还没有人认领这个 Issue。
bug
core
- 主要语言
- Java
- 星标
- 494
- 派生
- 183
- 平均合并
- 4 小时 39 分钟
- 30 天内合并 PR
- 3
描述
Created by: cadin
Description
When drawing an SVG shape (with style disabled) using the P2D renderer, the rendering will glitch if the shape is drawn more than once with a different stroke weight.
Expected Behavior
The shape should appear on the canvas at different stroke weights.
Current Behavior
The first instance of the shape appears as expected. Subsequent shapes (drawn after changing strokeWeight) are drawn with a glitched stroke.
Steps to Reproduce
- Set up sketch with P2D renderer.
- Load an SVG into a PShape and call
disableStyle()on it. - Draw the shape to the screen once, then change
strokeWeightand draw again.
Example code (from this repo with SVG file included):
PShape aSVG;
void setup() {
size(600, 300, P2D); // changing to default renderer works
aSVG = loadShape("A.svg");
aSVG.disableStyle();
}
void draw() {
background(255);
scale(3);
strokeWeight(1);
shape(aSVG); // removing this first shape works
strokeWeight(3); // removing this stroke change works
shape(aSVG, 100, 0);
}
Your Environment
- Processing version: 4.3
- Operating System and OS version: Mac OS 14.2.1 (Intel)
Workarounds
- Using the default renderer works as expected
- Drawing the shape only once (with any stroke weight) works as expected
- Drawing the shape multiple times without changing stroke weight works as expected
- Loading the same SVG into a separate PShape instance to render as the second graphic works as expected
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
先从提供的 P2D sketch 和 SVG 复现开始,然后跟踪 P2D renderer 对带有 disabled-style 的重复 PShape 绘制以及不断变化的 strokeWeight 值的处理。通过复现该 sketch 并验证两个渲染出的图形都使用了所请求的 strokeWeight 值且没有故障,确认修复有效。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- computer-graphics
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100