parent
cf2df6e478
commit
134d7d0708
10 changed files with 0 additions and 2086 deletions
@ -1,38 +0,0 @@ |
|||||||
|
|
||||||
configure_file( |
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/libglfw.pc.cmake |
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libglfw.pc @ONLY) |
|
||||||
|
|
||||||
include_directories( |
|
||||||
${CMAKE_CURRENT_SOURCE_DIR} |
|
||||||
${CMAKE_SOURCE_DIR}/lib |
|
||||||
${GLFW_INCLUDE_DIR}) |
|
||||||
|
|
||||||
set(libglfw_SOURCES |
|
||||||
${common_SOURCES} |
|
||||||
carbon_enable.c |
|
||||||
carbon_fullscreen.c |
|
||||||
carbon_glext.c |
|
||||||
carbon_init.c |
|
||||||
carbon_joystick.c |
|
||||||
carbon_time.c |
|
||||||
carbon_window.c) |
|
||||||
|
|
||||||
add_library(libglfwStatic STATIC ${libglfw_SOURCES}) |
|
||||||
add_library(libglfwShared SHARED ${libglfw_SOURCES}) |
|
||||||
target_link_libraries(libglfwShared ${GLFW_LIBRARIES}) |
|
||||||
set_target_properties(libglfwStatic libglfwShared PROPERTIES |
|
||||||
CLEAN_DIRECT_OUTPUT 1 |
|
||||||
OUTPUT_NAME glfw |
|
||||||
) |
|
||||||
|
|
||||||
# Append -fno-common to the compile flags to work around a bug in the Apple GCC |
|
||||||
get_target_property(CFLAGS libglfwShared COMPILE_FLAGS) |
|
||||||
if(NOT CFLAGS) |
|
||||||
set(CFLAGS "") |
|
||||||
endif(NOT CFLAGS) |
|
||||||
set_target_properties(libglfwShared PROPERTIES COMPILE_FLAGS "${CFLAGS} -fno-common") |
|
||||||
|
|
||||||
install(TARGETS libglfwStatic libglfwShared DESTINATION lib) |
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libglfw.pc DESTINATION lib/pkgconfig) |
|
||||||
|
|
@ -1,43 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
void _glfwPlatformEnableSystemKeys( void ) |
|
||||||
{ |
|
||||||
// Nothing to do; event handling code checks the status of
|
|
||||||
// _glfwWin.sysKeysDisabled to ensure this behavior.
|
|
||||||
} |
|
||||||
|
|
||||||
void _glfwPlatformDisableSystemKeys( void ) |
|
||||||
{ |
|
||||||
// Nothing to do; event handling code checks the status of
|
|
||||||
// _glfwWin.sysKeysDisabled to ensure this behavior.
|
|
||||||
} |
|
||||||
|
|
@ -1,129 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#include "internal.h" |
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Compares two video modes
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
static int _glfwVideoModesEqual( GLFWvidmode* first, |
|
||||||
GLFWvidmode* second ) |
|
||||||
{ |
|
||||||
if( first->width != second->width ) |
|
||||||
return 0; |
|
||||||
|
|
||||||
if( first->height != second->height ) |
|
||||||
return 0; |
|
||||||
|
|
||||||
if( first->redBits + first->greenBits + first->blueBits != |
|
||||||
second->redBits + second->greenBits + second->blueBits ) |
|
||||||
return 0; |
|
||||||
|
|
||||||
return 1; |
|
||||||
} |
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Converts a CG mode to a GLFW mode
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
static void _glfwCGToGLFWVideoMode( CFDictionaryRef cgMode, |
|
||||||
GLFWvidmode* glfwMode ) |
|
||||||
{ |
|
||||||
int bitsPerSample; |
|
||||||
|
|
||||||
CFNumberGetValue( CFDictionaryGetValue( cgMode, kCGDisplayWidth ), |
|
||||||
kCFNumberIntType, |
|
||||||
&(glfwMode->width) ); |
|
||||||
CFNumberGetValue( CFDictionaryGetValue( cgMode, kCGDisplayHeight ), |
|
||||||
kCFNumberIntType, |
|
||||||
&(glfwMode->height) ); |
|
||||||
|
|
||||||
CFNumberGetValue( CFDictionaryGetValue( cgMode, kCGDisplayBitsPerSample ), |
|
||||||
kCFNumberIntType, |
|
||||||
&bitsPerSample ); |
|
||||||
|
|
||||||
glfwMode->redBits = bitsPerSample; |
|
||||||
glfwMode->greenBits = bitsPerSample; |
|
||||||
glfwMode->blueBits = bitsPerSample; |
|
||||||
} |
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Get a list of available video modes
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
int _glfwPlatformGetVideoModes( GLFWvidmode *list, int maxcount ) |
|
||||||
{ |
|
||||||
int i, j, maxModes, numModes; |
|
||||||
GLFWvidmode mode; |
|
||||||
CFArrayRef availableModes = CGDisplayAvailableModes( kCGDirectMainDisplay ); |
|
||||||
CFIndex numberOfAvailableModes = CFArrayGetCount( availableModes ); |
|
||||||
|
|
||||||
numModes = 0; |
|
||||||
maxModes = ( numberOfAvailableModes < maxcount ? |
|
||||||
numberOfAvailableModes : |
|
||||||
maxcount ); |
|
||||||
|
|
||||||
for( i = 0; i < maxModes; ++i ) |
|
||||||
{ |
|
||||||
_glfwCGToGLFWVideoMode( CFArrayGetValueAtIndex( availableModes, i ), |
|
||||||
&mode ); |
|
||||||
|
|
||||||
// Is it a valid mode? (only list depths >= 15 bpp)
|
|
||||||
if( mode.redBits + mode.greenBits + mode.blueBits < 15 ) |
|
||||||
continue; |
|
||||||
|
|
||||||
// Check for duplicate of current mode in target list
|
|
||||||
for( j = 0; j < numModes; ++j ) |
|
||||||
{ |
|
||||||
if( _glfwVideoModesEqual( &mode, &(list[j]) ) ) |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
// If empty list or no match found
|
|
||||||
if( numModes == 0 || j == numModes ) |
|
||||||
{ |
|
||||||
list[numModes++] = mode; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
return numModes; |
|
||||||
} |
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Get the desktop video mode
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
void _glfwPlatformGetDesktopMode( GLFWvidmode *mode ) |
|
||||||
{ |
|
||||||
_glfwCGToGLFWVideoMode( _glfwDesktopVideoMode, mode ); |
|
||||||
} |
|
||||||
|
|
@ -1,53 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#include "internal.h" |
|
||||||
|
|
||||||
int _glfwPlatformExtensionSupported( const char *extension ) |
|
||||||
{ |
|
||||||
// There are no AGL, CGL or NSGL extensions.
|
|
||||||
return GL_FALSE; |
|
||||||
} |
|
||||||
|
|
||||||
void * _glfwPlatformGetProcAddress( const char *procname ) |
|
||||||
{ |
|
||||||
CFStringRef symbolName = CFStringCreateWithCString( kCFAllocatorDefault, |
|
||||||
procname, |
|
||||||
kCFStringEncodingASCII ); |
|
||||||
|
|
||||||
void *symbol = CFBundleGetFunctionPointerForName( _glfwLibrary.Libs.OpenGLFramework, |
|
||||||
symbolName ); |
|
||||||
|
|
||||||
CFRelease( symbolName ); |
|
||||||
|
|
||||||
return symbol; |
|
||||||
} |
|
||||||
|
|
@ -1,159 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
// Copyright (c) 2006-2007 Robin Leffmann
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#include "internal.h" |
|
||||||
|
|
||||||
#include <unistd.h> |
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Global variables
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
// KCHR resource pointer for keycode translation
|
|
||||||
void *KCHRPtr; |
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Terminate GLFW when exiting application
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
static void glfw_atexit( void ) |
|
||||||
{ |
|
||||||
glfwTerminate(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
#define NO_BUNDLE_MESSAGE \ |
|
||||||
"Working in unbundled mode. " \
|
|
||||||
"You should build a .app wrapper for your Mac OS X applications.\n" |
|
||||||
|
|
||||||
#define UNBUNDLED \ |
|
||||||
fprintf(stderr, NO_BUNDLE_MESSAGE); \
|
|
||||||
_glfwLibrary.Unbundled = 1; \
|
|
||||||
return |
|
||||||
|
|
||||||
void _glfwChangeToResourcesDirectory( void ) |
|
||||||
{ |
|
||||||
CFBundleRef mainBundle = CFBundleGetMainBundle(); |
|
||||||
if( mainBundle == NULL ) |
|
||||||
{ |
|
||||||
UNBUNDLED; |
|
||||||
} |
|
||||||
|
|
||||||
CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL( mainBundle ); |
|
||||||
char resourcesPath[ _GLFW_MAX_PATH_LENGTH ]; |
|
||||||
|
|
||||||
CFStringRef lastComponent = CFURLCopyLastPathComponent( resourcesURL ); |
|
||||||
if( kCFCompareEqualTo != CFStringCompare( |
|
||||||
CFSTR( "Resources" ), |
|
||||||
lastComponent, |
|
||||||
0 ) ) |
|
||||||
{ |
|
||||||
UNBUNDLED; |
|
||||||
} |
|
||||||
|
|
||||||
CFRelease( lastComponent ); |
|
||||||
|
|
||||||
if( !CFURLGetFileSystemRepresentation( resourcesURL, |
|
||||||
TRUE, |
|
||||||
(UInt8*)resourcesPath, |
|
||||||
_GLFW_MAX_PATH_LENGTH ) ) |
|
||||||
{ |
|
||||||
CFRelease( resourcesURL ); |
|
||||||
UNBUNDLED; |
|
||||||
} |
|
||||||
|
|
||||||
CFRelease( resourcesURL ); |
|
||||||
|
|
||||||
if( chdir( resourcesPath ) != 0 ) |
|
||||||
{ |
|
||||||
UNBUNDLED; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
int _glfwPlatformInit( void ) |
|
||||||
{ |
|
||||||
struct timeval tv; |
|
||||||
UInt32 nullDummy = 0; |
|
||||||
|
|
||||||
_glfwWin.window = NULL; |
|
||||||
_glfwWin.aglContext = NULL; |
|
||||||
_glfwWin.cglContext = NULL; |
|
||||||
_glfwWin.windowUPP = NULL; |
|
||||||
|
|
||||||
_glfwInput.Modifiers = 0; |
|
||||||
|
|
||||||
_glfwLibrary.Unbundled = 0; |
|
||||||
|
|
||||||
_glfwLibrary.Libs.OpenGLFramework = |
|
||||||
CFBundleGetBundleWithIdentifier( CFSTR( "com.apple.opengl" ) ); |
|
||||||
if( _glfwLibrary.Libs.OpenGLFramework == NULL ) |
|
||||||
{ |
|
||||||
fprintf( stderr, "glfwInit failing because you aren't linked to OpenGL\n" ); |
|
||||||
return GL_FALSE; |
|
||||||
} |
|
||||||
|
|
||||||
_glfwDesktopVideoMode = CGDisplayCurrentMode( kCGDirectMainDisplay ); |
|
||||||
if( _glfwDesktopVideoMode == NULL ) |
|
||||||
{ |
|
||||||
fprintf( stderr, "glfwInit failing because it kind find the desktop display mode\n" ); |
|
||||||
return GL_FALSE; |
|
||||||
} |
|
||||||
|
|
||||||
// Install atexit routine
|
|
||||||
atexit( glfw_atexit ); |
|
||||||
|
|
||||||
_glfwChangeToResourcesDirectory(); |
|
||||||
|
|
||||||
// Ugly hack to reduce the nasty jump that occurs at the first non-
|
|
||||||
// sys keypress, caused by OS X loading certain meta scripts used
|
|
||||||
// for lexical- and raw keycode translation - instead of letting
|
|
||||||
// this happen while our application is running, we do some blunt
|
|
||||||
// function calls in advance just to get the script caching out of
|
|
||||||
// the way BEFORE our window/screen is opened. These calls might
|
|
||||||
// generate err return codes, but we don't care in this case.
|
|
||||||
// NOTE: KCHRPtr is declared globally, because we need it later on.
|
|
||||||
KCHRPtr = (void *)GetScriptVariable( smCurrentScript, smKCHRCache ); |
|
||||||
KeyTranslate( KCHRPtr, 0, &nullDummy ); |
|
||||||
UppercaseText( (char *)&nullDummy, 0, smSystemScript ); |
|
||||||
|
|
||||||
gettimeofday( &tv, NULL ); |
|
||||||
_glfwLibrary.Timer.t0 = tv.tv_sec + (double) tv.tv_usec / 1000000.0; |
|
||||||
|
|
||||||
return GL_TRUE; |
|
||||||
} |
|
||||||
|
|
||||||
int _glfwPlatformTerminate( void ) |
|
||||||
{ |
|
||||||
return GL_TRUE; |
|
||||||
} |
|
||||||
|
|
@ -1,51 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#include "internal.h" |
|
||||||
|
|
||||||
// TO DO: use HID manager to implement joystick support.
|
|
||||||
|
|
||||||
int _glfwPlatformGetJoystickParam( int joy, int param ) |
|
||||||
{ |
|
||||||
// GL_FALSE == 0
|
|
||||||
return 0; |
|
||||||
} |
|
||||||
|
|
||||||
int _glfwPlatformGetJoystickPos( int joy, float *pos, int numaxes ) |
|
||||||
{ |
|
||||||
return 0; |
|
||||||
} |
|
||||||
|
|
||||||
int _glfwPlatformGetJoystickButtons( int joy, unsigned char *buttons, int numbuttons ) |
|
||||||
{ |
|
||||||
return 0; |
|
||||||
} |
|
||||||
|
|
@ -1,62 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#include "internal.h" |
|
||||||
|
|
||||||
//************************************************************************
|
|
||||||
//**** Platform implementation functions ****
|
|
||||||
//************************************************************************
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Return timer value in seconds
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
double _glfwPlatformGetTime( void ) |
|
||||||
{ |
|
||||||
struct timeval tv; |
|
||||||
|
|
||||||
gettimeofday( &tv, NULL ); |
|
||||||
return tv.tv_sec + (double) tv.tv_usec / 1000000.0 - _glfwLibrary.Timer.t0; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Set timer value in seconds
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
void _glfwPlatformSetTime( double time ) |
|
||||||
{ |
|
||||||
struct timeval tv; |
|
||||||
|
|
||||||
gettimeofday( &tv, NULL ); |
|
||||||
_glfwLibrary.Timer.t0 = tv.tv_sec + (double) tv.tv_usec / 1000000.0 - time; |
|
||||||
} |
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +0,0 @@ |
|||||||
prefix=@PREFIX@ |
|
||||||
exec_prefix=@PREFIX@ |
|
||||||
libdir=@PREFIX@/lib |
|
||||||
includedir=@PREFIX@/include |
|
||||||
|
|
||||||
Name: GLFW |
|
||||||
Description: A portable framework for OpenGL development |
|
||||||
Version: 3.0 |
|
||||||
URL: http://www.glfw.org/ |
|
||||||
Libs: -L${libdir} -lglfw -framework AGL -framework OpenGL -framework Carbon |
|
||||||
Cflags: -I${includedir} |
|
@ -1,265 +0,0 @@ |
|||||||
//========================================================================
|
|
||||||
// GLFW - An OpenGL framework
|
|
||||||
// Platform: Carbon/AGL/CGL
|
|
||||||
// API Version: 3.0
|
|
||||||
// WWW: http://www.glfw.org/
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2002-2006 Marcus Geelnard
|
|
||||||
// Copyright (c) 2003 Keith Bauer
|
|
||||||
// Copyright (c) 2003-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
|
||||||
// Copyright (c) 2006-2007 Robin Leffmann
|
|
||||||
//
|
|
||||||
// This software is provided 'as-is', without any express or implied
|
|
||||||
// warranty. In no event will the authors be held liable for any damages
|
|
||||||
// arising from the use of this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
// claim that you wrote the original software. If you use this software
|
|
||||||
// in a product, an acknowledgment in the product documentation would
|
|
||||||
// be appreciated but is not required.
|
|
||||||
//
|
|
||||||
// 2. Altered source versions must be plainly marked as such, and must not
|
|
||||||
// be misrepresented as being the original software.
|
|
||||||
//
|
|
||||||
// 3. This notice may not be removed or altered from any source
|
|
||||||
// distribution.
|
|
||||||
//
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#ifndef _platform_h_ |
|
||||||
#define _platform_h_ |
|
||||||
|
|
||||||
|
|
||||||
// This is the Mac OS X version of GLFW
|
|
||||||
#define _GLFW_MAC_OS_X |
|
||||||
|
|
||||||
#include <Carbon/Carbon.h> |
|
||||||
#include <OpenGL/OpenGL.h> |
|
||||||
#include <AGL/agl.h> |
|
||||||
|
|
||||||
#include "../../include/GL/glfw.h" |
|
||||||
|
|
||||||
#if MACOSX_DEPLOYMENT_TARGET < MAC_OS_X_VERSION_10_3 |
|
||||||
|
|
||||||
#ifndef kCGLNoError |
|
||||||
#define kCGLNoError 0 |
|
||||||
#endif |
|
||||||
|
|
||||||
#endif |
|
||||||
|
|
||||||
|
|
||||||
#ifndef GL_VERSION_3_0 |
|
||||||
|
|
||||||
typedef const GLubyte * (APIENTRY *PFNGLGETSTRINGIPROC) (GLenum, GLuint); |
|
||||||
|
|
||||||
#endif /*GL_VERSION_3_0*/ |
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Defines
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
#define _GLFW_MAX_PATH_LENGTH (8192) |
|
||||||
|
|
||||||
#define MAC_KEY_ENTER 0x24 |
|
||||||
#define MAC_KEY_RETURN 0x34 |
|
||||||
#define MAC_KEY_ESC 0x35 |
|
||||||
#define MAC_KEY_F1 0x7A |
|
||||||
#define MAC_KEY_F2 0x78 |
|
||||||
#define MAC_KEY_F3 0x63 |
|
||||||
#define MAC_KEY_F4 0x76 |
|
||||||
#define MAC_KEY_F5 0x60 |
|
||||||
#define MAC_KEY_F6 0x61 |
|
||||||
#define MAC_KEY_F7 0x62 |
|
||||||
#define MAC_KEY_F8 0x64 |
|
||||||
#define MAC_KEY_F9 0x65 |
|
||||||
#define MAC_KEY_F10 0x6D |
|
||||||
#define MAC_KEY_F11 0x67 |
|
||||||
#define MAC_KEY_F12 0x6F |
|
||||||
#define MAC_KEY_F13 0x69 |
|
||||||
#define MAC_KEY_F14 0x6B |
|
||||||
#define MAC_KEY_F15 0x71 |
|
||||||
#define MAC_KEY_UP 0x7E |
|
||||||
#define MAC_KEY_DOWN 0x7D |
|
||||||
#define MAC_KEY_LEFT 0x7B |
|
||||||
#define MAC_KEY_RIGHT 0x7C |
|
||||||
#define MAC_KEY_TAB 0x30 |
|
||||||
#define MAC_KEY_BACKSPACE 0x33 |
|
||||||
#define MAC_KEY_HELP 0x72 |
|
||||||
#define MAC_KEY_DEL 0x75 |
|
||||||
#define MAC_KEY_PAGEUP 0x74 |
|
||||||
#define MAC_KEY_PAGEDOWN 0x79 |
|
||||||
#define MAC_KEY_HOME 0x73 |
|
||||||
#define MAC_KEY_END 0x77 |
|
||||||
#define MAC_KEY_KP_0 0x52 |
|
||||||
#define MAC_KEY_KP_1 0x53 |
|
||||||
#define MAC_KEY_KP_2 0x54 |
|
||||||
#define MAC_KEY_KP_3 0x55 |
|
||||||
#define MAC_KEY_KP_4 0x56 |
|
||||||
#define MAC_KEY_KP_5 0x57 |
|
||||||
#define MAC_KEY_KP_6 0x58 |
|
||||||
#define MAC_KEY_KP_7 0x59 |
|
||||||
#define MAC_KEY_KP_8 0x5B |
|
||||||
#define MAC_KEY_KP_9 0x5C |
|
||||||
#define MAC_KEY_KP_DIVIDE 0x4B |
|
||||||
#define MAC_KEY_KP_MULTIPLY 0x43 |
|
||||||
#define MAC_KEY_KP_SUBTRACT 0x4E |
|
||||||
#define MAC_KEY_KP_ADD 0x45 |
|
||||||
#define MAC_KEY_KP_DECIMAL 0x41 |
|
||||||
#define MAC_KEY_KP_EQUAL 0x51 |
|
||||||
#define MAC_KEY_KP_ENTER 0x4C |
|
||||||
#define MAC_KEY_NUMLOCK 0x47 |
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// GLFW platform specific types
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Pointer length integer
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
typedef intptr_t GLFWintptr; |
|
||||||
|
|
||||||
|
|
||||||
GLFWGLOBAL CFDictionaryRef _glfwDesktopVideoMode; |
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Window structure
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
typedef struct _GLFWwin_struct _GLFWwin; |
|
||||||
|
|
||||||
struct _GLFWwin_struct { |
|
||||||
|
|
||||||
// ========= PLATFORM INDEPENDENT MANDATORY PART =========================
|
|
||||||
|
|
||||||
// User callback functions
|
|
||||||
GLFWwindowsizefun windowSizeCallback; |
|
||||||
GLFWwindowclosefun windowCloseCallback; |
|
||||||
GLFWwindowrefreshfun windowRefreshCallback; |
|
||||||
GLFWmousebuttonfun mouseButtonCallback; |
|
||||||
GLFWmouseposfun mousePosCallback; |
|
||||||
GLFWmousewheelfun mouseWheelCallback; |
|
||||||
GLFWkeyfun keyCallback; |
|
||||||
GLFWcharfun charCallback; |
|
||||||
|
|
||||||
// User selected window settings
|
|
||||||
int fullscreen; // Fullscreen flag
|
|
||||||
int mouseLock; // Mouse-lock flag
|
|
||||||
int sysKeysDisabled; // System keys disabled flag
|
|
||||||
int windowNoResize; // Resize- and maximize gadgets disabled flag
|
|
||||||
int refreshRate; // Vertical monitor refresh rate
|
|
||||||
|
|
||||||
// Window status & parameters
|
|
||||||
int opened; // Flag telling if window is opened or not
|
|
||||||
int active; // Application active flag
|
|
||||||
int iconified; // Window iconified flag
|
|
||||||
int width, height; // Window width and heigth
|
|
||||||
int accelerated; // GL_TRUE if window is HW accelerated
|
|
||||||
|
|
||||||
// Framebuffer attributes
|
|
||||||
int redBits; |
|
||||||
int greenBits; |
|
||||||
int blueBits; |
|
||||||
int alphaBits; |
|
||||||
int depthBits; |
|
||||||
int stencilBits; |
|
||||||
int accumRedBits; |
|
||||||
int accumGreenBits; |
|
||||||
int accumBlueBits; |
|
||||||
int accumAlphaBits; |
|
||||||
int auxBuffers; |
|
||||||
int stereo; |
|
||||||
int samples; |
|
||||||
|
|
||||||
// OpenGL extensions and context attributes
|
|
||||||
int glMajor, glMinor, glRevision; |
|
||||||
int glForward, glDebug, glProfile; |
|
||||||
|
|
||||||
PFNGLGETSTRINGIPROC GetStringi; |
|
||||||
|
|
||||||
// ========= PLATFORM SPECIFIC PART ======================================
|
|
||||||
|
|
||||||
WindowRef window; |
|
||||||
|
|
||||||
AGLContext aglContext; |
|
||||||
AGLPixelFormat aglPixelFormat; |
|
||||||
|
|
||||||
CGLContextObj cglContext; |
|
||||||
CGLPixelFormatObj cglPixelFormat; |
|
||||||
|
|
||||||
EventHandlerUPP windowUPP; |
|
||||||
EventHandlerUPP mouseUPP; |
|
||||||
EventHandlerUPP commandUPP; |
|
||||||
EventHandlerUPP keyboardUPP; |
|
||||||
}; |
|
||||||
|
|
||||||
GLFWGLOBAL _GLFWwin _glfwWin; |
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// User input status (some of this should go in _GLFWwin)
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
GLFWGLOBAL struct { |
|
||||||
|
|
||||||
// ========= PLATFORM INDEPENDENT MANDATORY PART =========================
|
|
||||||
|
|
||||||
// Mouse status
|
|
||||||
int MousePosX, MousePosY; |
|
||||||
int WheelPos; |
|
||||||
char MouseButton[ GLFW_MOUSE_BUTTON_LAST + 1 ]; |
|
||||||
|
|
||||||
// Keyboard status
|
|
||||||
char Key[ GLFW_KEY_LAST + 1 ]; |
|
||||||
int LastChar; |
|
||||||
|
|
||||||
// User selected settings
|
|
||||||
int StickyKeys; |
|
||||||
int StickyMouseButtons; |
|
||||||
int KeyRepeat; |
|
||||||
|
|
||||||
// ========= PLATFORM SPECIFIC PART ======================================
|
|
||||||
|
|
||||||
UInt32 Modifiers; |
|
||||||
|
|
||||||
} _glfwInput; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Library global data
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
GLFWGLOBAL struct { |
|
||||||
|
|
||||||
// ========= PLATFORM INDEPENDENT MANDATORY PART =========================
|
|
||||||
|
|
||||||
// Window opening hints
|
|
||||||
_GLFWhints hints; |
|
||||||
|
|
||||||
// ========= PLATFORM SPECIFIC PART ======================================
|
|
||||||
|
|
||||||
// Timer data
|
|
||||||
struct { |
|
||||||
double t0; |
|
||||||
} Timer; |
|
||||||
|
|
||||||
struct { |
|
||||||
// Bundle for dynamically-loading extension function pointers
|
|
||||||
CFBundleRef OpenGLFramework; |
|
||||||
} Libs; |
|
||||||
|
|
||||||
int Unbundled; |
|
||||||
|
|
||||||
} _glfwLibrary; |
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Prototypes for platform specific internal functions
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
void _glfwChangeToResourcesDirectory( void ); |
|
||||||
|
|
||||||
#endif // _platform_h_
|
|
Loading…
Reference in New Issue