Closed ghost closed 1 year ago
In case anyone wants to replicate the tests, the following was what I did.
Followed these wiki instructions (just adapted a few path changes).
~$ lsb_release -d
Description: Ubuntu 22.04 LTS
~$ mkdir ANDROID/
~$ cd ANDROID/
~/ANDROID$ mkdir --parents android/sdk/ android/build/ assets/ include/ lib/armeabi-v7a/ lib/arm64-v8a/ lib/x86/ lib/x86_64/ src/
~/ANDROID$ cd android/build/
~/ANDROID$ mkdir --parents obj/ dex/ res/values/ src/com/raylib/game/ assets/
~/ANDROID$ mkdir --parents lib/armeabi-v7a/ lib/arm64-v8a/ lib/x86/ lib/x86_64/
~/ANDROID$ mkdir --parents res/drawable-ldpi/ res/drawable-mdpi/ res/drawable-hdpi/ res/drawable-xhdpi/
~/ANDROID$ cd ../../
~/ANDROID$ sudo apt-get update
~/ANDROID$ sudo apt-get install openjdk-18-jdk
~/ANDROID$ cd ../
Downloaded the current command line tools for Linux from https://developer.android.com/studio/#command-tools.
~$ unzip commandlinetools-linux-10406996_latest.zip
~$ mv cmdline-tools/ ANDROID/android/sdk/
~$ cd ANDROID/android/sdk/cmdline-tools/bin/
~/ANDROID/android/sdk/cmdline-tools/bin$ ./sdkmanager --update --sdk_root=../../
~/ANDROID/android/sdk/cmdline-tools/bin$ ./sdkmanager --install "build-tools;29.0.3" --sdk_root=../../
~/ANDROID/android/sdk/cmdline-tools/bin$ ./sdkmanager --install "platform-tools" --sdk_root=../../
~/ANDROID/android/sdk/cmdline-tools/bin$ ./sdkmanager --install "platforms;android-29" --sdk_root=../../
~/ANDROID/android/sdk/cmdline-tools/bin$ cd ../../../../../
Downloaded the currrent Android NDK Linux from https://developer.android.com/ndk/downloads.
~$ unzip android-ndk-r26-linux.zip
~$ mv android-ndk-r26/ ANDROID/android/ndk/
Downloaded the rcore_platform_split
branch from https://github.com/raysan5/raylib/tree/rcore_platform_split.
~$ unzip raylib-rcore_platform_split.zip
[...]
~$ mv raylib-rcore_platform_split/ ANDROID/raylib/
~$ cd ANDROID/raylib/src/
~/ANDROID/raylib/src$ cp raylib.h ../../include/
~/ANDROID/raylib/src$ make PLATFORM=PLATFORM_ANDROID ANDROID_NDK=../../android/ndk ANDROID_ARCH=arm ANDROID_API_VERSION=29
~/ANDROID/raylib/src$ mv libraylib.a ../../lib/armeabi-v7a/
~/ANDROID/raylib/src$ make clean
~/ANDROID/raylib/src$ make PLATFORM=PLATFORM_ANDROID ANDROID_NDK=../../android/ndk ANDROID_ARCH=arm64 ANDROID_API_VERSION=29
~/ANDROID/raylib/src$ mv libraylib.a ../../lib/arm64-v8a/
~/ANDROID/raylib/src$ make clean
~/ANDROID/raylib/src$ make PLATFORM=PLATFORM_ANDROID ANDROID_NDK=../../android/ndk ANDROID_ARCH=x86 ANDROID_API_VERSION=29
~/ANDROID/raylib/src$ mv libraylib.a ../../lib/x86/
~/ANDROID/raylib/src$ make clean
~/ANDROID/raylib/src$ make PLATFORM=PLATFORM_ANDROID ANDROID_NDK=../../android/ndk ANDROID_ARCH=x86_64 ANDROID_API_VERSION=29
~/ANDROID/raylib/src$ mv libraylib.a ../../lib/x86_64/
~/ANDROID/raylib/src$ make clean
~/ANDROID/raylib/src$ cd ../../
~/ANDROID$ cp raylib/logo/raylib_36x36.png assets/icon_ldpi.png
~/ANDROID$ cp raylib/logo/raylib_48x48.png assets/icon_mdpi.png
~/ANDROID$ cp raylib/logo/raylib_72x72.png assets/icon_hdpi.png
~/ANDROID$ cp raylib/logo/raylib_96x96.png assets/icon_xhdpi.png
~/ANDROID$ cd android/
~/ANDROID/android$ keytool -genkeypair -validity 1000 -dname "CN=raylib,O=Android,C=ES" -keystore raylib.keystore -storepass 'raylib' -keypass 'raylib' -alias projectKey -keyalg RSA
~/ANDROID/android$ cd ../
Created the ~/ANDROID/android/build/src/com/raylib/game/NativeLoader.java
file like https://github.com/raysan5/raylib/wiki/Working-for-Android-(on-Linux)#prepare-project:
package com.raylib.game;
public class NativeLoader extends android.app.NativeActivity {
static {
System.loadLibrary("main");
}
}
Created the ~/ANDROID/android/build/AndroidManifest.xml
file like https://github.com/raysan5/raylib/wiki/Working-for-Android-(on-Linux)#prepare-project:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.raylib.game"
android:versionCode="1" android:versionName="1.0" >
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application android:allowBackup="false" android:label="Game" android:icon="@drawable/icon">
<activity android:name="com.raylib.game.NativeLoader"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="landscape" android:launchMode="singleTask"
android:clearTaskOnLaunch="true">
<meta-data android:name="android.app.lib_name" android:value="main"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Created the ~/ANDROID/build_android.sh
script like https://github.com/raysan5/raylib/wiki/Working-for-Android-(on-Linux)#build (changes: commented the last line):
#!/bin/sh
# ______________________________________________________________________________
#
# Compile raylib project for Android
# ______________________________________________________________________________
#
# NOTE: If you excluded any ABIs in the previous steps, remove them from this list too
# TODO: arm64-v8a building doesn't work, ARM64 devices can still run the 32 bit version:
# /usr/bin/ld: /tmp/main-08f12a.o: Relocations in generic ELF (EM: 183)
# /usr/bin/ld: /tmp/main-08f12a.o: Relocations in generic ELF (EM: 183)
# /usr/bin/ld: /tmp/main-08f12a.o: error adding symbols: file in wrong format
ABIS="armeabi-v7a x86 x86_64"
BUILD_TOOLS=android/sdk/build-tools/22.0.1
TOOLCHAIN=android/ndk/toolchains/llvm/prebuilt/linux-x86_64
NATIVE_APP_GLUE=android/ndk/sources/android/native_app_glue
FLAGS="-ffunction-sections -funwind-tables -fstack-protector-strong -fPIC -Wall \
-Wformat -Werror=format-security -no-canonical-prefixes \
-DANDROID -DPLATFORM_ANDROID -D__ANDROID_API__=22"
INCLUDES="-I. -Iinclude -I../include -I$NATIVE_APP_GLUE -I$TOOLCHAIN/sysroot/usr/include"
# Copy icons
cp assets/icon_ldpi.png android/build/res/drawable-ldpi/icon.png
cp assets/icon_mdpi.png android/build/res/drawable-mdpi/icon.png
cp assets/icon_hdpi.png android/build/res/drawable-hdpi/icon.png
cp assets/icon_xhdpi.png android/build/res/drawable-xhdpi/icon.png
# Copy other assets
cp assets/* android/build/assets
# ______________________________________________________________________________
#
# Compile
# ______________________________________________________________________________
#
for ABI in $ABIS; do
case "$ABI" in
"armeabi-v7a")
CCTYPE="armv7a-linux-androideabi"
ABI_FLAGS="-std=c99 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
;;
"arm64-v8a")
CCTYPE="aarch64-linux-android"
ABI_FLAGS="-std=c99 -target aarch64 -mfix-cortex-a53-835769"
;;
"x86")
CCTYPE="i686-linux-android"
ABI_FLAGS=""
;;
"x86_64")
CCTYPE="x86_64-linux-android"
ABI_FLAGS=""
;;
esac
CC="$TOOLCHAIN/bin/${CCTYPE}22-clang"
# Compile native app glue
# .c -> .o
$CC -c $NATIVE_APP_GLUE/android_native_app_glue.c -o $NATIVE_APP_GLUE/native_app_glue.o \
$INCLUDES -I$TOOLCHAIN/sysroot/usr/include/$CCTYPE $FLAGS $ABI_FLAGS
# .o -> .a
$TOOLCHAIN/bin/llvm-ar rcs lib/$ABI/libnative_app_glue.a $NATIVE_APP_GLUE/native_app_glue.o
# Compile project
$CC src/*.c -o android/build/lib/$ABI/libmain.so -shared \
$INCLUDES -I$TOOLCHAIN/sysroot/usr/include/$CCTYPE $FLAGS $ABI_FLAGS \
-Wl,-soname,libmain.so -Wl,--exclude-libs,libatomic.a -Wl,--build-id \
-Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now \
-Wl,--warn-shared-textrel -Wl,--fatal-warnings -u ANativeActivity_onCreate \
-L. -Landroid/build/obj -Llib/$ABI \
-lraylib -lnative_app_glue -llog -landroid -lEGL -lGLESv2 -lOpenSLES -latomic -lc -lm -ldl
done
# ______________________________________________________________________________
#
# Build APK
# ______________________________________________________________________________
#
$BUILD_TOOLS/aapt package -f -m \
-S android/build/res -J android/build/src -M android/build/AndroidManifest.xml \
-I android/sdk/platforms/android-22/android.jar
# Compile NativeLoader.java
javac -verbose -source 1.8 -target 1.8 -d android/build/obj \
-bootclasspath jre/lib/rt.jar \
-classpath android/sdk/platforms/android-22/android.jar:android/build/obj \
-sourcepath src android/build/src/com/raylib/game/R.java \
android/build/src/com/raylib/game/NativeLoader.java
$BUILD_TOOLS/dx --verbose --dex --output=android/build/dex/classes.dex android/build/obj
# Add resources and assets to APK
$BUILD_TOOLS/aapt package -f \
-M android/build/AndroidManifest.xml -S android/build/res -A assets \
-I android/sdk/platforms/android-22/android.jar -F game.apk android/build/dex
# Add libraries to APK
cd android/build
for ABI in $ABIS; do
../../$BUILD_TOOLS/aapt add ../../game.apk lib/$ABI/libmain.so
done
cd ../..
# Sign and zipalign APK
# NOTE: If you changed the storepass and keypass in the setup process, change them here too
jarsigner -keystore android/raylib.keystore -storepass raylib -keypass raylib \
-signedjar game.apk game.apk projectKey
$BUILD_TOOLS/zipalign -f 4 game.apk game.final.apk
mv -f game.final.apk game.apk
# Install to device or emulator
#android/sdk/platform-tools/adb install -r game.apk
Compiled each example like:
~/ANDROID$ chmod +x build_android.sh
~/ANDROID$ cp raylib/examples/core/example_name.c src/
~/ANDROID$ ./build_android.sh
A game.apk
will be generated inside the ~/ANDROID/
directory.
Unfortunately my device is stuck Android 5.1.1
. I was not able to rollback the necessary tools/pipeline to a previous version that would compile a working apk
for it. Looks like 5.1.1
is far too old and too much has changed on the Android building process since then (e.g.: gcc
to clang
, etc).
So, to test it, I had to resort to Waydroid
(website, documentation, installation). Sadly, Waydroid
requires Wayland
, so I had to install Fedora
(38 64-bit) to run it. But then I was able to successfully test the apk
files on Android 11
running on Waydroid
.
1: editing.
example | compile | run | comment |
---|---|---|---|
audio_mixed_processor.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
audio_module_playing.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
audio_music_stream.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
audio_raw_stream.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
audio_sound_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
audio_sound_multi.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
audio_stream_effects.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3: update status, formatting.
example | compile | run | comment |
---|---|---|---|
core_2d_camera.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_2d_camera_mouse_zoom.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_2d_camera_platformer.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_2d_camera_split_screen.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_3d_camera_first_person.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_3d_camera_free.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_3d_camera_mode.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_3d_camera_split_screen.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_3d_picking.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_basic_screen_manager.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_basic_window.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_basic_window_web.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_custom_frame_control.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_custom_logging.c |
:heavy_check_mark: | :heavy_check_mark: | 1, 2 |
core_drop_files.c |
:heavy_check_mark: | :heavy_check_mark: | 1, 2 |
core_input_gamepad.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_input_gestures.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_input_gestures_web.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_input_keys.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_input_mouse.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_input_mouse_wheel.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_input_multitouch.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_loading_thread.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_random_values.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_scissor_test.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_smooth_pixelperfect.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_storage_values.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_vr_simulator.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_window_flags.c |
:heavy_check_mark: | :heavy_check_mark: | 1, 2 |
core_window_letterbox.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
core_window_should_close.c |
:heavy_check_mark: | :heavy_check_mark: | 1, 2 |
core_world_screen.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3: update status, formatting.
example | compile | run | comment |
---|---|---|---|
models_animation.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_billboard.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_box_collisions.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_cubicmap.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_draw_cube_texture.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_first_person_maze.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_geometric_shapes.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_heightmap.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_loading_gltf.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_loading_m3d.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_loading_vox.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_mesh_generation.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_mesh_picking.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_orthographic_projection.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_rlgl_solar_system.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_skybox.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_waving_cubes.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
models_yaw_pitch_roll.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3: update status, formatting.
example | compile | run | comment |
---|---|---|---|
easings_testbed.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
embedded_files_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
raylib_opengl_interop.c |
:x: | :x: | 2 |
raymath_vector_angle.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
rlgl_compute_shader.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
rlgl_standalone.c |
:x: | :x: | 2 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3: update status, formatting.
example | compile | run | comment |
---|---|---|---|
shaders_basic_lighting.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_custom_uniform.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_eratosthenes.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_fog.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_hot_reloading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_hybrid_render.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_julia_set.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_lightmap.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_mesh_instancing.c |
:heavy_check_mark: | :x: | 1, 2 |
shaders_model_shader.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_multi_sample2d.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_palette_switch.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_postprocessing.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_raymarching.c |
:heavy_check_mark: | :heavy_check_mark: | 1, 2 |
shaders_shapes_textures.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_simple_mask.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_spotlight.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_texture_drawing.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_texture_outline.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_texture_waves.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shaders_write_depth.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3: update status, formatting.
example | compile | run | comment |
---|---|---|---|
shapes_basic_shapes.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_bouncing_ball.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_collision_area.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_colors_palette.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_draw_circle_sector.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_draw_rectangle_rounded.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_draw_ring.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_easings_ball_anim.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_easings_box_anim.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_easings_rectangle_array.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_following_eyes.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_lines_bezier.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_lines_splines.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_logo_raylib.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_logo_raylib_anim.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_rectangle_scaling.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
shapes_top_down_lights.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3, 4: update status, formatting.
example | compile | run | comment |
---|---|---|---|
text_codepoints_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_draw_3d.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_font_filters.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_font_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_font_sdf.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_font_spritefont.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_format_text.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_input_box.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_raylib_fonts.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_rectangle_bounds.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_unicode.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
text_writing_anim.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3, 4: update status, formatting.
example | compile | run | comment |
---|---|---|---|
textures_background_scrolling.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_blend_modes.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_bunnymark.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_draw_tiled.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_fog_of_war.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_gif_player.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_image_drawing.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_image_generation.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_image_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_image_processing.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_image_rotate.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_image_text.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_logo_raylib.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_mouse_painting.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_npatch_drawing.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_particles_blending.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_polygon.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_raw_data.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_sprite_anim.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_sprite_button.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_sprite_explosion.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_srcrec_dstrec.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_svg_loading.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_textured_curve.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
textures_to_image.c |
:heavy_check_mark: | :heavy_check_mark: | 1 |
Comments at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Edits 1, 2, 3, 4: update status, formatting.
:heavy_check_mark: Mouse movement is working, as seen on core_input_mouse
example.
:x: Mouse buttons are not working on raylib
on Waydroid
, they appear to be stuck on pressed on Waydroid
.
:heavy_check_mark: Keyboard input is working, but the binds are bugged on Waydroid
(e.g. space
is on d
, d
is on backtick
, f
is on =
). Tested current master branch (bc15c19) and the same happened there with Waydroid
, so it's not a split issue.
:x: Gestures are not working on Waydroid
.
:x: Not sure if this example is meant to run on PLATFORM_ANDROID
.
Edits 1, 2, 3: update status.
With @michaelfiber being able to confirm that the mouse input is working at https://github.com/raysan5/raylib/issues/3313#issuecomment-1751786681, I guess this finishes the PLATFORM_ANDROID
testing. So I'm closing this issue as completed. :+1:
@ubkp @michaelfiber do you think it's about time to merge this redesign into master? It's a bit scary for me but there are MANY rcore
issues waiting and probably we shouldn't wait way longer...
I've been using rcore_platform_split
branch for my tools development on desktop and web for a couple of weeks and everything seems to work ok.
Issue to more easily track
PLATFORM_ANDROID
status for:3313
Modules checked status
raylib
examples/audio
examples/core
examples/models
examples/others
examples/shaders
examples/shapes
examples/text
examples/textures
Notes at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.
Functions checked status
InitGraphicsDevice
SetupViewport
SetupFramebuffer
InitTimer
InitWindow
WindowShouldClose
CloseWindow
IsWindowReady
IsWindowFullscreen
IsWindowHidden
IsWindowMinimized
IsWindowMaximized
IsWindowFocused
IsWindowResized
IsWindowState
ToggleFullscreen
MaximizeWindow
MinimizeWindow
RestoreWindow
ToggleBorderlessWindowed
SetWindowState
ClearWindowState
SetWindowIcon
SetWindowIcons
SetWindowTitle
SetWindowPosition
SetWindowMonitor
SetWindowMinSize
SetWindowMaxSize
SetWindowSize
SetWindowOpacity
SetWindowFocused
GetWindowHandle
GetScreenWidth
GetScreenHeight
GetRenderWidth
GetRenderHeight
GetMonitorCount
GetCurrentMonitor
GetMonitorPosition
GetMonitorWidth
GetMonitorHeight
GetMonitorPhysicalWidth
GetMonitorPhysicalHeight
GetMonitorRefreshRate
GetWindowPosition
GetWindowScaleDPI
GetMonitorName
SetClipboardText
GetClipboardText
EnableEventWaiting
DisableEventWaiting
SwapScreenBuffer
PollInputEvents
WaitTime
ShowCursor
HideCursor
IsCursorHidden
EnableCursor
DisableCursor
IsCursorOnScreen
ClearBackground
BeginDrawing
EndDrawing
BeginMode2D
EndMode2D
BeginMode3D
EndMode3D
BeginTextureMode
EndTextureMode
BeginShaderMode
EndShaderMode
BeginBlendMode
EndBlendMode
BeginScissorMode
EndScissorMode
BeginVrStereoMode
EndVrStereoMode
LoadVrStereoConfig
UnloadVrStereoConfig
LoadShader
LoadShaderFromMemory
IsShaderReady
UnloadShader
GetShaderLocation
GetShaderLocationAttrib
SetShaderValue
SetShaderValueV
SetShaderValueMatrix
SetShaderValueTexture
GetMouseRay
GetCameraMatrix
GetCameraMatrix2D
GetWorldToScreen
GetWorldToScreenEx
GetWorldToScreen2D
GetScreenToWorld2D
SetTargetFPS
GetFPS
GetFrameTime
GetTime
SetConfigFlags
TakeScreenshot
GetRandomValue
SetRandomSeed
OpenURL
FileExists
IsFileExtension
DirectoryExists
GetFileLength
GetFileExtension
GetFileName
GetFileNameWithoutExt
GetDirectoryPath
GetPrevDirectoryPath
GetWorkingDirectory
GetApplicationDirectory
LoadDirectoryFiles
LoadDirectoryFilesEx
UnloadDirectoryFiles
ChangeDirectory
IsPathFile
IsFileDropped
LoadDroppedFiles
UnloadDroppedFiles
GetFileModTime
ScanDirectoryFiles
ScanDirectoryFilesRecursively
CompressData
DecompressData
EncodeDataBase64
DecodeDataBase64
IsKeyPressed
IsKeyDown
IsKeyReleased
IsKeyUp
GetKeyPressed
GetCharPressed
SetExitKey
IsGamepadAvailable
GetGamepadName
GetGamepadAxisCount
GetGamepadAxisMovement
IsGamepadButtonPressed
IsGamepadButtonDown
IsGamepadButtonReleased
IsGamepadButtonUp
GetGamepadButtonPressed
SetGamepadMappings
IsMouseButtonPressed
IsMouseButtonDown
IsMouseButtonReleased
IsMouseButtonUp
GetMouseX
GetMouseY
GetMousePosition
GetMouseDelta
SetMousePosition
SetMouseOffset
SetMouseScale
GetMouseWheelMove
GetMouseWheelMoveV
SetMouseCursor
GetTouchX
GetTouchY
GetTouchPosition
GetTouchPointId
GetTouchPointCount
Changelog
3360
3364
Environment
PLATFORM_ANDROID
on Linux (Ubuntu 22.04 64-bit).Android 11
withWaydroid
on Linux (Fedora 38 64-bit) with Wayland.Edits
1: formatting. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11: updated modules status.