From e7064ece049705e013d80985eae698ce0ee3c4e3 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Sat, 15 Dec 2012 23:25:12 +0100
Subject: Cleanup GLContext special entries:
 getOffscreenContextPixelDataType(), getOffscreenContextReadBuffer(), .. ; Add
 GLFBODrawable API entries for multi buffering (no impl. yet); GLJPanel 1st
 simplification using offscreen drawable

- Cleanup GLContext special entries: getOffscreenContextPixelDataType(), getOffscreenContextReadBuffer(), .. ;
  - add: getDefaultReadBuffer() (-> exposed via GLBase as well)
  - add: isGLOrientationFlippedVertical()
  - add: getDefaultPixelDataType()
  - removed impl: getOffscreenContextPixelDataType()
  - removed impl: getOffscreenContextReadBuffer()
  - removed impl: offscreenImageNeedsVerticalFlip()

- Add GLFBODrawable API entries for multi buffering (no impl. yet);
  - TODO: Add implementation code in GLFBODrawableImpl

- GLJPanel 1st simplification using FBO
  - Use above new GL/GLContext entries
  - Fix: getNativeSurface() and getHandle()
  - TODO:
    - Remove distinction of 'pbuffer' and 'software',
    - Use GLDrawableFactory.createOffscreenDrawable(..)
    - Use GL for FBO swapping
---
 src/jogl/classes/jogamp/opengl/GLDrawableImpl.java | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

(limited to 'src/jogl/classes/jogamp/opengl/GLDrawableImpl.java')

diff --git a/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java b/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java
index df7f742aa..ccf0a8f0d 100644
--- a/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLDrawableImpl.java
@@ -244,7 +244,16 @@ public abstract class GLDrawableImpl implements GLDrawable {
   /** Callback for special implementations, allowing GLContext to fetch a custom default render framebuffer. Defaults to zero.*/
   protected int getDefaultDrawFramebuffer() { return 0; }
   /** Callback for special implementations, allowing GLContext to fetch a custom default read framebuffer. Defaults to zero. */
-  protected int getDefaultReadFramebuffer() { return 0; }
+  protected int getDefaultReadFramebuffer() { return 0; }  
+  /** Callback for special implementations, allowing GLContext to fetch a custom default read buffer of current framebuffer. */
+  protected int getDefaultReadBuffer(GL gl) {
+      if(gl.isGLES() || getChosenGLCapabilities().getDoubleBuffered()) {
+          // Note-1: Neither ES1 nor ES2 supports selecting the read buffer via glReadBuffer
+          // Note-2: ES3 only supports GL_BACK, GL_NONE or GL_COLOR_ATTACHMENT0+i
+          return GL.GL_BACK;
+      }
+      return GL.GL_FRONT ; 
+  }
   
   @Override
   public final synchronized boolean isRealized() {
-- 
cgit v1.2.3