public void run () { try { platform.notifySuccess(callback, getBytesSync(path)); } catch (Throwable t) { platform.notifyFailure(callback, t); } } });
@Override public void getBytes(final String path, final Callback<byte[]> callback) { platform.invokeAsync(new Runnable() { public void run () { try { platform.notifySuccess(callback, getBytesSync(path)); } catch (Throwable t) { platform.notifyFailure(callback, t); } } }); }
protected void setImageLater(final AsyncImage<IMG> image, final IMG impl, final Scale scale) { platform.invokeLater(new Runnable() { public void run () { image.setImage(impl, scale); } }); }
@Override public void didFinishLoading(NSURLConnection conn) { platform.notifySuccess(callback, new ResponseImpl(rspCode) { @Override protected Map<String,List<String>> extractHeaders() { Map<String,List<String>> headerMap = new HashMap<String,List<String>>(); if (headers != null) { for (Map.Entry<String,String> entry : headers.entrySet()) { // iOS concatenates all repeated headers into a single header separated by commas, // which is known to be a fucking stupid thing to do, but hey, they're doing it! headerMap.put(entry.getKey(), Collections.singletonList(entry.getValue())); } } return headerMap; } @Override public String payloadString() { try { return new String(data.getBytes(), "UTF-8"); } catch (UnsupportedEncodingException uee) { throw new RuntimeException(uee); } } @Override public byte[] payload() { return data.getBytes(); } }); } }, true);
@Override public void didFail(NSURLConnection conn, NSError error) { String errmsg = error.getLocalizedDescription(); Exception exn = rspCode > 0 ? new HttpException(rspCode, errmsg) : new Exception(errmsg); platform.notifyFailure(callback, exn); } @Override
@Override protected void onExit() { super.onExit(); state = State.EXITED; }
@Override public void checkGLError(String op) { if (checkErrors) { int error; while ((error = gl.glGetError()) != GL_NO_ERROR) { platform.log().warn(this.getClass().getName() + " -- " + op + ": glError " + error); } } }
/** * Returns a (created on demand, then cached) image used when filling solid color quads or * triangles. */ Image fillImage() { if (fillImage == null) { CanvasImage image = platform.graphics().createImage(1, 1); image.canvas().setFillColor(0xFFFFFFFF).fillRect(0, 0, image.width(), image.height()); fillImage = image; } return fillImage; }
@Override protected void onExit() { super.onExit(); state = State.EXITED; }
public void run () { try { platform.notifySuccess(callback, getTextSync(path)); } catch (Throwable t) { platform.notifyFailure(callback, t); } } });
@Override public void getText(final String path, final Callback<String> callback) { platform.invokeAsync(new Runnable() { public void run () { try { platform.notifySuccess(callback, getTextSync(path)); } catch (Throwable t) { platform.notifyFailure(callback, t); } } }); }
/** * Delivers {@code result} to {@code callback} on the next game tick (on the PlayN thread). */ public <T> void notifySuccess(final Callback<T> callback, final T result) { invokeLater(new Runnable() { public void run() { callback.onSuccess(result); } }); }
if (encoding == null) encoding = UTF8; platform.notifySuccess(callback, new BinaryResponse(code, payload, encoding) { @Override protected Map<String,List<String>> extractHeaders() { platform.notifyFailure(callback, e); } catch (IOException e) { platform.notifyFailure(callback, e);
@Override protected void execute(final BuilderImpl req, final Callback<Response> callback) { platform.invokeAsync(new Runnable() { @Override public void run() {
/** Queues a texture to be destroyed on the GL thread. */ public void queueDestroyTexture(final int tex) { platform.invokeLater(new Runnable() { public void run() { destroyTexture(tex); } }); }
if (encoding == null) encoding = UTF8; platform.notifySuccess(callback, new BinaryResponse(code, payload, encoding) { @Override protected Map<String,List<String>> extractHeaders() { platform.notifyFailure(callback, e); } catch (IOException e) { platform.notifyFailure(callback, e);
@Override protected void execute(final BuilderImpl req, final Callback<Response> callback) { platform.invokeAsync(new Runnable() { @Override public void run() {
/** Queues a framebuffer to be destroyed on the GL thread. */ public void queueDeleteFramebuffer(final int fbuf) { platform.invokeLater(new Runnable() { public void run() { deleteFramebuffer(fbuf); } }); }
platform.notifySuccess(callback, impl); } catch (Exception e) { platform.notifyFailure(callback, e);
@Override protected void execute(final BuilderImpl req, final Callback<Response> callback) { platform.invokeAsync(new Runnable() { @Override public void run() {