Bug 720 - Unify all platform specific GLContextImpl specializations - Allowing to swap on- and offscreen GLDrawables w/ unique GLContext instance
Summary: Unify all platform specific GLContextImpl specializations - Allowing to swap ...
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: core (show other bugs)
Version: 2
Hardware: All all
: --- critical
Assignee: Sven Gothel
URL:
Depends on:
Blocks: 719
  Show dependency treegraph
 
Reported: 2013-04-17 16:54 CEST by Sven Gothel
Modified: 2013-04-18 03:21 CEST (History)
1 user (show)

See Also:
Type: ---
SCM Refs:
fd418a69eca7b8c1bb74244982305fc6004d0a52
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2013-04-17 16:54:03 CEST

    
Comment 1 Sven Gothel 2013-04-18 03:21:12 CEST
GLContextImpl shall have only _one_ unique platform derivative
to allow proper swapping of GLDrawables of any type via:
  - 'GLAutoDrawable.setContext(GLContext newCtx, boolean destroyPrevCtx)', which calls
  - 'GLContext.setGLDrawable(GLDrawable readWrite, boolean setWriteOnly)'
    
Exception: External context may be specialized.
    
All drawable specific property handling shall be provided
and implemented (if possible) via GLDrawable specializations.
    
 - GLContext.isGLOrientationFlippedVertical() -> GLDrawable.isGLOriented()

 - PNGImage.createFromData() takes 'isGLOriented' to properly handle vertical flipping simply 
   by line ordering

 - TextureIO's PNG writer passes TextureData's getMustFlipVertically() 
    as isGLOriented to PNGImage.createFromData()

 - GLReadBufferUtil respects GLDrawable's isGLOriented() when creating TextureData instance.

 - Screenshot respects GLDrawable's isGLOriented()
    
 - Screenshot is deprecated, use GLReadBufferUtil.
    
 - Removed all PBuffer attributes, i.e. floatingPoint, RenderToTexture and RenderToTextureRectangle.
   - Allows removal of special pbuffer handling in GLContext* implementations.
   - Removed also from GLCapabilities*
   - Removed from deprecated GLPbuffer
    
   Impact:
    - Low, users who desire to render into a texture shall use our FBO GLOffscreenDrawable.
    - Only use case was the deprecated GLPbuffer
    - floating point framebuffer technology is still patented anyways :)
    
 - Removed Java2DGLContext, which was only used for OSX's GLJPanel Java2D bridge,
   which is no more supported anyways.