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
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
Source: www.habr.com