Skip to content

Commit 26df526

Browse files
committed
Merge upstream changes into pr to keep current
2 parents 6d3ca61 + 84cb445 commit 26df526

File tree

764 files changed

+77432
-57002
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

764 files changed

+77432
-57002
lines changed

.github/workflows/ci-linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ permissions:
2525

2626
jobs:
2727
build-linux:
28-
runs-on: ubuntu-latest
2928
strategy:
3029
matrix:
3130
compiler: [gcc, clang]
@@ -41,6 +40,7 @@ jobs:
4140
cxx: clang++
4241
subtarget: mame
4342
executable: mame
43+
runs-on: ubuntu-latest
4444
steps:
4545
- uses: actions/checkout@main
4646
with:

.github/workflows/ci-windows.yml

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,49 @@ permissions:
2323

2424
jobs:
2525
build-windows:
26-
runs-on: windows-latest
27-
defaults:
28-
run:
29-
shell: msys2 {0}
3026
strategy:
3127
matrix:
32-
compiler: [gcc, clang]
28+
compiler: [gcc-x64, clang-x64, clang-arm64]
3329
include:
34-
- compiler: gcc
30+
- compiler: gcc-x64
31+
os: windows-latest
32+
msys: MINGW64
33+
slug: mingw-w64-x86_64
3534
cc: gcc
3635
cxx: g++
3736
subtarget: mame
3837
executable: mame
39-
- compiler: clang
38+
- compiler: clang-x64
39+
os: windows-latest
40+
msys: MINGW64
41+
slug: mingw-w64-x86_64
4042
cc: clang
4143
cxx: clang++
4244
subtarget: tiny
4345
executable: mametiny
46+
- compiler: clang-arm64
47+
os: windows-11-arm
48+
msys: CLANGARM64
49+
slug: mingw-w64-clang-aarch64
50+
extrapkg: mingw-w64-clang-aarch64-gcc-compat
51+
cc: clang
52+
cxx: clang++
53+
subtarget: mame
54+
executable: mame
55+
runs-on: ${{ matrix.os }}
56+
defaults:
57+
run:
58+
shell: msys2 {0}
4459
steps:
4560
- uses: msys2/setup-msys2@v2
4661
with:
47-
install: git make mingw-w64-x86_64-${{ matrix.compiler }} mingw-w64-x86_64-python mingw-w64-x86_64-lld mingw-w64-x86_64-llvm mingw-w64-x86_64-libc++
62+
msystem: ${{ matrix.msys }}
63+
install: git make ${{ matrix.slug }}-${{ matrix.cc }} ${{ matrix.slug }}-python ${{ matrix.slug }}-lld ${{ matrix.slug }}-llvm ${{ matrix.slug }}-libc++ ${{ matrix.extrapkg }}
4864
- uses: actions/checkout@main
4965
with:
5066
fetch-depth: 0
5167
- name: Build
5268
env:
53-
MINGW64: "/mingw64"
5469
OVERRIDE_AR: "llvm-ar"
5570
OVERRIDE_CC: ${{ matrix.cc }}
5671
OVERRIDE_CXX: ${{ matrix.cxx }}

3rdparty/bgfx/3rdparty/dear-imgui/LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License (MIT)
22

3-
Copyright (c) 2014-2022 Omar Cornut
3+
Copyright (c) 2014-2025 Omar Cornut
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

3rdparty/bgfx/3rdparty/dear-imgui/imconfig.h

Lines changed: 115 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,145 @@
11
//-----------------------------------------------------------------------------
2-
// USER IMPLEMENTATION
3-
// This file contains compile-time options for ImGui.
4-
// Other options (memory allocation overrides, callbacks, etc.) can be set at runtime via the ImGuiIO structure - ImGui::GetIO().
2+
// DEAR IMGUI COMPILE-TIME OPTIONS
3+
// Runtime options (clipboard callbacks, enabling various features, etc.) can generally be set via the ImGuiIO structure.
4+
// You can use ImGui::SetAllocatorFunctions() before calling ImGui::CreateContext() to rewire memory allocation functions.
5+
//-----------------------------------------------------------------------------
6+
// A) You may edit imconfig.h (and not overwrite it when updating Dear ImGui, or maintain a patch/rebased branch with your modifications to it)
7+
// B) or '#define IMGUI_USER_CONFIG "my_imgui_config.h"' in your project and then add directives in your own file without touching this template.
8+
//-----------------------------------------------------------------------------
9+
// You need to make sure that configuration settings are defined consistently _everywhere_ Dear ImGui is used, which include the imgui*.cpp
10+
// files but also _any_ of your code that uses Dear ImGui. This is because some compile-time options have an affect on data structures.
11+
// Defining those options in imconfig.h will ensure every compilation unit gets to see the same data structure layouts.
12+
// Call IMGUI_CHECKVERSION() from your .cpp file to verify that the data structures your files are using are matching the ones imgui.cpp is using.
513
//-----------------------------------------------------------------------------
614

715
#pragma once
816

17+
//---- Define assertion handler. Defaults to calling assert().
18+
// If your macro uses multiple statements, make sure is enclosed in a 'do { .. } while (0)' block so it can be used as a single statement.
19+
//#define IM_ASSERT(_EXPR) MyAssert(_EXPR)
20+
//#define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts
21+
22+
//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows
23+
// Using Dear ImGui via a shared library is not recommended, because of function call overhead and because we don't guarantee backward nor forward ABI compatibility.
24+
// - Windows DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()
25+
// for each static/DLL boundary you are calling from. Read "Context and Memory Allocators" section of imgui.cpp for more details.
26+
//#define IMGUI_API __declspec(dllexport) // MSVC Windows: DLL export
27+
//#define IMGUI_API __declspec(dllimport) // MSVC Windows: DLL import
28+
//#define IMGUI_API __attribute__((visibility("default"))) // GCC/Clang: override visibility when set is hidden
29+
30+
//---- Don't define obsolete functions/enums/behaviors. Consider enabling from time to time after updating to clean your code of obsolete function/names.
931
#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
10-
#define IMGUI_DISABLE_OBSOLETE_KEYIO
1132
#define IMGUI_DISABLE_DEFAULT_ALLOCATORS
1233

13-
//---- Define your own ImVector<> type if you don't want to use the provided implementation defined in imgui.h
14-
//#include <vector>
15-
//#define ImVector std::vector
16-
//#define ImVector MyVector
34+
//---- Disable all of Dear ImGui or don't implement standard windows/tools.
35+
// It is very strongly recommended to NOT disable the demo windows and debug tool during development. They are extremely useful in day to day work. Please read comments in imgui_demo.cpp.
36+
//#define IMGUI_DISABLE // Disable everything: all headers and source files will be empty.
37+
//#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows: ShowDemoWindow()/ShowStyleEditor() will be empty.
38+
//#define IMGUI_DISABLE_DEBUG_TOOLS // Disable metrics/debugger and other debug tools: ShowMetricsWindow(), ShowDebugLogWindow() and ShowIDStackToolWindow() will be empty.
1739

18-
//---- Define assertion handler. Defaults to calling assert().
19-
#include <assert.h>
20-
#define IM_ASSERT(_EXPR) assert(_EXPR)
40+
//---- Don't implement some functions to reduce linkage requirements.
41+
#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS
42+
//#define IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] [Default with Visual Studio] Implement default IME handler (require imm32.lib/.a, auto-link for Visual Studio, -limm32 on command-line for MinGW)
43+
#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS
44+
//#define IMGUI_DISABLE_WIN32_FUNCTIONS // [Win32] Won't use and link with any Win32 function (clipboard, IME).
45+
//#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS // [OSX] Implement default OSX clipboard handler (need to link with '-framework ApplicationServices', this is why this is not the default).
46+
//#define IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS // Don't implement default platform_io.Platform_OpenInShellFn() handler (Win32: ShellExecute(), require shell32.lib/.a, Mac/Linux: use system("")).
47+
//#define IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS // Don't implement ImFormatString/ImFormatStringV so you can implement them yourself (e.g. if you don't want to link with vsnprintf)
48+
//#define IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS // Don't implement ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 so you can implement them yourself.
49+
//#define IMGUI_DISABLE_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle at all (replace them with dummies)
50+
//#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle so you can implement them yourself if you don't want to link with fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function.
51+
//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions().
52+
//#define IMGUI_DISABLE_DEFAULT_FONT // Disable default embedded font (ProggyClean.ttf), remove ~9.5 KB from output binary. AddFontDefault() will assert.
53+
//#define IMGUI_DISABLE_SSE // Disable use of SSE intrinsics even if available
2154

22-
//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows.
23-
//#define IMGUI_API __declspec( dllexport )
24-
//#define IMGUI_API __declspec( dllimport )
55+
//---- Enable Test Engine / Automation features.
56+
//#define IMGUI_ENABLE_TEST_ENGINE // Enable imgui_test_engine hooks. Generally set automatically by include "imgui_te_config.h", see Test Engine for details.
2557

26-
//---- Don't implement default handlers for Windows (so as not to link with OpenClipboard() and others Win32 functions)
27-
#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
28-
#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
58+
//---- Include imgui_user.h at the end of imgui.h as a convenience
59+
// May be convenient for some users to only explicitly include vanilla imgui.h and have extra stuff included.
60+
#define IMGUI_INCLUDE_IMGUI_USER_H
61+
//#define IMGUI_USER_H_FILENAME "my_folder/my_imgui_user.h"
2962

3063
//---- Include imgui_user.inl at the end of imgui.cpp so you can include code that extends ImGui using its private data/functions.
3164
#define IMGUI_INCLUDE_IMGUI_USER_INL
3265

33-
//---- Include imgui_user.h at the end of imgui.h
34-
#define IMGUI_INCLUDE_IMGUI_USER_H
66+
//---- Pack vertex colors as BGRA8 instead of RGBA8 (to avoid converting from one to another). Need dedicated backend support.
67+
//#define IMGUI_USE_BGRA_PACKED_COLOR
3568

36-
//---- Don't implement default handlers for Windows (so as not to link with OpenClipboard() and others Win32 functions)
37-
#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS
38-
#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS
69+
//---- Use legacy CRC32-adler tables (used before 1.91.6), in order to preserve old .ini data that you cannot afford to invalidate.
70+
//#define IMGUI_USE_LEGACY_CRC32_ADLER
71+
72+
//---- Use 32-bit for ImWchar (default is 16-bit) to support Unicode planes 1-16. (e.g. point beyond 0xFFFF like emoticons, dingbats, symbols, shapes, ancient languages, etc...)
73+
//#define IMGUI_USE_WCHAR32
74+
75+
//---- Avoid multiple STB libraries implementations, or redefine path/filenames to prioritize another version
76+
// By default the embedded implementations are declared static and not available outside of Dear ImGui sources files.
77+
//#define IMGUI_STB_TRUETYPE_FILENAME "my_folder/stb_truetype.h"
78+
//#define IMGUI_STB_RECT_PACK_FILENAME "my_folder/stb_rect_pack.h"
79+
//#define IMGUI_STB_SPRINTF_FILENAME "my_folder/stb_sprintf.h" // only used if IMGUI_USE_STB_SPRINTF is defined.
80+
#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
81+
#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
82+
//#define IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION // only disabled if IMGUI_USE_STB_SPRINTF is defined.
83+
84+
//---- Use stb_sprintf.h for a faster implementation of vsnprintf instead of the one from libc (unless IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS is defined)
85+
// Compatibility checks of arguments and formats done by clang and GCC will be disabled in order to support the extra formats provided by stb_sprintf.h.
86+
//#define IMGUI_USE_STB_SPRINTF
3987

40-
//---- Don't implement help and test window functionality (ShowUserGuide()/ShowStyleEditor()/ShowTestWindow() methods will be empty)
41-
//#define IMGUI_DISABLE_TEST_WINDOWS
88+
//---- Use FreeType to build and rasterize the font atlas (instead of stb_truetype which is embedded by default in Dear ImGui)
89+
// Requires FreeType headers to be available in the include path. Requires program to be compiled with 'misc/freetype/imgui_freetype.cpp' (in this repository) + the FreeType library (not provided).
90+
// On Windows you may use vcpkg with 'vcpkg install freetype --triplet=x64-windows' + 'vcpkg integrate install'.
91+
//#define IMGUI_ENABLE_FREETYPE
4292

43-
//---- Implement STB libraries in a namespace to avoid conflicts
44-
//#define IMGUI_STB_NAMESPACE ImStb
93+
//---- Use FreeType + plutosvg or lunasvg to render OpenType SVG fonts (SVGinOT)
94+
// Only works in combination with IMGUI_ENABLE_FREETYPE.
95+
// - plutosvg is currently easier to install, as e.g. it is part of vcpkg. It will support more fonts and may load them faster. See misc/freetype/README for instructions.
96+
// - Both require headers to be available in the include path + program to be linked with the library code (not provided).
97+
// - (note: lunasvg implementation is based on Freetype's rsvg-port.c which is licensed under CeCILL-C Free Software License Agreement)
98+
//#define IMGUI_ENABLE_FREETYPE_PLUTOSVG
99+
//#define IMGUI_ENABLE_FREETYPE_LUNASVG
45100

46-
//---- Define constructor and implicit cast operators to convert back<>forth from your math types and ImVec2/ImVec4.
101+
//---- Use stb_truetype to build and rasterize the font atlas (default)
102+
// The only purpose of this define is if you want force compilation of the stb_truetype backend ALONG with the FreeType backend.
103+
//#define IMGUI_ENABLE_STB_TRUETYPE
104+
105+
//---- Define constructor and implicit cast operators to convert back<>forth between your math types and ImVec2/ImVec4.
106+
// This will be inlined as part of ImVec2 and ImVec4 class declarations.
47107
/*
48-
#define IM_VEC2_CLASS_EXTRA \
49-
ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \
108+
#define IM_VEC2_CLASS_EXTRA \
109+
constexpr ImVec2(const MyVec2& f) : x(f.x), y(f.y) {} \
50110
operator MyVec2() const { return MyVec2(x,y); }
51111
52-
#define IM_VEC4_CLASS_EXTRA \
53-
ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \
112+
#define IM_VEC4_CLASS_EXTRA \
113+
constexpr ImVec4(const MyVec4& f) : x(f.x), y(f.y), z(f.z), w(f.w) {} \
54114
operator MyVec4() const { return MyVec4(x,y,z,w); }
55115
*/
116+
//---- ...Or use Dear ImGui's own very basic math operators.
117+
//#define IMGUI_DEFINE_MATH_OPERATORS
118+
119+
//---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices.
120+
// Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices).
121+
// Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer.
122+
// Read about ImGuiBackendFlags_RendererHasVtxOffset for details.
123+
//#define ImDrawIdx unsigned int
124+
125+
//---- Override ImDrawCallback signature (will need to modify renderer backends accordingly)
126+
//struct ImDrawList;
127+
//struct ImDrawCmd;
128+
//typedef void (*MyImDrawCallback)(const ImDrawList* draw_list, const ImDrawCmd* cmd, void* my_renderer_user_data);
129+
//#define ImDrawCallback MyImDrawCallback
56130

57-
//---- Freely implement extra functions within the ImGui:: namespace.
58-
//---- Declare helpers or widgets implemented in imgui_user.inl or elsewhere, so end-user doesn't need to include multiple files.
59-
//---- e.g. you can create variants of the ImGui::Value() helper for your low-level math types, or your own widgets/helpers.
131+
//---- Debug Tools: Macro to break in Debugger (we provide a default implementation of this in the codebase)
132+
// (use 'Metrics->Tools->Item Picker' to pick widgets with the mouse and break into them for easy debugging.)
133+
//#define IM_DEBUG_BREAK IM_ASSERT(0)
134+
//#define IM_DEBUG_BREAK __debugbreak()
135+
136+
//---- Debug Tools: Enable slower asserts
137+
//#define IMGUI_DEBUG_PARANOID
138+
139+
//---- Tip: You can add extra functions within the ImGui:: namespace from anywhere (e.g. your own sources/header files)
60140
/*
61141
namespace ImGui
62142
{
63-
void Value(const char* prefix, const MyVec2& v, const char* float_format = NULL);
64-
void Value(const char* prefix, const MyVec4& v, const char* float_format = NULL);
143+
void MyFunction(const char* name, MyMatrix44* mtx);
65144
}
66145
*/
67-

0 commit comments

Comments
 (0)