Platforms Release tag Build Issues Language License KK25

OpenGL

一个纯 Swift 编写的 OpenGL 函数加载器。要使用它,请在你的 Swift 文件中 import GL

OpenGL 是一个函数加载器,允许你从 Swift 程序中调用 OpenGL GPU 函数。这些函数在运行时由 OpenGL 惰性加载。OpenGL 还可以诊断由于函数在特定 GPU 和 OpenGL 版本上不可用而导致的无效 OpenGL 函数调用。OpenGL 可以加载高达 OpenGL 4.5 的任何 OpenGL 函数。

OpenGL 在 Linux 上可用;它在 Mac OSX 上未经测试,但没有理由不能工作。

函数

OpenGL 提供带有标签和无标签参数的 OpenGL 函数访问。 这可以帮助你避免常见的参数排序错误。

glClearColor(0.15, 0.15, 0.15, 1)
glClearColor(red: 0.15, green: 0.15, blue: 0.15, alpha: 1)

函数名称与 OpenGL C 规范相同,参数标签与 C 规范中的参数名称相同,但有两个例外:`in`: 已重命名为 input:`func`: 已重命名为 f:,以避免与 Swift 关键字冲突。

常量

OpenGLGL 作用域下导入 OpenGL 常量。除非这样做会导致常量的名称以数字开头,否则将删除常量中多余的 GL_ 前缀。

glBlendFunc(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA)

注意:GL 作用域与也称为 GL 的模块作用域不同。 OpenGL 枚举或 OpenGL 类型的完整限定名称是 GL.GL.__symbolname__。 OpenGL 函数的完整限定名称仅为 GL.__functionname__

所有 OpenGL 常量都是以下类型之一:GL.EnumGL.BitfieldGL.UInt64。(分别为 Int32UInt32UInt64。)

类型

OpenGL 为 OpenGL 类型提供类型别名定义。 这些类型别名被赋予 Swifty 名称,并且也限定于 GL

var tex_id:GL.UInt = 0
OpenGL C 类型 OpenGL Swift 类型别名 OpenGL Swift 类型
GLboolean GL.Bool Bool
GLdouble GL.Double Double
GLclampd GL.ClampDouble Double
GLfloat GL.Float Float
GLclampf GL.ClampFloat Float
GLbyte GL.Byte Int8
GLchar GL.Char Int8
GLcharARB GL.CharARB Int8
GLshort GL.Short Int16
GLint GL.Int Int32
GLsizei GL.Size Int32
GLenum GL.Enum Int32
GLfixed GL.Fixed Int32
GLclampx GL.ClampX Int32
GLint64 GL.Int64 Int64
GLint64EXT GL.Int64EXT Int64
GLintptr GL.IntPointer Int
GLintptrARB GL.IntPointerARB Int
GLsizeiptr GL.SizePointer Int
GLsizeiptrARB GL.SizePointerARB Int
GLvdpauSurfaceNV GL.VdpauSurfaceNV Int
GLubyte GL.UByte UInt8
GLushort GL.UShort UInt16
GLhalfNV GL.HalfNV UInt16
GLuint GL.UInt UInt32
GLbitfield GL.Bitfield UInt32
GLuint64 GL.UInt64 UInt64
GLuint64EXT GL.UInt64EXT UInt64
GLhandleARB GL.HandleARB UnsafeMutableRawPointer?
GLeglImageOES GL.EGLImageOES UnsafeMutableRawPointer?
GLsync GL.Sync OpaquePointer?