Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
f7e4031
isf: TEX_DIMENSIONS_3D / IMG_SIZE_3D aliases for 3D samplers
jcelerier May 4, 2026
1a0ffc4
isf: point3d_input AS_COLOR flag for color-swatch display
jcelerier May 4, 2026
9d3d325
isf: parse-time warning on unknown csf_image_input FORMAT
jcelerier May 4, 2026
e8d272a
isf: parser rework — top-level descriptors, uniform inputs, geometry …
jcelerier May 4, 2026
41443fc
3rdparty: add OffsetAllocator submodule
jcelerier May 4, 2026
1944985
gfx: add AssetTable + TextureLoader for shared decoded-asset cache
jcelerier May 4, 2026
98bf94f
gfx: add GpuResourceRegistry — slab-allocated GPU arenas backed by Of…
jcelerier May 4, 2026
23d4276
gfx: add CameraMath / GpuTiming / VertexFallback helpers
jcelerier May 4, 2026
bd93207
gfx: add IsfBindingsBuilder + PipelineStateHelpers
jcelerier May 4, 2026
813dae8
gfx: add SceneGPUState — FlatScene + scene packer
jcelerier May 4, 2026
4745b5f
gfx: add OffscreenDevice + RhiPreviewWidget + Metal buffer-copy backend
jcelerier May 4, 2026
2ab12d5
gfx: extend ISF / SimpleRenderedISF nodes for new ISF features
jcelerier May 4, 2026
4920035
csf: rework for scene-aware compute pipeline
jcelerier May 4, 2026
ea8a9b6
gfx: rework raw raster pipeline (MRT, AUXILIARY, EXECUTION_MODEL) and…
jcelerier May 4, 2026
582a6c7
gfx: refresh shared graph plumbing for incremental scene pipeline
jcelerier May 4, 2026
7664b48
gfx: add ScenePreprocessorNode — scene_spec to flat draws + arena upl…
jcelerier May 4, 2026
30ce172
gfx: add SceneFilterNode + FlattenedSceneFilterNode + MergeGeometries…
jcelerier May 4, 2026
c4e2653
avnd: split CpuFilter / CpuAnalysis lifecycle into init / initState /…
jcelerier May 4, 2026
d703e1d
avnd: add scene_port concept
jcelerier May 4, 2026
5948674
avnd: split GpuNode lifecycle and add scene_port storage helpers
jcelerier May 4, 2026
15577f1
gfx: extend ShaderProgram for new ISF features
jcelerier May 4, 2026
2068312
gfx: refresh Filter / GeometryFilter / TexturePort for new pipeline
jcelerier May 4, 2026
52aa6e6
gfx: refresh WindowDevice / Spout / Syphon / WindowCapture
jcelerier May 4, 2026
ec41476
gfx: refresh GfxContext + window / screen / multiwindow nodes for inc…
jcelerier May 4, 2026
eb50d55
js: gpu node lifecycle rework with deterministic teardown
jcelerier May 4, 2026
6704d8a
wip: many bugfixes across the board
jcelerier May 14, 2026
fa22767
build: more build fixes
jcelerier May 14, 2026
9cd51e6
ci: fixes for older qt versions
jcelerier May 15, 2026
14b20a0
rhi: populate caps
jcelerier May 15, 2026
46d86b4
ci: try windows fixes
jcelerier May 16, 2026
31f1dfb
gfx: restore PhongNode, still used by score-vfx-template
claude Jun 11, 2026
01865a9
gfx: keep TextureRenderTarget compatible with addons' aggregate init
claude Jun 11, 2026
465b9ad
gfx: do not include mmsystem.h in CommonUBOs.hpp
claude Jun 11, 2026
376e12c
gfx: fix build with Qt < 6.9
claude Jun 11, 2026
a5c08b7
gfx: fix designator order after TextureRenderTarget reorder
claude Jun 11, 2026
0425c18
gfx: fix build with Qt 6.4
claude Jun 11, 2026
c0fc579
gfx: more Qt 6.4 compatibility guards
claude Jun 11, 2026
cf7bc19
gfx: QRhi render-graph core fixes (PR #2050 review)
jcelerier Jun 16, 2026
903695d
gfx: ISF/CSF shader port-routing + codegen coherence (PR #2050)
jcelerier Jun 16, 2026
2b47961
gfx: harden GfxContext incremental edge updates (PR #2050)
jcelerier Jun 16, 2026
9e9e003
gfx: scene-preprocessor / SceneGPUState correctness (PR #2050)
jcelerier Jun 16, 2026
487b4fb
gfx: shader preview manager UAF + port drift (PR #2050)
jcelerier Jun 16, 2026
2447c67
gfx: video output device fixes - GStreamer/Spout/Syphon (PR #2050)
jcelerier Jun 16, 2026
c39a015
avnd: Crousti GPU-node lifecycle, leaks and build fixes (PR #2050)
jcelerier Jun 16, 2026
d4b62fd
js: GPU node engine-keying, asserts and leaks (PR #2050)
jcelerier Jun 16, 2026
1e22f4c
threedim: adapt ModelDisplay to Pass::p.pipeline engine API
jcelerier Jun 17, 2026
81958a9
gfx: fix non-unity macOS + Windows/MSVC builds (PR #2077 CI)
jcelerier Jun 19, 2026
56461aa
ci: minor build fixes with Qt 6.12
jcelerier Jun 26, 2026
b940d06
avnd: remove duplicate include
jcelerier Jul 7, 2026
dbf0053
gfx: fix ambiguous QFlags cast for indirect buffer usage flags
jcelerier Jul 7, 2026
02ee1d0
gfx: keep Pass constructible from a bare Pipeline for addon compat
jcelerier Jul 7, 2026
980fc95
gfx: fix crash-grade issues from renderer review
jcelerier Jul 7, 2026
19e99fb
gfx: functional fixes from renderer review (P1 batch)
jcelerier Jul 7, 2026
a624c6c
gfx: shadow-cascade split contract + multi-layout sub-mesh guard
jcelerier Jul 7, 2026
0f82b3a
gfx: corrections from adversarial fix-verification round
jcelerier Jul 9, 2026
26714fe
3rdparty: add ufbx submodule
jcelerier May 4, 2026
8cf1ba6
3rdparty: add fastgltf submodule
jcelerier May 4, 2026
1a376f8
threedim: refresh primitives, buffer/geometry helpers; rename ObjLoad…
jcelerier May 4, 2026
a48e398
threedim: add unified AssetLoader on top of FbxParser / GltfParser
jcelerier May 4, 2026
6f63be7
threedim: add Camera, CameraArray, CameraSwitch, Light, Transform3D
jcelerier May 4, 2026
49c9d2a
threedim: add ScenePreprocessor (replaces SceneFlattener)
jcelerier May 4, 2026
7a35fb2
threedim: add SceneFilter + FlattenedSceneFilter + MergeGeometries
jcelerier May 4, 2026
d7cf5fc
threedim: add SceneGraphFilter + SceneSwitch + SceneSelector + SceneG…
jcelerier May 4, 2026
2226dec
threedim: add SceneDuplicator + SceneFromMeshes + SceneInspector + Cr…
jcelerier May 4, 2026
4896ef2
threedim: add InjectBuffer + InjectTexture for live scene-resource in…
jcelerier May 4, 2026
72d42cb
threedim: add PBRMesh + MaterialOverride + ConfigurePrimitive + Insta…
jcelerier May 4, 2026
9c6cb36
threedim: add EnvironmentLoader + improve CubemapLoader / CubemapComp…
jcelerier May 4, 2026
b0dab00
threedim: add AnimationPlayer + Humanoid retargeting + InverseKinematics
jcelerier May 4, 2026
b7c3c2f
threedim: add TextToMesh + TextToTexture
jcelerier May 4, 2026
fcb37fa
threedim: add ExtractBuffer2 + ExtractSceneBuffer + ExtractTexture
jcelerier May 4, 2026
6f3af2a
threedim: refresh ModelDisplay + RenderPipeline + Splat for scene pip…
jcelerier May 4, 2026
3a94f3e
wip: many bugfixes across the board
jcelerier May 14, 2026
b9f2f1f
build: more build fixes
jcelerier May 14, 2026
97dce04
deps: add zstd dep everywhere
jcelerier May 16, 2026
577f89b
deps: redirect find_package(zstd) to the vendored targets
claude Jun 11, 2026
6676f11
deps: provide simdjson on nix & flatpak
claude Jun 11, 2026
2928e6c
model display: fix variable naming
jcelerier Jun 25, 2026
78f1576
threedim: provide unistd.h stub for spz zlib usage on MSVC
jcelerier Jul 7, 2026
c4af3b3
threedim: bounds-check file-provided indices in glTF import
jcelerier Jul 7, 2026
c379a95
threedim: functional fixes from review (P1 batch)
jcelerier Jul 7, 2026
a9d677d
threedim: corrections from fix-verification round
jcelerier Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/workflows/win-builds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ jobs:
fftw:p
ffmpeg:p
SDL2:p
zstd:p

- name: Build
shell: msys2 {0}
Expand Down
15 changes: 15 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,18 @@
[submodule "3rdparty/opengametools"]
path = 3rdparty/opengametools
url = https://github.com/jpaver/opengametools
[submodule "3rdparty/ufbx"]
path = 3rdparty/ufbx
url = https://github.com/ufbx/ufbx
[submodule "3rdparty/fastgltf"]
path = 3rdparty/fastgltf
url = https://github.com/spnda/fastgltf
[submodule "3rdparty/OffsetAllocator"]
path = 3rdparty/OffsetAllocator
url = https://github.com/sebbbi/OffsetAllocator
[submodule "3rdparty/spz"]
path = 3rdparty/spz
url = https://github.com/nianticlabs/spz
[submodule "3rdparty/zstd"]
path = 3rdparty/zstd
url = https://github.com/facebook/zstd
1 change: 1 addition & 0 deletions 3rdparty/3rdparty.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ include(3rdparty/shmdata.cmake)
include(3rdparty/snappy.cmake)
include(3rdparty/sndfile.cmake)
include(3rdparty/xtensor.cmake)
include(3rdparty/zstd.cmake)
1 change: 1 addition & 0 deletions 3rdparty/OffsetAllocator
Submodule OffsetAllocator added at 3610a7
1 change: 1 addition & 0 deletions 3rdparty/fastgltf
Submodule fastgltf added at ce5218
1 change: 1 addition & 0 deletions 3rdparty/spz
Submodule spz added at 7ae162
1 change: 1 addition & 0 deletions 3rdparty/ufbx
Submodule ufbx added at 83bc7c
1 change: 1 addition & 0 deletions 3rdparty/zstd
Submodule zstd added at 885c79
49 changes: 49 additions & 0 deletions 3rdparty/zstd.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
if(SCORE_USE_SYSTEM_LIBRARIES)
find_package(zstd GLOBAL CONFIG)
endif()

if(NOT TARGET zstd::libzstd_static AND NOT TARGET zstd::libzstd_shared AND NOT TARGET zstd)
set(ZSTD_BUILD_PROGRAMS OFF CACHE INTERNAL "" FORCE)
set(ZSTD_BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
set(ZSTD_BUILD_SHARED OFF CACHE INTERNAL "" FORCE)
set(ZSTD_BUILD_STATIC ON CACHE INTERNAL "" FORCE)
set(ZSTD_BUILD_DICTBUILDER OFF CACHE INTERNAL "" FORCE)

set(old_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
set(BUILD_SHARED_LIBS OFF)

if(NOT MSVC AND NOT CMAKE_CROSSCOMPILING)
if(CMAKE_BUILD_TYPE MATCHES ".*Deb.*")
set(old_CFLAGS "${CMAKE_C_FLAGS}")
set(old_CXXFLAGS "${CMAKE_CXX_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -march=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native")
endif()
endif()

add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/zstd/build/cmake" EXCLUDE_FROM_ALL)

if(NOT MSVC AND NOT CMAKE_CROSSCOMPILING)
if(CMAKE_BUILD_TYPE MATCHES ".*Deb.*")
set(CMAKE_C_FLAGS "${old_CFLAGS}")
set(CMAKE_CXX_FLAGS "${old_CXXFLAGS}")
endif()
endif()

set(BUILD_SHARED_LIBS ${old_BUILD_SHARED_LIBS})
endif()

# Make later find_package(zstd) calls (e.g. 3rdparty/spz) resolve to the
# targets configured above: some prebuilt SDKs ship zstd configs pointing to
# files that do not exist, and a not-found result would trigger FetchContent
# fallbacks that clash with the vendored targets.
file(WRITE "${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/zstd-config.cmake" [=[
if(TARGET libzstd_static AND NOT TARGET zstd::libzstd_static)
add_library(zstd::libzstd_static INTERFACE IMPORTED GLOBAL)
target_link_libraries(zstd::libzstd_static INTERFACE libzstd_static)
endif()
if(TARGET libzstd_shared AND NOT TARGET zstd::libzstd_shared)
add_library(zstd::libzstd_shared INTERFACE IMPORTED GLOBAL)
target_link_libraries(zstd::libzstd_shared INTERFACE libzstd_shared)
endif()
]=])
3 changes: 2 additions & 1 deletion ci/debian.bookworm.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ $SUDO apt-get install -qq --force-yes \
libavahi-compat-libdnssd-dev libsamplerate0-dev \
portaudio19-dev \
libpipewire-0.3-dev \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
libzstd-dev

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/debian.bullseye.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ $SUDO apt-get install -qq --force-yes -t bullseye-backports \
libavahi-compat-libdnssd-dev libsamplerate0-dev \
portaudio19-dev \
libpipewire-0.3-dev \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
libzstd-dev

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/debian.trixie-system.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ $SUDO apt-get install -qq --force-yes \
libzita-alsa-pcmi-dev \
libvst3sdk-dev \
puredata-dev \
libpd-dev
libpd-dev \
libzstd-dev


source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/debian.trixie.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ $SUDO apt-get install -qq --force-yes \
libavahi-compat-libdnssd-dev libsamplerate0-dev \
portaudio19-dev \
libpipewire-0.3-dev \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
libzstd-dev

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/fedora.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ dnf -y install --allowerasing \
qt6-qtsvg-devel \
qt6-qtconnectivity-devel \
pipewire-devel \
zlib-ng-compat-static zlib-ng-compat-devel
zlib-ng-compat-static zlib-ng-compat-devel \
libzstd-devel

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/freebsd.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ pkg install -y \
libcoap \
freetype2 harfbuzz fontconfig \
alsa-lib \
jackit
jackit \
zstd

source ci/common.deps.sh FREEBSD
3 changes: 3 additions & 0 deletions ci/nix.build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,14 @@
, rapidfuzz-cpp
, re2
, rubberband
, simdjson
, snappy
, SDL2
, spdlog
, suil
, udev
, xorg
, zstd
}:

# TODO: figure out LLVM jit
Expand Down Expand Up @@ -88,6 +90,7 @@ clangStdenv.mkDerivation (finalAttrs: {
rapidfuzz-cpp
re2
rubberband
simdjson
snappy
SDL2
spdlog
Expand Down
4 changes: 2 additions & 2 deletions ci/osx.brew.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ set +e

export HOMEBREW_NO_AUTO_UPDATE=1
brew update && (brew list cmake || brew install cmake)
brew install ninja qt boost ffmpeg@7 fftw portaudio jack sdl lv2 lilv suil freetype
brew install ninja qt boost ffmpeg@7 fftw portaudio jack sdl lv2 lilv suil freetype zstd
brew uninstall --ignore-dependencies qt@5 || true

source ci/common.deps.sh MACOS

echo PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@7/lib/pkgconfig" >> "$GITHUB_ENV"
echo PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@7/lib/pkgconfig" >> "$GITHUB_ENV"
3 changes: 2 additions & 1 deletion ci/suse.leap.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ $SUDO zypper -n install \
qt6-qml-devel qt6-qml-private-devel \
qt6-svg-devel \
ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel ffmpeg-4-libswresample-devel \
curl gzip
curl gzip \
libzstd-devel

curl -L -0 https://github.com/Kitware/CMake/releases/download/v3.28.1/cmake-3.28.1-linux-x86_64.tar.gz --output cmake.tgz
tar xaf cmake.tgz
Expand Down
3 changes: 2 additions & 1 deletion ci/suse.tumbleweed.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,6 @@ $SUDO zypper -n install \
qt6-qml-devel qt6-qml-private-devel \
qt6-svg-devel \
ffmpeg-7-libavcodec-devel ffmpeg-7-libavdevice-devel ffmpeg-7-libavfilter-devel ffmpeg-7-libavformat-devel ffmpeg-7-libswresample-devel \
zlib-devel zlib-devel-static
zlib-devel zlib-devel-static \
libzstd-devel

3 changes: 2 additions & 1 deletion ci/ubuntu.2604.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ $SUDO apt install -y \
libvulkan-dev \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
file \
dpkg-dev
dpkg-dev \
libzstd-dev


source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/ubuntu.jammy.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ $SUDO apt-get install -y \
libvulkan-dev \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
file \
dpkg-dev
dpkg-dev \
libzstd-dev

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/ubuntu.lunar.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ $SUDO apt-get install -y \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
file \
dpkg-dev \
lsb-release
lsb-release \
libzstd-dev

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/ubuntu.noble.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ $SUDO apt-get install -y \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
file \
dpkg-dev \
lsb-release
lsb-release \
libzstd-dev

# needed because GCC does not support -fuse-ld=lld-19
$SUDO rm -rf /usr/bin/lld /usr/bin/ld.lld
Expand Down
3 changes: 2 additions & 1 deletion ci/ubuntu.oracular.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ $SUDO apt-get install -y \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
file \
dpkg-dev \
lsb-release
lsb-release \
libzstd-dev

source ci/common.deps.sh LINUX
3 changes: 2 additions & 1 deletion ci/ubuntu.plucky.deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ $SUDO apt-get install -y \
libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libavformat-dev libswresample-dev \
file \
dpkg-dev \
lsb-release
lsb-release \
libzstd-dev

source ci/common.deps.sh LINUX
1 change: 1 addition & 0 deletions cmake/Deployment/Linux/Flatpak/io.ossia.score.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ modules:
- modules/re2.yaml
- modules/libcoap.yaml
- modules/boost.yaml
- modules/simdjson.yaml
- modules/snappy.yaml
- modules/avahi.yaml
- modules/suil.yaml
Expand Down
16 changes: 16 additions & 0 deletions cmake/Deployment/Linux/Flatpak/modules/simdjson.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# JSON parser used by fastgltf (glTF support in score-plugin-threedim).
# Provided here so that fastgltf does not try to download it at configure
# time, which is impossible in the sandboxed flatpak build.
name: simdjson
buildsystem: cmake-ninja
builddir: true
config-opts:
- -Wno-dev
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
- -DBUILD_SHARED_LIBS=ON
- -DSIMDJSON_DEVELOPER_MODE=OFF
sources:
- type: archive
url: https://github.com/simdjson/simdjson/archive/refs/tags/v3.12.3.tar.gz
sha256: d0af071f2f4187d8b26b556e83ef832b634bd5feb4e2f537b9dabbd334d4e334
21 changes: 18 additions & 3 deletions src/plugins/score-lib-process/Process/Drop/ProcessDropHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include <ossia/detail/algorithms.hpp>

#include <QDebug>
#include <QFile>
#include <QFileInfo>
#include <QSet>
Expand All @@ -19,8 +20,22 @@ void ProcessDropHandler::getCustomDrops(
std::vector<ProcessDropHandler::ProcessDrop>& drops, const QMimeData& mime,
const score::DocumentContext& ctx) const noexcept
{
// Check for special mime handling code
return dropCustom(drops, mime, ctx);
// dropCustom is no longer noexcept (some overrides invoke parsers that
// can throw on malformed input — see ProcessDropHandler.hpp). Catch
// here so a throwing handler never escapes through the noexcept
// public API and tears down the editor.
try
{
dropCustom(drops, mime, ctx);
}
catch(const std::exception& e)
{
qWarning() << "ProcessDropHandler::dropCustom threw:" << e.what();
}
catch(...)
{
qWarning() << "ProcessDropHandler::dropCustom threw an unknown exception";
}
}

void ProcessDropHandler::getMimeDrops(
Expand Down Expand Up @@ -61,7 +76,7 @@ QSet<QString> ProcessDropHandler::fileExtensions() const noexcept

void ProcessDropHandler::dropCustom(
std::vector<ProcessDropHandler::ProcessDrop>&, const QMimeData& data,
const score::DocumentContext& ctx) const noexcept
const score::DocumentContext& ctx) const
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class SCORE_LIB_PROCESS_EXPORT ProcessDropHandler : public score::InterfaceBase
protected:
virtual void dropCustom(
std::vector<ProcessDrop>& drops, const QMimeData& mime,
const score::DocumentContext& ctx) const noexcept;
const score::DocumentContext& ctx) const;

virtual void dropPath(
std::vector<ProcessDrop>& drops, const score::FilePath& path,
Expand Down
30 changes: 29 additions & 1 deletion src/plugins/score-plugin-avnd/Crousti/Concepts.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,35 @@ make_control_in(avnd::field_index<N>, Id<Process::Port>&& id, QObject* parent)
auto [Mx, My, Mz] = c.max;
auto [ix, iy, iz] = c.init;
return new Process::XYZSpinboxes{{mx, my, mz}, {Mx, My, Mz}, {ix, iy, iz},
qname, id, parent};
false, qname, id, parent};
}
}
else if constexpr(widg.widget == avnd::widget_type::xyzw_spinbox)
{
static constexpr auto c = avnd::get_range<T>();
if constexpr(requires {
c.min == 0.f;
c.max == 0.f;
c.init == 0.f;
})
{
return new Process::XYZSpinboxes{
{c.min, c.min, c.min},
{c.max, c.max, c.max},
{c.init, c.init, c.init},
false,
qname,
id,
parent};
}
else
{
auto [mx, my, mz, mw] = c.min;
auto [Mx, My, Mz, Mw] = c.max;
auto [ix, iy, iz, iw] = c.init;
// FIXME we don't have a good 4-way widget
return new Process::XYZSpinboxes{{mx, my, mz}, {Mx, My, Mz}, {ix, iy, iz},
false, qname, id, parent};
}
}
else if constexpr(widg.widget == avnd::widget_type::color)
Expand Down
Loading
Loading