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 gam akporo Studio, wụnye ya na ihe niile achọrọ na gburugburu mmepe a. Dịka ọmụmaatụ, enwere m Kde Neon ugbu a, na sistemụ a enwere faịlụ /etc/environment, otu faịlụ dị na ubuntu. Ekwesịrị itinye mgbanwe ndị a n'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 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ụ nkụnye eji isi mee jikọọ isi SDL2. NO_SDL_GLEXT dị mkpa maka nchịkọta iji gaa nke ọma na gam akporo.
#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. Anyị na-eṅomi ọrụ egwuregwu anyị. Ma anyị na-agbanwe faịlụ 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ị hazie Freetype2 maka gam akporo. Budata na github m
isi: www.habr.com