From 36dc4f5ab6957a4078842c488afb51df2fdc0630 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Fri, 26 Apr 2013 05:38:24 +0200
Subject: Simplify GLDrawableFactory's SharedResource Query Methods; Move
 WindowsWGLDrawableFactory Quirks to GLRendererQuirks
 (NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext); Bug 706:
 Confine NeedCurrCtx4ARBCreateContext to [Windows, ATI, driver < 12.102.3);
 Avoid possible NPE @ GLContext.getGLVendorVersionNumber()

- Simplify GLDrawableFactory's SharedResource Query Methods
  - Moving common methods to GLDrawableFactory/GLDrawableFactoryImpl
    while reusing common methods to SharedResourceRunner.Resource.
  - All factories SharedResources impl. SharedResourceRunner.Resource.

- Move WindowsWGLDrawableFactory Quirks to GLRendererQuirks (NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext)
  - For better maintenance, move the mentioned quirks from the windows factory to our common place,
    being detected within GLContextImpl after each context creation.

- Bug 706: Confine NeedCurrCtx4ARBCreateContext to [Windows, ATI, driver < 12.102.3)
  - Before we added this quirk if [Windows, ATI],
    however, we have hopes that the new drivers will suffice for all
    as tested successful on my test machine (AMD Radeon HD 6300M Series, amd_catalyst_13.5_mobility_beta2).

- Avoid possible NPE @ GLContext.getGLVendorVersionNumber()
  - GLContext.getGLVendorVersionNumber() never returns 'null' but a zero version instance instead!
  - Add API doc.

- Use mixed case names in GLContextImpl.setRendererQuirks(..).
---
 src/jogl/classes/javax/media/opengl/GLDrawableFactory.java | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

(limited to 'src/jogl/classes/javax/media/opengl/GLDrawableFactory.java')

diff --git a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
index 9feb54a46..dbf6df0de 100644
--- a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
+++ b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
@@ -285,7 +285,7 @@ public abstract class GLDrawableFactory {
       if(null==device) {
           device = getDefaultDevice();
           if(null==device) {
-              throw new InternalError("no default device");
+              throw new InternalError("no default device available");
           }
           if (GLProfile.DEBUG) {
               System.err.println("Info: "+getClass().getSimpleName()+".validateDevice: using default device : "+device);
@@ -322,7 +322,10 @@ public abstract class GLDrawableFactory {
    * @param device which {@link javax.media.nativewindow.AbstractGraphicsDevice#getConnection() connection} denotes the shared the target device, may be <code>null</code> for the platform's default device.
    * @return true if a shared resource could been created, otherwise false. 
    */
-  protected abstract boolean createSharedResource(AbstractGraphicsDevice device);
+  protected final boolean createSharedResource(AbstractGraphicsDevice device) {
+      return createSharedResourceImpl(device);
+  }  
+  protected abstract boolean createSharedResourceImpl(AbstractGraphicsDevice device);
   
   /**
    * Returns true if the <code>quirk</code> exist in the shared resource's context {@link GLRendererQuirks}.
@@ -419,7 +422,7 @@ public abstract class GLDrawableFactory {
   public final List<GLCapabilitiesImmutable> getAvailableCapabilities(AbstractGraphicsDevice device) {
       device = validateDevice(device);
       if(null!=device) {
-        return getAvailableCapabilitiesImpl(device);
+          return getAvailableCapabilitiesImpl(device);
       }
       return null;
   }
-- 
cgit v1.2.3