diff --git a/Android_Engine.mk b/Android_Engine.mk
new file mode 100644
index 0000000..67778df
--- /dev/null
+++ b/Android_Engine.mk
@@ -0,0 +1,340 @@
+#Engine and libs path for Android projects
+
+
+ENGINE_PATH = $(SalmonEnginePathCygwin)
+
+#BOOST_PATH = $(LibsPathCygwin)/boost_1_47_0
+BOOST_PATH = $(LibsPathCygwin)/boost_1_52_0
+
+OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0
+
+VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2
+
+SQUIRREL_PATH = $(LibsPathCygwin)/sqplus
+
+LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android
+
+ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni
+
+#ENGINE_PATH = $(SalmonEnginePath)
+
+#BOOST_PATH = $(LibsPath)/boost_1_47_0
+
+#OGG_PATH = $(LibsPath)/libogg-1.3.0
+
+#VORBIS_PATH = $(LibsPath)/libvorbis-1.3.2
+
+#SQUIRREL_PATH = $(LibsPath)/sqplus
+
+#LIBPNG_PATH = $(LibsPath)/libpng_1.4.1_android
+
+#ZIP_PATH = $(LibsPath)/julienr-libzip-android/jni
+
+
+#================== ZIP =================
+
+LOCAL_PATH := $(ZIP_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := zip
+
+LOCAL_SRC_FILES :=\
+ zip_add.c \
+ zip_add_dir.c \
+ zip_close.c \
+ zip_delete.c \
+ zip_dirent.c \
+ zip_entry_free.c \
+ zip_entry_new.c \
+ zip_err_str.c \
+ zip_error.c \
+ zip_error_clear.c \
+ zip_error_get.c \
+ zip_error_get_sys_type.c \
+ zip_error_strerror.c \
+ zip_error_to_str.c \
+ zip_fclose.c \
+ zip_file_error_clear.c \
+ zip_file_error_get.c \
+ zip_file_get_offset.c \
+ zip_file_strerror.c \
+ zip_filerange_crc.c \
+ zip_fopen.c \
+ zip_fopen_index.c \
+ zip_fread.c \
+ zip_free.c \
+ zip_get_archive_comment.c \
+ zip_get_archive_flag.c \
+ zip_get_file_comment.c \
+ zip_get_num_files.c \
+ zip_get_name.c \
+ zip_memdup.c \
+ zip_name_locate.c \
+ zip_new.c \
+ zip_open.c \
+ zip_rename.c \
+ zip_replace.c \
+ zip_set_archive_comment.c \
+ zip_set_archive_flag.c \
+ zip_set_file_comment.c \
+ zip_source_buffer.c \
+ zip_source_file.c \
+ zip_source_filep.c \
+ zip_source_free.c \
+ zip_source_function.c \
+ zip_source_zip.c \
+ zip_set_name.c \
+ zip_stat.c \
+ zip_stat_index.c \
+ zip_stat_init.c \
+ zip_strerror.c \
+ zip_unchange.c \
+ zip_unchange_all.c \
+ zip_unchange_archive.c \
+ zip_unchange_data.c
+
+LOCAL_LDLIBS := -lz
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+#================== PNG =================
+
+LOCAL_PATH := $(LIBPNG_PATH)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := png_lib
+LOCAL_SRC_FILES :=\
+ png.c \
+ pngerror.c \
+ pngget.c \
+ pngmem.c \
+ pngpread.c \
+ pngread.c \
+ pngrio.c \
+ pngrtran.c \
+ pngrutil.c \
+ pngset.c \
+ pngtrans.c \
+ pngwio.c \
+ pngwrite.c \
+ pngwtran.c \
+ pngwutil.c
+
+LOCAL_LDLIBS := -lz
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#================== SQUIRREL =================
+
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := squirrel
+LOCAL_PATH := $(SQUIRREL_PATH)
+LOCAL_C_INCLUDES := $(SQUIRREL_PATH)/include $(SQUIRREL_PATH)/sqplus/sqplus $(SQUIRREL_PATH)/squirrel $(SQUIRREL_PATH)/sqstdlib
+LOCAL_SRC_FILES := squirrel/sqapi.cpp \
+ squirrel/sqbaselib.cpp \
+ squirrel/sqclass.cpp \
+ squirrel/sqcompiler.cpp \
+ squirrel/sqdebug.cpp \
+ squirrel/sqfuncstate.cpp \
+ squirrel/sqlexer.cpp \
+ squirrel/sqmem.cpp \
+ squirrel/sqobject.cpp \
+ squirrel/sqstate.cpp \
+ squirrel/sqtable.cpp \
+ squirrel/sqvm.cpp \
+ sqplus/SqPlus.cpp \
+ sqplus/SqPlusOCharBuf.cpp \
+ sqplus/SqPlusUtf8.cpp \
+ sqplus/SquirrelBindingsUtils.cpp \
+ sqplus/SquirrelObject.cpp \
+ sqplus/SquirrelVM.cpp \
+ sqstdlib/sqstdblob.cpp \
+ sqstdlib/sqstdio.cpp \
+ sqstdlib/sqstdmath.cpp \
+ sqstdlib/sqstdrex.cpp \
+ sqstdlib/sqstdstream.cpp \
+ sqstdlib/sqstdstring.cpp \
+ sqstdlib/sqstdsystem.cpp \
+ sqstdlib/sqstdaux.cpp \
+
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS := -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#================== OGG / VORBIS / VORBISFILE ===================
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := vorbis
+
+LOCAL_PATH := $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES := $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/src
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_SRC_FILES := ../../libogg-1.3.0/src/framing.c ../../libogg-1.3.0/src/bitwise.c
+LOCAL_SRC_FILES += mdct.c smallft.c block.c envelope.c window.c lsp.c \
+ lpc.c analysis.c synthesis.c psy.c info.c \
+ floor1.c floor0.c\
+ res0.c mapping0.c registry.c codebook.c sharedbook.c\
+ lookup.c bitrate.c
+LOCAL_SRC_FILES += vorbisfile.c
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS := -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#================== BOOST ====================
+
+LOCAL_PATH := $(BOOST_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := boost
+LOCAL_C_INCLUDES := $(BOOST_PATH)
+
+LOCAL_CFLAGS := -std=gnu++11 --std=c++11
+
+#thread
+LOCAL_SRC_FILES := /libs/thread/src/pthread/thread.cpp
+LOCAL_SRC_FILES += /libs/thread/src/pthread/once.cpp
+
+#signals
+LOCAL_SRC_FILES += /libs/signals/src/connection.cpp
+LOCAL_SRC_FILES += /libs/signals/src/named_slot_map.cpp
+LOCAL_SRC_FILES += /libs/signals/src/signal_base.cpp
+LOCAL_SRC_FILES += /libs/signals/src/slot.cpp
+LOCAL_SRC_FILES += /libs/signals/src/trackable.cpp
+
+#system
+LOCAL_SRC_FILES += /libs/system/src/error_code.cpp
+
+#regex
+LOCAL_SRC_FILES += /libs/regex/src/c_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/cpp_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/cregex.cpp
+LOCAL_SRC_FILES += /libs/regex/src/fileiter.cpp
+LOCAL_SRC_FILES += /libs/regex/src/icu.cpp
+LOCAL_SRC_FILES += /libs/regex/src/instances.cpp
+LOCAL_SRC_FILES += /libs/regex/src/posix_api.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex_debug.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex_raw_buffer.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex_traits_defaults.cpp
+LOCAL_SRC_FILES += /libs/regex/src/static_mutex.cpp
+LOCAL_SRC_FILES += /libs/regex/src/usinstances.cpp
+LOCAL_SRC_FILES += /libs/regex/src/w32_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/wc_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/wide_posix_api.cpp
+LOCAL_SRC_FILES += /libs/regex/src/winstances.cpp
+
+#date_time
+LOCAL_SRC_FILES += /libs/date_time/src/gregorian/greg_month.cpp
+LOCAL_SRC_FILES += /libs/date_time/src/gregorian/greg_weekday.cpp
+LOCAL_SRC_FILES += /libs/date_time/src/gregorian/date_generators.cpp
+
+#asio
+#nothing
+
+
+
+LOCAL_LDLIBS := -llog -Wl
+
+#debug
+#LOCAL_CFLAGS += -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#============= HALIBUT ENGINE ================
+
+LOCAL_PATH := $(ENGINE_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := HalibutEngine
+LOCAL_CFLAGS := -DTARGET_ANDROID -DTARGET_HALIBUT -std=gnu++11 --std=c++11
+
+LOCAL_STATIC_LIBRARIES := boost
+LOCAL_STATIC_LIBRARIES += ogg
+LOCAL_STATIC_LIBRARIES += vorbis
+LOCAL_STATIC_LIBRARIES += squirrel
+LOCAL_STATIC_LIBRARIES += png_lib
+LOCAL_STATIC_LIBRARIES += zip
+LOCAL_SHARED_LIBRARIES := gnustl_shared
+LOCAL_C_INCLUDES := $(BOOST_PATH)
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel
+LOCAL_C_INCLUDES += $(LIBPNG_PATH)
+LOCAL_C_INCLUDES += $(ZIP_PATH)
+LOCAL_SRC_FILES := src/Utils/DataTypes/DataTypes.cpp
+LOCAL_SRC_FILES += src/Utils/DataTypes/NewDataTypes.cpp
+LOCAL_SRC_FILES += src/Utils/FileUtils/FileUtils.cpp
+LOCAL_SRC_FILES += src/Utils/JniApi/JniApi.cpp
+LOCAL_SRC_FILES += src/Utils/Console/Console.cpp
+LOCAL_SRC_FILES += src/Utils/SerializeInterface/SerializeInterface.cpp
+LOCAL_SRC_FILES += src/Utils/PngHelper.cpp
+LOCAL_SRC_FILES += src/Utils/SimpleTimer.cpp
+LOCAL_SRC_FILES += src/TextureManager/SalmonTexture.cpp
+LOCAL_SRC_FILES += src/ShaderManager/ShaderManager.cpp
+LOCAL_SRC_FILES += src/FrameManager/FrameManager.cpp
+LOCAL_SRC_FILES += src/SoundManager/SoundManagerAndroid.cpp
+LOCAL_SRC_FILES += src/SoundManager/SoundManagerDataTypes.cpp
+LOCAL_SRC_FILES += src/FontManager/FontManager.cpp
+LOCAL_SRC_FILES += src/ScriptManager/ScriptManager.cpp
+LOCAL_SRC_FILES += src/GUIManager/GUIManager.cpp
+LOCAL_SRC_FILES += src/GUIManager/ButtonWidget.cpp
+LOCAL_SRC_FILES += src/GUIManager/WidgetXmlParsers.cpp
+LOCAL_SRC_FILES += src/HalibutAnimation/HalibutAnimation.cpp
+LOCAL_SRC_FILES += src/SmartValueManager/SmartValueManager.cpp
+LOCAL_SRC_FILES += src/ApplicationInterface.cpp
+LOCAL_SRC_FILES += src/Render/RenderInterface.cpp
+LOCAL_SRC_FILES += src/Render/HalibutRender/HalibutRenderInterface.cpp
+LOCAL_SRC_FILES += src/Render/HalibutRender/HalibutRenderGLES20.cpp
+LOCAL_SRC_FILES += src/Render/HalibutRender/HalibutRenderAndroid.cpp
+LOCAL_SRC_FILES += src/Render/RenderMisc.cpp
+LOCAL_SRC_FILES += src/HalibutEngineAndroid.cpp
+LOCAL_SRC_FILES += src/HalibutEngineInterface.cpp
+LOCAL_LDLIBS := -lGLESv2
+
+LOCAL_LDLIBS += -llog -Wl -lz
+
+#debug
+#LOCAL_CFLAGS += -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+#no -s cause no need stripping!!!!
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/Android_Salmon_Engine.mk b/Android_Salmon_Engine.mk
new file mode 100644
index 0000000..e4b15d3
--- /dev/null
+++ b/Android_Salmon_Engine.mk
@@ -0,0 +1,351 @@
+#Engine and libs path for Android projects
+
+
+ENGINE_PATH = $(SalmonEnginePathCygwin)
+
+BOOST_PATH = $(LibsPathCygwin)/boost_1_52_0
+
+OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0
+
+VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2
+
+SQUIRREL_PATH = $(LibsPathCygwin)/sqplus
+
+LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android
+
+ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni
+
+#ENGINE_PATH = $(SalmonEnginePath)
+
+#BOOST_PATH = $(LibsPath)/boost_1_52_0
+
+#OGG_PATH = $(LibsPath)/libogg-1.3.0
+
+#VORBIS_PATH = $(LibsPath)/libvorbis-1.3.2
+
+#SQUIRREL_PATH = $(LibsPath)/sqplus
+
+#LIBPNG_PATH = $(LibsPath)/libpng_1.4.1_android
+
+#ZIP_PATH = $(LibsPath)/julienr-libzip-android/jni
+
+
+#================== ZIP =================
+
+LOCAL_PATH := $(ZIP_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := zip
+
+LOCAL_SRC_FILES :=\
+ zip_add.c \
+ zip_add_dir.c \
+ zip_close.c \
+ zip_delete.c \
+ zip_dirent.c \
+ zip_entry_free.c \
+ zip_entry_new.c \
+ zip_err_str.c \
+ zip_error.c \
+ zip_error_clear.c \
+ zip_error_get.c \
+ zip_error_get_sys_type.c \
+ zip_error_strerror.c \
+ zip_error_to_str.c \
+ zip_fclose.c \
+ zip_file_error_clear.c \
+ zip_file_error_get.c \
+ zip_file_get_offset.c \
+ zip_file_strerror.c \
+ zip_filerange_crc.c \
+ zip_fopen.c \
+ zip_fopen_index.c \
+ zip_fread.c \
+ zip_free.c \
+ zip_get_archive_comment.c \
+ zip_get_archive_flag.c \
+ zip_get_file_comment.c \
+ zip_get_num_files.c \
+ zip_get_name.c \
+ zip_memdup.c \
+ zip_name_locate.c \
+ zip_new.c \
+ zip_open.c \
+ zip_rename.c \
+ zip_replace.c \
+ zip_set_archive_comment.c \
+ zip_set_archive_flag.c \
+ zip_set_file_comment.c \
+ zip_source_buffer.c \
+ zip_source_file.c \
+ zip_source_filep.c \
+ zip_source_free.c \
+ zip_source_function.c \
+ zip_source_zip.c \
+ zip_set_name.c \
+ zip_stat.c \
+ zip_stat_index.c \
+ zip_stat_init.c \
+ zip_strerror.c \
+ zip_unchange.c \
+ zip_unchange_all.c \
+ zip_unchange_archive.c \
+ zip_unchange_data.c
+
+LOCAL_LDLIBS := -lz
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+
+include $(BUILD_STATIC_LIBRARY)
+
+#================== PNG =================
+
+LOCAL_PATH := $(LIBPNG_PATH)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := png_lib
+LOCAL_SRC_FILES :=\
+ png.c \
+ pngerror.c \
+ pngget.c \
+ pngmem.c \
+ pngpread.c \
+ pngread.c \
+ pngrio.c \
+ pngrtran.c \
+ pngrutil.c \
+ pngset.c \
+ pngtrans.c \
+ pngwio.c \
+ pngwrite.c \
+ pngwtran.c \
+ pngwutil.c
+
+LOCAL_LDLIBS := -lz
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#================== SQUIRREL =================
+
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := squirrel
+LOCAL_PATH := $(SQUIRREL_PATH)
+LOCAL_C_INCLUDES := $(SQUIRREL_PATH)/include $(SQUIRREL_PATH)/sqplus/sqplus $(SQUIRREL_PATH)/squirrel $(SQUIRREL_PATH)/sqstdlib
+LOCAL_SRC_FILES := squirrel/sqapi.cpp \
+ squirrel/sqbaselib.cpp \
+ squirrel/sqclass.cpp \
+ squirrel/sqcompiler.cpp \
+ squirrel/sqdebug.cpp \
+ squirrel/sqfuncstate.cpp \
+ squirrel/sqlexer.cpp \
+ squirrel/sqmem.cpp \
+ squirrel/sqobject.cpp \
+ squirrel/sqstate.cpp \
+ squirrel/sqtable.cpp \
+ squirrel/sqvm.cpp \
+ sqplus/SqPlus.cpp \
+ sqplus/SqPlusOCharBuf.cpp \
+ sqplus/SqPlusUtf8.cpp \
+ sqplus/SquirrelBindingsUtils.cpp \
+ sqplus/SquirrelObject.cpp \
+ sqplus/SquirrelVM.cpp \
+ sqstdlib/sqstdblob.cpp \
+ sqstdlib/sqstdio.cpp \
+ sqstdlib/sqstdmath.cpp \
+ sqstdlib/sqstdrex.cpp \
+ sqstdlib/sqstdstream.cpp \
+ sqstdlib/sqstdstring.cpp \
+ sqstdlib/sqstdsystem.cpp \
+ sqstdlib/sqstdaux.cpp \
+
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS := -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#================== OGG / VORBIS / VORBISFILE ===================
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := vorbis
+
+LOCAL_PATH := $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES := $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/src
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_SRC_FILES := ../../libogg-1.3.0/src/framing.c ../../libogg-1.3.0/src/bitwise.c
+LOCAL_SRC_FILES += mdct.c smallft.c block.c envelope.c window.c lsp.c \
+ lpc.c analysis.c synthesis.c psy.c info.c \
+ floor1.c floor0.c\
+ res0.c mapping0.c registry.c codebook.c sharedbook.c\
+ lookup.c bitrate.c
+LOCAL_SRC_FILES += vorbisfile.c
+
+#debug
+#LOCAL_CFLAGS := -g -ggdb -O0
+#LOCAL_LDLIBS := -g -ggdb
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#================== BOOST ====================
+
+LOCAL_PATH := $(BOOST_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := boost
+LOCAL_C_INCLUDES := $(BOOST_PATH)
+
+LOCAL_CFLAGS := -std=gnu++11 --std=c++11
+
+
+#thread
+LOCAL_SRC_FILES := /libs/thread/src/pthread/thread.cpp
+LOCAL_SRC_FILES += /libs/thread/src/pthread/once.cpp
+
+#signals
+LOCAL_SRC_FILES += /libs/signals/src/connection.cpp
+LOCAL_SRC_FILES += /libs/signals/src/named_slot_map.cpp
+LOCAL_SRC_FILES += /libs/signals/src/signal_base.cpp
+LOCAL_SRC_FILES += /libs/signals/src/slot.cpp
+LOCAL_SRC_FILES += /libs/signals/src/trackable.cpp
+
+#system
+LOCAL_SRC_FILES += /libs/system/src/error_code.cpp
+
+#regex
+LOCAL_SRC_FILES += /libs/regex/src/c_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/cpp_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/cregex.cpp
+LOCAL_SRC_FILES += /libs/regex/src/fileiter.cpp
+LOCAL_SRC_FILES += /libs/regex/src/icu.cpp
+LOCAL_SRC_FILES += /libs/regex/src/instances.cpp
+LOCAL_SRC_FILES += /libs/regex/src/posix_api.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex_debug.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex_raw_buffer.cpp
+LOCAL_SRC_FILES += /libs/regex/src/regex_traits_defaults.cpp
+LOCAL_SRC_FILES += /libs/regex/src/static_mutex.cpp
+LOCAL_SRC_FILES += /libs/regex/src/usinstances.cpp
+LOCAL_SRC_FILES += /libs/regex/src/w32_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/wc_regex_traits.cpp
+LOCAL_SRC_FILES += /libs/regex/src/wide_posix_api.cpp
+LOCAL_SRC_FILES += /libs/regex/src/winstances.cpp
+
+#date_time
+LOCAL_SRC_FILES += /libs/date_time/src/gregorian/greg_month.cpp
+LOCAL_SRC_FILES += /libs/date_time/src/gregorian/greg_weekday.cpp
+LOCAL_SRC_FILES += /libs/date_time/src/gregorian/date_generators.cpp
+
+#asio
+#nothing
+
+LOCAL_LDLIBS := -llog -Wl
+
+#debug
+#LOCAL_CFLAGS += -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+#============= SALMON ENGINE ================
+
+LOCAL_PATH := $(ENGINE_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := SalmonEngine
+
+
+LOCAL_CFLAGS := -DTARGET_ANDROID -DTARGET_SALMON -std=gnu++11 --std=c++11
+
+LOCAL_STATIC_LIBRARIES := boost
+LOCAL_STATIC_LIBRARIES += ogg
+LOCAL_STATIC_LIBRARIES += vorbis
+LOCAL_STATIC_LIBRARIES += squirrel
+LOCAL_STATIC_LIBRARIES += png_lib
+LOCAL_STATIC_LIBRARIES += zip
+LOCAL_SHARED_LIBRARIES := gnustl_shared
+LOCAL_C_INCLUDES := $(BOOST_PATH)
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel
+LOCAL_C_INCLUDES += $(LIBPNG_PATH)
+LOCAL_C_INCLUDES += $(ZIP_PATH)
+LOCAL_SRC_FILES := src/Utils/DataTypes/DataTypes.cpp
+LOCAL_SRC_FILES += src/Utils/DataTypes/NewDataTypes.cpp
+LOCAL_SRC_FILES += src/Utils/FileUtils/FileUtils.cpp
+LOCAL_SRC_FILES += src/Utils/JniApi/JniApi.cpp
+LOCAL_SRC_FILES += src/Utils/Console/Console.cpp
+LOCAL_SRC_FILES += src/Utils/SerializeInterface/SerializeInterface.cpp
+LOCAL_SRC_FILES += src/Utils/PngHelper.cpp
+LOCAL_SRC_FILES += src/Utils/SimpleTimer.cpp
+LOCAL_SRC_FILES += src/TextureManager/SalmonTexture.cpp
+LOCAL_SRC_FILES += src/ShaderManager/ShaderManager.cpp
+LOCAL_SRC_FILES += src/FrameManager/FrameManager.cpp
+LOCAL_SRC_FILES += src/LightManager/LightManager.cpp
+LOCAL_SRC_FILES += src/SoundManager/SoundManagerAndroid.cpp
+LOCAL_SRC_FILES += src/SoundManager/SoundManagerDataTypes.cpp
+LOCAL_SRC_FILES += src/FontManager/FontManager.cpp
+LOCAL_SRC_FILES += src/ScriptManager/ScriptManager.cpp
+LOCAL_SRC_FILES += src/SmartValueManager/SmartValueManager.cpp
+#LOCAL_SRC_FILES += src/GUIManager/GUIManager.cpp
+#LOCAL_SRC_FILES += src/GUIManager/ButtonWidget.cpp
+
+LOCAL_SRC_FILES += src/ModelManager/ModelManager.cpp
+LOCAL_SRC_FILES += src/ModelManager/NewModelManager.cpp
+LOCAL_SRC_FILES += src/SimpleLand/SimpleLand.cpp
+
+
+LOCAL_SRC_FILES += src/Render/RenderMisc.cpp
+LOCAL_SRC_FILES += src/Render/RenderParams.cpp
+LOCAL_SRC_FILES += src/Render/SalmonRender/BackgroundCubemap.cpp
+
+LOCAL_SRC_FILES += src/Animation/SalmonAnimation.cpp
+LOCAL_SRC_FILES += src/Render/RenderInterface.cpp
+LOCAL_SRC_FILES += src/ApplicationInterface.cpp
+LOCAL_SRC_FILES += src/Render/SalmonRender/SalmonRenderInterface.cpp
+LOCAL_SRC_FILES += src/Render/SalmonRender/SalmonRenderGLES20.cpp
+LOCAL_SRC_FILES += src/Render/SalmonRender/SalmonRenderAndroid.cpp
+LOCAL_SRC_FILES += src/SalmonEngineAndroid.cpp
+LOCAL_SRC_FILES += src/SalmonEngineInterface.cpp
+LOCAL_LDLIBS := -lGLESv2
+
+LOCAL_LDLIBS += -llog -Wl -lz
+
+#debug
+#LOCAL_CFLAGS += -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+#no -s cause no need stripping!!!!
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/Halibut Engine/Halibut Engine.vcxproj b/Halibut Engine/Halibut Engine.vcxproj
new file mode 100644
index 0000000..37620a9
--- /dev/null
+++ b/Halibut Engine/Halibut Engine.vcxproj
@@ -0,0 +1,173 @@
+
+
+
+
+ Debug_nosound
+ Win32
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {4E274B19-10B2-4987-96C5-76F35A149502}
+ HalibutEngine
+
+
+
+ StaticLibrary
+ true
+ NotSet
+
+
+ StaticLibrary
+ true
+ NotSet
+
+
+ StaticLibrary
+ false
+ true
+ NotSet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SolutionDir)include;$(SolutionDir)include\Animation;$(SolutionDir)include\FrameManager;$(SolutionDir)include\LightManager;$(SolutionDir)include\ModelManager;$(SolutionDir)include\OpenGLExt;$(SolutionDir)include\SalmonRender;$(SolutionDir)include\ShaderManager;$(SolutionDir)include\TextureManager;$(SolutionDir)include\Utils;$(SolutionDir)include\Utils\Console;$(SolutionDir)include\Utils\DataTypes;$(SolutionDir)include\Utils\ErrorTypes;$(SolutionDir)include\Utils\FileUtils
+ $(SalmonEnginePath)$(Configuration)\
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SolutionDir)include;$(SolutionDir)include\Animation;$(SolutionDir)include\FrameManager;$(SolutionDir)include\LightManager;$(SolutionDir)include\ModelManager;$(SolutionDir)include\OpenGLExt;$(SolutionDir)include\SalmonRender;$(SolutionDir)include\ShaderManager;$(SolutionDir)include\TextureManager;$(SolutionDir)include\Utils;$(SolutionDir)include\Utils\Console;$(SolutionDir)include\Utils\DataTypes;$(SolutionDir)include\Utils\ErrorTypes;$(SolutionDir)include\Utils\FileUtils
+ $(SalmonEnginePath)$(Configuration)\
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SolutionDir)include;$(SolutionDir)include\Animation;$(SolutionDir)include\FrameManager;$(SolutionDir)include\LightManager;$(SolutionDir)include\ModelManager;$(SolutionDir)include\OpenGLExt;$(SolutionDir)include\SalmonRender;$(SolutionDir)include\ShaderManager;$(SolutionDir)include\TextureManager;$(SolutionDir)include\Utils;$(SolutionDir)include\Utils\Console;$(SolutionDir)include\Utils\DataTypes;$(SolutionDir)include\Utils\ErrorTypes;$(SolutionDir)include\Utils\FileUtils
+ $(SalmonEnginePath)$(Configuration)\
+
+
+
+ Level3
+ Disabled
+ TARGET_HALIBUT;TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+
+
+ true
+
+
+
+
+ Level3
+ Disabled
+ TARGET_HALIBUT;TARGET_WIN32;NOSOUND;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\lpng1510
+
+
+ true
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ TARGET_HALIBUT;TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;NDEBUG
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+
+
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Salmon Engine.sln b/Salmon Engine.sln
new file mode 100644
index 0000000..95c1256
--- /dev/null
+++ b/Salmon Engine.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Halibut Engine", "Halibut Engine\Halibut Engine.vcxproj", "{4E274B19-10B2-4987-96C5-76F35A149502}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Salmon Engine", "Salmon Engine\Salmon Engine.vcxproj", "{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_nosound|Win32 = Debug_nosound|Win32
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug|Win32.Build.0 = Debug|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Release|Win32.ActiveCfg = Release|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Release|Win32.Build.0 = Release|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.Build.0 = Debug|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.ActiveCfg = Release|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Salmon Engine/Salmon Engine.vcxproj b/Salmon Engine/Salmon Engine.vcxproj
new file mode 100644
index 0000000..d651766
--- /dev/null
+++ b/Salmon Engine/Salmon Engine.vcxproj
@@ -0,0 +1,175 @@
+
+
+
+
+ Debug_nosound
+ Win32
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}
+ SalmonEngine
+
+
+
+ StaticLibrary
+ true
+ NotSet
+
+
+ StaticLibrary
+ true
+ NotSet
+
+
+ StaticLibrary
+ false
+ true
+ NotSet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SolutionDir)include;$(SolutionDir)include\Animation;$(SolutionDir)include\FrameManager;$(SolutionDir)include\LightManager;$(SolutionDir)include\ModelManager;$(SolutionDir)include\OpenGLExt;$(SolutionDir)include\SalmonRender;$(SolutionDir)include\ShaderManager;$(SolutionDir)include\TextureManager;$(SolutionDir)include\Utils;$(SolutionDir)include\Utils\Console;$(SolutionDir)include\Utils\DataTypes;$(SolutionDir)include\Utils\ErrorTypes;$(SolutionDir)include\Utils\FileUtils
+ $(SalmonEnginePath)$(Configuration)\
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SolutionDir)include;$(SolutionDir)include\Animation;$(SolutionDir)include\FrameManager;$(SolutionDir)include\LightManager;$(SolutionDir)include\ModelManager;$(SolutionDir)include\OpenGLExt;$(SolutionDir)include\SalmonRender;$(SolutionDir)include\ShaderManager;$(SolutionDir)include\TextureManager;$(SolutionDir)include\Utils;$(SolutionDir)include\Utils\Console;$(SolutionDir)include\Utils\DataTypes;$(SolutionDir)include\Utils\ErrorTypes;$(SolutionDir)include\Utils\FileUtils
+ $(SalmonEnginePath)$(Configuration)\
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SolutionDir)include;$(SolutionDir)include\Animation;$(SolutionDir)include\FrameManager;$(SolutionDir)include\LightManager;$(SolutionDir)include\ModelManager;$(SolutionDir)include\OpenGLExt;$(SolutionDir)include\SalmonRender;$(SolutionDir)include\ShaderManager;$(SolutionDir)include\TextureManager;$(SolutionDir)include\Utils;$(SolutionDir)include\Utils\Console;$(SolutionDir)include\Utils\DataTypes;$(SolutionDir)include\Utils\ErrorTypes;$(SolutionDir)include\Utils\FileUtils
+ $(SalmonEnginePath)$(Configuration)\
+
+
+
+ Level3
+ Disabled
+ TARGET_SALMON;TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+
+
+ true
+
+
+
+
+ Level3
+ Disabled
+ TARGET_SALMON;TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG;NOSOUND
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include;$(LibsPath)\lpng1510
+
+
+ true
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ MultiThreaded
+ TARGET_SALMON;TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;NDEBUG
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+
+
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/.classpath b/Templates/HalibutUniversalTemplate/.classpath
new file mode 100644
index 0000000..36de7ba
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Templates/HalibutUniversalTemplate/.project b/Templates/HalibutUniversalTemplate/.project
new file mode 100644
index 0000000..4c7a50f
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/.project
@@ -0,0 +1,33 @@
+
+
+ EngineWrapper
+
+
+
+
+
+ com.android.ide.eclipse.adt.ResourceManagerBuilder
+
+
+
+
+ com.android.ide.eclipse.adt.PreCompilerBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.android.ide.eclipse.adt.ApkBuilder
+
+
+
+
+
+ com.android.ide.eclipse.adt.AndroidNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/Templates/HalibutUniversalTemplate/AndroidManifest.xml b/Templates/HalibutUniversalTemplate/AndroidManifest.xml
new file mode 100644
index 0000000..215d567
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/AndroidManifest.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Templates/HalibutUniversalTemplate/assets/console_bkg.bmp b/Templates/HalibutUniversalTemplate/assets/console_bkg.bmp
new file mode 100644
index 0000000..d32ee4c
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/assets/console_bkg.bmp differ
diff --git a/Templates/HalibutUniversalTemplate/assets/droid_sans14_font_bitmap.bmp32 b/Templates/HalibutUniversalTemplate/assets/droid_sans14_font_bitmap.bmp32
new file mode 100644
index 0000000..b9f2b1f
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/assets/droid_sans14_font_bitmap.bmp32 differ
diff --git a/Templates/HalibutUniversalTemplate/assets/droid_sans14_font_charmap.txt b/Templates/HalibutUniversalTemplate/assets/droid_sans14_font_charmap.txt
new file mode 100644
index 0000000..f17cd0b
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/assets/droid_sans14_font_charmap.txt
@@ -0,0 +1,95 @@
+32 0.00976562 0.0195312 0 0.0546875 0 0 0.0078125
+49 0.0195312 0.0195312 0.00390625 0.015625 0.0078125 0.0390625 0.015625
+50 0.0371094 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+51 0.0605469 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+52 0.0820312 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+53 0.105469 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+54 0.126953 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+55 0.148438 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+56 0.169922 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+57 0.191406 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+48 0.212891 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+97 0.234375 0.0195312 0.00195312 0.0234375 0.00976562 0.03125 0.0136719
+98 0.253906 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
+99 0.275391 0.0195312 0.00195312 0.0234375 0.00976562 0.03125 0.0136719
+100 0.294922 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
+101 0.316406 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+102 0.337891 0.0195312 0 0.0117188 0.00976562 0.0429688 0.0078125
+103 0.357422 0.0195312 0.00195312 0.0234375 0.0136719 0.0429688 0.0136719
+104 0.380859 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
+105 0.402344 0.0195312 0 0.0117188 0.00585938 0.0429688 0.0078125
+106 0.417969 0.0195312 -0.00195312 0.0117188 0.0078125 0.0546875 0.0078125
+107 0.435547 0.0195312 0.00195312 0.0117188 0.0136719 0.0429688 0.0136719
+108 0.458984 0.0195312 0.00195312 0.0117188 0.00390625 0.0429688 0.0078125
+109 0.472656 0.0195312 0.00195312 0.0234375 0.0214844 0.03125 0.0253906
+110 0.503906 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+111 0.525391 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+112 0.546875 0.0195312 0.00195312 0.0234375 0.0117188 0.0429688 0.015625
+113 0.568359 0.0195312 0.00195312 0.0234375 0.0117188 0.0429688 0.015625
+114 0.589844 0.0195312 0.00195312 0.0234375 0.0078125 0.03125 0.00976562
+115 0.607422 0.0195312 0 0.0234375 0.0117188 0.03125 0.0136719
+116 0.628906 0.0195312 0 0.015625 0.00976562 0.0390625 0.00976562
+117 0.648438 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+118 0.669922 0.0195312 -0.00195312 0.0234375 0.0175781 0.03125 0.0136719
+119 0.697266 0.0195312 -0.00195312 0.0234375 0.0234375 0.03125 0.0195312
+120 0.730469 0.0195312 0 0.0234375 0.0136719 0.03125 0.0136719
+121 0.753906 0.0195312 -0.00195312 0.0234375 0.0175781 0.0429688 0.0136719
+122 0.78125 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.0136719
+65 0.802734 0.0195312 -0.00195312 0.015625 0.0214844 0.0390625 0.0175781
+66 0.833984 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.0175781
+67 0.857422 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+68 0.880859 0.0195312 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+69 0.90625 0.0195312 0.00195312 0.015625 0.00976562 0.0390625 0.0136719
+70 0.925781 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.0136719
+71 0.947266 0.0195312 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+72 0.00976562 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+73 0.0351562 0.09375 0 0.015625 0.00976562 0.0390625 0.00976562
+74 0.0546875 0.09375 -0.00390625 0.015625 0.00976562 0.0507812 0.00585938
+75 0.0742188 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.015625
+76 0.0996094 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.0136719
+77 0.121094 0.09375 0.00195312 0.015625 0.0195312 0.0390625 0.0234375
+78 0.150391 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+79 0.175781 0.09375 0.00195312 0.015625 0.0175781 0.0390625 0.0214844
+80 0.203125 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+81 0.224609 0.09375 0.00195312 0.015625 0.0175781 0.046875 0.0214844
+82 0.251953 0.09375 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+83 0.275391 0.09375 0 0.015625 0.0136719 0.0390625 0.0136719
+84 0.298828 0.09375 0 0.015625 0.0136719 0.0390625 0.0136719
+85 0.322266 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+86 0.347656 0.09375 -0.00195312 0.015625 0.0195312 0.0390625 0.015625
+87 0.376953 0.09375 -0.00195312 0.015625 0.0292969 0.0390625 0.0253906
+88 0.416016 0.09375 -0.00195312 0.015625 0.0195312 0.0390625 0.015625
+89 0.445312 0.09375 -0.00195312 0.015625 0.0175781 0.0390625 0.0136719
+90 0.472656 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+46 0.494141 0.09375 0.00195312 0.046875 0.00390625 0.0078125 0.0078125
+44 0.507812 0.09375 0.00195312 0.046875 0.00390625 0.0117188 0.0078125
+58 0.521484 0.09375 0.00195312 0.0234375 0.00390625 0.03125 0.0078125
+59 0.535156 0.09375 0.00195312 0.0234375 0.00390625 0.0351562 0.0078125
+64 0.548828 0.09375 0.00195312 0.015625 0.0195312 0.0429688 0.0234375
+35 0.578125 0.09375 0 0.015625 0.015625 0.0390625 0.0175781
+36 0.603516 0.09375 0.00195312 0.0117188 0.0117188 0.046875 0.015625
+37 0.625 0.09375 0.00195312 0.015625 0.0195312 0.0390625 0.0234375
+94 0.654297 0.09375 0 0.015625 0.0136719 0.0234375 0.0136719
+38 0.677734 0.09375 0.00195312 0.015625 0.0175781 0.0390625 0.0195312
+42 0.705078 0.09375 0 0.0117188 0.0136719 0.0234375 0.015625
+33 0.728516 0.09375 0.00195312 0.015625 0.00390625 0.0390625 0.0078125
+63 0.742188 0.09375 0 0.015625 0.00976562 0.0390625 0.0117188
+40 0.761719 0.09375 0.00195312 0.015625 0.0078125 0.046875 0.0078125
+41 0.779297 0.09375 0 0.015625 0.00585938 0.046875 0.0078125
+91 0.794922 0.09375 0.00195312 0.015625 0.00585938 0.046875 0.0078125
+93 0.810547 0.09375 0 0.015625 0.00585938 0.046875 0.0078125
+123 0.826172 0.09375 0 0.015625 0.00976562 0.046875 0.00976562
+125 0.845703 0.09375 0 0.015625 0.00976562 0.046875 0.00976562
+60 0.865234 0.09375 0.00195312 0.0234375 0.0117188 0.0273438 0.015625
+62 0.886719 0.09375 0.00195312 0.0234375 0.0117188 0.0273438 0.015625
+95 0.908203 0.09375 0 0.0585938 0.0117188 0.00390625 0.0117188
+45 0.929688 0.09375 0.00195312 0.0390625 0.00585938 0.0078125 0.00976562
+43 0.945312 0.09375 0 0.0234375 0.0136719 0.0273438 0.015625
+61 0.00976562 0.167969 0 0.0273438 0.0136719 0.0195312 0.015625
+124 0.0332031 0.167969 0.00585938 0.0117188 0.00390625 0.0546875 0.0136719
+92 0.046875 0.167969 -0.00195312 0.015625 0.0136719 0.0390625 0.00976562
+47 0.0703125 0.167969 -0.00195312 0.015625 0.0136719 0.0390625 0.00976562
+126 0.09375 0.167969 0.00195312 0.03125 0.0117188 0.0117188 0.015625
+96 0.115234 0.167969 0.00585938 0.0117188 0.00585938 0.0078125 0.015625
+34 0.130859 0.167969 0.00195312 0.015625 0.00976562 0.015625 0.0117188
+39 0.150391 0.167969 0.00195312 0.015625 0.00390625 0.015625 0.00585938
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/assets/shader_fragment.txt b/Templates/HalibutUniversalTemplate/assets/shader_fragment.txt
new file mode 100644
index 0000000..523790e
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/assets/shader_fragment.txt
@@ -0,0 +1,14 @@
+precision mediump float;
+uniform sampler2D Texture;
+uniform float Transparency;
+varying vec2 texCoord;
+
+void main()
+{
+ vec4 color = texture2D(Texture,texCoord).rgba;
+
+ gl_FragColor = vec4(color.rgb, color.a * Transparency);
+
+
+
+}
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/assets/shader_vertex.txt b/Templates/HalibutUniversalTemplate/assets/shader_vertex.txt
new file mode 100644
index 0000000..72d9f46
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/assets/shader_vertex.txt
@@ -0,0 +1,12 @@
+attribute vec3 vPosition;
+attribute vec2 vTexCoord;
+varying vec2 texCoord;
+
+uniform mat4 ProjectionMatrix;
+
+void main()
+{
+ //480x320
+ gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
+ texCoord = vTexCoord;
+}
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/default.properties b/Templates/HalibutUniversalTemplate/default.properties
new file mode 100644
index 0000000..94a5300
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/default.properties
@@ -0,0 +1,11 @@
+# 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 use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-8
diff --git a/Templates/HalibutUniversalTemplate/iOS/AppDelegate.h b/Templates/HalibutUniversalTemplate/iOS/AppDelegate.h
new file mode 100644
index 0000000..4237984
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/AppDelegate.h
@@ -0,0 +1,19 @@
+//
+// AppDelegate.h
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+
+@class ViewController;
+
+@interface AppDelegate : UIResponder
+
+@property (strong, nonatomic) UIWindow *window;
+
+@property (strong, nonatomic) ViewController *viewController;
+
+@end
diff --git a/Templates/HalibutUniversalTemplate/iOS/AppDelegate.m b/Templates/HalibutUniversalTemplate/iOS/AppDelegate.m
new file mode 100644
index 0000000..1283115
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/AppDelegate.m
@@ -0,0 +1,59 @@
+//
+// AppDelegate.m
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+#import "ViewController.h"
+
+@implementation AppDelegate
+
+@synthesize window = _window;
+@synthesize viewController = _viewController;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+ // Override point for customization after application launch.
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
+ self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
+ } else {
+ self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
+ }
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
diff --git a/Templates/HalibutUniversalTemplate/iOS/CustomGLKView.h b/Templates/HalibutUniversalTemplate/iOS/CustomGLKView.h
new file mode 100644
index 0000000..59184d3
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/CustomGLKView.h
@@ -0,0 +1,17 @@
+//
+// CustomGLKView.h
+// doublehitballs
+//
+// Created by vvv ооо on 15.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+
+@interface CustomGLKView : GLKView
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
+- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
+
+@end
diff --git a/Templates/HalibutUniversalTemplate/iOS/CustomGLKView.m b/Templates/HalibutUniversalTemplate/iOS/CustomGLKView.m
new file mode 100644
index 0000000..130b654
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/CustomGLKView.m
@@ -0,0 +1,68 @@
+//
+// CustomGLKView.m
+// doublehitballs
+//
+// Created by vvv ооо on 15.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import "CustomGLKView.h"
+#import "ios_api.h"
+
+bool touchMoved = false;
+CGPoint prev_loc;
+
+
+@implementation CustomGLKView
+
+- (id)initWithFrame:(CGRect)frame
+{
+ self = [super initWithFrame:frame];
+ if (self) {
+ // Initialization code
+ }
+ return self;
+}
+
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
+{
+
+ CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
+
+ prev_loc = location;
+
+ touchMoved = false;
+
+ AppOnTapDown(location.x, self.bounds.size.height - location.y);
+
+}
+
+- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
+{
+ CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
+
+ CGPoint prevLocation = [[[touches allObjects] objectAtIndex:0] previousLocationInView:self];
+
+ if (abs(prev_loc.x - location.x) > 10 || abs(prev_loc.y - location.y) > 10)
+ {
+ touchMoved = true;
+ }
+
+ AppOnScroll(prevLocation.x - location.x, prevLocation.y - location.y);
+}
+
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
+{
+ CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
+
+ if (!touchMoved)
+ {
+ AppOnTapUp(location.x, self.bounds.size.height - location.y);
+ }
+}
+
+
+
+
+@end
diff --git a/Templates/HalibutUniversalTemplate/iOS/ViewController.h b/Templates/HalibutUniversalTemplate/iOS/ViewController.h
new file mode 100644
index 0000000..e7f9748
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/ViewController.h
@@ -0,0 +1,14 @@
+//
+// ViewController.h
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+#import
+
+@interface ViewController : GLKViewController
+
+@end
diff --git a/Templates/HalibutUniversalTemplate/iOS/ViewController.m b/Templates/HalibutUniversalTemplate/iOS/ViewController.m
new file mode 100644
index 0000000..b04f1d3
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/ViewController.m
@@ -0,0 +1,106 @@
+//
+// ViewController.m
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import "ViewController.h"
+#import "ios_api.h"
+
+@interface ViewController () {
+}
+
+@property (strong, nonatomic) EAGLContext *context;
+@property (strong, nonatomic) GLKBaseEffect *effect;
+
+- (void)setupGL;
+- (void)tearDownGL;
+
+@end
+
+@implementation ViewController
+
+@synthesize context = _context;
+@synthesize effect = _effect;
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+
+ self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
+
+ if (!self.context) {
+ NSLog(@"Failed to create ES context");
+ }
+
+ GLKView *view = (GLKView *)self.view;
+ view.context = self.context;
+ view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
+
+
+ [self setupGL];
+}
+
+- (void)viewDidUnload
+{
+ [super viewDidUnload];
+
+ [self tearDownGL];
+
+ if ([EAGLContext currentContext] == self.context) {
+ [EAGLContext setCurrentContext:nil];
+ }
+ self.context = nil;
+}
+
+- (void)didReceiveMemoryWarning
+{
+ [super didReceiveMemoryWarning];
+ // Release any cached data, images, etc. that aren't in use.
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ /*
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
+ return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
+ } else {
+ return YES;
+ }*/
+ return UIInterfaceOrientationIsLandscape(interfaceOrientation);
+}
+
+- (void)setupGL
+{
+ [EAGLContext setCurrentContext:self.context];
+
+ AppInit();
+ }
+
+- (void)tearDownGL
+{
+ [EAGLContext setCurrentContext:self.context];
+
+ AppDeinit();
+
+}
+
+#pragma mark - GLKView and GLKViewController delegate methods
+
+- (void)update
+{
+
+ AppUpdate(self.timeSinceLastUpdate * 1000);
+}
+
+- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
+{
+
+ AppDraw();
+
+}
+
+
+@end
diff --git a/Templates/HalibutUniversalTemplate/iOS/en.lproj/InfoPlist.strings b/Templates/HalibutUniversalTemplate/iOS/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..0f167df
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/Templates/HalibutUniversalTemplate/iOS/en.lproj/ViewController_iPad.xib b/Templates/HalibutUniversalTemplate/iOS/en.lproj/ViewController_iPad.xib
new file mode 100644
index 0000000..eb81e88
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/en.lproj/ViewController_iPad.xib
@@ -0,0 +1,133 @@
+
+
+
+ 1296
+ 11E53
+ 2182
+ 1138.47
+ 569.00
+
+
+ IBProxyObject
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+
+
+
+
+
+
+ view
+
+
+
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+
+
+ ViewController
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ CustomGLKView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 3
+
+
+
+
+ CustomGLKView
+ GLKView
+
+ IBProjectSource
+ ./Classes/CustomGLKView.h
+
+
+
+ ViewController
+ GLKViewController
+
+ IBProjectSource
+ ./Classes/ViewController.h
+
+
+
+
+ 0
+ IBIPadFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+ YES
+ 3
+ 1181
+
+
diff --git a/Templates/HalibutUniversalTemplate/iOS/en.lproj/ViewController_iPhone.xib b/Templates/HalibutUniversalTemplate/iOS/en.lproj/ViewController_iPhone.xib
new file mode 100644
index 0000000..96a4a92
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/en.lproj/ViewController_iPhone.xib
@@ -0,0 +1,111 @@
+
+
+
+ 1296
+ 11E53
+ 2182
+ 1138.47
+ 569.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 1181
+
+
+ IBProxyObject
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ PluginDependencyRecalculationVersion
+
+
+
+
+ IBFilesOwner
+ IBCocoaTouchFramework
+
+
+ IBFirstResponder
+ IBCocoaTouchFramework
+
+
+
+ 274
+ {320, 460}
+
+
+ 3
+ MQA
+
+ 2
+
+
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+
+
+ view
+
+
+
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+
+
+
+
+ ViewController
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ CustomGLKView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 4
+
+
+ 0
+ IBCocoaTouchFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+ YES
+ 3
+ 1181
+
+
diff --git a/Templates/HalibutUniversalTemplate/iOS/halibuttemplate.xcodeproj/project.pbxproj b/Templates/HalibutUniversalTemplate/iOS/halibuttemplate.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..870664f
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/halibuttemplate.xcodeproj/project.pbxproj
@@ -0,0 +1,504 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4C49B2BE15B0991B003512CD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2BD15B0991B003512CD /* UIKit.framework */; };
+ 4C49B2C015B0991B003512CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2BF15B0991B003512CD /* Foundation.framework */; };
+ 4C49B2C215B0991B003512CD /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C115B0991B003512CD /* CoreGraphics.framework */; };
+ 4C49B2C415B0991B003512CD /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C315B0991B003512CD /* GLKit.framework */; };
+ 4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C515B0991B003512CD /* OpenGLES.framework */; };
+ 4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2CA15B0991B003512CD /* InfoPlist.strings */; };
+ 4C49B2CE15B0991B003512CD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2CD15B0991B003512CD /* main.m */; };
+ 4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D115B0991B003512CD /* AppDelegate.m */; };
+ 4C49B2D915B0991B003512CD /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D815B0991B003512CD /* ViewController.m */; };
+ 4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */; };
+ 4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */; };
+ 4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807415BA8F460037C6CE /* libsquirrel.a */; };
+ 4C4C807715BA8F5B0037C6CE /* libz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807615BA8F5B0037C6CE /* libz.a */; };
+ 4C6EB44515C3CFD300316CB6 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6EB44415C3CFD300316CB6 /* libpng.a */; };
+ 4C74848615C5AD6E0056EC44 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848315C5AD6E0056EC44 /* Icon.png */; };
+ 4C74848715C5AD6E0056EC44 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848415C5AD6E0056EC44 /* iTunesArtwork */; };
+ 4C74848815C5AD6E0056EC44 /* Splash-landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */; };
+ 4C74849815C5AF7C0056EC44 /* main_code.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C74849615C5AF7C0056EC44 /* main_code.cpp */; };
+ 4C7484AC15C5BF580056EC44 /* libHalibut Engine.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C7484AB15C5BDD70056EC44 /* libHalibut Engine.a */; };
+ 4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */; };
+ 4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831415BABD8B003D5142 /* AudioToolbox.framework */; };
+ 4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831515BABD8B003D5142 /* OpenAL.framework */; };
+ 4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */; };
+ 4C7C584B15C31E6500CAE4F4 /* libboost.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C7C584A15C31E6500CAE4F4 /* libboost.a */; };
+ 4CCC0ECC15B30D6B005432FB /* CustomGLKView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CCC0ECB15B30D6B005432FB /* CustomGLKView.m */; };
+ 4CE6A9D215B2F979006A3965 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D115B2F979006A3965 /* assets */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 4C7484AA15C5BDD70056EC44 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4C7484A315C5BDD60056EC44 /* Halibut Engine.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 4C8CE90215B0A0F400078175;
+ remoteInfo = "Halibut Engine";
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 4C49B2B915B0991B003512CD /* halibuttemplate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = halibuttemplate.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4C49B2BD15B0991B003512CD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 4C49B2BF15B0991B003512CD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 4C49B2C115B0991B003512CD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 4C49B2C315B0991B003512CD /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
+ 4C49B2C515B0991B003512CD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ 4C49B2C915B0991B003512CD /* template-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "template-Info.plist"; sourceTree = ""; };
+ 4C49B2CB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
+ 4C49B2CD15B0991B003512CD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ 4C49B2CF15B0991B003512CD /* template-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "template-Prefix.pch"; sourceTree = ""; };
+ 4C49B2D015B0991B003512CD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ 4C49B2D115B0991B003512CD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 4C49B2D715B0991B003512CD /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
+ 4C49B2D815B0991B003512CD /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
+ 4C49B2DB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPhone.xib; sourceTree = ""; };
+ 4C49B2DE15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPad.xib; sourceTree = ""; };
+ 4C4C807415BA8F460037C6CE /* libsquirrel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsquirrel.a; path = "../../libs/SQUIRREL2_1_1_sqplus/build-ios/ios-device/libsquirrel.a"; sourceTree = ""; };
+ 4C4C807615BA8F5B0037C6CE /* libz.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libz.a; path = "../../libs/zlib-1.2.7/build-ios/ios-device/libz.a"; sourceTree = ""; };
+ 4C6EB44415C3CFD300316CB6 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../libs/libpng-1.5.12/build-ios/ios-simulator/libpng.a"; sourceTree = ""; };
+ 4C74848315C5AD6E0056EC44 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = res/Icon.png; sourceTree = ""; };
+ 4C74848415C5AD6E0056EC44 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; name = iTunesArtwork; path = res/iTunesArtwork; sourceTree = ""; };
+ 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Splash-landscape.png"; path = "res/Splash-landscape.png"; sourceTree = ""; };
+ 4C74849615C5AF7C0056EC44 /* main_code.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main_code.cpp; path = ../jni/main_code.cpp; sourceTree = ""; };
+ 4C74849715C5AF7C0056EC44 /* main_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main_code.h; path = ../jni/main_code.h; sourceTree = ""; };
+ 4C7484A315C5BDD60056EC44 /* Halibut Engine.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Halibut Engine.xcodeproj"; path = "../../Engine/iOS/Halibut Engine/Halibut Engine.xcodeproj"; sourceTree = ""; };
+ 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libvorbis-tremor-ios.a"; path = "../../libs/vorbis-tremor-ios/build-ios/ios-device/libvorbis-tremor-ios.a"; sourceTree = ""; };
+ 4C77831415BABD8B003D5142 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+ 4C77831515BABD8B003D5142 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+ 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ios_api.cpp; sourceTree = ""; };
+ 4C7C584A15C31E6500CAE4F4 /* libboost.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost.a; path = "../../libs/boost_1_47_0/build-ios/ios-simulator/libboost.a"; sourceTree = ""; };
+ 4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomGLKView.h; sourceTree = ""; };
+ 4CCC0ECB15B30D6B005432FB /* CustomGLKView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomGLKView.m; sourceTree = ""; };
+ 4CCC0ECD15B310FB005432FB /* ios_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_api.h; sourceTree = ""; };
+ 4CE6A9D115B2F979006A3965 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../assets; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 4C49B2B615B0991B003512CD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C7484AC15C5BF580056EC44 /* libHalibut Engine.a in Frameworks */,
+ 4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */,
+ 4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */,
+ 4C49B2BE15B0991B003512CD /* UIKit.framework in Frameworks */,
+ 4C49B2C015B0991B003512CD /* Foundation.framework in Frameworks */,
+ 4C49B2C215B0991B003512CD /* CoreGraphics.framework in Frameworks */,
+ 4C49B2C415B0991B003512CD /* GLKit.framework in Frameworks */,
+ 4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */,
+ 4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */,
+ 4C4C807715BA8F5B0037C6CE /* libz.a in Frameworks */,
+ 4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */,
+ 4C7C584B15C31E6500CAE4F4 /* libboost.a in Frameworks */,
+ 4C6EB44515C3CFD300316CB6 /* libpng.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 4C49B2AE15B0991B003512CD = {
+ isa = PBXGroup;
+ children = (
+ 4C7484A315C5BDD60056EC44 /* Halibut Engine.xcodeproj */,
+ 4C7B819515C40F770024D61A /* Libs */,
+ 4CC1FC3415B200130025C6F7 /* Resources */,
+ 4C49B2C715B0991B003512CD /* Sources */,
+ 4C49B2BC15B0991B003512CD /* Frameworks */,
+ 4C49B2BA15B0991B003512CD /* Products */,
+ );
+ sourceTree = "";
+ };
+ 4C49B2BA15B0991B003512CD /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4C49B2B915B0991B003512CD /* halibuttemplate.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 4C49B2BC15B0991B003512CD /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 4C77831415BABD8B003D5142 /* AudioToolbox.framework */,
+ 4C77831515BABD8B003D5142 /* OpenAL.framework */,
+ 4C49B2BD15B0991B003512CD /* UIKit.framework */,
+ 4C49B2BF15B0991B003512CD /* Foundation.framework */,
+ 4C49B2C115B0991B003512CD /* CoreGraphics.framework */,
+ 4C49B2C315B0991B003512CD /* GLKit.framework */,
+ 4C49B2C515B0991B003512CD /* OpenGLES.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 4C49B2C715B0991B003512CD /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 4CE6A9E315B2F9A4006A3965 /* Game */,
+ 4CCC0ECD15B310FB005432FB /* ios_api.h */,
+ 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */,
+ 4C49B2D015B0991B003512CD /* AppDelegate.h */,
+ 4C49B2D115B0991B003512CD /* AppDelegate.m */,
+ 4C49B2D715B0991B003512CD /* ViewController.h */,
+ 4C49B2D815B0991B003512CD /* ViewController.m */,
+ 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */,
+ 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */,
+ 4C49B2C815B0991B003512CD /* Supporting Files */,
+ 4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */,
+ 4CCC0ECB15B30D6B005432FB /* CustomGLKView.m */,
+ );
+ name = Sources;
+ sourceTree = "";
+ };
+ 4C49B2C815B0991B003512CD /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 4C49B2C915B0991B003512CD /* template-Info.plist */,
+ 4C49B2CA15B0991B003512CD /* InfoPlist.strings */,
+ 4C49B2CD15B0991B003512CD /* main.m */,
+ 4C49B2CF15B0991B003512CD /* template-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 4C7484A415C5BDD60056EC44 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4C7484AB15C5BDD70056EC44 /* libHalibut Engine.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 4C7B819515C40F770024D61A /* Libs */ = {
+ isa = PBXGroup;
+ children = (
+ 4C6EB44415C3CFD300316CB6 /* libpng.a */,
+ 4C7C584A15C31E6500CAE4F4 /* libboost.a */,
+ 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */,
+ 4C4C807615BA8F5B0037C6CE /* libz.a */,
+ 4C4C807415BA8F460037C6CE /* libsquirrel.a */,
+ );
+ name = Libs;
+ sourceTree = "";
+ };
+ 4CC1FC3415B200130025C6F7 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 4C74848315C5AD6E0056EC44 /* Icon.png */,
+ 4C74848415C5AD6E0056EC44 /* iTunesArtwork */,
+ 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */,
+ 4CE6A9D115B2F979006A3965 /* assets */,
+ );
+ name = Resources;
+ sourceTree = "";
+ };
+ 4CE6A9E315B2F9A4006A3965 /* Game */ = {
+ isa = PBXGroup;
+ children = (
+ 4C74849615C5AF7C0056EC44 /* main_code.cpp */,
+ 4C74849715C5AF7C0056EC44 /* main_code.h */,
+ );
+ name = Game;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 4C49B2B815B0991B003512CD /* halibuttemplate */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 4C49B2E215B0991B003512CD /* Build configuration list for PBXNativeTarget "halibuttemplate" */;
+ buildPhases = (
+ 4C49B2B515B0991B003512CD /* Sources */,
+ 4C49B2B615B0991B003512CD /* Frameworks */,
+ 4C49B2B715B0991B003512CD /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = halibuttemplate;
+ productName = doublehitballs;
+ productReference = 4C49B2B915B0991B003512CD /* halibuttemplate.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 4C49B2B015B0991B003512CD /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0430;
+ };
+ buildConfigurationList = 4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "halibuttemplate" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 4C49B2AE15B0991B003512CD;
+ productRefGroup = 4C49B2BA15B0991B003512CD /* Products */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 4C7484A415C5BDD60056EC44 /* Products */;
+ ProjectRef = 4C7484A315C5BDD60056EC44 /* Halibut Engine.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 4C49B2B815B0991B003512CD /* halibuttemplate */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 4C7484AB15C5BDD70056EC44 /* libHalibut Engine.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = "libHalibut Engine.a";
+ remoteRef = 4C7484AA15C5BDD70056EC44 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 4C49B2B715B0991B003512CD /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */,
+ 4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */,
+ 4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */,
+ 4CE6A9D215B2F979006A3965 /* assets in Resources */,
+ 4C74848615C5AD6E0056EC44 /* Icon.png in Resources */,
+ 4C74848715C5AD6E0056EC44 /* iTunesArtwork in Resources */,
+ 4C74848815C5AD6E0056EC44 /* Splash-landscape.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 4C49B2B515B0991B003512CD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C49B2CE15B0991B003512CD /* main.m in Sources */,
+ 4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */,
+ 4C49B2D915B0991B003512CD /* ViewController.m in Sources */,
+ 4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */,
+ 4CCC0ECC15B30D6B005432FB /* CustomGLKView.m in Sources */,
+ 4C74849815C5AF7C0056EC44 /* main_code.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 4C49B2CA15B0991B003512CD /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4C49B2CB15B0991B003512CD /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "";
+ };
+ 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4C49B2DB15B0991B003512CD /* en */,
+ );
+ name = ViewController_iPhone.xib;
+ sourceTree = "";
+ };
+ 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4C49B2DE15B0991B003512CD /* en */,
+ );
+ name = ViewController_iPad.xib;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 4C49B2E015B0991B003512CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ 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_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 4C49B2E115B0991B003512CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 4C49B2E315B0991B003512CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "template-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ TARGET_IOS,
+ TARGET_HALIBUT,
+ DEBUG,
+ "$(inherited)",
+ BOOST_NO_CXX11_NUMERIC_LIMITS,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
+ "GCC_THUMB_SUPPORT[arch=armv6]" = "";
+ HEADER_SEARCH_PATHS = (
+ "$(SalmonEnginePath)",
+ "$(LibsPath)/lpng1510",
+ "$(LibsPath)/sqplus/sqplus",
+ "$(LibsPath)/sqplus/include",
+ "$(LibsPath)/boost_1_52_0",
+ ../jni,
+ "$(LibsPath)/vorbis-tremor-ios/vorbis",
+ );
+ INFOPLIST_FILE = "template-Info.plist";
+ LIBRARY_SEARCH_PATHS = "";
+ "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-device",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-device",
+ "$(LibsPath)/sqplus/build-ios/ios-device",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-device",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-device",
+ );
+ "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-simulator",
+ "$(LibsPath)/sqplus/build-ios/ios-simulator",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-simulator",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-simulator",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SYMROOT = build;
+ TARGETED_DEVICE_FAMILY = 1;
+ USER_HEADER_SEARCH_PATHS = "";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 4C49B2E415B0991B003512CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "template-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ TARGET_IOS,
+ TARGET_HALIBUT,
+ BOOST_NO_CXX11_NUMERIC_LIMITS,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ "GCC_THUMB_SUPPORT[arch=armv6]" = "";
+ HEADER_SEARCH_PATHS = (
+ "$(SalmonEnginePath)",
+ "$(LibsPath)/lpng1510",
+ "$(LibsPath)/sqplus/sqplus",
+ "$(LibsPath)/sqplus/include",
+ "$(LibsPath)/boost_1_52_0",
+ ../jni,
+ "$(LibsPath)/vorbis-tremor-ios/vorbis",
+ );
+ INFOPLIST_FILE = "template-Info.plist";
+ LIBRARY_SEARCH_PATHS = "";
+ "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-device",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-device",
+ "$(LibsPath)/sqplus/build-ios/ios-device",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-device",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-device",
+ );
+ "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-simulator",
+ "$(LibsPath)/sqplus/build-ios/ios-simulator",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-simulator",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-simulator",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TARGETED_DEVICE_FAMILY = 1;
+ USER_HEADER_SEARCH_PATHS = "";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "halibuttemplate" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4C49B2E015B0991B003512CD /* Debug */,
+ 4C49B2E115B0991B003512CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4C49B2E215B0991B003512CD /* Build configuration list for PBXNativeTarget "halibuttemplate" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4C49B2E315B0991B003512CD /* Debug */,
+ 4C49B2E415B0991B003512CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 4C49B2B015B0991B003512CD /* Project object */;
+}
diff --git a/Templates/HalibutUniversalTemplate/iOS/ios_api.cpp b/Templates/HalibutUniversalTemplate/iOS/ios_api.cpp
new file mode 100644
index 0000000..e8c79cc
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/ios_api.cpp
@@ -0,0 +1,47 @@
+#include "include/Engine.h"
+#include "main_code.h"
+
+TMyApplication App;
+
+
+extern "C" void AppInit()
+{
+
+ App.OuterInit(480, 320, 480, 320);
+}
+
+
+extern "C" void AppDeinit()
+{
+ App.OuterDeinit();
+
+}
+
+
+extern "C" void AppUpdate(int dt)
+{
+ App.OuterUpdate(dt);
+}
+
+
+
+extern "C" void AppDraw()
+{
+ App.OuterDraw();
+}
+
+extern "C" void AppOnTapDown(int posx, int posy)
+{
+ //App.OuterOnTapDown(vec2(posx, posy));
+}
+
+extern "C" void AppOnTapUp(int posx, int posy)
+{
+ //App.OuterOnTapUp(vec2(posx, posy));
+}
+
+extern "C" void AppOnScroll(int shiftx, int shifty)
+{
+ //App.OuterOnMove(vec2(shiftx, shifty));
+}
+
diff --git a/Templates/HalibutUniversalTemplate/iOS/ios_api.h b/Templates/HalibutUniversalTemplate/iOS/ios_api.h
new file mode 100644
index 0000000..66b7e7f
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/ios_api.h
@@ -0,0 +1,15 @@
+//
+// Header.h
+// doublehitballs
+//
+// Created by vvv ооо on 15.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+void AppInit();
+void AppDeinit();
+void AppUpdate(int dt);
+void AppDraw();
+void AppOnTapDown(int posx, int posy);
+void AppOnTapUp(int posx, int posy);
+void AppOnScroll(int shiftx, int shifty);
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/iOS/main.m b/Templates/HalibutUniversalTemplate/iOS/main.m
new file mode 100644
index 0000000..f8b2c00
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/main.m
@@ -0,0 +1,18 @@
+//
+// main.m
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+
+#import "AppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/Templates/HalibutUniversalTemplate/iOS/res/Icon.png b/Templates/HalibutUniversalTemplate/iOS/res/Icon.png
new file mode 100644
index 0000000..b6880bf
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/iOS/res/Icon.png differ
diff --git a/Templates/HalibutUniversalTemplate/iOS/res/Splash-landscape.png b/Templates/HalibutUniversalTemplate/iOS/res/Splash-landscape.png
new file mode 100644
index 0000000..61dbcaa
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/iOS/res/Splash-landscape.png differ
diff --git a/Templates/HalibutUniversalTemplate/iOS/res/iTunesArtwork b/Templates/HalibutUniversalTemplate/iOS/res/iTunesArtwork
new file mode 100644
index 0000000..876e97d
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/iOS/res/iTunesArtwork differ
diff --git a/Templates/HalibutUniversalTemplate/iOS/template-Info.plist b/Templates/HalibutUniversalTemplate/iOS/template-Info.plist
new file mode 100644
index 0000000..84a7bd1
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/template-Info.plist
@@ -0,0 +1,50 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ Halibut Universal Template
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIconFile
+ Icon.png
+ CFBundleIdentifier
+ fishrungames.template
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0
+ LSRequiresIPhoneOS
+
+ UILaunchImageFile
+ Splash-landscape.png
+ UIPrerenderedIcon
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarHidden
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+
+
diff --git a/Templates/HalibutUniversalTemplate/iOS/template-Prefix.pch b/Templates/HalibutUniversalTemplate/iOS/template-Prefix.pch
new file mode 100644
index 0000000..cd479f5
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/iOS/template-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'doublehitballs' target in the 'doublehitballs' project
+//
+
+#import
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import
+ #import
+#endif
diff --git a/Templates/HalibutUniversalTemplate/jni/Android.mk b/Templates/HalibutUniversalTemplate/jni/Android.mk
new file mode 100644
index 0000000..8c48b8f
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/jni/Android.mk
@@ -0,0 +1,72 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+LPATH := $(call my-dir)
+
+ENGINE_PATH = $(SalmonEnginePathCygwin)
+
+BOOST_PATH = $(LibsPathCygwin)/boost_1_47_0
+
+OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0
+
+VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2
+
+SQUIRREL_PATH = $(LibsPathCygwin)/sqplus
+
+LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android
+
+ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni
+
+#====== ENGINE AND LIBS =====================
+
+include $(ENGINE_PATH)/Android_Engine.mk
+
+#================= THE GAME =======================
+
+
+LOCAL_PATH:= $(LPATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := -DTARGET_ANDROID -DTARGET_HALIBUT -DNOSOUND -std=gnu++11 --std=c++11
+LOCAL_STATIC_LIBRARIES := boost
+LOCAL_STATIC_LIBRARIES += squirrel
+LOCAL_STATIC_LIBRARIES += png_lib
+LOCAL_STATIC_LIBRARIES += zip
+LOCAL_SHARED_LIBRARIES := HalibutEngine
+LOCAL_C_INCLUDES := $(ENGINE_PATH)
+LOCAL_C_INCLUDES += $(BOOST_PATH)
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib
+LOCAL_C_INCLUDES += $(LIBPNG_PATH)
+LOCAL_C_INCLUDES += $(ZIP_PATH)
+LOCAL_MODULE := AndroidJniTemplate
+LOCAL_SRC_FILES := main_code.cpp
+LOCAL_SRC_FILES += android_api.cpp
+
+LOCAL_LDLIBS := -lGLESv2
+LOCAL_LDLIBS += -llog -Wl,-s
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/Templates/HalibutUniversalTemplate/jni/Application.mk b/Templates/HalibutUniversalTemplate/jni/Application.mk
new file mode 100644
index 0000000..3ef733b
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/jni/Application.mk
@@ -0,0 +1,3 @@
+APP_STL := gnustl_static
+APP_CPPFLAGS += -fexceptions
+APP_CPPFLAGS += -frtti
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/jni/android_api.cpp b/Templates/HalibutUniversalTemplate/jni/android_api.cpp
new file mode 100644
index 0000000..94536a2
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/jni/android_api.cpp
@@ -0,0 +1,116 @@
+#include "android_api.h"
+
+#include "main_code.h"
+
+boost::shared_ptr App(new TMyApplication);
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height)
+{
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDeinit(); //Clean up what is left at previous launch (if applicable)
+ }
+
+ App->OuterInit(width, height, 480.f, 320.f);
+
+ App->Inited = true;
+ }
+ catch (...)
+ {
+ throw;
+ }
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_StopSounds(JNIEnv * env, jobject obj)
+{
+
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_Update(JNIEnv * env, jobject obj, long dt)
+{
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDraw();
+ App->OuterUpdate(dt);
+ }
+
+ }
+ catch (...)
+ {
+ throw;
+ }
+
+}
+
+JNIEXPORT int JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_IsInited(JNIEnv * env, jobject obj)
+{
+
+ if (App->IsInited())
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_Destroy(JNIEnv * env, jobject obj)
+{
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDeinit();
+ }
+
+ }
+ catch (...)
+ {
+ throw;
+ }
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnTapDown(JNIEnv * env, jobject obj, float x, float y, long time)
+{
+
+ try
+ {
+
+ }
+ catch (...)
+ {
+ throw;
+ }
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnTapUp(JNIEnv * env, jobject obj, float x, float y, long time)
+{
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, float x, float y, long time)
+{
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnFling(JNIEnv * env, jobject obj, jfloat velocityX, jfloat velocityY, long time)
+{
+
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnScroll(JNIEnv * env, jobject obj, jfloat distanceX, jfloat distanceY, long time)
+{
+
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnKeyPress(JNIEnv * env, jobject obj, jint keyCode)
+{
+ App->OnKeyPress(keyCode);
+}
diff --git a/Templates/HalibutUniversalTemplate/jni/android_api.h b/Templates/HalibutUniversalTemplate/jni/android_api.h
new file mode 100644
index 0000000..e74ec9b
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/jni/android_api.h
@@ -0,0 +1,32 @@
+#ifndef ANDROID_API_H_INCLUDED
+#define ANDROID_API_H_INCLUDED
+
+#include
+#include
+
+#include
+#include
+#include
+
+#include "boost/shared_ptr.hpp"
+
+#include "main_code.h"
+
+using namespace SE;
+
+extern "C" {
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_StopSounds(JNIEnv * env, jobject obj);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_Update(JNIEnv * env, jobject obj, long dt);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_Destroy(JNIEnv * env, jobject obj);
+ JNIEXPORT int JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_IsInited(JNIEnv * env, jobject obj);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnTapDown(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnTapUp(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnFling(JNIEnv * env, jobject obj, jfloat velocityX, jfloat velocityY, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnScroll(JNIEnv * env, jobject obj, jfloat distanceX, jfloat distanceY, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_halibutjnitemplate_JniWrapper_OnKeyPress(JNIEnv * env, jobject obj, jint keyCode);
+};
+
+
+#endif
diff --git a/Templates/HalibutUniversalTemplate/jni/main_code.cpp b/Templates/HalibutUniversalTemplate/jni/main_code.cpp
new file mode 100644
index 0000000..7af2b88
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/jni/main_code.cpp
@@ -0,0 +1,60 @@
+#include "main_code.h"
+
+#ifdef TARGET_ANDROID
+#include "android_api.h"
+#endif
+
+#include
+#include
+#include
+#include
+
+#include "include/Engine.h"
+
+#include "main_code.h"
+
+void TMyApplication::InnerInit()
+{
+#ifdef TARGET_ANDROID
+ ResourceManager->PathToResources = "";
+#endif
+#ifdef TARGET_IOS
+ ResourceManager->PathToResources = "assets/";
+#endif
+#ifdef TARGET_WIN32
+#ifdef NDEBUG
+ ResourceManager->PathToResources = "resources/";
+#else
+ ResourceManager->PathToResources = "../../../assets/";
+#endif
+#endif
+
+ ResourceManager->ShaderManager.AddShader("DefaultShader", "shader_vertex.txt", "shader_fragment.txt");
+ Renderer->PushShader("DefaultShader");
+
+
+ ResourceManager->TexList.AddTexture(CONST_CONSOLE_TEX_NAME);
+
+ ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.bmp32", "droid_sans14_font_charmap.txt");
+ ResourceManager->FontManager.PushFont("droid_sans14");
+
+ //Inited = true; Must be set in android_api.cpp manually
+}
+
+void TMyApplication::InnerDeinit()
+{
+ Inited = false;
+}
+
+
+void TMyApplication::InnerDraw()
+{
+ //Console->Draw();
+}
+
+
+void TMyApplication::InnerUpdate(cardinal dt)
+{
+
+}
+
diff --git a/Templates/HalibutUniversalTemplate/jni/main_code.h b/Templates/HalibutUniversalTemplate/jni/main_code.h
new file mode 100644
index 0000000..e30d979
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/jni/main_code.h
@@ -0,0 +1,47 @@
+#ifndef GL_CODE_H_INCLUDED
+#define GL_CODE_H_INCLUDED
+
+
+#include
+#include
+#include
+
+#include "boost/shared_ptr.hpp"
+#include "boost/thread/thread.hpp"
+#include "boost/asio.hpp"
+#include "boost/signal.hpp"
+#include "boost/assign.hpp"
+#include "boost/bind.hpp"
+
+#include "include/Engine.h"
+
+using namespace SE;
+
+
+class TMyApplication : public TApplication
+{
+protected:
+
+public:
+ bool Inited;
+
+ TMyApplication() : TApplication(), Inited(false) { }
+
+
+ virtual void InnerInit();
+
+ virtual void InnerDeinit();
+
+ virtual void InnerDraw();
+
+ virtual void InnerUpdate(cardinal dt);
+
+ bool IsInited() { return Inited; }
+
+};
+
+
+static void checkGlError(const std::string& op);
+
+
+#endif
diff --git a/Templates/HalibutUniversalTemplate/res/drawable-hdpi/ic_menu_template.png b/Templates/HalibutUniversalTemplate/res/drawable-hdpi/ic_menu_template.png
new file mode 100644
index 0000000..1e28f93
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/res/drawable-hdpi/ic_menu_template.png differ
diff --git a/Templates/HalibutUniversalTemplate/res/drawable-ldpi/ic_menu_template.png b/Templates/HalibutUniversalTemplate/res/drawable-ldpi/ic_menu_template.png
new file mode 100644
index 0000000..6a93cf2
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/res/drawable-ldpi/ic_menu_template.png differ
diff --git a/Templates/HalibutUniversalTemplate/res/drawable-mdpi/ic_menu_template.png b/Templates/HalibutUniversalTemplate/res/drawable-mdpi/ic_menu_template.png
new file mode 100644
index 0000000..7c1cab2
Binary files /dev/null and b/Templates/HalibutUniversalTemplate/res/drawable-mdpi/ic_menu_template.png differ
diff --git a/Templates/HalibutUniversalTemplate/res/values/strings.xml b/Templates/HalibutUniversalTemplate/res/values/strings.xml
new file mode 100644
index 0000000..33d1455
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/res/values/strings.xml
@@ -0,0 +1,4 @@
+
+
+ AndroidJniTemplate
+
diff --git a/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/GLView.java b/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/GLView.java
new file mode 100644
index 0000000..bbfa76d
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/GLView.java
@@ -0,0 +1,72 @@
+package fishrungames.halibutjnitemplate;
+
+
+import java.util.Calendar;
+
+import android.content.Context;
+import android.opengl.GLSurfaceView;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import fishrungames.engine.GLViewAncestor;
+
+class GLView extends GLViewAncestor
+{
+ static long lastTimeStamp;
+ static boolean gameIsInited = false;
+
+ public GLView(Context context)
+ {
+ //Change this method? Don't forget to change method below!
+ super(context);
+ init(false, 0, 0);
+ }
+
+ public GLView(Context context, boolean translucent, int depth, int stencil)
+ {
+ //Change this method? Don't forget to change method above!
+ super(context);
+ init(translucent, depth, stencil);
+ }
+
+ public void init(boolean translucent, int depth, int stencil)
+ {
+ super.init(translucent, depth, stencil);
+ setRenderer(new Renderer());
+ Calendar c = Calendar.getInstance();
+ lastTimeStamp = c.getTimeInMillis();
+ gameIsInited = true;
+ }
+
+ private static class Renderer implements GLSurfaceView.Renderer
+ {
+ public void onDrawFrame(GL10 gl)
+ {
+ if (gameIsInited)
+ {
+ Calendar c = Calendar.getInstance();
+
+ long currentTimeStamp = c.getTimeInMillis();
+
+ JniWrapper.Update(currentTimeStamp - lastTimeStamp);
+
+ lastTimeStamp = currentTimeStamp;
+ }
+ }
+
+ public void onSurfaceChanged(GL10 gl, int width, int height)
+ {
+
+
+ //JniWrapper.Destroy();
+
+ JniWrapper.Init(width,height);
+ }
+
+ public void onSurfaceCreated(GL10 gl, EGLConfig config)
+ {
+ //Do nothing.
+ }
+ }
+}
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/JniWrapper.java b/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/JniWrapper.java
new file mode 100644
index 0000000..e44c8b2
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/JniWrapper.java
@@ -0,0 +1,23 @@
+package fishrungames.halibutjnitemplate;
+
+public class JniWrapper
+{
+ static {
+ System.loadLibrary("AndroidJniTemplate");
+ }
+
+
+ public static native void Init(int width, int height);
+ public static native void Update(long dt);
+ public static native void StopSounds();
+ public static native void Destroy();
+ public static native int IsInited();
+ public static native void OnTapDown(float x, float y, long time);
+ public static native void OnTapUp(float x, float y, long time);
+ public static native void OnTapMove(float x, float y, long time);
+
+ public static native void OnFling(float velocityX, float velocityY, long time);
+ public static native void OnScroll(float distanceX, float distanceY, long time);
+
+ public static native void OnKeyPress(int keyCode);
+}
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/MainActivity.java b/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/MainActivity.java
new file mode 100644
index 0000000..c167356
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/src/fishrungames/halibutjnitemplate/MainActivity.java
@@ -0,0 +1,191 @@
+package fishrungames.halibutjnitemplate;
+
+import fishrungames.engine.FileWrapper;
+
+//Deprecated
+//import fishrungames.androidjnitemplate.R;
+
+import android.app.Activity;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.Bundle;
+
+import android.view.GestureDetector;
+import android.view.KeyEvent;
+import android.view.GestureDetector.SimpleOnGestureListener;
+import android.view.MotionEvent;
+/*
+import android.content.res.Resources;
+import android.content.res.XmlResourceParser;
+import android.util.AttributeSet;
+import android.util.Xml;
+import android.inputmethodservice.Keyboard;
+import android.inputmethodservice.KeyboardView;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.LinearLayout;
+*/
+
+//Deprecated
+//import java.lang.reflect.Field;
+
+
+public class MainActivity extends Activity
+{
+
+ GLView mView;
+
+ boolean IsScrolling = false;
+
+ private GestureDetector gestureDetector;
+
+ @Override
+ protected void onCreate(Bundle icicle)
+ {
+
+ super.onCreate(icicle);
+
+ gestureDetector = new GestureDetector(new MyGestureListener());
+
+ FileWrapper.LoadHalibutEngineLibrary();
+
+ FileWrapper.SetActivityInstance(this);
+ FileWrapper.SetupEnviroment();
+
+ /*
+ * Deprecated
+ try
+ {
+ for (Field f : R.raw.class.getFields())
+ {
+ FileWrapper.AddToFileMap(f.getName(), f.getInt(null));
+ }
+
+
+ } catch (IllegalArgumentException e)
+ {
+ FileWrapper.ConsoleOut("IllegalArgumentException\n");
+ onStop();
+ } catch (IllegalAccessException e)
+ {
+ FileWrapper.ConsoleOut("IllegalAccessException\n");
+ onStop();
+ }*/
+
+ String apkFilePath = null;
+ ApplicationInfo appInfo = null;
+ PackageManager packMgmr = this.getPackageManager();
+ try {
+ appInfo = packMgmr.getApplicationInfo("fishrungames.halibutjnitemplate", 0);
+ } catch (NameNotFoundException e) {
+
+ e.printStackTrace();
+ throw new RuntimeException("Unable to locate assets, aborting...");
+ }
+ apkFilePath = appInfo.sourceDir;
+
+ FileWrapper.SetupApkFilePath(apkFilePath);
+
+ mView = new GLView(getApplication());
+
+ setContentView(mView);
+
+ }
+
+ @Override
+ protected void onPause()
+ {
+ JniWrapper.Destroy();
+ super.onPause();
+ mView.onPause();
+ }
+
+ @Override
+ protected void onResume()
+ {
+ //Don't write anything here!
+ super.onResume();
+ mView.onResume();
+ }
+
+ @Override
+ protected void onStop()
+ {
+ //Don't write anything here!
+ super.onStop();
+ }
+
+ public boolean onKeyDown(int keyCode, KeyEvent event)
+ {
+ int ascii_keycode = keyCode;
+
+ if (keyCode == KeyEvent.KEYCODE_DEL)
+ {
+ ascii_keycode = 8; //Hack - getUnicodeChar does not recognize backspace
+ }
+ else
+ {
+ ascii_keycode = event.getUnicodeChar();
+ }
+
+ JniWrapper.OnKeyPress(ascii_keycode);
+ return super.onKeyDown(keyCode, event);
+ }
+
+ public boolean onTouchEvent(MotionEvent event)
+ {
+ if (gestureDetector.onTouchEvent(event))
+ {
+ return true;
+ }
+
+ if (event.getAction() == MotionEvent.ACTION_UP)
+ {
+ float x = event.getX();
+ float y = (float) mView.getHeight() - event.getY();
+
+ if (IsScrolling)
+ {
+ IsScrolling = false;
+ }
+
+ JniWrapper.OnTapUp(x, y, event.getEventTime());
+
+ }
+ return true;
+ }
+
+ class MyGestureListener extends SimpleOnGestureListener
+ {
+
+ @Override
+ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
+ float velocityY)
+ {
+ JniWrapper.OnFling(velocityX, velocityY, e2.getEventTime());
+ return true;
+ }
+
+ public boolean onScroll(MotionEvent e1, MotionEvent e2,
+ float distanceX, float distanceY)
+ {
+
+ JniWrapper.OnScroll(distanceX, distanceY, e2.getEventTime());
+ IsScrolling = true;
+ return true;
+ }
+
+ public boolean onDown(MotionEvent event)
+ {
+
+ float x = event.getX();
+ float y = (float) mView.getHeight() - event.getY();
+
+ JniWrapper.OnTapDown(x, y, event.getEventTime());
+
+ return true;
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template.sln b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template.sln
new file mode 100644
index 0000000..554803f
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template.sln
@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Template.vcxproj", "{0080A3E1-DFBF-4557-B198-E6D5D7724393}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4E274B19-10B2-4987-96C5-76F35A149502} = {4E274B19-10B2-4987-96C5-76F35A149502}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Halibut Engine", "..\..\..\..\Engine\Halibut Engine\Halibut Engine.vcxproj", "{4E274B19-10B2-4987-96C5-76F35A149502}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_nosound|Win32 = Debug_nosound|Win32
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.Build.0 = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.Build.0 = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.ActiveCfg = Release|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.Build.0 = Release|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Debug|Win32.Build.0 = Debug|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Release|Win32.ActiveCfg = Release|Win32
+ {4E274B19-10B2-4987-96C5-76F35A149502}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/Template.vcxproj b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/Template.vcxproj
new file mode 100644
index 0000000..db75789
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/Template.vcxproj
@@ -0,0 +1,88 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}
+ Template
+
+
+
+ Application
+ true
+ NotSet
+
+
+ Application
+ false
+ true
+ NotSet
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include
+ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include
+ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)
+
+
+
+ Level3
+ Disabled
+ ../../../jni;$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+ TARGET_WIN32;TARGET_HALIBUT;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG
+
+
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Halibut Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;sqplusD.lib;squirrelD.lib;sqdbglibD.lib;sqstdlibD.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)
+ $(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Debug Library
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ ../../../jni;$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+ TARGET_WIN32;TARGET_HALIBUT;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;NDEBUG
+
+
+ true
+ true
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Halibut Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)
+ $(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Release Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/main.cpp b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/main.cpp
new file mode 100644
index 0000000..1eb1c2b
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/main.cpp
@@ -0,0 +1,16 @@
+#include "main.h"
+
+#include "main_code.h"
+
+int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
+ LPSTR lpszCmdLine, int nCmdShow)
+{
+ //Create application
+ TMyApplication Application;
+
+ Application.Width = 480;
+ Application.Height = 320;
+
+ //Start application
+ return MainLoop(Application);
+}
\ No newline at end of file
diff --git a/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/main.h b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/main.h
new file mode 100644
index 0000000..9939a50
--- /dev/null
+++ b/Templates/HalibutUniversalTemplate/windows/HalibutTemplate/Template/main.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "Engine.h"
diff --git a/Templates/SalmonUniversalTemplate/.classpath b/Templates/SalmonUniversalTemplate/.classpath
new file mode 100644
index 0000000..36de7ba
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Templates/SalmonUniversalTemplate/.project b/Templates/SalmonUniversalTemplate/.project
new file mode 100644
index 0000000..4c7a50f
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/.project
@@ -0,0 +1,33 @@
+
+
+ EngineWrapper
+
+
+
+
+
+ com.android.ide.eclipse.adt.ResourceManagerBuilder
+
+
+
+
+ com.android.ide.eclipse.adt.PreCompilerBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.android.ide.eclipse.adt.ApkBuilder
+
+
+
+
+
+ com.android.ide.eclipse.adt.AndroidNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/Templates/SalmonUniversalTemplate/AndroidManifest.xml b/Templates/SalmonUniversalTemplate/AndroidManifest.xml
new file mode 100644
index 0000000..cd9d963
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/AndroidManifest.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Templates/SalmonUniversalTemplate/assets/bt_box_yellow.bmp b/Templates/SalmonUniversalTemplate/assets/bt_box_yellow.bmp
new file mode 100644
index 0000000..b7a2d6f
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/assets/bt_box_yellow.bmp differ
diff --git a/Templates/SalmonUniversalTemplate/assets/console_bkg.bmp b/Templates/SalmonUniversalTemplate/assets/console_bkg.bmp
new file mode 100644
index 0000000..d32ee4c
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/assets/console_bkg.bmp differ
diff --git a/Templates/SalmonUniversalTemplate/assets/droid_sans14_font_bitmap.bmp32 b/Templates/SalmonUniversalTemplate/assets/droid_sans14_font_bitmap.bmp32
new file mode 100644
index 0000000..b9f2b1f
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/assets/droid_sans14_font_bitmap.bmp32 differ
diff --git a/Templates/SalmonUniversalTemplate/assets/droid_sans14_font_charmap.txt b/Templates/SalmonUniversalTemplate/assets/droid_sans14_font_charmap.txt
new file mode 100644
index 0000000..f17cd0b
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/assets/droid_sans14_font_charmap.txt
@@ -0,0 +1,95 @@
+32 0.00976562 0.0195312 0 0.0546875 0 0 0.0078125
+49 0.0195312 0.0195312 0.00390625 0.015625 0.0078125 0.0390625 0.015625
+50 0.0371094 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+51 0.0605469 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+52 0.0820312 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+53 0.105469 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+54 0.126953 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+55 0.148438 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+56 0.169922 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+57 0.191406 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+48 0.212891 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+97 0.234375 0.0195312 0.00195312 0.0234375 0.00976562 0.03125 0.0136719
+98 0.253906 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
+99 0.275391 0.0195312 0.00195312 0.0234375 0.00976562 0.03125 0.0136719
+100 0.294922 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
+101 0.316406 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+102 0.337891 0.0195312 0 0.0117188 0.00976562 0.0429688 0.0078125
+103 0.357422 0.0195312 0.00195312 0.0234375 0.0136719 0.0429688 0.0136719
+104 0.380859 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
+105 0.402344 0.0195312 0 0.0117188 0.00585938 0.0429688 0.0078125
+106 0.417969 0.0195312 -0.00195312 0.0117188 0.0078125 0.0546875 0.0078125
+107 0.435547 0.0195312 0.00195312 0.0117188 0.0136719 0.0429688 0.0136719
+108 0.458984 0.0195312 0.00195312 0.0117188 0.00390625 0.0429688 0.0078125
+109 0.472656 0.0195312 0.00195312 0.0234375 0.0214844 0.03125 0.0253906
+110 0.503906 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+111 0.525391 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+112 0.546875 0.0195312 0.00195312 0.0234375 0.0117188 0.0429688 0.015625
+113 0.568359 0.0195312 0.00195312 0.0234375 0.0117188 0.0429688 0.015625
+114 0.589844 0.0195312 0.00195312 0.0234375 0.0078125 0.03125 0.00976562
+115 0.607422 0.0195312 0 0.0234375 0.0117188 0.03125 0.0136719
+116 0.628906 0.0195312 0 0.015625 0.00976562 0.0390625 0.00976562
+117 0.648438 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
+118 0.669922 0.0195312 -0.00195312 0.0234375 0.0175781 0.03125 0.0136719
+119 0.697266 0.0195312 -0.00195312 0.0234375 0.0234375 0.03125 0.0195312
+120 0.730469 0.0195312 0 0.0234375 0.0136719 0.03125 0.0136719
+121 0.753906 0.0195312 -0.00195312 0.0234375 0.0175781 0.0429688 0.0136719
+122 0.78125 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.0136719
+65 0.802734 0.0195312 -0.00195312 0.015625 0.0214844 0.0390625 0.0175781
+66 0.833984 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.0175781
+67 0.857422 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+68 0.880859 0.0195312 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+69 0.90625 0.0195312 0.00195312 0.015625 0.00976562 0.0390625 0.0136719
+70 0.925781 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.0136719
+71 0.947266 0.0195312 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+72 0.00976562 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+73 0.0351562 0.09375 0 0.015625 0.00976562 0.0390625 0.00976562
+74 0.0546875 0.09375 -0.00390625 0.015625 0.00976562 0.0507812 0.00585938
+75 0.0742188 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.015625
+76 0.0996094 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.0136719
+77 0.121094 0.09375 0.00195312 0.015625 0.0195312 0.0390625 0.0234375
+78 0.150391 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+79 0.175781 0.09375 0.00195312 0.015625 0.0175781 0.0390625 0.0214844
+80 0.203125 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+81 0.224609 0.09375 0.00195312 0.015625 0.0175781 0.046875 0.0214844
+82 0.251953 0.09375 0.00195312 0.015625 0.0136719 0.0390625 0.015625
+83 0.275391 0.09375 0 0.015625 0.0136719 0.0390625 0.0136719
+84 0.298828 0.09375 0 0.015625 0.0136719 0.0390625 0.0136719
+85 0.322266 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
+86 0.347656 0.09375 -0.00195312 0.015625 0.0195312 0.0390625 0.015625
+87 0.376953 0.09375 -0.00195312 0.015625 0.0292969 0.0390625 0.0253906
+88 0.416016 0.09375 -0.00195312 0.015625 0.0195312 0.0390625 0.015625
+89 0.445312 0.09375 -0.00195312 0.015625 0.0175781 0.0390625 0.0136719
+90 0.472656 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.015625
+46 0.494141 0.09375 0.00195312 0.046875 0.00390625 0.0078125 0.0078125
+44 0.507812 0.09375 0.00195312 0.046875 0.00390625 0.0117188 0.0078125
+58 0.521484 0.09375 0.00195312 0.0234375 0.00390625 0.03125 0.0078125
+59 0.535156 0.09375 0.00195312 0.0234375 0.00390625 0.0351562 0.0078125
+64 0.548828 0.09375 0.00195312 0.015625 0.0195312 0.0429688 0.0234375
+35 0.578125 0.09375 0 0.015625 0.015625 0.0390625 0.0175781
+36 0.603516 0.09375 0.00195312 0.0117188 0.0117188 0.046875 0.015625
+37 0.625 0.09375 0.00195312 0.015625 0.0195312 0.0390625 0.0234375
+94 0.654297 0.09375 0 0.015625 0.0136719 0.0234375 0.0136719
+38 0.677734 0.09375 0.00195312 0.015625 0.0175781 0.0390625 0.0195312
+42 0.705078 0.09375 0 0.0117188 0.0136719 0.0234375 0.015625
+33 0.728516 0.09375 0.00195312 0.015625 0.00390625 0.0390625 0.0078125
+63 0.742188 0.09375 0 0.015625 0.00976562 0.0390625 0.0117188
+40 0.761719 0.09375 0.00195312 0.015625 0.0078125 0.046875 0.0078125
+41 0.779297 0.09375 0 0.015625 0.00585938 0.046875 0.0078125
+91 0.794922 0.09375 0.00195312 0.015625 0.00585938 0.046875 0.0078125
+93 0.810547 0.09375 0 0.015625 0.00585938 0.046875 0.0078125
+123 0.826172 0.09375 0 0.015625 0.00976562 0.046875 0.00976562
+125 0.845703 0.09375 0 0.015625 0.00976562 0.046875 0.00976562
+60 0.865234 0.09375 0.00195312 0.0234375 0.0117188 0.0273438 0.015625
+62 0.886719 0.09375 0.00195312 0.0234375 0.0117188 0.0273438 0.015625
+95 0.908203 0.09375 0 0.0585938 0.0117188 0.00390625 0.0117188
+45 0.929688 0.09375 0.00195312 0.0390625 0.00585938 0.0078125 0.00976562
+43 0.945312 0.09375 0 0.0234375 0.0136719 0.0273438 0.015625
+61 0.00976562 0.167969 0 0.0273438 0.0136719 0.0195312 0.015625
+124 0.0332031 0.167969 0.00585938 0.0117188 0.00390625 0.0546875 0.0136719
+92 0.046875 0.167969 -0.00195312 0.015625 0.0136719 0.0390625 0.00976562
+47 0.0703125 0.167969 -0.00195312 0.015625 0.0136719 0.0390625 0.00976562
+126 0.09375 0.167969 0.00195312 0.03125 0.0117188 0.0117188 0.015625
+96 0.115234 0.167969 0.00585938 0.0117188 0.00585938 0.0078125 0.015625
+34 0.130859 0.167969 0.00195312 0.015625 0.00976562 0.015625 0.0117188
+39 0.150391 0.167969 0.00195312 0.015625 0.00390625 0.015625 0.00585938
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/assets/gui_transparent.fragment b/Templates/SalmonUniversalTemplate/assets/gui_transparent.fragment
new file mode 100644
index 0000000..fb7c2a6
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/assets/gui_transparent.fragment
@@ -0,0 +1,10 @@
+precision highp float;
+
+uniform sampler2D Texture;
+varying vec2 texCoord;
+
+void main()
+{
+ vec4 texColor = texture2D(Texture,texCoord).rgba;
+ gl_FragColor = vec4(texColor.rgb, texColor.a);
+}
diff --git a/Templates/SalmonUniversalTemplate/assets/gui_transparent.vertex b/Templates/SalmonUniversalTemplate/assets/gui_transparent.vertex
new file mode 100644
index 0000000..ad425c2
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/assets/gui_transparent.vertex
@@ -0,0 +1,11 @@
+attribute vec3 vPosition;
+attribute vec2 vTexCoord;
+varying vec2 texCoord;
+uniform mat4 ProjectionMatrix;
+
+void main()
+{
+ //480x320
+ gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
+ texCoord = vTexCoord;
+}
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/assets/level1ogg.ogg b/Templates/SalmonUniversalTemplate/assets/level1ogg.ogg
new file mode 100644
index 0000000..ce86d31
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/assets/level1ogg.ogg differ
diff --git a/Templates/SalmonUniversalTemplate/assets/model.xml b/Templates/SalmonUniversalTemplate/assets/model.xml
new file mode 100644
index 0000000..a406ac9
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/assets/model.xml
@@ -0,0 +1,1725 @@
+
+
+
+
+
+
+1.15, 0.0, 0.15
+1.15, 0.0, 6.05
+-1.15, 0.0, 6.05
+-1.15, 0.0, 6.05
+-1.15, 0.0, 0.15
+1.15, 0.0, 0.15
+1.15, 2.2, 0.15
+-1.15, 2.2, 0.15
+-1.15, 2.2, 6.05
+-1.15, 2.2, 6.05
+1.15, 2.2, 6.05
+1.15, 2.2, 0.15
+1.15, 2.2, 0.15
+1.15, 2.2, 6.05
+1.15, 0.0, 6.05
+1.15, 0.0, 6.05
+1.15, 0.0, 0.15
+1.15, 2.2, 0.15
+-1.15, 2.2, 0.15
+1.15, 2.2, 0.15
+1.15, 0.0, 0.15
+1.15, 0.0, 0.15
+-1.15, 0.0, 0.15
+-1.15, 2.2, 0.15
+-1.15, 2.2, 6.05
+-1.15, 2.2, 0.15
+-1.15, 0.0, 0.15
+-1.15, 0.0, 0.15
+-1.15, 0.0, 6.05
+-1.15, 2.2, 6.05
+-1.15, 0.0, 6.05
+1.15, 0.0, 6.05
+1.05, 0.0900212, 6.05
+1.05, 0.0900212, 6.05
+-1.05, 0.0900212, 6.05
+-1.15, 0.0, 6.05
+1.15, 0.0, 6.05
+1.15, 2.2, 6.05
+1.05, 2.09437, 6.05
+1.05, 2.09437, 6.05
+1.05, 0.0900212, 6.05
+1.15, 0.0, 6.05
+1.15, 2.2, 6.05
+-1.15, 2.2, 6.05
+-1.05, 2.09437, 6.05
+-1.05, 2.09437, 6.05
+1.05, 2.09437, 6.05
+1.15, 2.2, 6.05
+-1.15, 2.2, 6.05
+-1.15, 0.0, 6.05
+-1.05, 0.0900212, 6.05
+-1.05, 0.0900212, 6.05
+-1.05, 2.09437, 6.05
+-1.15, 2.2, 6.05
+0.61422, 0.0, 6.07288
+0.611504, 0.0, 6.06452
+0.611504, 2.18832, 6.06452
+0.611504, 2.18832, 6.06452
+0.61422, 2.18832, 6.07288
+0.61422, 0.0, 6.07288
+0.588496, 0.0, 6.06452
+0.58578, 0.0, 6.07288
+0.58578, 2.18832, 6.07288
+0.58578, 2.18832, 6.07288
+0.588496, 2.18832, 6.06452
+0.588496, 0.0, 6.06452
+0.58578, 0.0, 6.07288
+0.588496, 0.0, 6.08123
+0.588496, 2.18832, 6.08123
+0.588496, 2.18832, 6.08123
+0.58578, 2.18832, 6.07288
+0.58578, 0.0, 6.07288
+0.588496, 0.0, 6.08123
+0.595606, 0.0, 6.0864
+0.595606, 2.18832, 6.0864
+0.595606, 2.18832, 6.0864
+0.588496, 2.18832, 6.08123
+0.588496, 0.0, 6.08123
+0.595606, 0.0, 6.0864
+0.604394, 0.0, 6.0864
+0.604394, 2.18832, 6.0864
+0.604394, 2.18832, 6.0864
+0.595606, 2.18832, 6.0864
+0.595606, 0.0, 6.0864
+0.604394, 0.0, 6.0864
+0.611504, 0.0, 6.08123
+0.611504, 2.18832, 6.08123
+0.611504, 2.18832, 6.08123
+0.604394, 2.18832, 6.0864
+0.604394, 0.0, 6.0864
+0.604394, 0.0, 6.0864
+0.595606, 0.0, 6.0864
+0.588496, 0.0, 6.08123
+0.588496, 0.0, 6.08123
+0.58578, 0.0, 6.07288
+0.588496, 0.0, 6.06452
+0.588496, 0.0, 6.06452
+0.595606, 0.0, 6.05935
+0.604394, 0.0, 6.05935
+0.604394, 0.0, 6.05935
+0.611504, 0.0, 6.06452
+0.61422, 0.0, 6.07288
+0.588496, 0.0, 6.06452
+0.604394, 0.0, 6.05935
+0.61422, 0.0, 6.07288
+0.588496, 0.0, 6.08123
+0.588496, 0.0, 6.06452
+0.61422, 0.0, 6.07288
+0.604394, 0.0, 6.0864
+0.588496, 0.0, 6.08123
+0.61422, 0.0, 6.07288
+0.611504, 0.0, 6.08123
+0.604394, 0.0, 6.0864
+0.61422, 0.0, 6.07288
+0.611504, 2.18832, 6.06452
+0.604394, 2.18832, 6.05935
+0.595606, 2.18832, 6.05935
+0.595606, 2.18832, 6.05935
+0.588496, 2.18832, 6.06452
+0.58578, 2.18832, 6.07288
+0.58578, 2.18832, 6.07288
+0.588496, 2.18832, 6.08123
+0.595606, 2.18832, 6.0864
+0.595606, 2.18832, 6.0864
+0.604394, 2.18832, 6.0864
+0.611504, 2.18832, 6.08123
+0.58578, 2.18832, 6.07288
+0.595606, 2.18832, 6.0864
+0.611504, 2.18832, 6.08123
+0.595606, 2.18832, 6.05935
+0.58578, 2.18832, 6.07288
+0.611504, 2.18832, 6.08123
+0.611504, 2.18832, 6.06452
+0.595606, 2.18832, 6.05935
+0.611504, 2.18832, 6.08123
+0.61422, 2.18832, 6.07288
+0.611504, 2.18832, 6.06452
+0.611504, 2.18832, 6.08123
+0.215692, 0.0, 6.07288
+0.212695, 0.0, 6.06365
+0.212695, 2.18832, 6.06365
+0.212695, 2.18832, 6.06365
+0.215692, 2.18832, 6.07288
+0.215692, 0.0, 6.07288
+0.187305, 0.0, 6.06365
+0.184308, 0.0, 6.07288
+0.184308, 2.18832, 6.07288
+0.184308, 2.18832, 6.07288
+0.187305, 2.18832, 6.06365
+0.187305, 0.0, 6.06365
+0.184308, 0.0, 6.07288
+0.187305, 0.0, 6.0821
+0.187305, 2.18832, 6.0821
+0.187305, 2.18832, 6.0821
+0.184308, 2.18832, 6.07288
+0.184308, 0.0, 6.07288
+0.187305, 0.0, 6.0821
+0.195151, 0.0, 6.0878
+0.195151, 2.18832, 6.0878
+0.195151, 2.18832, 6.0878
+0.187305, 2.18832, 6.0821
+0.187305, 0.0, 6.0821
+0.195151, 0.0, 6.0878
+0.204849, 0.0, 6.0878
+0.204849, 2.18832, 6.0878
+0.204849, 2.18832, 6.0878
+0.195151, 2.18832, 6.0878
+0.195151, 0.0, 6.0878
+0.204849, 0.0, 6.0878
+0.212695, 0.0, 6.0821
+0.212695, 2.18832, 6.0821
+0.212695, 2.18832, 6.0821
+0.204849, 2.18832, 6.0878
+0.204849, 0.0, 6.0878
+0.204849, 0.0, 6.0878
+0.195151, 0.0, 6.0878
+0.187305, 0.0, 6.0821
+0.187305, 0.0, 6.0821
+0.184308, 0.0, 6.07288
+0.187305, 0.0, 6.06365
+0.187305, 0.0, 6.06365
+0.195151, 0.0, 6.05795
+0.204849, 0.0, 6.05795
+0.204849, 0.0, 6.05795
+0.212695, 0.0, 6.06365
+0.215692, 0.0, 6.07288
+0.187305, 0.0, 6.06365
+0.204849, 0.0, 6.05795
+0.215692, 0.0, 6.07288
+0.187305, 0.0, 6.0821
+0.187305, 0.0, 6.06365
+0.215692, 0.0, 6.07288
+0.204849, 0.0, 6.0878
+0.187305, 0.0, 6.0821
+0.215692, 0.0, 6.07288
+0.212695, 0.0, 6.0821
+0.204849, 0.0, 6.0878
+0.215692, 0.0, 6.07288
+0.212695, 2.18832, 6.06365
+0.204849, 2.18832, 6.05795
+0.195151, 2.18832, 6.05795
+0.195151, 2.18832, 6.05795
+0.187305, 2.18832, 6.06365
+0.184308, 2.18832, 6.07288
+0.184308, 2.18832, 6.07288
+0.187305, 2.18832, 6.0821
+0.195151, 2.18832, 6.0878
+0.195151, 2.18832, 6.0878
+0.204849, 2.18832, 6.0878
+0.212695, 2.18832, 6.0821
+0.184308, 2.18832, 6.07288
+0.195151, 2.18832, 6.0878
+0.212695, 2.18832, 6.0821
+0.195151, 2.18832, 6.05795
+0.184308, 2.18832, 6.07288
+0.212695, 2.18832, 6.0821
+0.212695, 2.18832, 6.06365
+0.195151, 2.18832, 6.05795
+0.212695, 2.18832, 6.0821
+0.215692, 2.18832, 6.07288
+0.212695, 2.18832, 6.06365
+0.212695, 2.18832, 6.0821
+-0.184136, 0.0, 6.07288
+-0.187166, 0.0, 6.06355
+-0.187166, 2.18832, 6.06355
+-0.187166, 2.18832, 6.06355
+-0.184136, 2.18832, 6.07288
+-0.184136, 0.0, 6.07288
+-0.215864, 0.0, 6.07288
+-0.212834, 0.0, 6.0822
+-0.212834, 2.18832, 6.0822
+-0.212834, 2.18832, 6.0822
+-0.215864, 2.18832, 6.07288
+-0.215864, 0.0, 6.07288
+-0.212834, 0.0, 6.0822
+-0.204902, 0.0, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.212834, 2.18832, 6.0822
+-0.212834, 0.0, 6.0822
+-0.204902, 0.0, 6.08796
+-0.195098, 0.0, 6.08796
+-0.195098, 2.18832, 6.08796
+-0.195098, 2.18832, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.204902, 0.0, 6.08796
+-0.195098, 0.0, 6.08796
+-0.187166, 0.0, 6.0822
+-0.187166, 2.18832, 6.0822
+-0.187166, 2.18832, 6.0822
+-0.195098, 2.18832, 6.08796
+-0.195098, 0.0, 6.08796
+-0.187166, 0.0, 6.0822
+-0.184136, 0.0, 6.07288
+-0.184136, 2.18832, 6.07288
+-0.184136, 2.18832, 6.07288
+-0.187166, 2.18832, 6.0822
+-0.187166, 0.0, 6.0822
+-0.195098, 0.0, 6.08796
+-0.204902, 0.0, 6.08796
+-0.212834, 0.0, 6.0822
+-0.212834, 0.0, 6.0822
+-0.215864, 0.0, 6.07288
+-0.212834, 0.0, 6.06355
+-0.212834, 0.0, 6.06355
+-0.204902, 0.0, 6.05779
+-0.195098, 0.0, 6.05779
+-0.195098, 0.0, 6.05779
+-0.187166, 0.0, 6.06355
+-0.184136, 0.0, 6.07288
+-0.212834, 0.0, 6.06355
+-0.195098, 0.0, 6.05779
+-0.184136, 0.0, 6.07288
+-0.212834, 0.0, 6.0822
+-0.212834, 0.0, 6.06355
+-0.184136, 0.0, 6.07288
+-0.195098, 0.0, 6.08796
+-0.212834, 0.0, 6.0822
+-0.184136, 0.0, 6.07288
+-0.187166, 0.0, 6.0822
+-0.195098, 0.0, 6.08796
+-0.184136, 0.0, 6.07288
+-0.187166, 2.18832, 6.06355
+-0.195098, 2.18832, 6.05779
+-0.204902, 2.18832, 6.05779
+-0.204902, 2.18832, 6.05779
+-0.212834, 2.18832, 6.06355
+-0.215864, 2.18832, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.212834, 2.18832, 6.0822
+-0.204902, 2.18832, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.195098, 2.18832, 6.08796
+-0.187166, 2.18832, 6.0822
+-0.215864, 2.18832, 6.07288
+-0.204902, 2.18832, 6.08796
+-0.187166, 2.18832, 6.0822
+-0.204902, 2.18832, 6.05779
+-0.215864, 2.18832, 6.07288
+-0.187166, 2.18832, 6.0822
+-0.187166, 2.18832, 6.06355
+-0.204902, 2.18832, 6.05779
+-0.187166, 2.18832, 6.0822
+-0.184136, 2.18832, 6.07288
+-0.187166, 2.18832, 6.06355
+-0.187166, 2.18832, 6.0822
+-0.585371, 0.0, 6.07288
+-0.588165, 0.0, 6.06428
+-0.588165, 2.18832, 6.06428
+-0.588165, 2.18832, 6.06428
+-0.585371, 2.18832, 6.07288
+-0.585371, 0.0, 6.07288
+-0.614629, 0.0, 6.07288
+-0.611835, 0.0, 6.08148
+-0.611835, 2.18832, 6.08148
+-0.611835, 2.18832, 6.08148
+-0.614629, 2.18832, 6.07288
+-0.614629, 0.0, 6.07288
+-0.611835, 0.0, 6.08148
+-0.604521, 0.0, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.611835, 2.18832, 6.08148
+-0.611835, 0.0, 6.08148
+-0.604521, 0.0, 6.08679
+-0.595479, 0.0, 6.08679
+-0.595479, 2.18832, 6.08679
+-0.595479, 2.18832, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.604521, 0.0, 6.08679
+-0.595479, 0.0, 6.08679
+-0.588165, 0.0, 6.08148
+-0.588165, 2.18832, 6.08148
+-0.588165, 2.18832, 6.08148
+-0.595479, 2.18832, 6.08679
+-0.595479, 0.0, 6.08679
+-0.588165, 0.0, 6.08148
+-0.585371, 0.0, 6.07288
+-0.585371, 2.18832, 6.07288
+-0.585371, 2.18832, 6.07288
+-0.588165, 2.18832, 6.08148
+-0.588165, 0.0, 6.08148
+-0.595479, 0.0, 6.08679
+-0.604521, 0.0, 6.08679
+-0.611835, 0.0, 6.08148
+-0.611835, 0.0, 6.08148
+-0.614629, 0.0, 6.07288
+-0.611835, 0.0, 6.06428
+-0.611835, 0.0, 6.06428
+-0.604521, 0.0, 6.05896
+-0.595479, 0.0, 6.05896
+-0.595479, 0.0, 6.05896
+-0.588165, 0.0, 6.06428
+-0.585371, 0.0, 6.07288
+-0.611835, 0.0, 6.06428
+-0.595479, 0.0, 6.05896
+-0.585371, 0.0, 6.07288
+-0.611835, 0.0, 6.08148
+-0.611835, 0.0, 6.06428
+-0.585371, 0.0, 6.07288
+-0.595479, 0.0, 6.08679
+-0.611835, 0.0, 6.08148
+-0.585371, 0.0, 6.07288
+-0.588165, 0.0, 6.08148
+-0.595479, 0.0, 6.08679
+-0.585371, 0.0, 6.07288
+-0.588165, 2.18832, 6.06428
+-0.595479, 2.18832, 6.05896
+-0.604521, 2.18832, 6.05896
+-0.604521, 2.18832, 6.05896
+-0.611835, 2.18832, 6.06428
+-0.614629, 2.18832, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.611835, 2.18832, 6.08148
+-0.604521, 2.18832, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.595479, 2.18832, 6.08679
+-0.588165, 2.18832, 6.08148
+-0.614629, 2.18832, 6.07288
+-0.604521, 2.18832, 6.08679
+-0.588165, 2.18832, 6.08148
+-0.604521, 2.18832, 6.05896
+-0.614629, 2.18832, 6.07288
+-0.588165, 2.18832, 6.08148
+-0.588165, 2.18832, 6.06428
+-0.604521, 2.18832, 6.05896
+-0.588165, 2.18832, 6.08148
+-0.585371, 2.18832, 6.07288
+-0.588165, 2.18832, 6.06428
+-0.588165, 2.18832, 6.08148
+1.03278, 0.0984738, 6.052
+1.03278, 2.08558, 6.052
+0.00136847, 2.08558, 6.052
+0.00136847, 2.08558, 6.052
+0.00136847, 0.0984738, 6.052
+1.03278, 0.0984738, 6.052
+-0.0122491, 2.08558, 6.052
+-1.04367, 2.08558, 6.052
+-1.04367, 0.0984738, 6.052
+-1.04367, 0.0984738, 6.052
+-0.0122491, 0.0984738, 6.052
+-0.0122491, 2.08558, 6.052
+0.61422, 0.0, 6.07288
+0.61422, 2.18832, 6.07288
+0.61422, 0.569992, 6.07288
+0.61422, 0.569992, 6.07288
+0.61422, 0.543543, 6.07288
+0.61422, 0.0, 6.07288
+0.61422, 2.18832, 6.07288
+0.611504, 2.18832, 6.08123
+0.611504, 0.569992, 6.08123
+0.611504, 0.569992, 6.08123
+0.61422, 0.569992, 6.07288
+0.61422, 2.18832, 6.07288
+0.611504, 2.18832, 6.08123
+0.611504, 0.0, 6.08123
+0.611504, 0.543543, 6.08123
+0.611504, 0.543543, 6.08123
+0.611504, 0.569992, 6.08123
+0.611504, 2.18832, 6.08123
+0.611504, 0.0, 6.08123
+0.61422, 0.0, 6.07288
+0.61422, 0.543543, 6.07288
+0.61422, 0.543543, 6.07288
+0.611504, 0.543543, 6.08123
+0.611504, 0.0, 6.08123
+0.61422, 0.543543, 6.07288
+0.61422, 0.569992, 6.07288
+0.892061, 0.569992, 6.05618
+0.892061, 0.569992, 6.05618
+0.892061, 0.543543, 6.05618
+0.61422, 0.543543, 6.07288
+0.61422, 0.569992, 6.07288
+0.611504, 0.569992, 6.08123
+0.892061, 0.569992, 6.05618
+0.611504, 0.569992, 6.08123
+0.611504, 0.543543, 6.08123
+0.892061, 0.543543, 6.05618
+0.892061, 0.543543, 6.05618
+0.892061, 0.569992, 6.05618
+0.611504, 0.569992, 6.08123
+0.611504, 0.543543, 6.08123
+0.61422, 0.543543, 6.07288
+0.892061, 0.543543, 6.05618
+0.215692, 0.0, 6.07288
+0.215692, 2.18832, 6.07288
+0.215692, 0.576822, 6.07288
+0.215692, 0.576822, 6.07288
+0.215692, 0.546241, 6.07288
+0.215692, 0.0, 6.07288
+0.215692, 2.18832, 6.07288
+0.212695, 2.18832, 6.0821
+0.212695, 0.576822, 6.0821
+0.212695, 0.576822, 6.0821
+0.215692, 0.576822, 6.07288
+0.215692, 2.18832, 6.07288
+0.212695, 2.18832, 6.0821
+0.212695, 0.0, 6.0821
+0.212695, 0.546241, 6.0821
+0.212695, 0.546241, 6.0821
+0.212695, 0.576822, 6.0821
+0.212695, 2.18832, 6.0821
+0.212695, 0.0, 6.0821
+0.215692, 0.0, 6.07288
+0.215692, 0.546241, 6.07288
+0.215692, 0.546241, 6.07288
+0.212695, 0.546241, 6.0821
+0.212695, 0.0, 6.0821
+0.215692, 0.546241, 6.07288
+0.215692, 0.576822, 6.07288
+0.480489, 0.576822, 6.06799
+0.480489, 0.576822, 6.06799
+0.480489, 0.546241, 6.06799
+0.215692, 0.546241, 6.07288
+0.215692, 0.576822, 6.07288
+0.212695, 0.576822, 6.0821
+0.480489, 0.576822, 6.06799
+0.212695, 0.576822, 6.0821
+0.212695, 0.546241, 6.0821
+0.480489, 0.546241, 6.06799
+0.480489, 0.546241, 6.06799
+0.480489, 0.576822, 6.06799
+0.212695, 0.576822, 6.0821
+0.212695, 0.546241, 6.0821
+0.215692, 0.546241, 6.07288
+0.480489, 0.546241, 6.06799
+-0.212834, 2.18832, 6.06355
+-0.212834, 0.0, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.212834, 0.572329, 6.06355
+-0.212834, 2.18832, 6.06355
+-0.212834, 0.0, 6.06355
+-0.215864, 0.0, 6.07288
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.537944, 6.07288
+-0.212834, 0.537944, 6.06355
+-0.212834, 0.0, 6.06355
+-0.215864, 0.0, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.0, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.212834, 2.18832, 6.06355
+-0.212834, 0.572329, 6.06355
+-0.212834, 0.572329, 6.06355
+-0.215864, 0.572329, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.212834, 0.572329, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.480645, 0.537944, 6.05698
+-0.480645, 0.537944, 6.05698
+-0.480645, 0.572329, 6.05698
+-0.212834, 0.572329, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.215864, 0.537944, 6.07288
+-0.480645, 0.537944, 6.05698
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.480645, 0.572329, 6.05698
+-0.480645, 0.572329, 6.05698
+-0.480645, 0.537944, 6.05698
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.212834, 0.572329, 6.06355
+-0.480645, 0.572329, 6.05698
+-0.611835, 2.18832, 6.06428
+-0.611835, 0.0, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.611835, 0.577831, 6.06428
+-0.611835, 2.18832, 6.06428
+-0.611835, 0.0, 6.06428
+-0.614629, 0.0, 6.07288
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.532442, 6.07288
+-0.611835, 0.532442, 6.06428
+-0.611835, 0.0, 6.06428
+-0.614629, 0.0, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.0, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.611835, 2.18832, 6.06428
+-0.611835, 0.577831, 6.06428
+-0.611835, 0.577831, 6.06428
+-0.614629, 0.577831, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.611835, 0.577831, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.879528, 0.532442, 6.05519
+-0.879528, 0.532442, 6.05519
+-0.879528, 0.577831, 6.05519
+-0.611835, 0.577831, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.614629, 0.532442, 6.07288
+-0.879528, 0.532442, 6.05519
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.879528, 0.577831, 6.05519
+-0.879528, 0.577831, 6.05519
+-0.879528, 0.532442, 6.05519
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.611835, 0.577831, 6.06428
+-0.879528, 0.577831, 6.05519
+
+
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+-0.951056, 0.0, -0.30902
+-0.994186, 0.0, 0.107678
+-0.994186, 0.0, -0.107678
+-0.994186, 0.0, -0.107678
+-0.951056, 0.0, -0.30902
+-0.951056, 0.0, -0.30902
+-0.994186, 0.0, 0.107678
+-0.741036, 0.0, 0.671465
+-0.867608, 0.0, 0.497249
+-0.867608, 0.0, 0.497249
+-0.994186, 0.0, -0.107678
+-0.994186, 0.0, 0.107678
+-0.741036, 0.0, 0.671465
+-0.204823, 0.0, 0.978799
+-0.409646, 0.0, 0.912244
+-0.409646, 0.0, 0.912244
+-0.867608, 0.0, 0.497249
+-0.741036, 0.0, 0.671465
+-0.204823, 0.0, 0.978799
+0.409646, 0.0, 0.912244
+0.204823, 0.0, 0.978799
+0.204823, 0.0, 0.978799
+-0.409646, 0.0, 0.912244
+-0.204823, 0.0, 0.978799
+0.409646, 0.0, 0.912244
+0.58781, 0.0, 0.808999
+0.58781, 0.0, 0.808999
+0.58781, 0.0, 0.808999
+0.204823, 0.0, 0.978799
+0.409646, 0.0, 0.912244
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+-0.951057, 0.0, -0.309016
+-0.994187, 0.0, 0.107666
+-0.994185, 0.0, -0.107681
+-0.994185, 0.0, -0.107681
+-0.951057, 0.0, -0.309016
+-0.951057, 0.0, -0.309016
+-0.994187, 0.0, 0.107666
+-0.741014, 0.0, 0.67149
+-0.867605, 0.0, 0.497253
+-0.867605, 0.0, 0.497253
+-0.994185, 0.0, -0.107681
+-0.994187, 0.0, 0.107666
+-0.741014, 0.0, 0.67149
+-0.204805, 0.0, 0.978803
+-0.409611, 0.0, 0.91226
+-0.409611, 0.0, 0.91226
+-0.867605, 0.0, 0.497253
+-0.741014, 0.0, 0.67149
+-0.204805, 0.0, 0.978803
+0.409611, 0.0, 0.91226
+0.204806, 0.0, 0.978803
+0.204806, 0.0, 0.978803
+-0.409611, 0.0, 0.91226
+-0.204805, 0.0, 0.978803
+0.409611, 0.0, 0.91226
+0.587765, 0.0, 0.809032
+0.587765, 0.0, 0.809032
+0.587765, 0.0, 0.809032
+0.204806, 0.0, 0.978803
+0.409611, 0.0, 0.91226
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.994184, 0.0, -0.107692
+0.951052, 0.0, -0.309032
+0.951052, 0.0, -0.309032
+0.951052, 0.0, -0.309032
+0.994188, 0.0, 0.107662
+0.994184, 0.0, -0.107692
+-0.951061, 0.0, 0.309003
+-0.740996, 0.0, 0.671509
+-0.867599, 0.0, 0.497264
+-0.867599, 0.0, 0.497264
+-0.951061, 0.0, 0.309003
+-0.951061, 0.0, 0.309003
+-0.740996, 0.0, 0.671509
+-0.204794, 0.0, 0.978805
+-0.409587, 0.0, 0.912271
+-0.409587, 0.0, 0.912271
+-0.867599, 0.0, 0.497264
+-0.740996, 0.0, 0.671509
+-0.204794, 0.0, 0.978805
+0.409588, 0.0, 0.912271
+0.204794, 0.0, 0.978805
+0.204794, 0.0, 0.978805
+-0.409587, 0.0, 0.912271
+-0.204794, 0.0, 0.978805
+0.409588, 0.0, 0.912271
+0.867599, 0.0, 0.497264
+0.740997, 0.0, 0.671509
+0.740997, 0.0, 0.671509
+0.204794, 0.0, 0.978805
+0.409588, 0.0, 0.912271
+0.867599, 0.0, 0.497264
+0.994184, 0.0, -0.107692
+0.994188, 0.0, 0.107662
+0.994188, 0.0, 0.107662
+0.740997, 0.0, 0.671509
+0.867599, 0.0, 0.497264
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.994185, 0.0, -0.107687
+0.951052, 0.0, -0.309031
+0.951052, 0.0, -0.309031
+0.951052, 0.0, -0.309031
+0.994187, 0.0, 0.107671
+0.994185, 0.0, -0.107687
+-0.951057, 0.0, 0.309016
+-0.741023, 0.0, 0.67148
+-0.867605, 0.0, 0.497254
+-0.867605, 0.0, 0.497254
+-0.951057, 0.0, 0.309016
+-0.951057, 0.0, 0.309016
+-0.741023, 0.0, 0.67148
+-0.204814, 0.0, 0.978801
+-0.409628, 0.0, 0.912253
+-0.409628, 0.0, 0.912253
+-0.867605, 0.0, 0.497254
+-0.741023, 0.0, 0.67148
+-0.204814, 0.0, 0.978801
+0.409628, 0.0, 0.912253
+0.204814, 0.0, 0.978801
+0.204814, 0.0, 0.978801
+-0.409628, 0.0, 0.912253
+-0.204814, 0.0, 0.978801
+0.409628, 0.0, 0.912253
+0.867605, 0.0, 0.497254
+0.741023, 0.0, 0.67148
+0.741023, 0.0, 0.67148
+0.204814, 0.0, 0.978801
+0.409628, 0.0, 0.912253
+0.867605, 0.0, 0.497254
+0.994185, 0.0, -0.107687
+0.994187, 0.0, 0.107671
+0.994187, 0.0, 0.107671
+0.741023, 0.0, 0.67148
+0.867605, 0.0, 0.497254
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+
+
+
+
+0.996648, 0.355226
+0.0979369, 0.355226
+0.0979369, 0.0048809
+0.0979369, 0.0048809
+0.996648, 0.00488085
+0.996648, 0.355226
+0.996643, 0.00482193
+0.996644, 0.355167
+0.0979327, 0.355167
+0.0979327, 0.355167
+0.0979326, 0.00482197
+0.996643, 0.00482193
+0.995325, 0.693698
+0.0952358, 0.693696
+0.0952372, 0.358069
+0.0952372, 0.358069
+0.995326, 0.358072
+0.995325, 0.693698
+0.995712, 0.994161
+0.697017, 0.994161
+0.697017, 0.709019
+0.697017, 0.709019
+0.995712, 0.709019
+0.995712, 0.994161
+0.994841, 0.693621
+0.0947512, 0.693619
+0.0947528, 0.357992
+0.0947528, 0.357992
+0.994842, 0.357995
+0.994841, 0.693621
+0.0445547, 0.707523
+0.695375, 0.712237
+0.666895, 0.737505
+0.666895, 0.737505
+0.072667, 0.733201
+0.0445547, 0.707523
+0.0524875, 0.741276
+0.675028, 0.740186
+0.645188, 0.768535
+0.645188, 0.768535
+0.0780106, 0.769529
+0.0524875, 0.741276
+0.0483286, 0.805124
+0.68021, 0.805144
+0.652737, 0.834161
+0.652737, 0.834161
+0.0758014, 0.834144
+0.0483286, 0.805124
+0.673981, 0.802663
+0.0514405, 0.801571
+0.0769636, 0.773319
+0.0769636, 0.773319
+0.644141, 0.774314
+0.673981, 0.802663
+0.0320342, 0.0043303
+0.0352626, 0.0043303
+0.0352626, 0.808058
+0.0352626, 0.808058
+0.0320342, 0.808058
+0.0320342, 0.0043303
+0.0126548, 0.0043303
+0.0158832, 0.0043303
+0.0158832, 0.808058
+0.0158832, 0.808058
+0.0126548, 0.808058
+0.0126548, 0.0043303
+0.0158832, 0.0043303
+0.0191126, 0.0043303
+0.0191126, 0.808058
+0.0191126, 0.808058
+0.0158832, 0.808058
+0.0158832, 0.0043303
+0.0191126, 0.0043303
+0.022343, 0.0043303
+0.022343, 0.808058
+0.022343, 0.808058
+0.0191126, 0.808058
+0.0191126, 0.0043303
+0.022343, 0.0043303
+0.0255743, 0.0043303
+0.0255743, 0.808058
+0.0255743, 0.808058
+0.022343, 0.808058
+0.022343, 0.0043303
+0.0255743, 0.0043303
+0.0288048, 0.0043303
+0.0288048, 0.808058
+0.0288048, 0.808058
+0.0255743, 0.808058
+0.0255743, 0.0043303
+0.0281171, 0.20497
+0.0290044, 0.208058
+0.0279071, 0.211078
+0.0279071, 0.211078
+0.0252445, 0.212876
+0.0220335, 0.212766
+0.0220335, 0.212766
+0.0195005, 0.210789
+0.0186132, 0.207701
+0.0186132, 0.207701
+0.0197105, 0.204681
+0.0223732, 0.202885
+0.0220335, 0.212766
+0.0186132, 0.207701
+0.0223732, 0.202885
+0.0279071, 0.211078
+0.0220335, 0.212766
+0.0223732, 0.202885
+0.0281171, 0.20497
+0.0279071, 0.211078
+0.0223732, 0.202885
+0.0255843, 0.202992
+0.0281171, 0.20497
+0.0223732, 0.202885
+0.0190881, 0.218049
+0.0204065, 0.220979
+0.0197509, 0.224124
+0.0197509, 0.224124
+0.0173717, 0.226283
+0.0141777, 0.226632
+0.0141777, 0.226632
+0.011389, 0.225036
+0.0100705, 0.222106
+0.0100705, 0.222106
+0.0107261, 0.218961
+0.0147068, 0.216693
+0.0141777, 0.226632
+0.0100705, 0.222106
+0.0147068, 0.216693
+0.0197509, 0.224124
+0.0141777, 0.226632
+0.0147068, 0.216693
+0.0190881, 0.218049
+0.0197509, 0.224124
+0.0147068, 0.216693
+0.0146979, 0.216562
+0.0190881, 0.218049
+0.0147068, 0.216693
+0.0328696, 0.0043303
+0.036432, 0.0043303
+0.036432, 0.808058
+0.036432, 0.808058
+0.0328696, 0.808058
+0.0328696, 0.0043303
+0.0114858, 0.0043303
+0.0150483, 0.0043303
+0.0150483, 0.808058
+0.0150483, 0.808058
+0.0114858, 0.808058
+0.0114858, 0.0043303
+0.0150483, 0.0043303
+0.0186118, 0.0043303
+0.0186118, 0.808058
+0.0186118, 0.808058
+0.0150483, 0.808058
+0.0150483, 0.0043303
+0.0186118, 0.0043303
+0.0221764, 0.0043303
+0.0221763, 0.808058
+0.0221763, 0.808058
+0.0186118, 0.808058
+0.0186118, 0.0043303
+0.0221764, 0.0043303
+0.0257418, 0.0043303
+0.0257418, 0.808058
+0.0257418, 0.808058
+0.0221763, 0.808058
+0.0221764, 0.0043303
+0.0257418, 0.0043303
+0.0293064, 0.0043303
+0.0293063, 0.808058
+0.0293063, 0.808058
+0.0257418, 0.808058
+0.0257418, 0.0043303
+0.0285426, 0.20616
+0.0295102, 0.209571
+0.0282882, 0.212899
+0.0282882, 0.212899
+0.0253432, 0.214874
+0.0218002, 0.21474
+0.0218002, 0.21474
+0.0190125, 0.212549
+0.0180449, 0.209138
+0.0180449, 0.209138
+0.0192669, 0.20581
+0.0222121, 0.203838
+0.0218002, 0.21474
+0.0180449, 0.209138
+0.0222121, 0.203838
+0.0282882, 0.212899
+0.0218002, 0.21474
+0.0222121, 0.203838
+0.0285426, 0.20616
+0.0282882, 0.212899
+0.0222121, 0.203838
+0.0257553, 0.203968
+0.0285426, 0.20616
+0.0222121, 0.203838
+0.0200101, 0.220638
+0.0215053, 0.223853
+0.0208253, 0.227333
+0.0208253, 0.227333
+0.0182299, 0.229748
+0.0147104, 0.230177
+0.0147104, 0.230177
+0.0116111, 0.228455
+0.0101159, 0.22524
+0.0101159, 0.22524
+0.0107959, 0.22176
+0.015157, 0.219214
+0.0147104, 0.230177
+0.0101159, 0.22524
+0.015157, 0.219214
+0.0208253, 0.227333
+0.0147104, 0.230177
+0.015157, 0.219214
+0.0200101, 0.220638
+0.0208253, 0.227333
+0.015157, 0.219214
+0.0151446, 0.219047
+0.0200101, 0.220638
+0.015157, 0.219214
+0.0329622, 0.0043303
+0.0365634, 0.0043303
+0.0365634, 0.808058
+0.0365634, 0.808058
+0.0329622, 0.808058
+0.0329622, 0.0043303
+0.0149465, 0.0043303
+0.018549, 0.0043303
+0.018549, 0.808058
+0.018549, 0.808058
+0.0149465, 0.808058
+0.0149465, 0.0043303
+0.018549, 0.0043303
+0.0221527, 0.0043303
+0.0221529, 0.808058
+0.0221529, 0.808058
+0.018549, 0.808058
+0.018549, 0.0043303
+0.0221527, 0.0043303
+0.0257568, 0.0043303
+0.0257571, 0.808058
+0.0257571, 0.808058
+0.0221529, 0.808058
+0.0221527, 0.0043303
+0.0257568, 0.0043303
+0.0293601, 0.0043303
+0.0293601, 0.808058
+0.0293601, 0.808058
+0.0257571, 0.808058
+0.0257568, 0.0043303
+0.0293601, 0.0043303
+0.0329622, 0.0043303
+0.0329622, 0.808058
+0.0329622, 0.808058
+0.0293601, 0.808058
+0.0293601, 0.0043303
+0.00872991, 0.210054
+0.00752289, 0.206679
+0.00853017, 0.203239
+0.00853017, 0.203239
+0.0113624, 0.201022
+0.014946, 0.200969
+0.014946, 0.200969
+0.0179101, 0.202964
+0.0191171, 0.206339
+0.0191171, 0.206339
+0.0181098, 0.209779
+0.015273, 0.21197
+0.014946, 0.200969
+0.0191171, 0.206339
+0.015273, 0.21197
+0.00853017, 0.203239
+0.014946, 0.200969
+0.015273, 0.21197
+0.00872991, 0.210054
+0.00853017, 0.203239
+0.015273, 0.21197
+0.0116902, 0.212075
+0.00872991, 0.210054
+0.015273, 0.21197
+0.0173309, 0.226479
+0.0139519, 0.225284
+0.0119209, 0.22233
+0.0119209, 0.22233
+0.0134691, 0.218018
+0.0127676, 0.216596
+0.0127676, 0.216596
+0.0176317, 0.214884
+0.0210108, 0.21608
+0.0210108, 0.21608
+0.0230417, 0.219033
+0.0229487, 0.222616
+0.0127676, 0.216596
+0.0210108, 0.21608
+0.0229487, 0.222616
+0.0119209, 0.22233
+0.0127676, 0.216596
+0.0229487, 0.222616
+0.0173309, 0.226479
+0.0119209, 0.22233
+0.0229487, 0.222616
+0.0207674, 0.22546
+0.0173309, 0.226479
+0.0229487, 0.222616
+0.0322638, 0.0043303
+0.0355849, 0.0043303
+0.0355849, 0.808058
+0.0355849, 0.808058
+0.0322638, 0.808058
+0.0322638, 0.0043303
+0.0156493, 0.0043303
+0.0189715, 0.0043303
+0.0189716, 0.808058
+0.0189716, 0.808058
+0.0156493, 0.808058
+0.0156493, 0.0043303
+0.0189715, 0.0043303
+0.0222948, 0.0043303
+0.0222948, 0.808058
+0.0222948, 0.808058
+0.0189716, 0.808058
+0.0189715, 0.0043303
+0.0222948, 0.0043303
+0.0256186, 0.0043303
+0.0256186, 0.808058
+0.0256186, 0.808058
+0.0222948, 0.808058
+0.0222948, 0.0043303
+0.0256186, 0.0043303
+0.0289416, 0.0043303
+0.0289416, 0.808058
+0.0289416, 0.808058
+0.0256186, 0.808058
+0.0256186, 0.0043303
+0.0289416, 0.0043303
+0.0322638, 0.0043303
+0.0322638, 0.808058
+0.0322638, 0.808058
+0.0289416, 0.808058
+0.0289416, 0.0043303
+0.00988939, 0.207325
+0.00878603, 0.204209
+0.00972486, 0.20104
+0.00972486, 0.20104
+0.0123434, 0.199006
+0.0156482, 0.198963
+0.0156482, 0.198963
+0.0183755, 0.200813
+0.0194788, 0.203929
+0.0194788, 0.203929
+0.01854, 0.207098
+0.0159177, 0.209111
+0.0156482, 0.198963
+0.0194788, 0.203929
+0.0159177, 0.209111
+0.00972486, 0.20104
+0.0156482, 0.198963
+0.0159177, 0.209111
+0.00988939, 0.207325
+0.00972486, 0.20104
+0.0159177, 0.209111
+0.0126135, 0.209197
+0.00988939, 0.207325
+0.0159177, 0.209111
+0.0171257, 0.22806
+0.014114, 0.226698
+0.0124783, 0.223826
+0.0124783, 0.223826
+0.014237, 0.219918
+0.0136974, 0.218696
+0.0136974, 0.218696
+0.0183066, 0.217429
+0.0213182, 0.218791
+0.0213182, 0.218791
+0.0229539, 0.221664
+0.022589, 0.224949
+0.0136974, 0.218696
+0.0213182, 0.218791
+0.022589, 0.224949
+0.0124783, 0.223826
+0.0136974, 0.218696
+0.022589, 0.224949
+0.0171257, 0.22806
+0.0124783, 0.223826
+0.022589, 0.224949
+0.0203628, 0.227392
+0.0171257, 0.22806
+0.022589, 0.224949
+0.99556, 0.708874
+0.995362, 0.993985
+0.849113, 0.993985
+0.849113, 0.993985
+0.84931, 0.708874
+0.99556, 0.708874
+0.849122, 0.994505
+0.696954, 0.99411
+0.697152, 0.709
+0.697152, 0.709
+0.84932, 0.709394
+0.849122, 0.994505
+0.0320342, 0.0043303
+0.0320342, 0.808058
+0.0320342, 0.808058
+0.0320342, 0.808058
+0.0320342, 0.0043303
+0.0320342, 0.0043303
+0.0146979, 0.216562
+0.0147068, 0.216693
+0.0288048, 0.808058
+0.0288048, 0.808058
+0.0320342, 0.808058
+0.0146979, 0.216562
+0.0288048, 0.808058
+0.0288048, 0.0043303
+0.0288048, 0.0043303
+0.0288048, 0.0043303
+0.0288048, 0.808058
+0.0288048, 0.808058
+0.0255843, 0.202992
+0.0223732, 0.202885
+0.0320342, 0.0043303
+0.0320342, 0.0043303
+0.0288048, 0.0043303
+0.0255843, 0.202992
+0.0320342, 0.0043303
+0.0320342, 0.808058
+0.0304195, 0.808058
+0.0304195, 0.808058
+0.0304195, 0.0043303
+0.0320342, 0.0043303
+0.0320342, 0.808058
+0.0288048, 0.808058
+0.0304195, 0.808058
+0.0288048, 0.808058
+0.0288048, 0.0043303
+0.0304195, 0.0043303
+0.0304195, 0.0043303
+0.0304195, 0.808058
+0.0288048, 0.808058
+0.0288048, 0.0043303
+0.0320342, 0.0043303
+0.0304195, 0.0043303
+0.0328696, 0.0043303
+0.0328696, 0.808058
+0.0328696, 0.808058
+0.0328696, 0.808058
+0.0328696, 0.0043303
+0.0328696, 0.0043303
+0.0151446, 0.219047
+0.015157, 0.219214
+0.0293063, 0.808058
+0.0293063, 0.808058
+0.0328696, 0.808058
+0.0151446, 0.219047
+0.0293063, 0.808058
+0.0293064, 0.0043303
+0.0293064, 0.0043303
+0.0293064, 0.0043303
+0.0293063, 0.808058
+0.0293063, 0.808058
+0.0257553, 0.203968
+0.0222121, 0.203838
+0.0328696, 0.0043303
+0.0328696, 0.0043303
+0.0293064, 0.0043303
+0.0257553, 0.203968
+0.0328696, 0.0043303
+0.0328696, 0.808058
+0.0310879, 0.808058
+0.0310879, 0.808058
+0.031088, 0.0043303
+0.0328696, 0.0043303
+0.0328696, 0.808058
+0.0293063, 0.808058
+0.0310879, 0.808058
+0.0293063, 0.808058
+0.0293064, 0.0043303
+0.031088, 0.0043303
+0.031088, 0.0043303
+0.0310879, 0.808058
+0.0293063, 0.808058
+0.0293064, 0.0043303
+0.0328696, 0.0043303
+0.031088, 0.0043303
+0.011345, 0.808058
+0.011345, 0.0043303
+0.011345, 0.0043303
+0.011345, 0.0043303
+0.011345, 0.808058
+0.011345, 0.808058
+0.014946, 0.200969
+0.0113624, 0.201022
+0.0149465, 0.0043303
+0.0149465, 0.0043303
+0.011345, 0.0043303
+0.014946, 0.200969
+0.0149465, 0.0043303
+0.0149465, 0.808058
+0.0149465, 0.808058
+0.0149465, 0.808058
+0.0149465, 0.0043303
+0.0149465, 0.0043303
+0.0127676, 0.216596
+0.0134691, 0.218018
+0.011345, 0.808058
+0.011345, 0.808058
+0.0149465, 0.808058
+0.0127676, 0.216596
+0.011345, 0.808058
+0.011345, 0.0043303
+0.0131458, 0.0043303
+0.0131458, 0.0043303
+0.0131458, 0.808058
+0.011345, 0.808058
+0.011345, 0.0043303
+0.0149465, 0.0043303
+0.0131458, 0.0043303
+0.0149465, 0.0043303
+0.0149465, 0.808058
+0.0131458, 0.808058
+0.0131458, 0.808058
+0.0131458, 0.0043303
+0.0149465, 0.0043303
+0.0149465, 0.808058
+0.011345, 0.808058
+0.0131458, 0.808058
+0.0123284, 0.808058
+0.0123284, 0.0043303
+0.0123284, 0.0043303
+0.0123284, 0.0043303
+0.0123284, 0.808058
+0.0123284, 0.808058
+0.0156482, 0.198963
+0.0123434, 0.199006
+0.0156493, 0.0043303
+0.0156493, 0.0043303
+0.0123284, 0.0043303
+0.0156482, 0.198963
+0.0156493, 0.0043303
+0.0156493, 0.808058
+0.0156493, 0.808058
+0.0156493, 0.808058
+0.0156493, 0.0043303
+0.0156493, 0.0043303
+0.0136974, 0.218696
+0.014237, 0.219918
+0.0123284, 0.808058
+0.0123284, 0.808058
+0.0156493, 0.808058
+0.0136974, 0.218696
+0.0123284, 0.808058
+0.0123284, 0.0043303
+0.0139889, 0.0043303
+0.0139889, 0.0043303
+0.0139889, 0.808058
+0.0123284, 0.808058
+0.0123284, 0.0043303
+0.0156493, 0.0043303
+0.0139889, 0.0043303
+0.0156493, 0.0043303
+0.0156493, 0.808058
+0.0139889, 0.808058
+0.0139889, 0.808058
+0.0139889, 0.0043303
+0.0156493, 0.0043303
+0.0156493, 0.808058
+0.0123284, 0.808058
+0.0139889, 0.808058
+
+
+
diff --git a/Templates/SalmonUniversalTemplate/assets/shot.wav b/Templates/SalmonUniversalTemplate/assets/shot.wav
new file mode 100644
index 0000000..883edf0
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/assets/shot.wav differ
diff --git a/Templates/SalmonUniversalTemplate/default.properties b/Templates/SalmonUniversalTemplate/default.properties
new file mode 100644
index 0000000..94a5300
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/default.properties
@@ -0,0 +1,11 @@
+# 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 use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-8
diff --git a/Templates/SalmonUniversalTemplate/iOS/AppDelegate.h b/Templates/SalmonUniversalTemplate/iOS/AppDelegate.h
new file mode 100644
index 0000000..4237984
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/AppDelegate.h
@@ -0,0 +1,19 @@
+//
+// AppDelegate.h
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+
+@class ViewController;
+
+@interface AppDelegate : UIResponder
+
+@property (strong, nonatomic) UIWindow *window;
+
+@property (strong, nonatomic) ViewController *viewController;
+
+@end
diff --git a/Templates/SalmonUniversalTemplate/iOS/AppDelegate.m b/Templates/SalmonUniversalTemplate/iOS/AppDelegate.m
new file mode 100644
index 0000000..1283115
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/AppDelegate.m
@@ -0,0 +1,59 @@
+//
+// AppDelegate.m
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+#import "ViewController.h"
+
+@implementation AppDelegate
+
+@synthesize window = _window;
+@synthesize viewController = _viewController;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+ // Override point for customization after application launch.
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
+ self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
+ } else {
+ self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
+ }
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
diff --git a/Templates/SalmonUniversalTemplate/iOS/CustomGLKView.h b/Templates/SalmonUniversalTemplate/iOS/CustomGLKView.h
new file mode 100644
index 0000000..59184d3
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/CustomGLKView.h
@@ -0,0 +1,17 @@
+//
+// CustomGLKView.h
+// doublehitballs
+//
+// Created by vvv ооо on 15.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+
+@interface CustomGLKView : GLKView
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
+- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
+
+@end
diff --git a/Templates/SalmonUniversalTemplate/iOS/CustomGLKView.m b/Templates/SalmonUniversalTemplate/iOS/CustomGLKView.m
new file mode 100644
index 0000000..130b654
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/CustomGLKView.m
@@ -0,0 +1,68 @@
+//
+// CustomGLKView.m
+// doublehitballs
+//
+// Created by vvv ооо on 15.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import "CustomGLKView.h"
+#import "ios_api.h"
+
+bool touchMoved = false;
+CGPoint prev_loc;
+
+
+@implementation CustomGLKView
+
+- (id)initWithFrame:(CGRect)frame
+{
+ self = [super initWithFrame:frame];
+ if (self) {
+ // Initialization code
+ }
+ return self;
+}
+
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
+{
+
+ CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
+
+ prev_loc = location;
+
+ touchMoved = false;
+
+ AppOnTapDown(location.x, self.bounds.size.height - location.y);
+
+}
+
+- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
+{
+ CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
+
+ CGPoint prevLocation = [[[touches allObjects] objectAtIndex:0] previousLocationInView:self];
+
+ if (abs(prev_loc.x - location.x) > 10 || abs(prev_loc.y - location.y) > 10)
+ {
+ touchMoved = true;
+ }
+
+ AppOnScroll(prevLocation.x - location.x, prevLocation.y - location.y);
+}
+
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
+{
+ CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
+
+ if (!touchMoved)
+ {
+ AppOnTapUp(location.x, self.bounds.size.height - location.y);
+ }
+}
+
+
+
+
+@end
diff --git a/Templates/SalmonUniversalTemplate/iOS/ViewController.h b/Templates/SalmonUniversalTemplate/iOS/ViewController.h
new file mode 100644
index 0000000..e7f9748
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/ViewController.h
@@ -0,0 +1,14 @@
+//
+// ViewController.h
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+#import
+
+@interface ViewController : GLKViewController
+
+@end
diff --git a/Templates/SalmonUniversalTemplate/iOS/ViewController.m b/Templates/SalmonUniversalTemplate/iOS/ViewController.m
new file mode 100644
index 0000000..b04f1d3
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/ViewController.m
@@ -0,0 +1,106 @@
+//
+// ViewController.m
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import "ViewController.h"
+#import "ios_api.h"
+
+@interface ViewController () {
+}
+
+@property (strong, nonatomic) EAGLContext *context;
+@property (strong, nonatomic) GLKBaseEffect *effect;
+
+- (void)setupGL;
+- (void)tearDownGL;
+
+@end
+
+@implementation ViewController
+
+@synthesize context = _context;
+@synthesize effect = _effect;
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+
+ self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
+
+ if (!self.context) {
+ NSLog(@"Failed to create ES context");
+ }
+
+ GLKView *view = (GLKView *)self.view;
+ view.context = self.context;
+ view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
+
+
+ [self setupGL];
+}
+
+- (void)viewDidUnload
+{
+ [super viewDidUnload];
+
+ [self tearDownGL];
+
+ if ([EAGLContext currentContext] == self.context) {
+ [EAGLContext setCurrentContext:nil];
+ }
+ self.context = nil;
+}
+
+- (void)didReceiveMemoryWarning
+{
+ [super didReceiveMemoryWarning];
+ // Release any cached data, images, etc. that aren't in use.
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ /*
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
+ return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
+ } else {
+ return YES;
+ }*/
+ return UIInterfaceOrientationIsLandscape(interfaceOrientation);
+}
+
+- (void)setupGL
+{
+ [EAGLContext setCurrentContext:self.context];
+
+ AppInit();
+ }
+
+- (void)tearDownGL
+{
+ [EAGLContext setCurrentContext:self.context];
+
+ AppDeinit();
+
+}
+
+#pragma mark - GLKView and GLKViewController delegate methods
+
+- (void)update
+{
+
+ AppUpdate(self.timeSinceLastUpdate * 1000);
+}
+
+- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
+{
+
+ AppDraw();
+
+}
+
+
+@end
diff --git a/Templates/SalmonUniversalTemplate/iOS/en.lproj/InfoPlist.strings b/Templates/SalmonUniversalTemplate/iOS/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..0f167df
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/Templates/SalmonUniversalTemplate/iOS/en.lproj/ViewController_iPad.xib b/Templates/SalmonUniversalTemplate/iOS/en.lproj/ViewController_iPad.xib
new file mode 100644
index 0000000..eb81e88
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/en.lproj/ViewController_iPad.xib
@@ -0,0 +1,133 @@
+
+
+
+ 1296
+ 11E53
+ 2182
+ 1138.47
+ 569.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 1181
+
+
+ IBProxyObject
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ PluginDependencyRecalculationVersion
+
+
+
+
+ IBFilesOwner
+ IBIPadFramework
+
+
+ IBFirstResponder
+ IBIPadFramework
+
+
+
+ 274
+ {{0, 20}, {768, 1004}}
+
+
+
+ 3
+ MQA
+
+ 2
+
+
+
+ 2
+
+ IBIPadFramework
+
+
+
+
+
+
+ view
+
+
+
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+
+
+ ViewController
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ CustomGLKView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 3
+
+
+
+
+ CustomGLKView
+ GLKView
+
+ IBProjectSource
+ ./Classes/CustomGLKView.h
+
+
+
+ ViewController
+ GLKViewController
+
+ IBProjectSource
+ ./Classes/ViewController.h
+
+
+
+
+ 0
+ IBIPadFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+ YES
+ 3
+ 1181
+
+
diff --git a/Templates/SalmonUniversalTemplate/iOS/en.lproj/ViewController_iPhone.xib b/Templates/SalmonUniversalTemplate/iOS/en.lproj/ViewController_iPhone.xib
new file mode 100644
index 0000000..96a4a92
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/en.lproj/ViewController_iPhone.xib
@@ -0,0 +1,111 @@
+
+
+
+ 1296
+ 11E53
+ 2182
+ 1138.47
+ 569.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 1181
+
+
+ IBProxyObject
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ PluginDependencyRecalculationVersion
+
+
+
+
+ IBFilesOwner
+ IBCocoaTouchFramework
+
+
+ IBFirstResponder
+ IBCocoaTouchFramework
+
+
+
+ 274
+ {320, 460}
+
+
+ 3
+ MQA
+
+ 2
+
+
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+
+
+ view
+
+
+
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+
+
+
+
+ ViewController
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ CustomGLKView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 4
+
+
+ 0
+ IBCocoaTouchFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+ YES
+ 3
+ 1181
+
+
diff --git a/Templates/SalmonUniversalTemplate/iOS/ios_api.cpp b/Templates/SalmonUniversalTemplate/iOS/ios_api.cpp
new file mode 100644
index 0000000..e8c79cc
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/ios_api.cpp
@@ -0,0 +1,47 @@
+#include "include/Engine.h"
+#include "main_code.h"
+
+TMyApplication App;
+
+
+extern "C" void AppInit()
+{
+
+ App.OuterInit(480, 320, 480, 320);
+}
+
+
+extern "C" void AppDeinit()
+{
+ App.OuterDeinit();
+
+}
+
+
+extern "C" void AppUpdate(int dt)
+{
+ App.OuterUpdate(dt);
+}
+
+
+
+extern "C" void AppDraw()
+{
+ App.OuterDraw();
+}
+
+extern "C" void AppOnTapDown(int posx, int posy)
+{
+ //App.OuterOnTapDown(vec2(posx, posy));
+}
+
+extern "C" void AppOnTapUp(int posx, int posy)
+{
+ //App.OuterOnTapUp(vec2(posx, posy));
+}
+
+extern "C" void AppOnScroll(int shiftx, int shifty)
+{
+ //App.OuterOnMove(vec2(shiftx, shifty));
+}
+
diff --git a/Templates/SalmonUniversalTemplate/iOS/ios_api.h b/Templates/SalmonUniversalTemplate/iOS/ios_api.h
new file mode 100644
index 0000000..66b7e7f
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/ios_api.h
@@ -0,0 +1,15 @@
+//
+// Header.h
+// doublehitballs
+//
+// Created by vvv ооо on 15.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+void AppInit();
+void AppDeinit();
+void AppUpdate(int dt);
+void AppDraw();
+void AppOnTapDown(int posx, int posy);
+void AppOnTapUp(int posx, int posy);
+void AppOnScroll(int shiftx, int shifty);
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/iOS/main.m b/Templates/SalmonUniversalTemplate/iOS/main.m
new file mode 100644
index 0000000..f8b2c00
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/main.m
@@ -0,0 +1,18 @@
+//
+// main.m
+// doublehitballs
+//
+// Created by vvv ооо on 13.07.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+#import
+
+#import "AppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/Templates/SalmonUniversalTemplate/iOS/res/Icon.png b/Templates/SalmonUniversalTemplate/iOS/res/Icon.png
new file mode 100644
index 0000000..b6880bf
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/iOS/res/Icon.png differ
diff --git a/Templates/SalmonUniversalTemplate/iOS/res/Splash-landscape.png b/Templates/SalmonUniversalTemplate/iOS/res/Splash-landscape.png
new file mode 100644
index 0000000..61dbcaa
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/iOS/res/Splash-landscape.png differ
diff --git a/Templates/SalmonUniversalTemplate/iOS/res/iTunesArtwork b/Templates/SalmonUniversalTemplate/iOS/res/iTunesArtwork
new file mode 100644
index 0000000..876e97d
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/iOS/res/iTunesArtwork differ
diff --git a/Templates/SalmonUniversalTemplate/iOS/salmontemplate.xcodeproj/project.pbxproj b/Templates/SalmonUniversalTemplate/iOS/salmontemplate.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..0bb983d
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/salmontemplate.xcodeproj/project.pbxproj
@@ -0,0 +1,502 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4C49B2BE15B0991B003512CD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2BD15B0991B003512CD /* UIKit.framework */; };
+ 4C49B2C015B0991B003512CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2BF15B0991B003512CD /* Foundation.framework */; };
+ 4C49B2C215B0991B003512CD /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C115B0991B003512CD /* CoreGraphics.framework */; };
+ 4C49B2C415B0991B003512CD /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C315B0991B003512CD /* GLKit.framework */; };
+ 4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C515B0991B003512CD /* OpenGLES.framework */; };
+ 4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2CA15B0991B003512CD /* InfoPlist.strings */; };
+ 4C49B2CE15B0991B003512CD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2CD15B0991B003512CD /* main.m */; };
+ 4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D115B0991B003512CD /* AppDelegate.m */; };
+ 4C49B2D915B0991B003512CD /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D815B0991B003512CD /* ViewController.m */; };
+ 4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */; };
+ 4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */; };
+ 4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807415BA8F460037C6CE /* libsquirrel.a */; };
+ 4C4C807715BA8F5B0037C6CE /* libz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807615BA8F5B0037C6CE /* libz.a */; };
+ 4C6EB44515C3CFD300316CB6 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6EB44415C3CFD300316CB6 /* libpng.a */; };
+ 4C74848615C5AD6E0056EC44 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848315C5AD6E0056EC44 /* Icon.png */; };
+ 4C74848715C5AD6E0056EC44 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848415C5AD6E0056EC44 /* iTunesArtwork */; };
+ 4C74848815C5AD6E0056EC44 /* Splash-landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */; };
+ 4C74849815C5AF7C0056EC44 /* main_code.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C74849615C5AF7C0056EC44 /* main_code.cpp */; };
+ 4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */; };
+ 4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831415BABD8B003D5142 /* AudioToolbox.framework */; };
+ 4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831515BABD8B003D5142 /* OpenAL.framework */; };
+ 4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */; };
+ 4C7C584B15C31E6500CAE4F4 /* libboost.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C7C584A15C31E6500CAE4F4 /* libboost.a */; };
+ 4CC971AC15C57DCE00359A2B /* libSalmon Engine.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C902A7815C5735700FBC901 /* libSalmon Engine.a */; };
+ 4CCC0ECC15B30D6B005432FB /* CustomGLKView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CCC0ECB15B30D6B005432FB /* CustomGLKView.m */; };
+ 4CE6A9D215B2F979006A3965 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D115B2F979006A3965 /* assets */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 4C902A7715C5735700FBC901 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 4C8CE90215B0A0F400078175;
+ remoteInfo = "Salmon Engine";
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 4C49B2B915B0991B003512CD /* salmontemplate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = salmontemplate.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4C49B2BD15B0991B003512CD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 4C49B2BF15B0991B003512CD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 4C49B2C115B0991B003512CD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 4C49B2C315B0991B003512CD /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
+ 4C49B2C515B0991B003512CD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ 4C49B2C915B0991B003512CD /* template-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "template-Info.plist"; sourceTree = ""; };
+ 4C49B2CB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
+ 4C49B2CD15B0991B003512CD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ 4C49B2CF15B0991B003512CD /* template-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "template-Prefix.pch"; sourceTree = ""; };
+ 4C49B2D015B0991B003512CD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ 4C49B2D115B0991B003512CD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 4C49B2D715B0991B003512CD /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
+ 4C49B2D815B0991B003512CD /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
+ 4C49B2DB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPhone.xib; sourceTree = ""; };
+ 4C49B2DE15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPad.xib; sourceTree = ""; };
+ 4C4C807415BA8F460037C6CE /* libsquirrel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsquirrel.a; path = "../../libs/SQUIRREL2_1_1_sqplus/build-ios/ios-device/libsquirrel.a"; sourceTree = ""; };
+ 4C4C807615BA8F5B0037C6CE /* libz.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libz.a; path = "../../libs/zlib-1.2.7/build-ios/ios-device/libz.a"; sourceTree = ""; };
+ 4C6EB44415C3CFD300316CB6 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../libs/libpng-1.5.12/build-ios/ios-simulator/libpng.a"; sourceTree = ""; };
+ 4C74848315C5AD6E0056EC44 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = res/Icon.png; sourceTree = ""; };
+ 4C74848415C5AD6E0056EC44 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; name = iTunesArtwork; path = res/iTunesArtwork; sourceTree = ""; };
+ 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Splash-landscape.png"; path = "res/Splash-landscape.png"; sourceTree = ""; };
+ 4C74849615C5AF7C0056EC44 /* main_code.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main_code.cpp; path = ../jni/main_code.cpp; sourceTree = ""; };
+ 4C74849715C5AF7C0056EC44 /* main_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main_code.h; path = ../jni/main_code.h; sourceTree = ""; };
+ 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libvorbis-tremor-ios.a"; path = "../../libs/vorbis-tremor-ios/build-ios/ios-device/libvorbis-tremor-ios.a"; sourceTree = ""; };
+ 4C77831415BABD8B003D5142 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+ 4C77831515BABD8B003D5142 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+ 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ios_api.cpp; sourceTree = ""; };
+ 4C7C584A15C31E6500CAE4F4 /* libboost.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost.a; path = "../../libs/boost_1_47_0/build-ios/ios-simulator/libboost.a"; sourceTree = ""; };
+ 4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Salmon Engine.xcodeproj"; path = "../../Engine/iOS/Salmon Engine/Salmon Engine.xcodeproj"; sourceTree = ""; };
+ 4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomGLKView.h; sourceTree = ""; };
+ 4CCC0ECB15B30D6B005432FB /* CustomGLKView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomGLKView.m; sourceTree = ""; };
+ 4CCC0ECD15B310FB005432FB /* ios_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_api.h; sourceTree = ""; };
+ 4CE6A9D115B2F979006A3965 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../assets; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 4C49B2B615B0991B003512CD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4CC971AC15C57DCE00359A2B /* libSalmon Engine.a in Frameworks */,
+ 4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */,
+ 4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */,
+ 4C49B2BE15B0991B003512CD /* UIKit.framework in Frameworks */,
+ 4C49B2C015B0991B003512CD /* Foundation.framework in Frameworks */,
+ 4C49B2C215B0991B003512CD /* CoreGraphics.framework in Frameworks */,
+ 4C49B2C415B0991B003512CD /* GLKit.framework in Frameworks */,
+ 4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */,
+ 4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */,
+ 4C4C807715BA8F5B0037C6CE /* libz.a in Frameworks */,
+ 4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */,
+ 4C7C584B15C31E6500CAE4F4 /* libboost.a in Frameworks */,
+ 4C6EB44515C3CFD300316CB6 /* libpng.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 4C49B2AE15B0991B003512CD = {
+ isa = PBXGroup;
+ children = (
+ 4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */,
+ 4C7B819515C40F770024D61A /* Libs */,
+ 4CC1FC3415B200130025C6F7 /* Resources */,
+ 4C49B2C715B0991B003512CD /* Sources */,
+ 4C49B2BC15B0991B003512CD /* Frameworks */,
+ 4C49B2BA15B0991B003512CD /* Products */,
+ );
+ sourceTree = "";
+ };
+ 4C49B2BA15B0991B003512CD /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4C49B2B915B0991B003512CD /* salmontemplate.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 4C49B2BC15B0991B003512CD /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 4C77831415BABD8B003D5142 /* AudioToolbox.framework */,
+ 4C77831515BABD8B003D5142 /* OpenAL.framework */,
+ 4C49B2BD15B0991B003512CD /* UIKit.framework */,
+ 4C49B2BF15B0991B003512CD /* Foundation.framework */,
+ 4C49B2C115B0991B003512CD /* CoreGraphics.framework */,
+ 4C49B2C315B0991B003512CD /* GLKit.framework */,
+ 4C49B2C515B0991B003512CD /* OpenGLES.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 4C49B2C715B0991B003512CD /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 4CE6A9E315B2F9A4006A3965 /* Game */,
+ 4CCC0ECD15B310FB005432FB /* ios_api.h */,
+ 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */,
+ 4C49B2D015B0991B003512CD /* AppDelegate.h */,
+ 4C49B2D115B0991B003512CD /* AppDelegate.m */,
+ 4C49B2D715B0991B003512CD /* ViewController.h */,
+ 4C49B2D815B0991B003512CD /* ViewController.m */,
+ 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */,
+ 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */,
+ 4C49B2C815B0991B003512CD /* Supporting Files */,
+ 4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */,
+ 4CCC0ECB15B30D6B005432FB /* CustomGLKView.m */,
+ );
+ name = Sources;
+ sourceTree = "";
+ };
+ 4C49B2C815B0991B003512CD /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 4C49B2C915B0991B003512CD /* template-Info.plist */,
+ 4C49B2CA15B0991B003512CD /* InfoPlist.strings */,
+ 4C49B2CD15B0991B003512CD /* main.m */,
+ 4C49B2CF15B0991B003512CD /* template-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 4C7B819515C40F770024D61A /* Libs */ = {
+ isa = PBXGroup;
+ children = (
+ 4C6EB44415C3CFD300316CB6 /* libpng.a */,
+ 4C7C584A15C31E6500CAE4F4 /* libboost.a */,
+ 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */,
+ 4C4C807615BA8F5B0037C6CE /* libz.a */,
+ 4C4C807415BA8F460037C6CE /* libsquirrel.a */,
+ );
+ name = Libs;
+ sourceTree = "";
+ };
+ 4C902A7115C5735500FBC901 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4C902A7815C5735700FBC901 /* libSalmon Engine.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 4CC1FC3415B200130025C6F7 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 4C74848315C5AD6E0056EC44 /* Icon.png */,
+ 4C74848415C5AD6E0056EC44 /* iTunesArtwork */,
+ 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */,
+ 4CE6A9D115B2F979006A3965 /* assets */,
+ );
+ name = Resources;
+ sourceTree = "";
+ };
+ 4CE6A9E315B2F9A4006A3965 /* Game */ = {
+ isa = PBXGroup;
+ children = (
+ 4C74849615C5AF7C0056EC44 /* main_code.cpp */,
+ 4C74849715C5AF7C0056EC44 /* main_code.h */,
+ );
+ name = Game;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 4C49B2B815B0991B003512CD /* salmontemplate */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 4C49B2E215B0991B003512CD /* Build configuration list for PBXNativeTarget "salmontemplate" */;
+ buildPhases = (
+ 4C49B2B515B0991B003512CD /* Sources */,
+ 4C49B2B615B0991B003512CD /* Frameworks */,
+ 4C49B2B715B0991B003512CD /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = salmontemplate;
+ productName = doublehitballs;
+ productReference = 4C49B2B915B0991B003512CD /* salmontemplate.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 4C49B2B015B0991B003512CD /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0430;
+ };
+ buildConfigurationList = 4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "salmontemplate" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 4C49B2AE15B0991B003512CD;
+ productRefGroup = 4C49B2BA15B0991B003512CD /* Products */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 4C902A7115C5735500FBC901 /* Products */;
+ ProjectRef = 4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 4C49B2B815B0991B003512CD /* salmontemplate */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 4C902A7815C5735700FBC901 /* libSalmon Engine.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = "libSalmon Engine.a";
+ remoteRef = 4C902A7715C5735700FBC901 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 4C49B2B715B0991B003512CD /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */,
+ 4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */,
+ 4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */,
+ 4CE6A9D215B2F979006A3965 /* assets in Resources */,
+ 4C74848615C5AD6E0056EC44 /* Icon.png in Resources */,
+ 4C74848715C5AD6E0056EC44 /* iTunesArtwork in Resources */,
+ 4C74848815C5AD6E0056EC44 /* Splash-landscape.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 4C49B2B515B0991B003512CD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C49B2CE15B0991B003512CD /* main.m in Sources */,
+ 4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */,
+ 4C49B2D915B0991B003512CD /* ViewController.m in Sources */,
+ 4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */,
+ 4CCC0ECC15B30D6B005432FB /* CustomGLKView.m in Sources */,
+ 4C74849815C5AF7C0056EC44 /* main_code.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 4C49B2CA15B0991B003512CD /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4C49B2CB15B0991B003512CD /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "";
+ };
+ 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4C49B2DB15B0991B003512CD /* en */,
+ );
+ name = ViewController_iPhone.xib;
+ sourceTree = "";
+ };
+ 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4C49B2DE15B0991B003512CD /* en */,
+ );
+ name = ViewController_iPad.xib;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 4C49B2E015B0991B003512CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ 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_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 4C49B2E115B0991B003512CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 4C49B2E315B0991B003512CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "template-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ TARGET_IOS,
+ TARGET_SALMON,
+ DEBUG,
+ "$(inherited)",
+ BOOST_NO_CXX11_NUMERIC_LIMITS,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
+ "GCC_THUMB_SUPPORT[arch=armv6]" = "";
+ HEADER_SEARCH_PATHS = (
+ "$(SalmonEnginePath)",
+ "$(LibsPath)/lpng1510",
+ "$(LibsPath)/sqplus/sqplus",
+ "$(LibsPath)/sqplus/include",
+ "$(LibsPath)/boost_1_52_0",
+ ../jni,
+ "$(LibsPath)/vorbis-tremor-ios/vorbis",
+ );
+ INFOPLIST_FILE = "template-Info.plist";
+ LIBRARY_SEARCH_PATHS = "";
+ "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-device",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-device",
+ "$(LibsPath)/sqplus/build-ios/ios-device",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-device",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-device",
+ );
+ "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-simulator",
+ "$(LibsPath)/sqplus/build-ios/ios-simulator",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-simulator",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-simulator",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SYMROOT = build;
+ TARGETED_DEVICE_FAMILY = 1;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 4C49B2E415B0991B003512CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "template-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ TARGET_IOS,
+ TARGET_SALMON,
+ BOOST_NO_CXX11_NUMERIC_LIMITS,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ "GCC_THUMB_SUPPORT[arch=armv6]" = "";
+ HEADER_SEARCH_PATHS = (
+ "$(SalmonEnginePath)",
+ "$(LibsPath)/lpng1510",
+ "$(LibsPath)/sqplus/sqplus",
+ "$(LibsPath)/sqplus/include",
+ "$(LibsPath)/boost_1_52_0",
+ ../jni,
+ "$(LibsPath)/vorbis-tremor-ios/vorbis",
+ );
+ INFOPLIST_FILE = "template-Info.plist";
+ LIBRARY_SEARCH_PATHS = "";
+ "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-device",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-device",
+ "$(LibsPath)/sqplus/build-ios/ios-device",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-device",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-device",
+ );
+ "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = (
+ "$(LibsPath)/lpng1510/build-ios/ios-simulator",
+ "$(LibsPath)/sqplus/build-ios/ios-simulator",
+ "$(LibsPath)/boost_1_52_0/build-ios/ios-simulator",
+ "$(LibsPath)/zlib-1.2.6/build-ios/ios-simulator",
+ "$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TARGETED_DEVICE_FAMILY = 1;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "salmontemplate" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4C49B2E015B0991B003512CD /* Debug */,
+ 4C49B2E115B0991B003512CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4C49B2E215B0991B003512CD /* Build configuration list for PBXNativeTarget "salmontemplate" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4C49B2E315B0991B003512CD /* Debug */,
+ 4C49B2E415B0991B003512CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 4C49B2B015B0991B003512CD /* Project object */;
+}
diff --git a/Templates/SalmonUniversalTemplate/iOS/template-Info.plist b/Templates/SalmonUniversalTemplate/iOS/template-Info.plist
new file mode 100644
index 0000000..d06ba45
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/template-Info.plist
@@ -0,0 +1,50 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ Salmon Universal Template
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIconFile
+ Icon.png
+ CFBundleIdentifier
+ fishrungames.template
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0
+ LSRequiresIPhoneOS
+
+ UILaunchImageFile
+ Splash-landscape.png
+ UIPrerenderedIcon
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarHidden
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+
+
diff --git a/Templates/SalmonUniversalTemplate/iOS/template-Prefix.pch b/Templates/SalmonUniversalTemplate/iOS/template-Prefix.pch
new file mode 100644
index 0000000..cd479f5
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/iOS/template-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'doublehitballs' target in the 'doublehitballs' project
+//
+
+#import
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import
+ #import
+#endif
diff --git a/Templates/SalmonUniversalTemplate/jni/Android.mk b/Templates/SalmonUniversalTemplate/jni/Android.mk
new file mode 100644
index 0000000..4b85a29
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/jni/Android.mk
@@ -0,0 +1,77 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+LPATH := $(call my-dir)
+
+ENGINE_PATH = $(SalmonEnginePathCygwin)
+
+BOOST_PATH = $(LibsPathCygwin)/boost_1_47_0
+
+OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0
+
+VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2
+
+SQUIRREL_PATH = $(LibsPathCygwin)/sqplus
+
+LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android
+
+ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni
+
+#====== ENGINE AND LIBS =====================
+
+include $(ENGINE_PATH)/Android_Salmon_Engine.mk
+
+#================= THE GAME =======================
+
+
+LOCAL_PATH:= $(LPATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := -DTARGET_ANDROID -DNOSOUND -DTARGET_SALMON -std=gnu++11 --std=c++11
+LOCAL_STATIC_LIBRARIES := boost
+LOCAL_STATIC_LIBRARIES += squirrel
+LOCAL_STATIC_LIBRARIES += png_lib
+LOCAL_STATIC_LIBRARIES += zip
+LOCAL_SHARED_LIBRARIES := SalmonEngine
+LOCAL_SHARED_LIBRARIES += gnustl_shared
+LOCAL_C_INCLUDES := $(ENGINE_PATH)
+LOCAL_C_INCLUDES += $(BOOST_PATH)
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib
+LOCAL_C_INCLUDES += $(LIBPNG_PATH)
+LOCAL_C_INCLUDES += $(ZIP_PATH)
+LOCAL_MODULE := SalmonJniTemplate
+LOCAL_SRC_FILES := main_code.cpp
+LOCAL_SRC_FILES += android_api.cpp
+
+LOCAL_LDLIBS := -lGLESv2
+LOCAL_LDLIBS += -llog -Wl
+
+#debug
+#LOCAL_CFLAGS += -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/Templates/SalmonUniversalTemplate/jni/Application.mk b/Templates/SalmonUniversalTemplate/jni/Application.mk
new file mode 100644
index 0000000..22476ec
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/jni/Application.mk
@@ -0,0 +1,3 @@
+APP_STL := gnustl_shared
+APP_CPPFLAGS += -fexceptions
+APP_CPPFLAGS += -frtti
diff --git a/Templates/SalmonUniversalTemplate/jni/android_api.cpp b/Templates/SalmonUniversalTemplate/jni/android_api.cpp
new file mode 100644
index 0000000..93f9f2f
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/jni/android_api.cpp
@@ -0,0 +1,128 @@
+#include "android_api.h"
+
+#include "main_code.h"
+#include "boost\thread.hpp"
+
+boost::shared_ptr App(new TMyApplication);
+
+boost::mutex m;
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height)
+{
+
+ m.lock();
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDeinit(); //Clean up what is left at previous launch (if applicable)
+ }
+
+ App->OuterInit(width, height, 480.f, 320.f);
+
+ App->Inited = true;
+ }
+ catch (...)
+ {
+ throw;
+ }
+ m.unlock();
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_StopSounds(JNIEnv * env, jobject obj)
+{
+
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Update(JNIEnv * env, jobject obj, long dt)
+{
+m.lock();
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDraw();
+ App->OuterUpdate(dt);
+ }
+
+ }
+ catch (...)
+ {
+ throw;
+ }
+ m.unlock();
+
+}
+
+JNIEXPORT int JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_IsInited(JNIEnv * env, jobject obj)
+{
+
+ if (App->IsInited())
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Destroy(JNIEnv * env, jobject obj)
+{
+m.lock();
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDeinit();
+ App->Inited = false;
+ }
+
+ }
+ catch (...)
+ {
+ throw;
+ }
+ m.unlock();
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnTapDown(JNIEnv * env, jobject obj, float x, float y, long time)
+{
+m.lock();
+ try
+ {
+ Renderer->MoveDist(1.0f);
+ }
+ catch (...)
+ {
+ throw;
+ }
+ m.unlock();
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnTapUp(JNIEnv * env, jobject obj, float x, float y, long time)
+{
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, float x, float y, long time)
+{
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnFling(JNIEnv * env, jobject obj, jfloat velocityX, jfloat velocityY, long time)
+{
+
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnScroll(JNIEnv * env, jobject obj, jfloat distanceX, jfloat distanceY, long time)
+{
+
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnKeyPress(JNIEnv * env, jobject obj, jint keyCode)
+{
+ //App->OnKeyPress(keyCode);
+}
diff --git a/Templates/SalmonUniversalTemplate/jni/android_api.h b/Templates/SalmonUniversalTemplate/jni/android_api.h
new file mode 100644
index 0000000..c67dcd6
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/jni/android_api.h
@@ -0,0 +1,33 @@
+#ifndef ANDROID_API_H_INCLUDED
+#define ANDROID_API_H_INCLUDED
+
+#include
+#include
+
+#include
+#include
+#include
+
+#include "boost/shared_ptr.hpp"
+
+#include "main_code.h"
+
+using namespace SE;
+
+
+extern "C" {
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_StopSounds(JNIEnv * env, jobject obj);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Update(JNIEnv * env, jobject obj, long dt);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Destroy(JNIEnv * env, jobject obj);
+ JNIEXPORT int JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_IsInited(JNIEnv * env, jobject obj);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnTapDown(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnTapUp(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnFling(JNIEnv * env, jobject obj, jfloat velocityX, jfloat velocityY, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnScroll(JNIEnv * env, jobject obj, jfloat distanceX, jfloat distanceY, long time);
+ JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_OnKeyPress(JNIEnv * env, jobject obj, jint keyCode);
+};
+
+
+#endif
diff --git a/Templates/SalmonUniversalTemplate/jni/main_code.cpp b/Templates/SalmonUniversalTemplate/jni/main_code.cpp
new file mode 100644
index 0000000..3acf7e2
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/jni/main_code.cpp
@@ -0,0 +1,91 @@
+#include "main_code.h"
+
+#ifdef TARGET_ANDROID
+#include "android_api.h"
+#endif
+
+#include
+#include
+#include
+#include
+
+#include "include/Engine.h"
+
+#include "main_code.h"
+
+
+void TMyApplication::InnerInit()
+{
+
+ *Console<<"Inner init go!\n";
+
+#ifdef TARGET_ANDROID
+ ResourceManager->PathToResources = "";
+#endif
+#ifdef TARGET_WIN32
+#ifdef NDEBUG
+ ResourceManager->PathToResources = "resources/";
+#else
+ ResourceManager->PathToResources = "../../../assets/";
+#endif
+#endif
+#ifdef TARGET_IOS
+ ResourceManager->PathToResources = "assets/";
+#endif
+
+ ResourceManager->TexList.AddTexture(CONST_CONSOLE_TEX_NAME);
+
+ ResourceManager->ShaderManager.AddShader("DefaultShader", "gui_transparent.vertex", "gui_transparent.fragment");
+
+ Renderer->PushShader("DefaultShader");
+
+ ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.bmp32", "droid_sans14_font_charmap.txt");
+ ResourceManager->FontManager.PushFont("droid_sans14");
+
+ ResourceManager->SoundManager.LoadMusic("level1ogg.ogg");
+
+ ResourceManager->SoundManager.LoadSound("shot.wav");
+
+ Renderer->MovePhi(pi/6);
+ Renderer->MoveDist(6.f);
+
+ ResourceManager->LightManager.SetLightDirection(vec3(-1,0,-1));
+ ResourceManager->LightManager.SetLightColor(vec4(1,0,0,1));
+
+ ResourceManager->TexList.AddTexture("bt_box_yellow.bmp");
+ ResourceManager->FlexModelManager.LoadModelFromXml("model.xml");
+
+ FlexModel = ResourceManager->FlexModelManager.InstanciateModel("model.xml");
+
+ FlexModel.MoveModel(vec3(1, -4, -4));
+ FlexModel.ScaleModel(0.4f);
+ FlexModel.RefreshBuffer();
+
+ //Uncomment to start music playing
+ //ResourceManager->SoundManager.PlayMusic("level1ogg.ogg");
+
+ *Console<<"Inner init end!\n";
+}
+
+void TMyApplication::InnerDeinit()
+{
+}
+
+
+void TMyApplication::InnerDraw()
+{
+
+ glClearColor(0,0,0,1);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ Renderer->SetGLCamView();
+ FlexModel.Draw();
+
+}
+
+
+void TMyApplication::InnerUpdate(cardinal dt)
+{
+
+}
+
diff --git a/Templates/SalmonUniversalTemplate/jni/main_code.h b/Templates/SalmonUniversalTemplate/jni/main_code.h
new file mode 100644
index 0000000..b5346c3
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/jni/main_code.h
@@ -0,0 +1,54 @@
+#ifndef MAIN_CODE_H_INCLUDED
+#define MAIN_CODE_H_INCLUDED
+
+
+#include
+#include
+#include
+
+#ifdef TARGET_ANDROID
+
+#include
+#include
+#include
+#endif
+
+#include "boost/shared_ptr.hpp"
+#include "boost/thread/thread.hpp"
+#include "boost/assign.hpp"
+#include "boost/bind.hpp"
+#include "boost/asio.hpp"
+#include "boost/signal.hpp"
+
+#include "include/Engine.h"
+
+using namespace SE;
+
+
+class TMyApplication : public TApplication
+{
+protected:
+
+public:
+ bool Inited;
+
+ TFlexModel FlexModel;
+
+ TMyApplication() : TApplication(), Inited(false) { }
+
+
+ virtual void InnerInit();
+
+ virtual void InnerDeinit();
+
+ virtual void InnerDraw();
+
+ virtual void InnerUpdate(cardinal dt);
+
+ bool IsInited() { return Inited; }
+
+
+};
+
+
+#endif
diff --git a/Templates/SalmonUniversalTemplate/res/drawable-hdpi/ic_menu_template.png b/Templates/SalmonUniversalTemplate/res/drawable-hdpi/ic_menu_template.png
new file mode 100644
index 0000000..1e28f93
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/res/drawable-hdpi/ic_menu_template.png differ
diff --git a/Templates/SalmonUniversalTemplate/res/drawable-ldpi/ic_menu_template.png b/Templates/SalmonUniversalTemplate/res/drawable-ldpi/ic_menu_template.png
new file mode 100644
index 0000000..6a93cf2
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/res/drawable-ldpi/ic_menu_template.png differ
diff --git a/Templates/SalmonUniversalTemplate/res/drawable-mdpi/ic_menu_template.png b/Templates/SalmonUniversalTemplate/res/drawable-mdpi/ic_menu_template.png
new file mode 100644
index 0000000..7c1cab2
Binary files /dev/null and b/Templates/SalmonUniversalTemplate/res/drawable-mdpi/ic_menu_template.png differ
diff --git a/Templates/SalmonUniversalTemplate/res/values/strings.xml b/Templates/SalmonUniversalTemplate/res/values/strings.xml
new file mode 100644
index 0000000..33d1455
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/res/values/strings.xml
@@ -0,0 +1,4 @@
+
+
+ AndroidJniTemplate
+
diff --git a/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/GLView.java b/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/GLView.java
new file mode 100644
index 0000000..32ac866
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/GLView.java
@@ -0,0 +1,72 @@
+package fishrungames.salmonjnitemplate;
+
+
+import java.util.Calendar;
+
+import android.content.Context;
+import android.opengl.GLSurfaceView;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import fishrungames.engine.GLViewAncestor;
+
+class GLView extends GLViewAncestor
+{
+ static long lastTimeStamp;
+ static boolean gameIsInited = false;
+
+ public GLView(Context context)
+ {
+ //Change this method? Don't forget to change method below!
+ super(context);
+ init(false, 0, 0);
+ }
+
+ public GLView(Context context, boolean translucent, int depth, int stencil)
+ {
+ //Change this method? Don't forget to change method above!
+ super(context);
+ init(translucent, depth, stencil);
+ }
+
+ public void init(boolean translucent, int depth, int stencil)
+ {
+ super.init(translucent, depth, stencil);
+ setRenderer(new Renderer());
+ Calendar c = Calendar.getInstance();
+ lastTimeStamp = c.getTimeInMillis();
+ gameIsInited = true;
+ }
+
+ private static class Renderer implements GLSurfaceView.Renderer
+ {
+ public void onDrawFrame(GL10 gl)
+ {
+ if (gameIsInited)
+ {
+ Calendar c = Calendar.getInstance();
+
+ long currentTimeStamp = c.getTimeInMillis();
+
+ JniWrapper.Update(currentTimeStamp - lastTimeStamp);
+
+ lastTimeStamp = currentTimeStamp;
+ }
+ }
+
+ public void onSurfaceChanged(GL10 gl, int width, int height)
+ {
+
+
+ //JniWrapper.Destroy();
+
+ JniWrapper.Init(width,height);
+ }
+
+ public void onSurfaceCreated(GL10 gl, EGLConfig config)
+ {
+ //Do nothing.
+ }
+ }
+}
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/JniWrapper.java b/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/JniWrapper.java
new file mode 100644
index 0000000..c52c10f
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/JniWrapper.java
@@ -0,0 +1,23 @@
+package fishrungames.salmonjnitemplate;
+
+public class JniWrapper
+{
+ static {
+ System.loadLibrary("SalmonJniTemplate");
+ }
+
+
+ public static native void Init(int width, int height);
+ public static native void Update(long dt);
+ public static native void StopSounds();
+ public static native void Destroy();
+ public static native int IsInited();
+ public static native void OnTapDown(float x, float y, long time);
+ public static native void OnTapUp(float x, float y, long time);
+ public static native void OnTapMove(float x, float y, long time);
+
+ public static native void OnFling(float velocityX, float velocityY, long time);
+ public static native void OnScroll(float distanceX, float distanceY, long time);
+
+ public static native void OnKeyPress(int keyCode);
+}
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/MainActivity.java b/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/MainActivity.java
new file mode 100644
index 0000000..0d74bb5
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/src/fishrungames/salmonjnitemplate/MainActivity.java
@@ -0,0 +1,191 @@
+package fishrungames.salmonjnitemplate;
+
+import fishrungames.engine.FileWrapper;
+
+//Deprecated
+//import fishrungames.androidjnitemplate.R;
+
+import android.app.Activity;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.Bundle;
+
+import android.view.GestureDetector;
+import android.view.KeyEvent;
+import android.view.GestureDetector.SimpleOnGestureListener;
+import android.view.MotionEvent;
+/*
+import android.content.res.Resources;
+import android.content.res.XmlResourceParser;
+import android.util.AttributeSet;
+import android.util.Xml;
+import android.inputmethodservice.Keyboard;
+import android.inputmethodservice.KeyboardView;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.LinearLayout;
+*/
+
+//Deprecated
+//import java.lang.reflect.Field;
+
+
+public class MainActivity extends Activity
+{
+
+ GLView mView;
+
+ boolean IsScrolling = false;
+
+ private GestureDetector gestureDetector;
+
+ @Override
+ protected void onCreate(Bundle icicle)
+ {
+
+ super.onCreate(icicle);
+
+ gestureDetector = new GestureDetector(new MyGestureListener());
+
+ FileWrapper.LoadSalmonEngineLibrary();
+
+ FileWrapper.SetActivityInstance(this);
+ FileWrapper.SetupEnviroment();
+
+ /*
+ * Deprecated
+ try
+ {
+ for (Field f : R.raw.class.getFields())
+ {
+ FileWrapper.AddToFileMap(f.getName(), f.getInt(null));
+ }
+
+
+ } catch (IllegalArgumentException e)
+ {
+ FileWrapper.ConsoleOut("IllegalArgumentException\n");
+ onStop();
+ } catch (IllegalAccessException e)
+ {
+ FileWrapper.ConsoleOut("IllegalAccessException\n");
+ onStop();
+ }*/
+
+ String apkFilePath = null;
+ ApplicationInfo appInfo = null;
+ PackageManager packMgmr = this.getPackageManager();
+ try {
+ appInfo = packMgmr.getApplicationInfo("fishrungames.salmonjnitemplate", 0);
+ } catch (NameNotFoundException e) {
+
+ e.printStackTrace();
+ throw new RuntimeException("Unable to locate assets, aborting...");
+ }
+ apkFilePath = appInfo.sourceDir;
+
+ FileWrapper.SetupApkFilePath(apkFilePath);
+
+ mView = new GLView(getApplication());
+
+ setContentView(mView);
+
+ }
+
+ @Override
+ protected void onPause()
+ {
+ JniWrapper.Destroy();
+ super.onPause();
+ mView.onPause();
+ }
+
+ @Override
+ protected void onResume()
+ {
+ //Don't write anything here!
+ super.onResume();
+ mView.onResume();
+ }
+
+ @Override
+ protected void onStop()
+ {
+ //Don't write anything here!
+ super.onStop();
+ }
+
+ public boolean onKeyDown(int keyCode, KeyEvent event)
+ {
+ int ascii_keycode = keyCode;
+
+ if (keyCode == KeyEvent.KEYCODE_DEL)
+ {
+ ascii_keycode = 8; //Hack - getUnicodeChar does not recognize backspace
+ }
+ else
+ {
+ ascii_keycode = event.getUnicodeChar();
+ }
+
+ JniWrapper.OnKeyPress(ascii_keycode);
+ return super.onKeyDown(keyCode, event);
+ }
+
+ public boolean onTouchEvent(MotionEvent event)
+ {
+ if (gestureDetector.onTouchEvent(event))
+ {
+ return true;
+ }
+
+ if (event.getAction() == MotionEvent.ACTION_UP)
+ {
+ float x = event.getX();
+ float y = (float) mView.getHeight() - event.getY();
+
+ if (IsScrolling)
+ {
+ IsScrolling = false;
+ }
+
+ JniWrapper.OnTapUp(x, y, event.getEventTime());
+
+ }
+ return true;
+ }
+
+ class MyGestureListener extends SimpleOnGestureListener
+ {
+
+ @Override
+ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
+ float velocityY)
+ {
+ JniWrapper.OnFling(velocityX, velocityY, e2.getEventTime());
+ return true;
+ }
+
+ public boolean onScroll(MotionEvent e1, MotionEvent e2,
+ float distanceX, float distanceY)
+ {
+
+ JniWrapper.OnScroll(distanceX, distanceY, e2.getEventTime());
+ IsScrolling = true;
+ return true;
+ }
+
+ public boolean onDown(MotionEvent event)
+ {
+
+ float x = event.getX();
+ float y = (float) mView.getHeight() - event.getY();
+
+ JniWrapper.OnTapDown(x, y, event.getEventTime());
+
+ return true;
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template.sln b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template.sln
new file mode 100644
index 0000000..2f41155
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template.sln
@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Template.vcxproj", "{0080A3E1-DFBF-4557-B198-E6D5D7724393}"
+ ProjectSection(ProjectDependencies) = postProject
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20} = {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Salmon Engine", "..\..\..\..\Engine\Salmon Engine\Salmon Engine.vcxproj", "{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_nosound|Win32 = Debug_nosound|Win32
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.Build.0 = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.Build.0 = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.ActiveCfg = Release|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.Build.0 = Release|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.Build.0 = Debug|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.ActiveCfg = Release|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/Template.vcxproj b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/Template.vcxproj
new file mode 100644
index 0000000..5da6070
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/Template.vcxproj
@@ -0,0 +1,88 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}
+ Template
+
+
+
+ Application
+ true
+ NotSet
+
+
+ Application
+ false
+ true
+ NotSet
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include
+ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include
+ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)
+
+
+
+ Level3
+ Disabled
+ ../../../jni;$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+ TARGET_WIN32;TARGET_SALMON;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG
+
+
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;sqplusD.lib;squirrelD.lib;sqdbglibD.lib;sqstdlibD.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)
+ $(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Debug Library
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ ../../../jni;$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510
+ TARGET_WIN32;TARGET_SALMON;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;NDEBUG
+
+
+ true
+ true
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)
+ $(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Release Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/main.cpp b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/main.cpp
new file mode 100644
index 0000000..1eb1c2b
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/main.cpp
@@ -0,0 +1,16 @@
+#include "main.h"
+
+#include "main_code.h"
+
+int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
+ LPSTR lpszCmdLine, int nCmdShow)
+{
+ //Create application
+ TMyApplication Application;
+
+ Application.Width = 480;
+ Application.Height = 320;
+
+ //Start application
+ return MainLoop(Application);
+}
\ No newline at end of file
diff --git a/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/main.h b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/main.h
new file mode 100644
index 0000000..9939a50
--- /dev/null
+++ b/Templates/SalmonUniversalTemplate/windows/SalmonTemplate/Template/main.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "Engine.h"
diff --git a/Templates/SalmonWallpaperTemplate/.classpath b/Templates/SalmonWallpaperTemplate/.classpath
new file mode 100644
index 0000000..5bdb3d8
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Templates/SalmonWallpaperTemplate/.project b/Templates/SalmonWallpaperTemplate/.project
new file mode 100644
index 0000000..d1ffe54
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/.project
@@ -0,0 +1,33 @@
+
+
+ SLWP
+
+
+
+
+
+ com.android.ide.eclipse.adt.ResourceManagerBuilder
+
+
+
+
+ com.android.ide.eclipse.adt.PreCompilerBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.android.ide.eclipse.adt.ApkBuilder
+
+
+
+
+
+ com.android.ide.eclipse.adt.AndroidNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/Templates/SalmonWallpaperTemplate/AndroidManifest.xml b/Templates/SalmonWallpaperTemplate/AndroidManifest.xml
new file mode 100644
index 0000000..816781c
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/AndroidManifest.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/assets/bkg_blue.png b/Templates/SalmonWallpaperTemplate/assets/bkg_blue.png
new file mode 100644
index 0000000..893a6a5
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/assets/bkg_blue.png differ
diff --git a/Templates/SalmonWallpaperTemplate/assets/bkg_red.png b/Templates/SalmonWallpaperTemplate/assets/bkg_red.png
new file mode 100644
index 0000000..cd1d8c3
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/assets/bkg_red.png differ
diff --git a/Templates/SalmonWallpaperTemplate/assets/bt_box_yellow.bmp b/Templates/SalmonWallpaperTemplate/assets/bt_box_yellow.bmp
new file mode 100644
index 0000000..b7a2d6f
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/assets/bt_box_yellow.bmp differ
diff --git a/Templates/SalmonWallpaperTemplate/assets/console_bkg.bmp b/Templates/SalmonWallpaperTemplate/assets/console_bkg.bmp
new file mode 100644
index 0000000..d32ee4c
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/assets/console_bkg.bmp differ
diff --git a/Templates/SalmonWallpaperTemplate/assets/gui_transparent.fragment b/Templates/SalmonWallpaperTemplate/assets/gui_transparent.fragment
new file mode 100644
index 0000000..bd2926c
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/assets/gui_transparent.fragment
@@ -0,0 +1,10 @@
+precision lowp float;
+
+uniform sampler2D Texture;
+varying vec2 texCoord;
+
+void main()
+{
+ vec4 texColor = texture2D(Texture,texCoord).rgba;
+ gl_FragColor = vec4(texColor.rgb, texColor.a);
+}
diff --git a/Templates/SalmonWallpaperTemplate/assets/gui_transparent.vertex b/Templates/SalmonWallpaperTemplate/assets/gui_transparent.vertex
new file mode 100644
index 0000000..ad425c2
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/assets/gui_transparent.vertex
@@ -0,0 +1,11 @@
+attribute vec3 vPosition;
+attribute vec2 vTexCoord;
+varying vec2 texCoord;
+uniform mat4 ProjectionMatrix;
+
+void main()
+{
+ //480x320
+ gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
+ texCoord = vTexCoord;
+}
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/assets/model.xml b/Templates/SalmonWallpaperTemplate/assets/model.xml
new file mode 100644
index 0000000..a406ac9
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/assets/model.xml
@@ -0,0 +1,1725 @@
+
+
+
+
+
+
+1.15, 0.0, 0.15
+1.15, 0.0, 6.05
+-1.15, 0.0, 6.05
+-1.15, 0.0, 6.05
+-1.15, 0.0, 0.15
+1.15, 0.0, 0.15
+1.15, 2.2, 0.15
+-1.15, 2.2, 0.15
+-1.15, 2.2, 6.05
+-1.15, 2.2, 6.05
+1.15, 2.2, 6.05
+1.15, 2.2, 0.15
+1.15, 2.2, 0.15
+1.15, 2.2, 6.05
+1.15, 0.0, 6.05
+1.15, 0.0, 6.05
+1.15, 0.0, 0.15
+1.15, 2.2, 0.15
+-1.15, 2.2, 0.15
+1.15, 2.2, 0.15
+1.15, 0.0, 0.15
+1.15, 0.0, 0.15
+-1.15, 0.0, 0.15
+-1.15, 2.2, 0.15
+-1.15, 2.2, 6.05
+-1.15, 2.2, 0.15
+-1.15, 0.0, 0.15
+-1.15, 0.0, 0.15
+-1.15, 0.0, 6.05
+-1.15, 2.2, 6.05
+-1.15, 0.0, 6.05
+1.15, 0.0, 6.05
+1.05, 0.0900212, 6.05
+1.05, 0.0900212, 6.05
+-1.05, 0.0900212, 6.05
+-1.15, 0.0, 6.05
+1.15, 0.0, 6.05
+1.15, 2.2, 6.05
+1.05, 2.09437, 6.05
+1.05, 2.09437, 6.05
+1.05, 0.0900212, 6.05
+1.15, 0.0, 6.05
+1.15, 2.2, 6.05
+-1.15, 2.2, 6.05
+-1.05, 2.09437, 6.05
+-1.05, 2.09437, 6.05
+1.05, 2.09437, 6.05
+1.15, 2.2, 6.05
+-1.15, 2.2, 6.05
+-1.15, 0.0, 6.05
+-1.05, 0.0900212, 6.05
+-1.05, 0.0900212, 6.05
+-1.05, 2.09437, 6.05
+-1.15, 2.2, 6.05
+0.61422, 0.0, 6.07288
+0.611504, 0.0, 6.06452
+0.611504, 2.18832, 6.06452
+0.611504, 2.18832, 6.06452
+0.61422, 2.18832, 6.07288
+0.61422, 0.0, 6.07288
+0.588496, 0.0, 6.06452
+0.58578, 0.0, 6.07288
+0.58578, 2.18832, 6.07288
+0.58578, 2.18832, 6.07288
+0.588496, 2.18832, 6.06452
+0.588496, 0.0, 6.06452
+0.58578, 0.0, 6.07288
+0.588496, 0.0, 6.08123
+0.588496, 2.18832, 6.08123
+0.588496, 2.18832, 6.08123
+0.58578, 2.18832, 6.07288
+0.58578, 0.0, 6.07288
+0.588496, 0.0, 6.08123
+0.595606, 0.0, 6.0864
+0.595606, 2.18832, 6.0864
+0.595606, 2.18832, 6.0864
+0.588496, 2.18832, 6.08123
+0.588496, 0.0, 6.08123
+0.595606, 0.0, 6.0864
+0.604394, 0.0, 6.0864
+0.604394, 2.18832, 6.0864
+0.604394, 2.18832, 6.0864
+0.595606, 2.18832, 6.0864
+0.595606, 0.0, 6.0864
+0.604394, 0.0, 6.0864
+0.611504, 0.0, 6.08123
+0.611504, 2.18832, 6.08123
+0.611504, 2.18832, 6.08123
+0.604394, 2.18832, 6.0864
+0.604394, 0.0, 6.0864
+0.604394, 0.0, 6.0864
+0.595606, 0.0, 6.0864
+0.588496, 0.0, 6.08123
+0.588496, 0.0, 6.08123
+0.58578, 0.0, 6.07288
+0.588496, 0.0, 6.06452
+0.588496, 0.0, 6.06452
+0.595606, 0.0, 6.05935
+0.604394, 0.0, 6.05935
+0.604394, 0.0, 6.05935
+0.611504, 0.0, 6.06452
+0.61422, 0.0, 6.07288
+0.588496, 0.0, 6.06452
+0.604394, 0.0, 6.05935
+0.61422, 0.0, 6.07288
+0.588496, 0.0, 6.08123
+0.588496, 0.0, 6.06452
+0.61422, 0.0, 6.07288
+0.604394, 0.0, 6.0864
+0.588496, 0.0, 6.08123
+0.61422, 0.0, 6.07288
+0.611504, 0.0, 6.08123
+0.604394, 0.0, 6.0864
+0.61422, 0.0, 6.07288
+0.611504, 2.18832, 6.06452
+0.604394, 2.18832, 6.05935
+0.595606, 2.18832, 6.05935
+0.595606, 2.18832, 6.05935
+0.588496, 2.18832, 6.06452
+0.58578, 2.18832, 6.07288
+0.58578, 2.18832, 6.07288
+0.588496, 2.18832, 6.08123
+0.595606, 2.18832, 6.0864
+0.595606, 2.18832, 6.0864
+0.604394, 2.18832, 6.0864
+0.611504, 2.18832, 6.08123
+0.58578, 2.18832, 6.07288
+0.595606, 2.18832, 6.0864
+0.611504, 2.18832, 6.08123
+0.595606, 2.18832, 6.05935
+0.58578, 2.18832, 6.07288
+0.611504, 2.18832, 6.08123
+0.611504, 2.18832, 6.06452
+0.595606, 2.18832, 6.05935
+0.611504, 2.18832, 6.08123
+0.61422, 2.18832, 6.07288
+0.611504, 2.18832, 6.06452
+0.611504, 2.18832, 6.08123
+0.215692, 0.0, 6.07288
+0.212695, 0.0, 6.06365
+0.212695, 2.18832, 6.06365
+0.212695, 2.18832, 6.06365
+0.215692, 2.18832, 6.07288
+0.215692, 0.0, 6.07288
+0.187305, 0.0, 6.06365
+0.184308, 0.0, 6.07288
+0.184308, 2.18832, 6.07288
+0.184308, 2.18832, 6.07288
+0.187305, 2.18832, 6.06365
+0.187305, 0.0, 6.06365
+0.184308, 0.0, 6.07288
+0.187305, 0.0, 6.0821
+0.187305, 2.18832, 6.0821
+0.187305, 2.18832, 6.0821
+0.184308, 2.18832, 6.07288
+0.184308, 0.0, 6.07288
+0.187305, 0.0, 6.0821
+0.195151, 0.0, 6.0878
+0.195151, 2.18832, 6.0878
+0.195151, 2.18832, 6.0878
+0.187305, 2.18832, 6.0821
+0.187305, 0.0, 6.0821
+0.195151, 0.0, 6.0878
+0.204849, 0.0, 6.0878
+0.204849, 2.18832, 6.0878
+0.204849, 2.18832, 6.0878
+0.195151, 2.18832, 6.0878
+0.195151, 0.0, 6.0878
+0.204849, 0.0, 6.0878
+0.212695, 0.0, 6.0821
+0.212695, 2.18832, 6.0821
+0.212695, 2.18832, 6.0821
+0.204849, 2.18832, 6.0878
+0.204849, 0.0, 6.0878
+0.204849, 0.0, 6.0878
+0.195151, 0.0, 6.0878
+0.187305, 0.0, 6.0821
+0.187305, 0.0, 6.0821
+0.184308, 0.0, 6.07288
+0.187305, 0.0, 6.06365
+0.187305, 0.0, 6.06365
+0.195151, 0.0, 6.05795
+0.204849, 0.0, 6.05795
+0.204849, 0.0, 6.05795
+0.212695, 0.0, 6.06365
+0.215692, 0.0, 6.07288
+0.187305, 0.0, 6.06365
+0.204849, 0.0, 6.05795
+0.215692, 0.0, 6.07288
+0.187305, 0.0, 6.0821
+0.187305, 0.0, 6.06365
+0.215692, 0.0, 6.07288
+0.204849, 0.0, 6.0878
+0.187305, 0.0, 6.0821
+0.215692, 0.0, 6.07288
+0.212695, 0.0, 6.0821
+0.204849, 0.0, 6.0878
+0.215692, 0.0, 6.07288
+0.212695, 2.18832, 6.06365
+0.204849, 2.18832, 6.05795
+0.195151, 2.18832, 6.05795
+0.195151, 2.18832, 6.05795
+0.187305, 2.18832, 6.06365
+0.184308, 2.18832, 6.07288
+0.184308, 2.18832, 6.07288
+0.187305, 2.18832, 6.0821
+0.195151, 2.18832, 6.0878
+0.195151, 2.18832, 6.0878
+0.204849, 2.18832, 6.0878
+0.212695, 2.18832, 6.0821
+0.184308, 2.18832, 6.07288
+0.195151, 2.18832, 6.0878
+0.212695, 2.18832, 6.0821
+0.195151, 2.18832, 6.05795
+0.184308, 2.18832, 6.07288
+0.212695, 2.18832, 6.0821
+0.212695, 2.18832, 6.06365
+0.195151, 2.18832, 6.05795
+0.212695, 2.18832, 6.0821
+0.215692, 2.18832, 6.07288
+0.212695, 2.18832, 6.06365
+0.212695, 2.18832, 6.0821
+-0.184136, 0.0, 6.07288
+-0.187166, 0.0, 6.06355
+-0.187166, 2.18832, 6.06355
+-0.187166, 2.18832, 6.06355
+-0.184136, 2.18832, 6.07288
+-0.184136, 0.0, 6.07288
+-0.215864, 0.0, 6.07288
+-0.212834, 0.0, 6.0822
+-0.212834, 2.18832, 6.0822
+-0.212834, 2.18832, 6.0822
+-0.215864, 2.18832, 6.07288
+-0.215864, 0.0, 6.07288
+-0.212834, 0.0, 6.0822
+-0.204902, 0.0, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.212834, 2.18832, 6.0822
+-0.212834, 0.0, 6.0822
+-0.204902, 0.0, 6.08796
+-0.195098, 0.0, 6.08796
+-0.195098, 2.18832, 6.08796
+-0.195098, 2.18832, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.204902, 0.0, 6.08796
+-0.195098, 0.0, 6.08796
+-0.187166, 0.0, 6.0822
+-0.187166, 2.18832, 6.0822
+-0.187166, 2.18832, 6.0822
+-0.195098, 2.18832, 6.08796
+-0.195098, 0.0, 6.08796
+-0.187166, 0.0, 6.0822
+-0.184136, 0.0, 6.07288
+-0.184136, 2.18832, 6.07288
+-0.184136, 2.18832, 6.07288
+-0.187166, 2.18832, 6.0822
+-0.187166, 0.0, 6.0822
+-0.195098, 0.0, 6.08796
+-0.204902, 0.0, 6.08796
+-0.212834, 0.0, 6.0822
+-0.212834, 0.0, 6.0822
+-0.215864, 0.0, 6.07288
+-0.212834, 0.0, 6.06355
+-0.212834, 0.0, 6.06355
+-0.204902, 0.0, 6.05779
+-0.195098, 0.0, 6.05779
+-0.195098, 0.0, 6.05779
+-0.187166, 0.0, 6.06355
+-0.184136, 0.0, 6.07288
+-0.212834, 0.0, 6.06355
+-0.195098, 0.0, 6.05779
+-0.184136, 0.0, 6.07288
+-0.212834, 0.0, 6.0822
+-0.212834, 0.0, 6.06355
+-0.184136, 0.0, 6.07288
+-0.195098, 0.0, 6.08796
+-0.212834, 0.0, 6.0822
+-0.184136, 0.0, 6.07288
+-0.187166, 0.0, 6.0822
+-0.195098, 0.0, 6.08796
+-0.184136, 0.0, 6.07288
+-0.187166, 2.18832, 6.06355
+-0.195098, 2.18832, 6.05779
+-0.204902, 2.18832, 6.05779
+-0.204902, 2.18832, 6.05779
+-0.212834, 2.18832, 6.06355
+-0.215864, 2.18832, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.212834, 2.18832, 6.0822
+-0.204902, 2.18832, 6.08796
+-0.204902, 2.18832, 6.08796
+-0.195098, 2.18832, 6.08796
+-0.187166, 2.18832, 6.0822
+-0.215864, 2.18832, 6.07288
+-0.204902, 2.18832, 6.08796
+-0.187166, 2.18832, 6.0822
+-0.204902, 2.18832, 6.05779
+-0.215864, 2.18832, 6.07288
+-0.187166, 2.18832, 6.0822
+-0.187166, 2.18832, 6.06355
+-0.204902, 2.18832, 6.05779
+-0.187166, 2.18832, 6.0822
+-0.184136, 2.18832, 6.07288
+-0.187166, 2.18832, 6.06355
+-0.187166, 2.18832, 6.0822
+-0.585371, 0.0, 6.07288
+-0.588165, 0.0, 6.06428
+-0.588165, 2.18832, 6.06428
+-0.588165, 2.18832, 6.06428
+-0.585371, 2.18832, 6.07288
+-0.585371, 0.0, 6.07288
+-0.614629, 0.0, 6.07288
+-0.611835, 0.0, 6.08148
+-0.611835, 2.18832, 6.08148
+-0.611835, 2.18832, 6.08148
+-0.614629, 2.18832, 6.07288
+-0.614629, 0.0, 6.07288
+-0.611835, 0.0, 6.08148
+-0.604521, 0.0, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.611835, 2.18832, 6.08148
+-0.611835, 0.0, 6.08148
+-0.604521, 0.0, 6.08679
+-0.595479, 0.0, 6.08679
+-0.595479, 2.18832, 6.08679
+-0.595479, 2.18832, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.604521, 0.0, 6.08679
+-0.595479, 0.0, 6.08679
+-0.588165, 0.0, 6.08148
+-0.588165, 2.18832, 6.08148
+-0.588165, 2.18832, 6.08148
+-0.595479, 2.18832, 6.08679
+-0.595479, 0.0, 6.08679
+-0.588165, 0.0, 6.08148
+-0.585371, 0.0, 6.07288
+-0.585371, 2.18832, 6.07288
+-0.585371, 2.18832, 6.07288
+-0.588165, 2.18832, 6.08148
+-0.588165, 0.0, 6.08148
+-0.595479, 0.0, 6.08679
+-0.604521, 0.0, 6.08679
+-0.611835, 0.0, 6.08148
+-0.611835, 0.0, 6.08148
+-0.614629, 0.0, 6.07288
+-0.611835, 0.0, 6.06428
+-0.611835, 0.0, 6.06428
+-0.604521, 0.0, 6.05896
+-0.595479, 0.0, 6.05896
+-0.595479, 0.0, 6.05896
+-0.588165, 0.0, 6.06428
+-0.585371, 0.0, 6.07288
+-0.611835, 0.0, 6.06428
+-0.595479, 0.0, 6.05896
+-0.585371, 0.0, 6.07288
+-0.611835, 0.0, 6.08148
+-0.611835, 0.0, 6.06428
+-0.585371, 0.0, 6.07288
+-0.595479, 0.0, 6.08679
+-0.611835, 0.0, 6.08148
+-0.585371, 0.0, 6.07288
+-0.588165, 0.0, 6.08148
+-0.595479, 0.0, 6.08679
+-0.585371, 0.0, 6.07288
+-0.588165, 2.18832, 6.06428
+-0.595479, 2.18832, 6.05896
+-0.604521, 2.18832, 6.05896
+-0.604521, 2.18832, 6.05896
+-0.611835, 2.18832, 6.06428
+-0.614629, 2.18832, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.611835, 2.18832, 6.08148
+-0.604521, 2.18832, 6.08679
+-0.604521, 2.18832, 6.08679
+-0.595479, 2.18832, 6.08679
+-0.588165, 2.18832, 6.08148
+-0.614629, 2.18832, 6.07288
+-0.604521, 2.18832, 6.08679
+-0.588165, 2.18832, 6.08148
+-0.604521, 2.18832, 6.05896
+-0.614629, 2.18832, 6.07288
+-0.588165, 2.18832, 6.08148
+-0.588165, 2.18832, 6.06428
+-0.604521, 2.18832, 6.05896
+-0.588165, 2.18832, 6.08148
+-0.585371, 2.18832, 6.07288
+-0.588165, 2.18832, 6.06428
+-0.588165, 2.18832, 6.08148
+1.03278, 0.0984738, 6.052
+1.03278, 2.08558, 6.052
+0.00136847, 2.08558, 6.052
+0.00136847, 2.08558, 6.052
+0.00136847, 0.0984738, 6.052
+1.03278, 0.0984738, 6.052
+-0.0122491, 2.08558, 6.052
+-1.04367, 2.08558, 6.052
+-1.04367, 0.0984738, 6.052
+-1.04367, 0.0984738, 6.052
+-0.0122491, 0.0984738, 6.052
+-0.0122491, 2.08558, 6.052
+0.61422, 0.0, 6.07288
+0.61422, 2.18832, 6.07288
+0.61422, 0.569992, 6.07288
+0.61422, 0.569992, 6.07288
+0.61422, 0.543543, 6.07288
+0.61422, 0.0, 6.07288
+0.61422, 2.18832, 6.07288
+0.611504, 2.18832, 6.08123
+0.611504, 0.569992, 6.08123
+0.611504, 0.569992, 6.08123
+0.61422, 0.569992, 6.07288
+0.61422, 2.18832, 6.07288
+0.611504, 2.18832, 6.08123
+0.611504, 0.0, 6.08123
+0.611504, 0.543543, 6.08123
+0.611504, 0.543543, 6.08123
+0.611504, 0.569992, 6.08123
+0.611504, 2.18832, 6.08123
+0.611504, 0.0, 6.08123
+0.61422, 0.0, 6.07288
+0.61422, 0.543543, 6.07288
+0.61422, 0.543543, 6.07288
+0.611504, 0.543543, 6.08123
+0.611504, 0.0, 6.08123
+0.61422, 0.543543, 6.07288
+0.61422, 0.569992, 6.07288
+0.892061, 0.569992, 6.05618
+0.892061, 0.569992, 6.05618
+0.892061, 0.543543, 6.05618
+0.61422, 0.543543, 6.07288
+0.61422, 0.569992, 6.07288
+0.611504, 0.569992, 6.08123
+0.892061, 0.569992, 6.05618
+0.611504, 0.569992, 6.08123
+0.611504, 0.543543, 6.08123
+0.892061, 0.543543, 6.05618
+0.892061, 0.543543, 6.05618
+0.892061, 0.569992, 6.05618
+0.611504, 0.569992, 6.08123
+0.611504, 0.543543, 6.08123
+0.61422, 0.543543, 6.07288
+0.892061, 0.543543, 6.05618
+0.215692, 0.0, 6.07288
+0.215692, 2.18832, 6.07288
+0.215692, 0.576822, 6.07288
+0.215692, 0.576822, 6.07288
+0.215692, 0.546241, 6.07288
+0.215692, 0.0, 6.07288
+0.215692, 2.18832, 6.07288
+0.212695, 2.18832, 6.0821
+0.212695, 0.576822, 6.0821
+0.212695, 0.576822, 6.0821
+0.215692, 0.576822, 6.07288
+0.215692, 2.18832, 6.07288
+0.212695, 2.18832, 6.0821
+0.212695, 0.0, 6.0821
+0.212695, 0.546241, 6.0821
+0.212695, 0.546241, 6.0821
+0.212695, 0.576822, 6.0821
+0.212695, 2.18832, 6.0821
+0.212695, 0.0, 6.0821
+0.215692, 0.0, 6.07288
+0.215692, 0.546241, 6.07288
+0.215692, 0.546241, 6.07288
+0.212695, 0.546241, 6.0821
+0.212695, 0.0, 6.0821
+0.215692, 0.546241, 6.07288
+0.215692, 0.576822, 6.07288
+0.480489, 0.576822, 6.06799
+0.480489, 0.576822, 6.06799
+0.480489, 0.546241, 6.06799
+0.215692, 0.546241, 6.07288
+0.215692, 0.576822, 6.07288
+0.212695, 0.576822, 6.0821
+0.480489, 0.576822, 6.06799
+0.212695, 0.576822, 6.0821
+0.212695, 0.546241, 6.0821
+0.480489, 0.546241, 6.06799
+0.480489, 0.546241, 6.06799
+0.480489, 0.576822, 6.06799
+0.212695, 0.576822, 6.0821
+0.212695, 0.546241, 6.0821
+0.215692, 0.546241, 6.07288
+0.480489, 0.546241, 6.06799
+-0.212834, 2.18832, 6.06355
+-0.212834, 0.0, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.212834, 0.572329, 6.06355
+-0.212834, 2.18832, 6.06355
+-0.212834, 0.0, 6.06355
+-0.215864, 0.0, 6.07288
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.537944, 6.07288
+-0.212834, 0.537944, 6.06355
+-0.212834, 0.0, 6.06355
+-0.215864, 0.0, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.0, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.212834, 2.18832, 6.06355
+-0.212834, 0.572329, 6.06355
+-0.212834, 0.572329, 6.06355
+-0.215864, 0.572329, 6.07288
+-0.215864, 2.18832, 6.07288
+-0.212834, 0.572329, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.480645, 0.537944, 6.05698
+-0.480645, 0.537944, 6.05698
+-0.480645, 0.572329, 6.05698
+-0.212834, 0.572329, 6.06355
+-0.212834, 0.537944, 6.06355
+-0.215864, 0.537944, 6.07288
+-0.480645, 0.537944, 6.05698
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.480645, 0.572329, 6.05698
+-0.480645, 0.572329, 6.05698
+-0.480645, 0.537944, 6.05698
+-0.215864, 0.537944, 6.07288
+-0.215864, 0.572329, 6.07288
+-0.212834, 0.572329, 6.06355
+-0.480645, 0.572329, 6.05698
+-0.611835, 2.18832, 6.06428
+-0.611835, 0.0, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.611835, 0.577831, 6.06428
+-0.611835, 2.18832, 6.06428
+-0.611835, 0.0, 6.06428
+-0.614629, 0.0, 6.07288
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.532442, 6.07288
+-0.611835, 0.532442, 6.06428
+-0.611835, 0.0, 6.06428
+-0.614629, 0.0, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.0, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.611835, 2.18832, 6.06428
+-0.611835, 0.577831, 6.06428
+-0.611835, 0.577831, 6.06428
+-0.614629, 0.577831, 6.07288
+-0.614629, 2.18832, 6.07288
+-0.611835, 0.577831, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.879528, 0.532442, 6.05519
+-0.879528, 0.532442, 6.05519
+-0.879528, 0.577831, 6.05519
+-0.611835, 0.577831, 6.06428
+-0.611835, 0.532442, 6.06428
+-0.614629, 0.532442, 6.07288
+-0.879528, 0.532442, 6.05519
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.879528, 0.577831, 6.05519
+-0.879528, 0.577831, 6.05519
+-0.879528, 0.532442, 6.05519
+-0.614629, 0.532442, 6.07288
+-0.614629, 0.577831, 6.07288
+-0.611835, 0.577831, 6.06428
+-0.879528, 0.577831, 6.05519
+
+
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+1.0, 0.0, 0.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+0.0, 0.0, -1.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+-1.0, 0.0, 0.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+0.951054, 0.0, -0.309026
+-0.951056, 0.0, -0.30902
+-0.994186, 0.0, 0.107678
+-0.994186, 0.0, -0.107678
+-0.994186, 0.0, -0.107678
+-0.951056, 0.0, -0.30902
+-0.951056, 0.0, -0.30902
+-0.994186, 0.0, 0.107678
+-0.741036, 0.0, 0.671465
+-0.867608, 0.0, 0.497249
+-0.867608, 0.0, 0.497249
+-0.994186, 0.0, -0.107678
+-0.994186, 0.0, 0.107678
+-0.741036, 0.0, 0.671465
+-0.204823, 0.0, 0.978799
+-0.409646, 0.0, 0.912244
+-0.409646, 0.0, 0.912244
+-0.867608, 0.0, 0.497249
+-0.741036, 0.0, 0.671465
+-0.204823, 0.0, 0.978799
+0.409646, 0.0, 0.912244
+0.204823, 0.0, 0.978799
+0.204823, 0.0, 0.978799
+-0.409646, 0.0, 0.912244
+-0.204823, 0.0, 0.978799
+0.409646, 0.0, 0.912244
+0.58781, 0.0, 0.808999
+0.58781, 0.0, 0.808999
+0.58781, 0.0, 0.808999
+0.204823, 0.0, 0.978799
+0.409646, 0.0, 0.912244
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+0.951056, 0.0, -0.309018
+-0.951057, 0.0, -0.309016
+-0.994187, 0.0, 0.107666
+-0.994185, 0.0, -0.107681
+-0.994185, 0.0, -0.107681
+-0.951057, 0.0, -0.309016
+-0.951057, 0.0, -0.309016
+-0.994187, 0.0, 0.107666
+-0.741014, 0.0, 0.67149
+-0.867605, 0.0, 0.497253
+-0.867605, 0.0, 0.497253
+-0.994185, 0.0, -0.107681
+-0.994187, 0.0, 0.107666
+-0.741014, 0.0, 0.67149
+-0.204805, 0.0, 0.978803
+-0.409611, 0.0, 0.91226
+-0.409611, 0.0, 0.91226
+-0.867605, 0.0, 0.497253
+-0.741014, 0.0, 0.67149
+-0.204805, 0.0, 0.978803
+0.409611, 0.0, 0.91226
+0.204806, 0.0, 0.978803
+0.204806, 0.0, 0.978803
+-0.409611, 0.0, 0.91226
+-0.204805, 0.0, 0.978803
+0.409611, 0.0, 0.91226
+0.587765, 0.0, 0.809032
+0.587765, 0.0, 0.809032
+0.587765, 0.0, 0.809032
+0.204806, 0.0, 0.978803
+0.409611, 0.0, 0.91226
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.994184, 0.0, -0.107692
+0.951052, 0.0, -0.309032
+0.951052, 0.0, -0.309032
+0.951052, 0.0, -0.309032
+0.994188, 0.0, 0.107662
+0.994184, 0.0, -0.107692
+-0.951061, 0.0, 0.309003
+-0.740996, 0.0, 0.671509
+-0.867599, 0.0, 0.497264
+-0.867599, 0.0, 0.497264
+-0.951061, 0.0, 0.309003
+-0.951061, 0.0, 0.309003
+-0.740996, 0.0, 0.671509
+-0.204794, 0.0, 0.978805
+-0.409587, 0.0, 0.912271
+-0.409587, 0.0, 0.912271
+-0.867599, 0.0, 0.497264
+-0.740996, 0.0, 0.671509
+-0.204794, 0.0, 0.978805
+0.409588, 0.0, 0.912271
+0.204794, 0.0, 0.978805
+0.204794, 0.0, 0.978805
+-0.409587, 0.0, 0.912271
+-0.204794, 0.0, 0.978805
+0.409588, 0.0, 0.912271
+0.867599, 0.0, 0.497264
+0.740997, 0.0, 0.671509
+0.740997, 0.0, 0.671509
+0.204794, 0.0, 0.978805
+0.409588, 0.0, 0.912271
+0.867599, 0.0, 0.497264
+0.994184, 0.0, -0.107692
+0.994188, 0.0, 0.107662
+0.994188, 0.0, 0.107662
+0.740997, 0.0, 0.671509
+0.867599, 0.0, 0.497264
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.994185, 0.0, -0.107687
+0.951052, 0.0, -0.309031
+0.951052, 0.0, -0.309031
+0.951052, 0.0, -0.309031
+0.994187, 0.0, 0.107671
+0.994185, 0.0, -0.107687
+-0.951057, 0.0, 0.309016
+-0.741023, 0.0, 0.67148
+-0.867605, 0.0, 0.497254
+-0.867605, 0.0, 0.497254
+-0.951057, 0.0, 0.309016
+-0.951057, 0.0, 0.309016
+-0.741023, 0.0, 0.67148
+-0.204814, 0.0, 0.978801
+-0.409628, 0.0, 0.912253
+-0.409628, 0.0, 0.912253
+-0.867605, 0.0, 0.497254
+-0.741023, 0.0, 0.67148
+-0.204814, 0.0, 0.978801
+0.409628, 0.0, 0.912253
+0.204814, 0.0, 0.978801
+0.204814, 0.0, 0.978801
+-0.409628, 0.0, 0.912253
+-0.204814, 0.0, 0.978801
+0.409628, 0.0, 0.912253
+0.867605, 0.0, 0.497254
+0.741023, 0.0, 0.67148
+0.741023, 0.0, 0.67148
+0.204814, 0.0, 0.978801
+0.409628, 0.0, 0.912253
+0.867605, 0.0, 0.497254
+0.994185, 0.0, -0.107687
+0.994187, 0.0, 0.107671
+0.994187, 0.0, 0.107671
+0.741023, 0.0, 0.67148
+0.867605, 0.0, 0.497254
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 1.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+0.951054, 0.0, 0.309026
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+-0.0599835, 0.0, -0.998199
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0889468, 0.0, 0.996036
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+0.951061, 0.0, 0.309003
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+-0.0184439, 0.0, -0.99983
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0526117, 0.0, 0.998615
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+-0.951052, 0.0, -0.309032
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0245422, 0.0, -0.999699
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+-0.0599369, 0.0, 0.998202
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+0.0, 0.0, 0.0
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+-0.951052, 0.0, -0.309031
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0339176, 0.0, -0.999425
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+0.0, -1.0, 0.0
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+-0.0666057, 0.0, 0.997779
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+0.0, 1.0, 0.0
+
+
+
+
+0.996648, 0.355226
+0.0979369, 0.355226
+0.0979369, 0.0048809
+0.0979369, 0.0048809
+0.996648, 0.00488085
+0.996648, 0.355226
+0.996643, 0.00482193
+0.996644, 0.355167
+0.0979327, 0.355167
+0.0979327, 0.355167
+0.0979326, 0.00482197
+0.996643, 0.00482193
+0.995325, 0.693698
+0.0952358, 0.693696
+0.0952372, 0.358069
+0.0952372, 0.358069
+0.995326, 0.358072
+0.995325, 0.693698
+0.995712, 0.994161
+0.697017, 0.994161
+0.697017, 0.709019
+0.697017, 0.709019
+0.995712, 0.709019
+0.995712, 0.994161
+0.994841, 0.693621
+0.0947512, 0.693619
+0.0947528, 0.357992
+0.0947528, 0.357992
+0.994842, 0.357995
+0.994841, 0.693621
+0.0445547, 0.707523
+0.695375, 0.712237
+0.666895, 0.737505
+0.666895, 0.737505
+0.072667, 0.733201
+0.0445547, 0.707523
+0.0524875, 0.741276
+0.675028, 0.740186
+0.645188, 0.768535
+0.645188, 0.768535
+0.0780106, 0.769529
+0.0524875, 0.741276
+0.0483286, 0.805124
+0.68021, 0.805144
+0.652737, 0.834161
+0.652737, 0.834161
+0.0758014, 0.834144
+0.0483286, 0.805124
+0.673981, 0.802663
+0.0514405, 0.801571
+0.0769636, 0.773319
+0.0769636, 0.773319
+0.644141, 0.774314
+0.673981, 0.802663
+0.0320342, 0.0043303
+0.0352626, 0.0043303
+0.0352626, 0.808058
+0.0352626, 0.808058
+0.0320342, 0.808058
+0.0320342, 0.0043303
+0.0126548, 0.0043303
+0.0158832, 0.0043303
+0.0158832, 0.808058
+0.0158832, 0.808058
+0.0126548, 0.808058
+0.0126548, 0.0043303
+0.0158832, 0.0043303
+0.0191126, 0.0043303
+0.0191126, 0.808058
+0.0191126, 0.808058
+0.0158832, 0.808058
+0.0158832, 0.0043303
+0.0191126, 0.0043303
+0.022343, 0.0043303
+0.022343, 0.808058
+0.022343, 0.808058
+0.0191126, 0.808058
+0.0191126, 0.0043303
+0.022343, 0.0043303
+0.0255743, 0.0043303
+0.0255743, 0.808058
+0.0255743, 0.808058
+0.022343, 0.808058
+0.022343, 0.0043303
+0.0255743, 0.0043303
+0.0288048, 0.0043303
+0.0288048, 0.808058
+0.0288048, 0.808058
+0.0255743, 0.808058
+0.0255743, 0.0043303
+0.0281171, 0.20497
+0.0290044, 0.208058
+0.0279071, 0.211078
+0.0279071, 0.211078
+0.0252445, 0.212876
+0.0220335, 0.212766
+0.0220335, 0.212766
+0.0195005, 0.210789
+0.0186132, 0.207701
+0.0186132, 0.207701
+0.0197105, 0.204681
+0.0223732, 0.202885
+0.0220335, 0.212766
+0.0186132, 0.207701
+0.0223732, 0.202885
+0.0279071, 0.211078
+0.0220335, 0.212766
+0.0223732, 0.202885
+0.0281171, 0.20497
+0.0279071, 0.211078
+0.0223732, 0.202885
+0.0255843, 0.202992
+0.0281171, 0.20497
+0.0223732, 0.202885
+0.0190881, 0.218049
+0.0204065, 0.220979
+0.0197509, 0.224124
+0.0197509, 0.224124
+0.0173717, 0.226283
+0.0141777, 0.226632
+0.0141777, 0.226632
+0.011389, 0.225036
+0.0100705, 0.222106
+0.0100705, 0.222106
+0.0107261, 0.218961
+0.0147068, 0.216693
+0.0141777, 0.226632
+0.0100705, 0.222106
+0.0147068, 0.216693
+0.0197509, 0.224124
+0.0141777, 0.226632
+0.0147068, 0.216693
+0.0190881, 0.218049
+0.0197509, 0.224124
+0.0147068, 0.216693
+0.0146979, 0.216562
+0.0190881, 0.218049
+0.0147068, 0.216693
+0.0328696, 0.0043303
+0.036432, 0.0043303
+0.036432, 0.808058
+0.036432, 0.808058
+0.0328696, 0.808058
+0.0328696, 0.0043303
+0.0114858, 0.0043303
+0.0150483, 0.0043303
+0.0150483, 0.808058
+0.0150483, 0.808058
+0.0114858, 0.808058
+0.0114858, 0.0043303
+0.0150483, 0.0043303
+0.0186118, 0.0043303
+0.0186118, 0.808058
+0.0186118, 0.808058
+0.0150483, 0.808058
+0.0150483, 0.0043303
+0.0186118, 0.0043303
+0.0221764, 0.0043303
+0.0221763, 0.808058
+0.0221763, 0.808058
+0.0186118, 0.808058
+0.0186118, 0.0043303
+0.0221764, 0.0043303
+0.0257418, 0.0043303
+0.0257418, 0.808058
+0.0257418, 0.808058
+0.0221763, 0.808058
+0.0221764, 0.0043303
+0.0257418, 0.0043303
+0.0293064, 0.0043303
+0.0293063, 0.808058
+0.0293063, 0.808058
+0.0257418, 0.808058
+0.0257418, 0.0043303
+0.0285426, 0.20616
+0.0295102, 0.209571
+0.0282882, 0.212899
+0.0282882, 0.212899
+0.0253432, 0.214874
+0.0218002, 0.21474
+0.0218002, 0.21474
+0.0190125, 0.212549
+0.0180449, 0.209138
+0.0180449, 0.209138
+0.0192669, 0.20581
+0.0222121, 0.203838
+0.0218002, 0.21474
+0.0180449, 0.209138
+0.0222121, 0.203838
+0.0282882, 0.212899
+0.0218002, 0.21474
+0.0222121, 0.203838
+0.0285426, 0.20616
+0.0282882, 0.212899
+0.0222121, 0.203838
+0.0257553, 0.203968
+0.0285426, 0.20616
+0.0222121, 0.203838
+0.0200101, 0.220638
+0.0215053, 0.223853
+0.0208253, 0.227333
+0.0208253, 0.227333
+0.0182299, 0.229748
+0.0147104, 0.230177
+0.0147104, 0.230177
+0.0116111, 0.228455
+0.0101159, 0.22524
+0.0101159, 0.22524
+0.0107959, 0.22176
+0.015157, 0.219214
+0.0147104, 0.230177
+0.0101159, 0.22524
+0.015157, 0.219214
+0.0208253, 0.227333
+0.0147104, 0.230177
+0.015157, 0.219214
+0.0200101, 0.220638
+0.0208253, 0.227333
+0.015157, 0.219214
+0.0151446, 0.219047
+0.0200101, 0.220638
+0.015157, 0.219214
+0.0329622, 0.0043303
+0.0365634, 0.0043303
+0.0365634, 0.808058
+0.0365634, 0.808058
+0.0329622, 0.808058
+0.0329622, 0.0043303
+0.0149465, 0.0043303
+0.018549, 0.0043303
+0.018549, 0.808058
+0.018549, 0.808058
+0.0149465, 0.808058
+0.0149465, 0.0043303
+0.018549, 0.0043303
+0.0221527, 0.0043303
+0.0221529, 0.808058
+0.0221529, 0.808058
+0.018549, 0.808058
+0.018549, 0.0043303
+0.0221527, 0.0043303
+0.0257568, 0.0043303
+0.0257571, 0.808058
+0.0257571, 0.808058
+0.0221529, 0.808058
+0.0221527, 0.0043303
+0.0257568, 0.0043303
+0.0293601, 0.0043303
+0.0293601, 0.808058
+0.0293601, 0.808058
+0.0257571, 0.808058
+0.0257568, 0.0043303
+0.0293601, 0.0043303
+0.0329622, 0.0043303
+0.0329622, 0.808058
+0.0329622, 0.808058
+0.0293601, 0.808058
+0.0293601, 0.0043303
+0.00872991, 0.210054
+0.00752289, 0.206679
+0.00853017, 0.203239
+0.00853017, 0.203239
+0.0113624, 0.201022
+0.014946, 0.200969
+0.014946, 0.200969
+0.0179101, 0.202964
+0.0191171, 0.206339
+0.0191171, 0.206339
+0.0181098, 0.209779
+0.015273, 0.21197
+0.014946, 0.200969
+0.0191171, 0.206339
+0.015273, 0.21197
+0.00853017, 0.203239
+0.014946, 0.200969
+0.015273, 0.21197
+0.00872991, 0.210054
+0.00853017, 0.203239
+0.015273, 0.21197
+0.0116902, 0.212075
+0.00872991, 0.210054
+0.015273, 0.21197
+0.0173309, 0.226479
+0.0139519, 0.225284
+0.0119209, 0.22233
+0.0119209, 0.22233
+0.0134691, 0.218018
+0.0127676, 0.216596
+0.0127676, 0.216596
+0.0176317, 0.214884
+0.0210108, 0.21608
+0.0210108, 0.21608
+0.0230417, 0.219033
+0.0229487, 0.222616
+0.0127676, 0.216596
+0.0210108, 0.21608
+0.0229487, 0.222616
+0.0119209, 0.22233
+0.0127676, 0.216596
+0.0229487, 0.222616
+0.0173309, 0.226479
+0.0119209, 0.22233
+0.0229487, 0.222616
+0.0207674, 0.22546
+0.0173309, 0.226479
+0.0229487, 0.222616
+0.0322638, 0.0043303
+0.0355849, 0.0043303
+0.0355849, 0.808058
+0.0355849, 0.808058
+0.0322638, 0.808058
+0.0322638, 0.0043303
+0.0156493, 0.0043303
+0.0189715, 0.0043303
+0.0189716, 0.808058
+0.0189716, 0.808058
+0.0156493, 0.808058
+0.0156493, 0.0043303
+0.0189715, 0.0043303
+0.0222948, 0.0043303
+0.0222948, 0.808058
+0.0222948, 0.808058
+0.0189716, 0.808058
+0.0189715, 0.0043303
+0.0222948, 0.0043303
+0.0256186, 0.0043303
+0.0256186, 0.808058
+0.0256186, 0.808058
+0.0222948, 0.808058
+0.0222948, 0.0043303
+0.0256186, 0.0043303
+0.0289416, 0.0043303
+0.0289416, 0.808058
+0.0289416, 0.808058
+0.0256186, 0.808058
+0.0256186, 0.0043303
+0.0289416, 0.0043303
+0.0322638, 0.0043303
+0.0322638, 0.808058
+0.0322638, 0.808058
+0.0289416, 0.808058
+0.0289416, 0.0043303
+0.00988939, 0.207325
+0.00878603, 0.204209
+0.00972486, 0.20104
+0.00972486, 0.20104
+0.0123434, 0.199006
+0.0156482, 0.198963
+0.0156482, 0.198963
+0.0183755, 0.200813
+0.0194788, 0.203929
+0.0194788, 0.203929
+0.01854, 0.207098
+0.0159177, 0.209111
+0.0156482, 0.198963
+0.0194788, 0.203929
+0.0159177, 0.209111
+0.00972486, 0.20104
+0.0156482, 0.198963
+0.0159177, 0.209111
+0.00988939, 0.207325
+0.00972486, 0.20104
+0.0159177, 0.209111
+0.0126135, 0.209197
+0.00988939, 0.207325
+0.0159177, 0.209111
+0.0171257, 0.22806
+0.014114, 0.226698
+0.0124783, 0.223826
+0.0124783, 0.223826
+0.014237, 0.219918
+0.0136974, 0.218696
+0.0136974, 0.218696
+0.0183066, 0.217429
+0.0213182, 0.218791
+0.0213182, 0.218791
+0.0229539, 0.221664
+0.022589, 0.224949
+0.0136974, 0.218696
+0.0213182, 0.218791
+0.022589, 0.224949
+0.0124783, 0.223826
+0.0136974, 0.218696
+0.022589, 0.224949
+0.0171257, 0.22806
+0.0124783, 0.223826
+0.022589, 0.224949
+0.0203628, 0.227392
+0.0171257, 0.22806
+0.022589, 0.224949
+0.99556, 0.708874
+0.995362, 0.993985
+0.849113, 0.993985
+0.849113, 0.993985
+0.84931, 0.708874
+0.99556, 0.708874
+0.849122, 0.994505
+0.696954, 0.99411
+0.697152, 0.709
+0.697152, 0.709
+0.84932, 0.709394
+0.849122, 0.994505
+0.0320342, 0.0043303
+0.0320342, 0.808058
+0.0320342, 0.808058
+0.0320342, 0.808058
+0.0320342, 0.0043303
+0.0320342, 0.0043303
+0.0146979, 0.216562
+0.0147068, 0.216693
+0.0288048, 0.808058
+0.0288048, 0.808058
+0.0320342, 0.808058
+0.0146979, 0.216562
+0.0288048, 0.808058
+0.0288048, 0.0043303
+0.0288048, 0.0043303
+0.0288048, 0.0043303
+0.0288048, 0.808058
+0.0288048, 0.808058
+0.0255843, 0.202992
+0.0223732, 0.202885
+0.0320342, 0.0043303
+0.0320342, 0.0043303
+0.0288048, 0.0043303
+0.0255843, 0.202992
+0.0320342, 0.0043303
+0.0320342, 0.808058
+0.0304195, 0.808058
+0.0304195, 0.808058
+0.0304195, 0.0043303
+0.0320342, 0.0043303
+0.0320342, 0.808058
+0.0288048, 0.808058
+0.0304195, 0.808058
+0.0288048, 0.808058
+0.0288048, 0.0043303
+0.0304195, 0.0043303
+0.0304195, 0.0043303
+0.0304195, 0.808058
+0.0288048, 0.808058
+0.0288048, 0.0043303
+0.0320342, 0.0043303
+0.0304195, 0.0043303
+0.0328696, 0.0043303
+0.0328696, 0.808058
+0.0328696, 0.808058
+0.0328696, 0.808058
+0.0328696, 0.0043303
+0.0328696, 0.0043303
+0.0151446, 0.219047
+0.015157, 0.219214
+0.0293063, 0.808058
+0.0293063, 0.808058
+0.0328696, 0.808058
+0.0151446, 0.219047
+0.0293063, 0.808058
+0.0293064, 0.0043303
+0.0293064, 0.0043303
+0.0293064, 0.0043303
+0.0293063, 0.808058
+0.0293063, 0.808058
+0.0257553, 0.203968
+0.0222121, 0.203838
+0.0328696, 0.0043303
+0.0328696, 0.0043303
+0.0293064, 0.0043303
+0.0257553, 0.203968
+0.0328696, 0.0043303
+0.0328696, 0.808058
+0.0310879, 0.808058
+0.0310879, 0.808058
+0.031088, 0.0043303
+0.0328696, 0.0043303
+0.0328696, 0.808058
+0.0293063, 0.808058
+0.0310879, 0.808058
+0.0293063, 0.808058
+0.0293064, 0.0043303
+0.031088, 0.0043303
+0.031088, 0.0043303
+0.0310879, 0.808058
+0.0293063, 0.808058
+0.0293064, 0.0043303
+0.0328696, 0.0043303
+0.031088, 0.0043303
+0.011345, 0.808058
+0.011345, 0.0043303
+0.011345, 0.0043303
+0.011345, 0.0043303
+0.011345, 0.808058
+0.011345, 0.808058
+0.014946, 0.200969
+0.0113624, 0.201022
+0.0149465, 0.0043303
+0.0149465, 0.0043303
+0.011345, 0.0043303
+0.014946, 0.200969
+0.0149465, 0.0043303
+0.0149465, 0.808058
+0.0149465, 0.808058
+0.0149465, 0.808058
+0.0149465, 0.0043303
+0.0149465, 0.0043303
+0.0127676, 0.216596
+0.0134691, 0.218018
+0.011345, 0.808058
+0.011345, 0.808058
+0.0149465, 0.808058
+0.0127676, 0.216596
+0.011345, 0.808058
+0.011345, 0.0043303
+0.0131458, 0.0043303
+0.0131458, 0.0043303
+0.0131458, 0.808058
+0.011345, 0.808058
+0.011345, 0.0043303
+0.0149465, 0.0043303
+0.0131458, 0.0043303
+0.0149465, 0.0043303
+0.0149465, 0.808058
+0.0131458, 0.808058
+0.0131458, 0.808058
+0.0131458, 0.0043303
+0.0149465, 0.0043303
+0.0149465, 0.808058
+0.011345, 0.808058
+0.0131458, 0.808058
+0.0123284, 0.808058
+0.0123284, 0.0043303
+0.0123284, 0.0043303
+0.0123284, 0.0043303
+0.0123284, 0.808058
+0.0123284, 0.808058
+0.0156482, 0.198963
+0.0123434, 0.199006
+0.0156493, 0.0043303
+0.0156493, 0.0043303
+0.0123284, 0.0043303
+0.0156482, 0.198963
+0.0156493, 0.0043303
+0.0156493, 0.808058
+0.0156493, 0.808058
+0.0156493, 0.808058
+0.0156493, 0.0043303
+0.0156493, 0.0043303
+0.0136974, 0.218696
+0.014237, 0.219918
+0.0123284, 0.808058
+0.0123284, 0.808058
+0.0156493, 0.808058
+0.0136974, 0.218696
+0.0123284, 0.808058
+0.0123284, 0.0043303
+0.0139889, 0.0043303
+0.0139889, 0.0043303
+0.0139889, 0.808058
+0.0123284, 0.808058
+0.0123284, 0.0043303
+0.0156493, 0.0043303
+0.0139889, 0.0043303
+0.0156493, 0.0043303
+0.0156493, 0.808058
+0.0139889, 0.808058
+0.0139889, 0.808058
+0.0139889, 0.0043303
+0.0156493, 0.0043303
+0.0156493, 0.808058
+0.0123284, 0.808058
+0.0139889, 0.808058
+
+
+
diff --git a/Templates/SalmonWallpaperTemplate/default.properties b/Templates/SalmonWallpaperTemplate/default.properties
new file mode 100644
index 0000000..4735723
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/default.properties
@@ -0,0 +1,13 @@
+# 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 use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-8
+# Indicates whether an apk should be generated for each density.
+split.density=false
diff --git a/Templates/SalmonWallpaperTemplate/jni/Android.mk b/Templates/SalmonWallpaperTemplate/jni/Android.mk
new file mode 100644
index 0000000..c1052c5
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/jni/Android.mk
@@ -0,0 +1,77 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+LPATH := $(call my-dir)
+
+ENGINE_PATH = $(SalmonEnginePathCygwin)
+
+BOOST_PATH = $(LibsPathCygwin)/boost_1_47_0
+
+OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0
+
+VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2
+
+SQUIRREL_PATH = $(LibsPathCygwin)/sqplus
+
+LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android
+
+ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni
+
+#====== ENGINE AND LIBS =====================
+
+include $(ENGINE_PATH)/Android_Salmon_Engine.mk
+
+#================= THE GAME =======================
+
+
+LOCAL_PATH:= $(LPATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := -DTARGET_ANDROID -DNOSOUND -DTARGET_SALMON -std=gnu++11 --std=c++11
+LOCAL_STATIC_LIBRARIES := boost
+LOCAL_STATIC_LIBRARIES += squirrel
+LOCAL_STATIC_LIBRARIES += png_lib
+LOCAL_STATIC_LIBRARIES += zip
+LOCAL_SHARED_LIBRARIES := SalmonEngine
+LOCAL_SHARED_LIBRARIES += gnustl_shared
+LOCAL_C_INCLUDES := $(ENGINE_PATH)
+LOCAL_C_INCLUDES += $(BOOST_PATH)
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
+LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
+LOCAL_C_INCLUDES += $(OGG_PATH)/include
+LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel
+LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib
+LOCAL_C_INCLUDES += $(LIBPNG_PATH)
+LOCAL_C_INCLUDES += $(ZIP_PATH)
+LOCAL_MODULE := SalmonWallpaper
+LOCAL_SRC_FILES := main_code.cpp
+LOCAL_SRC_FILES += android_api.cpp
+
+LOCAL_LDLIBS := -lGLESv2
+LOCAL_LDLIBS += -llog -Wl
+
+#debug
+#LOCAL_CFLAGS += -g -ggdb -O0
+#LOCAL_LDLIBS += -g -ggdb
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/Templates/SalmonWallpaperTemplate/jni/Application.mk b/Templates/SalmonWallpaperTemplate/jni/Application.mk
new file mode 100644
index 0000000..b096c4c
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/jni/Application.mk
@@ -0,0 +1,3 @@
+APP_STL := gnustl_shared
+APP_CPPFLAGS += -fexceptions
+APP_CPPFLAGS += -frtti
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/jni/android_api.cpp b/Templates/SalmonWallpaperTemplate/jni/android_api.cpp
new file mode 100644
index 0000000..444a4a1
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/jni/android_api.cpp
@@ -0,0 +1,119 @@
+#include "android_api.h"
+
+#include "main_code.h"
+#include "boost\thread.hpp"
+
+std::shared_ptr App(new TAndroidApplication);
+
+boost::mutex RenderMutex;
+
+float lastOffsetX = 0.5f;
+
+bool OffsetChanged = false;
+
+bool RedBkgPref = false;
+
+JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height)
+{
+
+
+ RenderMutex.lock();
+
+ try
+ {
+
+ if (App->IsInited())
+ {
+ App->OuterDeinit(); //Clean up what is left at previous launch (if applicable)
+ }
+
+ App->Width = width;
+ App->Height = height;
+
+ if (width > height)
+ {
+ App->OuterInit(width, height, 800.f, 480.f);
+ }
+ else
+ {
+ App->OuterInit(width, height, 480.f, 800.f);
+ }
+
+ Renderer->SetAlpha((lastOffsetX) * pi / 180.f);
+
+ App->Inited = true;
+ }
+ catch (...)
+ {
+ throw;
+ }
+
+ RenderMutex.unlock();
+}
+
+
+
+JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_Update(JNIEnv * env, jobject obj, long dt)
+{
+ RenderMutex.unlock();
+
+ try
+ {
+ if (App->IsInited())
+ {
+ App->OuterDraw();
+ App->OuterUpdate(dt);
+
+ if (OffsetChanged)
+ {
+ Renderer->SetAlpha((lastOffsetX) * pi / 180.f);
+ }
+ }
+ }
+ catch (...)
+ {
+ throw;
+ }
+
+ RenderMutex.unlock();
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, jfloat x, jfloat y)
+{
+ try
+ {
+ if (App->IsInited())
+ {
+
+ vec2 offset = vec2(x*Renderer->GetMatrixWidth()/static_cast(App->Width), y*Renderer->GetMatrixHeight()/static_cast(App->Height));
+
+ App->OuterOnMove(offset);
+
+ }
+ }
+ catch (...)
+ {
+ throw;
+ }
+}
+
+
+JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_SetOffset(JNIEnv * env, jobject obj, jfloat offsetX, jfloat offsetY)
+{
+
+ if (Renderer != NULL)
+ {
+ OffsetChanged = true;
+ lastOffsetX = offsetX;
+ }
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_SetOrientation(JNIEnv * env, jobject obj, int isLandscape)
+{
+}
+
+JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_SetRedBkgPref(JNIEnv * env, jobject obj, jboolean r)
+{
+ RedBkgPref = r;
+}
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/jni/android_api.h b/Templates/SalmonWallpaperTemplate/jni/android_api.h
new file mode 100644
index 0000000..b3ca6c5
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/jni/android_api.h
@@ -0,0 +1,31 @@
+#ifndef ANDROID_API_H_INCLUDED
+#define ANDROID_API_H_INCLUDED
+
+#include
+#include
+
+#include
+#include
+#include
+
+#include "boost/shared_ptr.hpp"
+
+#include "main_code.h"
+
+extern "C" {
+
+ JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height);
+
+ JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_Update(JNIEnv * env, jobject obj, long dt);
+
+ JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, jfloat x, jfloat y);
+
+ JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_SetOffset(JNIEnv * env, jobject obj, jfloat offsetX, jfloat offsetY);
+
+ JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_SetOrientation(JNIEnv * env, jobject obj, int isLandscape);
+
+ JNIEXPORT void JNICALL Java_fishrungames_wallpapertemplate_JniWrapper_SetRedBkgPref(JNIEnv * env, jobject obj, jboolean r);
+ };
+
+
+#endif
diff --git a/Templates/SalmonWallpaperTemplate/jni/main_code.cpp b/Templates/SalmonWallpaperTemplate/jni/main_code.cpp
new file mode 100644
index 0000000..c90e5ea
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/jni/main_code.cpp
@@ -0,0 +1,183 @@
+#include "main_code.h"
+#ifdef TARGET_ANDROID
+#include "android_api.h"
+#endif
+#include
+#include
+#include
+#include
+
+#include "include/Engine.h"
+
+#include "main_code.h"
+
+extern float lastOffsetX;
+
+#ifdef TARGET_WIN32
+bool RedBkgPref = true;
+
+#else
+extern bool RedBkgPref;
+
+#endif
+
+
+
+
+
+TAndroidApplication::TAndroidApplication()
+ : TApplication()
+ , Inited(false)
+ //, LiteModel(NULL)
+{
+}
+
+
+void TAndroidApplication::LoadModels()
+{
+
+ mat3 m(vec4(0,1*sin(pi/8 + pi/2),0,1*cos(pi/8 + pi/2)));
+ /*
+ LiteModel = new TLiteModel;
+ LiteModel->LoadModel("bt_box_yellow.lm1");
+ LiteModel->ScaleModel(10.0f);
+ LiteModel->RotateModel(m);
+ LiteModel->UpdateVBO();*/
+
+ FlexModel = ResourceManager->FlexModelManager.InstanciateModel("model.xml");
+
+ //FlexModel.MoveModel(vec3(1, -4, -4));
+ FlexModel.ScaleModel(1.5f);
+ FlexModel.RotateModel(m);
+ FlexModel.RefreshBuffer();
+}
+
+
+void TAndroidApplication::DrawAllScene()
+{
+ glClearColor(0.f, 0.f, 0.f, 1.0f);
+
+ glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+
+ Renderer->PushProjectionMatrix(1,1);
+ Renderer->LoadIdentity();
+
+ if (RedBkgPref)
+ {
+ glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["bkg_red.png"]);
+ }
+ else
+ {
+ glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["bkg_blue.png"]);
+ }
+
+ Renderer->DrawRect(vec2(0.0f, 0.f), vec2(1.f, 1.f), vec2(0.f, 0.f), vec2(1.f, 1.f));
+
+ Renderer->PopProjectionMatrix();
+
+ glClear(GL_DEPTH_BUFFER_BIT);
+
+ Renderer->SetGLCamView();
+
+ //LiteModel->DrawVBO();
+ FlexModel.Draw();
+
+}
+
+void TAndroidApplication::InnerInit()
+{
+ RenderMutex.lock();
+
+ CheckGlError();
+
+ glEnable(GL_BLEND);
+
+ *Console<<"Inner init go!\n";
+
+#ifdef TARGET_ANDROID
+ ResourceManager->PathToResources = "";
+#endif
+#ifdef TARGET_WIN32
+ ResourceManager->PathToResources = "../../assets/";
+#endif
+ ResourceManager->ShaderManager.AddShader("DefaultShader", "gui_transparent.vertex", "gui_transparent.fragment");
+ Renderer->PushShader("DefaultShader");
+
+ ResourceManager->TexList.AddTexture("bkg_red.png");
+ ResourceManager->TexList.AddTexture("bkg_blue.png");
+
+ CheckGlError();
+
+ Renderer->MovePhi(pi/32);
+
+ //ResourceManager->ModelManager.AddLiteModel("bt_box_yellow.lm1");
+
+
+ ResourceManager->TexList.AddTexture("bt_box_yellow.bmp");
+ ResourceManager->FlexModelManager.LoadModelFromXml("model.xml");
+
+
+ LoadModels();
+
+ if (Width > Height)
+ {
+ Renderer->MoveDist(30.f);
+ }
+
+ else
+ {
+ Renderer->MoveDist(45.f);
+ }
+
+ CheckGlError();
+
+ Renderer->SetPerspectiveFullScreenViewport();
+
+ *Console<<"Inner init end!\n";
+
+ RenderMutex.unlock();
+}
+
+
+
+void TAndroidApplication::InnerDeinit()
+{
+ RenderMutex.lock();
+ Inited = false;
+ /*
+ if (LiteModel != NULL)
+ {
+ LiteModel->FreeModel();
+ delete LiteModel;
+ LiteModel = NULL;
+ }*/
+
+ RenderMutex.unlock();
+}
+
+
+void TAndroidApplication::InnerDraw()
+{
+ RenderMutex.lock();
+
+ DrawAllScene();
+
+ RenderMutex.unlock();
+
+}
+
+
+void TAndroidApplication::InnerUpdate(cardinal dt)
+{
+
+}
+
+void TAndroidApplication::InnerOnMove(vec2 shift)
+{
+ Renderer->MoveAlpha(-pi*shift.v[0]*0.1f);
+}
+
+void TAndroidApplication::OnMouseDown(TMouseState& mouseState)
+{
+
+}
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/jni/main_code.h b/Templates/SalmonWallpaperTemplate/jni/main_code.h
new file mode 100644
index 0000000..d78d34c
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/jni/main_code.h
@@ -0,0 +1,67 @@
+#ifndef GL_CODE_H_INCLUDED
+#define GL_CODE_H_INCLUDED
+
+#ifdef TARGET_ANDROID
+//#include "android_api.h"
+#endif
+
+#include
+#include
+#include
+
+#ifdef TARGET_ANDROID
+#include
+#include
+#include
+#endif
+
+#include "boost/shared_ptr.hpp"
+#include "boost/thread/thread.hpp"
+#include "boost/asio.hpp"
+#include "boost/signal.hpp"
+#include "boost/assign.hpp"
+#include "boost/variant.hpp"
+#include "boost/function.hpp"
+#include "boost/bind.hpp"
+
+#include "include/Engine.h"
+
+using namespace SE;
+
+
+class TAndroidApplication : public TApplication
+{
+protected:
+
+ void LoadModels();
+
+public:
+ bool Inited;
+
+ boost::mutex RenderMutex;
+
+ //TLiteModel* LiteModel;
+ TFlexModel FlexModel;
+
+ TAndroidApplication();
+
+ virtual void InnerInit();
+
+ virtual void InnerDeinit();
+
+ virtual void InnerDraw();
+
+ virtual void InnerUpdate(cardinal dt);
+
+ virtual void InnerOnMove(vec2 shift);
+
+ virtual void OnMouseDown(TMouseState& mouseState);
+
+ bool IsInited() { return Inited; }
+
+ void DrawAllScene();
+
+};
+
+
+#endif
diff --git a/Templates/SalmonWallpaperTemplate/res/drawable-hdpi/icon.png b/Templates/SalmonWallpaperTemplate/res/drawable-hdpi/icon.png
new file mode 100644
index 0000000..0040da6
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/res/drawable-hdpi/icon.png differ
diff --git a/Templates/SalmonWallpaperTemplate/res/drawable-ldpi/icon.png b/Templates/SalmonWallpaperTemplate/res/drawable-ldpi/icon.png
new file mode 100644
index 0000000..629b3f7
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/res/drawable-ldpi/icon.png differ
diff --git a/Templates/SalmonWallpaperTemplate/res/drawable-mdpi/icon.png b/Templates/SalmonWallpaperTemplate/res/drawable-mdpi/icon.png
new file mode 100644
index 0000000..7856a23
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/res/drawable-mdpi/icon.png differ
diff --git a/Templates/SalmonWallpaperTemplate/res/drawable/notificon.png b/Templates/SalmonWallpaperTemplate/res/drawable/notificon.png
new file mode 100644
index 0000000..c4fe56f
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/res/drawable/notificon.png differ
diff --git a/Templates/SalmonWallpaperTemplate/res/drawable/thumb.jpg b/Templates/SalmonWallpaperTemplate/res/drawable/thumb.jpg
new file mode 100644
index 0000000..dd5852c
Binary files /dev/null and b/Templates/SalmonWallpaperTemplate/res/drawable/thumb.jpg differ
diff --git a/Templates/SalmonWallpaperTemplate/res/layout/main.xml b/Templates/SalmonWallpaperTemplate/res/layout/main.xml
new file mode 100644
index 0000000..4361cfe
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/res/layout/main.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Templates/SalmonWallpaperTemplate/res/layout/prefliste.xml b/Templates/SalmonWallpaperTemplate/res/layout/prefliste.xml
new file mode 100644
index 0000000..92fd874
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/res/layout/prefliste.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/Templates/SalmonWallpaperTemplate/res/values/strings.xml b/Templates/SalmonWallpaperTemplate/res/values/strings.xml
new file mode 100644
index 0000000..c9804ef
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/res/values/strings.xml
@@ -0,0 +1,27 @@
+
+
+ Salmon Engine Wallpaper Template
+ Salmon Engine Wallpaper Template
+ This template made by fishrungames.com
+
+ Background color
+ Red background
+ Blue background
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Templates/SalmonWallpaperTemplate/res/xml/preferences.xml b/Templates/SalmonWallpaperTemplate/res/xml/preferences.xml
new file mode 100644
index 0000000..84609c4
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/res/xml/preferences.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/Templates/SalmonWallpaperTemplate/res/xml/wallpaper.xml b/Templates/SalmonWallpaperTemplate/res/xml/wallpaper.xml
new file mode 100644
index 0000000..2d28206
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/res/xml/wallpaper.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/GLWallpaperService.java b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/GLWallpaperService.java
new file mode 100644
index 0000000..bfd7e0f
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/GLWallpaperService.java
@@ -0,0 +1,958 @@
+package fishrungames.wallpapertemplate;
+
+
+import fishrungames.wallpapertemplate.BaseConfigChooser.ComponentSizeChooser;
+import fishrungames.wallpapertemplate.BaseConfigChooser.SimpleEGLConfigChooser;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+
+import javax.microedition.khronos.egl.EGL10;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.egl.EGLContext;
+import javax.microedition.khronos.egl.EGLDisplay;
+import javax.microedition.khronos.egl.EGLSurface;
+
+
+import android.service.wallpaper.WallpaperService;
+import android.util.Log;
+import android.view.SurfaceHolder;
+
+
+public class GLWallpaperService extends WallpaperService {
+ private static final String TAG = "GLWallpaperService";
+
+ @Override
+ public Engine onCreateEngine() {
+ return new GLEngine();
+ }
+
+ public class GLEngine extends Engine {
+ public final static int RENDERMODE_WHEN_DIRTY = 0;
+ public final static int RENDERMODE_CONTINUOUSLY = 1;
+
+ private GLThread mGLThread;
+ private EGLConfigChooser mEGLConfigChooser;
+ private EGLContextFactory mEGLContextFactory;
+ private EGLWindowSurfaceFactory mEGLWindowSurfaceFactory;
+
+ private int mDebugFlags;
+
+ public GLEngine() {
+ super();
+ }
+
+ @Override
+ public void onVisibilityChanged(boolean visible) {
+ if (visible) {
+ onResume();
+ } else {
+ onPause();
+ }
+ super.onVisibilityChanged(visible);
+ }
+
+ @Override
+ public void onCreate(SurfaceHolder surfaceHolder) {
+ super.onCreate(surfaceHolder);
+ // Log.d(TAG, "GLEngine.onCreate()");
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ // Log.d(TAG, "GLEngine.onDestroy()");
+ mGLThread.requestExitAndWait();
+ }
+
+ @Override
+ public void onSurfaceChanged(SurfaceHolder holder, int format,
+ int width, int height) {
+ // Log.d(TAG, "onSurfaceChanged()");
+
+
+
+ mGLThread.onWindowResize(width, height);
+
+ super.onSurfaceChanged(holder, format, width, height);
+ }
+
+ @Override
+ public void onSurfaceCreated(SurfaceHolder holder) {
+ Log.d(TAG, "onSurfaceCreated()");
+ mGLThread.surfaceCreated(holder);
+ super.onSurfaceCreated(holder);
+ }
+
+ @Override
+ public void onSurfaceDestroyed(SurfaceHolder holder) {
+ Log.d(TAG, "onSurfaceDestroyed()");
+ mGLThread.surfaceDestroyed();
+ super.onSurfaceDestroyed(holder);
+ }
+
+
+ public void setDebugFlags(int debugFlags) {
+ mDebugFlags = debugFlags;
+ }
+
+ public int getDebugFlags() {
+ return mDebugFlags;
+ }
+
+ public void setRenderer() {
+ checkRenderThreadState();
+ if (mEGLConfigChooser == null) {
+ mEGLConfigChooser = new SimpleEGLConfigChooser(true);
+ }
+ if (mEGLContextFactory == null) {
+ //mEGLContextFactory = new DefaultContextFactory();
+ mEGLContextFactory = new ES20ContextFactory();
+ }
+ if (mEGLWindowSurfaceFactory == null) {
+ mEGLWindowSurfaceFactory = new DefaultWindowSurfaceFactory();
+ }
+ mGLThread = new GLThread(mEGLConfigChooser,
+ mEGLContextFactory, mEGLWindowSurfaceFactory);
+ mGLThread.start();
+ }
+
+ public void setEGLContextFactory(EGLContextFactory factory) {
+ checkRenderThreadState();
+ mEGLContextFactory = factory;
+ }
+
+ public void setEGLWindowSurfaceFactory(EGLWindowSurfaceFactory factory) {
+ checkRenderThreadState();
+ mEGLWindowSurfaceFactory = factory;
+ }
+
+ public void setEGLConfigChooser(EGLConfigChooser configChooser) {
+ checkRenderThreadState();
+ mEGLConfigChooser = configChooser;
+ }
+
+ public void setEGLConfigChooser(boolean needDepth) {
+ setEGLConfigChooser(new SimpleEGLConfigChooser(needDepth));
+ }
+
+ public void setEGLConfigChooser(int redSize, int greenSize,
+ int blueSize, int alphaSize, int depthSize, int stencilSize) {
+ setEGLConfigChooser(new ComponentSizeChooser(redSize, greenSize,
+ blueSize, alphaSize, depthSize, stencilSize));
+ }
+
+ public void setRenderMode(int renderMode) {
+ mGLThread.setRenderMode(renderMode);
+ }
+
+ public int getRenderMode() {
+ return mGLThread.getRenderMode();
+ }
+
+ public void requestRender() {
+ mGLThread.requestRender();
+ }
+
+ public void onPause() {
+ mGLThread.onPause();
+ }
+
+ public void onResume() {
+ mGLThread.onResume();
+ }
+
+ public void queueEvent(Runnable r) {
+ mGLThread.queueEvent(r);
+ }
+
+ private void checkRenderThreadState() {
+ if (mGLThread != null) {
+ throw new IllegalStateException(
+ "setRenderer has already been called for this instance.");
+ }
+ }
+ }
+}
+
+
+// ----------------------------------------------------------------------
+
+/**
+ * An interface for customizing the eglCreateContext and eglDestroyContext
+ * calls.
+ *
+ *
+ * This interface must be implemented by clients wishing to call
+ * {@link GLWallpaperService#setEGLContextFactory(EGLContextFactory)}
+ */
+interface EGLContextFactory {
+ EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig);
+
+ void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context);
+}
+
+class DefaultContextFactory implements EGLContextFactory {
+
+ public EGLContext createContext(EGL10 egl, EGLDisplay display,
+ EGLConfig config) {
+ return egl
+ .eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, null);
+ }
+
+ public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) {
+ egl.eglDestroyContext(display, context);
+ }
+}
+
+
+class ES20ContextFactory implements EGLContextFactory {
+
+ private static int EGL_CONTEXT_CLIENT_VERSION = 0x3098;
+
+ public EGLContext createContext(EGL10 egl, EGLDisplay display,
+ EGLConfig config) {
+
+
+ int[] attrib_list =
+ { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE };
+
+ return egl
+ .eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, attrib_list);
+ }
+
+ public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) {
+ egl.eglDestroyContext(display, context);
+ }
+}
+
+/**
+ * An interface for customizing the eglCreateWindowSurface and eglDestroySurface
+ * calls.
+ *
+ *
+ * This interface must be implemented by clients wishing to call
+ * {@link GLWallpaperService#setEGLWindowSurfaceFactory(EGLWindowSurfaceFactory)}
+ */
+interface EGLWindowSurfaceFactory {
+ EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display,
+ EGLConfig config, Object nativeWindow);
+
+ void destroySurface(EGL10 egl, EGLDisplay display, EGLSurface surface);
+}
+
+class DefaultWindowSurfaceFactory implements EGLWindowSurfaceFactory {
+
+ public EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display,
+ EGLConfig config, Object nativeWindow) {
+ // this is a bit of a hack to work around Droid init problems - if you
+ // don't have this, it'll get hung up on orientation changes
+ EGLSurface eglSurface = null;
+ while (eglSurface == null) {
+ try {
+ eglSurface = egl.eglCreateWindowSurface(display, config,
+ nativeWindow, null);
+ } catch (Throwable t) {
+ } finally {
+ if (eglSurface == null) {
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException t) {
+ }
+ }
+ }
+ }
+ return eglSurface;
+ }
+
+ public void destroySurface(EGL10 egl, EGLDisplay display, EGLSurface surface) {
+ egl.eglDestroySurface(display, surface);
+ }
+}
+
+
+class EglHelper {
+
+ private EGL10 mEgl;
+ private EGLDisplay mEglDisplay;
+ private EGLSurface mEglSurface;
+ private EGLContext mEglContext;
+ EGLConfig mEglConfig;
+
+ private EGLConfigChooser mEGLConfigChooser;
+ private EGLContextFactory mEGLContextFactory;
+ private EGLWindowSurfaceFactory mEGLWindowSurfaceFactory;
+
+
+ public EglHelper(EGLConfigChooser chooser,
+ EGLContextFactory contextFactory,
+ EGLWindowSurfaceFactory surfaceFactory) {
+ this.mEGLConfigChooser = chooser;
+ this.mEGLContextFactory = contextFactory;
+ this.mEGLWindowSurfaceFactory = surfaceFactory;
+
+ }
+
+ /**
+ * Initialize EGL for a given configuration spec.
+ *
+ * @param configSpec
+ */
+ public void start() {
+ String instanceId = "";
+ Log.d("EglHelper" + instanceId, "start()");
+ if (mEgl == null) {
+ Log.d("EglHelper" + instanceId, "getting new EGL");
+ /*
+ * Get an EGL instance
+ */
+ mEgl = (EGL10) EGLContext.getEGL();
+ } else {
+ Log.d("EglHelper" + instanceId, "reusing EGL");
+ }
+
+ if (mEglDisplay == null) {
+ Log.d("EglHelper" + instanceId, "getting new display");
+ /*
+ * Get to the default display.
+ */
+ mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
+ } else {
+ Log.d("EglHelper" + instanceId, "reusing display");
+ }
+
+ if (mEglConfig == null) {
+ Log.d("EglHelper" + instanceId, "getting new config");
+ /*
+ * We can now initialize EGL for that display
+ */
+ int[] version = new int[2];
+ mEgl.eglInitialize(mEglDisplay, version);
+ mEglConfig = mEGLConfigChooser.chooseConfig(mEgl, mEglDisplay);
+ } else {
+ Log.d("EglHelper" + instanceId, "reusing config");
+ }
+
+ if (mEglContext == null) {
+ Log.d("EglHelper" + instanceId, "creating new context");
+ /*
+ * Create an OpenGL ES context. This must be done only once, an
+ * OpenGL context is a somewhat heavy object.
+ */
+ mEglContext = mEGLContextFactory.createContext(mEgl, mEglDisplay,
+ mEglConfig);
+ if (mEglContext == null || mEglContext == EGL10.EGL_NO_CONTEXT) {
+ throw new RuntimeException("createContext failed");
+ }
+ } else {
+ Log.d("EglHelper" + instanceId, "reusing context");
+ }
+
+ mEglSurface = null;
+ }
+
+ /*
+ * React to the creation of a new surface by creating and returning an
+ * OpenGL interface that renders to that surface.
+ */
+
+
+ public void createSurface(SurfaceHolder holder) {
+
+ if (mEglSurface != null && mEglSurface != EGL10.EGL_NO_SURFACE) {
+
+
+ mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE,
+ EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
+ mEGLWindowSurfaceFactory.destroySurface(mEgl, mEglDisplay,
+ mEglSurface);
+ }
+
+
+ mEglSurface = mEGLWindowSurfaceFactory.createWindowSurface(mEgl,
+ mEglDisplay, mEglConfig, holder);
+
+ if (mEglSurface == null || mEglSurface == EGL10.EGL_NO_SURFACE) {
+ throw new RuntimeException("createWindowSurface failed");
+ }
+
+
+ if (!mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface,
+ mEglContext)) {
+ //throw new RuntimeException("eglMakeCurrent failed.");
+ }
+
+
+ }
+
+ /**
+ * Display the current render surface.
+ *
+ * @return false if the context has been lost.
+ */
+ public boolean swap() {
+ try {
+ mEgl.eglSwapBuffers(mEglDisplay, mEglSurface);
+ } catch (Exception e) {
+ return false;
+ }
+
+ return true;
+
+
+ /*
+ * Always check for EGL_CONTEXT_LOST, which means the context and all
+ * associated data were lost (For instance because the device went to
+ * sleep). We need to sleep until we get a new surface.
+ */
+
+ }
+
+ public void destroySurface() {
+ if (mEglSurface != null && mEglSurface != EGL10.EGL_NO_SURFACE) {
+ mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE,
+ EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
+ mEGLWindowSurfaceFactory.destroySurface(mEgl, mEglDisplay,
+ mEglSurface);
+ mEglSurface = null;
+ }
+ }
+
+ public void finish() {
+ if (mEglContext != null) {
+ mEGLContextFactory.destroyContext(mEgl, mEglDisplay, mEglContext);
+ mEglContext = null;
+ }
+ if (mEglDisplay != null) {
+ mEgl.eglTerminate(mEglDisplay);
+ mEglDisplay = null;
+ }
+ }
+}
+
+class GLThread extends Thread {
+ private final static boolean LOG_THREADS = false;
+ public final static int DEBUG_CHECK_GL_ERROR = 1;
+ public final static int DEBUG_LOG_GL_CALLS = 2;
+
+ private final GLThreadManager sGLThreadManager = new GLThreadManager();
+ private GLThread mEglOwner;
+
+ private EGLConfigChooser mEGLConfigChooser;
+ private EGLContextFactory mEGLContextFactory;
+ private EGLWindowSurfaceFactory mEGLWindowSurfaceFactory;
+
+
+ public SurfaceHolder mHolder;
+ private boolean mSizeChanged = true;
+
+ // Once the thread is started, all accesses to the following member
+ // variables are protected by the sGLThreadManager monitor
+ public boolean mDone;
+ private boolean mPaused;
+ private boolean mHasSurface;
+ private boolean mWaitingForSurface;
+ private boolean mHaveEgl;
+ private int mWidth;
+ private int mHeight;
+ private int mRenderMode;
+ private boolean mRequestRender;
+ private boolean mEventsWaiting;
+ // End of member variables protected by the sGLThreadManager monitor.
+
+ //private GLWallpaperService.Renderer mRenderer;
+
+ private ArrayList mEventQueue = new ArrayList();
+ private EglHelper mEglHelper;
+
+
+ static long lastTimeStamp;
+ static boolean gameIsInited = false;
+
+ GLThread(EGLConfigChooser chooser,
+ EGLContextFactory contextFactory,
+ EGLWindowSurfaceFactory surfaceFactory) {
+ super();
+ mDone = false;
+ mWidth = 0;
+ mHeight = 0;
+ mRequestRender = true;
+ mRenderMode = GLWallpaperService.GLEngine.RENDERMODE_CONTINUOUSLY;
+
+ this.mEGLConfigChooser = chooser;
+ this.mEGLContextFactory = contextFactory;
+ this.mEGLWindowSurfaceFactory = surfaceFactory;
+
+ Calendar c = Calendar.getInstance();
+ lastTimeStamp = c.getTimeInMillis();
+ gameIsInited = true;
+ }
+
+ @Override
+ public void run() {
+ setName("GLThread " + getId());
+ if (LOG_THREADS) {
+ Log.i("GLThread", "starting tid=" + getId());
+ }
+
+ try {
+ guardedRun();
+ } catch (InterruptedException e) {
+ // fall thru and exit normally
+ } finally {
+ sGLThreadManager.threadExiting(this);
+ }
+ }
+
+ /*
+ * This private method should only be called inside a
+ * synchronized(sGLThreadManager) block.
+ */
+ private void stopEglLocked() {
+ if (mHaveEgl) {
+ mHaveEgl = false;
+ mEglHelper.destroySurface();
+ sGLThreadManager.releaseEglSurface(this);
+ }
+ }
+
+ private void guardedRun() throws InterruptedException {
+ mEglHelper = new EglHelper(mEGLConfigChooser, mEGLContextFactory,
+ mEGLWindowSurfaceFactory/*, mGLWrapper*/);
+ try {
+
+ boolean tellRendererSurfaceCreated = true;
+ boolean tellRendererSurfaceChanged = true;
+
+ /*
+ * This is our main activity thread's loop, we go until asked to
+ * quit.
+ */
+ while (!isDone()) {
+ /*
+ * Update the asynchronous state (window size)
+ */
+ int w = 0;
+ int h = 0;
+ boolean changed = false;
+ boolean needStart = false;
+ boolean eventsWaiting = false;
+
+ synchronized (sGLThreadManager) {
+ while (true) {
+ // Manage acquiring and releasing the SurfaceView
+ // surface and the EGL surface.
+ if (mPaused) {
+ stopEglLocked();
+ }
+ if (!mHasSurface) {
+ if (!mWaitingForSurface) {
+ stopEglLocked();
+ mWaitingForSurface = true;
+ sGLThreadManager.notifyAll();
+ }
+ } else {
+ if (!mHaveEgl) {
+ if (sGLThreadManager.tryAcquireEglSurface(this)) {
+ mHaveEgl = true;
+ mEglHelper.start();
+ mRequestRender = true;
+ needStart = true;
+ }
+ }
+ }
+
+ // Check if we need to wait. If not, update any state
+ // that needs to be updated, copy any state that
+ // needs to be copied, and use "break" to exit the
+ // wait loop.
+
+ if (mDone) {
+ return;
+ }
+
+ if (mEventsWaiting) {
+ eventsWaiting = true;
+ mEventsWaiting = false;
+ break;
+ }
+
+ if ((!mPaused)
+ && mHasSurface
+ && mHaveEgl
+ && (mWidth > 0)
+ && (mHeight > 0)
+ && (mRequestRender || (mRenderMode == GLWallpaperService.GLEngine.RENDERMODE_CONTINUOUSLY))) {
+ changed = mSizeChanged;
+ w = mWidth;
+ h = mHeight;
+ mSizeChanged = false;
+ mRequestRender = false;
+ if (mHasSurface && mWaitingForSurface) {
+ changed = true;
+ mWaitingForSurface = false;
+ sGLThreadManager.notifyAll();
+ }
+ break;
+ }
+
+
+
+ // By design, this is the only place where we wait().
+
+ if (LOG_THREADS) {
+ Log.i("GLThread", "waiting tid=" + getId());
+ }
+ sGLThreadManager.wait();
+ }
+ } // end of synchronized(sGLThreadManager)
+
+ /*
+ * Handle queued events
+ */
+ if (eventsWaiting) {
+ Runnable r;
+ while ((r = getEvent()) != null) {
+ r.run();
+ if (isDone()) {
+ return;
+ }
+ }
+ // Go back and see if we need to wait to render.
+ continue;
+ }
+
+ if (needStart) {
+ tellRendererSurfaceCreated = true;
+ changed = true;
+ }
+ if (changed) {
+ mEglHelper.createSurface(mHolder);
+ tellRendererSurfaceChanged = true;
+ }
+ if (tellRendererSurfaceCreated) {
+
+ tellRendererSurfaceCreated = false;
+ }
+
+ if (tellRendererSurfaceChanged) {
+
+
+ //Xperimental -- VLAD KHOREV
+ JniWrapper.Init(w, h);
+
+ tellRendererSurfaceChanged = false;
+ }
+
+
+ if ((w > 0) && (h > 0)) {
+ /* draw a frame here */
+
+ if (gameIsInited)
+ {
+ Calendar c = Calendar.getInstance();
+
+ long currentTimeStamp = c.getTimeInMillis();
+
+ JniWrapper.Update(currentTimeStamp - lastTimeStamp);
+
+ lastTimeStamp = currentTimeStamp;
+
+ }
+
+ /*
+ * Once we're done with GL, we need to call swapBuffers() to
+ * instruct the system to display the rendered frame
+ */
+ mEglHelper.swap();
+ }
+ }
+ } finally {
+ /*
+ * clean-up everything...
+ */
+ synchronized (sGLThreadManager) {
+ stopEglLocked();
+ mEglHelper.finish();
+ }
+ }
+ }
+
+ private boolean isDone() {
+ synchronized (sGLThreadManager) {
+ return mDone;
+ }
+ }
+
+ public void setRenderMode(int renderMode) {
+ if (!((GLWallpaperService.GLEngine.RENDERMODE_WHEN_DIRTY <= renderMode) && (renderMode <= GLWallpaperService.GLEngine.RENDERMODE_CONTINUOUSLY))) {
+ throw new IllegalArgumentException("renderMode");
+ }
+ synchronized (sGLThreadManager) {
+ mRenderMode = renderMode;
+ if (renderMode == GLWallpaperService.GLEngine.RENDERMODE_CONTINUOUSLY) {
+ sGLThreadManager.notifyAll();
+ }
+ }
+ }
+
+ public int getRenderMode() {
+ synchronized (sGLThreadManager) {
+ return mRenderMode;
+ }
+ }
+
+ public void requestRender() {
+ synchronized (sGLThreadManager) {
+ mRequestRender = true;
+ sGLThreadManager.notifyAll();
+ }
+ }
+
+ public void surfaceCreated(SurfaceHolder holder) {
+ mHolder = holder;
+ synchronized (sGLThreadManager) {
+ if (LOG_THREADS) {
+ Log.i("GLThread", "surfaceCreated tid=" + getId());
+ }
+ mHasSurface = true;
+ sGLThreadManager.notifyAll();
+ }
+ }
+
+ public void surfaceDestroyed() {
+ synchronized (sGLThreadManager) {
+ if (LOG_THREADS) {
+ Log.i("GLThread", "surfaceDestroyed tid=" + getId());
+ }
+ mHasSurface = false;
+ sGLThreadManager.notifyAll();
+ while (!mWaitingForSurface && isAlive() && !mDone) {
+ try {
+ sGLThreadManager.wait();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+ }
+
+ public void onPause() {
+ synchronized (sGLThreadManager) {
+ mPaused = true;
+ sGLThreadManager.notifyAll();
+ }
+ }
+
+ public void onResume() {
+ synchronized (sGLThreadManager) {
+ mPaused = false;
+ mRequestRender = true;
+ sGLThreadManager.notifyAll();
+ }
+ }
+
+ public void onWindowResize(int w, int h) {
+ synchronized (sGLThreadManager) {
+ mWidth = w;
+ mHeight = h;
+ mSizeChanged = true;
+ sGLThreadManager.notifyAll();
+ }
+ }
+
+ public void requestExitAndWait() {
+ // don't call this from GLThread thread or it is a guaranteed
+ // deadlock!
+ synchronized (sGLThreadManager) {
+ mDone = true;
+ sGLThreadManager.notifyAll();
+ }
+ try {
+ join();
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ /**
+ * Queue an "event" to be run on the GL rendering thread.
+ *
+ * @param r
+ * the runnable to be run on the GL rendering thread.
+ */
+ public void queueEvent(Runnable r) {
+ synchronized (this) {
+ mEventQueue.add(r);
+ synchronized (sGLThreadManager) {
+ mEventsWaiting = true;
+ sGLThreadManager.notifyAll();
+ }
+ }
+ }
+
+ private Runnable getEvent() {
+ synchronized (this) {
+ if (mEventQueue.size() > 0) {
+ return (Runnable) mEventQueue.remove(0);
+ }
+
+ }
+ return null;
+ }
+
+ private class GLThreadManager {
+
+ public synchronized void threadExiting(GLThread thread) {
+ if (LOG_THREADS) {
+ Log.i("GLThread", "exiting tid=" + thread.getId());
+ }
+ thread.mDone = true;
+ if (mEglOwner == thread) {
+ mEglOwner = null;
+ }
+ notifyAll();
+ }
+
+ /*
+ * Tries once to acquire the right to use an EGL surface. Does not
+ * block.
+ *
+ * @return true if the right to use an EGL surface was acquired.
+ */
+ public synchronized boolean tryAcquireEglSurface(GLThread thread) {
+ if (mEglOwner == thread || mEglOwner == null) {
+ mEglOwner = thread;
+ notifyAll();
+ return true;
+ }
+ return false;
+ }
+
+ public synchronized void releaseEglSurface(GLThread thread) {
+ if (mEglOwner == thread) {
+ mEglOwner = null;
+ }
+ notifyAll();
+ }
+ }
+}
+
+interface EGLConfigChooser {
+ EGLConfig chooseConfig(EGL10 egl, EGLDisplay display);
+}
+
+abstract class BaseConfigChooser implements EGLConfigChooser {
+ public BaseConfigChooser(int[] configSpec) {
+ mConfigSpec = configSpec;
+ }
+
+ public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
+ int[] num_config = new int[1];
+ egl.eglChooseConfig(display, mConfigSpec, null, 0, num_config);
+
+ int numConfigs = num_config[0];
+
+ if (numConfigs <= 0) {
+ throw new IllegalArgumentException("No configs match configSpec");
+ }
+
+ EGLConfig[] configs = new EGLConfig[numConfigs];
+ egl.eglChooseConfig(display, mConfigSpec, configs, numConfigs,
+ num_config);
+ EGLConfig config = chooseConfig(egl, display, configs);
+ if (config == null) {
+ throw new IllegalArgumentException("No config chosen");
+ }
+ return config;
+ }
+
+ abstract EGLConfig chooseConfig(EGL10 egl, EGLDisplay display,
+ EGLConfig[] configs);
+
+ protected int[] mConfigSpec;
+
+ public static class ComponentSizeChooser extends BaseConfigChooser {
+ public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
+ int alphaSize, int depthSize, int stencilSize) {
+ super(new int[] { EGL10.EGL_RED_SIZE, redSize,
+ EGL10.EGL_GREEN_SIZE, greenSize, EGL10.EGL_BLUE_SIZE,
+ blueSize, EGL10.EGL_ALPHA_SIZE, alphaSize,
+ EGL10.EGL_DEPTH_SIZE, depthSize, EGL10.EGL_STENCIL_SIZE,
+ stencilSize, EGL10.EGL_NONE });
+ mValue = new int[1];
+ mRedSize = redSize;
+ mGreenSize = greenSize;
+ mBlueSize = blueSize;
+ mAlphaSize = alphaSize;
+ mDepthSize = depthSize;
+ mStencilSize = stencilSize;
+ }
+
+ @Override
+ public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display,
+ EGLConfig[] configs) {
+ EGLConfig closestConfig = null;
+ int closestDistance = 1000;
+ for (EGLConfig config : configs) {
+ int d = findConfigAttrib(egl, display, config,
+ EGL10.EGL_DEPTH_SIZE, 0);
+ int s = findConfigAttrib(egl, display, config,
+ EGL10.EGL_STENCIL_SIZE, 0);
+ if (d >= mDepthSize && s >= mStencilSize) {
+ int r = findConfigAttrib(egl, display, config,
+ EGL10.EGL_RED_SIZE, 0);
+ int g = findConfigAttrib(egl, display, config,
+ EGL10.EGL_GREEN_SIZE, 0);
+ int b = findConfigAttrib(egl, display, config,
+ EGL10.EGL_BLUE_SIZE, 0);
+ int a = findConfigAttrib(egl, display, config,
+ EGL10.EGL_ALPHA_SIZE, 0);
+ int distance = Math.abs(r - mRedSize)
+ + Math.abs(g - mGreenSize)
+ + Math.abs(b - mBlueSize)
+ + Math.abs(a - mAlphaSize);
+ if (distance < closestDistance) {
+ closestDistance = distance;
+ closestConfig = config;
+ }
+ }
+ }
+ return closestConfig;
+ }
+
+ private int findConfigAttrib(EGL10 egl, EGLDisplay display,
+ EGLConfig config, int attribute, int defaultValue) {
+
+ if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) {
+ return mValue[0];
+ }
+ return defaultValue;
+ }
+
+ private int[] mValue;
+ // Subclasses can adjust these values:
+ protected int mRedSize;
+ protected int mGreenSize;
+ protected int mBlueSize;
+ protected int mAlphaSize;
+ protected int mDepthSize;
+ protected int mStencilSize;
+ }
+
+ /**
+ * This class will choose a supported surface as close to RGB565 as
+ * possible, with or without a depth buffer.
+ *
+ */
+ public static class SimpleEGLConfigChooser extends ComponentSizeChooser {
+ public SimpleEGLConfigChooser(boolean withDepthBuffer) {
+ super(4, 4, 4, 0, withDepthBuffer ? 16 : 0, 0);
+ // Adjust target values. This way we'll accept a 4444 or
+ // 555 buffer if there's no 565 buffer available.
+ mRedSize = 5;
+ mGreenSize = 6;
+ mBlueSize = 5;
+ }
+ }
+}
diff --git a/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/JniWrapper.java b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/JniWrapper.java
new file mode 100644
index 0000000..061f9fa
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/JniWrapper.java
@@ -0,0 +1,29 @@
+package fishrungames.wallpapertemplate;
+
+public class JniWrapper
+{
+
+ static
+ {
+ System.loadLibrary("SalmonWallpaper");
+ }
+
+ public static void LoadLibrary()
+ {
+ //To force loading libraries
+ }
+
+ public static native void SetRedBkgPref(boolean r);
+
+
+ public static native void Init(int width, int height);
+
+ public static native void Update(long dt);
+
+ public static native void OnTapMove(float x, float y);
+
+ public static native void SetOffset(float offsetX, float offsetY);
+
+ public static native void SetOrientation(int isLandscape);
+
+}
diff --git a/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/MainWallpaperService.java b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/MainWallpaperService.java
new file mode 100644
index 0000000..d7f527d
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/MainWallpaperService.java
@@ -0,0 +1,227 @@
+package fishrungames.wallpapertemplate;
+
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+
+import android.net.ConnectivityManager;
+
+import android.os.Handler;
+import android.preference.PreferenceManager;
+
+import android.view.MotionEvent;
+import android.view.SurfaceHolder;
+
+//import com.seb.SLWP.SLWP.GlEngine.DownloadTask;
+
+import fishrungames.engine.FileWrapper;
+
+public class MainWallpaperService extends GLWallpaperService implements
+ OnSharedPreferenceChangeListener {
+ /*
+ * (non-Javadoc)
+ *
+ * @see android.app.Service#onLowMemory()
+ */
+ static
+ {
+ FileWrapper.LoadSalmonEngineLibrary();
+ JniWrapper.LoadLibrary();
+ }
+
+
+ public static final long SLEEPTIME = 1000 * 60 * 30; // 30 minutes
+ private GlEngine mGle;
+
+ public static Context mContext;
+ public static boolean ShowClouds;
+ public static boolean TouchRot;
+
+ public static int Bg;
+ public static boolean Usebg;
+ public static int Tex;
+
+ static long Synctime;
+
+ public boolean Slidedir;
+ public boolean Slideplanet;
+ public boolean Syncrot;
+ public static boolean Randomtex = true;
+ public static boolean visible = false;
+
+ public static boolean useCropper = true;
+ public static int Cropaspect;
+ public static boolean loading = false;
+
+ public static final Handler mHandler = new Handler();
+ public static final int RNDMAP = -1;
+ public static boolean destroyed;
+ public static String bgfile;
+ public ConnectivityManager cm;
+ public boolean needresume;
+ public boolean fstart;
+ public static String[] randlist;
+ public int curtexidx = -99;
+
+ static final String ACTION_FOREGROUND = "fishrungames.wallpapertemplate.FOREGROUND";
+ static final String ACTION_BACKGROUND = "fishrungames.wallpapertemplate.BACKGROUND";
+
+
+
+ @Override
+ public void onCreate() {
+ // TODO Auto-generated method stub
+ super.onCreate();
+
+
+ PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
+
+ FileWrapper.SetActivityInstance(this);
+ FileWrapper.SetupEnviroment();
+
+ String apkFilePath = null;
+ ApplicationInfo appInfo = null;
+ PackageManager packMgmr = this.getPackageManager();
+ try {
+ appInfo = packMgmr.getApplicationInfo("fishrungames.wallpapertemplate", 0);
+ } catch (NameNotFoundException e) {
+
+
+
+ e.printStackTrace();
+ throw new RuntimeException("Unable to locate assets, aborting...");
+ }
+ apkFilePath = appInfo.sourceDir;
+
+ FileWrapper.SetupApkFilePath(apkFilePath);
+
+ Init();
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // handleCommand(intent);
+ // We want this service to continue running until it is explicitly
+ // stopped, so return sticky.
+ return START_STICKY;
+ }
+
+ private void Init() {
+ try {
+ mContext = this;
+ cm = (ConnectivityManager) mContext
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ // TODO Auto-generated method stub
+ super.onDestroy();
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+ String key) {
+
+ if (key.compareToIgnoreCase("RedBackground") == 0) {
+
+ JniWrapper.SetRedBkgPref(sharedPreferences.getBoolean("RedBackground", false));
+
+ }
+ }
+
+ @Override
+ public Engine onCreateEngine() {
+ if (mGle != null) {
+ mGle = null;
+ }
+ try {
+
+ mGle = new GlEngine();
+
+ } catch (Exception e) {
+ return null;
+ }
+
+ return mGle;
+ }
+
+ class GlEngine extends GLEngine {
+
+ public Handler mHandler = new Handler();
+
+ long NOW;
+
+ @Override
+ public void onCreate(SurfaceHolder surfaceHolder) {
+ super.onCreate(surfaceHolder);
+ try {
+ this.setTouchEventsEnabled(true);
+ fstart = true;
+ setRenderer();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onTouchEvent(MotionEvent e) {
+
+ return;
+ }
+
+ @Override
+ public void onOffsetsChanged(float xOffset, float yOffset,
+ float xOffsetStep, float yOffsetStep, int xPixelOffset,
+ int yPixelOffset) {
+
+ super.onOffsetsChanged(xOffset, yOffset, xOffsetStep, yOffsetStep,
+ xPixelOffset, yPixelOffset);
+
+ JniWrapper.SetOffset(xPixelOffset*xOffsetStep, yPixelOffset*yOffsetStep);
+
+ }
+
+ @Override
+ public void onVisibilityChanged(boolean visible) {
+ // TODO Auto-generated method stub
+ super.onVisibilityChanged(visible);
+ MainWallpaperService.visible = visible;
+ if (visible) {
+
+ } else {
+
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ }
+
+ @Override
+ public void onResume() {
+
+ super.onResume();
+ }
+
+ @Override
+ public void onSurfaceChanged(SurfaceHolder holder, int format,
+ int width, int height) {
+ // TODO Auto-generated method stub
+ super.onSurfaceChanged(holder, format, width, height);
+ fstart = true;
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/Prefs.java b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/Prefs.java
new file mode 100644
index 0000000..18863b9
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/src/fishrungames/wallpapertemplate/Prefs.java
@@ -0,0 +1,63 @@
+package fishrungames.wallpapertemplate;
+
+import fishrungames.wallpapertemplate.JniWrapper;
+import fishrungames.wallpapertemplate.R;
+
+
+import android.content.Intent;
+
+import android.net.Uri;
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+
+import android.preference.Preference.OnPreferenceChangeListener;
+
+
+public class Prefs extends PreferenceActivity implements
+ OnPreferenceChangeListener {
+
+
+ private CheckBoxPreference redBkgPref;
+
+
+ public static Uri currImageURI;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.prefliste);
+ addPreferencesFromResource(R.xml.preferences);
+
+ redBkgPref = (CheckBoxPreference)this.getPreferenceManager().findPreference("RedBackground");
+
+ if (redBkgPref.getKey().compareToIgnoreCase("RedBackground") == 0) {
+ if (!redBkgPref.isChecked())
+ {
+ JniWrapper.SetRedBkgPref(false);
+ }
+ else
+ {
+ JniWrapper.SetRedBkgPref(true);
+ }
+ }
+
+ }
+
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+
+ return true;
+
+ }
+
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+
+ }
+
+}
diff --git a/Templates/SalmonWallpaperTemplate/windows/Template.sln b/Templates/SalmonWallpaperTemplate/windows/Template.sln
new file mode 100644
index 0000000..5b553f6
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/windows/Template.sln
@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Template.vcxproj", "{0080A3E1-DFBF-4557-B198-E6D5D7724393}"
+ ProjectSection(ProjectDependencies) = postProject
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20} = {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Salmon Engine", "..\..\..\Engine\Salmon Engine\Salmon Engine.vcxproj", "{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_nosound|Win32 = Debug_nosound|Win32
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.Build.0 = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.Build.0 = Debug|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.ActiveCfg = Release|Win32
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.Build.0 = Release|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.Build.0 = Debug|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.ActiveCfg = Release|Win32
+ {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Templates/SalmonWallpaperTemplate/windows/Template/Template.vcxproj b/Templates/SalmonWallpaperTemplate/windows/Template/Template.vcxproj
new file mode 100644
index 0000000..10c6f70
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/windows/Template/Template.vcxproj
@@ -0,0 +1,88 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {0080A3E1-DFBF-4557-B198-E6D5D7724393}
+ Template
+
+
+
+ Application
+ true
+ NotSet
+
+
+ Application
+ false
+ true
+ NotSet
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include
+ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)
+
+
+ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include
+ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)
+
+
+
+ Level3
+ Disabled
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510;..\..\jni
+ TARGET_WIN32;TARGET_SALMON;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501
+
+
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;sqplusD.lib;squirrelD.lib;sqdbglibD.lib;sqstdlibD.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)
+ $(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Debug Library
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ $(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510;..\..\jni
+ TARGET_WIN32;TARGET_SALMON;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501
+
+
+ true
+ true
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)
+ $(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Release Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/windows/Template/main.cpp b/Templates/SalmonWallpaperTemplate/windows/Template/main.cpp
new file mode 100644
index 0000000..6fcddd4
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/windows/Template/main.cpp
@@ -0,0 +1,15 @@
+#include "main.h"
+
+
+int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
+ LPSTR lpszCmdLine, int nCmdShow)
+{
+ //Create application
+ TAndroidApplication Application;
+
+ Application.Width = 800;
+ Application.Height = 480;
+
+ //Start application
+ return MainLoop(Application);
+}
\ No newline at end of file
diff --git a/Templates/SalmonWallpaperTemplate/windows/Template/main.h b/Templates/SalmonWallpaperTemplate/windows/Template/main.h
new file mode 100644
index 0000000..ec5d4b8
--- /dev/null
+++ b/Templates/SalmonWallpaperTemplate/windows/Template/main.h
@@ -0,0 +1,8 @@
+#pragma once
+
+/* Path to the engine */
+#include "include/Engine.h"
+
+#include "main_code.h"
+
+using namespace SE;
\ No newline at end of file
diff --git a/iOS/Halibut Engine/Halibut Engine.xcodeproj/project.pbxproj b/iOS/Halibut Engine/Halibut Engine.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..364d23b
--- /dev/null
+++ b/iOS/Halibut Engine/Halibut Engine.xcodeproj/project.pbxproj
@@ -0,0 +1,832 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4C77831B15BABFA6003D5142 /* SoundManagerInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C77831A15BABFA6003D5142 /* SoundManagerInterface.h */; };
+ 4C77832215BAC035003D5142 /* SoundManagerIos.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4C77832115BAC035003D5142 /* SoundManagerIos.mm */; };
+ 4C77832415BAC070003D5142 /* SoundManagerIos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C77832315BAC070003D5142 /* SoundManagerIos.h */; };
+ 4C79A59F15B1895B003F59D1 /* ScriptManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A59E15B1895B003F59D1 /* ScriptManager.cpp */; };
+ 4C79A5A215B1896F003F59D1 /* ScriptManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5A115B1896F003F59D1 /* ScriptManager.h */; };
+ 4C79A5A615B189E0003F59D1 /* ButtonWidget.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5A415B189E0003F59D1 /* ButtonWidget.h */; };
+ 4C79A5A715B189E0003F59D1 /* GUIManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5A515B189E0003F59D1 /* GUIManager.h */; };
+ 4C79A5AB15B189F4003F59D1 /* ButtonWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5A915B189F4003F59D1 /* ButtonWidget.cpp */; };
+ 4C79A5AC15B189F4003F59D1 /* GUIManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5AA15B189F4003F59D1 /* GUIManager.cpp */; };
+ 4C79A5AF15B18A8B003F59D1 /* FrameManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5AE15B18A8B003F59D1 /* FrameManager.h */; };
+ 4C79A5B215B18A97003F59D1 /* FrameManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5B115B18A97003F59D1 /* FrameManager.cpp */; };
+ 4C79A5B515B18B0F003F59D1 /* FontManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5B415B18B0F003F59D1 /* FontManager.h */; };
+ 4C79A5B815B18B1C003F59D1 /* FontManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5B715B18B1C003F59D1 /* FontManager.cpp */; };
+ 4C79A5BB15B18B2B003F59D1 /* HalibutAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5BA15B18B2B003F59D1 /* HalibutAnimation.h */; };
+ 4C79A5BE15B18B38003F59D1 /* HalibutAnimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5BD15B18B38003F59D1 /* HalibutAnimation.cpp */; };
+ 4C79A5C015B18B9E003F59D1 /* HalibutRenderInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5BF15B18B9E003F59D1 /* HalibutRenderInterface.h */; };
+ 4C79A5C415B18BD4003F59D1 /* HalibutRenderInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5C315B18BD4003F59D1 /* HalibutRenderInterface.cpp */; };
+ 4C79A5C815B18D39003F59D1 /* HalibutRenderIos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5C715B18D39003F59D1 /* HalibutRenderIos.cpp */; };
+ 4C79A5CA15B18D4B003F59D1 /* HalibutRenderIos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5C915B18D4B003F59D1 /* HalibutRenderIos.h */; };
+ 4C7AD45615B1E3D000A599F6 /* ApplicationInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD45415B1E3D000A599F6 /* ApplicationInterface.cpp */; };
+ 4C7AD45715B1E3D000A599F6 /* GlobalConst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD45515B1E3D000A599F6 /* GlobalConst.cpp */; };
+ 4C7AD45B15B1E3E300A599F6 /* ApplicationInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7AD45915B1E3E200A599F6 /* ApplicationInterface.h */; };
+ 4C7AD45C15B1E3E300A599F6 /* GlobalConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7AD45A15B1E3E300A599F6 /* GlobalConst.h */; };
+ 4C7B4F1E1675101300B5DBA3 /* WidgetTemplatesImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7B4F1D1675101300B5DBA3 /* WidgetTemplatesImpl.h */; };
+ 4C8B986E1660E8E500C3E258 /* WidgetXmlParsers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8B986D1660E8E500C3E258 /* WidgetXmlParsers.h */; };
+ 4C8B98711660E8F900C3E258 /* WidgetXmlParsers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8B98701660E8F900C3E258 /* WidgetXmlParsers.cpp */; };
+ 4C8CE90615B0A0F400078175 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C8CE90515B0A0F400078175 /* Foundation.framework */; };
+ 4C8CE91715B0A11A00078175 /* DataTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE91515B0A11A00078175 /* DataTypes.h */; };
+ 4C8CE91815B0A11A00078175 /* NewDataTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE91615B0A11A00078175 /* NewDataTypes.h */; };
+ 4C8CE91C15B0A12800078175 /* DataTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE91A15B0A12800078175 /* DataTypes.cpp */; };
+ 4C8CE91D15B0A12800078175 /* NewDataTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE91B15B0A12800078175 /* NewDataTypes.cpp */; };
+ 4C8CE93E15B0A56200078175 /* Console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE93B15B0A56200078175 /* Console.cpp */; };
+ 4C8CE93F15B0A56200078175 /* FileUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE93D15B0A56200078175 /* FileUtils.cpp */; };
+ 4C8CE94615B0A57F00078175 /* console.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94115B0A57F00078175 /* console.h */; };
+ 4C8CE94715B0A57F00078175 /* ErrorTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94315B0A57F00078175 /* ErrorTypes.h */; };
+ 4C8CE94815B0A57F00078175 /* FileUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94515B0A57F00078175 /* FileUtils.h */; };
+ 4C8CE94A15B0A9DA00078175 /* Engine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94915B0A9DA00078175 /* Engine.h */; };
+ 4C8CE94C15B0AA8000078175 /* Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94B15B0AA8000078175 /* Utils.h */; };
+ 4C8CE94F15B0AA9600078175 /* SerializeInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94E15B0AA9600078175 /* SerializeInterface.h */; };
+ 4C8CE95215B0AAA900078175 /* SerializeInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE95115B0AAA900078175 /* SerializeInterface.cpp */; };
+ 4C8CE95515B0AC2100078175 /* RenderInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE95315B0AC2100078175 /* RenderInterface.cpp */; };
+ 4C8CE95615B0AC2100078175 /* RenderMisc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE95415B0AC2100078175 /* RenderMisc.cpp */; };
+ 4C8CE95B15B0AC4B00078175 /* RenderInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE95915B0AC4B00078175 /* RenderInterface.h */; };
+ 4C8CE95C15B0AC4B00078175 /* RenderMisc.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE95A15B0AC4B00078175 /* RenderMisc.h */; };
+ 4C8CE96015B0B0FB00078175 /* HalibutEngineInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE95F15B0B0FB00078175 /* HalibutEngineInterface.h */; };
+ 4C8CE96215B0B10B00078175 /* HalibutEngineInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE96115B0B10B00078175 /* HalibutEngineInterface.cpp */; };
+ 4C8CE96515B0B1A600078175 /* SalmonTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE96415B0B1A600078175 /* SalmonTexture.h */; };
+ 4C8CE96815B0B1B700078175 /* SalmonTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE96715B0B1B700078175 /* SalmonTexture.cpp */; };
+ 4C8CE96A15B0B2FD00078175 /* PngHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE96915B0B2FD00078175 /* PngHelper.cpp */; };
+ 4C8CE96C15B0B31F00078175 /* PngHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE96B15B0B31F00078175 /* PngHelper.h */; };
+ 4C8CE97015B0B44B00078175 /* HalibutEngineIos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE96F15B0B44A00078175 /* HalibutEngineIos.h */; };
+ 4C8CE97215B0B45600078175 /* HalibutEngineIos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE97115B0B45600078175 /* HalibutEngineIos.cpp */; };
+ 4C8CE97515B0BB9700078175 /* ShaderManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE97415B0BB9700078175 /* ShaderManager.h */; };
+ 4C8CE97815B0BBA800078175 /* ShaderManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE97715B0BBA800078175 /* ShaderManager.cpp */; };
+ 4CC1FC3D15B20E440025C6F7 /* IosApi.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC1FC3C15B20E440025C6F7 /* IosApi.h */; };
+ 4CC1FC4015B20E5D0025C6F7 /* IosApi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1FC3F15B20E5D0025C6F7 /* IosApi.mm */; };
+ 4CC857E016938B4B00110F77 /* RenderParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC857DF16938B4B00110F77 /* RenderParams.h */; };
+ 4CC857E316938B6B00110F77 /* RenderParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CC857E216938B6B00110F77 /* RenderParams.cpp */; };
+ 4CD18A091672762D00EDC335 /* SmartValueManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CD18A081672762D00EDC335 /* SmartValueManager.h */; };
+ 4CD18A0D1672764F00EDC335 /* SmartValueManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CD18A0C1672764F00EDC335 /* SmartValueManager.cpp */; };
+ 4CEE2DBA15CDC05E00C4D5F5 /* HalibutRenderGLES20.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CEE2DB915CDC05E00C4D5F5 /* HalibutRenderGLES20.h */; };
+ 4CEE2DBD15CDC07800C4D5F5 /* HalibutRenderGLES20.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CEE2DBC15CDC07800C4D5F5 /* HalibutRenderGLES20.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 4C77831A15BABFA6003D5142 /* SoundManagerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SoundManagerInterface.h; path = ../../../include/SoundManager/SoundManagerInterface.h; sourceTree = ""; };
+ 4C77832115BAC035003D5142 /* SoundManagerIos.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SoundManagerIos.mm; path = ../../../src/SoundManager/SoundManagerIos.mm; sourceTree = ""; };
+ 4C77832315BAC070003D5142 /* SoundManagerIos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SoundManagerIos.h; path = ../../../include/SoundManager/SoundManagerIos.h; sourceTree = ""; };
+ 4C79A59E15B1895B003F59D1 /* ScriptManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptManager.cpp; sourceTree = ""; };
+ 4C79A5A115B1896F003F59D1 /* ScriptManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptManager.h; sourceTree = ""; };
+ 4C79A5A415B189E0003F59D1 /* ButtonWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ButtonWidget.h; sourceTree = ""; };
+ 4C79A5A515B189E0003F59D1 /* GUIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GUIManager.h; sourceTree = ""; };
+ 4C79A5A915B189F4003F59D1 /* ButtonWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ButtonWidget.cpp; sourceTree = ""; };
+ 4C79A5AA15B189F4003F59D1 /* GUIManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GUIManager.cpp; sourceTree = ""; };
+ 4C79A5AE15B18A8B003F59D1 /* FrameManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameManager.h; sourceTree = ""; };
+ 4C79A5B115B18A97003F59D1 /* FrameManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameManager.cpp; sourceTree = ""; };
+ 4C79A5B415B18B0F003F59D1 /* FontManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontManager.h; sourceTree = ""; };
+ 4C79A5B715B18B1C003F59D1 /* FontManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontManager.cpp; sourceTree = ""; };
+ 4C79A5BA15B18B2B003F59D1 /* HalibutAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HalibutAnimation.h; sourceTree = ""; };
+ 4C79A5BD15B18B38003F59D1 /* HalibutAnimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HalibutAnimation.cpp; sourceTree = ""; };
+ 4C79A5BF15B18B9E003F59D1 /* HalibutRenderInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HalibutRenderInterface.h; path = ../../../include/Render/HalibutRender/HalibutRenderInterface.h; sourceTree = ""; };
+ 4C79A5C315B18BD4003F59D1 /* HalibutRenderInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HalibutRenderInterface.cpp; path = ../../../src/Render/HalibutRender/HalibutRenderInterface.cpp; sourceTree = ""; };
+ 4C79A5C715B18D39003F59D1 /* HalibutRenderIos.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HalibutRenderIos.cpp; path = ../../../src/Render/HalibutRender/HalibutRenderIos.cpp; sourceTree = ""; };
+ 4C79A5C915B18D4B003F59D1 /* HalibutRenderIos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HalibutRenderIos.h; path = ../../../include/Render/HalibutRender/HalibutRenderIos.h; sourceTree = ""; };
+ 4C7AD45415B1E3D000A599F6 /* ApplicationInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationInterface.cpp; path = ../../../src/ApplicationInterface.cpp; sourceTree = ""; };
+ 4C7AD45515B1E3D000A599F6 /* GlobalConst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GlobalConst.cpp; path = ../../../src/GlobalConst.cpp; sourceTree = ""; };
+ 4C7AD45915B1E3E200A599F6 /* ApplicationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ApplicationInterface.h; path = ../../../include/ApplicationInterface.h; sourceTree = ""; };
+ 4C7AD45A15B1E3E300A599F6 /* GlobalConst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GlobalConst.h; path = ../../../include/GlobalConst.h; sourceTree = ""; };
+ 4C7B4F1D1675101300B5DBA3 /* WidgetTemplatesImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WidgetTemplatesImpl.h; sourceTree = ""; };
+ 4C8B986D1660E8E500C3E258 /* WidgetXmlParsers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WidgetXmlParsers.h; sourceTree = ""; };
+ 4C8B98701660E8F900C3E258 /* WidgetXmlParsers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WidgetXmlParsers.cpp; sourceTree = ""; };
+ 4C8CE90215B0A0F400078175 /* libHalibut Engine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libHalibut Engine.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4C8CE90515B0A0F400078175 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 4C8CE90915B0A0F400078175 /* Halibut Engine-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Halibut Engine-Prefix.pch"; sourceTree = ""; };
+ 4C8CE91515B0A11A00078175 /* DataTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataTypes.h; sourceTree = ""; };
+ 4C8CE91615B0A11A00078175 /* NewDataTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewDataTypes.h; sourceTree = ""; };
+ 4C8CE91A15B0A12800078175 /* DataTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataTypes.cpp; sourceTree = ""; };
+ 4C8CE91B15B0A12800078175 /* NewDataTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NewDataTypes.cpp; sourceTree = ""; };
+ 4C8CE93B15B0A56200078175 /* Console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Console.cpp; sourceTree = ""; };
+ 4C8CE93D15B0A56200078175 /* FileUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileUtils.cpp; sourceTree = ""; };
+ 4C8CE94115B0A57F00078175 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = ""; };
+ 4C8CE94315B0A57F00078175 /* ErrorTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ErrorTypes.h; sourceTree = ""; };
+ 4C8CE94515B0A57F00078175 /* FileUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileUtils.h; sourceTree = ""; };
+ 4C8CE94915B0A9DA00078175 /* Engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Engine.h; path = ../../../include/Engine.h; sourceTree = ""; };
+ 4C8CE94B15B0AA8000078175 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../../include/Utils/Utils.h; sourceTree = ""; };
+ 4C8CE94E15B0AA9600078175 /* SerializeInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SerializeInterface.h; sourceTree = ""; };
+ 4C8CE95115B0AAA900078175 /* SerializeInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SerializeInterface.cpp; sourceTree = ""; };
+ 4C8CE95315B0AC2100078175 /* RenderInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderInterface.cpp; path = ../../../src/Render/RenderInterface.cpp; sourceTree = ""; };
+ 4C8CE95415B0AC2100078175 /* RenderMisc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMisc.cpp; path = ../../../src/Render/RenderMisc.cpp; sourceTree = ""; };
+ 4C8CE95915B0AC4B00078175 /* RenderInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderInterface.h; path = ../../../include/Render/RenderInterface.h; sourceTree = ""; };
+ 4C8CE95A15B0AC4B00078175 /* RenderMisc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMisc.h; path = ../../../include/Render/RenderMisc.h; sourceTree = ""; };
+ 4C8CE95F15B0B0FB00078175 /* HalibutEngineInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HalibutEngineInterface.h; path = ../../../include/HalibutEngineInterface.h; sourceTree = ""; };
+ 4C8CE96115B0B10B00078175 /* HalibutEngineInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HalibutEngineInterface.cpp; path = ../../../src/HalibutEngineInterface.cpp; sourceTree = ""; };
+ 4C8CE96415B0B1A600078175 /* SalmonTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SalmonTexture.h; sourceTree = ""; };
+ 4C8CE96715B0B1B700078175 /* SalmonTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SalmonTexture.cpp; sourceTree = ""; };
+ 4C8CE96915B0B2FD00078175 /* PngHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PngHelper.cpp; path = ../../../src/Utils/PngHelper.cpp; sourceTree = ""; };
+ 4C8CE96B15B0B31F00078175 /* PngHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PngHelper.h; path = ../../../include/Utils/PngHelper.h; sourceTree = ""; };
+ 4C8CE96F15B0B44A00078175 /* HalibutEngineIos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HalibutEngineIos.h; path = ../../../include/HalibutEngineIos.h; sourceTree = ""; };
+ 4C8CE97115B0B45600078175 /* HalibutEngineIos.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HalibutEngineIos.cpp; path = ../../../src/HalibutEngineIos.cpp; sourceTree = ""; };
+ 4C8CE97415B0BB9700078175 /* ShaderManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShaderManager.h; sourceTree = ""; };
+ 4C8CE97715B0BBA800078175 /* ShaderManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShaderManager.cpp; sourceTree = ""; };
+ 4CC1FC3C15B20E440025C6F7 /* IosApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IosApi.h; sourceTree = ""; };
+ 4CC1FC3F15B20E5D0025C6F7 /* IosApi.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = IosApi.mm; sourceTree = ""; };
+ 4CC857DF16938B4B00110F77 /* RenderParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderParams.h; path = ../../../include/Render/RenderParams.h; sourceTree = ""; };
+ 4CC857E216938B6B00110F77 /* RenderParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderParams.cpp; path = ../../../src/Render/RenderParams.cpp; sourceTree = ""; };
+ 4CD18A081672762D00EDC335 /* SmartValueManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmartValueManager.h; sourceTree = ""; };
+ 4CD18A0C1672764F00EDC335 /* SmartValueManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SmartValueManager.cpp; sourceTree = ""; };
+ 4CEE2DB915CDC05E00C4D5F5 /* HalibutRenderGLES20.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HalibutRenderGLES20.h; path = ../../../include/Render/HalibutRender/HalibutRenderGLES20.h; sourceTree = ""; };
+ 4CEE2DBC15CDC07800C4D5F5 /* HalibutRenderGLES20.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HalibutRenderGLES20.cpp; path = ../../../src/Render/HalibutRender/HalibutRenderGLES20.cpp; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 4C8CE8FF15B0A0F400078175 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C8CE90615B0A0F400078175 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 4C77831D15BABFAB003D5142 /* SoundManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C77831A15BABFA6003D5142 /* SoundManagerInterface.h */,
+ 4C77832315BAC070003D5142 /* SoundManagerIos.h */,
+ );
+ name = SoundManager;
+ sourceTree = "";
+ };
+ 4C77831E15BABFC9003D5142 /* SoundManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C77832115BAC035003D5142 /* SoundManagerIos.mm */,
+ );
+ name = SoundManager;
+ sourceTree = "";
+ };
+ 4C79A59D15B1895B003F59D1 /* ScriptManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A59E15B1895B003F59D1 /* ScriptManager.cpp */,
+ );
+ name = ScriptManager;
+ path = ../../../src/ScriptManager;
+ sourceTree = "";
+ };
+ 4C79A5A015B1896F003F59D1 /* ScriptManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5A115B1896F003F59D1 /* ScriptManager.h */,
+ );
+ name = ScriptManager;
+ path = ../../../include/ScriptManager;
+ sourceTree = "";
+ };
+ 4C79A5A315B189E0003F59D1 /* GUIManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C7B4F1D1675101300B5DBA3 /* WidgetTemplatesImpl.h */,
+ 4C8B986D1660E8E500C3E258 /* WidgetXmlParsers.h */,
+ 4C79A5A415B189E0003F59D1 /* ButtonWidget.h */,
+ 4C79A5A515B189E0003F59D1 /* GUIManager.h */,
+ );
+ name = GUIManager;
+ path = ../../../include/GUIManager;
+ sourceTree = "";
+ };
+ 4C79A5A815B189F4003F59D1 /* GUIManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8B98701660E8F900C3E258 /* WidgetXmlParsers.cpp */,
+ 4C79A5A915B189F4003F59D1 /* ButtonWidget.cpp */,
+ 4C79A5AA15B189F4003F59D1 /* GUIManager.cpp */,
+ );
+ name = GUIManager;
+ path = ../../../src/GUIManager;
+ sourceTree = "";
+ };
+ 4C79A5AD15B18A8B003F59D1 /* FrameManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5AE15B18A8B003F59D1 /* FrameManager.h */,
+ );
+ name = FrameManager;
+ path = ../../../include/FrameManager;
+ sourceTree = "";
+ };
+ 4C79A5B015B18A97003F59D1 /* FrameManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5B115B18A97003F59D1 /* FrameManager.cpp */,
+ );
+ name = FrameManager;
+ path = ../../../src/FrameManager;
+ sourceTree = "";
+ };
+ 4C79A5B315B18B0F003F59D1 /* FontManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5B415B18B0F003F59D1 /* FontManager.h */,
+ );
+ name = FontManager;
+ path = ../../../include/FontManager;
+ sourceTree = "";
+ };
+ 4C79A5B615B18B1C003F59D1 /* FontManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5B715B18B1C003F59D1 /* FontManager.cpp */,
+ );
+ name = FontManager;
+ path = ../../../src/FontManager;
+ sourceTree = "";
+ };
+ 4C79A5B915B18B2B003F59D1 /* HalibutAnimation */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5BA15B18B2B003F59D1 /* HalibutAnimation.h */,
+ );
+ name = HalibutAnimation;
+ path = ../../../include/HalibutAnimation;
+ sourceTree = "";
+ };
+ 4C79A5BC15B18B38003F59D1 /* HalibutAnimation */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5BD15B18B38003F59D1 /* HalibutAnimation.cpp */,
+ );
+ name = HalibutAnimation;
+ path = ../../../src/HalibutAnimation;
+ sourceTree = "";
+ };
+ 4C79A5C115B18BA3003F59D1 /* HalibutRender */ = {
+ isa = PBXGroup;
+ children = (
+ 4CEE2DB915CDC05E00C4D5F5 /* HalibutRenderGLES20.h */,
+ 4C79A5C915B18D4B003F59D1 /* HalibutRenderIos.h */,
+ 4C79A5BF15B18B9E003F59D1 /* HalibutRenderInterface.h */,
+ );
+ name = HalibutRender;
+ sourceTree = "";
+ };
+ 4C79A5C215B18BB8003F59D1 /* HalibutRender */ = {
+ isa = PBXGroup;
+ children = (
+ 4CEE2DBC15CDC07800C4D5F5 /* HalibutRenderGLES20.cpp */,
+ 4C79A5C715B18D39003F59D1 /* HalibutRenderIos.cpp */,
+ 4C79A5C315B18BD4003F59D1 /* HalibutRenderInterface.cpp */,
+ );
+ name = HalibutRender;
+ sourceTree = "";
+ };
+ 4C8CE8F715B0A0F400078175 = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE90715B0A0F400078175 /* Halibut Engine */,
+ 4C8CE90415B0A0F400078175 /* Frameworks */,
+ 4C8CE90315B0A0F400078175 /* Products */,
+ );
+ sourceTree = "";
+ };
+ 4C8CE90315B0A0F400078175 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE90215B0A0F400078175 /* libHalibut Engine.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 4C8CE90415B0A0F400078175 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE90515B0A0F400078175 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 4C8CE90715B0A0F400078175 /* Halibut Engine */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE91315B0A0FF00078175 /* include */,
+ 4C8CE91215B0A0FB00078175 /* src */,
+ 4C8CE90815B0A0F400078175 /* Supporting Files */,
+ );
+ path = "Halibut Engine";
+ sourceTree = "";
+ };
+ 4C8CE90815B0A0F400078175 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE90915B0A0F400078175 /* Halibut Engine-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 4C8CE91215B0A0FB00078175 /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 4CD18A0B1672764F00EDC335 /* SmartValueManager */,
+ 4C77831E15BABFC9003D5142 /* SoundManager */,
+ 4C7AD45415B1E3D000A599F6 /* ApplicationInterface.cpp */,
+ 4C7AD45515B1E3D000A599F6 /* GlobalConst.cpp */,
+ 4C79A5BC15B18B38003F59D1 /* HalibutAnimation */,
+ 4C79A5B615B18B1C003F59D1 /* FontManager */,
+ 4C79A5B015B18A97003F59D1 /* FrameManager */,
+ 4C79A5A815B189F4003F59D1 /* GUIManager */,
+ 4C79A59D15B1895B003F59D1 /* ScriptManager */,
+ 4C8CE97615B0BBA800078175 /* ShaderManager */,
+ 4C8CE97115B0B45600078175 /* HalibutEngineIos.cpp */,
+ 4C8CE96615B0B1B700078175 /* TextureManager */,
+ 4C8CE96115B0B10B00078175 /* HalibutEngineInterface.cpp */,
+ 4C8CE95715B0AC2700078175 /* Render */,
+ 4C8CE93915B0A50F00078175 /* Utils */,
+ );
+ name = src;
+ sourceTree = "";
+ };
+ 4C8CE91315B0A0FF00078175 /* include */ = {
+ isa = PBXGroup;
+ children = (
+ 4CD18A071672762D00EDC335 /* SmartValueManager */,
+ 4C77831D15BABFAB003D5142 /* SoundManager */,
+ 4C7AD45915B1E3E200A599F6 /* ApplicationInterface.h */,
+ 4C7AD45A15B1E3E300A599F6 /* GlobalConst.h */,
+ 4C79A5B915B18B2B003F59D1 /* HalibutAnimation */,
+ 4C79A5B315B18B0F003F59D1 /* FontManager */,
+ 4C79A5AD15B18A8B003F59D1 /* FrameManager */,
+ 4C79A5A315B189E0003F59D1 /* GUIManager */,
+ 4C79A5A015B1896F003F59D1 /* ScriptManager */,
+ 4C8CE97315B0BB9700078175 /* ShaderManager */,
+ 4C8CE96315B0B1A500078175 /* TextureManager */,
+ 4C8CE95F15B0B0FB00078175 /* HalibutEngineInterface.h */,
+ 4C8CE95815B0AC3500078175 /* Render */,
+ 4C8CE94915B0A9DA00078175 /* Engine.h */,
+ 4C8CE96F15B0B44A00078175 /* HalibutEngineIos.h */,
+ 4C8CE93715B0A50200078175 /* Utils */,
+ );
+ name = include;
+ sourceTree = "";
+ };
+ 4C8CE91415B0A11A00078175 /* DataTypes */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE91515B0A11A00078175 /* DataTypes.h */,
+ 4C8CE91615B0A11A00078175 /* NewDataTypes.h */,
+ );
+ name = DataTypes;
+ path = ../../../include/Utils/DataTypes;
+ sourceTree = "";
+ };
+ 4C8CE91915B0A12800078175 /* DataTypes */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE91A15B0A12800078175 /* DataTypes.cpp */,
+ 4C8CE91B15B0A12800078175 /* NewDataTypes.cpp */,
+ );
+ name = DataTypes;
+ path = ../../../src/Utils/DataTypes;
+ sourceTree = "";
+ };
+ 4C8CE93715B0A50200078175 /* Utils */ = {
+ isa = PBXGroup;
+ children = (
+ 4CC1FC3B15B20E440025C6F7 /* IosApi */,
+ 4C8CE96B15B0B31F00078175 /* PngHelper.h */,
+ 4C8CE94B15B0AA8000078175 /* Utils.h */,
+ 4C8CE94D15B0AA9600078175 /* SerializeInterface */,
+ 4C8CE94015B0A57F00078175 /* Console */,
+ 4C8CE94215B0A57F00078175 /* ErrorTypes */,
+ 4C8CE94415B0A57F00078175 /* FileUtils */,
+ 4C8CE91415B0A11A00078175 /* DataTypes */,
+ );
+ name = Utils;
+ sourceTree = "";
+ };
+ 4C8CE93915B0A50F00078175 /* Utils */ = {
+ isa = PBXGroup;
+ children = (
+ 4CC1FC3E15B20E5D0025C6F7 /* IosApi */,
+ 4C8CE96915B0B2FD00078175 /* PngHelper.cpp */,
+ 4C8CE95015B0AAA900078175 /* SerializeInterface */,
+ 4C8CE93A15B0A56200078175 /* Console */,
+ 4C8CE93C15B0A56200078175 /* FileUtils */,
+ 4C8CE91915B0A12800078175 /* DataTypes */,
+ );
+ name = Utils;
+ sourceTree = "";
+ };
+ 4C8CE93A15B0A56200078175 /* Console */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE93B15B0A56200078175 /* Console.cpp */,
+ );
+ name = Console;
+ path = ../../../src/Utils/Console;
+ sourceTree = "";
+ };
+ 4C8CE93C15B0A56200078175 /* FileUtils */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE93D15B0A56200078175 /* FileUtils.cpp */,
+ );
+ name = FileUtils;
+ path = ../../../src/Utils/FileUtils;
+ sourceTree = "";
+ };
+ 4C8CE94015B0A57F00078175 /* Console */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE94115B0A57F00078175 /* console.h */,
+ );
+ name = Console;
+ path = ../../../include/Utils/Console;
+ sourceTree = "";
+ };
+ 4C8CE94215B0A57F00078175 /* ErrorTypes */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE94315B0A57F00078175 /* ErrorTypes.h */,
+ );
+ name = ErrorTypes;
+ path = ../../../include/Utils/ErrorTypes;
+ sourceTree = "";
+ };
+ 4C8CE94415B0A57F00078175 /* FileUtils */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE94515B0A57F00078175 /* FileUtils.h */,
+ );
+ name = FileUtils;
+ path = ../../../include/Utils/FileUtils;
+ sourceTree = "";
+ };
+ 4C8CE94D15B0AA9600078175 /* SerializeInterface */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE94E15B0AA9600078175 /* SerializeInterface.h */,
+ );
+ name = SerializeInterface;
+ path = ../../../include/Utils/SerializeInterface;
+ sourceTree = "";
+ };
+ 4C8CE95015B0AAA900078175 /* SerializeInterface */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE95115B0AAA900078175 /* SerializeInterface.cpp */,
+ );
+ name = SerializeInterface;
+ path = ../../../src/Utils/SerializeInterface;
+ sourceTree = "";
+ };
+ 4C8CE95715B0AC2700078175 /* Render */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5C215B18BB8003F59D1 /* HalibutRender */,
+ 4C8CE95315B0AC2100078175 /* RenderInterface.cpp */,
+ 4C8CE95415B0AC2100078175 /* RenderMisc.cpp */,
+ 4CC857E216938B6B00110F77 /* RenderParams.cpp */,
+ );
+ name = Render;
+ sourceTree = "";
+ };
+ 4C8CE95815B0AC3500078175 /* Render */ = {
+ isa = PBXGroup;
+ children = (
+ 4C79A5C115B18BA3003F59D1 /* HalibutRender */,
+ 4C8CE95915B0AC4B00078175 /* RenderInterface.h */,
+ 4C8CE95A15B0AC4B00078175 /* RenderMisc.h */,
+ 4CC857DF16938B4B00110F77 /* RenderParams.h */,
+ );
+ name = Render;
+ sourceTree = "";
+ };
+ 4C8CE96315B0B1A500078175 /* TextureManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE96415B0B1A600078175 /* SalmonTexture.h */,
+ );
+ name = TextureManager;
+ path = ../../../include/TextureManager;
+ sourceTree = "";
+ };
+ 4C8CE96615B0B1B700078175 /* TextureManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE96715B0B1B700078175 /* SalmonTexture.cpp */,
+ );
+ name = TextureManager;
+ path = ../../../src/TextureManager;
+ sourceTree = "";
+ };
+ 4C8CE97315B0BB9700078175 /* ShaderManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE97415B0BB9700078175 /* ShaderManager.h */,
+ );
+ name = ShaderManager;
+ path = ../../../include/ShaderManager;
+ sourceTree = "";
+ };
+ 4C8CE97615B0BBA800078175 /* ShaderManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4C8CE97715B0BBA800078175 /* ShaderManager.cpp */,
+ );
+ name = ShaderManager;
+ path = ../../../src/ShaderManager;
+ sourceTree = "";
+ };
+ 4CC1FC3B15B20E440025C6F7 /* IosApi */ = {
+ isa = PBXGroup;
+ children = (
+ 4CC1FC3C15B20E440025C6F7 /* IosApi.h */,
+ );
+ name = IosApi;
+ path = ../../../include/Utils/IosApi;
+ sourceTree = "";
+ };
+ 4CC1FC3E15B20E5D0025C6F7 /* IosApi */ = {
+ isa = PBXGroup;
+ children = (
+ 4CC1FC3F15B20E5D0025C6F7 /* IosApi.mm */,
+ );
+ name = IosApi;
+ path = ../../../src/Utils/IosApi;
+ sourceTree = "";
+ };
+ 4CD18A071672762D00EDC335 /* SmartValueManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4CD18A081672762D00EDC335 /* SmartValueManager.h */,
+ );
+ name = SmartValueManager;
+ path = ../../../include/SmartValueManager;
+ sourceTree = "";
+ };
+ 4CD18A0B1672764F00EDC335 /* SmartValueManager */ = {
+ isa = PBXGroup;
+ children = (
+ 4CD18A0C1672764F00EDC335 /* SmartValueManager.cpp */,
+ );
+ name = SmartValueManager;
+ path = ../../../src/SmartValueManager;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 4C8CE90015B0A0F400078175 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C8CE91715B0A11A00078175 /* DataTypes.h in Headers */,
+ 4C8CE91815B0A11A00078175 /* NewDataTypes.h in Headers */,
+ 4C8CE94615B0A57F00078175 /* console.h in Headers */,
+ 4C8CE94715B0A57F00078175 /* ErrorTypes.h in Headers */,
+ 4C8CE94815B0A57F00078175 /* FileUtils.h in Headers */,
+ 4C8CE94A15B0A9DA00078175 /* Engine.h in Headers */,
+ 4C8CE94C15B0AA8000078175 /* Utils.h in Headers */,
+ 4C8CE94F15B0AA9600078175 /* SerializeInterface.h in Headers */,
+ 4C8CE95B15B0AC4B00078175 /* RenderInterface.h in Headers */,
+ 4C8CE95C15B0AC4B00078175 /* RenderMisc.h in Headers */,
+ 4C8CE96015B0B0FB00078175 /* HalibutEngineInterface.h in Headers */,
+ 4C8CE96515B0B1A600078175 /* SalmonTexture.h in Headers */,
+ 4C8CE96C15B0B31F00078175 /* PngHelper.h in Headers */,
+ 4C8CE97015B0B44B00078175 /* HalibutEngineIos.h in Headers */,
+ 4C8CE97515B0BB9700078175 /* ShaderManager.h in Headers */,
+ 4C79A5A215B1896F003F59D1 /* ScriptManager.h in Headers */,
+ 4C79A5A615B189E0003F59D1 /* ButtonWidget.h in Headers */,
+ 4C79A5A715B189E0003F59D1 /* GUIManager.h in Headers */,
+ 4C79A5AF15B18A8B003F59D1 /* FrameManager.h in Headers */,
+ 4C79A5B515B18B0F003F59D1 /* FontManager.h in Headers */,
+ 4C79A5BB15B18B2B003F59D1 /* HalibutAnimation.h in Headers */,
+ 4C79A5C015B18B9E003F59D1 /* HalibutRenderInterface.h in Headers */,
+ 4C79A5CA15B18D4B003F59D1 /* HalibutRenderIos.h in Headers */,
+ 4C7AD45B15B1E3E300A599F6 /* ApplicationInterface.h in Headers */,
+ 4C7AD45C15B1E3E300A599F6 /* GlobalConst.h in Headers */,
+ 4CC1FC3D15B20E440025C6F7 /* IosApi.h in Headers */,
+ 4C77831B15BABFA6003D5142 /* SoundManagerInterface.h in Headers */,
+ 4C77832415BAC070003D5142 /* SoundManagerIos.h in Headers */,
+ 4CEE2DBA15CDC05E00C4D5F5 /* HalibutRenderGLES20.h in Headers */,
+ 4C8B986E1660E8E500C3E258 /* WidgetXmlParsers.h in Headers */,
+ 4CD18A091672762D00EDC335 /* SmartValueManager.h in Headers */,
+ 4C7B4F1E1675101300B5DBA3 /* WidgetTemplatesImpl.h in Headers */,
+ 4CC857E016938B4B00110F77 /* RenderParams.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 4C8CE90115B0A0F400078175 /* Halibut Engine */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 4C8CE90F15B0A0F400078175 /* Build configuration list for PBXNativeTarget "Halibut Engine" */;
+ buildPhases = (
+ 4C8CE8FE15B0A0F400078175 /* Sources */,
+ 4C8CE8FF15B0A0F400078175 /* Frameworks */,
+ 4C8CE90015B0A0F400078175 /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = "Halibut Engine";
+ productName = "Halibut Engine";
+ productReference = 4C8CE90215B0A0F400078175 /* libHalibut Engine.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 4C8CE8F915B0A0F400078175 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0430;
+ };
+ buildConfigurationList = 4C8CE8FC15B0A0F400078175 /* Build configuration list for PBXProject "Halibut Engine" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 4C8CE8F715B0A0F400078175;
+ productRefGroup = 4C8CE90315B0A0F400078175 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 4C8CE90115B0A0F400078175 /* Halibut Engine */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 4C8CE8FE15B0A0F400078175 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C8CE91C15B0A12800078175 /* DataTypes.cpp in Sources */,
+ 4C8CE91D15B0A12800078175 /* NewDataTypes.cpp in Sources */,
+ 4C8CE93E15B0A56200078175 /* Console.cpp in Sources */,
+ 4C8CE93F15B0A56200078175 /* FileUtils.cpp in Sources */,
+ 4C8CE95215B0AAA900078175 /* SerializeInterface.cpp in Sources */,
+ 4C8CE95515B0AC2100078175 /* RenderInterface.cpp in Sources */,
+ 4C8CE95615B0AC2100078175 /* RenderMisc.cpp in Sources */,
+ 4C8CE96215B0B10B00078175 /* HalibutEngineInterface.cpp in Sources */,
+ 4C8CE96815B0B1B700078175 /* SalmonTexture.cpp in Sources */,
+ 4C8CE96A15B0B2FD00078175 /* PngHelper.cpp in Sources */,
+ 4C8CE97215B0B45600078175 /* HalibutEngineIos.cpp in Sources */,
+ 4C8CE97815B0BBA800078175 /* ShaderManager.cpp in Sources */,
+ 4C79A59F15B1895B003F59D1 /* ScriptManager.cpp in Sources */,
+ 4C79A5AB15B189F4003F59D1 /* ButtonWidget.cpp in Sources */,
+ 4C79A5AC15B189F4003F59D1 /* GUIManager.cpp in Sources */,
+ 4C79A5B215B18A97003F59D1 /* FrameManager.cpp in Sources */,
+ 4C79A5B815B18B1C003F59D1 /* FontManager.cpp in Sources */,
+ 4C79A5BE15B18B38003F59D1 /* HalibutAnimation.cpp in Sources */,
+ 4C79A5C415B18BD4003F59D1 /* HalibutRenderInterface.cpp in Sources */,
+ 4C79A5C815B18D39003F59D1 /* HalibutRenderIos.cpp in Sources */,
+ 4C7AD45615B1E3D000A599F6 /* ApplicationInterface.cpp in Sources */,
+ 4C7AD45715B1E3D000A599F6 /* GlobalConst.cpp in Sources */,
+ 4CC1FC4015B20E5D0025C6F7 /* IosApi.mm in Sources */,
+ 4C77832215BAC035003D5142 /* SoundManagerIos.mm in Sources */,
+ 4CEE2DBD15CDC07800C4D5F5 /* HalibutRenderGLES20.cpp in Sources */,
+ 4C8B98711660E8F900C3E258 /* WidgetXmlParsers.cpp in Sources */,
+ 4CD18A0D1672764F00EDC335 /* SmartValueManager.cpp in Sources */,
+ 4CC857E316938B6B00110F77 /* RenderParams.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 4C8CE90D15B0A0F400078175 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ COPY_PHASE_STRIP = NO;
+ 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_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 4C8CE90E15B0A0F400078175 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 4C8CE91015B0A0F400078175 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ DSTROOT = /tmp/Halibut_Engine.dst;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Halibut Engine/Halibut Engine-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ TARGET_IOS,
+ TARGET_HALIBUT,
+ DEBUG,
+ BOOST_NO_CXX11_NUMERIC_LIMITS,
+ );
+ HEADER_SEARCH_PATHS = (
+ ../../,
+ "$(LibsPath)/boost_1_52_0",
+ "$(LibsPath)/lpng1510",
+ "$(LibsPath)/sqplus/sqplus",
+ "$(LibsPath)/sqplus/include",
+ "$(LibsPath)/vorbis-tremor-ios/vorbis",
+ );
+ INSTALL_PATH = ./debug;
+ OTHER_LDFLAGS = "-ObjC";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ REZ_SEARCH_PATHS = "";
+ SKIP_INSTALL = NO;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 4C8CE91115B0A0F400078175 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ DSTROOT = /tmp/Halibut_Engine.dst;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Halibut Engine/Halibut Engine-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ TARGET_IOS,
+ TARGET_HALIBUT,
+ BOOST_NO_CXX11_NUMERIC_LIMITS,
+ );
+ HEADER_SEARCH_PATHS = (
+ ../../,
+ "$(LibsPath)/boost_1_52_0",
+ "$(LibsPath)/lpng1510",
+ "$(LibsPath)/sqplus/sqplus",
+ "$(LibsPath)/sqplus/include",
+ "$(LibsPath)/vorbis-tremor-ios/vorbis",
+ );
+ INSTALL_PATH = ./release;
+ OTHER_LDFLAGS = "-ObjC";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ REZ_SEARCH_PATHS = "";
+ SKIP_INSTALL = NO;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 4C8CE8FC15B0A0F400078175 /* Build configuration list for PBXProject "Halibut Engine" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4C8CE90D15B0A0F400078175 /* Debug */,
+ 4C8CE90E15B0A0F400078175 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4C8CE90F15B0A0F400078175 /* Build configuration list for PBXNativeTarget "Halibut Engine" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4C8CE91015B0A0F400078175 /* Debug */,
+ 4C8CE91115B0A0F400078175 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 4C8CE8F915B0A0F400078175 /* Project object */;
+}
diff --git a/iOS/Halibut Engine/Halibut Engine/Halibut Engine-Prefix.pch b/iOS/Halibut Engine/Halibut Engine/Halibut Engine-Prefix.pch
new file mode 100644
index 0000000..bb827b1
--- /dev/null
+++ b/iOS/Halibut Engine/Halibut Engine/Halibut Engine-Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'Halibut Engine' target in the 'Halibut Engine' project
+//
+
+#ifdef __OBJC__
+ #import
+#endif
diff --git a/iOS/Salmon Engine/Salmon Engine.xcodeproj/project.pbxproj b/iOS/Salmon Engine/Salmon Engine.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..facf408
--- /dev/null
+++ b/iOS/Salmon Engine/Salmon Engine.xcodeproj/project.pbxproj
@@ -0,0 +1,886 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4C77831B15BABFA6003D5142 /* SoundManagerInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C77831A15BABFA6003D5142 /* SoundManagerInterface.h */; };
+ 4C77832215BAC035003D5142 /* SoundManagerIos.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4C77832115BAC035003D5142 /* SoundManagerIos.mm */; };
+ 4C77832415BAC070003D5142 /* SoundManagerIos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C77832315BAC070003D5142 /* SoundManagerIos.h */; };
+ 4C79A59F15B1895B003F59D1 /* ScriptManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A59E15B1895B003F59D1 /* ScriptManager.cpp */; };
+ 4C79A5A215B1896F003F59D1 /* ScriptManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5A115B1896F003F59D1 /* ScriptManager.h */; };
+ 4C79A5AF15B18A8B003F59D1 /* FrameManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5AE15B18A8B003F59D1 /* FrameManager.h */; };
+ 4C79A5B215B18A97003F59D1 /* FrameManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5B115B18A97003F59D1 /* FrameManager.cpp */; };
+ 4C79A5B515B18B0F003F59D1 /* FontManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C79A5B415B18B0F003F59D1 /* FontManager.h */; };
+ 4C79A5B815B18B1C003F59D1 /* FontManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C79A5B715B18B1C003F59D1 /* FontManager.cpp */; };
+ 4C7AD45615B1E3D000A599F6 /* ApplicationInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD45415B1E3D000A599F6 /* ApplicationInterface.cpp */; };
+ 4C7AD45715B1E3D000A599F6 /* GlobalConst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD45515B1E3D000A599F6 /* GlobalConst.cpp */; };
+ 4C7AD45B15B1E3E300A599F6 /* ApplicationInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7AD45915B1E3E200A599F6 /* ApplicationInterface.h */; };
+ 4C7AD45C15B1E3E300A599F6 /* GlobalConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7AD45A15B1E3E300A599F6 /* GlobalConst.h */; };
+ 4C8CE90615B0A0F400078175 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C8CE90515B0A0F400078175 /* Foundation.framework */; };
+ 4C8CE91715B0A11A00078175 /* DataTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE91515B0A11A00078175 /* DataTypes.h */; };
+ 4C8CE91815B0A11A00078175 /* NewDataTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE91615B0A11A00078175 /* NewDataTypes.h */; };
+ 4C8CE93E15B0A56200078175 /* Console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE93B15B0A56200078175 /* Console.cpp */; };
+ 4C8CE93F15B0A56200078175 /* FileUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE93D15B0A56200078175 /* FileUtils.cpp */; };
+ 4C8CE94615B0A57F00078175 /* console.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94115B0A57F00078175 /* console.h */; };
+ 4C8CE94715B0A57F00078175 /* ErrorTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94315B0A57F00078175 /* ErrorTypes.h */; };
+ 4C8CE94815B0A57F00078175 /* FileUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94515B0A57F00078175 /* FileUtils.h */; };
+ 4C8CE94A15B0A9DA00078175 /* Engine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94915B0A9DA00078175 /* Engine.h */; };
+ 4C8CE94C15B0AA8000078175 /* Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94B15B0AA8000078175 /* Utils.h */; };
+ 4C8CE94F15B0AA9600078175 /* SerializeInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE94E15B0AA9600078175 /* SerializeInterface.h */; };
+ 4C8CE95215B0AAA900078175 /* SerializeInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE95115B0AAA900078175 /* SerializeInterface.cpp */; };
+ 4C8CE95515B0AC2100078175 /* RenderInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE95315B0AC2100078175 /* RenderInterface.cpp */; };
+ 4C8CE95615B0AC2100078175 /* RenderMisc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE95415B0AC2100078175 /* RenderMisc.cpp */; };
+ 4C8CE95B15B0AC4B00078175 /* RenderInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE95915B0AC4B00078175 /* RenderInterface.h */; };
+ 4C8CE95C15B0AC4B00078175 /* RenderMisc.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE95A15B0AC4B00078175 /* RenderMisc.h */; };
+ 4C8CE96515B0B1A600078175 /* SalmonTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE96415B0B1A600078175 /* SalmonTexture.h */; };
+ 4C8CE96815B0B1B700078175 /* SalmonTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE96715B0B1B700078175 /* SalmonTexture.cpp */; };
+ 4C8CE96A15B0B2FD00078175 /* PngHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE96915B0B2FD00078175 /* PngHelper.cpp */; };
+ 4C8CE96C15B0B31F00078175 /* PngHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE96B15B0B31F00078175 /* PngHelper.h */; };
+ 4C8CE97515B0BB9700078175 /* ShaderManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8CE97415B0BB9700078175 /* ShaderManager.h */; };
+ 4C8CE97815B0BBA800078175 /* ShaderManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CE97715B0BBA800078175 /* ShaderManager.cpp */; };
+ 4C902A2B15C565E900FBC901 /* Salmon Engine-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A2A15C565E900FBC901 /* Salmon Engine-Prefix.pch */; };
+ 4C902A2E15C5667800FBC901 /* DataTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A2C15C5667800FBC901 /* DataTypes.cpp */; };
+ 4C902A2F15C5667800FBC901 /* NewDataTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A2D15C5667800FBC901 /* NewDataTypes.cpp */; };
+ 4C902A3715C56A4800FBC901 /* BackgroundCubemap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A3415C56A4800FBC901 /* BackgroundCubemap.cpp */; };
+ 4C902A3815C56A4800FBC901 /* SalmonRenderInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A3515C56A4800FBC901 /* SalmonRenderInterface.cpp */; };
+ 4C902A3915C56A4800FBC901 /* SalmonRenderIos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A3615C56A4800FBC901 /* SalmonRenderIos.cpp */; };
+ 4C902A3D15C56A7300FBC901 /* SalmonEngineInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A3B15C56A7300FBC901 /* SalmonEngineInterface.cpp */; };
+ 4C902A3E15C56A7300FBC901 /* SalmonEngineIos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A3C15C56A7300FBC901 /* SalmonEngineIos.cpp */; };
+ 4C902A4315C56AEA00FBC901 /* BackgroundCubemap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A4015C56AEA00FBC901 /* BackgroundCubemap.h */; };
+ 4C902A4415C56AEA00FBC901 /* SalmonRenderInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A4115C56AEA00FBC901 /* SalmonRenderInterface.h */; };
+ 4C902A4515C56AEA00FBC901 /* SalmonRenderIos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A4215C56AEA00FBC901 /* SalmonRenderIos.h */; };
+ 4C902A4C15C56B3700FBC901 /* SalmonEngineInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A4A15C56B3700FBC901 /* SalmonEngineInterface.h */; };
+ 4C902A4D15C56B3700FBC901 /* SalmonEngineIos.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A4B15C56B3700FBC901 /* SalmonEngineIos.h */; };
+ 4C902A5615C56BEE00FBC901 /* SalmonAnimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A4F15C56BEE00FBC901 /* SalmonAnimation.cpp */; };
+ 4C902A5715C56BEE00FBC901 /* LightManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A5115C56BEE00FBC901 /* LightManager.cpp */; };
+ 4C902A5815C56BEE00FBC901 /* ModelManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A5315C56BEE00FBC901 /* ModelManager.cpp */; };
+ 4C902A5915C56BEE00FBC901 /* SimpleLand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C902A5515C56BEE00FBC901 /* SimpleLand.cpp */; };
+ 4C902A6215C56C0900FBC901 /* SalmonAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A5B15C56C0900FBC901 /* SalmonAnimation.h */; };
+ 4C902A6315C56C0900FBC901 /* LightManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A5D15C56C0900FBC901 /* LightManager.h */; };
+ 4C902A6415C56C0900FBC901 /* ModelManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A5F15C56C0900FBC901 /* ModelManager.h */; };
+ 4C902A6515C56C0900FBC901 /* SimpleLand.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C902A6115C56C0900FBC901 /* SimpleLand.h */; };
+ 4CC1FC3D15B20E440025C6F7 /* IosApi.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC1FC3C15B20E440025C6F7 /* IosApi.h */; };
+ 4CC1FC4015B20E5D0025C6F7 /* IosApi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1FC3F15B20E5D0025C6F7 /* IosApi.mm */; };
+ 4CC857CD1693865C00110F77 /* NewModelManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CC857CC1693865C00110F77 /* NewModelManager.cpp */; };
+ 4CC857D01693867D00110F77 /* RenderParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CC857CF1693867D00110F77 /* RenderParams.cpp */; };
+ 4CC857D2169386A300110F77 /* RenderParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC857D1169386A300110F77 /* RenderParams.h */; };
+ 4CC857D4169386BD00110F77 /* NewModelManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC857D3169386BD00110F77 /* NewModelManager.h */; };
+ 4CD18A1A16727C3F00EDC335 /* SmartValueManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CD18A1916727C3F00EDC335 /* SmartValueManager.cpp */; };
+ 4CD18A1E16727C4E00EDC335 /* SmartValueManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CD18A1D16727C4E00EDC335 /* SmartValueManager.h */; };
+ 4CD18A2016727D4A00EDC335 /* BindableVar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CD18A1F16727D4A00EDC335 /* BindableVar.h */; };
+ 4CEE2DD215CDC55B00C4D5F5 /* SalmonRenderGLES20.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CEE2DD115CDC55B00C4D5F5 /* SalmonRenderGLES20.h */; };
+ 4CEE2DD515CDC57200C4D5F5 /* SalmonRenderGLES20.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CEE2DD415CDC57200C4D5F5 /* SalmonRenderGLES20.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 4C77831A15BABFA6003D5142 /* SoundManagerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SoundManagerInterface.h; path = ../../../include/SoundManager/SoundManagerInterface.h; sourceTree = ""; };
+ 4C77832115BAC035003D5142 /* SoundManagerIos.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SoundManagerIos.mm; path = ../../../src/SoundManager/SoundManagerIos.mm; sourceTree = ""; };
+ 4C77832315BAC070003D5142 /* SoundManagerIos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SoundManagerIos.h; path = ../../../include/SoundManager/SoundManagerIos.h; sourceTree = ""; };
+ 4C79A59E15B1895B003F59D1 /* ScriptManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptManager.cpp; sourceTree = ""; };
+ 4C79A5A115B1896F003F59D1 /* ScriptManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptManager.h; sourceTree = ""; };
+ 4C79A5AE15B18A8B003F59D1 /* FrameManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameManager.h; sourceTree = ""; };
+ 4C79A5B115B18A97003F59D1 /* FrameManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameManager.cpp; sourceTree = ""; };
+ 4C79A5B415B18B0F003F59D1 /* FontManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontManager.h; sourceTree = ""; };
+ 4C79A5B715B18B1C003F59D1 /* FontManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontManager.cpp; sourceTree = "