diff options
Diffstat (limited to 'src')
4 files changed, 12 insertions, 187 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/Locator.java b/src/jogl/classes/com/jogamp/opengl/util/Locator.java deleted file mode 100644 index af96a6ef7..000000000 --- a/src/jogl/classes/com/jogamp/opengl/util/Locator.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - */ - -package com.jogamp.opengl.util; - -import java.io.*; -import java.net.*; - -/** Utilities for dealing with resources. */ - -public class Locator { - private Locator() {} - - /** - * Locating a resource using 'getResource(String path, ClassLoader cl)', - * with the given context's ClassLoader and the resourcePath as is, - * as well with the context's package name-path plus the resourcePath. - * - * @see #getResource(String, ClassLoader) - */ - public static URL getResource(Class context, String resourcePath) { - if(null == resourcePath) { - return null; - } - ClassLoader contextCL = (null!=context)?context.getClassLoader():null; - URL url = getResource(resourcePath, contextCL); - if (url == null && null!=context) { - // Try again by scoping the path within the class's package - String className = context.getName().replace('.', '/'); - int lastSlash = className.lastIndexOf('/'); - if (lastSlash >= 0) { - String tmpPath = className.substring(0, lastSlash + 1) + resourcePath; - url = getResource(tmpPath, contextCL); - } - } - return url; - } - - /** - * Locating a resource using the ClassLoader's facility if not null, - * the absolute URL and absolute file. - * - * @see ClassLoader#getResource(String) - * @see ClassLoader#getSystemResource(String) - * @see URL#URL(String) - * @see File#File(String) - */ - public static URL getResource(String resourcePath, ClassLoader cl) { - if(null == resourcePath) { - return null; - } - URL url = null; - if (cl != null) { - url = cl.getResource(resourcePath); - if(!urlExists(url)) { - url = null; - } - } - if(null == url) { - url = ClassLoader.getSystemResource(resourcePath); - if(!urlExists(url)) { - url = null; - } - } - if(null == url) { - try { - url = new URL(resourcePath); - if(!urlExists(url)) { - url = null; - } - } catch (MalformedURLException e) { } - } - if(null == url) { - try { - File file = new File(resourcePath); - if(file.exists()) { - url = file.toURL(); - } else { - } - } catch (MalformedURLException e) {} - } - return url; - } - - /** - * Generates a path for the 'relativeFile' relative to the 'baseLocation'. - * - * @param baseLocation denotes a directory - * @param relativeFile denotes a relative file to the baseLocation - */ - public static String getRelativeOf(File baseLocation, String relativeFile) { - if(null == relativeFile) { - return null; - } - - while (baseLocation != null && relativeFile.startsWith("../")) { - baseLocation = baseLocation.getParentFile(); - relativeFile = relativeFile.substring(3); - } - if (baseLocation != null) { - final File file = new File(baseLocation, relativeFile); - // Handle things on Windows - return file.getPath().replace('\\', '/'); - } - return null; - } - - /** - * Generates a path for the 'relativeFile' relative to the 'baseLocation'. - * - * @param baseLocation denotes a URL to a file - * @param relativeFile denotes a relative file to the baseLocation's parent directory - */ - public static String getRelativeOf(URL baseLocation, String relativeFile) { - String urlPath = baseLocation.getPath(); - - if ( baseLocation.toString().startsWith("jar") ) { - JarURLConnection jarConnection; - try { - jarConnection = (JarURLConnection) baseLocation.openConnection(); - urlPath = jarConnection.getEntryName(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - // Try relative path first - return getRelativeOf(new File(urlPath).getParentFile(), relativeFile); - } - - /** - * Returns true, if the url exists, - * trying to open a connection. - */ - public static boolean urlExists(URL url) { - boolean v = false; - if(null!=url) { - try { - URLConnection uc = url.openConnection(); - v = true; - } catch (IOException ioe) { } - } - return v; - } - -} - diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java index be3a1de73..12d80e42c 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java +++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java @@ -301,13 +301,13 @@ public class ShaderCode { URL nextURL = null; // Try relative path first - String next = Locator.getRelativeOf(url, includeFile); + String next = IOUtil.getRelativeOf(url, includeFile); if(null != next) { - nextURL = Locator.getResource(context, next); + nextURL = IOUtil.getResource(context, next); } if (nextURL == null) { // Try absolute path - nextURL = Locator.getResource(context, includeFile); + nextURL = IOUtil.getResource(context, includeFile); } if (nextURL == null) { // Fail @@ -337,7 +337,7 @@ public class ShaderCode { } public static String readShaderSource(Class context, String path) { - URL url = Locator.getResource(context, path); + URL url = IOUtil.getResource(context, path); if (url == null) { return null; } @@ -348,7 +348,7 @@ public class ShaderCode { public static ByteBuffer readShaderBinary(Class context, String path) { try { - URL url = Locator.getResource(context, path); + URL url = IOUtil.getResource(context, path); if (url == null) { return null; } diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java index a0eed50ea..1f79890dc 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java +++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java @@ -1,5 +1,7 @@ package com.jogamp.opengl.util.glsl.sdk; +import com.jogamp.common.util.IOUtil; + import javax.media.opengl.*; import com.jogamp.opengl.util.*; import com.jogamp.opengl.util.glsl.*; @@ -51,7 +53,7 @@ public abstract class CompileShader { String justName = basename(resourceName); outName = justName.substring(0, justName.length() - suffixLen) + ShaderCode.getFileSuffix(true, type); - URL resourceURL = Locator.getResource(null, resourceName); + URL resourceURL = IOUtil.getResource(null, resourceName); String dirName = dirname(resourceURL.getPath()); outName = dirName + File.separator + "bin" + File.separator + @@ -63,7 +65,7 @@ public abstract class CompileShader { public void processOneShader(String resourceName, String outName, int type) throws IOException, UnsupportedEncodingException, InterruptedException { - URL resourceURL = Locator.getResource(null, resourceName); + URL resourceURL = IOUtil.getResource(null, resourceName); String dirName = dirname(resourceURL.getPath()); String shader = ShaderCode.readShaderSource(null, resourceName); diff --git a/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java b/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java index 31990af37..572955fd3 100644 --- a/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java +++ b/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java @@ -31,10 +31,11 @@ import java.io.IOException; import javax.media.opengl.GLException; import com.jogamp.common.util.IntObjectHashMap; +import com.jogamp.common.util.IOUtil; + import com.jogamp.graph.font.Font; import com.jogamp.graph.font.FontSet; import com.jogamp.graph.font.FontFactory; -import com.jogamp.opengl.util.Locator; import java.net.URL; public class UbuntuFontLoader implements FontSet { @@ -121,7 +122,7 @@ public class UbuntuFontLoader implements FontSet { Font abspath(String fname, int family, int style) { final String err = "Problem loading font "+fname+", stream "+relPath+fname; try { - URL url = Locator.getResource(UbuntuFontLoader.class, relPath+fname); + URL url = IOUtil.getResource(UbuntuFontLoader.class, relPath+fname); if(null == url) { throw new GLException(err); } |