diff options
| author | Dominik Kaiser | 2024-05-09 13:58:50 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-05-09 13:58:50 +0200 |
| commit | 7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc (patch) | |
| tree | 92cffacb52f96bfc3a2e52419d7ae3b3234e37b7 /mlx/mlx_opengl.m | |
| parent | 0673f8b572b575bd5f3f9297cff615d61494dcdf (diff) | |
| download | so_long-7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc.tar.gz so_long-7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc.zip | |
Add MiniLibX
Diffstat (limited to 'mlx/mlx_opengl.m')
| -rw-r--r-- | mlx/mlx_opengl.m | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/mlx/mlx_opengl.m b/mlx/mlx_opengl.m new file mode 100644 index 0000000..554d79b --- /dev/null +++ b/mlx/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); +} |
