mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 04:54:35 +00:00
Removed deprecated Carbon port.
This commit is contained in:
parent
cf2df6e478
commit
134d7d0708
@ -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
Block a user