use RL_MALLOC for RGFW
This commit is contained in:
parent
9ecd1ce52c
commit
0760667cbb
124
src/external/RGFW.h
vendored
124
src/external/RGFW.h
vendored
|
|
@ -62,6 +62,69 @@
|
||||||
#define RGFW_USE_INT - force the use c-types rather than stdint.h (for systems that might not have stdint.h (msvc))
|
#define RGFW_USE_INT - force the use c-types rather than stdint.h (for systems that might not have stdint.h (msvc))
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Example to get you started :
|
||||||
|
|
||||||
|
linux : gcc main.c -lX11 -lXrandr -lGL
|
||||||
|
windows : gcc main.c -lopengl32 -lwinmm -lshell32 -lgdi32
|
||||||
|
macos : gcc main.c -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
|
||||||
|
|
||||||
|
#define RGFW_IMPLEMENTATION
|
||||||
|
#include "RGFW.h"
|
||||||
|
|
||||||
|
u8 icon[4 * 3 * 3] = {0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
RGFW_window* win = RGFW_createWindow("name", RGFW_RECT(500, 500, 500, 500), (u64)0);
|
||||||
|
|
||||||
|
RGFW_window_setIcon(win, icon, RGFW_AREA(3, 3), 4);
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
RGFW_window_checkEvent(win); // NOTE: checking events outside of a while loop may cause input lag
|
||||||
|
if (win->event.type == RGFW_quit || RGFW_isPressed(win, RGFW_Escape))
|
||||||
|
break;
|
||||||
|
|
||||||
|
RGFW_window_swapBuffers(win);
|
||||||
|
|
||||||
|
glClearColor(0xFF, 0XFF, 0xFF, 0xFF);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
RGFW_window_close(win);
|
||||||
|
}
|
||||||
|
|
||||||
|
compiling :
|
||||||
|
|
||||||
|
if you wish to compile the library all you have to do is create a new file with this in it
|
||||||
|
|
||||||
|
rgfw.c
|
||||||
|
#define RGFW_IMPLEMENTATION
|
||||||
|
#include "RGFW.h"
|
||||||
|
|
||||||
|
You may also want to add
|
||||||
|
`#define RGFW_EXPORT` when compiling and
|
||||||
|
`#define RGFW_IMPORT`when linking RGFW on it's own:
|
||||||
|
this reduces inline functions and prevents bloat in the object file
|
||||||
|
|
||||||
|
then you can use gcc (or whatever compile you wish to use) to compile the library into object file
|
||||||
|
|
||||||
|
ex. gcc -c RGFW.c -fPIC
|
||||||
|
|
||||||
|
after you compile the library into an object file, you can also turn the object file into an static or shared library
|
||||||
|
|
||||||
|
(commands ar and gcc can be replaced with whatever equivalent your system uses)
|
||||||
|
static : ar rcs RGFW.a RGFW.o
|
||||||
|
shared :
|
||||||
|
windows:
|
||||||
|
gcc -shared RGFW.o -lwinmm -lopengl32 -lshell32 -lgdi32 -o RGFW.dll
|
||||||
|
linux:
|
||||||
|
gcc -shared RGFW.o -lX11 -lGL -lXrandr -o RGFW.so
|
||||||
|
macos:
|
||||||
|
gcc -shared RGFW.o -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Credits :
|
Credits :
|
||||||
EimaMei/Sacode : Much of the code for creating windows using winapi, Wrote the Silicon library, helped with MacOS Support, siliapp.h -> referencing
|
EimaMei/Sacode : Much of the code for creating windows using winapi, Wrote the Silicon library, helped with MacOS Support, siliapp.h -> referencing
|
||||||
|
|
@ -1151,63 +1214,6 @@ typedef RGFW_ENUM(u8, RGFW_mouseIcons) {
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
#endif /* RGFW_HEADER */
|
#endif /* RGFW_HEADER */
|
||||||
|
|
||||||
/*
|
|
||||||
Example to get you started :
|
|
||||||
|
|
||||||
linux : gcc main.c -lX11 -lXrandr -lGL
|
|
||||||
windows : gcc main.c -lopengl32 -lwinmm -lshell32 -lgdi32
|
|
||||||
macos : gcc main.c -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
|
|
||||||
|
|
||||||
#define RGFW_IMPLEMENTATION
|
|
||||||
#include "RGFW.h"
|
|
||||||
|
|
||||||
u8 icon[4 * 3 * 3] = {0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF};
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
RGFW_window* win = RGFW_createWindow("name", RGFW_RECT(500, 500, 500, 500), (u64)0);
|
|
||||||
|
|
||||||
RGFW_window_setIcon(win, icon, RGFW_AREA(3, 3), 4);
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
RGFW_window_checkEvent(win); // NOTE: checking events outside of a while loop may cause input lag
|
|
||||||
if (win->event.type == RGFW_quit || RGFW_isPressed(win, RGFW_Escape))
|
|
||||||
break;
|
|
||||||
|
|
||||||
RGFW_window_swapBuffers(win);
|
|
||||||
|
|
||||||
glClearColor(0xFF, 0XFF, 0xFF, 0xFF);
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
RGFW_window_close(win);
|
|
||||||
}
|
|
||||||
|
|
||||||
compiling :
|
|
||||||
|
|
||||||
if you wish to compile the library all you have to do is create a new file with this in it
|
|
||||||
|
|
||||||
rgfw.c
|
|
||||||
#define RGFW_IMPLEMENTATION
|
|
||||||
#include "RGFW.h"
|
|
||||||
|
|
||||||
then you can use gcc (or whatever compile you wish to use) to compile the library into object file
|
|
||||||
|
|
||||||
ex. gcc -c RGFW.c -fPIC
|
|
||||||
|
|
||||||
after you compile the library into an object file, you can also turn the object file into an static or shared library
|
|
||||||
|
|
||||||
(commands ar and gcc can be replaced with whatever equivalent your system uses)
|
|
||||||
static : ar rcs RGFW.a RGFW.o
|
|
||||||
shared :
|
|
||||||
windows:
|
|
||||||
gcc -shared RGFW.o -lwinmm -lopengl32 -lshell32 -lgdi32 -o RGFW.dll
|
|
||||||
linux:
|
|
||||||
gcc -shared RGFW.o -lX11 -lGL -lXrandr -o RGFW.so
|
|
||||||
macos:
|
|
||||||
gcc -shared RGFW.o -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef RGFW_X11
|
#ifdef RGFW_X11
|
||||||
#define RGFW_OS_BASED_VALUE(l, w, m, h, ww) l
|
#define RGFW_OS_BASED_VALUE(l, w, m, h, ww) l
|
||||||
#elif defined(RGFW_WINDOWS)
|
#elif defined(RGFW_WINDOWS)
|
||||||
|
|
@ -8391,16 +8397,16 @@ EM_BOOL Emscripten_on_fullscreenchange(int eventType, const EmscriptenFullscreen
|
||||||
#else
|
#else
|
||||||
emscripten_request_fullscreen("#canvas", 1);
|
emscripten_request_fullscreen("#canvas", 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emscripten_set_canvas_element_size("#canvas", RGFW_root->r.w, RGFW_root->r.h);
|
emscripten_set_canvas_element_size("#canvas", RGFW_root->r.w, RGFW_root->r.h);
|
||||||
|
|
||||||
RGFW_windowResizeCallback(RGFW_root, RGFW_root->r);
|
RGFW_windowResizeCallback(RGFW_root, RGFW_root->r);
|
||||||
|
|
||||||
return EM_TRUE;
|
return EM_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EM_BOOL Emscripten_on_focusin(int eventType, const EmscriptenFocusEvent* e, void* userData) {
|
EM_BOOL Emscripten_on_focusin(int eventType, const EmscriptenFocusEvent* e, void* userData) {
|
||||||
RGFW_UNUSED(eventType); RGFW_UNUSED(userData); RGFW_UNUSED(e);
|
RGFW_UNUSED(eventType); RGFW_UNUSED(userData); RGFW_UNUSED(e);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,10 @@ void CloseWindow(void);
|
||||||
#define Size NSSIZE
|
#define Size NSSIZE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define RGFW_MALLOC RL_MALLOC
|
||||||
|
#define RGFW_FREE RL_FREE
|
||||||
|
#define RGFW_CALLOC RL_CALLOC
|
||||||
|
|
||||||
#include "../external/RGFW.h"
|
#include "../external/RGFW.h"
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user