on my VJ app Quase-Cinema (to be released on May 2009), I’m doing this technique for speeding up the display: I set ofSetBackgroundAuto(false) and only draw the interface elements when needed, like a big background png. The rest of the time, a part of the interface that was drawn beforehand stays onscreen, not redraw until needed. The video output is redrawn everyframe. This way I get a speed boost of about 30% of the fps.
This compiles and works fine on Windows XP and Ubuntu Linux. Now, whenever I run the app on WIndows Vista, the output gets “messed up”. The last drawn big png keeps coming back on top every other frame, blinking realy fast over the interface items. If lacking a previous graphic, a black screen blinks on. It looks like a ghost from a frame buffer or something…
I tried changing the options from the executable file on Windows, with no success: run in winXp compatibility modes, do not composite with desktop… all of .exe options were tried.
If I change the code here and the to ofSetBackgroundAuto(true) and redraw all the interface every frame, it works ok, but as a result the app gets slower, so I would like to run away from that workaround.
Any clues on how to solve that?
 Trying to explain it better: everything (PNGs, Quicktime…) that is drawn onscreen gets blinking with what was previously onscreen (ony on Vista).
I can’t help with the vista issue.
But maybe you could draw the static interface elements in a FBO, and use that as an alternative method. This is what I did for a simple paint app because I couldn’t get the BackgroundAuto feature to behave in 0.573. I used one of the FBO classes posted on the forum, so it was very easy to setup and test.
hope this helps
Thank you, David. I´ll look into it.
Would that restrict the app to those using more modern graphic cards? My notebook, for one, has a GeForce 6150. Do you know if that would work on cards of that generation?
And you gave me another idea, I´ll see how it behaves on 0.573.
I don’t know if the GeForce 6000 family supports FBOs. However, I think you can use glGetString(GL_EXTENSIONS) to retrieve a list of the extensions supported by your graphics card.
If you figure anything out, let us know. I’ve been trying to figure out the whole ofSetBackground(false) stuff on windows for a while and occasionally it acts strange like you mentioned.
well yesterday I just ported my app to OF 0.06 (Windows XP at first) and the ofSetBackgroundAuto(false) just didn´t work at all. The app redrew the whole screen ever yframe, just like if the command was ofSetBackgroundAuto(true).
I guess I´ll have to work around this issue for the time being.
By the way, the port to 0.06 was very smooth. The results were very good, stabilty and speed wise.