From 897c7248f9895d828542d524b211b74efcc715d2 Mon Sep 17 00:00:00 2001 From: Sven Gothel <sgothel@jausoft.com> Date: Tue, 27 Apr 2010 19:45:43 +0200 Subject: JOGL Error Handling - Catch invalid drawable for all impl. at GLContextImpl if !created yet - GLDrawableFactoryImpl (X11/WGL) catch and fwd Throwable properly - GLProfile catch LinkageError and handle it In case of nothing is available, a final ExceptionInInitializer will be thrown, with the produced GLException that no GLProfile is available. --- src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXContext.java | 3 --- .../classes/com/jogamp/opengl/impl/x11/glx/X11GLXDrawableFactory.java | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'src/jogl/classes/com/jogamp/opengl/impl/x11') diff --git a/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXContext.java b/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXContext.java index 241c956dc..165f89dcc 100644 --- a/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXContext.java +++ b/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXContext.java @@ -367,9 +367,6 @@ public abstract class X11GLXContext extends GLContextImpl { getDrawableImpl().getFactoryImpl().lockToolkit(); try { - if (drawable.getNativeWindow().getSurfaceHandle() == 0) { - throw new GLException("drawable not properly initialized: "+drawable); - } boolean created = false; if (context == 0) { create(); diff --git a/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXDrawableFactory.java b/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXDrawableFactory.java index b544404ad..aa1767c48 100644 --- a/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXDrawableFactory.java +++ b/src/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXDrawableFactory.java @@ -89,11 +89,13 @@ public class X11GLXDrawableFactory extends GLDrawableFactoryImpl implements Dyna ctx.makeCurrent(); ctx.release(); sharedContext = ctx; + } catch (Throwable t) { + throw new GLException("X11GLXDrawableFactory - Could not initialize shared resources", t); } finally { X11Util.XUnlockDisplay(sharedScreen.getDevice().getHandle()); } if(null==sharedContext) { - throw new GLException("Couldn't init shared context"); + throw new GLException("X11GLXDrawableFactory - Shared Context is null"); } if (DEBUG) { System.err.println("!!! Vendor: "+vendorName+", ATI: "+isVendorATI+", NV: "+isVendorNVIDIA); -- cgit v1.2.3