summaryrefslogtreecommitdiff
path: root/pugl/.svn/pristine/91/9136d3af8d5acc64a38a6f7a6c5385bb371da642.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'pugl/.svn/pristine/91/9136d3af8d5acc64a38a6f7a6c5385bb371da642.svn-base')
-rw-r--r--pugl/.svn/pristine/91/9136d3af8d5acc64a38a6f7a6c5385bb371da642.svn-base357
1 files changed, 0 insertions, 357 deletions
diff --git a/pugl/.svn/pristine/91/9136d3af8d5acc64a38a6f7a6c5385bb371da642.svn-base b/pugl/.svn/pristine/91/9136d3af8d5acc64a38a6f7a6c5385bb371da642.svn-base
deleted file mode 100644
index 2a6a59f..0000000
--- a/pugl/.svn/pristine/91/9136d3af8d5acc64a38a6f7a6c5385bb371da642.svn-base
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- Copyright 2012 David Robillard <http://drobilla.net>
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/**
- @file pugl.h API for Pugl, a minimal portable API for OpenGL.
-*/
-
-#ifndef PUGL_H_INCLUDED
-#define PUGL_H_INCLUDED
-
-#include <stdint.h>
-
-/*
- This API is pure portable C and contains no platform specific elements, or
- even a GL dependency. However, unfortunately GL includes vary across
- platforms so they are included here to allow for pure portable programs.
-*/
-#ifdef __APPLE__
-# include "OpenGL/gl.h"
-#else
-# ifdef _WIN32
-# include <windows.h> /* Broken Windows GL headers require this */
-# endif
-# include "GL/gl.h"
-#endif
-
-#ifdef PUGL_SHARED
-# ifdef _WIN32
-# define PUGL_LIB_IMPORT __declspec(dllimport)
-# define PUGL_LIB_EXPORT __declspec(dllexport)
-# else
-# define PUGL_LIB_IMPORT __attribute__((visibility("default")))
-# define PUGL_LIB_EXPORT __attribute__((visibility("default")))
-# endif
-# ifdef PUGL_INTERNAL
-# define PUGL_API PUGL_LIB_EXPORT
-# else
-# define PUGL_API PUGL_LIB_IMPORT
-# endif
-#else
-# define PUGL_API
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#else
-# include <stdbool.h>
-#endif
-
-/**
- @defgroup pugl Pugl
- A minimal portable API for OpenGL.
- @{
-*/
-
-/**
- An OpenGL view.
-*/
-typedef struct PuglViewImpl PuglView;
-
-/**
- A native window handle.
-
- On X11, this is a Window.
- On OSX, this is an NSView*.
- On Windows, this is a HWND.
-*/
-typedef intptr_t PuglNativeWindow;
-
-/**
- Return status code.
-*/
-typedef enum {
- PUGL_SUCCESS = 0
-} PuglStatus;
-
-/**
- Convenience symbols for ASCII control characters.
-*/
-typedef enum {
- PUGL_CHAR_BACKSPACE = 0x08,
- PUGL_CHAR_ESCAPE = 0x1B,
- PUGL_CHAR_DELETE = 0x7F
-} PuglChar;
-
-/**
- Special (non-Unicode) keyboard keys.
-*/
-typedef enum {
- PUGL_KEY_F1 = 1,
- PUGL_KEY_F2,
- PUGL_KEY_F3,
- PUGL_KEY_F4,
- PUGL_KEY_F5,
- PUGL_KEY_F6,
- PUGL_KEY_F7,
- PUGL_KEY_F8,
- PUGL_KEY_F9,
- PUGL_KEY_F10,
- PUGL_KEY_F11,
- PUGL_KEY_F12,
- PUGL_KEY_LEFT,
- PUGL_KEY_UP,
- PUGL_KEY_RIGHT,
- PUGL_KEY_DOWN,
- PUGL_KEY_PAGE_UP,
- PUGL_KEY_PAGE_DOWN,
- PUGL_KEY_HOME,
- PUGL_KEY_END,
- PUGL_KEY_INSERT,
- PUGL_KEY_SHIFT,
- PUGL_KEY_CTRL,
- PUGL_KEY_ALT,
- PUGL_KEY_SUPER
-} PuglKey;
-
-/**
- Keyboard modifier flags.
-*/
-typedef enum {
- PUGL_MOD_SHIFT = 1, /**< Shift key */
- PUGL_MOD_CTRL = 1 << 1, /**< Control key */
- PUGL_MOD_ALT = 1 << 2, /**< Alt/Option key */
- PUGL_MOD_SUPER = 1 << 3 /**< Mod4/Command/Windows key */
-} PuglMod;
-
-/**
- Handle for opaque user data.
-*/
-typedef void* PuglHandle;
-
-/**
- A function called when the window is closed.
-*/
-typedef void (*PuglCloseFunc)(PuglView* view);
-
-/**
- A function called to draw the view contents with OpenGL.
-*/
-typedef void (*PuglDisplayFunc)(PuglView* view);
-
-/**
- A function called when a key is pressed or released.
- @param view The view the event occured in.
- @param press True if the key was pressed, false if released.
- @param key Unicode point of the key pressed.
-*/
-typedef void (*PuglKeyboardFunc)(PuglView* view, bool press, uint32_t key);
-
-/**
- A function called when the pointer moves.
- @param view The view the event occured in.
- @param x The window-relative x coordinate of the pointer.
- @param y The window-relative y coordinate of the pointer.
-*/
-typedef void (*PuglMotionFunc)(PuglView* view, int x, int y);
-
-/**
- A function called when a mouse button is pressed or released.
- @param view The view the event occured in.
- @param button The button number (1 = left, 2 = middle, 3 = right).
- @param press True if the key was pressed, false if released.
- @param x The window-relative x coordinate of the pointer.
- @param y The window-relative y coordinate of the pointer.
-*/
-typedef void (*PuglMouseFunc)(
- PuglView* view, int button, bool press, int x, int y);
-
-/**
- A function called when the view is resized.
- @param view The view being resized.
- @param width The new view width.
- @param height The new view height.
-*/
-typedef void (*PuglReshapeFunc)(PuglView* view, int width, int height);
-
-/**
- A function called on scrolling (e.g. mouse wheel or track pad).
-
- The distances used here are in "lines", a single tick of a clicking mouse
- wheel. For example, @p dy = 1.0 scrolls 1 line up. Some systems and
- devices support finer resolution and/or higher values for fast scrolls,
- so programs should handle any value gracefully.
-
- @param view The view being scrolled.
- @param dx The scroll x distance.
- @param dx The scroll y distance.
-*/
-typedef void (*PuglScrollFunc)(PuglView* view,
- int x,
- int y,
- float dx,
- float dy);
-
-/**
- A function called when a special key is pressed or released.
-
- This callback allows the use of keys that do not have unicode points.
-
- @param view The view the event occured in.
- @param press True if the key was pressed, false if released.
- @param key The key pressed.
-*/
-typedef void (*PuglSpecialFunc)(PuglView* view, bool press, PuglKey key);
-
-/**
- Create a new GL window.
- @param parent Parent window, or 0 for top level.
- @param title Window title, or NULL.
- @param width Window width in pixels.
- @param height Window height in pixels.
- @param resizable Whether window should be user resizable.
- @param visible Whether window should be initially visible.
-*/
-PUGL_API PuglView*
-puglCreate(PuglNativeWindow parent,
- const char* title,
- int width,
- int height,
- bool resizable,
- bool visible);
-
-/**
- Set the handle to be passed to all callbacks.
-
- This is generally a pointer to a struct which contains all necessary state.
- Everything needed in callbacks should be here, not in static variables.
-
- Note the lack of this facility makes GLUT unsuitable for plugins or
- non-trivial programs; this mistake is largely why Pugl exists.
-*/
-PUGL_API void
-puglSetHandle(PuglView* view, PuglHandle handle);
-
-/**
- Get the handle to be passed to all callbacks.
-*/
-PUGL_API PuglHandle
-puglGetHandle(PuglView* view);
-
-/**
- Return the timestamp (if any) of the currently-processing event.
-*/
-PUGL_API uint32_t
-puglGetEventTimestamp(PuglView* view);
-
-/**
- Get the currently active modifiers (PuglMod flags).
-
- This should only be called from an event handler.
-*/
-PUGL_API int
-puglGetModifiers(PuglView* view);
-
-/**
- Ignore synthetic repeated key events.
-*/
-PUGL_API void
-puglIgnoreKeyRepeat(PuglView* view, bool ignore);
-
-/**
- Set the function to call when the window is closed.
-*/
-PUGL_API void
-puglSetCloseFunc(PuglView* view, PuglCloseFunc closeFunc);
-
-/**
- Set the display function which should draw the UI using GL.
-*/
-PUGL_API void
-puglSetDisplayFunc(PuglView* view, PuglDisplayFunc displayFunc);
-
-/**
- Set the function to call on keyboard events.
-*/
-PUGL_API void
-puglSetKeyboardFunc(PuglView* view, PuglKeyboardFunc keyboardFunc);
-
-/**
- Set the function to call on mouse motion.
-*/
-PUGL_API void
-puglSetMotionFunc(PuglView* view, PuglMotionFunc motionFunc);
-
-/**
- Set the function to call on mouse button events.
-*/
-PUGL_API void
-puglSetMouseFunc(PuglView* view, PuglMouseFunc mouseFunc);
-
-/**
- Set the function to call on scroll events.
-*/
-PUGL_API void
-puglSetScrollFunc(PuglView* view, PuglScrollFunc scrollFunc);
-
-/**
- Set the function to call on special events.
-*/
-PUGL_API void
-puglSetSpecialFunc(PuglView* view, PuglSpecialFunc specialFunc);
-
-/**
- Set the function to call when the window size changes.
-*/
-PUGL_API void
-puglSetReshapeFunc(PuglView* view, PuglReshapeFunc reshapeFunc);
-
-/**
- Return the native window handle.
-*/
-PUGL_API PuglNativeWindow
-puglGetNativeWindow(PuglView* view);
-
-/**
- Process all pending window events.
-
- This handles input events as well as rendering, so it should be called
- regularly and rapidly enough to keep the UI responsive.
-*/
-PUGL_API PuglStatus
-puglProcessEvents(PuglView* view);
-
-/**
- Request a redisplay on the next call to puglProcessEvents().
-*/
-PUGL_API void
-puglPostRedisplay(PuglView* view);
-
-/**
- Destroy a GL window.
-*/
-PUGL_API void
-puglDestroy(PuglView* view);
-
-/**
- @}
-*/
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* PUGL_H_INCLUDED */