summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-06-08 05:58:07 +0200
committerSven Gothel <[email protected]>2011-06-08 05:58:07 +0200
commit138ddda3f346db0f1d8b4bac1760d415e7dc3d70 (patch)
treed6b489428d56dce585273b179aacf8e042a8b2fc /src
parent24a117c1fb0af458f70932fa48b8052c16a4fa7f (diff)
Locator moved to GlueGen's IOUtil (gluegen a87c56c95099de5b6cbc9bd8bf6f1924a3dd6387)
Diffstat (limited to 'src')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/Locator.java178
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java10
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java6
-rw-r--r--src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java5
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);
}