|
- /*
- 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_internal.h Private platform-independent definitions.
-
- Note this file contains function definitions, so it must be compiled into
- the final binary exactly once. Each platform specific implementation file
- including it once should achieve this.
- */
-
- #include "pugl.h"
-
- typedef struct PuglInternalsImpl PuglInternals;
-
- struct PuglViewImpl {
- PuglHandle handle;
- PuglCloseFunc closeFunc;
- PuglDisplayFunc displayFunc;
- PuglKeyboardFunc keyboardFunc;
- PuglMotionFunc motionFunc;
- PuglMouseFunc mouseFunc;
- PuglReshapeFunc reshapeFunc;
- PuglScrollFunc scrollFunc;
- PuglSpecialFunc specialFunc;
-
- PuglInternals* impl;
-
- int width;
- int height;
- int mods;
- bool ignoreKeyRepeat;
- bool redisplay;
- };
-
- void
- puglSetHandle(PuglView* view, PuglHandle handle)
- {
- view->handle = handle;
- }
-
- PuglHandle
- puglGetHandle(PuglView* view)
- {
- return view->handle;
- }
-
- int
- puglGetModifiers(PuglView* view)
- {
- return view->mods;
- }
-
- static inline void
- puglDefaultReshape(PuglView* view, int width, int height)
- {
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, width, height, 0, 0, 1);
- glViewport(0, 0, width, height);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- return;
-
- // unused
- (void)view;
- }
-
- void
- puglIgnoreKeyRepeat(PuglView* view, bool ignore)
- {
- view->ignoreKeyRepeat = ignore;
- }
-
- void
- puglSetCloseFunc(PuglView* view, PuglCloseFunc closeFunc)
- {
- view->closeFunc = closeFunc;
- }
-
- void
- puglSetDisplayFunc(PuglView* view, PuglDisplayFunc displayFunc)
- {
- view->displayFunc = displayFunc;
- }
-
- void
- puglSetKeyboardFunc(PuglView* view, PuglKeyboardFunc keyboardFunc)
- {
- view->keyboardFunc = keyboardFunc;
- }
-
- void
- puglSetMotionFunc(PuglView* view, PuglMotionFunc motionFunc)
- {
- view->motionFunc = motionFunc;
- }
-
- void
- puglSetMouseFunc(PuglView* view, PuglMouseFunc mouseFunc)
- {
- view->mouseFunc = mouseFunc;
- }
-
- void
- puglSetReshapeFunc(PuglView* view, PuglReshapeFunc reshapeFunc)
- {
- view->reshapeFunc = reshapeFunc;
- }
-
- void
- puglSetScrollFunc(PuglView* view, PuglScrollFunc scrollFunc)
- {
- view->scrollFunc = scrollFunc;
- }
-
- void
- puglSetSpecialFunc(PuglView* view, PuglSpecialFunc specialFunc)
- {
- view->specialFunc = specialFunc;
- }
|