Praeparans SDL2 project currere in Android

Hi omnes. Hodie spectabimus quomodo consilium bibliothecae sdl2 utens ad ludum Android currendum est.

Primum debes Android Studio download, eam institue et omnia quae in hac evolutionis progressu opus sunt. Exempli gratia, Kde Neon nunc habeo, et in hoc systemate fasciculus /etc/environment est, idem fasciculus in Decuria exstat. Variabiles sequentes ibi notari necesse est.

ANDROID_HOME=/home/username/Android/Sdk
ANDROID_NDK_HOME=/home/username/ndk

Etiam opus est ut NDK ex rutrum deprimas, eam in domum tuam solve et eam ad NDK nominandum. Proximam debes bibliothecam SDL2 ex pagina detrahere libsdl.org. Uti sdl2 pro android, magni momenti est non compilare pro computatro, quia tunc non erit pro android. Ut ad propositum ordinandum, consilium in MASCULI studio creare debes, quivis licentiam accipiendi, alioquin licentiam aedificandi SDL2 petet.

Lima in MASCULINUS ex bonis legere, functionibus SDL_RWops uti debes. Exemplum est usus in codice ad operandum cum fonte. In hoc casu, FT_New_Face uti non possumus, sed potius FT_New_Memory_Face utetur ut notitia quae iam recitata est.

#ifdef __ANDROID__
        snprintf ( path, 254, "fonts/%s", file );
        SDL_RWops *rw = SDL_RWFromFile(path, "r" );
        char *memory = ( char * ) calloc ( rw->hidden.androidio.size, 1 );
        SDL_RWread(rw, memory, 1, rw->hidden.androidio.size );

        FT_New_Memory_Face(*this->ft_library, ( const FT_Byte  * )memory, rw->hidden.androidio.size, 0, &this;->face );
        SDL_RWclose(rw);
        free ( memory );
#else
        snprintf ( path, 254, "%s/fonts/%s", DEFAULT_ASSETS, file );
        if ( access ( path, F_OK ) ) {
                fprintf ( stderr, "not found font: %sn", path );
                exit ( EXIT_FAILURE );
        }
        struct stat st;
        stat ( path, &st; );
        FILE *rw = fopen ( path, "r" );
        char *memory = ( char * ) calloc ( st.st_size, 1 );
        fread ( memory, 1, st.st_size, rw );

        FT_New_Memory_Face ( *this->ft_library, ( const FT_Byte * ) memory, st.st_size, 0, &this;->face );
        fclose ( rw );
        free ( memory );
#endif

Ego etiam fasciculum capitale creavit ad capitis capita coniungendi SDL2. NO_SDL_GLEXT opus est ad compilationem ut in Android succedat.

#ifdef __ANDROID__
#include "SDL.h"
#include "SDL_video.h"
#include "SDL_events.h"
#define NO_SDL_GLEXT 
#include "SDL_opengl.h"
#include "SDL_opengles2.h"
#else
#include <SDL2/SDL.h>
#include <SDL2/SDL_video.h>
#include <SDL2/SDL_opengl.h>
#include <SDL2/SDL_opengles2.h>
#endif

Ita consilium est paratum, umbrae paratae sunt ad Opengl Es 3.0. Nunc opus est ut Android-projectum crearet. Ad hoc efficiendum, archivum solve SDL2. Ire condere-scriptu. Et nos sic facimus.

./androidbuild.sh com.xverizex.test main.cpp

Sequens nuntius apparebit.

To build and install to a device for testing, run the following:
cd /home/cf/programs/SDL2-2.0.10/build/com.xverizex.test
./gradlew installDebug

Ite ad com.xverizex.test. Vade ad com.xverizex.test/app/jni/src. Escribimus nostrum ludum project. Et file Android.mk mutamus, in casu meo hoc simile videtur.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := main

SDL_PATH := ../SDL
FREETYPE_PATH := ../Freetype2

LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include $(LOCAL_PATH)/$(FREETYPE_PATH)/include

# Add your application source files here...
LOCAL_SRC_FILES := ./engine/lang.cpp ./engine/actor.cpp ./engine/sprite.cpp ./engine/shaders.cpp ./engine/box.cpp ./engine/menubox.cpp ./engine/load_manager.cpp ./engine/main.cpp ./engine/font.cpp ./engine/model.cpp ./engine/button.cpp ./theme.cpp ./level_manager.cpp ./menu/menu.cpp

LOCAL_SHARED_LIBRARIES := SDL2 Freetype2

LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog 

include $(BUILD_SHARED_LIBRARY)

Ut iam notavi, etiam bibliothecam Freetype2 complector. Paratum unum in github pro android inveni, sed opus non erat, aliquid mutare opus erat. Etiam directorium app/src/main/res creamus. Nostras facultates in ea ponimus (fonts, mentes, 3D exempla).

Nunc Freetype2 configurare pro Android. Download de github Linket effingo Directorium Freetype2 ad directorium app/jni/. Omnia parata sunt. Nunc percurre mandatum ./gradlew installDebug in com.xverizex.test. Ludum hunc ad MASCULINUS addere posse, debugging debet in android. Ad hoc faciendum, necesse est ire ad occasus, ad "System", vade ad "De tabula" et deprime "numerum aedifica" optio circiter sexiens. Revertere ergo et optiones tincidunt apparebit. Ingredere et converte illum, etiam converte in optionem "USB Debugging". Nunc clavem tabulae obtinere debes. Ad hoc faciendum, programmata adb institue. Testam adb in console deducimus, et clavis in tabula accipienda apparet. Id est, nunc ludi tabulae tuae demi possunt.

Source: www.habr.com