这是一个对流行且优秀的 Simple DirectMedia Layer (简易直控媒体层) 库的轻量级 Swift 封装。
它提供了一个 Swift 风格 和 类型安全 的 API。
Simple DirectMedia Layer 是一个跨平台开发库,旨在提供对音频、键盘、鼠标、操纵杆以及通过 OpenGL 和 Direct3D 访问图形硬件的底层访问。它被视频播放软件、模拟器和流行的游戏所使用,包括 Valve 的获奖作品和许多 Humble Bundle 游戏。 SDL 官方支持 Windows、Mac OS X、Linux、iOS 和 Android。 对其他平台的支持可以在源代码中找到。 SDL 用 C 语言编写,可以与 C++ 本机配合使用,并且有几种其他语言的绑定可用,包括 C# 和 Python。
~ www.libsdl.org
以下说明将使您的项目副本在本地计算机上启动并运行,并提供代码示例。
Swift SDL2 适用于所有支持 Swift 5.6 及更高版本以及 Swift Package Manager (SPM) 的平台。
在您的 Package.swift
文件中扩展以下几行,或者使用它来创建一个新项目。
// swift-tools-version:5.6
import PackageDescription
let package = Package(
name: "YourPackageName",
dependencies: [
.package(url: "https://github.com/ctreffs/SwiftSDL2.git", from: "1.4.0")
],
targets: [
.target(
name: "YourTargetName",
dependencies: [
.product(name: "SDL", package: "SwiftSDL2")
])
]
)
根据您的平台,需要采取几个额外的步骤才能编译 SDL2。
对于 Apple 平台(macOS、iOS、tvOS),SDL2 使用 XCFramework 提供,因此无需额外步骤。
在 Linux 平台上,您需要使用以下命令将 SDL2 作为系统包安装
apt-get install libsdl2-dev
由于 Windows 是 Swift 开发的一个相当新的平台,因此在使用该软件包之前需要执行一些手动步骤。以下所有步骤都假定您在 Windows 机器上有一个可用的 swift 环境。如果不是,请按照 有关如何在 Windows 上安装 Swift 的说明。
您可以通过运行 ./buildPackageWin.ps1
powershell 脚本来快速测试此软件包是否正常工作。
一个最小的例子位于 Sources/Demos/Minimal。
import SDL
// Initialize SDL video systems
guard SDL_Init(SDL_INIT_VIDEO) == 0 else {
fatalError("SDL could not initialize! SDL_Error: \(String(cString: SDL_GetError()))")
}
// Create a window at the center of the screen with 800x600 pixel resolution
let window = SDL_CreateWindow(
"SDL2 Minimal Demo",
Int32(SDL_WINDOWPOS_CENTERED_MASK), Int32(SDL_WINDOWPOS_CENTERED_MASK),
800, 600,
SDL_WINDOW_SHOWN.rawValue)
var quit = false
var event = SDL_Event()
// Run until app is quit
while !quit {
// Poll for (input) events
while SDL_PollEvent(&event) > 0 {
// if the quit event is triggered ...
if event.type == SDL_QUIT.rawValue {
// ... quit the run loop
quit = true
}
}
// wait 100 ms
SDL_Delay(100)
}
// Destroy the window
SDL_DestroyWindow(window)
// Quit all SDL systems
SDL_Quit()
在 Sources/Demos/MetalApp 上还有另一个显示 SDL2 演示窗口的演示。
这个项目还处于早期阶段,需要大量的维护。如果您有兴趣做出贡献,请随时这样做!
需要完成的事情包括:
我们使用 SemVer 进行版本控制。有关可用版本,请参阅 此存储库上的标签。
另请参阅参与此项目的 贡献者 列表。
本项目根据 zlib 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
由于 Swift SDL2 仅仅是 SDL2 的一个封装器,因此它显然依赖于它。
如果可以,请支持他们!
参见 https://www.libsdl.org/credits.php