Skip to content

Commit

Permalink
update linking, keymods, ect
Browse files Browse the repository at this point in the history
  • Loading branch information
ColleagueRiley committed Jan 7, 2025
1 parent 2fd0a4d commit a49a166
Show file tree
Hide file tree
Showing 8 changed files with 261 additions and 267 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ CUSTOM_CFLAGS =
# used for the examples
CFLAGS =

DX11_LIBS = -static -lgdi32 -lwinmm -ldxgi -ld3d11 -luuid -ld3dcompiler
VULKAN_LIBS = -lgdi32 -lwinmm -I $(VULKAN_SDK)\Include -L $(VULKAN_SDK)\Lib -lvulkan-1
LIBS := -static -luser32 -lgdi32 -lopengl32 -lwinmm -ggdb
DX11_LIBS = -static -lgdi32 -ldxgi -ld3d11 -luuid -ld3dcompiler
VULKAN_LIBS = -lgdi32 -I $(VULKAN_SDK)\Include -L $(VULKAN_SDK)\Lib -lvulkan-1
LIBS := -static -lgdi32 -lopengl32 -ggdb
EXT = .exe
LIB_EXT = .dll

Expand Down
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,16 @@ This library does not
#define RGFW_IMPLEMENTATION
#include "RGFW.h"

void keyfunc(RGFW_window* win, u32 key , u32 keyChar , char keyName[16], u8 lockState, u8 pressed) {
if (keycode == RGFW_Escape && pressed) {
#include <stdio.h>

void keyfunc(RGFW_window* win, RGFW_Key key, char keyChar, RGFW_keymod keyMod, b8 pressed) {
if (key == RGFW_Escape && pressed) {
RGFW_window_setShouldClose(win);
}
}

int main() {
RGFW_window* win = RGFW_createWindow("a window", RGFW_RECT(0, 0, 800, 600), (u16)(RGFW_CENTER | RGFW_NO_RESIZE));
RGFW_window* win = RGFW_createWindow("a window", RGFW_RECT(0, 0, 800, 600), RGFW_center | RGFW_noResize);

RGFW_setKeyCallback(keyfunc); // you can use callbacks like this if you want

Expand Down Expand Up @@ -85,8 +87,8 @@ int main() {
```sh
linux : gcc main.c -lX11 -lGL -lXrandr
windows : gcc main.c -lopengl32 -lshell32 -lgdi32 -lwinmm
macos : gcc main.c -framework Foundation -framework AppKit -framework OpenGL -framework IOKit
windows : gcc main.c -lopengl32 -lgdi32
macos : gcc main.c -framework Cocoa -framework OpenGL -framework IOKit
```

## other examples
Expand Down
479 changes: 230 additions & 249 deletions RGFW.h

Large diffs are not rendered by default.

6 changes: 1 addition & 5 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
WINDOWS:
- RGFW_TRANSPARENT_WINDOW (use real alpha)

(addons)
- init drag function (drag n' drop) (output)
(alloing users to drop to other apps)
(this will probably be a big pain to do)


- ensure support for UTF-16
- fix wayland stuff
Expand Down
2 changes: 1 addition & 1 deletion examples/basic/basic.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ void drawLoop(RGFW_window* w); /* I seperate the draw loop only because it's run

#ifdef RGFW_WINDOWS
DWORD loop2(void* args);
#else
#else
void* loop2(void* args);
#endif

Expand Down
8 changes: 5 additions & 3 deletions examples/callbacks/callbacks.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#define RGFW_IMPLEMENTATION
#define RGFW_DEBUG
#include "RGFW.h"


RGFW_window* window;

void windowmovefunc(RGFW_window* win, RGFW_rect r) {
Expand Down Expand Up @@ -59,12 +61,12 @@ void windowrefreshfunc(RGFW_window* win) {
printf("refresh\n");
}

void keyfunc(RGFW_window* win, u32 physicalKey, u32 mappedKey, char keyName[16], u8 lockState, u8 pressed) {
void keyfunc(RGFW_window* win, RGFW_Key key, char keyChar, RGFW_keymod keyMod, b8 pressed) {
if (window != win) return;
if (pressed)
printf("key pressed : %i (%c) mapped : %i (%c): %s with lockState : %i\n", physicalKey, physicalKey, mappedKey, mappedKey, keyName, lockState);
printf("key pressed : %i (%c) mapped : %i (%c): with modstate : %i\n", key, key, keyChar, keyChar, keyMod);
else
printf("key released : %i (%c) mapped: %i (%c): %s with lockState : %i\n", physicalKey, physicalKey, mappedKey, mappedKey, keyName, lockState);
printf("key released : %i (%c) mapped: %i (%c): with modstate : %i\n", key, key, keyChar, keyChar, keyMod);
}

void mousebuttonfunc(RGFW_window* win, u8 button, double scroll, u8 pressed) {
Expand Down
2 changes: 1 addition & 1 deletion examples/gl33/gl33.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ int main(void)
}
RGFW_window_makeCurrent(window);
// RGFW_window_swapInterval(window, 60);

#ifndef RGFW_WEBASM
if (RGL_loadGL3((RGLloadfunc)RGFW_getProcAddress))
{
Expand Down
13 changes: 13 additions & 0 deletions examples/gl33/rglLoad.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ typedef void (*glUniformMatrix4fvPROC)(GLint location, GLsizei count, GLboolean
typedef void (*glTexImage2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
typedef void (*glActiveTexturePROC) (GLenum texture);
typedef void (*glDebugMessageCallbackPROC)(void* callback, const void*);
typedef void (*glDrawElementsPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
typedef void (*glClearPROC)(GLbitfield mask);
typedef void (*glClearColorPROC)(GLfloat, GLfloat, GLfloat, GLfloat);


glShaderSourcePROC glShaderSourceSRC = NULL;
glCreateShaderPROC glCreateShaderSRC = NULL;
Expand Down Expand Up @@ -176,6 +180,9 @@ glGetUniformLocationPROC glGetUniformLocationSRC = NULL;
glUniformMatrix4fvPROC glUniformMatrix4fvSRC = NULL;
glActiveTexturePROC glActiveTextureSRC = NULL;
glDebugMessageCallbackPROC glDebugMessageCallbackSRC = NULL;
glDrawElementsPROC glDrawElementsSRC = NULL;
glClearPROC glClearSRC = NULL;
glClearColorPROC glClearColorSRC = NULL;

#define glActiveTexture glActiveTextureSRC
#define glShaderSource glShaderSourceSRC
Expand Down Expand Up @@ -207,6 +214,9 @@ glDebugMessageCallbackPROC glDebugMessageCallbackSRC = NULL;
#define glGetUniformLocation glGetUniformLocationSRC
#define glUniformMatrix4fv glUniformMatrix4fvSRC
#define glDebugMessageCallback glDebugMessageCallbackSRC
#define glDrawElements glDrawElementsSRC
#define glClear glClearSRC
#define glClearColor glClearColorSRC

extern int RGL_loadGL3(RGLloadfunc proc);

Expand Down Expand Up @@ -246,6 +256,9 @@ int RGL_loadGL3(RGLloadfunc proc) {
RGL_PROC_DEF(proc, glUniformMatrix4fv);
RGL_PROC_DEF(proc, glActiveTexture);
RGL_PROC_DEF(proc, glDebugMessageCallback);
RGL_PROC_DEF(proc, glDrawElements);
RGL_PROC_DEF(proc, glClear);
RGL_PROC_DEF(proc, glClearColor);

if (
glShaderSourceSRC == NULL ||
Expand Down

0 comments on commit a49a166

Please sign in to comment.