Skip to content

Commit 34f86b2

Browse files
authored
Update README.md
1 parent 04ea935 commit 34f86b2

File tree

1 file changed

+56
-1
lines changed

1 file changed

+56
-1
lines changed

README.md

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,58 @@
11
# SwiftSDL2
22

3-
A description of this package.
3+
A Swift wrapper for the SDL2 API
4+
5+
## Installation
6+
7+
You should install [SDL2](https://www.libsdl.org/) before use this library, on macOS, you can:
8+
9+
```bash
10+
brew install sdl2
11+
```
12+
13+
### Swift Package Manager
14+
15+
SwiftSDL2 primarily uses [SwiftPM](https://swift.org/package-manager/) as its build tool, so we recommend using that as well. If you want to depend on SwiftFFmpeg in your own project, it's as simple as adding a `dependencies` clause to your `Package.swift`:
16+
17+
```swift
18+
dependencies: [
19+
.package(url: "https://github.com/sunlubo/SwiftSDL2.git", from: "0.0.1")
20+
]
21+
```
22+
23+
## Usage
24+
25+
```swift
26+
import SwiftSDL2
27+
import Darwin
28+
29+
try initSDL(flags: [.video, .audio])
30+
31+
let window = Window(title: "hello", width: 640, height: 480, flags: .resizable)
32+
let renderer = Renderer(window: window)
33+
let texture = Texture(renderer: renderer, format: .rgba8888, access: .target, width: 640, height: 480)
34+
35+
while true {
36+
var event = Event()
37+
Events.pollEvent(&event)
38+
if event.type == .quit {
39+
break
40+
}
41+
42+
let x = arc4random() % 540
43+
let y = arc4random() % 430
44+
let rect = Rect(x: Int(x), y: Int(y), w: 100, h: 50)
45+
46+
try renderer.setTarget(texture)
47+
try renderer.setDrawColor(Color(r: 0x00, g: 0x00, b: 0x00, a: 0x00))
48+
try renderer.clear()
49+
try renderer.drawRect(rect)
50+
try renderer.setDrawColor(Color(r: 0xFF, g: 0x00, b: 0x00, a: 0x00))
51+
try renderer.fillRect(rect)
52+
try renderer.setTarget(nil)
53+
try renderer.copy(texture: texture, srcRect: nil, dstRect: nil)
54+
renderer.present()
55+
}
56+
57+
quitSDL()
58+
```

0 commit comments

Comments
 (0)