Mhoroi mose. Nhasi tichatarisa maitiro ekugadzirira chirongwa uchishandisa sdl2 raibhurari yekumhanyisa mutambo pa Android.
Kutanga iwe unofanirwa kudhawunirodha Android Studio, kuiisa uye zvese zvinodiwa munzvimbo ino yekuvandudza. Semuenzaniso, ini zvino ndine Kde Neon, uye pane ino system pane faira /etc/environment, iyo yakafanana faira iripo mu ubuntu. Izvi zvinotevera zvakasiyana zvinoda kuiswa ipapo.
ANDROID_HOME=/home/username/Android/Sdk
ANDROID_NDK_HOME=/home/username/ndk
Iwe zvakare unofanirwa kudhawunirodha NDK kubva kune yepamutemo webhusaiti, kuiburitsa mudhairekitori rako repamba uye uipe zita rekuti NDK. Tevere iwe unofanirwa kudhawunirodha SDL2 raibhurari kubva pawebhusaiti
Kuti uverenge mafaera muandroid kubva pazvinhu, unofanirwa kushandisa iyo SDL_RWops mabasa. Heino muenzaniso wekushandiswa mukodhi yekushanda nefonti. Muchiitiko ichi, hatigone kushandisa FT_New_Face, asi toshandisa FT_New_Memory_Face kushandisa data rakatoverengwa.
#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
Ini zvakare ndakagadzira faira remusoro kubatanidza SDL2 misoro. NO_SDL_GLEXT inodiwa kuti kuunganidzwa kubudirire paAndroid.
#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
Saka purojekiti yakagadzirira, shaders yakagadzirira Opengl Es 3.0. Iye zvino tinoda kugadzira android-purojekiti. Kuti uite izvi, sunungura iyo SDL2 archive. Enda kune kuvaka-scripts. Uye tinozviita seizvi.
./androidbuild.sh com.xverizex.test main.cpp
Meseji inotevera ichabuda.
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
Enda kucom.xverizex.test. Enda kucom.xverizex.test/app/jni/src. Isu tinotevedzera chirongwa chedu chemutambo. Uye isu tinoshandura iyo Android.mk faira, mune yangu inotaridzika seizvi.
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)
Sezvaungave watoona kare, ini ndinosanganisirawo raibhurari yeFreetype2. Ndakawana yakagadzirira-yakagadzirwa pa github ye android, asi haina kushanda, ndaida kuchinja chimwe chinhu. Isu zvakare tinogadzira dhairekitori app/src/main/assets. Isu tinoisa zviwanikwa zvedu mairi (mafonti, sprites, 3D mhando).
Zvino ngatigadzirirei Freetype2 ye Android. Dhawunirodha kubva kugithub yangu
Source: www.habr.com