Denis Sachkov 9 years ago
commit
74ed4fe1b4
98 changed files with 4217 additions and 0 deletions
  1. 4 0
      .gitignore
  2. 5 0
      .hgignore
  3. 25 0
      Android.mk
  4. 20 0
      CMakeLists.txt
  5. 2 0
      README.md
  6. 12 0
      android/AndroidManifest.xml
  7. 17 0
      android/ant.properties
  8. 43 0
      android/build.gradle
  9. 92 0
      android/build.xml
  10. 20 0
      android/proguard-project.txt
  11. 15 0
      android/project.properties
  12. 2 0
      android/settings.gradle
  13. 40 0
      android/src/org/oxygine/admob/AdmobAdapter.java
  14. 28 0
      example/HelloWorldAdmob/data/app.icf
  15. 55 0
      example/HelloWorldAdmob/data/demo/big.bmfc
  16. 1 0
      example/HelloWorldAdmob/data/demo/button.png
  17. BIN
      example/HelloWorldAdmob/data/demo/eng.txt
  18. 109 0
      example/HelloWorldAdmob/data/demo/font.fnt
  19. 1 0
      example/HelloWorldAdmob/data/demo/font.png
  20. 6 0
      example/HelloWorldAdmob/data/demo/fonts.xml
  21. 1 0
      example/HelloWorldAdmob/data/demo/loading.png
  22. 1 0
      example/HelloWorldAdmob/data/demo/logo2.png
  23. 55 0
      example/HelloWorldAdmob/data/demo/main.bmfc
  24. 34 0
      example/HelloWorldAdmob/data/demo/num_fnt_shdr.fnt
  25. 1 0
      example/HelloWorldAdmob/data/demo/num_fnt_shdr.png
  26. 9 0
      example/HelloWorldAdmob/data/demo/res_ui.xml
  27. 107 0
      example/HelloWorldAdmob/data/development.icf
  28. 109 0
      example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/big.fnt
  29. 1 0
      example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/big_0.png
  30. 109 0
      example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/main.fnt
  31. 1 0
      example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/main_0.png
  32. 1 0
      example/HelloWorldAdmob/data/ext/fonts.xml.ox/meta.xml
  33. 1 0
      example/HelloWorldAdmob/data/ext/res_ui.xml.ox/atlas/1_0.png
  34. 1 0
      example/HelloWorldAdmob/data/ext/res_ui.xml.ox/meta.xml
  35. 239 0
      example/HelloWorldAdmob/data/fonts/main.fnt
  36. 1 0
      example/HelloWorldAdmob/data/fonts/main_0.png
  37. 1 0
      example/HelloWorldAdmob/data/ident.free
  38. 1 0
      example/HelloWorldAdmob/data/images/anim.png
  39. 1 0
      example/HelloWorldAdmob/data/images/button.png
  40. 11 0
      example/HelloWorldAdmob/data/res.xml
  41. 32 0
      example/HelloWorldAdmob/proj.android/AndroidManifest.xml
  42. 18 0
      example/HelloWorldAdmob/proj.android/ant.properties
  43. 1 0
      example/HelloWorldAdmob/proj.android/ant_debug.bat
  44. 2 0
      example/HelloWorldAdmob/proj.android/ant_debug.sh
  45. 3 0
      example/HelloWorldAdmob/proj.android/build-run.bat
  46. 4 0
      example/HelloWorldAdmob/proj.android/build-run.sh
  47. 1 0
      example/HelloWorldAdmob/proj.android/build.bat
  48. 2 0
      example/HelloWorldAdmob/proj.android/build.sh
  49. 93 0
      example/HelloWorldAdmob/proj.android/build.xml
  50. 2 0
      example/HelloWorldAdmob/proj.android/install.bat
  51. 3 0
      example/HelloWorldAdmob/proj.android/install.sh
  52. 1 0
      example/HelloWorldAdmob/proj.android/jni/Android.mk
  53. 5 0
      example/HelloWorldAdmob/proj.android/jni/Application.mk
  54. 19 0
      example/HelloWorldAdmob/proj.android/jni/src/Android.mk
  55. 15 0
      example/HelloWorldAdmob/proj.android/project.properties
  56. 1 0
      example/HelloWorldAdmob/proj.android/res/drawable-hdpi/ic_launcher.png
  57. 1 0
      example/HelloWorldAdmob/proj.android/res/drawable-mdpi/ic_launcher.png
  58. 1 0
      example/HelloWorldAdmob/proj.android/res/drawable-xhdpi/ic_launcher.png
  59. 1 0
      example/HelloWorldAdmob/proj.android/res/drawable-xxhdpi/ic_launcher.png
  60. 13 0
      example/HelloWorldAdmob/proj.android/res/layout/main.xml
  61. 4 0
      example/HelloWorldAdmob/proj.android/res/values/strings.xml
  62. 8 0
      example/HelloWorldAdmob/proj.android/src/org/oxygine/HelloWorldFacebook/MainActivity.java
  63. 19 0
      example/HelloWorldAdmob/proj.cmake/CMakeLists.txt
  64. 16 0
      example/HelloWorldAdmob/proj.cmake/run.sh
  65. 25 0
      example/HelloWorldAdmob/proj.emscripten/CMakeLists.txt
  66. 7 0
      example/HelloWorldAdmob/proj.emscripten/build.bat
  67. 7 0
      example/HelloWorldAdmob/proj.emscripten/build_release.bat
  68. 95 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/HelloWorldFacebook_ios-Info.plist
  69. 16 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/HelloWorldFacebook_ios-Prefix.pch
  70. 68 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/Images.xcassets/AppIcon.appiconset/Contents.json
  71. 49 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/Images.xcassets/LaunchImage.launchimage/Contents.json
  72. 51 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/LaunchImage.launchimage/Contents.json
  73. 28 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/LaunchScreen.storyboard
  74. 536 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook_ios.xcodeproj/project.pbxproj
  75. 7 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  76. 30 0
      example/HelloWorldAdmob/proj.ios/HelloWorldFacebook_ios.xcodeproj/project.xcworkspace/xcshareddata/HelloWorldFacebook_ios.xcscmblueprint
  77. 9 0
      example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook/HelloWorldFacebook_macosx-Prefix.pch
  78. 58 0
      example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook/Images.xcassets/AppIcon.appiconset/Contents.json
  79. 34 0
      example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook_macosx-Info.plist
  80. 499 0
      example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook_macosx.xcodeproj/project.pbxproj
  81. 48 0
      example/HelloWorldAdmob/proj.win32/HelloWorldFacebook.sln
  82. 128 0
      example/HelloWorldAdmob/proj.win32/HelloWorldFacebook.vcxproj
  83. 17 0
      example/HelloWorldAdmob/proj.win32/HelloWorldFacebook.vcxproj.filters
  84. 67 0
      example/HelloWorldAdmob/src/example.cpp
  85. 4 0
      example/HelloWorldAdmob/src/example.h
  86. 17 0
      example/HelloWorldAdmob/src/ios/AppDelegate.h
  87. 44 0
      example/HelloWorldAdmob/src/ios/AppDelegate.mm
  88. 156 0
      example/HelloWorldAdmob/src/main.cpp
  89. 245 0
      example/HelloWorldAdmob/src/test.cpp
  90. 83 0
      example/HelloWorldAdmob/src/test.h
  91. 88 0
      src/admob.cpp
  92. 33 0
      src/admob.h
  93. 113 0
      src/android/AndroidAdmob.cpp
  94. 8 0
      src/android/AndroidAdmob.h
  95. 7 0
      src/ios/iosAdmob.h
  96. 24 0
      src/ios/iosAdmob.mm
  97. 162 0
      src/sim/AdmobSimulator.cpp
  98. 7 0
      src/sim/AdmobSimulator.h

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+android/build/
+android/.idea/
+android/.gradle/
+android/local.properties

+ 5 - 0
.hgignore

@@ -0,0 +1,5 @@
+syntax: glob
+android/build/intermediates/blame/res/debug/multi/values-kn-rIN.json
+android/build/
+android/.gradle/
+android/oxygine-admob.iml

+ 25 - 0
Android.mk

@@ -0,0 +1,25 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := oxygine-admob_static
+LOCAL_MODULE_FILENAME := oxygine-admob
+
+LOCAL_C_INCLUDES := \
+		$(LOCAL_PATH)/../oxygine-framework/oxygine/src/ \
+		src/ \
+		src/android \
+					
+
+LOCAL_SRC_FILES := \
+		src/admob.cpp \
+		src/android/AndroidAdmob.cpp
+
+
+
+
+LOCAL_EXPORT_C_INCLUDES += \
+					$(LOCAL_PATH)/src \
+					$(LOCAL_PATH)/src/android \
+					
+					
+include $(BUILD_STATIC_LIBRARY)

+ 20 - 0
CMakeLists.txt

@@ -0,0 +1,20 @@
+cmake_minimum_required (VERSION 2.6)
+project (OXYGINE_ADMOB)
+
+set(OXYGINE_ADMOB_INCLUDE_DIRS 
+	${CMAKE_CURRENT_SOURCE_DIR}/src)
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+
+include_directories(${OXYGINE_ADMOB_INCLUDE_DIRS})
+add_library(oxygine-admob STATIC 
+	src/admob.cpp 
+	src/admob.h
+	src/sim/AdmobSimulator.cpp 
+	src/sim/AdmobSimulator.h
+)
+
+#target_link_libraries(oxyginemagicparticles)
+
+set(OXYGINE_ADMOB_INCLUDE_DIRS ${OXYGINE_ADMOB_INCLUDE_DIRS} PARENT_SCOPE)
+set(OXYGINE_ADMOB_LIBS ${OXYGINE_ADMOB_LIBS} PARENT_SCOPE)

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# oxygine-admob
+work in progress

+ 12 - 0
android/AndroidManifest.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="org.oxygine.AdmobAdapter"
+      android:versionCode="1"
+      android:versionName="1.0">
+
+      <application>
+
+      </application>
+
+      <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>

+ 17 - 0
android/ant.properties

@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked into Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+#  'source.dir' for the location of your java source folder and
+#  'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+#  'key.store' for the location of your keystore and
+#  'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+

+ 43 - 0
android/build.gradle

@@ -0,0 +1,43 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:1.5.0'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
+
+apply plugin: 'com.android.library'
+
+
+dependencies {
+        compile(project(':oxygine-extension'))
+    }
+
+android {
+		lintOptions {
+        	abortOnError false
+    	}
+
+        compileSdkVersion 23
+  		buildToolsVersion '23.0.1'
+
+        defaultConfig {
+            minSdkVersion 16
+            targetSdkVersion 23
+        }
+
+  		sourceSets {
+            main {
+                manifest.srcFile 'AndroidManifest.xml'
+                java.srcDirs = ['src']
+                res.srcDirs = ['res']
+            }
+        }
+}

+ 92 - 0
android/build.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="AdmobAdapter" default="help">
+
+    <!-- The local.properties file is created and updated by the 'android' tool.
+         It contains the path to the SDK. It should *NOT* be checked into
+         Version Control Systems. -->
+    <property file="local.properties" />
+
+    <!-- The ant.properties file can be created by you. It is only edited by the
+         'android' tool to add properties to it.
+         This is the place to change some Ant specific build properties.
+         Here are some properties you may want to change/update:
+
+         source.dir
+             The name of the source directory. Default is 'src'.
+         out.dir
+             The name of the output directory. Default is 'bin'.
+
+         For other overridable properties, look at the beginning of the rules
+         files in the SDK, at tools/ant/build.xml
+
+         Properties related to the SDK location or the project target should
+         be updated using the 'android' tool with the 'update' action.
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems.
+
+         -->
+    <property file="ant.properties" />
+
+    <!-- if sdk.dir was not set from one of the property file, then
+         get it from the ANDROID_HOME env var.
+         This must be done before we load project.properties since
+         the proguard config can use sdk.dir -->
+    <property environment="env" />
+    <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+        <isset property="env.ANDROID_HOME" />
+    </condition>
+
+    <!-- The project.properties file is created and updated by the 'android'
+         tool, as well as ADT.
+
+         This contains project specific properties such as project target, and library
+         dependencies. Lower level build properties are stored in ant.properties
+         (or in .classpath for Eclipse projects).
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems. -->
+    <loadproperties srcFile="project.properties" />
+
+    <!-- quick check on sdk.dir -->
+    <fail
+            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+            unless="sdk.dir"
+    />
+
+    <!--
+        Import per project custom build rules if present at the root of the project.
+        This is the place to put custom intermediary targets such as:
+            -pre-build
+            -pre-compile
+            -post-compile (This is typically used for code obfuscation.
+                           Compiled code location: ${out.classes.absolute.dir}
+                           If this is not done in place, override ${out.dex.input.absolute.dir})
+            -post-package
+            -post-build
+            -pre-clean
+    -->
+    <import file="custom_rules.xml" optional="true" />
+
+    <!-- Import the actual build file.
+
+         To customize existing targets, there are two options:
+         - Customize only one target:
+             - copy/paste the target into this file, *before* the
+               <import> task.
+             - customize it to your needs.
+         - Customize the whole content of build.xml
+             - copy/paste the content of the rules files (minus the top node)
+               into this file, replacing the <import> task.
+             - customize to your needs.
+
+         ***********************
+         ****** IMPORTANT ******
+         ***********************
+         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+         in order to avoid having your file be overridden by tools such as "android update project"
+    -->
+    <!-- version-tag: 1 -->
+    <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>

+ 20 - 0
android/proguard-project.txt

@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}

+ 15 - 0
android/project.properties

@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+android.library=true
+# Project target.
+target=android-16

+ 2 - 0
android/settings.gradle

@@ -0,0 +1,2 @@
+include 'oxygine-extension'
+project(':oxygine-extension').projectDir = new File('../../oxygine-framework/oxygine/SDL/android/extension')

+ 40 - 0
android/src/org/oxygine/admob/AdmobAdapter.java

@@ -0,0 +1,40 @@
+package org.oxygine.admob;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.oxygine.lib.extension.ActivityObserver;
+
+import java.util.Arrays;
+
+public class AdmobAdapter extends ActivityObserver
+{
+    private static String TAG = "AdmobAdapter";
+
+    public AdmobAdapter(Activity a) {
+
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+
+    }
+
+    @Override
+    public void onDestroy() {
+    }
+
+    @Override
+    public void onResume() {
+    }
+
+    @Override
+    public void onPause() {
+
+    }
+}

+ 28 - 0
example/HelloWorldAdmob/data/app.icf

@@ -0,0 +1,28 @@
+[S3E]
+MemSize = 64777216
+DispFixRot=Landscape
+SysGlesVersion=2
+SysStackSize=131072
+MemMgrMaxAllocWarning=0
+
+[Trace]
+ALL=0
+EXT=0
+NONE=0
+DEVICE=0
+FIBRE=0
+THREAD=0
+LOADER=0
+SOUND=0
+FILE=0
+SURFACE=0
+MEMORY=0
+ERROR=0
+IW_GL=0
+SURFACE=0
+SOCKET=0
+JPEG=0
+VIDEO=0
+LOADER=0
+FILE=0
+IWCRT=0

+ 55 - 0
example/HelloWorldAdmob/data/demo/big.bmfc

@@ -0,0 +1,55 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+fontFile=
+charSet=0
+fontSize=-26
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+dontIncludeKerningPairs=1
+useHinting=1
+renderFromOutline=0
+useClearType=1
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+useFixedHeight=0
+forceZero=0
+
+# output file
+outWidth=512
+outHeight=512
+outBitDepth=32
+fontDescFormat=1
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,169,174,176,180
+
+# imported icon images

+ 1 - 0
example/HelloWorldAdmob/data/demo/button.png

@@ -0,0 +1 @@
+‰PNG

BIN
example/HelloWorldAdmob/data/demo/eng.txt


+ 109 - 0
example/HelloWorldAdmob/data/demo/font.fnt

@@ -0,0 +1,109 @@
+<?xml version="1.0" ?><font>
+  <info aa="1" bold="1" charset="" face="Arial" italic="0" outline="0" padding="0,0,0,0" size="-26" smooth="1" spacing="1,1" stretchH="100" unicode="1"/>
+  <common alphaChnl="0" base="24" blueChnl="4" greenChnl="4" lineHeight="30" packed="0" pages="1" redChnl="4" scaleH="128" scaleW="512"/>
+  <pages>
+    <page file="font.png" id="0"/>
+  </pages>
+  <chars count="100">
+    <char chnl="15" height="1" id="32" page="0" width="3" x="98" xadvance="7" xoffset="-1" y="23" yoffset="29"/>
+    <char chnl="15" height="19" id="33" page="0" width="6" x="30" xadvance="8" xoffset="1" y="46" yoffset="5"/>
+    <char chnl="15" height="7" id="34" page="0" width="11" x="376" xadvance="12" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="19" id="35" page="0" width="16" x="108" xadvance="14" xoffset="-1" y="23" yoffset="5"/>
+    <char chnl="15" height="22" id="36" page="0" width="14" x="98" xadvance="14" xoffset="0" y="0" yoffset="4"/>
+    <char chnl="15" height="20" id="37" page="0" width="23" x="134" xadvance="24" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="38" page="0" width="19" x="323" xadvance="19" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="7" id="39" page="0" width="6" x="388" xadvance="6" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="24" id="40" page="0" width="7" x="76" xadvance="9" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="24" id="41" page="0" width="7" x="84" xadvance="9" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="9" id="42" page="0" width="10" x="348" xadvance="10" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="14" id="43" page="0" width="15" x="119" xadvance="15" xoffset="0" y="43" yoffset="7"/>
+    <char chnl="15" height="8" id="44" page="0" width="5" x="370" xadvance="7" xoffset="1" y="40" yoffset="20"/>
+    <char chnl="15" height="4" id="45" page="0" width="8" x="411" xadvance="9" xoffset="1" y="40" yoffset="15"/>
+    <char chnl="15" height="4" id="46" page="0" width="5" x="436" xadvance="7" xoffset="1" y="40" yoffset="20"/>
+    <char chnl="15" height="19" id="47" page="0" width="9" x="0" xadvance="7" xoffset="-1" y="46" yoffset="5"/>
+    <char chnl="15" height="19" id="48" page="0" width="14" x="424" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="49" page="0" width="10" x="493" xadvance="14" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="50" page="0" width="14" x="409" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="51" page="0" width="14" x="379" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="52" page="0" width="14" x="364" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="53" page="0" width="14" x="319" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="54" page="0" width="14" x="349" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="55" page="0" width="14" x="334" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="56" page="0" width="14" x="394" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="57" page="0" width="14" x="304" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="14" id="58" page="0" width="6" x="311" xadvance="10" xoffset="2" y="40" yoffset="10"/>
+    <char chnl="15" height="18" id="59" page="0" width="6" x="49" xadvance="10" xoffset="2" y="45" yoffset="10"/>
+    <char chnl="15" height="14" id="60" page="0" width="14" x="271" xadvance="15" xoffset="0" y="40" yoffset="8"/>
+    <char chnl="15" height="10" id="61" page="0" width="15" x="318" xadvance="15" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="62" page="0" width="14" x="211" xadvance="15" xoffset="0" y="40" yoffset="8"/>
+    <char chnl="15" height="19" id="63" page="0" width="15" x="240" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="25" id="64" page="0" width="25" x="0" xadvance="25" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="65" page="0" width="20" x="281" xadvance="19" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="66" page="0" width="18" x="402" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="67" page="0" width="18" x="383" xadvance="19" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="68" page="0" width="18" x="421" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="69" page="0" width="15" x="224" xadvance="17" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="70" page="0" width="14" x="497" xadvance="16" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="71" page="0" width="19" x="343" xadvance="20" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="72" page="0" width="17" x="18" xadvance="19" xoffset="1" y="26" yoffset="5"/>
+    <char chnl="15" height="19" id="73" page="0" width="6" x="504" xadvance="8" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="74" page="0" width="13" x="454" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="75" page="0" width="18" x="459" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="76" page="0" width="15" x="256" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="77" page="0" width="21" x="259" xadvance="23" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="78" page="0" width="17" x="72" xadvance="19" xoffset="1" y="25" yoffset="5"/>
+    <char chnl="15" height="19" id="79" page="0" width="20" x="302" xadvance="20" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="80" page="0" width="17" x="90" xadvance="18" xoffset="1" y="25" yoffset="5"/>
+    <char chnl="15" height="21" id="81" page="0" width="20" x="113" xadvance="20" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="82" page="0" width="18" x="440" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="83" page="0" width="17" x="36" xadvance="17" xoffset="0" y="25" yoffset="5"/>
+    <char chnl="15" height="19" id="84" page="0" width="16" x="125" xadvance="16" xoffset="1" y="22" yoffset="5"/>
+    <char chnl="15" height="19" id="85" page="0" width="17" x="0" xadvance="19" xoffset="1" y="26" yoffset="5"/>
+    <char chnl="15" height="19" id="86" page="0" width="19" x="363" xadvance="17" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="87" page="0" width="27" x="187" xadvance="25" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="88" page="0" width="17" x="54" xadvance="17" xoffset="0" y="25" yoffset="5"/>
+    <char chnl="15" height="19" id="89" page="0" width="18" x="478" xadvance="18" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="90" page="0" width="16" x="159" xadvance="16" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="24" id="91" page="0" width="8" x="67" xadvance="9" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="92" page="0" width="9" x="10" xadvance="7" xoffset="-1" y="46" yoffset="5"/>
+    <char chnl="15" height="24" id="93" page="0" width="8" x="58" xadvance="9" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="10" id="94" page="0" width="13" x="334" xadvance="15" xoffset="1" y="40" yoffset="5"/>
+    <char chnl="15" height="3" id="95" page="0" width="16" x="442" xadvance="14" xoffset="-1" y="40" yoffset="26"/>
+    <char chnl="15" height="4" id="96" page="0" width="7" x="420" xadvance="9" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="14" id="97" page="0" width="14" x="151" xadvance="14" xoffset="0" y="41" yoffset="10"/>
+    <char chnl="15" height="19" id="98" page="0" width="15" x="208" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="14" id="99" page="0" width="14" x="166" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="100" page="0" width="15" x="192" xadvance="16" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="14" id="101" page="0" width="14" x="181" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="102" page="0" width="10" x="482" xadvance="9" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="103" page="0" width="15" x="176" xadvance="16" xoffset="0" y="20" yoffset="10"/>
+    <char chnl="15" height="19" id="104" page="0" width="14" x="439" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="105" page="0" width="5" x="37" xadvance="8" xoffset="2" y="45" yoffset="5"/>
+    <char chnl="15" height="24" id="106" page="0" width="9" x="48" xadvance="8" xoffset="-2" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="107" page="0" width="13" x="468" xadvance="14" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="108" page="0" width="5" x="43" xadvance="8" xoffset="2" y="45" yoffset="5"/>
+    <char chnl="15" height="14" id="109" page="0" width="22" x="79" xadvance="24" xoffset="1" y="45" yoffset="10"/>
+    <char chnl="15" height="14" id="110" page="0" width="14" x="196" xadvance="16" xoffset="1" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="111" page="0" width="16" x="102" xadvance="16" xoffset="0" y="45" yoffset="10"/>
+    <char chnl="15" height="19" id="112" page="0" width="15" x="288" xadvance="16" xoffset="1" y="20" yoffset="10"/>
+    <char chnl="15" height="19" id="113" page="0" width="15" x="272" xadvance="16" xoffset="0" y="20" yoffset="10"/>
+    <char chnl="15" height="14" id="114" page="0" width="10" x="300" xadvance="10" xoffset="1" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="115" page="0" width="14" x="226" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="116" page="0" width="9" x="20" xadvance="9" xoffset="0" y="46" yoffset="5"/>
+    <char chnl="15" height="14" id="117" page="0" width="14" x="241" xadvance="16" xoffset="1" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="118" page="0" width="15" x="135" xadvance="15" xoffset="0" y="42" yoffset="10"/>
+    <char chnl="15" height="14" id="119" page="0" width="22" x="56" xadvance="21" xoffset="0" y="45" yoffset="10"/>
+    <char chnl="15" height="14" id="120" page="0" width="14" x="256" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="121" page="0" width="16" x="142" xadvance="15" xoffset="-1" y="21" yoffset="10"/>
+    <char chnl="15" height="14" id="122" page="0" width="13" x="286" xadvance="13" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="24" id="123" page="0" width="10" x="37" xadvance="10" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="24" id="124" page="0" width="5" x="92" xadvance="7" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="24" id="125" page="0" width="10" x="26" xadvance="10" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="6" id="126" page="0" width="15" x="395" xadvance="15" xoffset="0" y="40" yoffset="11"/>
+    <char chnl="15" height="19" id="169" page="0" width="21" x="237" xadvance="19" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="174" page="0" width="21" x="215" xadvance="19" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="8" id="176" page="0" width="10" x="359" xadvance="10" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="4" id="180" page="0" width="7" x="428" xadvance="9" xoffset="2" y="40" yoffset="5"/>
+    <char chnl="15" height="19" id="8470" page="0" width="28" x="158" xadvance="29" xoffset="1" y="0" yoffset="5"/>
+  </chars>
+</font>

+ 1 - 0
example/HelloWorldAdmob/data/demo/font.png

@@ -0,0 +1 @@
+‰PNG

+ 6 - 0
example/HelloWorldAdmob/data/demo/fonts.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<resources>
+	<set path = "demo" />
+	<bmfc_font file="main.bmfc" chars="eng.txt"/>	
+	<bmfc_font file="big.bmfc" chars="eng.txt"/>
+</resources>

+ 1 - 0
example/HelloWorldAdmob/data/demo/loading.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/data/demo/logo2.png

@@ -0,0 +1 @@
+‰PNG

+ 55 - 0
example/HelloWorldAdmob/data/demo/main.bmfc

@@ -0,0 +1,55 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+fontFile=
+charSet=0
+fontSize=-16
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+dontIncludeKerningPairs=1
+useHinting=1
+renderFromOutline=0
+useClearType=1
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+useFixedHeight=0
+forceZero=0
+
+# output file
+outWidth=512
+outHeight=512
+outBitDepth=32
+fontDescFormat=1
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,169,174,176,180
+
+# imported icon images

+ 34 - 0
example/HelloWorldAdmob/data/demo/num_fnt_shdr.fnt

@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<font>
+  <info face="Movavi Grotesque Black" size="70" bold="0" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="4" padding="0,0,0,0" spacing="1,1" outline="5"/>
+  <common lineHeight="70" base="55" scaleW="512" scaleH="68" pages="1" packed="0" alphaChnl="1" redChnl="0" greenChnl="0" blueChnl="0"/>
+  <pages>
+    <page id="0" file="num_fnt_shdr.png" />
+  </pages>
+  <chars count="10">
+    <char id="48" x="0" y="0" width="49" height="62" xoffset="-3" yoffset="-2" xadvance="44" page="0" chnl="15" />
+    <char id="49" x="449" y="0" width="34" height="60" xoffset="-5" yoffset="-1" xadvance="27" page="0" chnl="15" />
+    <char id="50" x="298" y="0" width="47" height="61" xoffset="-2" yoffset="-2" xadvance="44" page="0" chnl="15" />
+    <char id="51" x="198" y="0" width="49" height="61" xoffset="-3" yoffset="-1" xadvance="44" page="0" chnl="15" />
+    <char id="52" x="346" y="0" width="53" height="60" xoffset="-5" yoffset="-1" xadvance="43" page="0" chnl="15" />
+    <char id="53" x="248" y="0" width="49" height="61" xoffset="-3" yoffset="-1" xadvance="44" page="0" chnl="15" />
+    <char id="54" x="50" y="0" width="49" height="62" xoffset="-3" yoffset="-2" xadvance="44" page="0" chnl="15" />
+    <char id="55" x="400" y="0" width="48" height="60" xoffset="-5" yoffset="-1" xadvance="39" page="0" chnl="15" />
+    <char id="56" x="150" y="0" width="47" height="62" xoffset="-3" yoffset="-2" xadvance="42" page="0" chnl="15" />
+    <char id="57" x="100" y="0" width="49" height="62" xoffset="-3" yoffset="-2" xadvance="44" page="0" chnl="15" />
+  </chars>
+  <kernings count="12">
+    <kerning first="56" second="52" amount="1" />
+    <kerning first="55" second="55" amount="2" />
+    <kerning first="55" second="53" amount="-1" />
+    <kerning first="55" second="52" amount="-2" />
+    <kerning first="55" second="49" amount="2" />
+    <kerning first="54" second="52" amount="1" />
+    <kerning first="52" second="52" amount="2" />
+    <kerning first="51" second="52" amount="1" />
+    <kerning first="49" second="55" amount="1" />
+    <kerning first="49" second="54" amount="1" />
+    <kerning first="49" second="48" amount="1" />
+    <kerning first="48" second="49" amount="1" />
+  </kernings>
+</font>

+ 1 - 0
example/HelloWorldAdmob/data/demo/num_fnt_shdr.png

@@ -0,0 +1 @@
+‰PNG

+ 9 - 0
example/HelloWorldAdmob/data/demo/res_ui.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<resources>
+	<set path = "demo" />
+	<atlas>
+		<image file="loading.png"/>		
+		<image file="logo2.png"/>		
+		<image file="button.png" cols = "3" />	
+	</atlas>	
+</resources>

+ 107 - 0
example/HelloWorldAdmob/data/development.icf

@@ -0,0 +1,107 @@
+# Settings ICF file automatically generated by S3E development environment
+
+AccelEnabled                   = Type=bool, Default="true", Value = "true"
+AudioAAC                       = Type=bool, Default="false", Value = "true"
+AudioAACPlus                   = Type=bool, Default="false", Value = "true"
+AudioMIDI                      = Type=bool, Default="true", Value = "true"
+AudioMP3                       = Type=bool, Default="true", Value = "true"
+AudioPCM                       = Type=bool, Default="true", Value = "true"
+AudioQCP                       = Type=bool, Default="false", Value = "true"
+AudioVolumeDefault             = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"
+BacklightTimeout               = Type=int, Min=0.000000, Max=120000.000000, Default="10000", Value = "100000"
+CompassEnabled                 = Type=bool, Default="true", Value = "true"
+ContactsFromAddrBook           = Type=bool, Default="false", Value = "false"
+DeviceAdvanceSoftkeyPosition   = Type=string, Allowed="Bottom Left" "Bottom Right" "Top Right" "Top Left", Default="Bottom Left", Value = "Bottom Left"
+DeviceArch                     = Type=string, Allowed="<Use Native Architecture>" "ARM4T" "ARM4" "ARM5T" "ARM5TE" "ARM5TEJ" "ARM6" "ARM6K" "ARM6T2" "ARM6Z" "X86" "PPC" "AMD64" "ARM7", Default="<Use Native Architecture>", Value = "<Use Native Architecture>"
+DeviceBackSoftkeyPosition      = Type=string, Allowed="Bottom Left" "Bottom Right" "Top Right" "Top Left", Default="Bottom Right", Value = "Bottom Right"
+DeviceBatteryLevel             = Type=int, Min=0.000000, Max=100.000000, Default="50", Value = "50"
+DeviceClass                    = Type=string, Allowed="UNKNOWN" "SYMBIAN_GENERIC" "SYMBIAN_SERIES60" "SYMBIAN_SERIES60_EMULATOR" "SYMBIAN_UIQ" "SYMBIAN_UIQ_EMULATOR" "BREW_GENERIC" "BREW_QCIF_3D" "BREW_QCIF_25G" "BREW_SQCIF_256" "BREW_QVGA_3G" "WINDOWS_GENERIC" "WINMOBILE_GENERIC" "WINMOBILE_SP" "WINMOBILE_PPC" "LINUX_GENERIC" "LINUX_DESKTOP" "LINUX_EMBED" "WIPI_GENERIC" "NDS_GENERIC" "ARM_SEMIH_GENERIC" "NULCUES_GENERIC" "NGI_GENERIC", Default="WINDOWS_GENERIC", Value = "WINDOWS_GENERIC"
+DeviceFPU                      = Type=string, Allowed="None" "VFP Present", Default="VFP Present", Value = "VFP Present"
+DeviceFreeRAM                  = Type=int, Min=0.000000, Max=2097151.000000, Default="1048576", Value = "1048576"
+DeviceIDInt                    = Type=int, Default="0", Value = "0"
+DeviceIDString                 = Type=string, Default="", Value = ""
+DeviceIMSI                     = Type=string, Default="SIMULATOR_IMSI", Value = "SIMULATOR_IMSI"
+DeviceLSKIsBack                = Type=bool, Default="false", Value = "false"
+DeviceLanguage                 = Type=string, Allowed="UNKNOWN" "ENGLISH" "FRENCH" "GERMAN" "SPANISH" "ITALIAN" "PORTUGUESE" "DUTCH" "TURKISH" "CROATIAN" "CZECH" "DANISH" "FINNISH" "HUNGARIAN" "NORWEGIAN" "POLISH" "RUSSIAN" "SERBIAN" "SLOVAK" "SLOVENIAN" "SWEDISH" "UKRAINIAN" "GREEK" "JAPANESE" "SIMPL_CHINESE" "TRAD_CHINESE" "KOREAN" "ICELANDIC" "FLEMISH" "THAI" "AFRIKAANS" "ALBANIAN" "AMHARIC" "ARABIC" "ARMENIAN" "AZERBAIJANI" "TAGALOG" "BELARUSSIAN" "BENGALI" "BULGARIAN" "BURMESE" "CATALAN" "ESTONIAN" "FARSI" "GAELIC" "GEORGIAN" "GUJARATI" "HEBREW" "HINDI" "INDONESIAN" "IRISH" "KANNADA" "KAZAKH" "KHMER" "LAO" "LATVIAN" "LITHUANIAN" "MACEDONIAN" "MALAY" "MALAYALAM" "MARATHI" "MOLDOVIAN" "MONGOLIAN" "PUNJABI" "ROMANIAN" "SINHALESE" "SOMALI" "SWAHILI" "TAJIK" "TAMIL" "TELUGU" "TIBETAN" "TIGRINYA" "TURKMEN" "URDU" "UZBEK" "VIETNAMESE" "WELSH" "ZULU" "<Use Native Language>", Default="<Use Native Language>", Value = "<Use Native Language>"
+DeviceMainsPower               = Type=bool, Default="false", Value = "false"
+DeviceName                     = Type=string, Default="My Computer", Value = "My Computer"
+DeviceOS                       = Type=string, Allowed="NONE" "SYMBIAN" "BREW" "WINDOWS" "WINMOBILE" "LINUX" "WIPI" "NDS" "ARM_SEMIH" "NUCLEUS" "NGI" "WINCE" "SHARPEMP" "OSX" "IPHONE" "UIQ" "PS3" "X360" "ANDROID" "WEBOS" "QNX", Default="NONE", Value = "NONE"
+DeviceOSVersion                = Type=string, Default="", Value = ""
+DeviceOSVersionNumber          = Type=int, Default="0", Value = "0"
+DevicePhoneNumber              = Type=string, Default="0044123456789", Value = "0044123456789"
+DeviceTimezone                 = Type=string, Default="SYSTEM", Value = "SYSTEM"
+DeviceTotalRAM                 = Type=int, Min=0.000000, Max=2097151.000000, Default="1048576", Value = "1048576"
+DeviceUniqueID                 = Type=string, Default="SIMULATOR_ID", Value = "SIMULATOR_ID"
+DeviceUniqueIDInt              = Type=int, Default="01234567890", Value = "01234567890"
+FileTotalStorageSize           = Type=int, Min=0.000000, Max=2147483648.000000, Default="67108864", Value = "67108864"
+FileUseSeparateRomRam          = Type=bool, Default="true", Value = "true"
+FileUseTotalStorageSize        = Type=bool, Default="false", Value = "false"
+GLAPI                          = Type=string, Allowed="None" "GLES 1.0 Common-Lite Profile from Imagination POWERVR(TM)" "GLES 1.1 Common-Lite Profile from Imagination POWERVR(TM)" "GLES 1.0 Common Profile from Imagination POWERVR(TM)" "GLES 1.1 Common Profile from Imagination POWERVR(TM)" "GLES 2.0 from Imagination POWERVR(TM)" "GLES 3.0 from Imagination POWERVR(TM)" "Obey [S3E] SysGlesVersion .icf setting" "GLES 1.1 Common Profile from Qualcomm Snapdragon(TM)" "GLES 2.0 from Qualcomm Snapdragon(TM)" "GLES 2.0 ANGLE" "GLES 2.0 ANGLE DirectX 11", Default="Obey [S3E] SysGlesVersion .icf setting", Value = "Obey [S3E] SysGlesVersion .icf setting"
+GLDontUseHiddenWindow          = Type=bool, Default="false", Value = "false"
+GLTerminateOnSuspend           = Type=bool, Default="false", Value = "false"
+GLUsePVRVFrame                 = Type=bool, Default="false", Value = "false"
+KeyboardHasAlpha               = Type=bool, Default="true", Value = "true"
+KeyboardHasDirection           = Type=bool, Default="true", Value = "true"
+KeyboardHasKeypad              = Type=bool, Default="true", Value = "true"
+KeyboardNumpadRotation         = Type=string, Allowed="Rot0" "Rot90" "Rot180" "Rot270", Default="Rot0", Value = "Rot0"
+LicenseExpiryDate              = Type=int, Min=0.000000, Max=999999995904.000000, Default="0", Value = "0"
+LicenseMinutesRemaining        = Type=int, Min=0.000000, Max=10000000.000000, Default="0", Value = "0"
+LicenseStatus                  = Type=string, Allowed="EXPIRED" "DEMO" "USECOUNT" "EXPIRYDATE" "EXPIRYMINSUSE" "PURCHASE" "SUBSCRIPTION" "UPGRADE" "NONCOMMERCIAL", Default="NONCOMMERCIAL", Value = "NONCOMMERCIAL"
+LicenseUsesRemaining           = Type=int, Min=0.000000, Max=10000000.000000, Default="0", Value = "0"
+LocationAltitude               = Type=float, Min=-2000.000000, Max=100000.000000, Default="60.0", Value = "60.0"
+LocationAvailable              = Type=bool, Default="true", Value = "true"
+LocationHeading                = Type=float, Min=0.000000, Max=359.000000, Default="0.0", Value = "0.0"
+LocationHorizontalAccuracy     = Type=float, Min=0.000000, Max=100000.000000, Default="20.0", Value = "20.0"
+LocationLatitude               = Type=float, Min=-90.000000, Max=90.000000, Default="51.511791", Value = "51.511791"
+LocationLongitude              = Type=float, Min=-180.000000, Max=180.000000, Default="-0.191084", Value = "-0.191084"
+LocationSpeed                  = Type=float, Min=0.000000, Max=10000.000000, Default="0", Value = "0"
+LocationVerticalAccuracy       = Type=float, Min=0.000000, Max=100000.000000, Default="100.0", Value = "100.0"
+MacOSSimulatorCustomSettings   = Type=string, Default="", Value = ""
+MacOSSimulatorDevices_ANDROID  = Type=string, Allowed="Samsung Galaxy S:480x800:512" "HTC Sensation XL:480x800:768" "Samsung Galaxy Note:800x1280:1024" "Motorola Droid Razr:540x960:1024" "Kindle Fire:1024x600:512" "Samsung Galaxy Tab:1024x600:512", Default="Samsung Galaxy S:480x800:512", Value = "Samsung Galaxy S:480x800:512"
+MacOSSimulatorDevices_IPHONE   = Type=string, Allowed="iPhone 3GS:320x480:256" "iPhone 4/4S:640x960:512" "iPhone 5/5C/5S:640x1136:1024" "iPhone 6:750x1334:1024" "iPhone 6 Plus:1080x1920:1024" "iPad::1024x768:256" "iPad 2/iPad mini:1024x768:512" "iPad 3/4/Air/Mini 2:1536x2048:1024" "iPad Air 2:1536x2048:2048", Default="iPhone 3GS:320x480:256", Value = "iPhone 3GS:320x480:256"
+MacOSSimulatorPlatforms        = Type=string, Allowed="IPHONE" "ANDROID", Default="IPHONE", Value = "IPHONE"
+MacOSSimulatorUseCustomSettings = Type=bool, Default="true", Value = "true"
+MemoryPoison                   = Type=bool, Default="true", Value = "true"
+MemoryPoisonAlloc              = Type=int, Min=0.000000, Max=255.000000, Default="170", Value = "170"
+MemoryPoisonFree               = Type=int, Min=0.000000, Max=255.000000, Default="221", Value = "221"
+MemoryPoisonInit               = Type=int, Min=0.000000, Max=255.000000, Default="204", Value = "204"
+PointerAvailable               = Type=bool, Default="true", Value = "true"
+PointerMultiSimulationMode     = Type=bool, Default="false", Value = "false"
+PointerMultiTouchAvailable     = Type=bool, Default="false", Value = "true"
+PointerStylusType              = Type=string, Allowed="INVALID" "STYLUS" "FINGER", Default="INVALID", Value = "INVALID"
+PointerType                    = Type=string, Allowed="INVALID" "MOUSE" "STYLUS", Default="MOUSE", Value = "MOUSE"
+SMSEnabled                     = Type=bool, Default="true", Value = "true"
+SMSReceiveEnabled              = Type=bool, Default="true", Value = "true"
+SocketDNSDelay                 = Type=int, Min=0.000000, Max=30000.000000, Default="0", Value = "0"
+SocketHTTPProxy                = Type=string, Default="", Value = ""
+SocketHostName                 = Type=string, Default="", Value = ""
+SocketNetworkAvailable         = Type=bool, Default="true", Value = "true"
+SocketNetworkLoss              = Type=bool, Default="false", Value = "false"
+SocketNetworkType              = Type=string, Allowed="NONE" "UNKNOWN" "LAN" "WLAN" "GPRS" "UMTS" "EVDO" "CDMA2000" "HSDPA" "WIMAX" "BLUETOOTH" "EDGE" "CDMA" "IDEN" "LTE" "EHRPD" "HSPAPLUS", Default="LAN", Value = "LAN"
+SocketRecvLimit                = Type=int, Min=0.000000, Max=1000000.000000, Default="0", Value = "0"
+SocketSendLimit                = Type=int, Min=0.000000, Max=1000000.000000, Default="0", Value = "0"
+SoundEnabled                   = Type=bool, Default="true", Value = "true"
+SoundRecordEnabled             = Type=bool, Default="true", Value = "true"
+SoundSampleRate                = Type=int, Allowed="8192" "11025" "16000" "22050" "44100", Default="22050", Value = "22050"
+SoundStereo                    = Type=bool, Default="true", Value = "true"
+SoundVolumeDefault             = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"
+SurfaceDisableWhenGLIsActive   = Type=bool, Default="false", Value = "false"
+SurfaceDoubleBuffer            = Type=bool, Default="false", Value = "false"
+SurfaceHeight                  = Type=int, Min=128.000000, Max=4096.000000, Default="480", Value = "640"
+SurfacePitch                   = Type=int, Min=0.000000, Max=8192.000000, Default="0", Value = "0"
+SurfacePixelType               = Type=string, Allowed="RGB444" "RGB555" "RGB565" "RGB666" "RGB888" "BGR444" "BGR555" "BGR565" "BGR666" "BGR888", Default="RGB565", Value = "RGB565"
+SurfacePredefinedResolution    = Type=string, Allowed="176x200" "176x208" "240x320 (QVGA Portrait)" "240x400" "320x240 (QVGA Landscape)" "320x400" "320x480 (iPhone Portrait)" "400x240" "480x320 (iPhone Landscape)" "360x640 (qHD Portrait)" "640x360 (qHD Landscape)" "480x640 (VGA Portrait)" "480x800 (WVGA Portrait)" "640x480 (VGA Landscape)" "800x400" "800x480 (WVGA Landscape)" "640x960 (iPhone 4 Portrait)" "960x640 (iPhone 4/4S Landscape)" "640x1136 (iPhone 5/5C/5S Portrait)" "1136x640 (iPhone 5/5C/5S Landscape)" "750x1334 (iPhone 6 Portrait)" "1334x750 (iPhone 6 Landscape)" "1080x1920 (iPhone 6 Plus Portrait)" "1920x1080 (iPhone 6 Plus Landscape)" "1024x600 (Playbook Landscape)" "600x1024 (Playbook Portrait)" "768x1024 (iPad Portrait)" "1024x768 (iPad Landscape)" "2048x1536 (iPad Retina Landscape)" "1536x2048 (iPad Retina Portrait)", Default="320x480 (iPhone Portrait)", Value = "176x200"
+SurfaceRotation                = Type=string, Allowed="Rot0" "Rot90" "Rot180" "Rot270", Default="Rot0", Value = "Rot0"
+SurfaceUnalign                 = Type=bool, Default="true", Value = "true"
+SurfaceUseMultiBuffers         = Type=bool, Default="true", Value = "true"
+SurfaceWidth                   = Type=int, Min=128.000000, Max=4096.000000, Default="320", Value = "960"
+SymbianSoundLatency            = Type=int, Min=20.000000, Max=1400.000000, Default="120", Value = "120"
+ThreadEnabled                  = Type=bool, Default="true", Value = "true"
+TimerAccuracy                  = Type=int, Min=0.000000, Max=1000.000000, Default="0", Value = "0"
+TimerHiRes                     = Type=bool, Default="false", Value = "false"
+TimerLocaltimeOffsetHours      = Type=string, Allowed="-12" "-11" "-10" "-9" "-8" "-7" "-6" "-5" "-4" "-3" "-2" "-1" "0" "+1" "+2" "+3" "+4" "+5" "+6" "+7" "+8" "+9" "+10" "+11" "+12" "+13" "SYSTEM", Default="SYSTEM", Value = "SYSTEM"
+VibraEnabled                   = Type=bool, Default="true", Value = "true"
+Video3GPP                      = Type=bool, Default="false", Value = "true"
+VideoJPEG                      = Type=bool, Default="true", Value = "true"
+VideoMPEG4                     = Type=bool, Default="true", Value = "true"
+VideoVolumeDefault             = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"

+ 109 - 0
example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/big.fnt

@@ -0,0 +1,109 @@
+<?xml version="1.0" ?><font>
+  <info aa="1" bold="1" charset="" face="Arial" italic="0" outline="0" padding="0,0,0,0" size="-26" smooth="1" spacing="1,1" stretchH="100" unicode="1"/>
+  <common alphaChnl="0" base="24" blueChnl="4" greenChnl="4" lineHeight="30" packed="0" pages="1" redChnl="4" scaleH="128" scaleW="512"/>
+  <pages>
+    <page file="big_0.png" id="0"/>
+  </pages>
+  <chars count="100">
+    <char chnl="15" height="1" id="32" page="0" width="3" x="98" xadvance="7" xoffset="-1" y="23" yoffset="29"/>
+    <char chnl="15" height="19" id="33" page="0" width="6" x="30" xadvance="8" xoffset="1" y="46" yoffset="5"/>
+    <char chnl="15" height="7" id="34" page="0" width="11" x="376" xadvance="12" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="19" id="35" page="0" width="16" x="108" xadvance="14" xoffset="-1" y="23" yoffset="5"/>
+    <char chnl="15" height="22" id="36" page="0" width="14" x="98" xadvance="14" xoffset="0" y="0" yoffset="4"/>
+    <char chnl="15" height="20" id="37" page="0" width="23" x="134" xadvance="24" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="38" page="0" width="19" x="323" xadvance="19" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="7" id="39" page="0" width="6" x="388" xadvance="6" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="24" id="40" page="0" width="7" x="76" xadvance="9" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="24" id="41" page="0" width="7" x="84" xadvance="9" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="9" id="42" page="0" width="10" x="348" xadvance="10" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="14" id="43" page="0" width="15" x="119" xadvance="15" xoffset="0" y="43" yoffset="7"/>
+    <char chnl="15" height="8" id="44" page="0" width="5" x="370" xadvance="7" xoffset="1" y="40" yoffset="20"/>
+    <char chnl="15" height="4" id="45" page="0" width="8" x="411" xadvance="9" xoffset="1" y="40" yoffset="15"/>
+    <char chnl="15" height="4" id="46" page="0" width="5" x="436" xadvance="7" xoffset="1" y="40" yoffset="20"/>
+    <char chnl="15" height="19" id="47" page="0" width="9" x="0" xadvance="7" xoffset="-1" y="46" yoffset="5"/>
+    <char chnl="15" height="19" id="48" page="0" width="14" x="424" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="49" page="0" width="10" x="493" xadvance="14" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="50" page="0" width="14" x="409" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="51" page="0" width="14" x="379" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="52" page="0" width="14" x="364" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="53" page="0" width="14" x="319" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="54" page="0" width="14" x="349" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="55" page="0" width="14" x="334" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="56" page="0" width="14" x="394" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="57" page="0" width="14" x="304" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="14" id="58" page="0" width="6" x="311" xadvance="10" xoffset="2" y="40" yoffset="10"/>
+    <char chnl="15" height="18" id="59" page="0" width="6" x="49" xadvance="10" xoffset="2" y="45" yoffset="10"/>
+    <char chnl="15" height="14" id="60" page="0" width="14" x="271" xadvance="15" xoffset="0" y="40" yoffset="8"/>
+    <char chnl="15" height="10" id="61" page="0" width="15" x="318" xadvance="15" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="62" page="0" width="14" x="211" xadvance="15" xoffset="0" y="40" yoffset="8"/>
+    <char chnl="15" height="19" id="63" page="0" width="15" x="240" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="25" id="64" page="0" width="25" x="0" xadvance="25" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="65" page="0" width="20" x="281" xadvance="19" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="66" page="0" width="18" x="402" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="67" page="0" width="18" x="383" xadvance="19" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="68" page="0" width="18" x="421" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="69" page="0" width="15" x="224" xadvance="17" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="70" page="0" width="14" x="497" xadvance="16" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="71" page="0" width="19" x="343" xadvance="20" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="72" page="0" width="17" x="18" xadvance="19" xoffset="1" y="26" yoffset="5"/>
+    <char chnl="15" height="19" id="73" page="0" width="6" x="504" xadvance="8" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="74" page="0" width="13" x="454" xadvance="14" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="75" page="0" width="18" x="459" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="76" page="0" width="15" x="256" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="77" page="0" width="21" x="259" xadvance="23" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="78" page="0" width="17" x="72" xadvance="19" xoffset="1" y="25" yoffset="5"/>
+    <char chnl="15" height="19" id="79" page="0" width="20" x="302" xadvance="20" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="80" page="0" width="17" x="90" xadvance="18" xoffset="1" y="25" yoffset="5"/>
+    <char chnl="15" height="21" id="81" page="0" width="20" x="113" xadvance="20" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="82" page="0" width="18" x="440" xadvance="19" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="83" page="0" width="17" x="36" xadvance="17" xoffset="0" y="25" yoffset="5"/>
+    <char chnl="15" height="19" id="84" page="0" width="16" x="125" xadvance="16" xoffset="1" y="22" yoffset="5"/>
+    <char chnl="15" height="19" id="85" page="0" width="17" x="0" xadvance="19" xoffset="1" y="26" yoffset="5"/>
+    <char chnl="15" height="19" id="86" page="0" width="19" x="363" xadvance="17" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="87" page="0" width="27" x="187" xadvance="25" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="88" page="0" width="17" x="54" xadvance="17" xoffset="0" y="25" yoffset="5"/>
+    <char chnl="15" height="19" id="89" page="0" width="18" x="478" xadvance="18" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="90" page="0" width="16" x="159" xadvance="16" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="24" id="91" page="0" width="8" x="67" xadvance="9" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="92" page="0" width="9" x="10" xadvance="7" xoffset="-1" y="46" yoffset="5"/>
+    <char chnl="15" height="24" id="93" page="0" width="8" x="58" xadvance="9" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="10" id="94" page="0" width="13" x="334" xadvance="15" xoffset="1" y="40" yoffset="5"/>
+    <char chnl="15" height="3" id="95" page="0" width="16" x="442" xadvance="14" xoffset="-1" y="40" yoffset="26"/>
+    <char chnl="15" height="4" id="96" page="0" width="7" x="420" xadvance="9" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="14" id="97" page="0" width="14" x="151" xadvance="14" xoffset="0" y="41" yoffset="10"/>
+    <char chnl="15" height="19" id="98" page="0" width="15" x="208" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="14" id="99" page="0" width="14" x="166" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="100" page="0" width="15" x="192" xadvance="16" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="14" id="101" page="0" width="14" x="181" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="102" page="0" width="10" x="482" xadvance="9" xoffset="0" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="103" page="0" width="15" x="176" xadvance="16" xoffset="0" y="20" yoffset="10"/>
+    <char chnl="15" height="19" id="104" page="0" width="14" x="439" xadvance="16" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="105" page="0" width="5" x="37" xadvance="8" xoffset="2" y="45" yoffset="5"/>
+    <char chnl="15" height="24" id="106" page="0" width="9" x="48" xadvance="8" xoffset="-2" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="107" page="0" width="13" x="468" xadvance="14" xoffset="1" y="20" yoffset="5"/>
+    <char chnl="15" height="19" id="108" page="0" width="5" x="43" xadvance="8" xoffset="2" y="45" yoffset="5"/>
+    <char chnl="15" height="14" id="109" page="0" width="22" x="79" xadvance="24" xoffset="1" y="45" yoffset="10"/>
+    <char chnl="15" height="14" id="110" page="0" width="14" x="196" xadvance="16" xoffset="1" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="111" page="0" width="16" x="102" xadvance="16" xoffset="0" y="45" yoffset="10"/>
+    <char chnl="15" height="19" id="112" page="0" width="15" x="288" xadvance="16" xoffset="1" y="20" yoffset="10"/>
+    <char chnl="15" height="19" id="113" page="0" width="15" x="272" xadvance="16" xoffset="0" y="20" yoffset="10"/>
+    <char chnl="15" height="14" id="114" page="0" width="10" x="300" xadvance="10" xoffset="1" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="115" page="0" width="14" x="226" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="116" page="0" width="9" x="20" xadvance="9" xoffset="0" y="46" yoffset="5"/>
+    <char chnl="15" height="14" id="117" page="0" width="14" x="241" xadvance="16" xoffset="1" y="40" yoffset="10"/>
+    <char chnl="15" height="14" id="118" page="0" width="15" x="135" xadvance="15" xoffset="0" y="42" yoffset="10"/>
+    <char chnl="15" height="14" id="119" page="0" width="22" x="56" xadvance="21" xoffset="0" y="45" yoffset="10"/>
+    <char chnl="15" height="14" id="120" page="0" width="14" x="256" xadvance="14" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="19" id="121" page="0" width="16" x="142" xadvance="15" xoffset="-1" y="21" yoffset="10"/>
+    <char chnl="15" height="14" id="122" page="0" width="13" x="286" xadvance="13" xoffset="0" y="40" yoffset="10"/>
+    <char chnl="15" height="24" id="123" page="0" width="10" x="37" xadvance="10" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="24" id="124" page="0" width="5" x="92" xadvance="7" xoffset="1" y="0" yoffset="5"/>
+    <char chnl="15" height="24" id="125" page="0" width="10" x="26" xadvance="10" xoffset="0" y="0" yoffset="5"/>
+    <char chnl="15" height="6" id="126" page="0" width="15" x="395" xadvance="15" xoffset="0" y="40" yoffset="11"/>
+    <char chnl="15" height="19" id="169" page="0" width="21" x="237" xadvance="19" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="19" id="174" page="0" width="21" x="215" xadvance="19" xoffset="-1" y="0" yoffset="5"/>
+    <char chnl="15" height="8" id="176" page="0" width="10" x="359" xadvance="10" xoffset="0" y="40" yoffset="5"/>
+    <char chnl="15" height="4" id="180" page="0" width="7" x="428" xadvance="9" xoffset="2" y="40" yoffset="5"/>
+    <char chnl="15" height="19" id="8470" page="0" width="28" x="158" xadvance="29" xoffset="1" y="0" yoffset="5"/>
+  </chars>
+</font>

+ 1 - 0
example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/big_0.png

@@ -0,0 +1 @@
+‰PNG

+ 109 - 0
example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/main.fnt

@@ -0,0 +1,109 @@
+<?xml version="1.0" ?><font>
+  <info aa="1" bold="1" charset="" face="Arial" italic="0" outline="0" padding="0,0,0,0" size="-16" smooth="1" spacing="1,1" stretchH="100" unicode="1"/>
+  <common alphaChnl="0" base="15" blueChnl="4" greenChnl="4" lineHeight="19" packed="0" pages="1" redChnl="4" scaleH="64" scaleW="512"/>
+  <pages>
+    <page file="main_0.png" id="0"/>
+  </pages>
+  <chars count="100">
+    <char chnl="15" height="1" id="32" page="0" width="3" x="495" xadvance="4" xoffset="-1" y="13" yoffset="18"/>
+    <char chnl="15" height="12" id="33" page="0" width="4" x="205" xadvance="4" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="4" id="34" page="0" width="8" x="430" xadvance="8" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="35" page="0" width="11" x="404" xadvance="9" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="14" id="36" page="0" width="9" x="68" xadvance="9" xoffset="0" y="0" yoffset="2"/>
+    <char chnl="15" height="12" id="37" page="0" width="15" x="127" xadvance="16" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="38" page="0" width="12" x="201" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="4" id="39" page="0" width="4" x="446" xadvance="4" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="15" id="40" page="0" width="5" x="51" xadvance="5" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="15" id="41" page="0" width="5" x="57" xadvance="5" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="4" id="42" page="0" width="6" x="439" xadvance="6" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="8" id="43" page="0" width="10" x="387" xadvance="9" xoffset="0" y="13" yoffset="5"/>
+    <char chnl="15" height="5" id="44" page="0" width="4" x="425" xadvance="4" xoffset="0" y="13" yoffset="13"/>
+    <char chnl="15" height="2" id="45" page="0" width="6" x="473" xadvance="5" xoffset="0" y="13" yoffset="10"/>
+    <char chnl="15" height="2" id="46" page="0" width="4" x="485" xadvance="4" xoffset="0" y="13" yoffset="13"/>
+    <char chnl="15" height="12" id="47" page="0" width="6" x="188" xadvance="4" xoffset="-1" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="48" page="0" width="9" x="95" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="49" page="0" width="7" x="164" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="50" page="0" width="9" x="105" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="51" page="0" width="9" x="115" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="52" page="0" width="9" x="125" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="53" page="0" width="9" x="135" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="54" page="0" width="9" x="145" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="55" page="0" width="9" x="55" xadvance="9" xoffset="0" y="16" yoffset="3"/>
+    <char chnl="15" height="12" id="56" page="0" width="9" x="85" xadvance="9" xoffset="0" y="14" yoffset="3"/>
+    <char chnl="15" height="12" id="57" page="0" width="9" x="65" xadvance="9" xoffset="0" y="16" yoffset="3"/>
+    <char chnl="15" height="9" id="58" page="0" width="4" x="382" xadvance="6" xoffset="1" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="59" page="0" width="4" x="215" xadvance="6" xoffset="1" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="60" page="0" width="9" x="354" xadvance="9" xoffset="0" y="13" yoffset="5"/>
+    <char chnl="15" height="5" id="61" page="0" width="9" x="408" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="62" page="0" width="9" x="344" xadvance="9" xoffset="0" y="13" yoffset="5"/>
+    <char chnl="15" height="12" id="63" page="0" width="10" x="472" xadvance="10" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="16" id="64" page="0" width="16" x="0" xadvance="16" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="65" page="0" width="12" x="253" xadvance="11" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="66" page="0" width="12" x="240" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="67" page="0" width="12" x="227" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="68" page="0" width="12" x="292" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="69" page="0" width="11" x="416" xadvance="11" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="70" page="0" width="10" x="0" xadvance="10" xoffset="0" y="17" yoffset="3"/>
+    <char chnl="15" height="12" id="71" page="0" width="12" x="318" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="72" page="0" width="12" x="331" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="73" page="0" width="4" x="195" xadvance="4" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="74" page="0" width="8" x="155" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="75" page="0" width="12" x="279" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="76" page="0" width="10" x="428" xadvance="10" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="77" page="0" width="13" x="187" xadvance="13" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="78" page="0" width="11" x="344" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="79" page="0" width="12" x="214" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="80" page="0" width="11" x="356" xadvance="11" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="13" id="81" page="0" width="12" x="78" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="82" page="0" width="12" x="305" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="83" page="0" width="10" x="461" xadvance="11" xoffset="1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="84" page="0" width="10" x="483" xadvance="10" xoffset="1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="85" page="0" width="11" x="392" xadvance="12" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="86" page="0" width="13" x="173" xadvance="11" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="87" page="0" width="17" x="109" xadvance="15" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="88" page="0" width="11" x="380" xadvance="11" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="89" page="0" width="12" x="266" xadvance="10" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="90" page="0" width="11" x="368" xadvance="9" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="15" id="91" page="0" width="6" x="24" xadvance="5" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="92" page="0" width="6" x="505" xadvance="4" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="15" id="93" page="0" width="6" x="17" xadvance="5" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="6" id="94" page="0" width="9" x="398" xadvance="9" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="2" id="95" page="0" width="11" x="461" xadvance="9" xoffset="-1" y="13" yoffset="16"/>
+    <char chnl="15" height="2" id="96" page="0" width="4" x="480" xadvance="5" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="9" id="97" page="0" width="9" x="284" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="98" page="0" width="10" x="439" xadvance="10" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="9" id="99" page="0" width="9" x="294" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="100" page="0" width="10" x="450" xadvance="10" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="9" id="101" page="0" width="9" x="364" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="102" page="0" width="7" x="180" xadvance="5" xoffset="-1" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="103" page="0" width="10" x="11" xadvance="10" xoffset="0" y="17" yoffset="6"/>
+    <char chnl="15" height="12" id="104" page="0" width="10" x="22" xadvance="10" xoffset="0" y="16" yoffset="3"/>
+    <char chnl="15" height="12" id="105" page="0" width="4" x="200" xadvance="4" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="15" id="106" page="0" width="5" x="45" xadvance="4" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="107" page="0" width="9" x="75" xadvance="9" xoffset="0" y="15" yoffset="3"/>
+    <char chnl="15" height="12" id="108" page="0" width="4" x="210" xadvance="4" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="9" id="109" page="0" width="14" x="236" xadvance="14" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="110" page="0" width="10" x="262" xadvance="10" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="111" page="0" width="10" x="273" xadvance="10" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="112" page="0" width="10" x="33" xadvance="10" xoffset="0" y="16" yoffset="6"/>
+    <char chnl="15" height="12" id="113" page="0" width="10" x="44" xadvance="10" xoffset="0" y="16" yoffset="6"/>
+    <char chnl="15" height="9" id="114" page="0" width="7" x="374" xadvance="6" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="115" page="0" width="9" x="304" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="116" page="0" width="7" x="172" xadvance="5" xoffset="-1" y="13" yoffset="3"/>
+    <char chnl="15" height="9" id="117" page="0" width="10" x="251" xadvance="10" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="118" page="0" width="9" x="314" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="119" page="0" width="15" x="220" xadvance="13" xoffset="-1" y="13" yoffset="6"/>
+    <char chnl="15" height="9" id="120" page="0" width="9" x="324" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="12" id="121" page="0" width="10" x="494" xadvance="9" xoffset="-1" y="0" yoffset="6"/>
+    <char chnl="15" height="9" id="122" page="0" width="9" x="334" xadvance="9" xoffset="0" y="13" yoffset="6"/>
+    <char chnl="15" height="15" id="123" page="0" width="6" x="31" xadvance="6" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="15" id="124" page="0" width="4" x="63" xadvance="4" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="15" id="125" page="0" width="6" x="38" xadvance="6" xoffset="0" y="0" yoffset="3"/>
+    <char chnl="15" height="3" id="126" page="0" width="9" x="451" xadvance="9" xoffset="0" y="13" yoffset="8"/>
+    <char chnl="15" height="12" id="169" page="0" width="14" x="158" xadvance="12" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="12" id="174" page="0" width="14" x="143" xadvance="12" xoffset="-1" y="0" yoffset="3"/>
+    <char chnl="15" height="5" id="176" page="0" width="6" x="418" xadvance="6" xoffset="0" y="13" yoffset="3"/>
+    <char chnl="15" height="2" id="180" page="0" width="4" x="490" xadvance="5" xoffset="1" y="13" yoffset="3"/>
+    <char chnl="15" height="12" id="8470" page="0" width="17" x="91" xadvance="18" xoffset="1" y="0" yoffset="3"/>
+  </chars>
+</font>

+ 1 - 0
example/HelloWorldAdmob/data/ext/fonts.xml.ox/bmfc_font/main_0.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/data/ext/fonts.xml.ox/meta.xml

@@ -0,0 +1 @@
+<resources version="2"><set/><bmfc_font sf="1.0" size="16"/><bmfc_font sf="1.0" size="26"/></resources>

+ 1 - 0
example/HelloWorldAdmob/data/ext/res_ui.xml.ox/atlas/1_0.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/data/ext/res_ui.xml.ox/meta.xml

@@ -0,0 +1 @@
+<resources version="2"><set/><atlas><atlas file="1_0.png" format="r8g8b8a8" h="512" w="256"/><image fs="1,1,128,128,1.000000" ht="0,128,32,32">0,2,251,12,21,107,58;</image><image fs="1,1,150,107,1.000000" ht="128,208,37,26">0,2,140,0,0,150,107;</image><image fs="3,1,166,44,1.000000">0,2,48,1,1,164,42;0,2,2,1,1,165,42;0,2,94,2,2,164,42;</image><ht len="448">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAMA/AAD8fwAA/v8BQP//A4D//wfAP/AD4A/AD+ADgB/gA4Af+AGAH/gBgD/4AQA/+AEAHsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAIB/AAAAAAAA4P8BAAAAAADg/wEAAAAAAOD/AQAAAAAA8P8DAAAAAADw8wMAAAAAAPj/AQAAAAAA/P///wcAAAD/////DwAAAP////8PAAAA/////w8AAAD/H///DwAAAP+///8PAAAA/3///w8AAAD8////DwAAAPz///8PAAAA/P///w8AAAD8/P//BwAAAPz8//8PAAAA/P///x8AAAD8////HwAAAPz///8fAAAA+P///x8AAADwv///DwAAAMAf+AMAAAAA</ht></atlas></resources>

+ 239 - 0
example/HelloWorldAdmob/data/fonts/main.fnt

@@ -0,0 +1,239 @@
+info face="Easterbuns" size=24 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=4,3,4,3 spacing=-7,-8
+common lineHeight=30 base=22 scaleW=256 scaleH=512 pages=1 packed=0
+page id=0 file="main_0.png"
+chars count=234
+char id=32   x=0     y=0     width=0     height=0     xoffset=0     yoffset=22    xadvance=4     page=0  chnl=0 
+char id=960   x=0     y=0     width=25     height=34     xoffset=-4     yoffset=-3    xadvance=16     page=0  chnl=0 
+char id=255   x=25     y=0     width=19     height=33     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=254   x=44     y=0     width=17     height=33     xoffset=-3     yoffset=1    xadvance=10     page=0  chnl=0 
+char id=253   x=61     y=0     width=19     height=33     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=8747   x=80     y=0     width=19     height=32     xoffset=-6     yoffset=0    xadvance=6     page=0  chnl=0 
+char id=381   x=99     y=0     width=21     height=32     xoffset=-3     yoffset=-4    xadvance=13     page=0  chnl=0 
+char id=352   x=120     y=0     width=19     height=32     xoffset=-3     yoffset=-4    xadvance=11     page=0  chnl=0 
+char id=221   x=139     y=0     width=21     height=32     xoffset=-3     yoffset=-3    xadvance=13     page=0  chnl=0 
+char id=216   x=160     y=0     width=23     height=32     xoffset=-3     yoffset=-1    xadvance=15     page=0  chnl=0 
+char id=210   x=183     y=0     width=23     height=32     xoffset=-3     yoffset=-4    xadvance=15     page=0  chnl=0 
+char id=205   x=206     y=0     width=17     height=32     xoffset=-3     yoffset=-5    xadvance=9     page=0  chnl=0 
+char id=197   x=223     y=0     width=21     height=32     xoffset=-3     yoffset=-4    xadvance=12     page=0  chnl=0 
+char id=106   x=0     y=34     width=18     height=32     xoffset=-6     yoffset=2    xadvance=4     page=0  chnl=0 
+char id=402   x=18     y=34     width=17     height=31     xoffset=-4     yoffset=1    xadvance=8     page=0  chnl=0 
+char id=376   x=35     y=34     width=21     height=31     xoffset=-3     yoffset=-2    xadvance=13     page=0  chnl=0 
+char id=219   x=56     y=34     width=21     height=31     xoffset=-3     yoffset=-3    xadvance=13     page=0  chnl=0 
+char id=218   x=77     y=34     width=21     height=31     xoffset=-3     yoffset=-3    xadvance=13     page=0  chnl=0 
+char id=217   x=98     y=34     width=21     height=31     xoffset=-3     yoffset=-3    xadvance=13     page=0  chnl=0 
+char id=213   x=119     y=34     width=23     height=31     xoffset=-3     yoffset=-3    xadvance=15     page=0  chnl=0 
+char id=212   x=142     y=34     width=23     height=31     xoffset=-3     yoffset=-3    xadvance=15     page=0  chnl=0 
+char id=211   x=165     y=34     width=23     height=31     xoffset=-3     yoffset=-3    xadvance=15     page=0  chnl=0 
+char id=206   x=188     y=34     width=17     height=31     xoffset=-3     yoffset=-4    xadvance=9     page=0  chnl=0 
+char id=204   x=205     y=34     width=17     height=31     xoffset=-3     yoffset=-4    xadvance=9     page=0  chnl=0 
+char id=199   x=222     y=34     width=20     height=31     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=194   x=0     y=66     width=21     height=31     xoffset=-3     yoffset=-3    xadvance=12     page=0  chnl=0 
+char id=193   x=21     y=66     width=21     height=31     xoffset=-3     yoffset=-3    xadvance=12     page=0  chnl=0 
+char id=192   x=42     y=66     width=21     height=31     xoffset=-3     yoffset=-3    xadvance=12     page=0  chnl=0 
+char id=191   x=63     y=66     width=18     height=31     xoffset=-3     yoffset=-1    xadvance=9     page=0  chnl=0 
+char id=214   x=81     y=66     width=23     height=30     xoffset=-2     yoffset=-2    xadvance=15     page=0  chnl=0 
+char id=209   x=104     y=66     width=21     height=30     xoffset=-3     yoffset=-3    xadvance=14     page=0  chnl=0 
+char id=207   x=125     y=66     width=17     height=30     xoffset=-3     yoffset=-3    xadvance=9     page=0  chnl=0 
+char id=202   x=142     y=66     width=18     height=30     xoffset=-3     yoffset=-3    xadvance=10     page=0  chnl=0 
+char id=200   x=160     y=66     width=18     height=30     xoffset=-3     yoffset=-3    xadvance=10     page=0  chnl=0 
+char id=195   x=178     y=66     width=21     height=30     xoffset=-3     yoffset=-2    xadvance=12     page=0  chnl=0 
+char id=81   x=199     y=66     width=24     height=30     xoffset=-3     yoffset=1    xadvance=17     page=0  chnl=0 
+char id=256   x=223     y=66     width=20     height=29     xoffset=-2     yoffset=-2    xadvance=13     page=0  chnl=0 
+char id=229   x=0     y=97     width=17     height=29     xoffset=-3     yoffset=-1    xadvance=9     page=0  chnl=0 
+char id=223   x=17     y=97     width=20     height=29     xoffset=-4     yoffset=2    xadvance=10     page=0  chnl=0 
+char id=220   x=37     y=97     width=21     height=29     xoffset=-3     yoffset=-1    xadvance=13     page=0  chnl=0 
+char id=201   x=58     y=97     width=18     height=29     xoffset=-3     yoffset=-2    xadvance=10     page=0  chnl=0 
+char id=196   x=76     y=97     width=21     height=29     xoffset=-3     yoffset=-1    xadvance=12     page=0  chnl=0 
+char id=161   x=97     y=97     width=14     height=29     xoffset=-3     yoffset=0    xadvance=6     page=0  chnl=0 
+char id=36   x=111     y=97     width=20     height=29     xoffset=-3     yoffset=0    xadvance=12     page=0  chnl=0 
+char id=64258   x=131     y=97     width=20     height=28     xoffset=-3     yoffset=0    xadvance=12     page=0  chnl=0 
+char id=353   x=151     y=97     width=17     height=28     xoffset=-3     yoffset=0    xadvance=9     page=0  chnl=0 
+char id=251   x=168     y=97     width=17     height=28     xoffset=-3     yoffset=0    xadvance=11     page=0  chnl=0 
+char id=234   x=185     y=97     width=17     height=28     xoffset=-3     yoffset=0    xadvance=9     page=0  chnl=0 
+char id=233   x=202     y=97     width=17     height=28     xoffset=-3     yoffset=0    xadvance=9     page=0  chnl=0 
+char id=232   x=219     y=97     width=17     height=28     xoffset=-3     yoffset=0    xadvance=9     page=0  chnl=0 
+char id=226   x=236     y=97     width=17     height=28     xoffset=-3     yoffset=0    xadvance=9     page=0  chnl=0 
+char id=225   x=0     y=126     width=17     height=28     xoffset=-3     yoffset=0    xadvance=9     page=0  chnl=0 
+char id=224   x=17     y=126     width=17     height=28     xoffset=-3     yoffset=0    xadvance=10     page=0  chnl=0 
+char id=203   x=34     y=126     width=18     height=28     xoffset=-3     yoffset=-1    xadvance=10     page=0  chnl=0 
+char id=166   x=52     y=126     width=11     height=28     xoffset=-2     yoffset=0    xadvance=4     page=0  chnl=0 
+char id=113   x=63     y=126     width=26     height=28     xoffset=-3     yoffset=6    xadvance=11     page=0  chnl=0 
+char id=104   x=89     y=126     width=18     height=28     xoffset=-3     yoffset=0    xadvance=11     page=0  chnl=0 
+char id=103   x=107     y=126     width=19     height=28     xoffset=-3     yoffset=6    xadvance=11     page=0  chnl=0 
+char id=41   x=126     y=126     width=14     height=28     xoffset=-3     yoffset=1    xadvance=6     page=0  chnl=0 
+char id=112   x=140     y=126     width=18     height=28     xoffset=-3     yoffset=6    xadvance=10     page=0  chnl=0 
+char id=38   x=158     y=126     width=22     height=28     xoffset=-4     yoffset=0    xadvance=13     page=0  chnl=0 
+char id=64257   x=180     y=126     width=20     height=27     xoffset=-3     yoffset=0    xadvance=12     page=0  chnl=0 
+char id=8730   x=200     y=126     width=21     height=27     xoffset=-3     yoffset=0    xadvance=13     page=0  chnl=0 
+char id=8721   x=221     y=126     width=19     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=8706   x=0     y=154     width=19     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=8225   x=19     y=154     width=18     height=27     xoffset=-4     yoffset=0    xadvance=8     page=0  chnl=0 
+char id=937   x=37     y=154     width=25     height=27     xoffset=-2     yoffset=0    xadvance=19     page=0  chnl=0 
+char id=382   x=62     y=154     width=18     height=27     xoffset=-3     yoffset=0    xadvance=10     page=0  chnl=0 
+char id=322   x=80     y=154     width=17     height=27     xoffset=-4     yoffset=0    xadvance=6     page=0  chnl=0 
+char id=250   x=97     y=154     width=17     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=249   x=114     y=154     width=17     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=245   x=131     y=154     width=19     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=244   x=150     y=154     width=19     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=242   x=169     y=154     width=19     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=240   x=188     y=154     width=19     height=27     xoffset=-3     yoffset=0    xadvance=11     page=0  chnl=0 
+char id=231   x=207     y=154     width=17     height=27     xoffset=-3     yoffset=5    xadvance=9     page=0  chnl=0 
+char id=228   x=224     y=154     width=17     height=27     xoffset=-3     yoffset=1    xadvance=10     page=0  chnl=0 
+char id=227   x=0     y=181     width=18     height=27     xoffset=-3     yoffset=1    xadvance=9     page=0  chnl=0 
+char id=181   x=18     y=181     width=20     height=27     xoffset=-3     yoffset=6    xadvance=12     page=0  chnl=0 
+char id=167   x=38     y=181     width=18     height=27     xoffset=-3     yoffset=0    xadvance=11     page=0  chnl=0 
+char id=124   x=56     y=181     width=11     height=27     xoffset=-3     yoffset=1    xadvance=3     page=0  chnl=0 
+char id=123   x=67     y=181     width=15     height=27     xoffset=-3     yoffset=2    xadvance=6     page=0  chnl=0 
+char id=121   x=82     y=181     width=19     height=27     xoffset=-3     yoffset=7    xadvance=11     page=0  chnl=0 
+char id=102   x=101     y=181     width=17     height=27     xoffset=-3     yoffset=0    xadvance=8     page=0  chnl=0 
+char id=100   x=118     y=181     width=19     height=27     xoffset=-4     yoffset=0    xadvance=10     page=0  chnl=0 
+char id=98   x=137     y=181     width=19     height=27     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=93   x=156     y=181     width=13     height=27     xoffset=-3     yoffset=1    xadvance=6     page=0  chnl=0 
+char id=91   x=169     y=181     width=14     height=27     xoffset=-3     yoffset=1    xadvance=6     page=0  chnl=0 
+char id=33   x=183     y=181     width=13     height=27     xoffset=-3     yoffset=1    xadvance=6     page=0  chnl=0 
+char id=116   x=196     y=181     width=17     height=27     xoffset=-4     yoffset=0    xadvance=8     page=0  chnl=0 
+char id=108   x=213     y=181     width=12     height=27     xoffset=-3     yoffset=0    xadvance=4     page=0  chnl=0 
+char id=8260   x=225     y=181     width=19     height=26     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=8224   x=0     y=208     width=18     height=26     xoffset=-3     yoffset=-1    xadvance=11     page=0  chnl=0 
+char id=916   x=18     y=208     width=23     height=26     xoffset=-3     yoffset=1    xadvance=15     page=0  chnl=0 
+char id=338   x=41     y=208     width=29     height=26     xoffset=-2     yoffset=2    xadvance=22     page=0  chnl=0 
+char id=243   x=70     y=208     width=19     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=241   x=89     y=208     width=19     height=26     xoffset=-4     yoffset=1    xadvance=10     page=0  chnl=0 
+char id=235   x=108     y=208     width=17     height=26     xoffset=-3     yoffset=2    xadvance=9     page=0  chnl=0 
+char id=208   x=125     y=208     width=23     height=26     xoffset=-5     yoffset=1    xadvance=13     page=0  chnl=0 
+char id=198   x=148     y=208     width=26     height=26     xoffset=-3     yoffset=2    xadvance=19     page=0  chnl=0 
+char id=190   x=174     y=208     width=28     height=26     xoffset=-3     yoffset=3    xadvance=20     page=0  chnl=0 
+char id=164   x=202     y=208     width=24     height=26     xoffset=-2     yoffset=1    xadvance=19     page=0  chnl=0 
+char id=163   x=226     y=208     width=20     height=26     xoffset=-3     yoffset=1    xadvance=13     page=0  chnl=0 
+char id=162   x=0     y=234     width=18     height=26     xoffset=-3     yoffset=1    xadvance=9     page=0  chnl=0 
+char id=125   x=18     y=234     width=15     height=26     xoffset=-3     yoffset=1    xadvance=6     page=0  chnl=0 
+char id=107   x=33     y=234     width=18     height=26     xoffset=-3     yoffset=1    xadvance=9     page=0  chnl=0 
+char id=92   x=51     y=234     width=19     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=90   x=70     y=234     width=21     height=26     xoffset=-3     yoffset=2    xadvance=13     page=0  chnl=0 
+char id=89   x=91     y=234     width=21     height=26     xoffset=-3     yoffset=3    xadvance=13     page=0  chnl=0 
+char id=88   x=112     y=234     width=23     height=26     xoffset=-3     yoffset=2    xadvance=14     page=0  chnl=0 
+char id=83   x=135     y=234     width=19     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=82   x=154     y=234     width=20     height=26     xoffset=-3     yoffset=1    xadvance=12     page=0  chnl=0 
+char id=80   x=174     y=234     width=20     height=26     xoffset=-3     yoffset=1    xadvance=12     page=0  chnl=0 
+char id=79   x=194     y=234     width=23     height=26     xoffset=-2     yoffset=2    xadvance=15     page=0  chnl=0 
+char id=75   x=217     y=234     width=20     height=26     xoffset=-3     yoffset=2    xadvance=12     page=0  chnl=0 
+char id=74   x=0     y=260     width=19     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=72   x=19     y=260     width=21     height=26     xoffset=-3     yoffset=1    xadvance=13     page=0  chnl=0 
+char id=70   x=40     y=260     width=19     height=26     xoffset=-3     yoffset=2    xadvance=10     page=0  chnl=0 
+char id=68   x=59     y=260     width=20     height=26     xoffset=-3     yoffset=1    xadvance=13     page=0  chnl=0 
+char id=67   x=79     y=260     width=20     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=65   x=99     y=260     width=21     height=26     xoffset=-3     yoffset=2    xadvance=12     page=0  chnl=0 
+char id=64   x=120     y=260     width=21     height=26     xoffset=-3     yoffset=2    xadvance=13     page=0  chnl=0 
+char id=40   x=141     y=260     width=15     height=26     xoffset=-3     yoffset=2    xadvance=7     page=0  chnl=0 
+char id=57   x=156     y=260     width=18     height=26     xoffset=-2     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=54   x=174     y=260     width=18     height=26     xoffset=-3     yoffset=2    xadvance=10     page=0  chnl=0 
+char id=53   x=192     y=260     width=19     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=52   x=211     y=260     width=19     height=26     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=50   x=230     y=260     width=19     height=26     xoffset=-3     yoffset=1    xadvance=11     page=0  chnl=0 
+char id=48   x=0     y=286     width=18     height=26     xoffset=-3     yoffset=2    xadvance=10     page=0  chnl=0 
+char id=105   x=18     y=286     width=13     height=26     xoffset=-3     yoffset=1    xadvance=5     page=0  chnl=0 
+char id=63   x=31     y=286     width=17     height=26     xoffset=-3     yoffset=2    xadvance=9     page=0  chnl=0 
+char id=8364   x=48     y=286     width=23     height=25     xoffset=-4     yoffset=3    xadvance=14     page=0  chnl=0 
+char id=252   x=71     y=286     width=17     height=25     xoffset=-3     yoffset=2    xadvance=11     page=0  chnl=0 
+char id=246   x=88     y=286     width=19     height=25     xoffset=-3     yoffset=3    xadvance=11     page=0  chnl=0 
+char id=238   x=107     y=286     width=16     height=25     xoffset=-4     yoffset=2    xadvance=6     page=0  chnl=0 
+char id=222   x=123     y=286     width=20     height=25     xoffset=-3     yoffset=2    xadvance=12     page=0  chnl=0 
+char id=189   x=143     y=286     width=26     height=25     xoffset=-3     yoffset=3    xadvance=17     page=0  chnl=0 
+char id=188   x=169     y=286     width=25     height=25     xoffset=-3     yoffset=3    xadvance=17     page=0  chnl=0 
+char id=182   x=194     y=286     width=22     height=25     xoffset=-4     yoffset=2    xadvance=13     page=0  chnl=0 
+char id=174   x=216     y=286     width=22     height=25     xoffset=-3     yoffset=2    xadvance=14     page=0  chnl=0 
+char id=169   x=0     y=312     width=22     height=25     xoffset=-3     yoffset=2    xadvance=14     page=0  chnl=0 
+char id=87   x=22     y=312     width=27     height=25     xoffset=-3     yoffset=3    xadvance=18     page=0  chnl=0 
+char id=86   x=49     y=312     width=22     height=25     xoffset=-3     yoffset=2    xadvance=13     page=0  chnl=0 
+char id=85   x=71     y=312     width=21     height=25     xoffset=-3     yoffset=3    xadvance=13     page=0  chnl=0 
+char id=78   x=92     y=312     width=22     height=25     xoffset=-3     yoffset=3    xadvance=14     page=0  chnl=0 
+char id=77   x=114     y=312     width=26     height=25     xoffset=-3     yoffset=2    xadvance=18     page=0  chnl=0 
+char id=73   x=140     y=312     width=17     height=25     xoffset=-3     yoffset=2    xadvance=9     page=0  chnl=0 
+char id=71   x=157     y=312     width=20     height=25     xoffset=-3     yoffset=2    xadvance=13     page=0  chnl=0 
+char id=69   x=177     y=312     width=18     height=25     xoffset=-3     yoffset=2    xadvance=10     page=0  chnl=0 
+char id=66   x=195     y=312     width=20     height=25     xoffset=-3     yoffset=2    xadvance=12     page=0  chnl=0 
+char id=56   x=215     y=312     width=20     height=25     xoffset=-3     yoffset=3    xadvance=12     page=0  chnl=0 
+char id=35   x=0     y=337     width=21     height=25     xoffset=-3     yoffset=1    xadvance=13     page=0  chnl=0 
+char id=49   x=21     y=337     width=15     height=25     xoffset=-3     yoffset=2    xadvance=7     page=0  chnl=0 
+char id=8471   x=36     y=337     width=22     height=24     xoffset=-3     yoffset=2    xadvance=14     page=0  chnl=0 
+char id=8240   x=58     y=337     width=22     height=24     xoffset=-3     yoffset=2    xadvance=14     page=0  chnl=0 
+char id=321   x=80     y=337     width=21     height=24     xoffset=-4     yoffset=3    xadvance=13     page=0  chnl=0 
+char id=248   x=101     y=337     width=19     height=24     xoffset=-3     yoffset=5    xadvance=10     page=0  chnl=0 
+char id=239   x=120     y=337     width=16     height=24     xoffset=-4     yoffset=3    xadvance=5     page=0  chnl=0 
+char id=237   x=136     y=337     width=13     height=24     xoffset=-3     yoffset=3    xadvance=5     page=0  chnl=0 
+char id=236   x=149     y=337     width=14     height=24     xoffset=-4     yoffset=3    xadvance=5     page=0  chnl=0 
+char id=177   x=163     y=337     width=19     height=24     xoffset=-3     yoffset=3    xadvance=11     page=0  chnl=0 
+char id=165   x=182     y=337     width=21     height=24     xoffset=-3     yoffset=3    xadvance=13     page=0  chnl=0 
+char id=84   x=203     y=337     width=21     height=24     xoffset=-3     yoffset=3    xadvance=13     page=0  chnl=0 
+char id=76   x=224     y=337     width=20     height=24     xoffset=-3     yoffset=3    xadvance=12     page=0  chnl=0 
+char id=47   x=0     y=362     width=17     height=24     xoffset=-3     yoffset=3    xadvance=9     page=0  chnl=0 
+char id=37   x=17     y=362     width=19     height=24     xoffset=-3     yoffset=3    xadvance=12     page=0  chnl=0 
+char id=55   x=36     y=362     width=18     height=24     xoffset=-3     yoffset=3    xadvance=10     page=0  chnl=0 
+char id=51   x=54     y=362     width=18     height=24     xoffset=-3     yoffset=3    xadvance=10     page=0  chnl=0 
+char id=109   x=72     y=362     width=22     height=23     xoffset=-2     yoffset=5    xadvance=15     page=0  chnl=0 
+char id=8800   x=94     y=362     width=18     height=22     xoffset=-3     yoffset=6    xadvance=10     page=0  chnl=0 
+char id=8734   x=112     y=362     width=23     height=22     xoffset=-3     yoffset=5    xadvance=15     page=0  chnl=0 
+char id=339   x=135     y=362     width=25     height=22     xoffset=-3     yoffset=6    xadvance=17     page=0  chnl=0 
+char id=247   x=160     y=362     width=18     height=22     xoffset=-3     yoffset=5    xadvance=11     page=0  chnl=0 
+char id=230   x=178     y=362     width=23     height=22     xoffset=-3     yoffset=6    xadvance=15     page=0  chnl=0 
+char id=99   x=201     y=362     width=17     height=22     xoffset=-3     yoffset=5    xadvance=9     page=0  chnl=0 
+char id=43   x=218     y=362     width=19     height=22     xoffset=-3     yoffset=5    xadvance=11     page=0  chnl=0 
+char id=97   x=237     y=362     width=17     height=22     xoffset=-3     yoffset=6    xadvance=9     page=0  chnl=0 
+char id=111   x=0     y=386     width=19     height=22     xoffset=-3     yoffset=6    xadvance=11     page=0  chnl=0 
+char id=115   x=19     y=386     width=17     height=22     xoffset=-3     yoffset=6    xadvance=9     page=0  chnl=0 
+char id=101   x=36     y=386     width=17     height=22     xoffset=-3     yoffset=6    xadvance=9     page=0  chnl=0 
+char id=8308   x=53     y=386     width=15     height=21     xoffset=-3     yoffset=1    xadvance=7     page=0  chnl=0 
+char id=122   x=68     y=386     width=18     height=21     xoffset=-3     yoffset=6    xadvance=10     page=0  chnl=0 
+char id=119   x=86     y=386     width=23     height=21     xoffset=-4     yoffset=6    xadvance=13     page=0  chnl=0 
+char id=117   x=109     y=386     width=17     height=21     xoffset=-3     yoffset=6    xadvance=11     page=0  chnl=0 
+char id=59   x=126     y=386     width=12     height=21     xoffset=-3     yoffset=6    xadvance=4     page=0  chnl=0 
+char id=62   x=138     y=386     width=17     height=21     xoffset=-3     yoffset=6    xadvance=9     page=0  chnl=0 
+char id=110   x=155     y=386     width=19     height=21     xoffset=-4     yoffset=6    xadvance=10     page=0  chnl=0 
+char id=114   x=174     y=386     width=16     height=21     xoffset=-3     yoffset=6    xadvance=8     page=0  chnl=0 
+char id=118   x=190     y=386     width=19     height=21     xoffset=-4     yoffset=6    xadvance=9     page=0  chnl=0 
+char id=120   x=209     y=386     width=20     height=21     xoffset=-3     yoffset=6    xadvance=12     page=0  chnl=0 
+char id=60   x=229     y=386     width=17     height=21     xoffset=-3     yoffset=6    xadvance=9     page=0  chnl=0 
+char id=178   x=0     y=408     width=17     height=20     xoffset=-3     yoffset=3    xadvance=9     page=0  chnl=0 
+char id=58   x=17     y=408     width=12     height=20     xoffset=-3     yoffset=7    xadvance=4     page=0  chnl=0 
+char id=42   x=29     y=408     width=17     height=20     xoffset=-3     yoffset=1    xadvance=9     page=0  chnl=0 
+char id=61   x=46     y=408     width=18     height=20     xoffset=-2     yoffset=6    xadvance=12     page=0  chnl=0 
+char id=185   x=64     y=408     width=12     height=19     xoffset=-3     yoffset=3    xadvance=4     page=0  chnl=0 
+char id=179   x=76     y=408     width=15     height=19     xoffset=-3     yoffset=3    xadvance=8     page=0  chnl=0 
+char id=170   x=91     y=408     width=14     height=19     xoffset=-3     yoffset=1    xadvance=6     page=0  chnl=0 
+char id=305   x=105     y=408     width=12     height=18     xoffset=-3     yoffset=9    xadvance=4     page=0  chnl=0 
+char id=215   x=117     y=408     width=17     height=18     xoffset=-2     yoffset=6    xadvance=11     page=0  chnl=0 
+char id=186   x=134     y=408     width=15     height=18     xoffset=-3     yoffset=2    xadvance=7     page=0  chnl=0 
+char id=176   x=149     y=408     width=15     height=18     xoffset=-2     yoffset=-1    xadvance=8     page=0  chnl=0 
+char id=8250   x=164     y=408     width=14     height=17     xoffset=-3     yoffset=9    xadvance=7     page=0  chnl=0 
+char id=8226   x=178     y=408     width=15     height=17     xoffset=-3     yoffset=8    xadvance=7     page=0  chnl=0 
+char id=8222   x=193     y=408     width=16     height=17     xoffset=-3     yoffset=12    xadvance=8     page=0  chnl=0 
+char id=8221   x=209     y=408     width=16     height=17     xoffset=-3     yoffset=2    xadvance=8     page=0  chnl=0 
+char id=8220   x=225     y=408     width=17     height=17     xoffset=-3     yoffset=2    xadvance=9     page=0  chnl=0 
+char id=8218   x=242     y=408     width=12     height=17     xoffset=-3     yoffset=12    xadvance=5     page=0  chnl=0 
+char id=8217   x=0     y=428     width=12     height=17     xoffset=-3     yoffset=2    xadvance=4     page=0  chnl=0 
+char id=8216   x=12     y=428     width=12     height=17     xoffset=-3     yoffset=2    xadvance=4     page=0  chnl=0 
+char id=187   x=24     y=428     width=21     height=17     xoffset=-3     yoffset=8    xadvance=14     page=0  chnl=0 
+char id=171   x=45     y=428     width=22     height=17     xoffset=-3     yoffset=7    xadvance=14     page=0  chnl=0 
+char id=8482   x=67     y=428     width=20     height=16     xoffset=-3     yoffset=3    xadvance=12     page=0  chnl=0 
+char id=8249   x=87     y=428     width=15     height=16     xoffset=-3     yoffset=9    xadvance=7     page=0  chnl=0 
+char id=184   x=102     y=428     width=13     height=16     xoffset=-1     yoffset=17    xadvance=8     page=0  chnl=0 
+char id=94   x=115     y=428     width=15     height=16     xoffset=-3     yoffset=2    xadvance=7     page=0  chnl=0 
+char id=39   x=130     y=428     width=11     height=16     xoffset=-3     yoffset=2    xadvance=3     page=0  chnl=0 
+char id=34   x=141     y=428     width=16     height=16     xoffset=-3     yoffset=2    xadvance=8     page=0  chnl=0 
+char id=180   x=157     y=428     width=14     height=15     xoffset=-2     yoffset=0    xadvance=8     page=0  chnl=0 
+char id=44   x=171     y=428     width=12     height=15     xoffset=-3     yoffset=14    xadvance=4     page=0  chnl=0 
+char id=8230   x=183     y=428     width=23     height=14     xoffset=-3     yoffset=13    xadvance=15     page=0  chnl=0 
+char id=732   x=206     y=428     width=16     height=14     xoffset=-3     yoffset=1    xadvance=8     page=0  chnl=0 
+char id=126   x=222     y=428     width=18     height=14     xoffset=-3     yoffset=1    xadvance=8     page=0  chnl=0 
+char id=96   x=240     y=428     width=14     height=14     xoffset=-3     yoffset=1    xadvance=7     page=0  chnl=0 
+char id=8722   x=0     y=445     width=18     height=13     xoffset=-3     yoffset=8    xadvance=10     page=0  chnl=0 
+char id=8211   x=18     y=445     width=17     height=13     xoffset=-3     yoffset=10    xadvance=9     page=0  chnl=0 
+char id=183   x=35     y=445     width=12     height=13     xoffset=-2     yoffset=8    xadvance=6     page=0  chnl=0 
+char id=175   x=47     y=445     width=16     height=13     xoffset=-2     yoffset=2    xadvance=10     page=0  chnl=0 
+char id=168   x=63     y=445     width=15     height=13     xoffset=-2     yoffset=1    xadvance=8     page=0  chnl=0 
+char id=95   x=78     y=445     width=18     height=13     xoffset=-4     yoffset=18    xadvance=9     page=0  chnl=0 
+char id=8212   x=96     y=445     width=21     height=12     xoffset=-3     yoffset=11    xadvance=14     page=0  chnl=0 
+char id=173   x=117     y=445     width=15     height=12     xoffset=-3     yoffset=10    xadvance=7     page=0  chnl=0 
+char id=45   x=132     y=445     width=15     height=12     xoffset=-3     yoffset=10    xadvance=7     page=0  chnl=0 
+char id=46   x=147     y=445     width=11     height=12     xoffset=-3     yoffset=15    xadvance=4     page=0  chnl=0 
+char id=172   x=158     y=445     width=20     height=19     xoffset=-2     yoffset=5    xadvance=14     page=0  chnl=0 

+ 1 - 0
example/HelloWorldAdmob/data/fonts/main_0.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/data/ident.free

@@ -0,0 +1 @@
+380fc4ea-a7e1-45d7-b786-be0e0b367cbc;HelloWorld;Denis

+ 1 - 0
example/HelloWorldAdmob/data/images/anim.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/data/images/button.png

@@ -0,0 +1 @@
+‰PNG

+ 11 - 0
example/HelloWorldAdmob/data/res.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<resources>
+	<set path = "images" />
+	<atlas>
+		<image file="anim.png" cols = "7" />
+		<image file="button.png"/>		
+	</atlas>
+	
+	<set path = "fonts" />
+	<font file="main.fnt" />	
+</resources>

+ 32 - 0
example/HelloWorldAdmob/proj.android/AndroidManifest.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="org.oxygine.HelloWorldFacebook"
+      android:versionCode="1"
+      android:versionName="1.0"
+      android:installLocation="auto">
+
+    <application android:label="@string/app_name"
+                 android:icon="@drawable/ic_launcher"
+                 android:allowBackup="true"
+                 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
+                 android:hardwareAccelerated="true" >
+
+        <activity android:name="org.oxygine.HelloWorldFacebook.MainActivity"
+                  android:label="@string/app_name"
+                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
+                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:screenOrientation="landscape">
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
+
+    <!-- OpenGL ES 2.0 -->
+    <uses-feature android:glEsVersion="0x00020000" /> 
+
+</manifest> 

+ 18 - 0
example/HelloWorldAdmob/proj.android/ant.properties

@@ -0,0 +1,18 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked into Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+#  'source.dir' for the location of your java source folder and
+#  'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+#  'key.store' for the location of your keystore and
+#  'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
+asset.dir=../data

+ 1 - 0
example/HelloWorldAdmob/proj.android/ant_debug.bat

@@ -0,0 +1 @@
+ant debug

+ 2 - 0
example/HelloWorldAdmob/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/usr/bin/env sh
+ant debug

+ 3 - 0
example/HelloWorldAdmob/proj.android/build-run.bat

@@ -0,0 +1,3 @@
+call build
+call ant_debug
+call install

+ 4 - 0
example/HelloWorldAdmob/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 1 - 0
example/HelloWorldAdmob/proj.android/build.bat

@@ -0,0 +1 @@
+ndk-build NDK_MODULE_PATH=../../../../ %*

+ 2 - 0
example/HelloWorldAdmob/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/usr/bin/env sh
+ndk-build NDK_MODULE_PATH=../../../../ $@

+ 93 - 0
example/HelloWorldAdmob/proj.android/build.xml

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This should be changed to the name of your project -->
+<project name="HelloWorldFacebook" default="help">
+
+    <!-- The local.properties file is created and updated by the 'android' tool.
+         It contains the path to the SDK. It should *NOT* be checked into
+         Version Control Systems. -->
+    <property file="local.properties" />
+
+    <!-- The ant.properties file can be created by you. It is only edited by the
+         'android' tool to add properties to it.
+         This is the place to change some Ant specific build properties.
+         Here are some properties you may want to change/update:
+
+         source.dir
+             The name of the source directory. Default is 'src'.
+         out.dir
+             The name of the output directory. Default is 'bin'.
+
+         For other overridable properties, look at the beginning of the rules
+         files in the SDK, at tools/ant/build.xml
+
+         Properties related to the SDK location or the project target should
+         be updated using the 'android' tool with the 'update' action.
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems.
+
+         -->
+    <property file="ant.properties" />
+
+    <!-- if sdk.dir was not set from one of the property file, then
+         get it from the ANDROID_HOME env var.
+         This must be done before we load project.properties since
+         the proguard config can use sdk.dir -->
+    <property environment="env" />
+    <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+        <isset property="env.ANDROID_HOME" />
+    </condition>
+
+    <!-- The project.properties file is created and updated by the 'android'
+         tool, as well as ADT.
+
+         This contains project specific properties such as project target, and library
+         dependencies. Lower level build properties are stored in ant.properties
+         (or in .classpath for Eclipse projects).
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems. -->
+    <loadproperties srcFile="project.properties" />
+
+    <!-- quick check on sdk.dir -->
+    <fail
+            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+            unless="sdk.dir"
+    />
+
+    <!--
+        Import per project custom build rules if present at the root of the project.
+        This is the place to put custom intermediary targets such as:
+            -pre-build
+            -pre-compile
+            -post-compile (This is typically used for code obfuscation.
+                           Compiled code location: ${out.classes.absolute.dir}
+                           If this is not done in place, override ${out.dex.input.absolute.dir})
+            -post-package
+            -post-build
+            -pre-clean
+    -->
+    <import file="custom_rules.xml" optional="true" />
+
+    <!-- Import the actual build file.
+
+         To customize existing targets, there are two options:
+         - Customize only one target:
+             - copy/paste the target into this file, *before* the
+               <import> task.
+             - customize it to your needs.
+         - Customize the whole content of build.xml
+             - copy/paste the content of the rules files (minus the top node)
+               into this file, replacing the <import> task.
+             - customize to your needs.
+
+         ***********************
+         ****** IMPORTANT ******
+         ***********************
+         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+         in order to avoid having your file be overridden by tools such as "android update project"
+    -->
+    <!-- version-tag: 1 -->
+    <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>

+ 2 - 0
example/HelloWorldAdmob/proj.android/install.bat

@@ -0,0 +1,2 @@
+adb install -r bin/HelloWorldFacebook-debug.apk
+adb shell am start -n org.oxygine.HelloWorldFacebook/org.oxygine.HelloWorldFacebook.MainActivity

+ 3 - 0
example/HelloWorldAdmob/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+adb install -r bin/HelloWorldFacebook-debug.apk
+adb shell am start -n org.oxygine.HelloWorldFacebook/org.oxygine.HelloWorldFacebook.MainActivity

+ 1 - 0
example/HelloWorldAdmob/proj.android/jni/Android.mk

@@ -0,0 +1 @@
+include $(call all-subdir-makefiles)

+ 5 - 0
example/HelloWorldAdmob/proj.android/jni/Application.mk

@@ -0,0 +1,5 @@
+APP_STL := gnustl_static
+APP_CPPFLAGS += -fexceptions
+APP_CPPFLAGS += -frtti
+APP_CPPFLAGS += -std=c++11
+APP_ABI := armeabi-v7a

+ 19 - 0
example/HelloWorldAdmob/proj.android/jni/src/Android.mk

@@ -0,0 +1,19 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := main
+
+#SDK_ROOT points to folder with SDL and oxygine-framework
+LOCAL_SRC_FILES := ../../../../../..//SDL/src/main/android/SDL_android_main.c
+
+LOCAL_SRC_FILES += ../../../src/example.cpp ../../../src/main.cpp 
+
+
+LOCAL_STATIC_LIBRARIES := oxygine-framework_static
+LOCAL_SHARED_LIBRARIES := SDL2
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+#import from NDK_MODULE_PATH defined in build.cmd
+$(call import-module, oxygine-framework)

+ 15 - 0
example/HelloWorldAdmob/proj.android/project.properties

@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-16
+android.library.reference.1=../../../..//oxygine-framework/oxygine/SDL/android/lib

+ 1 - 0
example/HelloWorldAdmob/proj.android/res/drawable-hdpi/ic_launcher.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/proj.android/res/drawable-mdpi/ic_launcher.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/proj.android/res/drawable-xhdpi/ic_launcher.png

@@ -0,0 +1 @@
+‰PNG

+ 1 - 0
example/HelloWorldAdmob/proj.android/res/drawable-xxhdpi/ic_launcher.png

@@ -0,0 +1 @@
+‰PNG

+ 13 - 0
example/HelloWorldAdmob/proj.android/res/layout/main.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    >
+<TextView  
+    android:layout_width="fill_parent" 
+    android:layout_height="wrap_content" 
+    android:text="Hello World, SDLActivity"
+    />
+</LinearLayout>
+

+ 4 - 0
example/HelloWorldAdmob/proj.android/res/values/strings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_name">HelloWorldFacebook</string>
+</resources>

+ 8 - 0
example/HelloWorldAdmob/proj.android/src/org/oxygine/HelloWorldFacebook/MainActivity.java

@@ -0,0 +1,8 @@
+package org.oxygine.HelloWorldFacebook;
+
+import org.oxygine.lib.OxygineActivity;
+
+public class MainActivity extends OxygineActivity
+{
+
+}

+ 19 - 0
example/HelloWorldAdmob/proj.cmake/CMakeLists.txt

@@ -0,0 +1,19 @@
+cmake_minimum_required (VERSION 2.6)
+project (HelloWorldFacebook)
+
+add_subdirectory(../../../../oxygine-framework/ oxygine-framework)
+add_definitions(${OXYGINE_DEFINITIONS})
+include_directories(${OXYGINE_INCLUDE_DIRS})
+link_directories(${OXYGINE_LIBRARY_DIRS})
+
+add_subdirectory(../../../../oxygine-facebook/ oxygine-facebook)
+include_directories(${OXYGINE_FACEBOOK_INCLUDE_DIRS})
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+add_executable(HelloWorldFacebook ../src/main.cpp ../src/example.cpp  ../src/example.h ../src/test.h ../src/test.cpp)
+
+if (WIN32) #disable console mode for VC++
+	set_target_properties(HelloWorldFacebook PROPERTIES WIN32_EXECUTABLE TRUE)
+endif(WIN32)
+
+target_link_libraries(HelloWorldFacebook ${OXYGINE_CORE_LIBS} oxygine-facebook)

+ 16 - 0
example/HelloWorldAdmob/proj.cmake/run.sh

@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+
+mkdir build
+cd build
+
+#generate cmake project in the "build" folder
+cmake ..
+
+#build it
+make
+
+#move to working data folder with resources
+cd ../../data
+
+#run executable
+./../proj.cmake/build/HelloWorldFacebook

+ 25 - 0
example/HelloWorldAdmob/proj.emscripten/CMakeLists.txt

@@ -0,0 +1,25 @@
+cmake_minimum_required (VERSION 2.6)
+project (HelloWorldFacebook)
+
+add_subdirectory(../../../../oxygine-framework/ oxygine-framework)
+add_definitions(${OXYGINE_DEFINITIONS})
+include_directories(${OXYGINE_INCLUDE_DIRS})
+link_directories(${OXYGINE_LIBRARY_DIRS})
+
+SET(CMAKE_EXECUTABLE_SUFFIX ".html")
+set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -std=c++11")
+
+add_executable(HelloWorldFacebook ../src/example.cpp ../src/main.cpp  ../src/example.h )
+
+if (CMAKE_BUILD_TYPE STREQUAL Debug)
+	SET(linkFlags "-g4 ")
+else() # Either MinSizeRel, RelWithDebInfo or Release, all which run with optimizations enabled.
+	SET(linkFlags "-O2 ")
+endif()
+
+set(linkFlags "${linkFlags} -s NO_EXIT_RUNTIME=1 -s FULL_ES2=1 -s WARN_ON_UNDEFINED_SYMBOLS=1 --memory-init-file 0 -s TOTAL_MEMORY=50331648")
+
+set_target_properties(HelloWorldFacebook PROPERTIES LINK_FLAGS "${linkFlags}")
+
+target_link_libraries(HelloWorldFacebook ${OXYGINE_CORE_LIBS})
+em_link_pre_js(HelloWorldFacebook  ${OXYGINE_JS_LIBRARIES}  ${CMAKE_CURRENT_SOURCE_DIR}/data.js)

+ 7 - 0
example/HelloWorldAdmob/proj.emscripten/build.bat

@@ -0,0 +1,7 @@
+python ../../../../oxygine-framework//tools/others/embed_folder_js.py -s ../data
+
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="%EMSCRIPTEN%/cmake/Modules/Platform/emscripten.cmake" -G"Unix Makefiles" .. 
+make
+cd ..

+ 7 - 0
example/HelloWorldAdmob/proj.emscripten/build_release.bat

@@ -0,0 +1,7 @@
+python ../../../../oxygine-framework//tools/others/embed_folder_js.py -s ../data
+
+mkdir build_release
+cd build_release
+cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="%EMSCRIPTEN%/cmake/Modules/Platform/emscripten.cmake" -G"Unix Makefiles" .. 
+make
+cd ..

+ 95 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/HelloWorldFacebook_ios-Info.plist

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIcons</key>
+	<dict/>
+	<key>CFBundleIcons~ipad</key>
+	<dict/>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleURLTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleURLSchemes</key>
+			<array>
+				<string>fb1222258524453899</string>
+			</array>
+		</dict>
+	</array>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>FacebookAppID</key>
+	<string>1222258524453899</string>
+	<key>FacebookDisplayName</key>
+	<string>oxygine-test</string>
+	<key>LSApplicationQueriesSchemes</key>
+	<array>
+		<string>fbapi</string>
+		<string>fb-messenger-api</string>
+		<string>fbauth2</string>
+		<string>fbshareextension</string>
+	</array>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UIStatusBarHidden</key>
+	<true/>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UIViewControllerBasedStatusBarAppearance</key>
+	<false/>
+    
+    <key>NSAppTransportSecurity</key>
+    <dict>
+        <key>NSExceptionDomains</key>
+        <dict>
+            <key>facebook.com</key>
+            <dict>
+                <key>NSIncludesSubdomains</key> <true/>
+                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
+            </dict>
+            <key>fbcdn.net</key>
+            <dict>
+                <key>NSIncludesSubdomains</key> <true/>
+                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  <false/>
+            </dict>
+            <key>akamaihd.net</key>
+            <dict>
+                <key>NSIncludesSubdomains</key> <true/>
+                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
+            </dict>
+        </dict>
+    </dict>
+</dict>
+</plist>

+ 16 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/HelloWorldFacebook_ios-Prefix.pch

@@ -0,0 +1,16 @@
+//
+//  Prefix header
+//
+//  The contents of this file are implicitly included at the beginning of every source file.
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif

+ 68 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/Images.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,68 @@
+{
+  "images" : [
+    {
+      "idiom" : "iphone",
+      "size" : "29x29",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "29x29",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "40x40",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "40x40",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "60x60",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "60x60",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "29x29",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "29x29",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "40x40",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "40x40",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "76x76",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "76x76",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 49 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/Images.xcassets/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,49 @@
+{
+  "images" : [
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "minimum-system-version" : "7.0",
+      "subtype" : "retina4",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 51 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,51 @@
+{
+  "images" : [
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "subtype" : "retina4",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 28 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook/LaunchScreen.storyboard

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
+                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <animations/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+</document>

+ 536 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook_ios.xcodeproj/project.pbxproj

@@ -0,0 +1,536 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		048AD0AE197D24AB001963EF /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048AD0AD197D24AB001963EF /* CoreMotion.framework */; };
+		04998D3617F8A97D003441C3 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998D3517F8A96E003441C3 /* libSDL2.a */; };
+		04998EE617F8ADB4003441C3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE117F8ADB4003441C3 /* libz.dylib */; };
+		04998EE717F8ADB4003441C3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE217F8ADB4003441C3 /* QuartzCore.framework */; };
+		04998EE817F8ADB4003441C3 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE317F8ADB4003441C3 /* AudioToolbox.framework */; };
+		04998EE917F8ADB4003441C3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE417F8ADB4003441C3 /* CoreAudio.framework */; };
+		04998EEA17F8ADB4003441C3 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE517F8ADB4003441C3 /* OpenGLES.framework */; };
+		04998EEE17F8ADD4003441C3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EEB17F8ADD4003441C3 /* UIKit.framework */; };
+		04998EEF17F8ADD4003441C3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EEC17F8ADD4003441C3 /* Foundation.framework */; };
+		04998EF017F8ADD4003441C3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EED17F8ADD4003441C3 /* CoreGraphics.framework */; };
+		04998EF717F8B6F3003441C3 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EF517F8B6F3003441C3 /* libpng.a */; };
+		04998EF817F8B6F3003441C3 /* libjpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EF617F8B6F3003441C3 /* libjpeg.a */; };
+		049B52B11871EBFA00EF3C66 /* liboxygine_ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 049B52AD1871EBBA00EF3C66 /* liboxygine_ios.a */; };
+		04E9AD3F1876FE84006A7317 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 04E9AD3E1876FE84006A7317 /* Images.xcassets */; };
+		2DC477AC10D6C07B3FE008F6 /* example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* example.cpp */; };
+		3A631A475DE035FC53ADE5EA /* images in Resources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* images */; };
+		9223FE7F1C2D913D000B1FDA /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9223FE7E1C2D913D000B1FDA /* GameController.framework */; };
+		922B9F8F1BBB2FB100B1401E /* (null) in Resources */ = {isa = PBXBuildFile; };
+		929AF58F1C99EF3400D276ED /* demo in Resources */ = {isa = PBXBuildFile; fileRef = 929AF58D1C99EF3400D276ED /* demo */; };
+		929AF5901C99EF3400D276ED /* ext in Resources */ = {isa = PBXBuildFile; fileRef = 929AF58E1C99EF3400D276ED /* ext */; };
+		929AF5931C99F23700D276ED /* HelloWorldFacebook_ios-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 929AF5921C99F23700D276ED /* HelloWorldFacebook_ios-Info.plist */; };
+		929AF59E1C99F47200D276ED /* facebook.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 929AF5991C99F47200D276ED /* facebook.cpp */; };
+		929AF59F1C99F47200D276ED /* FacebookSimulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 929AF59C1C99F47200D276ED /* FacebookSimulator.cpp */; };
+		929AF5A21C99F49100D276ED /* test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 929AF5A01C99F49100D276ED /* test.cpp */; };
+		929AF5A51C99F53B00D276ED /* iosFacebook.mm in Sources */ = {isa = PBXBuildFile; fileRef = 929AF5A41C99F53B00D276ED /* iosFacebook.mm */; };
+		929AF5B01C99F70A00D276ED /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 929AF5AE1C99F70A00D276ED /* FBSDKCoreKit.framework */; };
+		929AF5B11C99F70A00D276ED /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 929AF5AF1C99F70A00D276ED /* FBSDKLoginKit.framework */; };
+		929AF5B81C9A043F00D276ED /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 929AF5B71C9A043F00D276ED /* AppDelegate.mm */; };
+		C8860D93875589970329DCCD /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* fonts */; };
+		CD59C69314E9E74CD0A11E03 /* res.xml in Resources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* res.xml */; };
+		DA49ED8903C628BA578C8670 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* main.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		04998D3417F8A96E003441C3 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D2F17F8A96E003441C3 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = FD6526630DE8FCCB002AD96B;
+			remoteInfo = libSDL;
+		};
+		04998D3717F8A982003441C3 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D2F17F8A96E003441C3 /* SDL.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = FD6526620DE8FCCB002AD96B;
+			remoteInfo = libSDL;
+		};
+		049B52AC1871EBBA00EF3C66 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = C3E86F4C16EBC8A500052915;
+			remoteInfo = oxygine_ios;
+		};
+		049B52AF1871EBD100EF3C66 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = C3E86F4B16EBC8A500052915;
+			remoteInfo = oxygine_ios;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		048AD0AD197D24AB001963EF /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
+		04998CEC17F8A933003441C3 /* HelloWorldFacebook_ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorldFacebook_ios.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		04998D2F17F8A96E003441C3 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = "../../../..//SDL/Xcode-iOS/SDL/SDL.xcodeproj"; sourceTree = "<group>"; };
+		04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = oxygine_ios.xcodeproj; path = "../../../../oxygine-framework//oxygine/SDL/ios/oxygine/oxygine_ios.xcodeproj"; sourceTree = "<group>"; };
+		04998EE117F8ADB4003441C3 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+		04998EE217F8ADB4003441C3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		04998EE317F8ADB4003441C3 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		04998EE417F8ADB4003441C3 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
+		04998EE517F8ADB4003441C3 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+		04998EEB17F8ADD4003441C3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		04998EEC17F8ADD4003441C3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		04998EED17F8ADD4003441C3 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		04998EF517F8B6F3003441C3 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../../../oxygine-framework//oxygine/third_party/ios/libraries/libpng.a"; sourceTree = "<group>"; };
+		04998EF617F8B6F3003441C3 /* libjpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjpeg.a; path = "../../../../oxygine-framework//oxygine/third_party/ios/libraries/libjpeg.a"; sourceTree = "<group>"; };
+		04E9AD3E1876FE84006A7317 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HelloWorldFacebook/Images.xcassets; sourceTree = "<group>"; };
+		0BF9628FC8D38F9748F0CDEB /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../src/main.cpp; sourceTree = "<group>"; };
+		360377333740D8A2FD15BBE6 /* example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
+		4DA100C319512824B7570663 /* fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
+		7F3B12E3C9D554D9FE28101D /* images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
+		9223FE7E1C2D913D000B1FDA /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
+		929AF58D1C99EF3400D276ED /* demo */ = {isa = PBXFileReference; lastKnownFileType = folder; name = demo; path = ../data/demo; sourceTree = "<group>"; };
+		929AF58E1C99EF3400D276ED /* ext */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ext; path = ../data/ext; sourceTree = "<group>"; };
+		929AF5921C99F23700D276ED /* HelloWorldFacebook_ios-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "HelloWorldFacebook_ios-Info.plist"; path = "HelloWorldFacebook/HelloWorldFacebook_ios-Info.plist"; sourceTree = "<group>"; };
+		929AF5991C99F47200D276ED /* facebook.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = facebook.cpp; path = ../../../src/facebook.cpp; sourceTree = "<group>"; };
+		929AF59A1C99F47200D276ED /* facebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = facebook.h; path = ../../../src/facebook.h; sourceTree = "<group>"; };
+		929AF59C1C99F47200D276ED /* FacebookSimulator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FacebookSimulator.cpp; sourceTree = "<group>"; };
+		929AF59D1C99F47200D276ED /* FacebookSimulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FacebookSimulator.h; sourceTree = "<group>"; };
+		929AF5A01C99F49100D276ED /* test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test.cpp; path = ../src/test.cpp; sourceTree = "<group>"; };
+		929AF5A11C99F49100D276ED /* test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = test.h; path = ../src/test.h; sourceTree = "<group>"; };
+		929AF5A31C99F51500D276ED /* iosFacebook.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = iosFacebook.h; path = ../../../src/ios/iosFacebook.h; sourceTree = "<group>"; };
+		929AF5A41C99F53B00D276ED /* iosFacebook.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = iosFacebook.mm; path = ../../../src/ios/iosFacebook.mm; sourceTree = "<group>"; };
+		929AF5AE1C99F70A00D276ED /* FBSDKCoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FBSDKCoreKit.framework; path = ../../../libs/ios/FBSDKCoreKit.framework; sourceTree = "<group>"; };
+		929AF5AF1C99F70A00D276ED /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FBSDKLoginKit.framework; path = ../../../libs/ios/FBSDKLoginKit.framework; sourceTree = "<group>"; };
+		929AF5B61C9A043F00D276ED /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ../src/ios/AppDelegate.h; sourceTree = "<group>"; };
+		929AF5B71C9A043F00D276ED /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 5; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = ../src/ios/AppDelegate.mm; sourceTree = "<group>"; };
+		BA41FC88D76540A6905224D6 /* example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
+		F6123B1E6FE4471A00F49751 /* res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		04998CE917F8A933003441C3 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9223FE7F1C2D913D000B1FDA /* GameController.framework in Frameworks */,
+				049B52B11871EBFA00EF3C66 /* liboxygine_ios.a in Frameworks */,
+				04998D3617F8A97D003441C3 /* libSDL2.a in Frameworks */,
+				04998EF017F8ADD4003441C3 /* CoreGraphics.framework in Frameworks */,
+				048AD0AE197D24AB001963EF /* CoreMotion.framework in Frameworks */,
+				04998EEF17F8ADD4003441C3 /* Foundation.framework in Frameworks */,
+				04998EE617F8ADB4003441C3 /* libz.dylib in Frameworks */,
+				04998EE917F8ADB4003441C3 /* CoreAudio.framework in Frameworks */,
+				04998EF817F8B6F3003441C3 /* libjpeg.a in Frameworks */,
+				04998EEE17F8ADD4003441C3 /* UIKit.framework in Frameworks */,
+				929AF5B01C99F70A00D276ED /* FBSDKCoreKit.framework in Frameworks */,
+				04998EE817F8ADB4003441C3 /* AudioToolbox.framework in Frameworks */,
+				04998EE717F8ADB4003441C3 /* QuartzCore.framework in Frameworks */,
+				04998EEA17F8ADB4003441C3 /* OpenGLES.framework in Frameworks */,
+				929AF5B11C99F70A00D276ED /* FBSDKLoginKit.framework in Frameworks */,
+				04998EF717F8B6F3003441C3 /* libpng.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		045D531C17F8BD5E00CC2C64 /* dependencies */ = {
+			isa = PBXGroup;
+			children = (
+				929AF5981C99F45900D276ED /* oxygine-facebook */,
+				04998EE117F8ADB4003441C3 /* libz.dylib */,
+				04998EF617F8B6F3003441C3 /* libjpeg.a */,
+				04998EF517F8B6F3003441C3 /* libpng.a */,
+			);
+			name = dependencies;
+			sourceTree = "<group>";
+		};
+		04998CE317F8A933003441C3 = {
+			isa = PBXGroup;
+			children = (
+				929AF5921C99F23700D276ED /* HelloWorldFacebook_ios-Info.plist */,
+				045D531C17F8BD5E00CC2C64 /* dependencies */,
+				04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */,
+				04998D2F17F8A96E003441C3 /* SDL.xcodeproj */,
+				04998D4417F8A9ED003441C3 /* src */,
+				04E9AD3E1876FE84006A7317 /* Images.xcassets */,
+				04998CF617F8A933003441C3 /* Supporting Files */,
+				04998CEE17F8A933003441C3 /* Frameworks */,
+				04998CED17F8A933003441C3 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		04998CED17F8A933003441C3 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04998CEC17F8A933003441C3 /* HelloWorldFacebook_ios.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		04998CEE17F8A933003441C3 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				9223FE7E1C2D913D000B1FDA /* GameController.framework */,
+				04998EEB17F8ADD4003441C3 /* UIKit.framework */,
+				048AD0AD197D24AB001963EF /* CoreMotion.framework */,
+				04998EEC17F8ADD4003441C3 /* Foundation.framework */,
+				04998EED17F8ADD4003441C3 /* CoreGraphics.framework */,
+				04998EE217F8ADB4003441C3 /* QuartzCore.framework */,
+				04998EE317F8ADB4003441C3 /* AudioToolbox.framework */,
+				04998EE417F8ADB4003441C3 /* CoreAudio.framework */,
+				04998EE517F8ADB4003441C3 /* OpenGLES.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		04998CF617F8A933003441C3 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				929AF58D1C99EF3400D276ED /* demo */,
+				929AF58E1C99EF3400D276ED /* ext */,
+				4DA100C319512824B7570663 /* fonts */,
+				7F3B12E3C9D554D9FE28101D /* images */,
+				F6123B1E6FE4471A00F49751 /* res.xml */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		04998D3017F8A96E003441C3 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04998D3517F8A96E003441C3 /* libSDL2.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		04998D4417F8A9ED003441C3 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				929AF5B61C9A043F00D276ED /* AppDelegate.h */,
+				929AF5B71C9A043F00D276ED /* AppDelegate.mm */,
+				929AF5A01C99F49100D276ED /* test.cpp */,
+				929AF5A11C99F49100D276ED /* test.h */,
+				360377333740D8A2FD15BBE6 /* example.cpp */,
+				0BF9628FC8D38F9748F0CDEB /* main.cpp */,
+				BA41FC88D76540A6905224D6 /* example.h */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		049B52A91871EBBA00EF3C66 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				049B52AD1871EBBA00EF3C66 /* liboxygine_ios.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		929AF5981C99F45900D276ED /* oxygine-facebook */ = {
+			isa = PBXGroup;
+			children = (
+				929AF5AE1C99F70A00D276ED /* FBSDKCoreKit.framework */,
+				929AF5AF1C99F70A00D276ED /* FBSDKLoginKit.framework */,
+				929AF5991C99F47200D276ED /* facebook.cpp */,
+				929AF59A1C99F47200D276ED /* facebook.h */,
+				929AF59B1C99F47200D276ED /* sim */,
+				929AF5A31C99F51500D276ED /* iosFacebook.h */,
+				929AF5A41C99F53B00D276ED /* iosFacebook.mm */,
+			);
+			name = "oxygine-facebook";
+			sourceTree = "<group>";
+		};
+		929AF59B1C99F47200D276ED /* sim */ = {
+			isa = PBXGroup;
+			children = (
+				929AF59C1C99F47200D276ED /* FacebookSimulator.cpp */,
+				929AF59D1C99F47200D276ED /* FacebookSimulator.h */,
+			);
+			name = sim;
+			path = ../../../src/sim;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		04998CEB17F8A933003441C3 /* HelloWorldFacebook_ios */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 04998D2117F8A933003441C3 /* Build configuration list for PBXNativeTarget "HelloWorldFacebook_ios" */;
+			buildPhases = (
+				04998CE817F8A933003441C3 /* Sources */,
+				04998CE917F8A933003441C3 /* Frameworks */,
+				04998CEA17F8A933003441C3 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				04998D3817F8A982003441C3 /* PBXTargetDependency */,
+				049B52B01871EBD100EF3C66 /* PBXTargetDependency */,
+			);
+			name = HelloWorldFacebook_ios;
+			productName = HelloWorldFacebook;
+			productReference = 04998CEC17F8A933003441C3 /* HelloWorldFacebook_ios.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		04998CE417F8A933003441C3 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0510;
+				ORGANIZATIONNAME = Mac;
+			};
+			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "HelloWorldFacebook_ios" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 04998CE317F8A933003441C3;
+			productRefGroup = 04998CED17F8A933003441C3 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 049B52A91871EBBA00EF3C66 /* Products */;
+					ProjectRef = 04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */;
+				},
+				{
+					ProductGroup = 04998D3017F8A96E003441C3 /* Products */;
+					ProjectRef = 04998D2F17F8A96E003441C3 /* SDL.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				04998CEB17F8A933003441C3 /* HelloWorldFacebook_ios */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		04998D3517F8A96E003441C3 /* libSDL2.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libSDL2.a;
+			remoteRef = 04998D3417F8A96E003441C3 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		049B52AD1871EBBA00EF3C66 /* liboxygine_ios.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = liboxygine_ios.a;
+			remoteRef = 049B52AC1871EBBA00EF3C66 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		04998CEA17F8A933003441C3 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				929AF5901C99EF3400D276ED /* ext in Resources */,
+				04E9AD3F1876FE84006A7317 /* Images.xcassets in Resources */,
+				929AF58F1C99EF3400D276ED /* demo in Resources */,
+				922B9F8F1BBB2FB100B1401E /* (null) in Resources */,
+				929AF5931C99F23700D276ED /* HelloWorldFacebook_ios-Info.plist in Resources */,
+				C8860D93875589970329DCCD /* fonts in Resources */,
+				3A631A475DE035FC53ADE5EA /* images in Resources */,
+				CD59C69314E9E74CD0A11E03 /* res.xml in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		04998CE817F8A933003441C3 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				929AF59F1C99F47200D276ED /* FacebookSimulator.cpp in Sources */,
+				2DC477AC10D6C07B3FE008F6 /* example.cpp in Sources */,
+				929AF59E1C99F47200D276ED /* facebook.cpp in Sources */,
+				929AF5B81C9A043F00D276ED /* AppDelegate.mm in Sources */,
+				929AF5A21C99F49100D276ED /* test.cpp in Sources */,
+				DA49ED8903C628BA578C8670 /* main.cpp in Sources */,
+				929AF5A51C99F53B00D276ED /* iosFacebook.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		04998D3817F8A982003441C3 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = libSDL;
+			targetProxy = 04998D3717F8A982003441C3 /* PBXContainerItemProxy */;
+		};
+		049B52B01871EBD100EF3C66 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = oxygine_ios;
+			targetProxy = 049B52AF1871EBD100EF3C66 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		04998D1F17F8A933003441C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COMPRESS_PNG_FILES = NO;
+				COPY_PHASE_STRIP = NO;
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../../../libs/ios/";
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				ONLY_ACTIVE_ARCH = NO;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "../../../../oxygine-framework//oxygine/src ../../../..//SDL/include";
+			};
+			name = Debug;
+		};
+		04998D2017F8A933003441C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COMPRESS_PNG_FILES = NO;
+				COPY_PHASE_STRIP = YES;
+				ENABLE_BITCODE = NO;
+				ENABLE_NS_ASSERTIONS = NO;
+				FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../../../libs/ios/";
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "../../../../oxygine-framework//oxygine/src ../../../..//SDL/include";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		04998D2217F8A933003441C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "HelloWorldFacebook/HelloWorldFacebook_ios-Prefix.pch";
+				GCC_WARN_UNUSED_VALUE = YES;
+				GCC_WARN_UNUSED_VARIABLE = NO;
+				INFOPLIST_FILE = "HelloWorldFacebook/HelloWorldFacebook_ios-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../../../oxygine-framework//oxygine/third_party/ios/libraries",
+				);
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_BUNDLE_IDENTIFIER = org.oxygine.HelloWorldFacebook;
+				PRODUCT_NAME = HelloWorldFacebook_ios;
+				PROVISIONING_PROFILE = "";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		04998D2317F8A933003441C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "HelloWorldFacebook/HelloWorldFacebook_ios-Prefix.pch";
+				GCC_WARN_UNUSED_VALUE = YES;
+				GCC_WARN_UNUSED_VARIABLE = NO;
+				INFOPLIST_FILE = "HelloWorldFacebook/HelloWorldFacebook_ios-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../../../oxygine-framework//oxygine/third_party/ios/libraries",
+				);
+				ONLY_ACTIVE_ARCH = NO;
+				PRODUCT_BUNDLE_IDENTIFIER = org.oxygine.HelloWorldFacebook;
+				PRODUCT_NAME = HelloWorldFacebook_ios;
+				PROVISIONING_PROFILE = "";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		04998CE717F8A933003441C3 /* Build configuration list for PBXProject "HelloWorldFacebook_ios" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				04998D1F17F8A933003441C3 /* Debug */,
+				04998D2017F8A933003441C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		04998D2117F8A933003441C3 /* Build configuration list for PBXNativeTarget "HelloWorldFacebook_ios" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				04998D2217F8A933003441C3 /* Debug */,
+				04998D2317F8A933003441C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 04998CE417F8A933003441C3 /* Project object */;
+}

+ 7 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:">
+   </FileRef>
+</Workspace>

+ 30 - 0
example/HelloWorldAdmob/proj.ios/HelloWorldFacebook_ios.xcodeproj/project.xcworkspace/xcshareddata/HelloWorldFacebook_ios.xcscmblueprint

@@ -0,0 +1,30 @@
+{
+  "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "F44C54E4F520F8B8F477FE7873EA004332251FE0",
+  "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
+
+  },
+  "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
+    "080859DCFFBED59897A93F8140873F7889C62DCD" : 0,
+    "F44C54E4F520F8B8F477FE7873EA004332251FE0" : 0
+  },
+  "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "628E95E0-483B-4693-A493-1CBA2939688A",
+  "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
+    "080859DCFFBED59897A93F8140873F7889C62DCD" : "oxygine-framework\/",
+    "F44C54E4F520F8B8F477FE7873EA004332251FE0" : "oxygine-facebook\/"
+  },
+  "DVTSourceControlWorkspaceBlueprintNameKey" : "HelloWorldFacebook_ios",
+  "DVTSourceControlWorkspaceBlueprintVersion" : 204,
+  "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "example\/HelloWorldFacebook\/proj.ios\/HelloWorldFacebook_ios.xcodeproj",
+  "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
+    {
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:oxygine\/oxygine-framework.git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "080859DCFFBED59897A93F8140873F7889C62DCD"
+    },
+    {
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:oxygine\/oxygine-facebook.git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "F44C54E4F520F8B8F477FE7873EA004332251FE0"
+    }
+  ]
+}

+ 9 - 0
example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook/HelloWorldFacebook_macosx-Prefix.pch

@@ -0,0 +1,9 @@
+//
+//  Prefix header
+//
+//  The contents of this file are implicitly included at the beginning of every source file.
+//
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+#endif

+ 58 - 0
example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook/Images.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,58 @@
+{
+  "images" : [
+    {
+      "idiom" : "mac",
+      "size" : "16x16",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "16x16",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "32x32",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "32x32",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "128x128",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "128x128",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "256x256",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "256x256",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "512x512",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "512x512",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 34 - 0
example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook_macosx-Info.plist

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>oxygine.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>${MACOSX_DEPLOYMENT_TARGET}</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2013 oxygine. All rights reserved.</string>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>

+ 499 - 0
example/HelloWorldAdmob/proj.macosx/HelloWorldFacebook_macosx.xcodeproj/project.pbxproj

@@ -0,0 +1,499 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		04059FEA1872027500BA6557 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04A57D861872012D0068B1E5 /* SDL2.framework */; };
+		04059FEB1872027B00BA6557 /* liboxygine_macosx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FE41872026200BA6557 /* liboxygine_macosx.a */; };
+		04059FED187202A200BA6557 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FEC187202A200BA6557 /* libz.dylib */; };
+		04059FEF187202AC00BA6557 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FEE187202AC00BA6557 /* OpenGL.framework */; };
+		0405A00018720D2200BA6557 /* libjpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FF01872031A00BA6557 /* libjpeg.a */; };
+		0405A00118720D2200BA6557 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FF11872031A00BA6557 /* libpng.a */; };
+		049B57321871FBE900EF3C66 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 049B57311871FBE900EF3C66 /* Cocoa.framework */; };
+		049B574A1871FBE900EF3C66 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 049B57491871FBE900EF3C66 /* Images.xcassets */; };
+		2DC477AC10D6C07B3FE008F6 /* ../src/example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* ../src/example.cpp */; };
+		DA49ED8903C628BA578C8670 /* ../src/main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* ../src/main.cpp */; };
+		C8860D93875589970329DCCD /* ../data/fonts in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* ../data/fonts */; };
+		1E839D002B2BA83FC83A695A /* ../data/ident.free in Sources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* ../data/ident.free */; };
+		3A631A475DE035FC53ADE5EA /* ../data/images in Sources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* ../data/images */; };
+		CD59C69314E9E74CD0A11E03 /* ../data/res.xml in Sources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* ../data/res.xml */; };
+		EFF139F8BA484314F7AAF645 /* ../data/xmls in Sources */ = {isa = PBXBuildFile; fileRef = 5DE458993031811A4C7D28C1 /* ../data/xmls */; };
+
+		
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		04059FE31872026200BA6557 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 049B52BB1871EDE900EF3C66;
+			remoteInfo = oxygine_macosx;
+		};
+		04059FE81872027200BA6557 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 049B52BA1871EDE900EF3C66;
+			remoteInfo = oxygine_macosx;
+		};
+		04A57D851872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BECDF66C0761BA81005FE872;
+			remoteInfo = Framework;
+		};
+		04A57D871872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BECDF6B30761BA81005FE872;
+			remoteInfo = "Static Library";
+		};
+		04A57D891872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = DB31407717554B71006C0E22;
+			remoteInfo = "Shared Library";
+		};
+		04A57D8B1872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BECDF6BE0761BA81005FE872;
+			remoteInfo = "Standard DMG";
+		};
+		04A57D8E187201EF0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = BECDF5FE0761BA81005FE872;
+			remoteInfo = Framework;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		04059FEC187202A200BA6557 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+		04059FEE187202AC00BA6557 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
+		04059FF01872031A00BA6557 /* libjpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjpeg.a; path = ../../../../oxygine-framework//oxygine/third_party/macosx/libraries/libjpeg.a; sourceTree = "<group>"; };
+		04059FF11872031A00BA6557 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = ../../../../oxygine-framework//oxygine/third_party/macosx/libraries/libpng.a; sourceTree = "<group>"; };
+		04059FF4187203A600BA6557 /* libjpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjpeg.a; path = ../../../../oxygine-framework//oxygine/third_party/ios/libraries/libjpeg.a; sourceTree = "<group>"; };
+		04059FF5187203A600BA6557 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = ../../../../oxygine-framework//oxygine/third_party/ios/libraries/libpng.a; sourceTree = "<group>"; };
+		049B572E1871FBE900EF3C66 /* demo_macosx.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorldFacebook_macosx.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		049B57311871FBE900EF3C66 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		049B57341871FBE900EF3C66 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+		049B57351871FBE900EF3C66 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
+		049B57361871FBE900EF3C66 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		049B57391871FBE900EF3C66 /* demo_macosx-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HelloWorldFacebook_macosx-Info.plist"; sourceTree = "<group>"; };
+		049B57491871FBE900EF3C66 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HelloWorldFacebook/Images.xcassets; sourceTree = "<group>"; };
+		049B57501871FBE900EF3C66 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+		360377333740D8A2FD15BBE6 /* ../src/example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
+		0BF9628FC8D38F9748F0CDEB /* ../src/main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../src/main.cpp; sourceTree = "<group>"; };
+		BA41FC88D76540A6905224D6 /* ../src/example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
+		4DA100C319512824B7570663 /* ../data/fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
+		04FE4D4FB640E0DF92DFB865 /* ../data/ident.free */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = ident.free; path = ../data/ident.free; sourceTree = "<group>"; };
+		7F3B12E3C9D554D9FE28101D /* ../data/images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
+		F6123B1E6FE4471A00F49751 /* ../data/res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
+		5DE458993031811A4C7D28C1 /* ../data/xmls */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = xmls; path = ../data/xmls; sourceTree = "<group>"; };
+
+		04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = oxygine_macosx.xcodeproj; path = ../../../../oxygine-framework//oxygine/SDL/macosx/oxygine_macosx/oxygine_macosx.xcodeproj; sourceTree = "<group>"; };
+		04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../../..//SDL/Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		049B572B1871FBE900EF3C66 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				0405A00018720D2200BA6557 /* libjpeg.a in Frameworks */,
+				0405A00118720D2200BA6557 /* libpng.a in Frameworks */,
+				04059FEF187202AC00BA6557 /* OpenGL.framework in Frameworks */,
+				04059FED187202A200BA6557 /* libz.dylib in Frameworks */,
+				04059FEB1872027B00BA6557 /* liboxygine_macosx.a in Frameworks */,
+				04059FEA1872027500BA6557 /* SDL2.framework in Frameworks */,
+				049B57321871FBE900EF3C66 /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		04059FE01872026200BA6557 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04059FE41872026200BA6557 /* liboxygine_macosx.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		049B57251871FBE900EF3C66 = {
+			isa = PBXGroup;
+			children = (
+				049B57491871FBE900EF3C66 /* Images.xcassets */,
+				049B57381871FBE900EF3C66 /* Supporting Files */,
+				04A57D391871FF8B0068B1E5 /* src */,
+				04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */,
+				04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */,
+				049B57301871FBE900EF3C66 /* Frameworks */,
+				049B572F1871FBE900EF3C66 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		049B572F1871FBE900EF3C66 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				049B572E1871FBE900EF3C66 /* HelloWorldFacebook_macosx.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		049B57301871FBE900EF3C66 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				04059FF4187203A600BA6557 /* libjpeg.a */,
+				04059FF5187203A600BA6557 /* libpng.a */,
+				04059FF01872031A00BA6557 /* libjpeg.a */,
+				04059FF11872031A00BA6557 /* libpng.a */,
+				04059FEE187202AC00BA6557 /* OpenGL.framework */,
+				04059FEC187202A200BA6557 /* libz.dylib */,
+				049B57311871FBE900EF3C66 /* Cocoa.framework */,
+				049B57501871FBE900EF3C66 /* XCTest.framework */,
+				049B57331871FBE900EF3C66 /* Other Frameworks */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		049B57331871FBE900EF3C66 /* Other Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				049B57341871FBE900EF3C66 /* AppKit.framework */,
+				049B57351871FBE900EF3C66 /* CoreData.framework */,
+				049B57361871FBE900EF3C66 /* Foundation.framework */,
+			);
+			name = "Other Frameworks";
+			sourceTree = "<group>";
+		};
+		049B57371871FBE900EF3C66 /* demo */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = demo;
+			sourceTree = "<group>";
+		};
+		049B57381871FBE900EF3C66 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				4DA100C319512824B7570663 /* fonts */, 
+				04FE4D4FB640E0DF92DFB865 /* ident.free */, 
+				7F3B12E3C9D554D9FE28101D /* images */, 
+				F6123B1E6FE4471A00F49751 /* res.xml */, 
+				5DE458993031811A4C7D28C1 /* xmls */, 
+
+				049B57391871FBE900EF3C66 /* HelloWorldFacebook_macosx-Info.plist */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		04A57D391871FF8B0068B1E5 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				360377333740D8A2FD15BBE6 /* example.cpp */, 
+				0BF9628FC8D38F9748F0CDEB /* main.cpp */, 
+				BA41FC88D76540A6905224D6 /* example.h */, 
+
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		04A57D7F1872012A0068B1E5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04A57D861872012D0068B1E5 /* SDL2.framework */,
+				04A57D881872012D0068B1E5 /* libSDL2.a */,
+				04A57D8A1872012D0068B1E5 /* libSDL2.dylib */,
+				04A57D8C1872012D0068B1E5 /* Standard DMG */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		049B572D1871FBE900EF3C66 /* HelloWorldFacebook_macosx */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 049B575F1871FBE900EF3C66 /* Build configuration list for PBXNativeTarget "HelloWorldFacebook_macosx" */;
+			buildPhases = (
+				049B572A1871FBE900EF3C66 /* Sources */,
+				049B572B1871FBE900EF3C66 /* Frameworks */,
+				049B572C1871FBE900EF3C66 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				04059FE91872027200BA6557 /* PBXTargetDependency */,
+				04A57D8F187201EF0068B1E5 /* PBXTargetDependency */,
+			);
+			name = HelloWorldFacebook_macosx;
+			productName = HelloWorldFacebook;
+			productReference = 049B572E1871FBE900EF3C66 /* HelloWorldFacebook_macosx.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		049B57261871FBE900EF3C66 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0610;
+				ORGANIZATIONNAME = oxygine;
+			};
+			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "HelloWorldFacebook_macosx" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 049B57251871FBE900EF3C66;
+			productRefGroup = 049B572F1871FBE900EF3C66 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 04059FE01872026200BA6557 /* Products */;
+					ProjectRef = 04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */;
+				},
+				{
+					ProductGroup = 04A57D7F1872012A0068B1E5 /* Products */;
+					ProjectRef = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				049B572D1871FBE900EF3C66 /* HelloWorldFacebook_macosx */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		04059FE41872026200BA6557 /* liboxygine_macosx.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = liboxygine_macosx.a;
+			remoteRef = 04059FE31872026200BA6557 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D861872012D0068B1E5 /* SDL2.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = SDL2.framework;
+			remoteRef = 04A57D851872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D881872012D0068B1E5 /* libSDL2.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libSDL2.a;
+			remoteRef = 04A57D871872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D8A1872012D0068B1E5 /* libSDL2.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libSDL2.dylib;
+			remoteRef = 04A57D891872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D8C1872012D0068B1E5 /* Standard DMG */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = "Standard DMG";
+			remoteRef = 04A57D8B1872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		049B572C1871FBE900EF3C66 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C8860D93875589970329DCCD /* fonts */, 
+				1E839D002B2BA83FC83A695A /* ident.free */, 
+				3A631A475DE035FC53ADE5EA /* images */, 
+				CD59C69314E9E74CD0A11E03 /* res.xml */, 
+				EFF139F8BA484314F7AAF645 /* xmls */, 
+
+				049B574A1871FBE900EF3C66 /* Images.xcassets in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		049B572A1871FBE900EF3C66 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				2DC477AC10D6C07B3FE008F6 /* example.cpp */, 
+				DA49ED8903C628BA578C8670 /* main.cpp */, 
+
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		04059FE91872027200BA6557 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = oxygine_macosx;
+			targetProxy = 04059FE81872027200BA6557 /* PBXContainerItemProxy */;
+		};
+		04A57D8F187201EF0068B1E5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = Framework;
+			targetProxy = 04A57D8E187201EF0068B1E5 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		049B575D1871FBE900EF3C66 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = NO;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = macosx;
+				USER_HEADER_SEARCH_PATHS = "../../../../oxygine-framework//oxygine/src ../../../..//SDL/include";
+				VALID_ARCHS = "x86_64";
+			};
+			name = Debug;
+		};
+		049B575E1871FBE900EF3C66 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = NO;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = macosx;
+				USER_HEADER_SEARCH_PATHS = "../../../../oxygine-framework//oxygine/src ../../../..//SDL/include";
+				VALID_ARCHS = "x86_64";
+			};
+			name = Release;
+		};
+		049B57601871FBE900EF3C66 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				COMBINE_HIDPI_IMAGES = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "HelloWorldFacebook/HelloWorldFacebook_macosx-Prefix.pch";
+				INFOPLIST_FILE = "HelloWorldFacebook_macosx-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../../../oxygine-framework//oxygine/third_party/macosx/libraries",
+					"../../../../oxygine-framework//oxygine/third_party/ios/libraries",
+				);
+				PRODUCT_NAME = HelloWorldFacebook_macosx;
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		049B57611871FBE900EF3C66 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				COMBINE_HIDPI_IMAGES = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "HelloWorldFacebook/HelloWorldFacebook_macosx-Prefix.pch";
+				INFOPLIST_FILE = "HelloWorldFacebook_macosx-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../../../oxygine-framework//oxygine/third_party/macosx/libraries",
+					"../../../../oxygine-framework//oxygine/third_party/ios/libraries",
+				);
+				PRODUCT_NAME = HelloWorldFacebook_macosx;
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "HelloWorldFacebook_macosx" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				049B575D1871FBE900EF3C66 /* Debug */,
+				049B575E1871FBE900EF3C66 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		049B575F1871FBE900EF3C66 /* Build configuration list for PBXNativeTarget "HelloWorldFacebook_macosx" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				049B57601871FBE900EF3C66 /* Debug */,
+				049B57611871FBE900EF3C66 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 049B57261871FBE900EF3C66 /* Project object */;
+}

+ 48 - 0
example/HelloWorldAdmob/proj.win32/HelloWorldFacebook.sln

@@ -0,0 +1,48 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloWorldFacebook", "HelloWorldFacebook.vcxproj", "{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Oxygine", "../../../../oxygine-framework/\oxygine\SDL\win32\oxygine.vcxproj", "{52411305-CFE1-4FA8-9885-5729BFC816CF}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}.Debug|Win32.ActiveCfg = Debug|Win32
+		{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}.Debug|Win32.Build.0 = Debug|Win32
+		{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}.Debug|x64.ActiveCfg = Debug|Win32
+		{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}.Release|Win32.ActiveCfg = Release|Win32
+		{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}.Release|Win32.Build.0 = Release|Win32
+		{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}.Release|x64.ActiveCfg = Release|Win32
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64
+		{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.Build.0 = Debug|Win32
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.ActiveCfg = Debug|x64
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.Build.0 = Debug|x64
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.ActiveCfg = Release|Win32
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.Build.0 = Release|Win32
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.ActiveCfg = Release|x64
+		{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.Build.0 = Release|x64
+		{52411305-CFE1-4FA8-9885-5729BFC816CF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{52411305-CFE1-4FA8-9885-5729BFC816CF}.Debug|Win32.Build.0 = Debug|Win32
+		{52411305-CFE1-4FA8-9885-5729BFC816CF}.Debug|x64.ActiveCfg = Debug|Win32
+		{52411305-CFE1-4FA8-9885-5729BFC816CF}.Release|Win32.ActiveCfg = Release|Win32
+		{52411305-CFE1-4FA8-9885-5729BFC816CF}.Release|Win32.Build.0 = Release|Win32
+		{52411305-CFE1-4FA8-9885-5729BFC816CF}.Release|x64.ActiveCfg = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 128 - 0
example/HelloWorldAdmob/proj.win32/HelloWorldFacebook.vcxproj

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2B4D7491-A4F8-4606-B0E3-2A1FCE3C46C4}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>HelloWorldFacebook</RootNamespace>
+    <ProjectName>HelloWorldFacebook</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v110_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    
+    <WholeProgramOptimization>false</WholeProgramOptimization>
+    <WholeProgramOptimization Condition="'$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '14.0'">true</WholeProgramOptimization>
+    
+
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v110_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+
+  <PropertyGroup>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)_$(PlatformToolset)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)_$(PlatformToolset)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)_$(PlatformToolset)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)_$(PlatformToolset)\</IntDir>
+  </PropertyGroup>
+
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../../../oxygine-framework//oxygine/src;../../../..//SDL/include;../../../../oxygine-framework//oxygine/third_party/win32/pthreads/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies></AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../../oxygine-framework//oxygine/third_party/win32/libraries;../../../../oxygine-framework//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../../../oxygine-framework//oxygine/src;../../../..//SDL/include;../../../../oxygine-framework//oxygine/third_party/win32/pthreads/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>../../../../oxygine-framework//oxygine/third_party/win32/libraries;../../../../oxygine-framework//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies></AdditionalDependencies>
+      <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>    
+    <ProjectReference Include="../../../../oxygine-framework/\oxygine\SDL\win32\oxygine.vcxproj">
+      <Project>{52411305-cfe1-4fa8-9885-5729bfc816cf}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="../src/example.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 17 - 0
example/HelloWorldAdmob/proj.win32/HelloWorldFacebook.vcxproj.filters

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+</Project>

+ 67 - 0
example/HelloWorldAdmob/src/example.cpp

@@ -0,0 +1,67 @@
+#include "oxygine-framework.h"
+#include "test.h"
+
+#include "facebook.h"
+
+using namespace oxygine;
+
+
+//This contains our resources
+//In a real project you would have more than one Resources declaration.
+//It is important on mobile devices with limited memory and you would load/unload them
+Resources resources;
+
+
+class TestActor : public Test
+{
+public:
+
+    TestActor()
+    {
+
+        _x = 90;//getStage()->getWidth()/2.0f;
+        _y = 80;
+
+
+        addButton("login", "login");
+        addButton("token", "token = " + facebook::getAccessToken());
+    }
+
+    void clicked(string id)
+    {
+        if (id == "login")
+        {
+            facebook::login();
+        }
+    }
+};
+
+void example_preinit()
+{
+}
+
+
+void example_init()
+{
+    Test::init();
+
+    Test::instance = new TestActor;
+    getStage()->addChild(Test::instance);
+
+    //Initialize http requests
+    HttpRequestTask::init();
+
+    facebook::init();
+}
+
+void example_update()
+{
+}
+
+void example_destroy()
+{
+    resources.free();
+    Test::free();
+    HttpRequestTask::release();
+    facebook::free();
+}

+ 4 - 0
example/HelloWorldAdmob/src/example.h

@@ -0,0 +1,4 @@
+void example_preinit();
+void example_init();
+void example_destroy();
+void example_update();

+ 17 - 0
example/HelloWorldAdmob/src/ios/AppDelegate.h

@@ -0,0 +1,17 @@
+#ifndef Match3Quest_Match3QuestDelegate_h
+#define Match3Quest_Match3QuestDelegate_h
+
+
+#import "../../../SDL/src/video/uikit/SDL_uikitappdelegate.h"
+
+@interface SDLUIKitDelegate(AppDelegate)
+
+@end
+
+@interface AppDelegate : SDLUIKitDelegate
+
+    @property(strong, nonatomic) UIWindow* window;
+@end
+
+
+#endif

+ 44 - 0
example/HelloWorldAdmob/src/ios/AppDelegate.mm

@@ -0,0 +1,44 @@
+#import <Foundation/Foundation.h>
+#import <FBSDKCoreKit/FBSDKCoreKit.h>
+
+#import "AppDelegate.h"
+
+
+@implementation SDLUIKitDelegate (AppDelegate)
+
++ (NSString *)getAppDelegateClassName
+{
+    return @"AppDelegate";
+}
+
+@end
+
+@implementation AppDelegate
+
+@synthesize window=_window;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+    [[FBSDKApplicationDelegate sharedInstance] application:application
+                             didFinishLaunchingWithOptions:launchOptions];
+    
+    return [super application:application didFinishLaunchingWithOptions:launchOptions];
+}
+
+- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
+    return [[FBSDKApplicationDelegate sharedInstance] application:application
+                                                          openURL:url
+                                                sourceApplication:sourceApplication
+                                                       annotation:annotation
+            ];
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+    [super applicationDidBecomeActive:application];
+    
+    [FBSDKAppEvents activateApp];
+}
+
+
+@end

+ 156 - 0
example/HelloWorldAdmob/src/main.cpp

@@ -0,0 +1,156 @@
+/**
+    Attention!
+    This file initializes the Oxygine engine.
+    If you just started here and don't understand the code completely, feel free to come back later.
+    You can start from example.cpp and example.h, which main functions are called from here.
+*/
+#include "core/oxygine.h"
+#include "Stage.h"
+#include "DebugActor.h"
+
+#include "example.h"
+
+
+using namespace oxygine;
+
+
+// This function is called each frame
+int mainloop()
+{
+    // It gets passed to our example game implementation
+    example_update();
+
+    // Update our stage
+    // Update all actors. Actor::update will also be called for all its children
+    getStage()->update();
+
+    if (core::beginRendering())
+    {
+        Color clearColor(32, 32, 32, 255);
+        Rect viewport(Point(0, 0), core::getDisplaySize());
+        // Render all actors inside the stage. Actor::render will also be called for all its children
+        getStage()->render(clearColor, viewport);
+
+        core::swapDisplayBuffers();
+    }
+
+    // Update engine-internal components
+    // If input events are available, they are passed to Stage::instance.handleEvent
+    // If the function returns true, it means that the user requested the application to terminate
+    bool done = core::update();
+
+    return done ? 1 : 0;
+}
+
+// Application entry point
+void run()
+{
+    ObjectBase::__startTracingLeaks();
+
+    // Initialize Oxygine's internal stuff
+    core::init_desc desc;
+    desc.title = "Oxygine Application";
+
+#if OXYGINE_SDL || OXYGINE_EMSCRIPTEN
+    // The initial window size can be set up here on SDL builds
+    desc.w = 960;
+    desc.h = 640;
+    // Marmalade settings can be modified from the emulator's menu
+#endif
+
+
+    example_preinit();
+    core::init(&desc);
+
+
+    // Create the stage. Stage is a root node for all updateable and drawable objects
+    Stage::instance = new Stage(true);
+    Point size = core::getDisplaySize();
+    getStage()->setSize(size);
+
+    // DebugActor is a helper actor node. It shows FPS, memory usage and other useful stuff
+    DebugActor::show();
+
+    // Initializes our example game. See example.cpp
+    example_init();
+
+#ifdef EMSCRIPTEN
+    /*
+    If you build for Emscripten, mainloop is called automatically and shouldn't be called here.
+    See emscripten_set_main_loop in the EMSCRIPTEN section below
+    */
+    return;
+#endif
+
+
+    // This is the main game loop.
+    while (1)
+    {
+        int done = mainloop();
+        if (done)
+            break;
+    }
+    /*
+     If we get here, the user has requested the Application to terminate.
+     We dump and log all our created objects that have not been freed yet
+    */
+    ObjectBase::dumpCreatedObjects();
+
+    /*
+    Let's clean up everything right now and call ObjectBase::dumpObjects() again.
+    We need to free all allocated resources and delete all created actors.
+    All actors/sprites are smart-pointer objects and don't need to be removed by hand.
+    But now we want to delete it by hand.
+    */
+
+    // See example.cpp for the shutdown function implementation
+    example_destroy();
+
+
+    //renderer.cleanup();
+
+    // Releases all internal components and the stage
+    core::release();
+
+    // The dump list should be empty by now,
+    // we want to make sure that there aren't any memory leaks, so we call it again.
+    ObjectBase::dumpCreatedObjects();
+
+    ObjectBase::__stopTracingLeaks();
+    //end
+}
+
+#ifdef __S3E__
+int main(int argc, char* argv[])
+{
+    run();
+    return 0;
+}
+#endif
+
+
+#ifdef OXYGINE_SDL
+
+#include "SDL_main.h"
+extern "C"
+{
+    int main(int argc, char* argv[])
+    {
+        run();
+        return 0;
+    }
+};
+#endif
+
+#ifdef EMSCRIPTEN
+#include <emscripten.h>
+
+void one() { mainloop(); }
+
+int main(int argc, char* argv[])
+{
+    run();
+    emscripten_set_main_loop(one, 0, 0);
+    return 0;
+}
+#endif

+ 245 - 0
example/HelloWorldAdmob/src/test.cpp

@@ -0,0 +1,245 @@
+#include "test.h"
+#include "oxygine-framework.h"
+#include "core/STDFileSystem.h"
+#include "WebImage.h"
+
+Resources Test::resourcesUI;
+file::STDFileSystem extfs(true);
+spTest Test::instance;
+
+void Test::init()
+{
+    //Mount additional file system with inner path "ext"
+    //Used for searching files in data/ext
+    extfs.setPath(file::fs().getFullPath("ext").c_str());
+    file::mount(&extfs);
+
+    resourcesUI.loadXML("demo/res_ui.xml");
+    resourcesUI.loadXML("demo/fonts.xml");
+
+
+    HttpRequestTask::init();
+
+    //Load logo from oxygine server
+    spWebImage sp = new WebImage;
+    sp->load("http://oxygine.org/test/logo.png");
+    sp->setTouchEnabled(false);
+    sp->attachTo(getStage());
+    sp->setPriority(10);
+    sp->setAlpha(128);
+    sp->setSize(150, 107);
+
+    sp->setX(getStage()->getWidth() - sp->getWidth());
+    sp->setY(getStage()->getHeight() - sp->getHeight());
+}
+
+void Test::free()
+{
+    resourcesUI.free();
+    instance->detach();
+    instance = 0;
+    HttpRequestTask::release();
+}
+
+class Toggle: public Button
+{
+public:
+    Toggle(const Test::toggle* t, int num): _current(0)
+    {
+        _items.assign(t, t + num);
+    }
+
+    int _current;
+
+    std::vector<Test::toggle> _items;
+};
+
+Color textColor(72, 61, 139, 255);
+
+spTextField createText(const std::string& txt)
+{
+    spTextField text = new TextField();
+
+    TextStyle style;
+    style.font = Test::resourcesUI.getResFont("main")->getFont();
+    style.color = textColor;
+    style.vAlign = TextStyle::VALIGN_MIDDLE;
+    style.hAlign = TextStyle::HALIGN_CENTER;
+    style.multiline = true;
+
+    text->setStyle(style);
+    text->setText(txt.c_str());
+
+    return text;
+}
+
+spButton createButtonHelper(spButton button, const std::string& txt, EventCallback cb)
+{
+    button->setPriority(10);
+    //button->setName(id);
+    button->setResAnim(Test::resourcesUI.getResAnim("button"));
+    button->addEventListener(TouchEvent::CLICK, cb);
+
+    //Create Actor with Text and add it to button as child
+    spTextField text = createText(txt);
+    text->setSize(button->getSize());
+    text->attachTo(button);
+
+    return button;
+}
+
+
+Test::Test() : _color(Color::White), _txtColor(72, 61, 139, 255)
+{
+    setSize(getStage()->getSize());
+
+    _x = getWidth() - 100;
+    _y = 2;
+
+    ui = new Actor;
+    content = new Content;
+    content->setSize(getSize());
+
+    addChild(content);
+    addChild(ui);
+
+    if (instance)
+    {
+        spButton button = createButtonHelper(new Button, "back", CLOSURE(this, &Test::back));
+        button->setY(getHeight() - button->getHeight());
+        ui->addChild(button);
+    }
+
+    memset(_notifies, 0, sizeof(_notifies));
+}
+
+
+Test::~Test()
+{
+}
+
+
+spButton Test::addButton(std::string id, std::string txt)
+{
+    textColor = _txtColor;
+    spButton button = createButtonHelper(new Button, txt, CLOSURE(this, &Test::_clicked));
+    initActor(button.get(),
+              arg_name = id,
+              arg_attachTo = ui,
+              arg_anchor = Vector2(0.5f, 0.0f),
+              arg_pos = Vector2(_x, _y));
+    button->setColor(_color);
+    textColor = Color(72, 61, 139, 255);
+
+    _y += button->getHeight() + 2.0f;
+
+    if (_y + button->getHeight() >= getHeight())
+    {
+        _y = 5;
+        _x += button->getWidth() + 70;
+    }
+
+    return button;
+}
+
+void Test::addToggle(std::string id, const toggle* t, int num)
+{
+    spButton button = createButtonHelper(new Toggle(t, num), t[0].text, CLOSURE(this, &Test::_toggleClicked));
+    initActor(button.get(),
+              arg_name = id,
+              arg_attachTo = ui,
+              arg_anchor = Vector2(0.5f, 0.0f),
+              arg_pos = Vector2(_x, _y));
+
+    _y += button->getHeight() + 2.0f;
+
+    if (_y + button->getHeight() >= getHeight())
+    {
+        _y = 0;
+        _x += button->getWidth() + 70;
+    }
+}
+
+void Test::updateText(std::string id, std::string txt)
+{
+    spActor child = ui->getChild(id);
+    if (!child)
+        return;
+
+    spTextField t = safeSpCast<TextField>(child->getFirstChild());
+    if (!t)
+        return;
+    t->setText(txt);
+}
+
+
+void Test::_clicked(Event* event)
+{
+    clicked(event->currentTarget->getName());
+}
+
+void Test::_toggleClicked(Event* event)
+{
+    Toggle* t = safeCast<Toggle*>(event->currentTarget.get());
+
+    toggleClicked(event->currentTarget->getName(), &t->_items[t->_current]);
+
+    t->_current = (t->_current + 1) % t->_items.size();
+    spTextField ta = safeSpCast<TextField>(t->getFirstChild());
+    const toggle* data = &t->_items[t->_current];
+    ta->setText(data->text);
+}
+
+
+void Test::back(Event* event)
+{
+    detach();
+    instance->setVisible(true);
+}
+
+
+void Test::notify(std::string txt, int time)
+{
+    size_t N = 0;
+    for (size_t i = 0; i < MAX_NOTIFIES; ++i)
+    {
+        if (_notifies[i])
+            continue;
+        N = i;
+        break;
+    }
+
+    _notifies[N] += 1;
+
+
+    spColorRectSprite sprite = new ColorRectSprite();
+    sprite->setUserData((void*)N);
+    sprite->setPriority(10);
+    Color colors[] = {Color(0xD2691EFF), Color(0x7FFFD4FF), Color(0xDC143CFF), Color(0xADFF2FFF), };
+    Color c = colors[rand() % 4];
+    sprite->setColor(c);
+    sprite->setSize(100, 30);
+    //sprite->setAnimFrame(resourcesUI.getResAnim("button"));
+    sprite->setAlpha(0);
+
+    spTweenQueue tq = new TweenQueue;
+    tq->add(Actor::TweenAlpha(255), 300, 1, false, 0, Tween::ease_inExpo);
+    tq->add(Actor::TweenAlpha(0), 300, 1, false, 1200);
+    tq->setDetachActor(true);
+    tq->addDoneCallback(CLOSURE(this, &Test::notifyDone));
+
+    sprite->addTween(tq);
+    sprite->attachTo(ui);
+    sprite->setPosition(2.0f, getHeight() - 100.0f - N * sprite->getHeight() * 1.1f);
+
+    spTextField text = createText(txt);
+    text->attachTo(sprite);
+    text->setColor(Color::Black);
+    text->setPosition(sprite->getSize() / 2);
+}
+
+void Test::notifyDone(Event* ev)
+{
+    size_t N = size_t(ev->target->getUserData());
+    _notifies[N] -= 1;
+}

+ 83 - 0
example/HelloWorldAdmob/src/test.h

@@ -0,0 +1,83 @@
+#pragma once
+#include "Actor.h"
+#include "Button.h"
+#include "RenderState.h"
+#include "STDRenderer.h"
+#include "TextField.h"
+using namespace oxygine;
+using namespace std;
+
+
+spTextField createText(const std::string& txt);
+spButton createButtonHelper(spButton, const std::string& txt, EventCallback cb);
+
+class Content: public Actor
+{
+public:
+    Content() : driver(0) { setName("content"); }
+    IVideoDriver* driver;
+
+    /*
+    void render(const RenderState& parentRS)
+    {
+
+        parentRS.renderer->drawBatch();
+
+        RenderState rs = parentRS;
+        STDRenderer renderer(driver ? driver : IVideoDriver::instance);
+        renderer.Renderer::begin(parentRS.renderer);
+        rs.renderer = &renderer;
+        Actor::render(rs);
+        renderer.end();
+    }
+    */
+};
+
+DECLARE_SMART(Test, spTest);
+class Test: public Actor
+{
+public:
+    Test();
+    ~Test();
+
+    static void init();
+    static void free();
+    static spTest instance;
+
+    struct toggle
+    {
+        string text;
+        int value;
+        const void* data;
+        toggle() {}
+        toggle(const char* text_, int v_ = 0, const void* data_ = 0): text(text_), value(v_), data(data_) {}
+
+    };
+
+    spButton addButton(string id, string txt);
+    void addToggle(string id, const toggle* t, int num);
+    void updateText(string id, string txt);
+    virtual void clicked(string id) {}
+    virtual void toggleClicked(string id, const toggle* data) {}
+    void _clicked(Event* event);
+    void _toggleClicked(Event* event);
+    void back(Event* event);
+
+    void notify(string text, int time = 400);
+
+protected:
+    void notifyDone(Event* ev);
+
+    Color _color;
+    Color _txtColor;
+
+    float _x;
+    float _y;
+    spActor ui;
+    Content* content;
+    enum {MAX_NOTIFIES = 8};
+    int _notifies[MAX_NOTIFIES];
+
+public:
+    static Resources resourcesUI;
+};

+ 88 - 0
src/admob.cpp

@@ -0,0 +1,88 @@
+#include "admob.h"
+
+#ifdef __ANDROID__
+    #include "android/AndroidAdmob.h"
+#elif __APPLE__
+    #include <TargetConditionals.h>
+    #include "ios/iosAdmob.h"
+#else
+    #include "sim/AdmobSimulator.h"
+#endif
+
+
+
+#define ADMOB_EXT_ENABLED 1
+
+namespace admob
+{
+
+    spEventDispatcher _dispatcher;
+
+    spEventDispatcher dispatcher()
+    {
+        return _dispatcher;
+    }
+
+    void init()
+    {
+#if !ADMOB_EXT_ENABLED
+        return;
+#endif
+
+        log::messageln("admob::init");
+
+        OX_ASSERT(_dispatcher == 0);
+        _dispatcher = new EventDispatcher;
+
+#ifdef __ANDROID__
+        jniAdmobInit();
+#elif TARGET_OS_IPHONE
+
+#else
+        admobSimulatorInit();
+#endif
+        log::messageln("admob::init done");
+    }
+
+    void free()
+    {
+#if !ADMOB_EXT_ENABLED
+        return;
+#endif
+
+        log::messageln("admob::free");
+
+        OX_ASSERT(_dispatcher);
+
+#ifdef __ANDROID__
+        jniAdmobFree();
+#endif
+        _dispatcher->removeAllEventListeners();
+        _dispatcher = 0;
+        log::messageln("admob::free done");
+    }
+
+    /*void doSomething()
+    {
+#ifdef __ANDROID__
+        jniDoSomethingInJava();
+#elif TARGET_OS_IPHONE
+        jniDoSomethingInObjectiveC();
+#else
+        simulatorFunction();
+#endif
+        
+    }*/
+
+
+    namespace internal
+    {
+
+        /*void callItFromNativeCallback()
+        {
+            YourEventExample ev;
+            _dispatcher->dispatchEvent(&ev);
+        }*/
+    }
+}
+

+ 33 - 0
src/admob.h

@@ -0,0 +1,33 @@
+#pragma once
+
+#include "EventDispatcher.h"
+#include "Event.h"
+#include "json/json.h"
+#include <string>
+#include <list>
+
+using namespace std;
+using namespace oxygine;
+
+namespace admob
+{
+
+    void init();
+    void free();
+
+    /*class YourEventExample : public Event
+    {
+    public:
+        enum { EVENT = sysEventID('f', 'b', 't')};
+        YourEventExample() : Event(EVENT) {};
+    };*/
+
+    spEventDispatcher dispatcher();
+
+    //void doSomething();
+
+    namespace internal
+    {
+            //void callItFromNativeCallback();
+    }
+};

+ 113 - 0
src/android/AndroidAdmob.cpp

@@ -0,0 +1,113 @@
+#include <jni.h>
+#include <android/log.h>
+#include <assert.h>
+#include "core/oxygine.h"
+#include "core/Object.h"
+#include "core/ThreadMessages.h"
+#include "core/oxygine.h"
+#include "core/android/jniHelper.h"
+#include "core/android/jniUtils.h"
+#include "json/json.h"
+#include "src/admob.h"
+
+
+using namespace oxygine;
+
+jclass _jAdmobClass = 0;
+jobject _jAdmobObject = 0;
+
+bool isAdmobEnabled()
+{
+    return _jAdmobClass && _jAdmobObject;
+}
+
+
+extern "C"
+{
+    /*JNIEXPORT void JNICALL Java_org_oxygine_admob_AdmobAdapter_YOUR_FUNC_NAME(JNIEnv* env, jobject obj, jstring json_data, jboolean error)
+    {
+        string data = jniGetString(env, json_data);
+
+        core::getMainThreadDispatcher().postCallback([ = ]()
+        {
+            //call internal function there from src/admob/admob.h
+            admob::internal::callItFromNativeCallback();
+        });
+    }*/
+
+
+}
+
+
+void jniAdmobInit()
+{
+    try
+    {
+        JNIEnv* env = jniGetEnv();
+        LOCAL_REF_HOLDER(env);
+        JNI_NOT_NULL(env);
+
+        _jAdmobClass = env->FindClass("org/oxygine/admob/AdmobAdapter");
+        JNI_NOT_NULL(_jAdmobClass);
+
+        _jAdmobClass = (jclass) env->NewGlobalRef(_jAdmobClass);
+        JNI_NOT_NULL(_jAdmobClass);
+
+        _jAdmobObject = env->NewGlobalRef(jniFindExtension(env, _jAdmobClass));
+        JNI_NOT_NULL(_jAdmobObject);
+    }
+    catch (const notFound&)
+    {
+        log::error("jniAdmobInit failed, class/member not found");
+    }
+}
+
+void jniAdmobFree()
+{
+    if (!isAdmobEnabled())
+        return;
+
+    try
+    {
+        JNIEnv* env = jniGetEnv();
+        LOCAL_REF_HOLDER(env);
+
+        env->DeleteGlobalRef(_jAdmobClass);
+        _jAdmobClass = 0;
+
+        env->DeleteGlobalRef(_jAdmobObject);
+        _jAdmobObject = 0;
+    }
+    catch (const notFound&)
+    {
+
+    }
+}
+
+/*
+bool jniAdmobSomeBoolFunc()
+    {
+    if (!isAdmobEnabled())
+        return false;
+
+    bool result = false;
+    try
+    {
+        JNIEnv* env = jniGetEnv();
+        LOCAL_REF_HOLDER(env);
+        //jstring jappLinkUrl = env->NewStringUTF(appLinkUrl.c_str()); //to jstring example
+        jmethodID jisMethod = env->GetMethodID(_jAdmobClass, "FUNC_NAME_JAVA", "()Z");
+        JNI_NOT_NULL(jisMethod);
+        //string data = jniGetString(env, (jstring) obj); //string example
+        jboolean jb = env->CallBooleanMethod(_jAdmobObject, jisMethod);
+        result = (bool) jb;
+
+    }
+    catch (const notFound&)
+    {
+        log::error("jniAdmobSomeBoolFunc failed, class/member not found");
+    }
+
+    return result;
+}
+*/

+ 8 - 0
src/android/AndroidAdmob.h

@@ -0,0 +1,8 @@
+#pragma once
+
+#include <string>
+
+using namespace std;
+
+void jniAdmobInit();
+void jniAdmobFree();

+ 7 - 0
src/ios/iosAdmob.h

@@ -0,0 +1,7 @@
+#ifndef Header_h
+#define Header_h
+#include <string>
+
+//void iosAdmobLogin();
+
+#endif /* Header_h */

+ 24 - 0
src/ios/iosAdmob.mm

@@ -0,0 +1,24 @@
+#include "iosAdmob.h"
+#import <Foundation/Foundation.h>
+
+/*void iosFacebookLogin()
+{
+    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
+    [login
+     logInWithReadPermissions: @[@"public_profile"]
+     fromViewController:0
+     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
+         if (error) {
+             NSLog(@"Process error");
+         } else if (result.isCancelled) {
+             NSLog(@"Cancelled");
+         } else {
+             NSLog(@"Logged in");
+         }
+     }];
+}
+
+std::string iosFacebookGetAccessToken()
+{
+    return [[FBSDKAccessToken currentAccessToken ].tokenString UTF8String];
+}*/

+ 162 - 0
src/sim/AdmobSimulator.cpp

@@ -0,0 +1,162 @@
+#include "AdmobSimulator.h"
+#include "admob.h"
+#include "json/json.h"
+#include "core/file.h"
+#include "Box9Sprite.h"
+#include "TextField.h"
+#include "DebugActor.h"
+#include "res/Resources.h"
+#include "Stage.h"
+#include "core/oxygine.h"
+
+
+DECLARE_SMART(Btn, spBtn);
+class Btn : public Box9Sprite
+{
+public:
+    Btn()
+    {
+        _txt = new TextField;
+        _txt->setText("OK");
+        _txt->setAlign(TextStyle::VALIGN_MIDDLE, TextStyle::HALIGN_CENTER);
+        addChild(_txt);
+
+        setColor(Color::Green);
+        setResAnim(DebugActor::resSystem->getResAnim("btn"));
+
+        addEventListener(TouchEvent::OVER, CLOSURE(this, &Btn::touch));
+        addEventListener(TouchEvent::OUT, CLOSURE(this, &Btn::touch));
+    }
+
+    void setText(const string& txt)
+    {
+        _txt->setText(txt);
+    }
+
+    void touch(Event* ev)
+    {
+        if (ev->type == TouchEvent::OVER)
+            setColor(Color::GreenYellow);
+        if (ev->type == TouchEvent::OUT)
+            setColor(Color::Green);
+    }
+
+    void sizeChanged(const Vector2& size)
+    {
+        _txt->setSize(size);
+    }
+
+    spTextField _txt;
+};
+
+DECLARE_SMART(AdmobDialog, spAdmobDialog);
+class AdmobDialog : public Actor
+{
+public:
+    enum
+    {
+        EVENT_OK = 12323,
+        EVENT_CANCEL
+    };
+
+    AdmobDialog()
+    {
+        setPriority(9999);
+
+        spActor blocker = new Actor;
+        blocker->setPosition(-getStage()->getSize());
+        blocker->setSize(getStage()->getSize() * 3);
+        addChild(blocker);
+
+        _bg = new Box9Sprite;
+        addChild(_bg);
+
+        _title = new TextField;
+        _title->setAlign(TextStyle::VALIGN_MIDDLE, TextStyle::HALIGN_CENTER);
+        _title->setMultiline(true);
+        _title->setColor(Color::Black);
+        addChild(_title);
+
+        _btnOk = new Btn();
+        _btnOk->setSize(70, 30);
+        _btnOk->setText("Ok");
+        addChild(_btnOk);
+
+        _btnCancel = new Btn();
+        _btnCancel->setSize(70, 30);
+        _btnCancel->setText("Cancel");
+        addChild(_btnCancel);
+    }
+
+    void setTitle(const string& txt)
+    {
+        _title->setText(txt);
+    }
+
+    void doRender(const RenderState& rs)
+    {
+        //Stage::render()
+    }
+
+    void sizeChanged(const Vector2& size)
+    {
+        _bg->setSize(size);
+
+        Vector2 center = core::getDisplaySize().cast<Vector2>() / 2.0f;
+        center = getStage()->global2local(center);
+
+        float sx = getStage()->getScaleX();
+        setPosition(center - size / sx / 2);
+
+        _btnOk->setPosition(size - _btnOk->getSize() - Vector2(10, 10));
+        _btnCancel->setPosition(10, getHeight() - 10 - _btnCancel->getHeight());
+        _title->setWidth(getWidth());
+        _title->setHeight(_btnCancel->getY());
+    }
+
+    spBox9Sprite        _bg;
+    spTextField         _title;
+    spBtn               _btnOk;
+    spBtn               _btnCancel;
+};
+
+
+//Json::Value _admob(Json::objectValue);
+
+/*void admobSimulatorLogin()
+{
+    spAdmobDialog dialog = new AdmobDialog;
+    dialog->setScale(1.0f / getStage()->getScaleX());
+    dialog->setSize(500, 300);
+    getStage()->addChild(dialog);
+
+    dialog->_btnOk->addClickListener([ = ](Event * e)
+    {
+        dialog->detach();
+        e->removeListener();
+        _isLoggedIn = true;
+
+        admob::internal::loginResult(true);
+    });
+
+    dialog->_btnCancel->addClickListener([ = ](Event * e)
+    {
+        dialog->detach();
+        e->removeListener();
+    });
+}*/
+
+void admobSimulatorInit()
+{
+    log::messageln("Admob Simulator Init");
+
+
+    /*file::buffer bf;
+    file::read(".admob", bf, ep_ignore_error);
+
+    if (!bf.empty())
+    {
+        Json::Reader reader;
+        reader.parse((char*)&bf.front(), (char*)&bf.front() + bf.size(), _admob, false);
+    }*/
+}

+ 7 - 0
src/sim/AdmobSimulator.h

@@ -0,0 +1,7 @@
+#pragma once
+#include <string>
+
+using namespace std;
+
+void admobSimulatorInit();
+