SwiftGL OpenGL

要使用,请在你的 Package.swift 文件中添加依赖项。

let package = Package(
    dependencies: [
        .Package(url: "https://github.com/SwiftGL/OpenGL.git", majorVersion: 3)
    ]
)

然后在你的 Swift 文件中 import SGLOpenGL

开始入门

在使用 OpenGL 函数之前,你需要能够调用它们。SwiftGL OpenGL 加载器导入了所有直到 OpenGL 4.5 的函数。平台差异已被抽象化。无需初始化,也没有 C 代码。100% 简单。100% Swift。

如果你之前在 Swift 中使用过 OpenGL,你可能使用过如下的命令:

glDepthMask(GLboolean(GL_FALSE))
glClear(GLbitfield(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT))
glTexParameteri(GLenum(GL_TEXTURE_2D), GLenum(GL_TEXTURE_WRAP_S), GLint(GL_MIRRORED_REPEAT))

你必须转换所有类型。不好玩。这是 Swift 翻译 C 头文件的方式导致的。因为 SwiftGL 加载器是专门为 Swift 打造的,所以所有类型转换都成为了过去。

glDepthMask(false)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT)

每个 OpenGL 命令也都带有参数标签。这可能会让你的代码更易读。它也能避免你将值放在错误的位置,有时还能捕获复制粘贴的错误。

glClear(mask: GL_COLOR_BUFFER_BIT)
glTexParameteri(target: GL_TEXTURE_2D, pname: GL_TEXTURE_WRAP_S, param: GL_MIRRORED_REPEAT)
glViewport(x: 0, y: 0, width: 800, height: 600)

SwiftGL OpenGL 加载器为你提供了直接调用 OpenGL 函数的方式。不需要翻译层来提供语法糖。因为 Swift 对 C 的支持很好,所以跨语言调用没有性能损失。

重新生成 OpenGL 加载代码

从包的根目录执行:./.build/x86_64-unknown-linux/debug/glgen .