###############################################################################
# Copyright (c) 2000, 2007 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
org_eclipse_swt_internal_opengl_carbon_AGL=
AGL_aglChoosePixelFormat=
AGL_aglChoosePixelFormat_0=cast=const AGLDevice *
AGL_aglChoosePixelFormat_1=
AGL_aglChoosePixelFormat_2=cast=const GLint *

AGL_aglCreateContext=
AGL_aglCreateContext_0=cast=AGLPixelFormat
AGL_aglCreateContext_1=cast=AGLContext

AGL_aglDescribePixelFormat=
AGL_aglDescribePixelFormat_0=cast=AGLPixelFormat
AGL_aglDescribePixelFormat_1=cast=GLint
AGL_aglDescribePixelFormat_2=cast=GLint *

AGL_aglDestroyContext=
AGL_aglDestroyContext_0=cast=AGLContext

AGL_aglDestroyPixelFormat=
AGL_aglDestroyPixelFormat_0=cast=AGLPixelFormat

AGL_aglEnable=
AGL_aglEnable_0=cast=AGLContext
AGL_aglEnable_1=cast=GLenum

AGL_aglGetCurrentContext=

AGL_aglGetDrawable=
AGL_aglGetDrawable_0=cast=AGLContext

AGL_aglSetCurrentContext=
AGL_aglSetCurrentContext_0=cast=AGLContext

AGL_aglSetDrawable=
AGL_aglSetDrawable_0=cast=AGLContext
AGL_aglSetDrawable_1=cast=AGLDrawable

AGL_aglSetInteger__III=
AGL_aglSetInteger__III_0=cast=(AGLContext)
AGL_aglSetInteger__III_1=cast=GLenum
AGL_aglSetInteger__III_2=cast=const GLint *

AGL_aglSetInteger__II_3I=
AGL_aglSetInteger__II_3I_0=cast=(AGLContext)
AGL_aglSetInteger__II_3I_1=cast=GLenum
AGL_aglSetInteger__II_3I_2=cast=const GLint *

AGL_aglSwapBuffers=
AGL_aglSwapBuffers_0=cast=AGLContext

AGL_aglUpdateContext=
AGL_aglUpdateContext_0=cast=AGLContext


