aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jake2/render/RenderAPI.java2
-rw-r--r--src/jake2/render/Renderer.java175
2 files changed, 92 insertions, 85 deletions
diff --git a/src/jake2/render/RenderAPI.java b/src/jake2/render/RenderAPI.java
index 3237d82..ab4ea9d 100644
--- a/src/jake2/render/RenderAPI.java
+++ b/src/jake2/render/RenderAPI.java
@@ -49,6 +49,6 @@ public interface RenderAPI {
void R_SetPalette(byte[] palette);
void R_BeginFrame(float camera_separation);
-
+
void GL_ScreenShot_f();
}
diff --git a/src/jake2/render/Renderer.java b/src/jake2/render/Renderer.java
index 76db87f..ea5d449 100644
--- a/src/jake2/render/Renderer.java
+++ b/src/jake2/render/Renderer.java
@@ -2,27 +2,27 @@
* Renderer.java
* Copyright (C) 2003
*
- * $Id: Renderer.java,v 1.12 2008-03-02 15:40:27 cawe Exp $
+ * $Id: Renderer.java,v 1.13 2008-03-02 16:01:27 cawe Exp $
*/
/*
-Copyright (C) 1997-2001 Id Software, Inc.
+ Copyright (C) 1997-2001 Id Software, Inc.
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-See the GNU General Public License for more details.
+ See the GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
+ */
package jake2.render;
import jake2.client.refexport_t;
@@ -35,48 +35,50 @@ import java.util.Vector;
* @author cwei
*/
public class Renderer {
-
+
static RenderAPI fastRenderer = new jake2.render.fast.Misc();
static RenderAPI basicRenderer = new jake2.render.basic.Misc();
- static Vector drivers = new Vector(3);
-
- static {
- try {
- try {
- Class.forName("net.java.games.jogl.GL");
- Class.forName("jake2.render.JoglRenderer");
- } catch (ClassNotFoundException e) {
- // ignore the oldjogl drivers if runtime not in classpath
- }
- try {
- Class.forName("org.lwjgl.opengl.GL11");
- Class.forName("jake2.render.LwjglRenderer");
- } catch (ClassNotFoundException e) {
- // ignore the lwjgl driver if runtime not in classpath
- }
- try {
- Class.forName("javax.media.opengl.GL");
- Class.forName("jake2.render.Jsr231Renderer");
- } catch (ClassNotFoundException e) {
- // ignore the jnew ogl drivers if runtime not in classpath
- }
- } catch (Throwable e) {
- e.printStackTrace();
- }
- };
-
- public static void register(Ref impl) {
- if (impl == null) {
- throw new IllegalArgumentException("Ref implementation can't be null");
- }
- if (!drivers.contains(impl)) {
- drivers.add(impl);
- }
- }
+ static Vector drivers = new Vector(3);
+
+ static {
+ try {
+ try {
+ Class.forName("net.java.games.jogl.GL");
+ Class.forName("jake2.render.JoglRenderer");
+ } catch (ClassNotFoundException e) {
+ // ignore the old jogl driver if runtime not in classpath
+ }
+ try {
+ Class.forName("org.lwjgl.opengl.GL11");
+ Class.forName("jake2.render.LwjglRenderer");
+ } catch (ClassNotFoundException e) {
+ // ignore the lwjgl driver if runtime not in classpath
+ }
+ try {
+ Class.forName("javax.media.opengl.GL");
+ Class.forName("jake2.render.Jsr231Renderer");
+ } catch (ClassNotFoundException e) {
+ // ignore the new jogl driver if runtime not in classpath
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ };
+
+ public static void register(Ref impl) {
+ if (impl == null) {
+ throw new IllegalArgumentException(
+ "Ref implementation can't be null");
+ }
+ if (!drivers.contains(impl)) {
+ drivers.add(impl);
+ }
+ }
/**
* Factory method to get the Renderer implementation.
+ *
* @return refexport_t (Renderer singleton)
*/
public static refexport_t getDriver(String driverName) {
@@ -84,39 +86,44 @@ public class Renderer {
}
/**
- * Factory method to get the Renderer implementation.
- * @return refexport_t (Renderer singleton)
- */
- public static refexport_t getDriver(String driverName, boolean fast) {
- // find a driver
- Ref driver = null;
- int count = drivers.size();
- for (int i = 0; i < count; i++) {
- driver = (Ref) drivers.get(i);
- if (driver.getName().equals(driverName)) {
- return driver.GetRefAPI((fast) ? fastRenderer : basicRenderer);
- }
- }
- // null if driver not found
- return null;
- }
-
- public static String getDefaultName() {
- return (drivers.isEmpty()) ? null : ((Ref) drivers.firstElement()).getName();
- }
-
- public static String getPreferedName() {
- return (drivers.isEmpty()) ? null : ((Ref) drivers.lastElement()).getName();
- }
-
- public static String[] getDriverNames() {
- if (drivers.isEmpty()) return null;
- int count = drivers.size();
- String[] names = new String[count];
- for (int i = 0; i < count; i++) {
- names[i] = ((Ref) drivers.get(i)).getName();
- }
- return names;
- }
+ * Factory method to get the Renderer implementation.
+ *
+ * @return refexport_t (Renderer singleton)
+ */
+ public static refexport_t getDriver(String driverName, boolean fast) {
+ // find a driver
+ Ref driver = null;
+ int count = drivers.size();
+ for (int i = 0; i < count; i++) {
+ driver = (Ref) drivers.get(i);
+ if (driver.getName().equals(driverName)) {
+ return driver.GetRefAPI((fast) ? fastRenderer : basicRenderer);
+ }
+ }
+ // null if driver not found
+ return null;
+ }
+
+ public static String getDefaultName() {
+ return (drivers.isEmpty()) ? null : ((Ref) drivers.firstElement())
+ .getName();
+ }
+
+ public static String getPreferedName() {
+ return (drivers.isEmpty()) ? null : ((Ref) drivers.lastElement())
+ .getName();
+ }
+
+ public static String[] getDriverNames() {
+ if (drivers.isEmpty())
+ return null;
+
+ int count = drivers.size();
+ String[] names = new String[count];
+ for (int i = 0; i < count; i++) {
+ names[i] = ((Ref) drivers.get(i)).getName();
+ }
+ return names;
+ }
} \ No newline at end of file