Ndewo, unu niile. Taa, anyị ga-eleba anya ka esi akwadebe ọrụ site na iji ọba akwụkwọ sdl2 iji mee egwuregwu na gam akporo.
Mbụ ịkwesịrị ibudata Android Studio, wụnye ya, na ihe niile ọzọ achọrọ maka gburugburu mmepe a. Dịka ọmụmaatụ, enwere m KDE Neon ugbu a, na sistemụ a enwere faịlụ /etc/environment, otu faịlụ ahụ dịkwa na ubuntuỊkwesịrị ịdenye aha mgbanwe ndị a ebe ahụ.
ANDROID_HOME=/home/username/Android/Sdk
ANDROID_NDK_HOME=/home/username/ndk
Ịkwesịrị ibudata NDK site na webụsaịtị gọọmentị, bupụ ya na ndekọ ụlọ gị wee nyegharịa ya aha NDK. Ọzọ ị ga-ebudata ọba akwụkwọ SDL2 na webụsaịtị . Iji sdl2 maka android, ọ dị mkpa ka ị ghara ikpokọta ya maka kọmputa, n'ihi na mgbe ahụ ọ gaghị achịkọta maka android. Iji chịkọta ọrụ ahụ, ịkwesịrị ịmepụta ọrụ na studio android, onye ọ bụla, ịnakwere ikike, ma ọ bụghị ya, SDL2 ga-arịọ maka ikike mgbe ị na-ewu ụlọ.
Iji gụọ faịlụ na android site na akụ, ịkwesịrị iji ọrụ SDL_RWops. Nke a bụ ọmụmaatụ ojiji na koodu maka iji font arụ ọrụ. N'okwu a, anyị enweghị ike iji FT_New_Face, mana anyị ga-eji FT_New_Memory_Face iji jiri data agụburu.
#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
Emekwara m faịlụ isi okwu ka ọ tinye isi okwu SDL2. A chọrọ NO_SDL_GLEXT ka nchịkọta wee nwee ihe ịga nke ọma. Android.
#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
Ya mere, oru ngo a dị njikere, ihe ndò dị njikere maka Opengl Es 3.0. Ugbu a, anyị kwesịrị ịmepụta android-project. Iji mee nke a, wepụ ihe nchekwa SDL2. Gaa na-ewu-scripts. Anyị na-emekwa ya otu a.
./androidbuild.sh com.xverizex.test main.cpp
Ozi na-esonụ ga-apụta.
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
Gaa na com.xverizex.test. Gaa na com.xverizex.test/app/jni/src. Detuo ọrụ egwuregwu gị. Ma gbanwee faịlụ ahụ. Android.mk, n'ọnọdụ m ọ dị ka nke a.
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)
Dịka ị chọpụtala, agụnyekwara m ọbá akwụkwọ Freetype2. Achọtara m ihe dị njikere na github maka android, mana ọ naghị arụ ọrụ, achọrọ m ịgbanwe ihe. Anyị na-emepụtakwa ngwa ndekọ aha/src/isi/ihe onwunwe. Anyị na-etinye ihe onwunwe anyị na ya (font, sprites, 3D model).
Ugbu a, ka anyị tinye Freetype2 maka AndroidBudata na GitHub m , ma detuo akwụkwọ ndekọ Freetype2 na ngwa/jni/ ndekọ. Ihe niile dị njikere. Ugbu a gbanye iwu ./gradlew installDebug na com.xverizex.test. Iji nwee ike itinye egwuregwu a na android, a ga-agbanyerịrị nbipu na android. Iji mee nke a, ịkwesịrị ịga na ntọala, gaa na "System", gaa na "About tablet" wee pịa nhọrọ "Mepụta nọmba" ihe dị ka ugboro isii. Mgbe ahụ laghachi azụ na nhọrọ maka mmepe ga-apụta. Banye ma gbanye ya, gbanyekwa nhọrọ "USB Debugging" nhọrọ. Ugbu a ịkwesịrị ịnweta igodo maka mbadamba. Iji mee nke a, wụnye mmemme adb. Anyị na-ewepụta adb shei na console, igodo na-egosi na mbadamba ihe a ga-anabatarịrị. Nke ahụ bụ ya, ugbu a enwere ike ibudata egwuregwu na mbadamba ihe gị.
isi: www.habr.com
