processing / processing/processing4

noStroke makes PShape.setTexture crash (P2D)

Abierto
#695 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

help wanted opengl
Lenguaje dominante
Java
Estrellas
494
Forks
183
Merge medio
4 h 39 min
PR fusionados (30 d)
3

Descripción

Created by: TidensBarn

I had inexplicable crashes when using textures on PShapes that almost made me loose my will to live until I finally found the cause:
If I create a PShape in "noStroke" state, setTexture will work the first time, but when I then try to set a different texture and redraw, it'll crash:

    PShape shape;
    
    void settings() {
      size(400, 400, P2D); 
    }
    
    void setup() {
    }
  
    void draw() {

      noStroke(); // Remove this, no crash

      shape = createShape(RECT, 0, 0, 200, 200);
      
      PImage p1 = loadImage("img1.png");
      shape.setTexture(p1);
      shape(shape);
      
      PImage p2 = loadImage("img2.png"); // p2 needs to be a different size from p1
      shape.setTexture(p2);
      shape(shape); // Crash!
    }

It's an ArrayIndexOutofBoundsException in PShapeOpenGL, line 843, because the field "firstLineVertex" happens to be -1...
Here's a sketch with images: crash.zip
Tested on Win 10, Processing 4.2

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el sketch de fallo proporcionado e inspecciona PShapeOpenGL alrededor de la línea 843, donde se informa que firstLineVertex es -1. Reproduce el fallo en P2D con noStroke(), luego reemplaza la textura de una forma por una imagen de un tamaño diferente y vuelve a dibujarla. Se considera terminado cuando esta secuencia ya no provoca un fallo.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
computer-graphics
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.