aboutsummaryrefslogtreecommitdiffstats
path: root/minilibx/mlx_opengl.m
diff options
context:
space:
mode:
Diffstat (limited to 'minilibx/mlx_opengl.m')
-rw-r--r--minilibx/mlx_opengl.m57
1 files changed, 57 insertions, 0 deletions
diff --git a/minilibx/mlx_opengl.m b/minilibx/mlx_opengl.m
new file mode 100644
index 0000000..554d79b
--- /dev/null
+++ b/minilibx/mlx_opengl.m
@@ -0,0 +1,57 @@
+// mlx_opengl.m
+
+#import <Cocoa/Cocoa.h>
+#import <OpenGL/gl3.h>
+#import <AppKit/NSOpenGLView.h>
+
+#include <stdio.h>
+
+#include "mlx_int.h"
+#include "mlx_new_window.h"
+
+
+
+
+
+NSOpenGLPixelFormatAttribute pfa_attrs_opengl[] =
+ {
+ NSOpenGLPFADepthSize, 32,
+ NSOpenGLPFADoubleBuffer,
+ NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion4_1Core,
+ 0
+ };
+
+
+
+void *mlx_new_opengl_window(mlx_ptr_t *mlx_ptr, int size_x, int size_y, char *title)
+{
+ mlx_win_list_t *newwin;
+ NSString *str;
+
+ if ((newwin = malloc(sizeof(*newwin))) == NULL)
+ return ((void *)0);
+ newwin->img_list = NULL;
+ newwin->next = mlx_ptr->win_list;
+ newwin->nb_flush = 0;
+ newwin->pixmgt = 0;
+ mlx_ptr->win_list = newwin;
+
+ NSRect windowRect = NSMakeRect(100, 100, size_x, size_y);
+ str = [NSString stringWithCString:title encoding:NSASCIIStringEncoding];
+ newwin->winid = [[MlxWin alloc] initWithRect:windowRect andTitle:str pfaAttrs:pfa_attrs_opengl];
+
+ return ((void *)newwin);
+}
+
+
+int mlx_opengl_swap_buffers(mlx_win_list_t *win_ptr)
+{
+ [(id)(win_ptr->winid) flushGLContext];
+ return (0);
+}
+
+int mlx_opengl_window_set_context(mlx_win_list_t *win_ptr)
+{
+ [(id)(win_ptr->winid) selectGLContext];
+ return (0);
+}