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

[split] Fix compilation for web (and desktop) #3329

Merged
merged 6 commits into from Sep 20, 2023
Merged

[split] Fix compilation for web (and desktop) #3329

merged 6 commits into from Sep 20, 2023

Conversation

ghost
Copy link

@ghost ghost commented Sep 20, 2023

PR changes

  1. Fixes compilation for PLATFORM_WEB (R12). #include "GLFW/glfw3.h" (R15) is necessary for CoreData's GLFWwindow *handle; (R109) on PLATFORM_WEB.

  2. Removes EM_ASM_INT from core_input_gestures_web example (L311-L317) as per Fix compilation for PLATFORM_WEB #3328 (review).

  3. Fixes undefined symbol compilation errors from raymath for PLATFORM_DESKTOP and PLATFORM_WEB, by moving #define RAYMATH_IMPLEMENTATION from rcore.c (L112) to rcore.h (R31).

    Alternative solution for item 3: b75e631 at [split] Including raymath.h in rcore.h is causing an issue #3331

  4. Fixes TraceLog on PLATFORM_DESKTOP and PLATFORM_WEB by adding #define SUPPORT_TRACELOG to rcore.h (R10). Also fixes the core_custom_logging example.

Status

Environment

  • Compiled with emscripten/emsdk on Linux (Mint 21.1 64-bit).
  • Tested on Firefox (115.1.0esr 64-bit) and Chromium (115.0.5790.170 64-bit) both running on Linux Mint (21.1 64-bit).

Edit 1: added line marks; added core_input_gestures_web fix.
Edit 2: updated status.
Edit 3: added fix for raymath undefined symbols for desktop and web; updated status.
Edit 4: added line marks; formatting.
Edit 5: updated status; updated comment regarding the raylib_opengl_interop example for web.
Edit 6, 7, 8, 9, 10, 11, 12, 13: updated status.
Edit 14: updated notes about examples/others.
Edit 15: linked alternative solution for item 3.
Edit 16: updated status and notes; formatting.
Edit 17: added fix for TraceLog and core_custom_logging example.
Edit 18: moved status to separate issue.

@ghost ghost changed the title Fix compilation for web [split] Fix compilation for web Sep 20, 2023
@ghost ghost changed the title [split] Fix compilation for web [split] Fix compilation for web (and desktop) Sep 20, 2023
@ghost
Copy link
Author

ghost commented Sep 20, 2023

@raysan5 I'm fairly happy with this first batch.

I'm still testing but, in case you don't want that too many commits to pile up making it harder to review, I can submit other changes on a second batch.

Also, some fixes here solve some issues on desktop in case you want to get those.

@raysan5
Copy link
Owner

raysan5 commented Sep 20, 2023

@ubkp thanks for the review! we can merge it whenever you want! I prefer to keep merging it in small batches.

some fixes here solve some issues on desktop in case you want to get those.

Sure!

@ghost
Copy link
Author

ghost commented Sep 20, 2023

@raysan5 Awesome! Feel free to merge it then. The rcore_web.c is quite stable and nearly all examples are working. I'll prepare the next set of changes on another batch. 👍

@raysan5 raysan5 merged commit 7840e75 into raysan5:rcore_platform_split Sep 20, 2023
10 checks passed
@raysan5
Copy link
Owner

raysan5 commented Sep 20, 2023

Merged! :)

@ghost ghost deleted the rcore_platform_split_web branch September 20, 2023 23:12
raysan5 added a commit that referenced this pull request Oct 8, 2023
* Submodules (#3311)

* Check in current state

* Add submodules to Makefile and clean up some imports

* Start moving InitGraphicsDeivce

* Move android_main and CloseWindow() out of rcore

* Move WindowShouldClose out of rcore

* Move IsWindowHidden out of rcore

* Move IsWindowMinimized out of rcore

* Move IsWindowMaximized, IsWindowFocused and IsWindowResized out of rcore

* Move ToggleFullscreen out of rcore

* Move MaximizeWindow, MinimizeWindow and RestoreWindow out of rcore

* Move 13 functions out of rcore:
ToggleBorderlessWindowed
SetWindowState
ClearWindowState
SetWindowIcon
SetWindowIcons
SetWindowTitle
SetWindowPosition
SetWindowMonitor
SetWindowMinSize
SetWindowMaxSize
SetWindowSize
SetWindowOpacity
SetWindowFocused

* Minor clean up, revert makefile change, include submodules directly in rcore

* Fix makefile comment

* Remove rcore.h from Makefile

* Remove debug include

* Move 18 functions from rcore to submodules
GetWindowHandle
GetMonitorCount
GetCurrentMonitor
GetMonitorPosition
GetMonitorWidth
GetMonitorHeight
GetMonitorPhysicalHeight
GetMonitorRefreshRate
GetWindowPosition
GetWindowScaleDPI
GetMonitorName
SetClipboardText
GetClipboardText
ShowCursor
HideCursor
EnableCursor
DisableCursor
GetTime

* Move TakeScreenshot, OpenURL, GetGamepadName out of rcore into submodules

* remove debugging #defines

* Move GetMonitorPhysicalWidth from rcore to submodule

* Move GetGamepadAxisCount from rcore

* Move SetGamepadMappings out of rcore

* Move GetMouseX, GetMouseY, GetMousePosition out of rcore

* Move SetMousePosition out of rcore

* Move GetMouseWheelMove out of rcore

* Move the last functions out of rcore

* Move shared function defs and some global var to rcore.h

* Clean up rcore.c and rcore.h a little more

* Remove unnecessary #define

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>

* REVIEWED: `PLATFORM_DESKTOP` Windows building

* Revert "REVIEWED: `PLATFORM_DESKTOP` Windows building"

This reverts commit 71a1217.

* Reviewed Windows building

* [split] Fix compilation for web (and desktop) (#3329)

* Fix compilation for web

* Remove EM_ASM_INT from core_input_gestures_web example

* Fix raymath undefined symbols for desktop and web

* Remove raylib_opengl_interop from examples Makefile

* Revert previous commit (8651c78)

* Fix TraceLog for web and desktop

* [split] `rcore`, `rcore_web` and `rcore_desktop` changes (batch 2) (#3334)

* Fix formatting

* Reapply commit 9d230d7 (#3305) that was missing

* Reapplies commits 719365f (#3309) and 8a1779b (#3312) that were missing

* Reapply commit 5c9cc3f (#3323) that was missing

* Reapply commit a2b3b1e that was missing

* Revert commit cef25c6 to fix macro redefined warning

* Move rcore.h #include to after config.h to fix macro redefinitions warnings

* [split] `rcore`, `web`, `desktop`, `android` changes (batch 3) (#3338)

* First pass to remove unneeded platform macros for web

* Second pass to remove unneeded platform macros for web

* Move GetTouchX, GetTouchY, GetTouchPosition from rcore to web, desktop, android

* Move SetMouseCursor from rcore to android, desktop, web

* [split] `rcore`, `web`, `desktop`, `android` changes (batch 4) (#3343)

* Fix ToggleBorderlessWindowed duplicated glfwSetWindowSize calls

* First pass to remove unneeded platform macros for android

* Second pass to remove unneeded platform macros for android

* Remove unneeded platform macros for desktop

* Relocate GetGamepadName and update SetGamepadMappings on android, desktop, web

* Add missing comment to web

* [split] `rcore`, `web`, `desktop`, `android` changes (batch 5) (#3345)

* Move SetExitKey from core to android, desktop, web

* Move some callbacks from core to desktop and web

* Relocate emscripten callbacks on web

* Relocate android callbacks on android

* Revert "Relocate android callbacks on android"

This reverts commit bbdbecc.

* Updates UnloadVrStereoConfig on rcore

* Update SetClipboardText on android

* Fix screenMin/Max default values for android

* [split] `rcore`, `drm` changes (#3347)

* Tweak makefiles for PLATFORM_DRM and move rcore_drm's dependencies to rcore.h

* Move drm functions to rcore_drm.c

* Fix a typo in rcore.c

* Add SetExitKey to rcore_drm.c

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>

* Fix compilation for android (#3360)

* Fix android include (#3364)

* Reviewed platform split #3313

 - Added file headers info
 - Added TRACELOG message for unimplemented functions
 - Reviewed code formatting and organization
 - Several code tweaks

* REVIEWED: `GetDirectoryPath()`

---------

Co-authored-by: MichaelFiber <42419558+michaelfiber@users.noreply.github.com>
Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: ubkp <118854183+ubkp@users.noreply.github.com>
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

Successfully merging this pull request may close these issues.

1 participant