OSDN Git Service

[added] Awesomium extension. Yay...
authorbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Tue, 21 Dec 2010 01:39:57 +0000 (01:39 +0000)
committerbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Tue, 21 Dec 2010 01:39:57 +0000 (01:39 +0000)
23 files changed:
extensions/awesomium/gdx-awesomium-tests/.classpath [new file with mode: 0644]
extensions/awesomium/gdx-awesomium-tests/.project [new file with mode: 0644]
extensions/awesomium/gdx-awesomium-tests/src/com/badlogic/gdx/awesomium/GLTest.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium-tests/src/com/badlogic/gdx/awesomium/SimpleTest.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/.classpath [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/.project [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/libs/jna.jar [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/Awesomium.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/JSArguments.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/JSValue.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/MouseButton.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/Rect.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/RenderBuffer.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/URLFilteringMode.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebCore.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebView.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebViewListener.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebViewListenerC.java [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/Awesomium.dll [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/AwesomiumProcess.exe [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/awesomiumc.dll [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/icudt42.dll [new file with mode: 0644]
extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/locales/en-US.dll [new file with mode: 0644]

diff --git a/extensions/awesomium/gdx-awesomium-tests/.classpath b/extensions/awesomium/gdx-awesomium-tests/.classpath
new file mode 100644 (file)
index 0000000..7e15b56
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="src" path="src"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx-awesomium"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx-backend-jogl"/>\r
+       <classpathentry kind="lib" path="/dependencies/gdx-natives.jar"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/extensions/awesomium/gdx-awesomium-tests/.project b/extensions/awesomium/gdx-awesomium-tests/.project
new file mode 100644 (file)
index 0000000..14db0f6
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>gdx-awesomium-tests</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/extensions/awesomium/gdx-awesomium-tests/src/com/badlogic/gdx/awesomium/GLTest.java b/extensions/awesomium/gdx-awesomium-tests/src/com/badlogic/gdx/awesomium/GLTest.java
new file mode 100644 (file)
index 0000000..3e3143d
--- /dev/null
@@ -0,0 +1,209 @@
+\r
+package com.badlogic.gdx.awesomium;\r
+\r
+import com.badlogic.gdx.ApplicationListener;\r
+import com.badlogic.gdx.Gdx;\r
+import com.badlogic.gdx.Input.Keys;\r
+import com.badlogic.gdx.InputAdapter;\r
+import com.badlogic.gdx.backends.jogl.JoglApplication;\r
+import com.badlogic.gdx.graphics.GL10;\r
+import com.badlogic.gdx.graphics.GLCommon;\r
+import com.badlogic.gdx.graphics.Mesh;\r
+import com.badlogic.gdx.graphics.PerspectiveCamera;\r
+import com.badlogic.gdx.graphics.Pixmap.Format;\r
+import com.badlogic.gdx.graphics.Texture;\r
+import com.badlogic.gdx.graphics.Texture.TextureFilter;\r
+import com.badlogic.gdx.graphics.Texture.TextureWrap;\r
+import com.badlogic.gdx.graphics.VertexAttribute;\r
+import com.badlogic.gdx.graphics.VertexAttributes.Usage;\r
+import com.badlogic.gdx.math.Intersector;\r
+import com.badlogic.gdx.math.Matrix4;\r
+import com.badlogic.gdx.math.Plane;\r
+import com.badlogic.gdx.math.Vector3;\r
+import com.badlogic.gdx.math.collision.Ray;\r
+\r
+public class GLTest implements ApplicationListener {\r
+       PerspectiveCamera cam;\r
+       Texture texture;\r
+       Mesh mesh;\r
+       WebCore webCore;\r
+       WebView webView;\r
+       Vector3 yAxis = new Vector3(0, 1, 0);\r
+       float[] triangles = { -1, -1, 0, 1, -1, 0, 1, 1, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0 };\r
+       Plane plane = new Plane(new Vector3(0,0,1), new Vector3());\r
+       Matrix4 matrix = new Matrix4();\r
+       Matrix4 inv = new Matrix4();\r
+       float angle = 0;\r
+       float angleInc = 1;\r
+\r
+       @Override public void create () {\r
+               cam = new PerspectiveCamera();\r
+               cam.setFov(67);\r
+               cam.setNear(0.1f);\r
+               cam.setFar(100);\r
+               cam.setViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());\r
+               cam.getPosition().z = 2;\r
+\r
+               mesh = new Mesh(true, 4, 6, new VertexAttribute(Usage.Position, 2, "a_pos"), new VertexAttribute(Usage.TextureCoordinates,\r
+                       2, "a_texCoords"));\r
+\r
+               mesh.setVertices(new float[] {-1, -1, 0, 1, 1, -1, 1, 1, 1, 1, 1, 0, -1, 1, 0, 0});\r
+\r
+               mesh.setIndices(new short[] {0, 1, 2, 2, 3, 0});\r
+               texture = Gdx.graphics.newUnmanagedTexture(512, 512, Format.RGBA8888, TextureFilter.Linear, TextureFilter.Linear,\r
+                       TextureWrap.ClampToEdge, TextureWrap.ClampToEdge);\r
+\r
+               webCore = new WebCore(".");\r
+               webView = webCore.createWebView(512, 512);\r
+               webView.focus();\r
+               webView.loadURL("http://www.google.at", "", "", "");\r
+\r
+               Gdx.input.setInputProcessor(new InputAdapter() {\r
+                       Vector3 point = new Vector3();\r
+                       Vector3 tmp = new Vector3();\r
+\r
+                       public void calculatePoint (int x, int y) {\r
+                               Ray ray = cam.getPickRay(x, y);\r
+                               ray.mul(inv);\r
+                               if(!Intersector.intersectRayTriangles(ray, triangles, tmp))\r
+                                       return;\r
+                               point.set(tmp);\r
+                               point.x = (point.x + 1) / 2 * 512;\r
+                               point.y = 512 - (point.y + 1) / 2 * 512;\r
+                               if(point.x < 0) point.x = 0;\r
+                               if(point.x > 511) point.x = 511;\r
+                               if(point.y < 0) point.y = 0;\r
+                               if(point.y > 511) point.y = 511;                                \r
+                       }\r
+\r
+                       @Override public boolean touchDown (int x, int y, int pointer) {\r
+                               calculatePoint(x, y);\r
+                               webView.injectMouseMove((int)point.x, (int)point.y);\r
+                               webView.injectMouseDown(MouseButton.Left);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override public boolean touchUp (int x, int y, int pointer) {\r
+                               calculatePoint(x, y);\r
+                               webView.injectMouseMove((int)point.x, (int)point.y);\r
+                               webView.injectMouseUp(MouseButton.Left);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override public boolean touchDragged (int x, int y, int pointer) {\r
+                               calculatePoint(x, y);\r
+                               webView.injectMouseMove((int)point.x, (int)point.y);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override public boolean keyTyped (char key) {\r
+                               webView.injectKeyTyped(key);\r
+                               return false;\r
+                       }\r
+\r
+                       public int translateKeycode(int keycode) {\r
+                               int virtualKeycode = 0;\r
+                               if(keycode == Keys.KEYCODE_DPAD_LEFT)\r
+                                       virtualKeycode = Awesomium.AWE_AK_LEFT;\r
+                               if(keycode == Keys.KEYCODE_DPAD_RIGHT)\r
+                                       virtualKeycode = Awesomium.AWE_AK_RIGHT;\r
+                               if(keycode == Keys.KEYCODE_DPAD_UP)\r
+                                       virtualKeycode = Awesomium.AWE_AK_UP;\r
+                               if(keycode == Keys.KEYCODE_DPAD_DOWN)\r
+                                       virtualKeycode = Awesomium.AWE_AK_DOWN;\r
+                               if(keycode == Keys.KEYCODE_ENTER)\r
+                                       virtualKeycode = Awesomium.AWE_AK_RETURN;\r
+                               if(keycode == Keys.KEYCODE_DEL)                                 \r
+                                       virtualKeycode = Awesomium.AWE_AK_BACK;\r
+                               if(keycode == Keys.KEYCODE_SHIFT_LEFT || keycode == Keys.KEYCODE_SHIFT_RIGHT)\r
+                                       virtualKeycode = Awesomium.AWE_AK_SHIFT;                                \r
+                               return virtualKeycode;\r
+                       }\r
+                       \r
+                       private int getModifiers() {\r
+                               int modifiers = 0;\r
+                               if(Gdx.input.isKeyPressed(Keys.KEYCODE_SHIFT_LEFT) ||\r
+                                       Gdx.input.isKeyPressed(Keys.KEYCODE_SHIFT_RIGHT))\r
+                                       modifiers |= Awesomium.AWE_MOD_SHIFT_KEY;\r
+                               return modifiers;\r
+                       }\r
+                       \r
+                       @Override\r
+                       public boolean keyDown(int keycode) {\r
+                               int vkey = translateKeycode(keycode);\r
+                               int modifiers = getModifiers();\r
+                               if(vkey != 0) {                                 \r
+                                       webView.injectKeyDown(vkey, modifiers, false);\r
+                               }\r
+                               return false;\r
+                       }\r
+                       \r
+                       @Override\r
+                       public boolean keyUp(int keycode) {\r
+                               int vkey = translateKeycode(keycode);\r
+                               int modifiers = getModifiers();\r
+                               if(vkey != 0)\r
+                                       webView.injectKeyUp(vkey, modifiers, false);\r
+                               return false;\r
+                       }\r
+               });\r
+       }\r
+\r
+       @Override public void resume () {\r
+\r
+       }\r
+\r
+       private void update () {\r
+               webCore.update();\r
+               if (webView.isDirty()) {\r
+                       RenderBuffer renderBuffer = webView.render();\r
+                       if (renderBuffer != null) {\r
+                               texture.bind();\r
+                               Gdx.gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, 512, 512, 0, 0x80E1, GL10.GL_UNSIGNED_BYTE,\r
+                                       renderBuffer.getBuffer());\r
+                       }\r
+               }\r
+\r
+               angle += Gdx.graphics.getDeltaTime() * 20 * angleInc;\r
+               if(angle > 20) {\r
+                       angle = 20;\r
+                       angleInc = -1;\r
+               }\r
+               if(angle < -20) {\r
+                       angle = -20;\r
+                       angleInc = 1;\r
+               }\r
+               matrix.setToRotation(yAxis, angle);\r
+               inv.set(matrix).inv();\r
+       }\r
+\r
+       @Override public void render () {\r
+               update();\r
+\r
+               GLCommon gl = Gdx.gl;\r
+               gl.glClearColor(0.6f, 0.6f, 0.6f, 1);\r
+               gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
+               gl.glEnable(GL10.GL_TEXTURE_2D);\r
+               texture.bind();\r
+               cam.setMatrices();\r
+               Gdx.gl10.glLoadMatrixf(matrix.getValues(), 0);\r
+               mesh.render(GL10.GL_TRIANGLES);\r
+       }\r
+\r
+       @Override public void resize (int width, int height) {\r
+\r
+       }\r
+\r
+       @Override public void pause () {\r
+\r
+       }\r
+\r
+       @Override public void dispose () {\r
+               webView.destroy();\r
+               webCore.dispose();\r
+       }\r
+\r
+       public static void main (String[] argv) {\r
+               new JoglApplication(new GLTest(), "Awesomium GL Test", 480, 320, false);\r
+       }\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium-tests/src/com/badlogic/gdx/awesomium/SimpleTest.java b/extensions/awesomium/gdx-awesomium-tests/src/com/badlogic/gdx/awesomium/SimpleTest.java
new file mode 100644 (file)
index 0000000..2a14ba8
--- /dev/null
@@ -0,0 +1,22 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public class SimpleTest {\r
+       public static void main(String[] argv) {\r
+               WebCore webCore = new WebCore();\r
+               WebView webView = webCore.createWebView(512, 512);\r
+               \r
+               webView.loadURL("http://www.google.at", "", "", "");\r
+               \r
+               while(webView.isLoadingPage()) {\r
+                       webCore.update();\r
+               }\r
+               \r
+               RenderBuffer renderBuffer = webView.render();\r
+               if(renderBuffer != null) {\r
+                       renderBuffer.saveToPNG("result.png", true);\r
+               }\r
+               \r
+               webView.destroy();\r
+               webCore.dispose();\r
+       }\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/.classpath b/extensions/awesomium/gdx-awesomium/.classpath
new file mode 100644 (file)
index 0000000..7ab544c
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="src" path="src"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
+       <classpathentry exported="true" kind="lib" path="libs/jna.jar"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/extensions/awesomium/gdx-awesomium/.project b/extensions/awesomium/gdx-awesomium/.project
new file mode 100644 (file)
index 0000000..972d893
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>gdx-awesomium</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/extensions/awesomium/gdx-awesomium/libs/jna.jar b/extensions/awesomium/gdx-awesomium/libs/jna.jar
new file mode 100644 (file)
index 0000000..55ca1eb
Binary files /dev/null and b/extensions/awesomium/gdx-awesomium/libs/jna.jar differ
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/Awesomium.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/Awesomium.java
new file mode 100644 (file)
index 0000000..e11ca04
--- /dev/null
@@ -0,0 +1,412 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+import java.io.BufferedOutputStream;\r
+import java.io.File;\r
+import java.io.FileNotFoundException;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+import java.nio.ByteBuffer;\r
+import java.nio.CharBuffer;\r
+\r
+import com.sun.jna.Library;\r
+import com.sun.jna.Native;\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.WString;\r
+import com.sun.jna.ptr.PointerByReference;\r
+\r
+public interface Awesomium extends Library {\r
+       Awesomium INSTANCE = AwesomiumFactory.createInstance();\r
+       \r
+       public static final int AWE_AK_ADD = 107;\r
+       public static final int AWE_CURSOR_NORTH_WEST_RESIZE = 9;\r
+       public static final int AWE_AK_MEDIA_STOP = 178;\r
+       public static final int AWE_AK_NUMLOCK = 144;\r
+       public static final int AWE_AK_OEM_1 = 186;\r
+       public static final int AWE_AK_PACKET = 231;\r
+       public static final int AWE_AK_OEM_102 = 226;\r
+       public static final int AWE_AK_OEM_2 = 191;\r
+       public static final int AWE_AK_OEM_3 = 192;\r
+       public static final int AWE_AK_MEDIA_LAUNCH_APP1 = 182;\r
+       public static final int AWE_AK_OEM_4 = 219;\r
+       public static final int AWE_AK_MEDIA_LAUNCH_APP2 = 183;\r
+       public static final int AWE_AK_OEM_PLUS = 187;\r
+       public static final int AWE_CURSOR_HAND = 2;\r
+       public static final int AWE_AK_ZOOM = 251;\r
+       public static final int AWE_AK_OEM_5 = 220;\r
+       public static final int AWE_AK_APPS = 93;\r
+       public static final int AWE_AK_OEM_6 = 221;\r
+       public static final int AWE_AK_MENU = 18;\r
+       public static final int AWE_AK_OEM_7 = 222;\r
+       public static final int AWE_AK_OEM_8 = 223;\r
+       public static final int AWE_UFM_NONE = 0;\r
+       public static final int AWE_CURSOR_NORTH_WEST_SOUTH_EAST_RESIZE = 17;\r
+       public static final int AWE_MOD_SHIFT_KEY = (1 << 0);\r
+       public static final int AWE_AK_INSERT = 45;\r
+       public static final int AWE_AK_MULTIPLY = 106;\r
+       public static final int AWE_CURSOR_VERTICAL_TEXT = 30;\r
+       public static final int AWE_AK_RCONTROL = 163;\r
+       public static final int AWE_CURSOR_EAST_WEST_RESIZE = 15;\r
+       public static final int AWE_AK_OEM_CLEAR = 254;\r
+       public static final int AWE_AK_SPACE = 32;\r
+       public static final int AWE_AK_KANA = 21;\r
+       public static final int AWE_CURSOR_NONE = 37;\r
+       public static final int AWE_CURSOR_POINTER = 0;\r
+       public static final int AWE_AK_CONVERT = 28;\r
+       public static final int AWE_AK_KANJI = 25;\r
+       public static final int AWE_CURSOR_NORTH_EAST_PANNING = 23;\r
+       public static final int AWE_CURSOR_HELP = 5;\r
+       public static final int AWE_AK_CONTROL = 17;\r
+       public static final int AWE_AK_HANJA = 25;\r
+       public static final int AWE_CURSOR_MIDDLE_PANNING = 20;\r
+       public static final int AWE_CURSOR_COLUMN_RESIZE = 18;\r
+       public static final int AWE_CURSOR_COPY = 36;\r
+       public static final int AWE_AK_MEDIA_PREV_TRACK = 177;\r
+       public static final int AWE_CURSOR_CONTEXT_MENU = 32;\r
+       public static final int AWE_AK_MEDIA_LAUNCH_MAIL = 180;\r
+       public static final int AWE_AK_BROWSER_BACK = 166;\r
+       public static final int AWE_CURSOR_ROW_RESIZE = 19;\r
+       public static final int AWE_CURSOR_NORTH_RESIZE = 7;\r
+       public static final int AWE_CURSOR_CUSTOM = 41;\r
+       public static final int AWE_AK_SEPARATOR = 108;\r
+       public static final int AWE_CURSOR_ZOOM_OUT = 40;\r
+       public static final int AWE_AK_OEM_PERIOD = 190;\r
+       public static final int AWE_AK_SNAPSHOT = 44;\r
+       public static final int AWE_CURSOR_SOUTH_EAST_RESIZE = 11;\r
+       public static final int AWE_AK_SHIFT = 16;\r
+       public static final int AWE_AK_OEM_COMMA = 188;\r
+       public static final int AWE_AK_PAUSE = 19;\r
+       public static final int AWE_AK_UNKNOWN = 0;\r
+       public static final int AWE_CURSOR_ZOOM_IN = 39;\r
+       public static final int AWE_RIGHT_BUTTON = 2;\r
+       public static final int AWE_AK_ESCAPE = 27;\r
+       public static final int AWE_TYPE_KEY_UP = 2;\r
+       public static final int AWE_AK_SELECT = 41;\r
+       public static final int AWE_AK_OEM_MINUS = 189;\r
+       public static final int AWE_CURSOR_SOUTH_WEST_RESIZE = 12;\r
+       public static final int AWE_MOD_META_KEY = (1 << 3);\r
+       public static final int AWE_AK_RETURN = 13;\r
+       public static final int AWE_UFM_WHITELIST = 2;\r
+       public static final int AWE_AK_RIGHT = 39;\r
+       public static final int AWE_AK_DIVIDE = 111;\r
+       public static final int AWE_CURSOR_MOVE = 29;\r
+       public static final int AWE_AK_HOME = 36;\r
+       public static final int AWE_AK_EXECUTE = 43;\r
+       public static final int AWE_CURSOR_IBEAM = 3;\r
+       public static final int AWE_CURSOR_SOUTH_PANNIN = 25;\r
+       public static final int AWE_CURSOR_WAIT = 4;\r
+       public static final int AWE_CURSOR_PROGRESS = 34;\r
+       public static final int AWE_AK_MODECHANGE = 31;\r
+       public static final int AWE_AK_MEDIA_NEXT_TRACK = 176;\r
+       public static final int AWE_MOD_CONTROL_KEY = (1 << 1);\r
+       public static final int AWE_CURSOR_WEST_RESIZE = 13;\r
+       public static final int AWE_MIDDLE_BUTTON = 3;\r
+       public static final int AWE_CURSOR_NO_DROP = 35;\r
+       public static final int AWE_AK_PLAY = 250;\r
+       public static final int AWE_AK_BROWSER_HOME = 172;\r
+       public static final int AWE_AK_NONAME = 252;\r
+       public static final int AWE_AK_UP = 38;\r
+       public static final int AWE_AK_LWIN = 91;\r
+       public static final int AWE_AK_CLEAR = 12;\r
+       public static final int AWE_AK_LEFT = 37;\r
+       public static final int AWE_AK_RWIN = 92;\r
+       public static final int AWE_AK_CRSEL = 247;\r
+       public static final int AWE_AK_DELETE = 46;\r
+       public static final int AWE_AK_MEDIA_PLAY_PAUSE = 179;\r
+       public static final int AWE_AK_TAB = 9;\r
+       public static final int AWE_MOD_IS_AUTOREPEAT = (1 << 5);\r
+       public static final int AWE_AK_VOLUME_DOWN = 174;\r
+       public static final int AWE_AK_BROWSER_REFRESH = 168;\r
+       public static final int AWE_CURSOR_CROSS = 1;\r
+       public static final int AWE_AK_LCONTROL = 162;\r
+       public static final int AWE_TYPE_CHAR = 3;\r
+       public static final int AWE_AK_DECIMAL = 110;\r
+       public static final int AWE_AK_CAPITAL = 20;\r
+       public static final int AWE_CURSOR_EAST_PANNING = 21;\r
+       public static final int AWE_AK_BROWSER_SEARCH = 170;\r
+       public static final int AWE_CURSOR_SOUTH_WEST_PANNING = 27;\r
+       public static final int AWE_CURSOR_ALIAS = 33;\r
+       public static final int AWE_AK_PA1 = 253;\r
+       public static final int AWE_AK_RSHIFT = 161;\r
+       public static final int AWE_MOD_ALT_KEY = (1 << 2);\r
+       public static final int AWE_MOD_IS_KEYPAD = (1 << 4);\r
+       public static final int AWE_AK_HANGUL = 21;\r
+       public static final int AWE_AK_BROWSER_FAVORITES = 171;\r
+       public static final int AWE_AK_SUBTRACT = 109;\r
+       public static final int AWE_AK_LMENU = 164;\r
+       public static final int AWE_AK_LSHIFT = 160;\r
+       public static final int AWE_CURSOR_SOUTH_RESIZE = 10;\r
+       public static final int AWE_CURSOR_CELL = 31;\r
+       public static final int AWE_AK_L = 76;\r
+       public static final int AWE_AK_K = 75;\r
+       public static final int AWE_AK_J = 74;\r
+       public static final int AWE_AK_I = 73;\r
+       public static final int AWE_AK_H = 72;\r
+       public static final int AWE_AK_G = 71;\r
+       public static final int AWE_AK_F = 70;\r
+       public static final int AWE_AK_E = 69;\r
+       public static final int AWE_AK_T = 84;\r
+       public static final int AWE_AK_RMENU = 165;\r
+       public static final int AWE_AK_S = 83;\r
+       public static final int AWE_AK_R = 82;\r
+       public static final int AWE_AK_Q = 81;\r
+       public static final int AWE_AK_P = 80;\r
+       public static final int AWE_AK_O = 79;\r
+       public static final int AWE_AK_N = 78;\r
+       public static final int AWE_CURSOR_NORTH_SOUTH_RESIZE = 14;\r
+       public static final int AWE_AK_M = 77;\r
+       public static final int AWE_CURSOR_NORTH_WEST_PANNING = 24;\r
+       public static final int AWE_AK_VOLUME_MUTE = 173;\r
+       public static final int AWE_AK_Y = 89;\r
+       public static final int AWE_AK_Z = 90;\r
+       public static final int AWE_CURSOR_EAST_RESIZE = 6;\r
+       public static final int AWE_AK_W = 87;\r
+       public static final int AWE_AK_X = 88;\r
+       public static final int AWE_AK_U = 85;\r
+       public static final int AWE_AK_V = 86;\r
+       public static final int AWE_CURSOR_SOUTH_EAST_PANNING = 26;\r
+       public static final int AWE_AK_END = 35;\r
+       public static final int AWE_AK_2 = 50;\r
+       public static final int AWE_AK_1 = 49;\r
+       public static final int AWE_AK_JUNJA = 23;\r
+       public static final int AWE_AK_BACK = 8;\r
+       public static final int AWE_AK_4 = 52;\r
+       public static final int AWE_AK_EREOF = 249;\r
+       public static final int AWE_AK_3 = 51;\r
+       public static final int AWE_AK_0 = 48;\r
+       public static final int AWE_AK_9 = 57;\r
+       public static final int AWE_AK_ATTN = 246;\r
+       public static final int AWE_CURSOR_NORTH_EAST_SOUTH_WEST_RESIZE = 16;\r
+       public static final int AWE_AK_PRIOR = 33;\r
+       public static final int AWE_AK_5 = 53;\r
+       public static final int AWE_AK_6 = 54;\r
+       public static final int AWE_AK_DOWN = 40;\r
+       public static final int AWE_AK_7 = 55;\r
+       public static final int AWE_AK_8 = 56;\r
+       public static final int AWE_TYPE_KEY_DOWN = 1;\r
+       public static final int AWE_AK_A = 65;\r
+       public static final int AWE_AK_B = 66;\r
+       public static final int AWE_AK_C = 67;\r
+       public static final int AWE_AK_SCROLL = 145;\r
+       public static final int AWE_AK_D = 68;\r
+       public static final int AWE_CURSOR_NOT_ALLOWED = 38;\r
+       public static final int AWE_UFM_BLACKLIST = 1;\r
+       public static final int AWE_AK_NEXT = 34;\r
+       public static final int AWE_AK_F21 = 132;\r
+       public static final int AWE_AK_BROWSER_FORWARD = 167;\r
+       public static final int AWE_AK_F22 = 133;\r
+       public static final int AWE_AK_F23 = 134;\r
+       public static final int AWE_AK_F24 = 135;\r
+       public static final int AWE_AK_BROWSER_STOP = 169;\r
+       public static final int AWE_AK_NUMPAD2 = 98;\r
+       public static final int AWE_AK_PRINT = 42;\r
+       public static final int AWE_AK_NUMPAD3 = 99;\r
+       public static final int AWE_AK_NUMPAD4 = 100;\r
+       public static final int AWE_AK_NUMPAD5 = 101;\r
+       public static final int AWE_AK_FINAL = 24;\r
+       public static final int AWE_AK_NUMPAD6 = 102;\r
+       public static final int AWE_AK_PROCESSKEY = 229;\r
+       public static final int AWE_CURSOR_NORTH_PANNING = 22;\r
+       public static final int AWE_LEFT_BUTTON = 1;\r
+       public static final int AWE_AK_NUMPAD7 = 103;\r
+       public static final int AWE_AK_NUMPAD8 = 104;\r
+       public static final int AWE_AK_NUMPAD9 = 105;\r
+       public static final int AWE_AK_NUMPAD1 = 97;\r
+       public static final int AWE_AK_VOLUME_UP = 175;\r
+       public static final int AWE_AK_NUMPAD0 = 96;\r
+       public static final int AWE_AK_F20 = 131;\r
+       public static final int AWE_AK_NONCONVERT = 29;\r
+       public static final int AWE_AK_ACCEPT = 30;\r
+       public static final int AWE_CURSOR_WEST_PANNING = 28;\r
+       public static final int AWE_AK_MEDIA_LAUNCH_MEDIA_SELECT = 181;\r
+       public static final int AWE_AK_F2 = 113;\r
+       public static final int AWE_AK_F16 = 127;\r
+       public static final int AWE_AK_F1 = 112;\r
+       public static final int AWE_AK_F17 = 128;\r
+       public static final int AWE_AK_EXSEL = 248;\r
+       public static final int AWE_AK_F4 = 115;\r
+       public static final int AWE_AK_F14 = 125;\r
+       public static final int AWE_AK_F3 = 114;\r
+       public static final int AWE_AK_F15 = 126;\r
+       public static final int AWE_AK_F6 = 117;\r
+       public static final int AWE_AK_F12 = 123;\r
+       public static final int AWE_AK_F5 = 116;\r
+       public static final int AWE_AK_F13 = 124;\r
+       public static final int AWE_AK_F8 = 119;\r
+       public static final int AWE_AK_F10 = 121;\r
+       public static final int AWE_AK_F7 = 118;\r
+       public static final int AWE_AK_F11 = 122;\r
+       public static final int AWE_CURSOR_NORTH_EAST_RESIZE = 8;\r
+       public static final int AWE_AK_F9 = 120;\r
+       public static final int AWE_AK_SLEEP = 95;\r
+       public static final int AWE_AK_F18 = 129;\r
+       public static final int AWE_AK_HELP = 47;\r
+       public static final int AWE_AK_F19 = 130;\r
+       Pointer awe_WebCore_new();      \r
+       Pointer awe_WebCore_newWithPlugins(WString pluginPath);\r
+       void awe_WebCore_delete(Pointer webCore);\r
+       void awe_WebCore_setBaseDirectory(Pointer webCore, String baseDirectory);\r
+       void awe_WebCore_setBaseDirectoryW(Pointer webCore, WString baseDirectory);\r
+       Pointer awe_WebCore_createWebView(Pointer webCore, int width, int height);\r
+       void awe_WebCore_setCustomResponsePage(Pointer webCore, int statusCode, WString filePath);\r
+       void awe_WebCore_update(Pointer webCore);\r
+       WString awe_WebCore_getBaseDirectory(Pointer webCore);\r
+       int awe_WebCore_arePluginsEnabled(Pointer webCore);\r
+       void awe_WebCore_clearCache(Pointer webCore);\r
+       void awe_WebCore_clearCookies(Pointer webCore); \r
+       int awe_WebCore_setCookie(Pointer webCore, String url, String cookieString, int isHTTPOnly, int forceSessionCookie);    \r
+       Pointer awe_WebCore_getCookies(Pointer webCore, String url, int excludeHTTPOnly);       \r
+       void awe_WebCore_deleteCookie(Pointer webCore, String url, String cookieName);\r
+       void awe_WebView_destroy(Pointer webView);\r
+       void awe_WebView_setListener(Pointer webView, WebViewListenerC webViewListener);\r
+       // FIXME WebViewListenerC awe_WebView_getListener(Pointer webView);\r
+       // FIXME PointerByReference awe_WebView_getResourceInterceptor(Pointer webView);        \r
+       void awe_WebView_loadURL(Pointer webView, String url, WString frameName, String username, String password);     \r
+       void awe_WebView_loadURLW(Pointer webView, WString url, WString frameName, String username, String password);   \r
+       void awe_WebView_loadHTML(Pointer webView, String html, WString frameName);     \r
+       void awe_WebView_loadHTMLW(Pointer webView, WString html, WString frameName);   \r
+       void awe_WebView_loadFile(Pointer webView, String file, WString frameName);\r
+       void awe_WebView_goToHistoryOffset(Pointer webView, int offset);\r
+       void awe_WebView_stop(Pointer webView);\r
+       void awe_WebView_reload(Pointer webView);       \r
+       void awe_WebView_executeJavascript(Pointer webView, String javascript, WString frameName);      \r
+       void awe_WebView_executeJavascriptW(Pointer webView, WString javascript, WString frameName);    \r
+       Pointer awe_WebView_executeJavascriptWithResult(Pointer webView, String javascript, WString frameName); \r
+       Pointer awe_WebView_executeJavascriptWithResultTimeout(Pointer webView, String javascript, WString frameName, int timeoutMS);\r
+       Pointer awe_WebView_executeJavascriptWithResultW(Pointer webView, WString javascript, WString frameName);\r
+       Pointer awe_WebView_executeJavascriptWithResultTimeoutW(Pointer webView, WString javascript, WString frameName, int timeoutMS);\r
+       void awe_WebView_callJavascriptFunction(Pointer webView, WString object, WString function, Pointer args, WString frameName);\r
+       void awe_WebView_createObject(Pointer webView, WString objectName);\r
+       void awe_WebView_destroyObject(Pointer webView, WString objectName);\r
+       void awe_WebView_setObjectProperty(Pointer webView, WString objectName, WString propName, Pointer value);\r
+       void awe_WebView_setObjectCallback(Pointer webView, WString objectName, WString callbackName);\r
+       int awe_WebView_isLoadingPage(Pointer webView);\r
+       int awe_WebView_isDirty(Pointer webView);\r
+       // FIXME void awe_WebView_getDirtyBounds(Pointer webView, RectC rect);\r
+       Pointer awe_WebView_render(Pointer webView);\r
+       void awe_WebView_pauseRendering(Pointer webView);\r
+       void awe_WebView_resumeRendering(Pointer webView);\r
+       void awe_WebView_injectMouseMove(Pointer webView, int x, int y);\r
+       void awe_WebView_injectMouseDown(Pointer webView, int mouseButton);\r
+       void awe_WebView_injectMouseUp(Pointer webView, int mouseButton);\r
+       void awe_WebView_injectMouseWheel(Pointer webView, int scrollAmount);\r
+       // FIXME void awe_WebView_injectKeyboardEvent(Pointer webView, WebKeyboardEventC keyboardEvent);\r
+       void awe_WebView_injectKeyboardEventArgs(Pointer webView, int type, int modifiers, int virtualKeyCode, int nativeKeyCode, ByteBuffer keyIdentifier, CharBuffer text, CharBuffer unmodifiedText, int isSystemKey);\r
+       void awe_WebView_injectKeyboardEventCharacter(Pointer webView, int character);\r
+       void awe_WebView_cut(Pointer webView);\r
+       void awe_WebView_copy(Pointer webView);\r
+       void awe_WebView_paste(Pointer webView);\r
+       void awe_WebView_selectAll(Pointer webView);\r
+       void awe_WebView_setZoom(Pointer webView, int zoomPercent);\r
+       void awe_WebView_resetZoom(Pointer webView);\r
+       int awe_WebView_resize(Pointer webView, int width, int height, int waitForRepaint, int repaintTimeoutMS);\r
+       int awe_WebView_isResizing(Pointer webView);\r
+       void awe_WebView_unfocus(Pointer webView);\r
+       void awe_WebView_focus(Pointer webView);\r
+       void awe_WebView_setTransparent(Pointer webView, int isTransparent);\r
+       void awe_WebView_setURLFilteringMode(Pointer webView, int mode);\r
+       void awe_WebView_addURLFilter(Pointer webView, WString filter);\r
+       void awe_WebView_clearAllURLFilters(Pointer webView);\r
+       void awe_getKeyIdentifierFromVirtualKeyCode(int keyCode, PointerByReference identifier);\r
+       Pointer awe_RenderBuffer_new(int width, int height);    \r
+       Pointer awe_RenderBuffer_newFromBuffer(ByteBuffer buffer, int width, int height, int rowSpan, int autoDeleteBuffer);\r
+       void awe_RenderBuffer_delete(Pointer renderBuffer);\r
+       void awe_RenderBuffer_copyTo(Pointer renderBuffer, ByteBuffer destBuffer, int destRowSpan, int destDepth, int convertToRGBA);\r
+       void awe_RenderBuffer_saveToPNG(Pointer renderBuffer, WString filePath, int preserveTransparency);\r
+       void awe_RenderBuffer_saveToJPEG(Pointer renderBuffer, WString filePath, int quality);\r
+       void awe_RenderBuffer_reserve(Pointer renderBuffer, int width, int height);\r
+       void awe_RenderBuffer_copyFrom(Pointer renderBuffer, ByteBuffer srcBuffer, int srcRowSpan);\r
+       void awe_RenderBuffer_copyArea(Pointer renderBuffer, ByteBuffer srcBuffer, int srcRowSpan, int srcX, int srcY, int srcWidth, int srcHeight, int forceOpaque);\r
+       void awe_RenderBuffer_copyArea2(Pointer renderBuffer, ByteBuffer srcBuffer, int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight);\r
+       void awe_RenderBuffer_scrollArea(Pointer renderBuffer, int dx, int dy, int clipX, int clipY, int clipWidth, int clipHeight);\r
+       Pointer awe_RenderBuffer_buffer(Pointer renderBuffer);\r
+       int awe_RenderBuffer_width(Pointer renderBuffer);\r
+       int awe_RenderBuffer_height(Pointer renderBuffer);\r
+       int awe_RenderBuffer_rowSpan(Pointer renderBuffer);\r
+       int awe_RenderBuffer_ownsBuffer(Pointer renderBuffer);\r
+       Pointer awe_JSValue_newNull();\r
+       Pointer awe_JSValue_newBool(int value);\r
+       Pointer awe_JSValue_newInt(int value);\r
+       Pointer awe_JSValue_newDouble(double value);\r
+       Pointer awe_JSValue_newString(String value);\r
+       Pointer awe_JSValue_newWString(WString value);\r
+       Pointer awe_JSValue_newObject(Pointer value);\r
+       Pointer awe_JSValue_newArray(Pointer value);\r
+       void awe_JSValue_delete(Pointer val);\r
+       int awe_JSValue_isBoolean(Pointer val);\r
+       int awe_JSValue_isInteger(Pointer val);\r
+       int awe_JSValue_isDouble(Pointer val);\r
+       int awe_JSValue_isNumber(Pointer val);\r
+       int awe_JSValue_isString(Pointer val);\r
+       int awe_JSValue_isArray(Pointer val);\r
+       int awe_JSValue_isObject(Pointer val);\r
+       int awe_JSValue_isNull(Pointer val);\r
+       // FIXME CharByReference awe_JSValue_toString(Pointer val);\r
+       int awe_JSValue_toInteger(Pointer val);\r
+       double awe_JSValue_toDouble(Pointer val);\r
+       int awe_JSValue_toBoolean(Pointer val);\r
+       Pointer awe_JSValue_getArray(Pointer val);\r
+       Pointer awe_JSValue_getObject(Pointer val);\r
+       Pointer awe_Object_new();\r
+       void awe_Object_delete(Pointer obj);\r
+       void awe_Object_put(Pointer obj, CharBuffer key, Pointer val);\r
+       Pointer awe_Object_get(Pointer obj, CharBuffer key);\r
+       int awe_Object_contains(Pointer obj, CharBuffer key);\r
+       Pointer awe_Array_new();\r
+       void awe_Array_delete(Pointer arr);\r
+       int awe_Array_size(Pointer arr);\r
+       Pointer awe_Array_get(Pointer arr, int index);\r
+       void awe_Array_add(Pointer arr, Pointer val);\r
+       Pointer awe_JSArguments_new();\r
+       void awe_JSArguments_delete(Pointer args);\r
+       int awe_JSArguments_size(Pointer args);\r
+       Pointer awe_JSArguments_get(Pointer args, int index);\r
+       void awe_JSArguments_add(Pointer args, Pointer val);\r
+       \r
+       public class AwesomiumFactory {\r
+               static Awesomium createInstance() {\r
+                       try {\r
+                               unpackNatives();\r
+                       } catch(FileNotFoundException e) {\r
+                               System.out.println( "Couldn't write natives:" + e.getMessage());\r
+                       }\r
+                       \r
+                       return (Awesomium)Native.loadLibrary("awesomiumc", Awesomium.class);\r
+               }\r
+               \r
+               private static void unpackNatives() throws FileNotFoundException {\r
+                       unpackFile("Awesomium.dll", ".");\r
+                       unpackFile("awesomiumc.dll", ".");\r
+                       unpackFile("AwesomiumProcess.exe", ".");\r
+                       unpackFile("icudt42.dll", ".");\r
+                       if(new File("locales").exists() || new File("locales").mkdirs()) {\r
+                               unpackFile("locales/en-US.dll", ".");\r
+                       } else {\r
+                               System.out.println("couldn't create 'locales' folder");\r
+                       }\r
+               }\r
+               \r
+               private static void unpackFile(String source, String dst) throws FileNotFoundException {\r
+                       InputStream in = null;\r
+                       OutputStream out = null;\r
+                       \r
+                       try {\r
+                               in = Awesomium.class.getResourceAsStream("/com/badlogic/gdx/awesomium/natives/" + source);\r
+                               out = new BufferedOutputStream(new FileOutputStream(dst + "/" + source));\r
+                               \r
+                               byte[] bytes = new byte[1024 * 4];\r
+                               while (true) {\r
+                                       int read_bytes = in.read(bytes);\r
+                                       if (read_bytes == -1) break;\r
+                                       out.write(bytes, 0, read_bytes);\r
+                               }                                               \r
+                       } catch(IOException e) {\r
+                               System.out.println( "Couldn't unpack native: " + source + ", " + e.getMessage());\r
+                       } finally {\r
+                               if(out != null) try { out.close(); } catch (IOException e) {}\r
+                               if(in != null) try { in.close(); } catch (IOException e) {}                     \r
+                       }\r
+               }               \r
+       }       \r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/JSArguments.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/JSArguments.java
new file mode 100644 (file)
index 0000000..088e3d5
--- /dev/null
@@ -0,0 +1,5 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public class JSArguments {\r
+\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/JSValue.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/JSValue.java
new file mode 100644 (file)
index 0000000..4e1d725
--- /dev/null
@@ -0,0 +1,5 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public class JSValue {\r
+\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/MouseButton.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/MouseButton.java
new file mode 100644 (file)
index 0000000..6c1e2ed
--- /dev/null
@@ -0,0 +1,7 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public enum MouseButton {\r
+       Left,\r
+       Middle,\r
+       Right\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/Rect.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/Rect.java
new file mode 100644 (file)
index 0000000..74b45ff
--- /dev/null
@@ -0,0 +1,5 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public class Rect {\r
+\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/RenderBuffer.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/RenderBuffer.java
new file mode 100644 (file)
index 0000000..ca9c31f
--- /dev/null
@@ -0,0 +1,76 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+import java.nio.ByteBuffer;\r
+\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.WString;\r
+\r
+public class RenderBuffer {\r
+       Pointer renderBuffer;\r
+       \r
+       RenderBuffer(Pointer ptr) {\r
+               this.renderBuffer = ptr;\r
+       }\r
+       \r
+       public RenderBuffer(int width, int height) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_new(width, height);\r
+       }\r
+       \r
+       public void dispose() {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_delete(renderBuffer);\r
+       }\r
+       \r
+       public void copyTo(ByteBuffer destBuffer, int destRowSpan, int destDepth, boolean convertToRGBA) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_copyTo(renderBuffer, destBuffer, destRowSpan, destDepth, convertToRGBA?-1:0);\r
+       }\r
+       \r
+       public void saveToPNG(String filePath, boolean preserveTransparency) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_saveToPNG(renderBuffer, new WString(filePath), preserveTransparency?-1:0);\r
+       }\r
+       \r
+       public void saveToJPEG(String filePath, int quality) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_saveToJPEG(renderBuffer, new WString(filePath), quality);\r
+       }\r
+       \r
+       public void reserve(int width, int height) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_reserve(renderBuffer, width, height);\r
+       }\r
+       \r
+       public void copyFrom(ByteBuffer srcBuffer, int srcRowSpan) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_copyFrom(renderBuffer, srcBuffer, srcRowSpan);\r
+       }\r
+       \r
+       public void copyArea(ByteBuffer srcBuffer, int srcRowSpan, int srcX, int srcY, int srcWidth, int srcHeight, boolean forceOpaque) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_copyArea(renderBuffer, srcBuffer, srcRowSpan, srcX, srcY, srcWidth, srcHeight, forceOpaque?-1:0);\r
+       }\r
+       \r
+       public void copyArea(ByteBuffer srcBuffer, int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_copyArea2(renderBuffer, srcBuffer, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight);\r
+       }\r
+       \r
+       public void scrollArea(int dx, int dy, int clipX, int clipY, int clipWidth, int clipHeight) {\r
+               Awesomium.INSTANCE.awe_RenderBuffer_scrollArea(renderBuffer, dx, dy, clipX, clipY, clipWidth, clipHeight);\r
+       }\r
+       \r
+       public ByteBuffer getBuffer() {         \r
+               int height = Awesomium.INSTANCE.awe_RenderBuffer_height(renderBuffer);\r
+               int rowSpan = Awesomium.INSTANCE.awe_RenderBuffer_rowSpan(renderBuffer);\r
+               return Awesomium.INSTANCE.awe_RenderBuffer_buffer(renderBuffer).getByteBuffer(0, height * rowSpan);\r
+       }\r
+       \r
+       public int getWidth() {\r
+               return Awesomium.INSTANCE.awe_RenderBuffer_width(renderBuffer);\r
+       }\r
+       \r
+       public int getHeight() {\r
+               return Awesomium.INSTANCE.awe_RenderBuffer_height(renderBuffer);\r
+       }\r
+       \r
+       public int getRowSpan() {\r
+               return Awesomium.INSTANCE.awe_RenderBuffer_rowSpan(renderBuffer);\r
+       }\r
+       \r
+       public boolean ownsBuffer() {\r
+               return Awesomium.INSTANCE.awe_RenderBuffer_ownsBuffer(renderBuffer)!=0?true:false;\r
+       }\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/URLFilteringMode.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/URLFilteringMode.java
new file mode 100644 (file)
index 0000000..473919f
--- /dev/null
@@ -0,0 +1,7 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public enum URLFilteringMode {\r
+       None,\r
+       Blacklist,\r
+       Whitelist\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebCore.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebCore.java
new file mode 100644 (file)
index 0000000..8b9ed62
--- /dev/null
@@ -0,0 +1,57 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.WString;\r
+\r
+public class WebCore {\r
+       final Pointer webCore;\r
+       \r
+       public WebCore() {\r
+               webCore = Awesomium.INSTANCE.awe_WebCore_new();\r
+       }\r
+       \r
+       public WebCore(String pluginPath) {\r
+               webCore = Awesomium.INSTANCE.awe_WebCore_newWithPlugins(new WString(pluginPath));\r
+       }       \r
+       \r
+       public void dispose() {\r
+               Awesomium.INSTANCE.awe_WebCore_delete(webCore);\r
+       }\r
+       \r
+       public void setBaseDirectory(String baseDirectory) {\r
+               Awesomium.INSTANCE.awe_WebCore_setBaseDirectory(webCore, baseDirectory);\r
+       }\r
+       \r
+       public WebView createWebView(int width, int height) {\r
+               Pointer ptr = Awesomium.INSTANCE.awe_WebCore_createWebView(webCore, width, height);\r
+               return new WebView(ptr);\r
+       }\r
+       \r
+       public void setCustomResponsePage(int statusCode, String filePath) {\r
+               Awesomium.INSTANCE.awe_WebCore_setCustomResponsePage(webCore, statusCode, new WString(filePath));\r
+       }\r
+       \r
+       public void update() {\r
+               Awesomium.INSTANCE.awe_WebCore_update(webCore);\r
+       }\r
+       \r
+       public String getBaseDirectory() {\r
+               return new String(Awesomium.INSTANCE.awe_WebCore_getBaseDirectory(webCore).toString());\r
+       }\r
+       \r
+       public boolean arePluginsEnabled() {\r
+               return Awesomium.INSTANCE.awe_WebCore_arePluginsEnabled(webCore) != 0;\r
+       }\r
+       \r
+       public void clearCache() {\r
+               Awesomium.INSTANCE.awe_WebCore_clearCache(webCore);\r
+       }\r
+       \r
+       public void clearCookies() {\r
+               Awesomium.INSTANCE.awe_WebCore_clearCookies(webCore);\r
+       }\r
+       \r
+       public void setCookie(String url, String cookieString, boolean isHTTPOnly, boolean forceSessionCookie) {\r
+               Awesomium.INSTANCE.awe_WebCore_setCookie(webCore, url, cookieString, isHTTPOnly?-1:0, forceSessionCookie?-1:0);\r
+       }\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebView.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebView.java
new file mode 100644 (file)
index 0000000..950d259
--- /dev/null
@@ -0,0 +1,236 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+import java.nio.ByteBuffer;\r
+import java.nio.ByteOrder;\r
+import java.nio.CharBuffer;\r
+\r
+import com.badlogic.gdx.awesomium.WebViewListenerC.WebViewListenerCStub;\r
+import com.sun.jna.Memory;\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.WString;\r
+import com.sun.jna.ptr.PointerByReference;\r
+\r
+public class WebView {\r
+       Pointer webView;\r
+       CharBuffer text;\r
+       CharBuffer unmodifiedText;\r
+       PointerByReference identifierPointer;\r
+       Memory identifier;\r
+       ByteBuffer identifierBuffer;\r
+               \r
+       WebView(Pointer ptr) {\r
+               this.webView = ptr;\r
+               ByteBuffer textBuffer = ByteBuffer.allocateDirect(20);\r
+               ByteBuffer unmodifiedTextBuffer = ByteBuffer.allocateDirect(20);\r
+               identifier = new Memory(20);            \r
+               identifierPointer = new PointerByReference(identifier);\r
+               identifierBuffer = identifier.getByteBuffer(0, 20);\r
+               \r
+               textBuffer.order(ByteOrder.nativeOrder());\r
+               unmodifiedTextBuffer.order(ByteOrder.nativeOrder());            \r
+               \r
+               text = textBuffer.asCharBuffer();\r
+               unmodifiedText = unmodifiedTextBuffer.asCharBuffer();\r
+       }\r
+       \r
+       public void destroy() {\r
+               Awesomium.INSTANCE.awe_WebView_destroy(webView);\r
+       }\r
+       \r
+       public void setListener(WebViewListener listener) {\r
+               WebViewListenerC listenerC = new WebViewListenerC(new WebViewListenerCStub(listener));\r
+               Awesomium.INSTANCE.awe_WebView_setListener(webView, listenerC);\r
+       }\r
+       \r
+       public void loadURL(String url, String frameName, String username, String password) {\r
+               Awesomium.INSTANCE.awe_WebView_loadURLW(webView, new WString(url), new WString(frameName), username, password);\r
+       }\r
+       \r
+       public void loadHTML(String html, String frameName) {\r
+               Awesomium.INSTANCE.awe_WebView_loadHTMLW(webView, new WString(html), new WString(frameName));\r
+       }\r
+       \r
+       public void loadFile(String file, String frameName) {\r
+               Awesomium.INSTANCE.awe_WebView_loadFile(webView, file, new WString(frameName));\r
+       }\r
+       \r
+       public void goToHistoryOffset(int offset) {\r
+               Awesomium.INSTANCE.awe_WebView_goToHistoryOffset(webView, offset);\r
+       }\r
+       \r
+       public void stop() {\r
+               Awesomium.INSTANCE.awe_WebView_stop(webView);\r
+       }\r
+       \r
+       public void reload() {\r
+               Awesomium.INSTANCE.awe_WebView_reload(webView);\r
+       }\r
+       \r
+       public void executeJavascript(String javascript, String frameName) {\r
+               Awesomium.INSTANCE.awe_WebView_executeJavascriptW(webView, new WString(javascript), new WString(frameName));\r
+       }\r
+       \r
+       public JSValue executeJavascriptWithResult(String javascript, String frameName) {\r
+               // FIXME\r
+               throw new UnsupportedOperationException("not implemented yet");\r
+       }\r
+       \r
+       public JSValue executeJavascriptWithResult(String javascript, String frameName, int timeoutMS) {\r
+               // FIXME\r
+               throw new UnsupportedOperationException("not implemented yet");         \r
+       }\r
+       \r
+       public void callJavascriptFunction(String object, String function, JSArguments args, String frameName) {\r
+               // FIXME\r
+               throw new UnsupportedOperationException("not implemented yet");         \r
+       }\r
+       \r
+       public void createObject(String objectName) {\r
+               Awesomium.INSTANCE.awe_WebView_createObject(webView, new WString(objectName));\r
+       }\r
+       \r
+       public void destroyObject(String objectName) {\r
+               Awesomium.INSTANCE.awe_WebView_destroyObject(webView, new WString(objectName));\r
+       }\r
+       \r
+       public void setObjectProperty(String objectName, String propName, JSValue value) {\r
+               // FIXME\r
+               throw new UnsupportedOperationException("not implemented yet");         \r
+       }\r
+       \r
+       public void setObjectCallback(String objectName, String callbackName) {\r
+               Awesomium.INSTANCE.awe_WebView_setObjectCallback(webView, new WString(objectName), new WString(callbackName));\r
+       }\r
+       \r
+       public boolean isLoadingPage() {\r
+               return Awesomium.INSTANCE.awe_WebView_isLoadingPage(webView)!=0?true:false;\r
+       }\r
+       \r
+       public boolean isDirty() {\r
+               return Awesomium.INSTANCE.awe_WebView_isDirty(webView)!=0?true:false;\r
+       }\r
+       \r
+       public Rect getDirtyBounds() {\r
+               // FIXME\r
+               throw new UnsupportedOperationException("not implemented yet");         \r
+       }\r
+       \r
+       public RenderBuffer render() {\r
+               Pointer renderBuffer = Awesomium.INSTANCE.awe_WebView_render(webView);\r
+               if(Pointer.nativeValue(renderBuffer) == 0)\r
+                       return null;\r
+               \r
+               return new RenderBuffer(renderBuffer);\r
+       }\r
+       \r
+       public void pauseRendering() {\r
+               Awesomium.INSTANCE.awe_WebView_pauseRendering(webView);\r
+       }\r
+       \r
+       public void resumeRendering() {\r
+               Awesomium.INSTANCE.awe_WebView_resumeRendering(webView);\r
+       }\r
+       \r
+       public void injectMouseMove(int x, int y) {\r
+               Awesomium.INSTANCE.awe_WebView_injectMouseMove(webView, x, y);\r
+       }\r
+       \r
+       public void injectMouseDown(MouseButton button) {\r
+               int buttonValue = Awesomium.AWE_LEFT_BUTTON;\r
+               if(button == MouseButton.Right)\r
+                       buttonValue = Awesomium.AWE_RIGHT_BUTTON;\r
+               if(button == MouseButton.Middle)\r
+                       buttonValue = Awesomium.AWE_MIDDLE_BUTTON;\r
+               \r
+               Awesomium.INSTANCE.awe_WebView_injectMouseDown(webView, buttonValue);\r
+       }\r
+       \r
+       public void injectMouseUp(MouseButton button) {\r
+               int buttonValue = Awesomium.AWE_LEFT_BUTTON;\r
+               if(button == MouseButton.Right)\r
+                       buttonValue = Awesomium.AWE_RIGHT_BUTTON;\r
+               if(button == MouseButton.Middle)\r
+                       buttonValue = Awesomium.AWE_MIDDLE_BUTTON;\r
+               \r
+               Awesomium.INSTANCE.awe_WebView_injectMouseUp(webView, buttonValue);\r
+       }\r
+       \r
+       public void injectMouseWheel(int scrollAmount) {\r
+               Awesomium.INSTANCE.awe_WebView_injectMouseWheel(webView, scrollAmount);\r
+       }\r
+       \r
+       public void injectKeyDown(int virtualKeyCode, int modifiers, boolean isSystemKey) {\r
+               Awesomium.INSTANCE.awe_getKeyIdentifierFromVirtualKeyCode(virtualKeyCode, identifierPointer);\r
+               Awesomium.INSTANCE.awe_WebView_injectKeyboardEventArgs(webView, Awesomium.AWE_TYPE_KEY_DOWN, modifiers, virtualKeyCode, virtualKeyCode, identifierBuffer, text, unmodifiedText, isSystemKey?-1:0);\r
+       }\r
+       \r
+       public void injectKeyUp(int virtualKeyCode, int modifiers, boolean isSystemKey) {\r
+               Awesomium.INSTANCE.awe_getKeyIdentifierFromVirtualKeyCode(virtualKeyCode, identifierPointer);\r
+               Awesomium.INSTANCE.awe_WebView_injectKeyboardEventArgs(webView, Awesomium.AWE_TYPE_KEY_UP, modifiers, virtualKeyCode, virtualKeyCode, identifierBuffer, text, unmodifiedText, isSystemKey?-1:0);\r
+       }\r
+       \r
+       public void injectKeyTyped(char character) {\r
+               Awesomium.INSTANCE.awe_WebView_injectKeyboardEventCharacter(webView, character);\r
+       }\r
+       \r
+       public void cut() {\r
+               Awesomium.INSTANCE.awe_WebView_cut(webView);\r
+       }\r
+       \r
+       public void copy() {\r
+               Awesomium.INSTANCE.awe_WebView_copy(webView);\r
+       }\r
+       \r
+       public void paste() {\r
+               Awesomium.INSTANCE.awe_WebView_paste(webView);\r
+       }\r
+       \r
+       public void selectAll() {\r
+               Awesomium.INSTANCE.awe_WebView_selectAll(webView);\r
+       }\r
+       \r
+       public void setZoom(int zoomPercent) {\r
+               Awesomium.INSTANCE.awe_WebView_setZoom(webView, zoomPercent);\r
+       }\r
+       \r
+       public void resetZoom() {\r
+               Awesomium.INSTANCE.awe_WebView_resetZoom(webView);\r
+       }\r
+       \r
+       public void resize(int width, int height, boolean waitForRepaint, int repaintTimeoutMS) {\r
+               Awesomium.INSTANCE.awe_WebView_resize(webView, width, height, waitForRepaint?-1:0, repaintTimeoutMS);\r
+       }\r
+       \r
+       public boolean isResizing() {\r
+               return Awesomium.INSTANCE.awe_WebView_isResizing(webView)!=0?true:false;\r
+       }\r
+       \r
+       public void unfocus() {\r
+               Awesomium.INSTANCE.awe_WebView_unfocus(webView);\r
+       }\r
+       \r
+       public void focus() {\r
+               Awesomium.INSTANCE.awe_WebView_focus(webView);\r
+       }\r
+       \r
+       public void setTransparent(boolean isTransparent) {\r
+               Awesomium.INSTANCE.awe_WebView_setTransparent(webView, isTransparent?-1:0);\r
+       }\r
+       \r
+       public void setURLFilteringMode(URLFilteringMode mode) {\r
+               int modeValue = 0;\r
+               if(mode == URLFilteringMode.Blacklist)\r
+                       modeValue = 1;\r
+               if(mode == URLFilteringMode.Whitelist)\r
+                       modeValue = 2;\r
+               Awesomium.INSTANCE.awe_WebView_setURLFilteringMode(webView, modeValue);\r
+       }\r
+       \r
+       public void addURLFilter(String filter) {\r
+               Awesomium.INSTANCE.awe_WebView_addURLFilter(webView, new WString(filter));\r
+       }\r
+       \r
+       public void clearAllURLFilters() {\r
+               Awesomium.INSTANCE.awe_WebView_clearAllURLFilters(webView);\r
+       }       \r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebViewListener.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebViewListener.java
new file mode 100644 (file)
index 0000000..8e494f0
--- /dev/null
@@ -0,0 +1,20 @@
+package com.badlogic.gdx.awesomium;\r
+\r
+public interface WebViewListener {\r
+       public void onBeginNavigation(String url, String frameName);\r
+       public void onBeginLoading(String url, String frameName, int statusCode, String mimeType);\r
+       public void onFinishLoading();\r
+       public void onCallback(String objectName, String callbackName, JSArguments args);\r
+       public void onReceiveTitle(String title, String frameName);\r
+       public void onChangeTooltip(String tooltip);\r
+       public void onChangeCursor(int cursor);\r
+       public void onChangeKeyboardFocus(boolean isFocused);\r
+       public void onChangeTargetURL(String url);\r
+       public void onOpenExternalLink(String url, String source);\r
+       public void onRequestDownload(String url);\r
+       public void onWebViewCrashed();\r
+       public void onPluginCrashed(String pluginName);\r
+       public void onRequestMove(int x, int y);\r
+       public void onGetPageContents(String url, String contents);\r
+       public void onDOMReady();\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebViewListenerC.java b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/WebViewListenerC.java
new file mode 100644 (file)
index 0000000..3ac8d5f
--- /dev/null
@@ -0,0 +1,217 @@
+package com.badlogic.gdx.awesomium;\r
+import com.sun.jna.Callback;\r
+import com.sun.jna.Pointer;\r
+import com.sun.jna.Structure;\r
+import com.sun.jna.WString;\r
+/**\r
+ * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>\r
+ * a tool written by <a href="http://ochafik.free.fr/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>\r
+ * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.\r
+ */\r
+public class WebViewListenerC extends Structure {\r
+       public WebViewListenerC.onBeginNavigation_callback onBeginNavigation;\r
+       public WebViewListenerC.onBeginLoading_callback onBeginLoading;\r
+       public WebViewListenerC.onFinishLoading_callback onFinishLoading;\r
+       public WebViewListenerC.onCallback_callback onCallback;\r
+       public WebViewListenerC.onReceiveTitle_callback onReceiveTitle;\r
+       public WebViewListenerC.onChangeTooltip_callback onChangeTooltip;\r
+       public WebViewListenerC.onChangeCursor_callback onChangeCursor;\r
+       public WebViewListenerC.onChangeKeyboardFocus_callback onChangeKeyboardFocus;\r
+       public WebViewListenerC.onChangeTargetURL_callback onChangeTargetURL;\r
+       public WebViewListenerC.onOpenExternalLink_callback onOpenExternalLink;\r
+       public WebViewListenerC.onRequestDownload_callback onRequestDownload;\r
+       public WebViewListenerC.onWebViewCrashed_callback onWebViewCrashed;\r
+       public WebViewListenerC.onPluginCrashed_callback onPluginCrashed;\r
+       public WebViewListenerC.onRequestMove_callback onRequestMove;\r
+       public WebViewListenerC.onGetPageContents_callback onGetPageContents;\r
+       public WebViewListenerC.onDOMReady_callback onDOMReady;\r
+       public interface onBeginNavigation_callback extends Callback {\r
+               void apply(Pointer webView, String url, WString frameName);\r
+       };\r
+       public interface onBeginLoading_callback extends Callback {\r
+               void apply(Pointer webView, String url, WString frameName, int statusCode, WString mimeType);\r
+       };\r
+       public interface onFinishLoading_callback extends Callback {\r
+               void apply(Pointer webView);\r
+       };\r
+       public interface onCallback_callback extends Callback {\r
+               void apply(Pointer webView, WString objectName, WString callbackName, Pointer args);\r
+       };\r
+       public interface onReceiveTitle_callback extends Callback {\r
+               void apply(Pointer webView, WString title, WString frameName);\r
+       };\r
+       public interface onChangeTooltip_callback extends Callback {\r
+               void apply(Pointer webView, WString toolTip);\r
+       };\r
+       public interface onChangeCursor_callback extends Callback {\r
+               void apply(Pointer webView, int cursor);\r
+       };\r
+       public interface onChangeKeyboardFocus_callback extends Callback {\r
+               void apply(Pointer webView, int isFocused);\r
+       };\r
+       public interface onChangeTargetURL_callback extends Callback {\r
+               void apply(Pointer webView, String url);\r
+       };\r
+       public interface onOpenExternalLink_callback extends Callback {\r
+               void apply(Pointer webView, String url, WString source);\r
+       };\r
+       public interface onRequestDownload_callback extends Callback {\r
+               void apply(Pointer webView, String url);\r
+       };\r
+       public interface onWebViewCrashed_callback extends Callback {\r
+               void apply(Pointer webView);\r
+       };\r
+       public interface onPluginCrashed_callback extends Callback {\r
+               void apply(Pointer webView, WString pluginName);\r
+       };\r
+       public interface onRequestMove_callback extends Callback {\r
+               void apply(Pointer webView, int x, int y);\r
+       };\r
+       public interface onGetPageContents_callback extends Callback {\r
+               void apply(Pointer webView, String url, WString contents);\r
+       };\r
+       public interface onDOMReady_callback extends Callback {\r
+               void apply(Pointer webView);\r
+       };\r
+       public WebViewListenerC() {\r
+               super();\r
+               initFieldOrder();\r
+       }\r
+       \r
+       public WebViewListenerC(WebViewListenerCStub stub) {\r
+               super();\r
+               initFieldOrder();\r
+               this.onBeginLoading = stub.onBeginLoading;\r
+               this.onBeginNavigation = stub.onBeginNavigation;\r
+               this.onCallback = stub.onCallback;\r
+               this.onChangeCursor = stub.onChangeCursor;\r
+               this.onChangeKeyboardFocus = stub.onChangeKeyboardFocus;\r
+               this.onChangeTargetURL = stub.onChangeTargetURL;\r
+               this.onChangeTargetURL = stub.onChangeTargetURL;\r
+               this.onChangeTooltip = stub.onChangeTooltip;\r
+               this.onDOMReady = stub.onDOMReady;\r
+               this.onFinishLoading = stub.onFinishLoading;\r
+               this.onGetPageContents = stub.onGetPageContents;\r
+               this.onOpenExternalLink = stub.onOpenExternalLink;\r
+               this.onOpenExternalLink = stub.onOpenExternalLink;\r
+               this.onPluginCrashed = stub.onPluginCrashed;\r
+               this.onReceiveTitle = stub.onReceiveTitle;\r
+               this.onRequestDownload = stub.onRequestDownload;\r
+               this.onRequestMove = stub.onRequestMove;\r
+               this.onWebViewCrashed = stub.onWebViewCrashed;\r
+       }\r
+       \r
+       protected void initFieldOrder() {\r
+               setFieldOrder(new java.lang.String[]{"onBeginNavigation", "onBeginLoading", "onFinishLoading", "onCallback", "onReceiveTitle", "onChangeTooltip", "onChangeCursor", "onChangeKeyboardFocus", "onChangeTargetURL", "onOpenExternalLink", "onRequestDownload", "onWebViewCrashed", "onPluginCrashed", "onRequestMove", "onGetPageContents", "onDOMReady"});\r
+       }\r
+       public static class ByReference extends WebViewListenerC implements Structure.ByReference {\r
+               \r
+       };\r
+       public static class ByValue extends WebViewListenerC implements Structure.ByValue {\r
+               \r
+       };\r
+       \r
+       public static class WebViewListenerCStub {\r
+               WebViewListener listener;\r
+               \r
+               public WebViewListenerCStub (WebViewListener listener) {\r
+                       this.listener = listener;\r
+               }\r
+               public WebViewListenerC.onBeginNavigation_callback onBeginNavigation = new onBeginNavigation_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, String url, WString frameName) {\r
+                               listener.onBeginNavigation(new String(url), frameName.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onBeginLoading_callback onBeginLoading = new onBeginLoading_callback() {                        \r
+                       @Override public void apply (Pointer webView, String url, WString frameName, int statusCode, WString mimeType) {\r
+                               listener.onBeginLoading(new String(url), frameName.toString(), statusCode, mimeType.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onFinishLoading_callback onFinishLoading = new onFinishLoading_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView) {\r
+                               listener.onFinishLoading();\r
+                       }\r
+               };\r
+               public WebViewListenerC.onCallback_callback onCallback = new onCallback_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, WString objectName, WString callbackName, Pointer args) {\r
+                               // FIXME\r
+                               listener.onCallback(objectName.toString(), callbackName.toString(), new JSArguments());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onReceiveTitle_callback onReceiveTitle = new onReceiveTitle_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, WString title, WString frameName) {\r
+                               listener.onReceiveTitle(title.toString(), frameName.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onChangeTooltip_callback onChangeTooltip = new onChangeTooltip_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, WString toolTip) {\r
+                               listener.onChangeTooltip(toolTip.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onChangeCursor_callback onChangeCursor = new onChangeCursor_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, int cursor) {\r
+                               listener.onChangeCursor(cursor);\r
+                       }\r
+               };\r
+               public WebViewListenerC.onChangeKeyboardFocus_callback onChangeKeyboardFocus = new onChangeKeyboardFocus_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, int isFocused) {\r
+                               listener.onChangeKeyboardFocus(isFocused!=0?true:false);\r
+                       }\r
+               };\r
+               public WebViewListenerC.onChangeTargetURL_callback onChangeTargetURL = new onChangeTargetURL_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, String url) {\r
+                               listener.onChangeTargetURL(new String(url));\r
+                       }\r
+               };\r
+               public WebViewListenerC.onOpenExternalLink_callback onOpenExternalLink = new onOpenExternalLink_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, String url, WString source) {\r
+                               listener.onOpenExternalLink(new String(url), source.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onRequestDownload_callback onRequestDownload = new onRequestDownload_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, String url) {\r
+                               listener.onRequestDownload(new String(url));\r
+                       }\r
+               };\r
+               public WebViewListenerC.onWebViewCrashed_callback onWebViewCrashed = new onWebViewCrashed_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView) {\r
+                               listener.onWebViewCrashed();\r
+                       }\r
+               };\r
+               public WebViewListenerC.onPluginCrashed_callback onPluginCrashed = new onPluginCrashed_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, WString pluginName) {\r
+                               listener.onPluginCrashed(pluginName.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onRequestMove_callback onRequestMove = new onRequestMove_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, int x, int y) {\r
+                               listener.onRequestMove(x, y);\r
+                       }\r
+               };\r
+               public WebViewListenerC.onGetPageContents_callback onGetPageContents = new onGetPageContents_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView, String url, WString contents) {\r
+                               listener.onGetPageContents(new String(url), contents.toString());\r
+                       }\r
+               };\r
+               public WebViewListenerC.onDOMReady_callback onDOMReady = new onDOMReady_callback() {\r
+                       \r
+                       @Override public void apply (Pointer webView) {\r
+                               listener.onDOMReady();\r
+                       }\r
+               };\r
+       }\r
+}\r
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/Awesomium.dll b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/Awesomium.dll
new file mode 100644 (file)
index 0000000..fb2d574
Binary files /dev/null and b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/Awesomium.dll differ
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/AwesomiumProcess.exe b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/AwesomiumProcess.exe
new file mode 100644 (file)
index 0000000..b0848ef
Binary files /dev/null and b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/AwesomiumProcess.exe differ
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/awesomiumc.dll b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/awesomiumc.dll
new file mode 100644 (file)
index 0000000..b4483bc
Binary files /dev/null and b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/awesomiumc.dll differ
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/icudt42.dll b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/icudt42.dll
new file mode 100644 (file)
index 0000000..f503374
Binary files /dev/null and b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/icudt42.dll differ
diff --git a/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/locales/en-US.dll b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/locales/en-US.dll
new file mode 100644 (file)
index 0000000..f9de17d
Binary files /dev/null and b/extensions/awesomium/gdx-awesomium/src/com/badlogic/gdx/awesomium/natives/locales/en-US.dll differ