raysan5 / raylib

A simple and easy-to-use library to enjoy videogames programming
http://www.raylib.com
zlib License
22.44k stars 2.25k forks source link

[core] Platforms split into separate modules: `PLATFORM_ANDROID` status #3371

Closed ghost closed 1 year ago

ghost commented 1 year ago

Issue to more easily track PLATFORM_ANDROID status for:

Modules checked status

module checked
raylib :heavy_check_mark:
examples/audio :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384072
examples/core :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384185
examples/models :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384338
examples/others :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384508
examples/shaders :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384624
examples/shapes :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384741
examples/text :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747384873
examples/textures :heavy_check_mark: https://github.com/raysan5/raylib/issues/3371#issuecomment-1747385023

Notes at https://github.com/raysan5/raylib/issues/3371#issuecomment-1747387370.

Functions checked status

function core android comment
InitGraphicsDevice - :heavy_check_mark: -
SetupViewport :heavy_check_mark: - -
SetupFramebuffer :heavy_check_mark: - -
InitTimer :heavy_check_mark: - -
- core android comment
InitWindow - :heavy_check_mark: -
WindowShouldClose - :heavy_check_mark: -
CloseWindow - :heavy_check_mark: -
IsWindowReady :heavy_check_mark: - -
IsWindowFullscreen :heavy_check_mark: - -
IsWindowHidden - :heavy_check_mark: -
IsWindowMinimized - :heavy_check_mark: -
IsWindowMaximized - :heavy_check_mark: -
IsWindowFocused - :heavy_check_mark: -
IsWindowResized - :heavy_check_mark: -
IsWindowState :heavy_check_mark: - -
ToggleFullscreen - :heavy_check_mark: -
MaximizeWindow - :heavy_check_mark: -
MinimizeWindow - :heavy_check_mark: -
RestoreWindow - :heavy_check_mark: -
ToggleBorderlessWindowed - :heavy_check_mark: -
SetWindowState - :heavy_check_mark: -
ClearWindowState - :heavy_check_mark: -
SetWindowIcon - :heavy_check_mark: -
SetWindowIcons - :heavy_check_mark: -
SetWindowTitle - :heavy_check_mark: -
SetWindowPosition - :heavy_check_mark: -
SetWindowMonitor - :heavy_check_mark: -
SetWindowMinSize - :heavy_check_mark: -
SetWindowMaxSize - :heavy_check_mark: -
SetWindowSize - :heavy_check_mark: -
SetWindowOpacity - :heavy_check_mark: -
SetWindowFocused - :heavy_check_mark: -
GetWindowHandle - :heavy_check_mark: -
GetScreenWidth :heavy_check_mark: - -
GetScreenHeight :heavy_check_mark: - -
GetRenderWidth :heavy_check_mark: - -
GetRenderHeight :heavy_check_mark: - -
GetMonitorCount - :heavy_check_mark: -
GetCurrentMonitor - :heavy_check_mark: -
GetMonitorPosition - :heavy_check_mark: -
GetMonitorWidth - :heavy_check_mark: -
GetMonitorHeight - :heavy_check_mark: -
GetMonitorPhysicalWidth - :heavy_check_mark: -
GetMonitorPhysicalHeight - :heavy_check_mark: -
GetMonitorRefreshRate - :heavy_check_mark: -
GetWindowPosition - :heavy_check_mark: -
GetWindowScaleDPI - :heavy_check_mark: -
GetMonitorName - :heavy_check_mark: -
SetClipboardText - :heavy_check_mark: -
GetClipboardText - :heavy_check_mark: -
EnableEventWaiting :heavy_check_mark: - -
DisableEventWaiting :heavy_check_mark: - -
- core android comment
SwapScreenBuffer - :heavy_check_mark: -
PollInputEvents - :heavy_check_mark: -
WaitTime :heavy_check_mark: - -
- core android comment
ShowCursor - :heavy_check_mark: -
HideCursor - :heavy_check_mark: -
IsCursorHidden :heavy_check_mark: - -
EnableCursor - :heavy_check_mark: -
DisableCursor - :heavy_check_mark: -
IsCursorOnScreen :heavy_check_mark: - -
- core android comment
ClearBackground :heavy_check_mark: - -
BeginDrawing :heavy_check_mark: - -
EndDrawing :heavy_check_mark: - -
BeginMode2D :heavy_check_mark: - -
EndMode2D :heavy_check_mark: - -
BeginMode3D :heavy_check_mark: - -
EndMode3D :heavy_check_mark: - -
BeginTextureMode :heavy_check_mark: - -
EndTextureMode :heavy_check_mark: - -
BeginShaderMode :heavy_check_mark: - -
EndShaderMode :heavy_check_mark: - -
BeginBlendMode :heavy_check_mark: - -
EndBlendMode :heavy_check_mark: - -
BeginScissorMode :heavy_check_mark: - -
EndScissorMode :heavy_check_mark: - -
BeginVrStereoMode :heavy_check_mark: - -
EndVrStereoMode :heavy_check_mark: - -
- core android comment
LoadVrStereoConfig :heavy_check_mark: - -
UnloadVrStereoConfig :heavy_check_mark: - -
- core android comment
LoadShader :heavy_check_mark: - -
LoadShaderFromMemory :heavy_check_mark: - -
IsShaderReady :heavy_check_mark: - -
UnloadShader :heavy_check_mark: - -
GetShaderLocation :heavy_check_mark: - -
GetShaderLocationAttrib :heavy_check_mark: - -
SetShaderValue :heavy_check_mark: - -
SetShaderValueV :heavy_check_mark: - -
SetShaderValueMatrix :heavy_check_mark: - -
SetShaderValueTexture :heavy_check_mark: - -
- core android comment
GetMouseRay :heavy_check_mark: - -
GetCameraMatrix :heavy_check_mark: - -
GetCameraMatrix2D :heavy_check_mark: - -
GetWorldToScreen :heavy_check_mark: - -
GetWorldToScreenEx :heavy_check_mark: - -
GetWorldToScreen2D :heavy_check_mark: - -
GetScreenToWorld2D :heavy_check_mark: - -
- core android comment
SetTargetFPS :heavy_check_mark: - -
GetFPS :heavy_check_mark: - -
GetFrameTime :heavy_check_mark: - -
GetTime - :heavy_check_mark: -
- core android comment
SetConfigFlags :heavy_check_mark: - -
TakeScreenshot - :heavy_check_mark: -
GetRandomValue :heavy_check_mark: - -
SetRandomSeed :heavy_check_mark: - -
- core android comment
OpenURL - :heavy_check_mark: -
- core android comment
FileExists :heavy_check_mark: - -
IsFileExtension :heavy_check_mark: - -
DirectoryExists :heavy_check_mark: - -
GetFileLength :heavy_check_mark: - -
GetFileExtension :heavy_check_mark: - -
GetFileName :heavy_check_mark: - -
GetFileNameWithoutExt :heavy_check_mark: - -
GetDirectoryPath :heavy_check_mark: - -
GetPrevDirectoryPath :heavy_check_mark: - -
GetWorkingDirectory :heavy_check_mark: - -
GetApplicationDirectory :heavy_check_mark: - -
LoadDirectoryFiles :heavy_check_mark: - -
LoadDirectoryFilesEx :heavy_check_mark: - -
UnloadDirectoryFiles :heavy_check_mark: - -
ChangeDirectory :heavy_check_mark: - -
IsPathFile :heavy_check_mark: - -
IsFileDropped :heavy_check_mark: - -
LoadDroppedFiles :heavy_check_mark: - -
UnloadDroppedFiles :heavy_check_mark: - -
GetFileModTime :heavy_check_mark: - -
- core android comment
ScanDirectoryFiles :heavy_check_mark: - -
ScanDirectoryFilesRecursively :heavy_check_mark: - -
- core android comment
CompressData :heavy_check_mark: - -
DecompressData :heavy_check_mark: - -
EncodeDataBase64 :heavy_check_mark: - -
DecodeDataBase64 :heavy_check_mark: - -
- core android comment
IsKeyPressed :heavy_check_mark: - -
IsKeyDown :heavy_check_mark: - -
IsKeyReleased :heavy_check_mark: - -
IsKeyUp :heavy_check_mark: - -
GetKeyPressed :heavy_check_mark: - -
GetCharPressed :heavy_check_mark: - -
SetExitKey - :heavy_check_mark: -
- core android comment
IsGamepadAvailable :heavy_check_mark: - -
GetGamepadName - :heavy_check_mark: -
GetGamepadAxisCount - :heavy_check_mark: -
GetGamepadAxisMovement :heavy_check_mark: - -
IsGamepadButtonPressed :heavy_check_mark: - -
IsGamepadButtonDown :heavy_check_mark: - -
IsGamepadButtonReleased :heavy_check_mark: - -
IsGamepadButtonUp :heavy_check_mark: - -
GetGamepadButtonPressed :heavy_check_mark: - -
SetGamepadMappings - :heavy_check_mark: -
- core android comment
IsMouseButtonPressed :heavy_check_mark: - -
IsMouseButtonDown :heavy_check_mark: - -
IsMouseButtonReleased :heavy_check_mark: - -
IsMouseButtonUp :heavy_check_mark: - -
GetMouseX - :heavy_check_mark: -
GetMouseY - :heavy_check_mark: -
GetMousePosition - :heavy_check_mark: -
GetMouseDelta :heavy_check_mark: - -
SetMousePosition - :heavy_check_mark: -
SetMouseOffset :heavy_check_mark: - -
SetMouseScale :heavy_check_mark: - -
GetMouseWheelMove - :heavy_check_mark: -
GetMouseWheelMoveV :heavy_check_mark: - -
SetMouseCursor - :heavy_check_mark: -
- core android comment
GetTouchX - :heavy_check_mark: -
GetTouchY - :heavy_check_mark: -
GetTouchPosition - :heavy_check_mark: -
GetTouchPointId :heavy_check_mark: - -
GetTouchPointCount :heavy_check_mark: - -

Changelog

Environment

Edits

1: formatting. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11: updated modules status.

ghost commented 1 year ago

In case anyone wants to replicate the tests, the following was what I did.

Building

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.

Testing

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.

Edits

1: editing.

ghost commented 1 year ago

Examples audio

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.

ghost commented 1 year ago

Examples core

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.

ghost commented 1 year ago

Examples models

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.

ghost commented 1 year ago

Examples others

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.

ghost commented 1 year ago

Examples shaders

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.

ghost commented 1 year ago

Examples shapes

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.

ghost commented 1 year ago

Examples text

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.

ghost commented 1 year ago

Examples textures

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.

ghost commented 1 year ago

Comments

  1. :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.

  2. :x: Not sure if this example is meant to run on PLATFORM_ANDROID.

Edits 1, 2, 3: update status.

ghost commented 1 year ago

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:

raysan5 commented 1 year ago

@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.

ghost commented 1 year ago

Replied at https://github.com/raysan5/raylib/issues/3313#issuecomment-1751802792. :+1: