Skip to content

Commit d0ef7bf

Browse files
committed
Update GitHub Actions and the SFML example
1 parent 0455a60 commit d0ef7bf

File tree

5 files changed

+135
-93
lines changed

5 files changed

+135
-93
lines changed

.github/workflows/ci.yml

+8-7
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,22 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
platform:
14-
- { name: Windows VS2019, os: windows-latest }
15-
- { name: Linux GCC, os: ubuntu-latest }
16-
- { name: Linux Clang, os: ubuntu-latest, flags: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
17-
- { name: MacOS XCode, os: macos-latest }
14+
- { name: Windows VS2022, os: windows-2022 }
15+
- { name: Linux GCC, os: ubuntu-22.04 }
16+
- { name: Linux Clang, os: ubuntu-22.04, flags: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
17+
- { name: macOS x64, os: macos-14, flags: -DCMAKE_OSX_ARCHITECTURES=x86_64 }
18+
- { name: macOS M1, os: macos-14, flags: -DCMAKE_OSX_ARCHITECTURES=arm64 }
1819

1920
steps:
2021
- name: PubBus - Checkout Code
21-
uses: actions/checkout@v2
22+
uses: actions/checkout@v4
2223

2324
- name: SFML - Install Linux Dependencies
2425
if: runner.os == 'Linux'
2526
run: sudo apt-get update && sudo apt-get install libxrandr-dev libxcursor-dev libudev-dev libgl1-mesa-dev libegl1-mesa-dev
2627

2728
- name: SFML - Checkout Code
28-
uses: actions/checkout@v2
29+
uses: actions/checkout@v4
2930
with:
3031
repository: SFML/SFML
3132
path: SFML
@@ -40,7 +41,7 @@ jobs:
4041

4142
- name: PubBus - Configure CMake
4243
shell: bash
43-
run: cmake -S $GITHUB_WORKSPACE -B $GITHUB_WORKSPACE/build -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install -DSFML_DIR=$GITHUB_WORKSPACE/SFML/install/lib/cmake/SFML -DPUBBUS_INSTALL_EXAMPLE=ON -DCMAKE_VERBOSE_MAKEFILE=ON ${{matrix.platform.flags}}
44+
run: cmake -S $GITHUB_WORKSPACE -B $GITHUB_WORKSPACE/build -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install -DSFML_DIR=$GITHUB_WORKSPACE/SFML/install/lib/cmake/SFML -DPUBBUS_INSTALL_EXAMPLE=ON -DCMAKE_VERBOSE_MAKEFILE=ON ${{matrix.platform.flags}}
4445

4546
- name: PubBus - Build
4647
shell: bash

examples/SFML/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
find_package(SFML 2.5 COMPONENTS graphics REQUIRED)
1+
find_package(SFML 3.0 COMPONENTS Graphics REQUIRED)
22

33
add_executable(SFML "SFML.cpp" "Messages.hpp")
44

55
target_include_directories(SFML PRIVATE "${CMAKE_SOURCE_DIR}/include")
6-
target_link_libraries(SFML sfml-graphics)
6+
target_link_libraries(SFML SFML::Graphics)
77

88
if(PUBBUS_INSTALL_EXAMPLE)
99
install(TARGETS SFML RUNTIME DESTINATION examples)

examples/SFML/Messages.hpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ struct KeyMessage : pub::Message
3232

3333
Type type;
3434
sf::Keyboard::Key code;
35+
sf::Keyboard::Scancode scancode;
3536
bool alt;
3637
bool control;
3738
bool shift;
@@ -40,7 +41,7 @@ struct KeyMessage : pub::Message
4041

4142
struct TextMessage : pub::Message
4243
{
43-
sf::Uint32 unicode;
44+
std::uint32_t unicode;
4445
};
4546

4647
struct MouseMoveMessage : pub::Message

examples/SFML/SFML.cpp

+9-8
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class PositionText final : public sf::Drawable
1010
{
1111
public:
1212
explicit PositionText(const sf::Font& font)
13-
: m_text{ "0, 0", font }
13+
: m_text{ font, "0, 0" }
1414
{
1515

1616
}
@@ -27,11 +27,11 @@ class PositionText final : public sf::Drawable
2727

2828
void onMouseScroll(const MouseWheelScrollMessage& message)
2929
{
30-
m_text.setString(std::to_string(message.wheel) + ": " + std::to_string(message.delta));
30+
m_text.setString(std::to_string(static_cast<int>(message.wheel)) + ": " + std::to_string(message.delta));
3131
}
3232

3333
private:
34-
void draw(sf::RenderTarget& target, const sf::RenderStates states) const override final
34+
void draw(sf::RenderTarget& target, const sf::RenderStates& states) const override final
3535
{
3636
target.draw(m_text, states);
3737
}
@@ -43,7 +43,7 @@ class ButtonText final : public sf::Drawable
4343
{
4444
public:
4545
explicit ButtonText(const sf::Font& font)
46-
: m_text{ "Pressed / Released", font }
46+
: m_text{ font, "Pressed / Released" }
4747
{
4848

4949
}
@@ -56,17 +56,17 @@ class ButtonText final : public sf::Drawable
5656
void onKeyEvent(const KeyMessage& message)
5757
{
5858
const auto type = message.type == KeyMessage::Type::Pressed ? "Pressed"s : "Released"s;
59-
m_text.setString(type + ": " + std::to_string(message.code));
59+
m_text.setString(type + ": " + std::to_string(static_cast<int>(message.code)) + " / " + std::to_string(static_cast<int>(message.scancode)));
6060
}
6161

6262
void onMouseEvent(const MouseButtonMessage& message)
6363
{
6464
const auto type = message.type == MouseButtonMessage::Type::Pressed ? "Pressed"s : "Released"s;
65-
m_text.setString(type + ": " + std::to_string(message.button));
65+
m_text.setString(type + ": " + std::to_string(static_cast<int>(message.button)));
6666
}
6767

6868
private:
69-
void draw(sf::RenderTarget& target, const sf::RenderStates states) const override final
69+
void draw(sf::RenderTarget& target, const sf::RenderStates& states) const override final
7070
{
7171
target.draw(m_text, states);
7272
}
@@ -76,7 +76,7 @@ class ButtonText final : public sf::Drawable
7676

7777
int main()
7878
{
79-
sf::RenderWindow window({ 800, 600 }, "PubBus SFML Test");
79+
sf::RenderWindow window(sf::VideoMode{{ 800, 600 }}, "PubBus SFML Test");
8080
window.setFramerateLimit(60);
8181

8282
sf::Font font;
@@ -134,6 +134,7 @@ int main()
134134
bus.publish(KeyMessage{
135135
.type = event.type == sf::Event::KeyPressed ? KeyMessage::Type::Pressed : KeyMessage::Type::Released,
136136
.code = event.key.code,
137+
.scancode = event.key.scancode,
137138
.alt = event.key.alt,
138139
.control = event.key.control,
139140
.shift = event.key.shift,

0 commit comments

Comments
 (0)