#include "Linderdaum.h" sEnvironment* Env = NULL; LMatrix4 Projection; clVirtualTrackball Trackball; clGameCamera* Camera = NULL; clScene* Scene = NULL; void DrawOverlay(LEvent Event, const LEventArgs& Args) { // LMatrix4 Trans( Trackball.GetRotationMatrix() * Camera->GetCamera().GetModelViewMatrix() ); Scene->SetCameraTransform( Trans ); Scene->SetCameraProjection( Projection ); // Scene->SetUseOffscreenBuffer( false, false ); Scene->RenderForward(); // bool MousePressedL = Env->Console->IsKeyPressed( LK_LBUTTON ); Env->Viewport->UpdateTrackball( &Trackball, 10.0f, MousePressedL ); } void Update( LEvent Event, const LEventArgs& Args ) { // Args.FFloatArg DeltaTime } APPLICATION_ENTRY_POINT { LString CommandLine; EXTRACT_COMMAND_LINE(CommandLine); Env = new sEnvironment(); // CommonMedia PC, Env->DeployDefaultEnvironment( CommandLine, "..\\..\\CommonMedia" ); Env->FileSystem->Mount("GameData"); Projection = Math::Perspective( 45.0f, Env->Viewport->GetAspectRatio(), 0.4f, 2000.0f ); // Camera = Env->Linker->Instantiate( "clGameCamera" ); Camera->GetCamera().SetPosition( LVector3(0,-10,10) ); CONNECTOBJ( L_EVENT_TIMER, &clGameCamera::Event_TIMER, Camera ); Env->Connect( L_EVENT_DRAWOVERLAY, Utils::Bind( &DrawOverlay ) ); Env->Connect( L_EVENT_TIMER, Utils::Bind( &Update ) ); // Scene = Env->Linker->Instantiate("clScene"); // int ID = Scene->AddGeom( Env->Resources->CreateIcosahedron( 3.0f, LVector3(0) ) ); // clMaterial* Mtl = Env->Resources->CreateMaterial(); Mtl->SetPropertyValue( "DiffuseColor", "1.0 0.0 0.0 0" ); Mtl->SetPropertyValue( "CastShadow", "false" ); Scene->SetMtl( ID, Mtl ); // Scene->SetLocalTransform( ID, LMatrix4::GetTranslateMatrix( LVector3( 0.0f, 0.0f, 0.0f ) ) ); Env->RunApplication( DEFAULT_CONSOLE_AUTOEXEC ); APPLICATION_EXIT_POINT( Env ); } APPLICATION_SHUTDOWN { }
android.library.reference.1=..\\\\..\\\\BuildAndroid
target=android-13
sdk.dir=< Android SDK, D:\\android-sdk-windows>
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Test_Android</string> </resources>
APP_OPTIM := release
APP_PLATFORM := android-7
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti
APP_CPPFLAGS += -fexceptions
APP_CPPFLAGS += -DANDROID
APP_ABI := armeabi-v7a
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.linderdaum.engine.myfirstandroidapp" android:versionCode="1" android:versionName="0.6.00" android:installLocation="auto"> <!--require Android 2.1 and higher--> <uses-sdk android:minSdkVersion="7" /> <uses-sdk android:targetSdkVersion="9" /> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" /> <uses-feature android:glEsVersion="0x00020000"/> <uses-feature android:name="android.hardware.telephony" android:required="false" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:label="@string/app_name" android:installLocation="preferExternal" android:debuggable="false"> <activity android:name="com.linderdaum.engine.LinderdaumEngineActivity" android:launchMode="singleTask" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
$ ndk-build Compile++ thumb : LinderdaumEngine <= LAndroid.cpp Compile thumb : LinderdaumEngine <= LJNI.c Compile++ thumb : LinderdaumEngine <= Test_Android.cpp Prebuilt : libLinderdaumEngineCore.a <= jni/../../../BuildAndroid/obj/local/armeabi-v7a/ Prebuilt : libFreeImage.a <= jni/../../../BuildAndroid/jni/armeabi-v7a/ Prebuilt : libFreeType.a <= jni/../../../BuildAndroid/jni/armeabi-v7a/ Prebuilt : libVorbis.a <= jni/../../../BuildAndroid/jni/armeabi-v7a/ Prebuilt : libOGG.a <= jni/../../../BuildAndroid/jni/armeabi-v7a/ Prebuilt : libOpenAL.a <= jni/../../../BuildAndroid/jni/armeabi-v7a/ Prebuilt : libModPlug.a <= jni/../../../BuildAndroid/jni/armeabi-v7a/ Prebuilt : libstdc++.a <= <NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/ SharedLibrary : libLinderdaumEngine.so Install : libLinderdaumEngine.so => libs/armeabi-v7a/libLinderdaumEngine.so
<?xml version="1.0" encoding="UTF-8"?> <project name="Asteroids" default="help"> <import file="../../BuildAndroid/CommonMedia.xml"/> <property file="local.properties" /> <property file="ant.properties" /> <loadproperties srcFile="project.properties" /> <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var" unless="sdk.dir" /> <target name="copy-game-data"> <!-- Game data --> <delete dir="assets"/> <copy todir="assets/Data"> <fileset dir="GameData"> </fileset> </copy> <copy todir="assets/Data"> <fileset dir="Data"> </fileset> </copy> </target> <import file="${sdk.dir}/tools/ant/build.xml" /> </project>
Source: https://habr.com/ru/post/121062/
All Articles