Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Cocoa/Cocoa.h>
- #include <GLFW/glfw3.h>
- #define GLFW_EXPOSE_NATIVE_NSGL
- #define GLFW_EXPOSE_NATIVE_COCOA
- #include <GLFW/glfw3native.h>
- void testOpenPanel()
- {
- NSOpenPanel* openPanel = [NSOpenPanel openPanel];
- openPanel.title = @"Choose a .JSON file";
- openPanel.showsResizeIndicator = YES;
- openPanel.showsHiddenFiles = NO;
- openPanel.canChooseDirectories = NO;
- openPanel.canCreateDirectories = YES;
- openPanel.allowsMultipleSelection = NO;
- openPanel.allowedFileTypes = @[@"json"];
- [openPanel beginWithCompletionHandler:^(NSInteger result) {
- if (result == NSModalResponseOK) {
- NSURL *selection = openPanel.URLs[0];
- NSString* path = [selection.path stringByResolvingSymlinksInPath];
- NSLog(@"Path: %@", path);
- }
- }];
- }
- void testSavePanel()
- {
- NSSavePanel* savePanel = [NSSavePanel savePanel];
- savePanel.title = @"Choose a .JSON file";
- savePanel.showsResizeIndicator = YES;
- savePanel.showsHiddenFiles = NO;
- savePanel.canCreateDirectories = YES;
- savePanel.allowedFileTypes = @[@"json"];
- [savePanel beginWithCompletionHandler:^(NSInteger result) {
- if (result == NSModalResponseOK) {
- NSURL *selection = savePanel.URL;
- NSString* path = [selection.path stringByResolvingSymlinksInPath];
- NSLog(@"Path: %@", path);
- }
- }];
- }
- static void error_callback(int error, const char* description)
- {
- fputs(description, stderr);
- }
- static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
- {
- if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
- glfwSetWindowShouldClose(window, GL_TRUE);
- }
- int main(void)
- {
- GLFWwindow* window;
- glfwSetErrorCallback(error_callback);
- if (!glfwInit())
- exit(EXIT_FAILURE);
- window = glfwCreateWindow(640, 480, "Simple example", NULL, NULL);
- if (!window)
- {
- glfwTerminate();
- exit(EXIT_FAILURE);
- }
- glfwMakeContextCurrent(window);
- glfwSwapInterval(1);
- glfwSetKeyCallback(window, key_callback);
- NSWindow* cocoaWindow = glfwGetCocoaWindow(window);
- NSOpenGLContext* context = glfwGetNSGLContext(window);
- testOpenPanel();
- while (!glfwWindowShouldClose(window))
- {
- //[context makeCurrentContext];
- glfwMakeContextCurrent(nullptr);
- glfwMakeContextCurrent(window);
- float ratio;
- int width, height;
- glfwGetFramebufferSize(window, &width, &height);
- ratio = width / (float) height;
- glViewport(0, 0, width, height);
- glClear(GL_COLOR_BUFFER_BIT);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f);
- glBegin(GL_TRIANGLES);
- glColor3f(1.f, 0.f, 0.f);
- glVertex3f(-0.6f, -0.4f, 0.f);
- glColor3f(0.f, 1.f, 0.f);
- glVertex3f(0.6f, -0.4f, 0.f);
- glColor3f(0.f, 0.f, 1.f);
- glVertex3f(0.f, 0.6f, 0.f);
- CHECK_GL_ERROR_DEBUG();
- glEnd();
- glfwSwapBuffers(window);
- glfwPollEvents();
- }
- glfwDestroyWindow(window);
- glfwTerminate();
- exit(EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement