Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
9d6261e
[Core][Platform] Add unit tests for SIMD capabilities detection
Mcgode Apr 23, 2026
a26a2bf
[Core][Platform] Add ARM NEON detection in InitSimdFlags across all p…
Mcgode Apr 23, 2026
89cc206
[Core][Math] Make `g_simdSupport` explicitly inline to improve linkag…
Mcgode Apr 23, 2026
13fc4c9
[Core][Platform] Implement LinuxDirectoryMonitor for directory monito…
Mcgode Apr 24, 2026
c416de8
[Core][Platform] Add unit tests for FileSystem and DirectoryMonitor f…
Mcgode Apr 27, 2026
761b337
[Core][Platform] Fix FileSystem event handling for rapid file creatio…
Mcgode Apr 27, 2026
777dd97
[Core][Platform] Fix FileSystem path handling and normalize root dire…
Mcgode Apr 27, 2026
23193e4
[Core][Platform] Update FileSystem to construct config paths based on…
Mcgode Apr 27, 2026
e50a7a1
[Core][Platform] Added ReadOnly file support for Linux
Mcgode Apr 27, 2026
7e22e5a
[Core][Platform] Implemented IPC support for Linux
Mcgode Apr 27, 2026
8d13be1
[Core][Platform] Add system font glyph rendering support on Linux usi…
Mcgode Apr 29, 2026
7b239ff
[Core][Platform] Fix coalesced events support on Linux and macOS
Mcgode Apr 29, 2026
f44bba6
[Core][Platform] Add and extend unit tests for ReadOnlyFile functiona…
Mcgode Apr 29, 2026
89debc1
[CI] Add `Core_Platform_UnitTests` to Linux and macOS workflows
Mcgode Apr 29, 2026
3c78f71
[Core][Platform] Link FontConfig library for Linux and update CMake t…
Mcgode Apr 29, 2026
0fe1f80
[Core][Platform] Initialize static FontConfig instance to fix uniniti…
Mcgode Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/cmake-linux-vulkan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ jobs:
Core_Graphics_UnitTests
Core_Math_UnitTests
Core_Memory_UnitTests
Core_Platform_UnitTests
Core_Threads_UnitTests

- name: Upload Core Unit tests
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cmake-macos-metal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
Core_Graphics_UnitTests
Core_Math_UnitTests
Core_Memory_UnitTests
Core_Platform_UnitTests
Core_Threads_UnitTests

- name: Upload Core Unit tests
Expand Down
4 changes: 4 additions & 0 deletions Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,10 @@ add_library(KryneEngine_Core
${WindowSrc})
target_link_libraries(KryneEngine_Core EASTL glfw glm Tracy::TracyClient moodycamel Boost::context)

if (KE_PLATFORM_LIBS)
target_link_libraries(KryneEngine_Core ${KE_PLATFORM_LIBS})
endif ()

if (GraphicsApi STREQUAL "VK")
message(STATUS "Finding and linking Vulkan lib")
find_package(Vulkan REQUIRED)
Expand Down
2 changes: 1 addition & 1 deletion Core/Include/KryneEngine/Core/Math/Simd/SimdCommon.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ namespace KryneEngine::Simd
};
KE_ENUM_IMPLEMENT_BITWISE_OPERATORS(SimdSupport);

static SimdSupport g_simdSupport =
inline SimdSupport g_simdSupport =
#if defined(__ARM_NEON)
SimdSupport::Neon;
#elif defined(__SSE2__)
Expand Down
4 changes: 3 additions & 1 deletion Core/Src/Platform/Darwin/Cpu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ namespace KryneEngine::Platform
{
void InitSimdFlags()
{
#if defined(__x86_64__)
#if defined(__ARM_NEON)
Simd::g_simdSupport = Simd::SimdSupport::Neon;
#elif defined(__x86_64__)
// Based on https://en.wikipedia.org/wiki/CPUID

u32 eax, ebx, ecx, edx;
Expand Down
21 changes: 11 additions & 10 deletions Core/Src/Platform/Darwin/FileSystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,21 @@ namespace KryneEngine::Platform
monitor->m_fileCreatedCallback(filePath);
}
}
else if (flags & kFSEventStreamEventFlagItemModified)
if (flags & kFSEventStreamEventFlagItemRemoved)
{
if (monitor->m_fileDeletedCallback)
{
monitor->m_fileDeletedCallback(filePath);
}
}
if (flags & kFSEventStreamEventFlagItemModified)
{
if (monitor->m_fileModifiedCallback)
{
monitor->m_fileModifiedCallback(filePath);
}
}
else if (flags & kFSEventStreamEventFlagItemRenamed)
if (flags & kFSEventStreamEventFlagItemRenamed)
{
if (monitor->m_fileRenamedCallback)
{
Expand Down Expand Up @@ -101,13 +108,6 @@ namespace KryneEngine::Platform
}
}
}
else if (flags & kFSEventStreamEventFlagItemRemoved)
{
if (monitor->m_fileDeletedCallback)
{
monitor->m_fileDeletedCallback(filePath);
}
}
}
}

Expand Down Expand Up @@ -171,6 +171,7 @@ namespace KryneEngine::Platform
};

constexpr u32 flags = kFSEventStreamCreateFlagFileEvents
| kFSEventStreamCreateFlagNoDefer
| kFSEventStreamCreateFlagUseCFTypes
| kFSEventStreamCreateFlagUseExtendedData;
monitor->m_stream = FSEventStreamCreate(
Expand All @@ -179,7 +180,7 @@ namespace KryneEngine::Platform
&context,
directories,
kFSEventStreamEventIdSinceNow,
static_cast<CFTimeInterval>(0),
static_cast<CFTimeInterval>(0.001),
flags);
if (monitor->m_stream == nullptr)
{
Expand Down
10 changes: 9 additions & 1 deletion Core/Src/Platform/Linux/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,12 @@ set(KE_PLATFORM_IMPLEMENTATION_FILES
${CMAKE_CURRENT_SOURCE_DIR}/FileSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Font.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Ipc.cpp
PARENT_SCOPE)
PARENT_SCOPE)

find_library(FONT_CONFIG_LIB NAMES fontconfig)

if (NOT FONT_CONFIG_LIB)
message(FATAL_ERROR "Unable to find FontConfig library")
endif ()

set(KE_PLATFORM_LIBS ${FONT_CONFIG_LIB} PARENT_SCOPE)
4 changes: 3 additions & 1 deletion Core/Src/Platform/Linux/Cpu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ namespace KryneEngine::Platform
{
void InitSimdFlags()
{
#if defined(__x86_64__)
#if defined(__ARM_NEON)
Simd::g_simdSupport = Simd::SimdSupport::Neon;
#elif defined(__x86_64__)
// Based on https://en.wikipedia.org/wiki/CPUID

u32 eax, ebx, ecx, edx;
Expand Down
Loading