processing / processing/processing4

noStroke makes PShape.setTexture crash (P2D)

Aperta
#695 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

help wanted opengl
Lingua principale
Java
Stelle
494
Fork
183
Merge medio
4h 39m
PR unite (30g)
3

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con lo sketch del crash fornito e ispeziona PShapeOpenGL intorno alla riga 843, dove firstLineVertex risulta essere -1. Riproduci il problema in P2D con noStroke(), quindi sostituisci la texture di una forma con un'immagine di dimensioni diverse e ridisegnala. Il lavoro è completato quando questa sequenza non causa più un crash.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
computer-graphics
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.