diff --git a/src/com/blarg/gdx/graphics/AlphaTestCameraGroupStrategy.java b/src/com/blarg/gdx/graphics/AlphaTestCameraGroupStrategy.java
index ff89540..d22e26e 100644
--- a/src/com/blarg/gdx/graphics/AlphaTestCameraGroupStrategy.java
+++ b/src/com/blarg/gdx/graphics/AlphaTestCameraGroupStrategy.java
@@ -1,7 +1,5 @@
package com.blarg.gdx.graphics;
-import java.util.Comparator;
-
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Camera;
import com.badlogic.gdx.graphics.GL10;
@@ -14,6 +12,8 @@ import com.badlogic.gdx.utils.Disposable;
import com.badlogic.gdx.utils.ObjectMap;
import com.badlogic.gdx.utils.Pool;
+import java.util.Comparator;
+
/**
*
* Note:
@@ -91,24 +91,30 @@ public class AlphaTestCameraGroupStrategy implements GroupStrategy, Disposable {
private final Comparator cameraSorter;
public AlphaTestCameraGroupStrategy (final Camera camera) {
- this(camera, new Comparator() {
+ if (!Gdx.graphics.isGL20Available())
+ throw new UnsupportedOperationException("AlphaTestCameraGroupStrategy requires shader support.");
+
+ this.camera = camera;
+ createDefaultShader();
+
+ final AlphaTestCameraGroupStrategy that = this;
+ this.cameraSorter = new Comparator() {
@Override
public int compare (Decal o1, Decal o2) {
- float dist1 = camera.position.dst(o1.getPosition());
- float dist2 = camera.position.dst(o2.getPosition());
+ float dist1 = that.camera.position.dst(o1.getPosition());
+ float dist2 = that.camera.position.dst(o2.getPosition());
return (int)Math.signum(dist2 - dist1);
}
- });
+ };
}
- public AlphaTestCameraGroupStrategy(Camera camera, Comparator sorter) {
+ public AlphaTestCameraGroupStrategy (Camera camera, Comparator sorter) {
if (!Gdx.graphics.isGL20Available())
throw new UnsupportedOperationException("AlphaTestCameraGroupStrategy requires shader support.");
this.camera = camera;
this.cameraSorter = sorter;
createDefaultShader();
-
}
public void setCamera (Camera camera) {