OpenGL transitions ( 2)
Worked 5 hours on the thing last night (from 30th to 31st august).Good some good news :
Fixed the colorspace issue: was the pDetectedFormat, means OpenGL transitions work and appear in the right colors now.
There is only one remaining important issue (flicker)
Some details : GL_VERSION 1.2 or 1.3 detected means we enter in the "if .. .#endif" control structure
Adding debug info, we have :
rendering::ColorSpaceType:: 2 ( if RGB, returns 2 )
GL_VERSION 1.2 or 1.3 detected
nNumComponents = 4
nBitsPerPixel = 32
nComponentOrderIndex = 0
And in the #if .. #endif structure, this leads to lcl_ARGB32[] use, what is wrong. Indeed, correct OGLFormat is lcl_RGB24 on Mac OS X Intel ( lcl_RGB32 untested, might work )
Simple solution -> not use or fix the suspicious color space detection, and use (just fast workaround) :
#if defined(GL_VERSION_1_2) && defined(GLU_VERSION_1_3) && !defined( QUARTZ ) // buggy
instead of : #if defined(GL_VERSION_1_2) && defined(GLU_VERSION_1_3)
TODO :
- cleanup in void OGLTrans_TransitionerImpl::GLInitSlides() ,
- contact Radek, and Thorsten, and see. Maybe split the current OGLTransitionerImpl.cxx in three arch-dedicated files, should help to avoid the growing forest of #if ..
Last remaining issues :
offset in window mode, caused by scrollbar not included in the slide position computation
(the frame dimensions are different)
=> Looks secondary, because everything works fine in a frame.
flicker
Very noisy when happening. Must be fixed.
The problem is (using ssa words) : the slideshow displays the slide first
then an opengl view is painted on top of it and plays the slide transition
once it is removed the old background appears again still containing the first frame of the animation, and after a very short time the slideshow engine draws the final frame,
which is visible as a flicker
Update: the issues always occurs, means it does concern both windowed and fullscreen modes.
There is probably some needDisplay or whatever other event sent, we should not. Needs to ask pl, the master of vcl.
Optimization / compatibility ?
Will be Fun ( cleanup in OGLTransitionerImpl::GLInitSlides() is mandatory to be sure the detection works on every machine.
To be continued
Libellés : development, fun, High-Tech, Mac OS X, OpenGL, OpenOffice, OSX
<< Accueil