Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
macx_get.m
/* Copyright (c) Dietmar Planitzer, 1998, 2002 */ |
/* This program is freely distributable without licensing fees |
and is provided without guarantee or warrantee expressed or |
implied. This program is -not- in the public domain. */ |
#import "macx_glut.h" |
#import "GLUTMenu.h" |
#import "GLUTView.h" |
/* CENTRY */ |
int APIENTRY glutGet(GLenum param) |
{ |
GLint val = 0; |
int ival = 0; |
GLboolean state = GL_FALSE; |
GLUTAPI_DECLARATIONS |
GLUTAPI_BEGIN |
switch(param) { |
case GLUT_INIT_WINDOW_X: |
ival = __glutInitX; |
break; |
case GLUT_INIT_WINDOW_Y: |
ival = __glutInitY; |
break; |
case GLUT_INIT_WINDOW_WIDTH: |
ival = __glutInitWidth; |
break; |
case GLUT_INIT_WINDOW_HEIGHT: |
ival = __glutInitHeight; |
break; |
case GLUT_INIT_DISPLAY_MODE: |
ival = __glutDisplayMode; |
break; |
case GLUT_WINDOW_X: |
ival = (int) [__glutCurrentView windowPosition].x; |
break; |
case GLUT_WINDOW_Y: |
ival = (int) [__glutCurrentView windowPosition].y; |
break; |
case GLUT_WINDOW_WIDTH: |
ival = (int) [__glutCurrentView windowSize].width; |
break; |
case GLUT_WINDOW_HEIGHT: |
ival = (int) [__glutCurrentView windowSize].height; |
break; |
case GLUT_WINDOW_BUFFER_SIZE: |
{ |
GLboolean isIndexed = GL_FALSE; |
int bpp = 0; |
glGetBooleanv(GL_INDEX_MODE, &isIndexed); |
if(isIndexed == GL_FALSE) { |
glGetIntegerv(GL_RED_BITS, &val); |
bpp = (int) val; |
glGetIntegerv(GL_GREEN_BITS, &val); |
bpp += (int) val; |
glGetIntegerv(GL_BLUE_BITS, &val); |
bpp += (int) val; |
glGetIntegerv(GL_ALPHA_BITS, &val); |
bpp += (int) val; |
} else { |
glGetIntegerv(GL_INDEX_BITS, &val); |
bpp = (int) val; |
} |
ival = bpp; |
} |
break; |
case GLUT_WINDOW_STENCIL_SIZE: |
glGetIntegerv(GL_STENCIL_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_DEPTH_SIZE: |
glGetIntegerv(GL_DEPTH_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_RED_SIZE: |
glGetIntegerv(GL_RED_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_GREEN_SIZE: |
glGetIntegerv(GL_GREEN_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_BLUE_SIZE: |
glGetIntegerv(GL_BLUE_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_ALPHA_SIZE: |
glGetIntegerv(GL_ALPHA_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_ACCUM_RED_SIZE: |
glGetIntegerv(GL_ACCUM_RED_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_ACCUM_GREEN_SIZE: |
glGetIntegerv(GL_ACCUM_GREEN_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_ACCUM_BLUE_SIZE: |
glGetIntegerv(GL_ACCUM_BLUE_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_ACCUM_ALPHA_SIZE: |
glGetIntegerv(GL_ACCUM_ALPHA_BITS, &val); |
ival = (int) val; |
break; |
case GLUT_WINDOW_DOUBLEBUFFER: |
glGetBooleanv(GL_DOUBLEBUFFER, &state); |
ival = (int) state; |
break; |
case GLUT_WINDOW_RGBA: |
glGetBooleanv(GL_RGBA_MODE, &state); |
ival = (int) state; |
break; |
case GLUT_WINDOW_COLORMAP_SIZE: |
ival = 0; |
break; |
case GLUT_WINDOW_PARENT: |
ival = [__glutCurrentView parentWindowID]; |
break; |
case GLUT_WINDOW_NUM_CHILDREN: |
ival = [__glutCurrentView numberOfChildrens]; |
break; |
case GLUT_WINDOW_NUM_SAMPLES: |
if(glutExtensionSupported("GL_ARB_multisample")) { |
glGetIntegerv(GL_SAMPLES, &val); |
ival = val; |
} |
break; |
case GLUT_WINDOW_STEREO: |
glGetBooleanv(GL_STEREO, &state); |
ival = (int) state; |
break; |
case GLUT_WINDOW_CURSOR: |
ival = [__glutCurrentView cursor]; |
break; |
case GLUT_SCREEN_WIDTH: |
ival = __glutScreenWidth; |
break; |
case GLUT_SCREEN_HEIGHT: |
ival = __glutScreenHeight; |
break; |
case GLUT_SCREEN_WIDTH_MM: |
ival = (int) ((float) __glutScreenWidth / 3.53); |
break; |
case GLUT_SCREEN_HEIGHT_MM: |
ival = (int) ((float) __glutScreenHeight / 3.53); |
break; |
case GLUT_MENU_NUM_ITEMS: |
ival = [__glutGetMenu() numberOfItems]; |
break; |
case GLUT_DISPLAY_MODE_POSSIBLE: |
{ |
BOOL treatAsSingle; |
ival = (__glutDetermineWindowPixelFormat(&treatAsSingle, NO) != nil) ? 1 : 0; |
} |
break; |
case GLUT_ELAPSED_TIME: |
{ |
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate]; |
ival = (int)((now * 1000.0) - (__glutStartupTime * 1000.0)); |
} |
break; |
case GLUT_WINDOW_FORMAT_ID: |
ival = 0; |
break; |
default: |
__glutWarning("invalid glutGet parameter: %d", param); |
ival = -1; |
break; |
} |
GLUTAPI_END |
return ival; |
} |
/* ENDCENTRY */ |
Copyright © 2008 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2008-02-08