GLFW windows

This commit is contained in:
John Alanbrook 2022-06-24 19:06:40 +00:00
parent 6a681764af
commit 496b9ca5d7
2 changed files with 18 additions and 10 deletions

View file

@ -9,6 +9,10 @@
#define LOG_CRITICAL 3 #define LOG_CRITICAL 3
#define YughLog(cat, pri, msg, ...) mYughLog(cat, pri, __LINE__, __FILE__, msg, __VA_ARGS__) #define YughLog(cat, pri, msg, ...) mYughLog(cat, pri, __LINE__, __FILE__, msg, __VA_ARGS__)
#define YughInfo(msg, ...) mYughLog(0, LOG_INFO, __LINE__, __FILE__, msg, __VA_ARGS__)
#define YughWarn(msg, ...) mYughLog(0, LOG_WARN, __LINE__, __FILE__, msg, __VA_ARGS__)
#define YughError(msg, ...) mYughLog(0, LOG_ERROR, __LINE__, __FILE__, msg, __VA_ARGS__)
#define YughCritical(msg, ...) mYughLog(0, LOG_CRITICAL, __LINE__, __FILE__, msg, __VA_ARGS__)
void mYughLog(int category, int priority, int line, const char *file, const char *message, ...); void mYughLog(int category, int priority, int line, const char *file, const char *message, ...);

View file

@ -10,15 +10,23 @@
struct mSDLWindow *mainwin; struct mSDLWindow *mainwin;
static struct mSDLWindow *windows[5]; static struct mSDLWindow windows[5];
static int numWindows = 0; static int numWindows = 0;
struct mSDLWindow *MakeSDLWindow(const char *name, int width, int height, struct mSDLWindow *MakeSDLWindow(const char *name, int width, int height,
uint32_t flags) uint32_t flags)
{ {
struct mSDLWindow *w = calloc(1, sizeof(struct mSDLWindow)); if (numWindows >= 5) {
YughError("Already max number of windows.", 5);
}
struct mSDLWindow *w = &windows[numWindows++];
w->width = width; w->width = width;
w->height = height; w->height = height;
if (numWindows > 0)
w->window = glfwCreateWindow(width, height, name, NULL, windows[0].window);
else
w->window = glfwCreateWindow(width, height, name, NULL, NULL); w->window = glfwCreateWindow(width, height, name, NULL, NULL);
if (!w->window) { if (!w->window) {
@ -29,15 +37,11 @@ struct mSDLWindow *MakeSDLWindow(const char *name, int width, int height,
glfwSwapInterval(1); glfwSwapInterval(1);
w->id = numWindows; w->id = numWindows-1;
if (numWindows < 5)
windows[numWindows++] = w;
} }
mainwin = windows[0]; mainwin = &windows[0];
return w; return w;
} }
@ -132,7 +136,7 @@ void window_handle_event(struct mSDLWindow *w)
void window_all_handle_events() void window_all_handle_events()
{ {
for (int i = 0; i < numWindows; i++) { for (int i = 0; i < numWindows; i++) {
window_handle_event(windows[i]); window_handle_event(&windows[i]);
} }
} }