I tried to isolate the problem, but if I get rid of the PGraphics for example the bug seems to disappear. If I run the below script I get: <img width="432" alt="Screenshot 2023-07-05 at 13 57 00" src="https://github.com/processing/processing-video/assets/738650/3743ba39-4624-4289-9fa7-06e01d7824df"> ```java import processing.video.*; PGraphics big; PGraphics small; boolean from_big_pg = true; Movie movie; void setup() { size(320, 180, P2D); movie = new Movie(this, "big.mp4"); movie.loop(); big = createGraphics(1280, 720, P2D); small = createGraphics(32, 18, P2D); } //void movieEvent(Movie m) { // m.read(); //} void draw() { if (movie.available()) { movie.read(); } // only works with `void movieEvent(Movie m)` // and not with `if (movie.available())` (it stays grey) gl_texture(movie).usingMipmaps(true, 3); gl_texture(big).usingMipmaps(true, 3); gl_texture(small).usingMipmaps(true, 3); big.beginDraw(); big.image(movie, 0, 0, big.width, big.height); big.endDraw(); small.beginDraw(); small.image(from_big_pg ? big : movie, 0, 0, small.width, small.height); small.endDraw(); image(small, 0, 0, 320, 180); } public Texture gl_texture(PImage img) { return ((PGraphicsOpenGL)g).getTexture(img); } ``` If I comment out the following: (which is not what I want): ```java gl_texture(movie).usingMipmaps(true, 3); gl_texture(big).usingMipmaps(true, 3); gl_texture(small).usingMipmaps(true, 3); ``` Then it works again: <img width="432" alt="Screenshot 2023-07-05 at 14 02 43" src="https://github.com/processing/processing-video/assets/738650/d0f7838f-9905-498b-be12-6fb2975fb500"> Now the interesting part: If I use: ```java void movieEvent(Movie m) { m.read(); } ``` Instead of: ```java if (movie.available()) { movie.read(); } ``` Then the `usingMipmaps` part works... (Also if the usingMipmaps is before `if (movie.available()) {` then there is a nullpointerException). The video file: https://github.com/processing/processing-video/assets/738650/f7a6ba31-b697-49fb-aeac-110823d0453d
Activity
clankill3r commentedon Feb 13, 2024
Ok, I figured something out.
Switching the filter for the mipmap every frame makes it works, of course this is a workaround and not a fix but I can live with it for now.