Web-fix libgdx1.11.0 support, rebased (#977)
* Support libgdx 1.9.11 * Support libgdx 1.9.13 * Support libgdx 1.9.14 * Re-enabled vtm-web and vtm-web-app
This commit is contained in:
parent
f7bdc420bf
commit
272ead2518
@ -38,6 +38,6 @@ include ':vtm-playground'
|
||||
include ':vtm-tests'
|
||||
include ':vtm-theme-comparator'
|
||||
include ':vtm-themes'
|
||||
//include ':vtm-web'
|
||||
//include ':vtm-web-app'
|
||||
include ':vtm-web'
|
||||
include ':vtm-web-app'
|
||||
//include ':vtm-web-js'
|
||||
|
||||
@ -580,7 +580,7 @@ public class GdxGL extends GwtGL20 implements GL {
|
||||
return glGetActiveAttrib(program,
|
||||
index,
|
||||
size,
|
||||
type);
|
||||
(IntBuffer)type);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -588,7 +588,7 @@ public class GdxGL extends GwtGL20 implements GL {
|
||||
return glGetActiveUniform(program,
|
||||
index,
|
||||
size,
|
||||
type);
|
||||
(IntBuffer)type);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -32,7 +32,7 @@ import com.google.gwt.dom.client.Touch;
|
||||
import com.google.gwt.event.dom.client.KeyCodes;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class GwtInput implements Input {
|
||||
public class DefaultGwtInput implements Input {
|
||||
static final int MAX_TOUCHES = 20;
|
||||
boolean justTouched = false;
|
||||
private IntMap<Integer> touchMap = new IntMap<Integer>(20);
|
||||
@ -53,13 +53,76 @@ public class GwtInput implements Input {
|
||||
long currentEventTimeStamp;
|
||||
final CanvasElement canvas;
|
||||
boolean hasFocus = true;
|
||||
final GwtApplicationConfiguration config;
|
||||
GwtAccelerometer accelerometer;
|
||||
GwtGyroscope gyroscope;
|
||||
|
||||
public GwtInput(CanvasElement canvas) {
|
||||
public DefaultGwtInput(CanvasElement canvas, GwtApplicationConfiguration config) {
|
||||
this.canvas = canvas;
|
||||
hookEvents();
|
||||
this.config = config;
|
||||
|
||||
if (config.useAccelerometer && GwtFeaturePolicy.allowsFeature(GwtAccelerometer.PERMISSION)) {
|
||||
if (GwtApplication.agentInfo().isFirefox()) {
|
||||
setupAccelerometer();
|
||||
} else {
|
||||
GwtPermissions.queryPermission(GwtAccelerometer.PERMISSION, new GwtPermissions.GwtPermissionResult() {
|
||||
@Override
|
||||
public void granted() {
|
||||
setupAccelerometer();
|
||||
}
|
||||
|
||||
void reset() {
|
||||
@Override
|
||||
public void denied() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prompt() {
|
||||
setupAccelerometer();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (config.useGyroscope) {
|
||||
if (GwtApplication.agentInfo().isFirefox()) {
|
||||
setupGyroscope();
|
||||
} else {
|
||||
GwtPermissions.queryPermission(GwtGyroscope.PERMISSION, new GwtPermissions.GwtPermissionResult() {
|
||||
@Override
|
||||
public void granted() {
|
||||
setupGyroscope();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void denied() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prompt() {
|
||||
setupGyroscope();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
hookEvents();
|
||||
|
||||
// backwards compatibility: backspace was caught in older versions
|
||||
setCatchKey(Keys.BACKSPACE, true);
|
||||
}
|
||||
void setupAccelerometer () {
|
||||
if (GwtAccelerometer.isSupported() && GwtFeaturePolicy.allowsFeature(GwtAccelerometer.PERMISSION)) {
|
||||
if (accelerometer == null) accelerometer = GwtAccelerometer.getInstance();
|
||||
if (!accelerometer.activated()) accelerometer.start();
|
||||
}
|
||||
}
|
||||
|
||||
void setupGyroscope () {
|
||||
if (GwtGyroscope.isSupported() && GwtFeaturePolicy.allowsFeature(GwtGyroscope.PERMISSION)) {
|
||||
if (gyroscope == null) gyroscope = GwtGyroscope.getInstance();
|
||||
if (!gyroscope.activated()) gyroscope.start();
|
||||
}
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
if (justTouched) {
|
||||
justTouched = false;
|
||||
for (int i = 0; i < justPressedButtons.length; i++) {
|
||||
@ -236,10 +299,20 @@ public class GwtInput implements Input {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTextInput(TextInputListener listener, String title, String text, String hint, OnscreenKeyboardType type) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnscreenKeyboardVisible(boolean visible) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnscreenKeyboardVisible(boolean visible, OnscreenKeyboardType type) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void vibrate(int milliseconds) {
|
||||
}
|
||||
@ -447,12 +520,12 @@ public class GwtInput implements Input {
|
||||
}
|
||||
|
||||
// kindly borrowed from our dear playn friends...
|
||||
static native void addEventListener(JavaScriptObject target, String name, GwtInput handler, boolean capture) /*-{
|
||||
static native void addEventListener(JavaScriptObject target, String name, DefaultGwtInput handler, boolean capture) /*-{
|
||||
target
|
||||
.addEventListener(
|
||||
name,
|
||||
function(e) {
|
||||
handler.@com.badlogic.gdx.backends.gwt.GwtInput::handleEvent(Lcom/google/gwt/dom/client/NativeEvent;)(e);
|
||||
handler.@com.badlogic.gdx.backends.gwt.DefaultGwtInput::handleEvent(Lcom/google/gwt/dom/client/NativeEvent;)(e);
|
||||
}, capture);
|
||||
}-*/;
|
||||
|
||||
@ -627,7 +700,7 @@ public class GwtInput implements Input {
|
||||
}
|
||||
if (e.getType().equals(getMouseWheelEvent())) {
|
||||
if (processor != null) {
|
||||
processor.scrolled((int) getMouseWheelVelocity(e));
|
||||
processor.scrolled(0, (int) getMouseWheelVelocity(e));
|
||||
}
|
||||
this.currentEventTimeStamp = TimeUtils.nanoTime();
|
||||
e.preventDefault();
|
||||
@ -67,7 +67,7 @@ public abstract class GwtApplication implements EntryPoint, Application {
|
||||
private ApplicationListener listener;
|
||||
GwtApplicationConfiguration config;
|
||||
GwtGraphics graphics;
|
||||
private GwtInput input;
|
||||
private DefaultGwtInput input;
|
||||
private GwtNet net;
|
||||
private Panel root = null;
|
||||
private TextArea log = null;
|
||||
@ -179,12 +179,12 @@ public abstract class GwtApplication implements EntryPoint, Application {
|
||||
lastWidth = graphics.getWidth();
|
||||
lastHeight = graphics.getHeight();
|
||||
Gdx.app = this;
|
||||
Gdx.audio = new GwtAudio();
|
||||
Gdx.audio = createAudio();
|
||||
Gdx.graphics = graphics;
|
||||
Gdx.gl20 = graphics.getGL20();
|
||||
Gdx.gl = Gdx.gl20;
|
||||
Gdx.files = new GwtFiles(preloader);
|
||||
this.input = new GwtInput(graphics.canvas);
|
||||
this.input = createInput(graphics.canvas, this.config);
|
||||
Gdx.input = this.input;
|
||||
this.net = new GwtNet(config);
|
||||
Gdx.net = this.net;
|
||||
@ -597,6 +597,14 @@ public abstract class GwtApplication implements EntryPoint, Application {
|
||||
}
|
||||
}
|
||||
|
||||
protected GwtAudio createAudio() {
|
||||
return new DefaultGwtAudio();
|
||||
}
|
||||
|
||||
protected DefaultGwtInput createInput(CanvasElement canvas, GwtApplicationConfiguration config) {
|
||||
return new DefaultGwtInput(canvas, config);
|
||||
}
|
||||
|
||||
/**
|
||||
* LoadingListener interface main purpose is to do some things before or after {@link GwtApplication#setupLoop()}
|
||||
*/
|
||||
|
||||
@ -184,6 +184,31 @@ public class GwtGraphics implements Graphics {
|
||||
return canvas.getHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getBackBufferScale() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSafeInsetLeft() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSafeInsetTop() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSafeInsetBottom() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSafeInsetRight() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getFrameId() {
|
||||
return frameId;
|
||||
@ -517,6 +542,11 @@ public class GwtGraphics implements Graphics {
|
||||
public void setVSync(boolean vsync) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setForegroundFPS(int fps) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getDensity() {
|
||||
return 96.0f / 160;
|
||||
|
||||
@ -27,6 +27,7 @@ import com.google.gwt.canvas.dom.client.Context2d;
|
||||
import com.google.gwt.canvas.dom.client.Context2d.Composite;
|
||||
import com.google.gwt.dom.client.CanvasElement;
|
||||
import com.google.gwt.dom.client.ImageElement;
|
||||
import com.google.gwt.dom.client.VideoElement;
|
||||
|
||||
import java.nio.Buffer;
|
||||
import java.nio.IntBuffer;
|
||||
@ -234,6 +235,10 @@ public class Pixmap implements Disposable {
|
||||
return imageElement;
|
||||
}
|
||||
|
||||
public boolean canUseVideoElement(){return false;}
|
||||
|
||||
public VideoElement getVideoElement(){return null;}
|
||||
|
||||
/**
|
||||
* Sets the color for the following drawing operations
|
||||
*
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var TESSELLATION_LIMIT = 4096;
|
||||
var TESSELLATION_LIMIT = 8128;
|
||||
|
||||
function j(a) {
|
||||
throw a;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user