package org.andengine.extension.scripting; import org.andengine.engine.Engine; import org.andengine.extension.scripting.engine.EngineProxy; import org.andengine.extension.scripting.entity.EntityProxy; import org.andengine.extension.scripting.entity.primitive.RectangleProxy; import org.andengine.extension.scripting.entity.scene.SceneProxy; import org.andengine.extension.scripting.entity.shape.ShapeProxy; import org.andengine.extension.scripting.entity.sprite.SpriteProxy; import org.andengine.extension.scripting.input.touch.TouchEventProxy; import org.andengine.extension.scripting.opengl.font.FontManagerProxy; import org.andengine.extension.scripting.opengl.texture.TextureManagerProxy; import org.andengine.extension.scripting.opengl.texture.TextureOptionsProxy; import org.andengine.extension.scripting.opengl.texture.TextureProxy; import org.andengine.extension.scripting.opengl.texture.bitmap.AssetBitmapTextureProxy; import org.andengine.extension.scripting.opengl.texture.bitmap.BitmapTextureFormatProxy; import org.andengine.extension.scripting.opengl.texture.bitmap.BitmapTextureProxy; import org.andengine.extension.scripting.opengl.texture.region.TextureRegionProxy; import org.andengine.extension.scripting.opengl.vbo.DrawTypeProxy; import org.andengine.extension.scripting.opengl.vbo.VertexBufferObjectManagerProxy; import android.content.Context; /** * (c) Zynga 2012 * * @author Nicolas Gramlich <ngramlich@zynga.com> * @since 17:01:34 - 28.02.2012 */ public class AndEngineScriptingExtension { // =========================================================== // Constants // =========================================================== static { System.loadLibrary("gnustl_shared"); System.loadLibrary("andenginescriptingextension"); // TODO: Register globals (Context and Engine) // TODO: Native Bindings Generator // TODO: JS Bindings Generator } // =========================================================== // Fields // =========================================================== // =========================================================== // Constructors // =========================================================== // =========================================================== // Getter & Setter // =========================================================== // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== // =========================================================== // Methods // =========================================================== /** * It is critical from which {@link Thread} this method is called! * * @param pContext * @param pAPKPath * @param pEngine */ public static void init(final Context pContext, final Engine pEngine) { AndEngineScriptingExtension.nativeInitClass(); /* Setup. */ ContextProxy.nativeInitClass(); AssetManagerProxy.nativeInitClass(); EngineProxy.nativeInitClass(); TouchEventProxy.nativeInitClass(); /* VBO. */ DrawTypeProxy.nativeInitClass(); VertexBufferObjectManagerProxy.nativeInitClass(); /* Texture. */ TextureManagerProxy.nativeInitClass(); TextureProxy.nativeInitClass(); BitmapTextureProxy.nativeInitClass(); AssetBitmapTextureProxy.nativeInitClass(); TextureRegionProxy.nativeInitClass(); TextureOptionsProxy.nativeInitClass(); BitmapTextureFormatProxy.nativeInitClass(); /* Font. */ FontManagerProxy.nativeInitClass(); // FontProxy.nativeInitClass(); /* Entity. */ EntityProxy.nativeInitClass(); ShapeProxy.nativeInitClass(); RectangleProxy.nativeInitClass(); SpriteProxy.nativeInitClass(); SceneProxy.nativeInitClass(); /* Actual init. */ AndEngineScriptingExtension.nativeInit(pContext, pEngine); } public static native String getJavaScriptVMVersion(); public static native int runScript(final String pCode); private static native void nativeInitClass(); private static native void nativeInit(final Context pContext, final Engine pEngine); public static void attachCurrentThread() { AndEngineScriptingExtension.nativeAttachCurrentThread(); } private static native void nativeAttachCurrentThread(); public static void detachCurrentThread() { AndEngineScriptingExtension.nativeDetachCurrentThread(); } private static native void nativeDetachCurrentThread(); // =========================================================== // Inner and Anonymous Classes // =========================================================== }