Skip to content

Commit 94e30ae

Browse files
authored
Merge pull request #8 from JuliaMultimedia/up-generator
Upgrade the generator script to test Clang.jl's new generator
2 parents 857f64b + c8bb9f8 commit 94e30ae

30 files changed

+4400
-4567
lines changed

.github/workflows/CompatHelper.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: CompatHelper
2+
on:
3+
schedule:
4+
- cron: 0 0 * * *
5+
workflow_dispatch:
6+
jobs:
7+
CompatHelper:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Pkg.add("CompatHelper")
11+
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
12+
- name: CompatHelper.main()
13+
env:
14+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15+
COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
16+
run: julia -e 'using CompatHelper; CompatHelper.main()'

.github/workflows/TagBot.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
name: TagBot
22
on:
3-
schedule:
4-
- cron: 0 * * * *
3+
issue_comment:
4+
types:
5+
- created
6+
workflow_dispatch:
57
jobs:
68
TagBot:
9+
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
710
runs-on: ubuntu-latest
811
steps:
912
- uses: JuliaRegistries/TagBot@v1
1013
with:
1114
token: ${{ secrets.GITHUB_TOKEN }}
15+
ssh: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: CI
2+
on:
3+
- push
4+
- pull_request
5+
jobs:
6+
test:
7+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
8+
runs-on: ${{ matrix.os }}
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
version:
13+
- '1.6'
14+
- 'nightly'
15+
os:
16+
- ubuntu-latest
17+
- macOS-latest
18+
- windows-latest
19+
arch:
20+
- x64
21+
- x86
22+
exclude:
23+
- os: macOS-latest
24+
arch: x86
25+
steps:
26+
- uses: actions/checkout@v2
27+
- uses: julia-actions/setup-julia@v1
28+
with:
29+
version: ${{ matrix.version }}
30+
arch: ${{ matrix.arch }}
31+
- uses: actions/cache@v1
32+
env:
33+
cache-name: cache-artifacts
34+
with:
35+
path: ~/.julia/artifacts
36+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
37+
restore-keys: |
38+
${{ runner.os }}-test-${{ env.cache-name }}-
39+
${{ runner.os }}-test-
40+
${{ runner.os }}-
41+
- uses: julia-actions/julia-buildpkg@v1
42+
- uses: julia-actions/julia-runtest@v1
43+
- uses: julia-actions/julia-processcoverage@v1
44+
- uses: codecov/codecov-action@v1
45+
with:
46+
file: lcov.info

.travis.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

Project.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
name = "CSFML"
22
uuid = "538df835-4bef-5bfa-b281-4025a4f7e8ff"
3-
authors = ["Gnimuc <[email protected]>"]
4-
version = "0.2.0"
3+
authors = ["Yupei Qi <[email protected]>"]
4+
version = "0.3.0"
55

66
[deps]
77
CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82"
88
CSFML_jll = "042b324c-54b6-5061-9eb0-54e31a36d6ad"
9-
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
109

1110
[compat]
12-
CSFML_jll = "2.5"
1311
CEnum = "0.4"
14-
julia = "1.3"
12+
CSFML_jll = "2.5"
13+
julia = "1.6"
1514

1615
[extras]
1716
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

README.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
# CSFML
22

3-
[![Build Status](https://travis-ci.com/JuliaMultimedia/CSFML.jl.svg?branch=master)](https://travis-ci.com/JuliaMultimedia/CSFML.jl)
3+
[![CI](https://github.com/JuliaMultimedia/CSFML.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/JuliaMultimedia/CSFML.jl/actions/workflows/ci.yml)
4+
[![TagBot](https://github.com/JuliaMultimedia/CSFML.jl/actions/workflows/TagBot.yml/badge.svg)](https://github.com/JuliaMultimedia/CSFML.jl/actions/workflows/TagBot.yml)
5+
[![codecov](https://codecov.io/gh/JuliaMultimedia/CSFML.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaMultimedia/CSFML.jl)
46

5-
Julia wrapper for [CSFML](https://github.com/SFML/CSFML), the official binding of [SFML](https://github.com/SFML/SFML) for C. SFML is a simple, fast, cross-platform and object-oriented multimedia API. It provides access to windowing, graphics, audio and network. The Julia bindings in this repo are auto-generated using [Clang.jl](https://github.com/JuliaInterop/Clang.jl). You could refer to CSFML's repo for how to use those bindings.
7+
Julia wrapper for [CSFML](https://github.com/SFML/CSFML), the official binding of [SFML](https://github.com/SFML/SFML) for C. SFML is a simple, fast, cross-platform and object-oriented multimedia API. It provides access to windowing, graphics, audio and network. The Julia bindings in this repo are auto-generated using [Clang.jl](https://github.com/JuliaInterop/Clang.jl).
68

79
## Installation
810
```julia
911
pkg> add CSFML
1012
```
11-
On Linux, you might need to install the following dependencies firstly:
12-
13-
- xorg-dev
14-
- libopenal-dev
15-
16-
Should you encountered any installation problems, feel free to file an issue.
1713

1814
## Quick start
1915

examples/short_example.jl

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,23 @@ try
2929
while Bool(sfRenderWindow_isOpen(window))
3030
# process events
3131
while Bool(sfRenderWindow_pollEvent(window, event_ref))
32+
event_ptr = Base.unsafe_convert(Ptr{sfEvent}, event_ref)
3233
# close window : exit
33-
event_ref[].type == sfEvtClosed && sfRenderWindow_close(window)
34-
event_ref[].type == sfEvtResized && println("Trigger sfEvtResized.")
35-
event_ref[].type == sfEvtLostFocus && println("Trigger sfEvtLostFocus.")
36-
event_ref[].type == sfEvtGainedFocus && println("Trigger sfEvtGainedFocus.")
37-
event_ref[].type == sfEvtTextEntered && println("Trigger sfEvtTextEntered: $(event_ref[].text.unicode)")
38-
event_ref[].type == sfEvtKeyPressed && println("Trigger sfEvtKeyPressed: $(event_ref[].key.code)")
39-
event_ref[].type == sfEvtKeyReleased && println("Trigger sfEvtKeyReleased: $(event_ref[].key.code)")
40-
event_ref[].type == sfEvtMouseWheelMoved && println("Trigger sfEvtMouseWheelMoved: $(event_ref[].mouseWheel.x), $(event_ref[].mouseWheel.y)")
41-
event_ref[].type == sfEvtMouseWheelScrolled && println("Trigger sfEvtMouseWheelScrolled: $(event_ref[].mouseWheelScroll.wheel)")
42-
event_ref[].type == sfEvtMouseButtonPressed && println("Trigger sfEvtMouseButtonPressed: $(event_ref[].mouseButton.button)")
43-
event_ref[].type == sfEvtMouseButtonReleased && println("Trigger sfEvtMouseButtonReleased: $(event_ref[].mouseButton.x), $(event_ref[].mouseButton.y)")
44-
event_ref[].type == sfEvtMouseMoved && println("Trigger sfEvtMouseMoved: $(event_ref[].mouseMove.x), $(event_ref[].mouseMove.y)")
34+
GC.@preserve event_ref begin
35+
ty = unsafe_load(event_ptr.type)
36+
ty == sfEvtClosed && sfRenderWindow_close(window)
37+
ty == sfEvtResized && println("Trigger sfEvtResized.")
38+
ty == sfEvtLostFocus && println("Trigger sfEvtLostFocus.")
39+
ty == sfEvtGainedFocus && println("Trigger sfEvtGainedFocus.")
40+
ty == sfEvtTextEntered && println("Trigger sfEvtTextEntered: $(unsafe_load(event_ptr.text).unicode)")
41+
ty == sfEvtKeyPressed && println("Trigger sfEvtKeyPressed: $(unsafe_load(event_ptr.key).code)")
42+
ty == sfEvtKeyReleased && println("Trigger sfEvtKeyReleased: $(unsafe_load(event_ptr.key).code)")
43+
ty == sfEvtMouseWheelMoved && println("Trigger sfEvtMouseWheelMoved: $(unsafe_load(event_ptr.mouseWheel).x), $(unsafe_load(event_ptr.mouseWheel).y)")
44+
ty == sfEvtMouseWheelScrolled && println("Trigger sfEvtMouseWheelScrolled: $(unsafe_load(event_ptr.mouseWheelScroll).wheel)")
45+
ty == sfEvtMouseButtonPressed && println("Trigger sfEvtMouseButtonPressed: $(unsafe_load(event_ptr.mouseButton).button)")
46+
ty == sfEvtMouseButtonReleased && println("Trigger sfEvtMouseButtonReleased: $(unsafe_load(event_ptr.mouseButton).x), $(unsafe_load(event_ptr.mouseButton).y)")
47+
ty == sfEvtMouseMoved && println("Trigger sfEvtMouseMoved: $(unsafe_load(event_ptr.mouseMove).x), $(unsafe_load(event_ptr.mouseMove).y)")
48+
end
4549
end
4650
# clear the screen
4751
sfRenderWindow_clear(window, sfColor_fromRGBA(0,0,0,1))
@@ -61,8 +65,5 @@ finally
6165
sfFont_destroy(font)
6266
sfSprite_destroy(sprite)
6367
sfTexture_destroy(texture)
64-
sfRenderWindow_destroy(window)
68+
sfRenderWindow_destroy(window)
6569
end
66-
67-
68-

0 commit comments

Comments
 (0)