Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
ghost opened this issue Oct 3, 2023 · 13 comments
Closed

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

ghost opened this issue Oct 3, 2023 · 13 comments

Comments

@ghost
Copy link

ghost commented Oct 3, 2023

Issue to more easily track PLATFORM_ANDROID status for:

Modules checked status

module checked
raylib ✔️
examples/audio ✔️ #3371 (comment)
examples/core ✔️ #3371 (comment)
examples/models ✔️ #3371 (comment)
examples/others ✔️ #3371 (comment)
examples/shaders ✔️ #3371 (comment)
examples/shapes ✔️ #3371 (comment)
examples/text ✔️ #3371 (comment)
examples/textures ✔️ #3371 (comment)

Notes at #3371 (comment).

Functions checked status

function core android comment
InitGraphicsDevice - ✔️ -
SetupViewport ✔️ - -
SetupFramebuffer ✔️ - -
InitTimer ✔️ - -
- core android comment
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 ✔️ - -
- core android comment
SwapScreenBuffer - ✔️ -
PollInputEvents - ✔️ -
WaitTime ✔️ - -
- core android comment
ShowCursor - ✔️ -
HideCursor - ✔️ -
IsCursorHidden ✔️ - -
EnableCursor - ✔️ -
DisableCursor - ✔️ -
IsCursorOnScreen ✔️ - -
- core android comment
ClearBackground ✔️ - -
BeginDrawing ✔️ - -
EndDrawing ✔️ - -
BeginMode2D ✔️ - -
EndMode2D ✔️ - -
BeginMode3D ✔️ - -
EndMode3D ✔️ - -
BeginTextureMode ✔️ - -
EndTextureMode ✔️ - -
BeginShaderMode ✔️ - -
EndShaderMode ✔️ - -
BeginBlendMode ✔️ - -
EndBlendMode ✔️ - -
BeginScissorMode ✔️ - -
EndScissorMode ✔️ - -
BeginVrStereoMode ✔️ - -
EndVrStereoMode ✔️ - -
- core android comment
LoadVrStereoConfig ✔️ - -
UnloadVrStereoConfig ✔️ - -
- core android comment
LoadShader ✔️ - -
LoadShaderFromMemory ✔️ - -
IsShaderReady ✔️ - -
UnloadShader ✔️ - -
GetShaderLocation ✔️ - -
GetShaderLocationAttrib ✔️ - -
SetShaderValue ✔️ - -
SetShaderValueV ✔️ - -
SetShaderValueMatrix ✔️ - -
SetShaderValueTexture ✔️ - -
- core android comment
GetMouseRay ✔️ - -
GetCameraMatrix ✔️ - -
GetCameraMatrix2D ✔️ - -
GetWorldToScreen ✔️ - -
GetWorldToScreenEx ✔️ - -
GetWorldToScreen2D ✔️ - -
GetScreenToWorld2D ✔️ - -
- core android comment
SetTargetFPS ✔️ - -
GetFPS ✔️ - -
GetFrameTime ✔️ - -
GetTime - ✔️ -
- core android comment
SetConfigFlags ✔️ - -
TakeScreenshot - ✔️ -
GetRandomValue ✔️ - -
SetRandomSeed ✔️ - -
- core android comment
OpenURL - ✔️ -
- core android comment
FileExists ✔️ - -
IsFileExtension ✔️ - -
DirectoryExists ✔️ - -
GetFileLength ✔️ - -
GetFileExtension ✔️ - -
GetFileName ✔️ - -
GetFileNameWithoutExt ✔️ - -
GetDirectoryPath ✔️ - -
GetPrevDirectoryPath ✔️ - -
GetWorkingDirectory ✔️ - -
GetApplicationDirectory ✔️ - -
LoadDirectoryFiles ✔️ - -
LoadDirectoryFilesEx ✔️ - -
UnloadDirectoryFiles ✔️ - -
ChangeDirectory ✔️ - -
IsPathFile ✔️ - -
IsFileDropped ✔️ - -
LoadDroppedFiles ✔️ - -
UnloadDroppedFiles ✔️ - -
GetFileModTime ✔️ - -
- core android comment
ScanDirectoryFiles ✔️ - -
ScanDirectoryFilesRecursively ✔️ - -
- core android comment
CompressData ✔️ - -
DecompressData ✔️ - -
EncodeDataBase64 ✔️ - -
DecodeDataBase64 ✔️ - -
- core android comment
IsKeyPressed ✔️ - -
IsKeyDown ✔️ - -
IsKeyReleased ✔️ - -
IsKeyUp ✔️ - -
GetKeyPressed ✔️ - -
GetCharPressed ✔️ - -
SetExitKey - ✔️ -
- core android comment
IsGamepadAvailable ✔️ - -
GetGamepadName - ✔️ -
GetGamepadAxisCount - ✔️ -
GetGamepadAxisMovement ✔️ - -
IsGamepadButtonPressed ✔️ - -
IsGamepadButtonDown ✔️ - -
IsGamepadButtonReleased ✔️ - -
IsGamepadButtonUp ✔️ - -
GetGamepadButtonPressed ✔️ - -
SetGamepadMappings - ✔️ -
- core android comment
IsMouseButtonPressed ✔️ - -
IsMouseButtonDown ✔️ - -
IsMouseButtonReleased ✔️ - -
IsMouseButtonUp ✔️ - -
GetMouseX - ✔️ -
GetMouseY - ✔️ -
GetMousePosition - ✔️ -
GetMouseDelta ✔️ - -
SetMousePosition - ✔️ -
SetMouseOffset ✔️ - -
SetMouseScale ✔️ - -
GetMouseWheelMove - ✔️ -
GetMouseWheelMoveV ✔️ - -
SetMouseCursor - ✔️ -
- core android comment
GetTouchX - ✔️ -
GetTouchY - ✔️ -
GetTouchPosition - ✔️ -
GetTouchPointId ✔️ - -
GetTouchPointCount ✔️ - -

Changelog

Environment

  • Compiled PLATFORM_ANDROID on Linux (Ubuntu 22.04 64-bit).
  • Tested on Android 11 with Waydroid on Linux (Fedora 38 64-bit) with Wayland.

Edits

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

@ghost
Copy link
Author

ghost commented Oct 3, 2023

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
Copy link
Author

ghost commented Oct 4, 2023

Examples audio

example compile run comment
audio_mixed_processor.c ✔️ ✔️ 1
audio_module_playing.c ✔️ ✔️ 1
audio_music_stream.c ✔️ ✔️ 1
audio_raw_stream.c ✔️ ✔️ 1
audio_sound_loading.c ✔️ ✔️ 1
audio_sound_multi.c ✔️ ✔️ 1
audio_stream_effects.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples core

example compile run comment
core_2d_camera.c ✔️ ✔️ 1
core_2d_camera_mouse_zoom.c ✔️ ✔️ 1
core_2d_camera_platformer.c ✔️ ✔️ 1
core_2d_camera_split_screen.c ✔️ ✔️ 1
core_3d_camera_first_person.c ✔️ ✔️ 1
core_3d_camera_free.c ✔️ ✔️ 1
core_3d_camera_mode.c ✔️ ✔️ 1
core_3d_camera_split_screen.c ✔️ ✔️ 1
core_3d_picking.c ✔️ ✔️ 1
core_basic_screen_manager.c ✔️ ✔️ 1
core_basic_window.c ✔️ ✔️ 1
core_basic_window_web.c ✔️ ✔️ 1
core_custom_frame_control.c ✔️ ✔️ 1
core_custom_logging.c ✔️ ✔️ 1, 2
core_drop_files.c ✔️ ✔️ 1, 2
core_input_gamepad.c ✔️ ✔️ 1
core_input_gestures.c ✔️ ✔️ 1
core_input_gestures_web.c ✔️ ✔️ 1
core_input_keys.c ✔️ ✔️ 1
core_input_mouse.c ✔️ ✔️ 1
core_input_mouse_wheel.c ✔️ ✔️ 1
core_input_multitouch.c ✔️ ✔️ 1
core_loading_thread.c ✔️ ✔️ 1
core_random_values.c ✔️ ✔️ 1
core_scissor_test.c ✔️ ✔️ 1
core_smooth_pixelperfect.c ✔️ ✔️ 1
core_storage_values.c ✔️ ✔️ 1
core_vr_simulator.c ✔️ ✔️ 1
core_window_flags.c ✔️ ✔️ 1, 2
core_window_letterbox.c ✔️ ✔️ 1
core_window_should_close.c ✔️ ✔️ 1, 2
core_world_screen.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples models

example compile run comment
models_animation.c ✔️ ✔️ 1
models_billboard.c ✔️ ✔️ 1
models_box_collisions.c ✔️ ✔️ 1
models_cubicmap.c ✔️ ✔️ 1
models_draw_cube_texture.c ✔️ ✔️ 1
models_first_person_maze.c ✔️ ✔️ 1
models_geometric_shapes.c ✔️ ✔️ 1
models_heightmap.c ✔️ ✔️ 1
models_loading.c ✔️ ✔️ 1
models_loading_gltf.c ✔️ ✔️ 1
models_loading_m3d.c ✔️ ✔️ 1
models_loading_vox.c ✔️ ✔️ 1
models_mesh_generation.c ✔️ ✔️ 1
models_mesh_picking.c ✔️ ✔️ 1
models_orthographic_projection.c ✔️ ✔️ 1
models_rlgl_solar_system.c ✔️ ✔️ 1
models_skybox.c ✔️ ✔️ 1
models_waving_cubes.c ✔️ ✔️ 1
models_yaw_pitch_roll.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples others

example compile run comment
easings_testbed.c ✔️ ✔️ 1
embedded_files_loading.c ✔️ ✔️ 1
raylib_opengl_interop.c 2
raymath_vector_angle.c ✔️ ✔️ 1
rlgl_compute_shader.c ✔️ ✔️ 1
rlgl_standalone.c 2

Comments at #3371 (comment).

Edits 1, 2, 3: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples shaders

example compile run comment
shaders_basic_lighting.c ✔️ ✔️ 1
shaders_custom_uniform.c ✔️ ✔️ 1
shaders_eratosthenes.c ✔️ ✔️ 1
shaders_fog.c ✔️ ✔️ 1
shaders_hot_reloading.c ✔️ ✔️ 1
shaders_hybrid_render.c ✔️ ✔️ 1
shaders_julia_set.c ✔️ ✔️ 1
shaders_lightmap.c ✔️ ✔️ 1
shaders_mesh_instancing.c ✔️ 1, 2
shaders_model_shader.c ✔️ ✔️ 1
shaders_multi_sample2d.c ✔️ ✔️ 1
shaders_palette_switch.c ✔️ ✔️ 1
shaders_postprocessing.c ✔️ ✔️ 1
shaders_raymarching.c ✔️ ✔️ 1, 2
shaders_shapes_textures.c ✔️ ✔️ 1
shaders_simple_mask.c ✔️ ✔️ 1
shaders_spotlight.c ✔️ ✔️ 1
shaders_texture_drawing.c ✔️ ✔️ 1
shaders_texture_outline.c ✔️ ✔️ 1
shaders_texture_waves.c ✔️ ✔️ 1
shaders_write_depth.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples shapes

example compile run comment
shapes_basic_shapes.c ✔️ ✔️ 1
shapes_bouncing_ball.c ✔️ ✔️ 1
shapes_collision_area.c ✔️ ✔️ 1
shapes_colors_palette.c ✔️ ✔️ 1
shapes_draw_circle_sector.c ✔️ ✔️ 1
shapes_draw_rectangle_rounded.c ✔️ ✔️ 1
shapes_draw_ring.c ✔️ ✔️ 1
shapes_easings_ball_anim.c ✔️ ✔️ 1
shapes_easings_box_anim.c ✔️ ✔️ 1
shapes_easings_rectangle_array.c ✔️ ✔️ 1
shapes_following_eyes.c ✔️ ✔️ 1
shapes_lines_bezier.c ✔️ ✔️ 1
shapes_lines_splines.c ✔️ ✔️ 1
shapes_logo_raylib.c ✔️ ✔️ 1
shapes_logo_raylib_anim.c ✔️ ✔️ 1
shapes_rectangle_scaling.c ✔️ ✔️ 1
shapes_top_down_lights.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3, 4: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples text

example compile run comment
text_codepoints_loading.c ✔️ ✔️ 1
text_draw_3d.c ✔️ ✔️ 1
text_font_filters.c ✔️ ✔️ 1
text_font_loading.c ✔️ ✔️ 1
text_font_sdf.c ✔️ ✔️ 1
text_font_spritefont.c ✔️ ✔️ 1
text_format_text.c ✔️ ✔️ 1
text_input_box.c ✔️ ✔️ 1
text_raylib_fonts.c ✔️ ✔️ 1
text_rectangle_bounds.c ✔️ ✔️ 1
text_unicode.c ✔️ ✔️ 1
text_writing_anim.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3, 4: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Examples textures

example compile run comment
textures_background_scrolling.c ✔️ ✔️ 1
textures_blend_modes.c ✔️ ✔️ 1
textures_bunnymark.c ✔️ ✔️ 1
textures_draw_tiled.c ✔️ ✔️ 1
textures_fog_of_war.c ✔️ ✔️ 1
textures_gif_player.c ✔️ ✔️ 1
textures_image_drawing.c ✔️ ✔️ 1
textures_image_generation.c ✔️ ✔️ 1
textures_image_loading.c ✔️ ✔️ 1
textures_image_processing.c ✔️ ✔️ 1
textures_image_rotate.c ✔️ ✔️ 1
textures_image_text.c ✔️ ✔️ 1
textures_logo_raylib.c ✔️ ✔️ 1
textures_mouse_painting.c ✔️ ✔️ 1
textures_npatch_drawing.c ✔️ ✔️ 1
textures_particles_blending.c ✔️ ✔️ 1
textures_polygon.c ✔️ ✔️ 1
textures_raw_data.c ✔️ ✔️ 1
textures_sprite_anim.c ✔️ ✔️ 1
textures_sprite_button.c ✔️ ✔️ 1
textures_sprite_explosion.c ✔️ ✔️ 1
textures_srcrec_dstrec.c ✔️ ✔️ 1
textures_svg_loading.c ✔️ ✔️ 1
textures_textured_curve.c ✔️ ✔️ 1
textures_to_image.c ✔️ ✔️ 1

Comments at #3371 (comment).

Edits 1, 2, 3, 4: update status, formatting.

@ghost
Copy link
Author

ghost commented Oct 4, 2023

Comments

  1. ✔️ Mouse movement is working, as seen on core_input_mouse example.
    ❌ Mouse buttons are not working on raylib on Waydroid, they appear to be stuck on pressed on Waydroid.
    ✔️ 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.
    ❌ Gestures are not working on Waydroid.

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

Edits 1, 2, 3: update status.

@ghost
Copy link
Author

ghost commented Oct 7, 2023

With @michaelfiber being able to confirm that the mouse input is working at #3313 (comment), I guess this finishes the PLATFORM_ANDROID testing. So I'm closing this issue as completed. 👍

@ghost ghost closed this as completed Oct 7, 2023
@raysan5
Copy link
Owner

raysan5 commented Oct 7, 2023

@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
Copy link
Author

ghost commented Oct 7, 2023

Replied at #3313 (comment). 👍

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant