summaryrefslogtreecommitdiffhomepage
path: root/main.c
diff options
context:
space:
mode:
authorPeter0x44 <[email protected]>2024-06-21 00:05:07 +0100
committerPeter0x44 <[email protected]>2024-06-21 00:05:07 +0100
commit7703f2a74122c771070f19259fc40eb2167df9ac (patch)
tree5a1594c2fb93cc18f8bb4929824e0ed7db106ce1 /main.c
parent8ed354f7fb32b064b5f082adc127011cca078077 (diff)
downloadraylib-DrawTexturePro-interactive-demo-7703f2a74122c771070f19259fc40eb2167df9ac.tar.gz
raylib-DrawTexturePro-interactive-demo-7703f2a74122c771070f19259fc40eb2167df9ac.zip
Refactor code to use emscripten_set_main_loop
Supposed to give better perf, better to leave frame control to the browser.
Diffstat (limited to 'main.c')
-rw-r--r--main.c42
1 files changed, 27 insertions, 15 deletions
diff --git a/main.c b/main.c
index 2b1677c..9d65338 100644
--- a/main.c
+++ b/main.c
@@ -8,6 +8,10 @@
#include "raylib.h"
#include <stdio.h>
+#ifdef __EMSCRIPTEN__
+#include <emscripten/emscripten.h>
+#endif
+
#define RAYGUI_IMPLEMENTATION
#include "raygui.h"
@@ -112,6 +116,24 @@ void DrawOutput();
void HandleDroppedFiles();
+void UpdateDrawFrame()
+{
+ HandleDroppedFiles();
+
+ BeginDrawing();
+ ClearBackground(RAYWHITE);
+
+ DrawElementBorders();
+ SetupDifference();
+ DrawUI();
+ ResolveMouseState();
+ DrawCodeDisplay();
+ CheckDifference();
+ DrawOutput();
+
+ EndDrawing();
+}
+
int main()
{
InitWindow(screenWidth, screenHeight, "DrawTexturePro Example");
@@ -139,24 +161,14 @@ int main()
elementRender.height - 20
);
-
+#ifdef __EMSCRIPTEN__
+ emscripten_set_main_loop(UpdateDrawFrame, 0, 1);
+#else
while (!WindowShouldClose())
{
- HandleDroppedFiles();
-
- BeginDrawing();
- ClearBackground(RAYWHITE);
-
- DrawElementBorders();
- SetupDifference();
- DrawUI();
- ResolveMouseState();
- DrawCodeDisplay();
- CheckDifference();
- DrawOutput();
-
- EndDrawing();
+ UpdateDrawFrame();
}
+#endif
CloseWindow();
return 0;