Repository navigation
fix(app): fix session file loading, shader linking, and menu flashing (#39) - #42
Merged
Merged
Conversation
…#39) - Enable Qt::AA_ShareOpenGLContexts in UTV macOS main.cpp to share GL resources across all QOpenGLContext instances, resolving shader link errors ('No definition of SourceRGBA... in fragment shader') - Defensively verify glIsShader() before attaching compiled functions in ShaderProgram.cpp and recompile if invalidated in current context - Skip preloading for .rv and EDL session files in RvSession LoadState to prevent session files from being dispatched to image/movie readers - Remove BruteForceIO from IOsvg and validate parsed shapes to prevent arbitrary non-SVG text files from being misidentified as SVG images - Debounce menuChangedMessage notifications via setBuildMenu() in RvDocument to eliminate rapid repeated menu bar flashing on startup - Escape raw console output in RvConsoleWindow using toHtmlEscaped() so GLSL and template comparisons with '<' and '>' are not swallowed as HTML - Reuse initial empty session in newSessionFromFiles when receiving macOS QFileOpenEvent rather than opening a redundant secondary window - Update FlexLexer.h in Gto and MuLang for 64-bit size_t and ssize_t parameter types with Apple Flex 2.6+ Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…dows versioning Normalize modern Apple flex signatures via sed filters without altering standard FlexLexer headers, sanitize Windows version input to avoid invalid non-numeric CMake versions, and document multi-OS development rules in AGENTS.md. Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Leverage Homebrew pre-installed on GitHub Actions Ubuntu runners to download pre-compiled binary bottles for Qt6, FFmpeg, OpenEXR, OpenColorIO, OpenImageIO, Boost, spdlog, and OpenJPH, mirroring the macOS workflow. Update build.sh to auto-discover Linux Homebrew prefixes, and add Homebrew/CCache caching to Linux build jobs. Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Install libosmesa6-dev in Ubuntu workflow and build.sh - Expand search paths in FindOSMesa.cmake for Linux multiarch - Update Chocolatey metadata: add iconUrl, packageSourceUrl, and releaseNotes - Add committed chocolatey recipe files for openutv and openutv-dependencies - Fix macOS artifact packaging path in branch-build.yml Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…ng, and sanitize artifact names Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…erflow warnings Signed-off-by: Michael Oliver <mcoliver@gmail.com>
- Configure GCC defaults with -march=x86-64-v3 for AVX2/FMA/BMI2 SIMD vectorization - Auto-detect and link with Mold (or LLD) for fast zero-overhead linking - Enable Link-Time Optimization (-flto=auto) in Release builds - Add mold to apt package installations across build.sh and CI workflows Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…zations Reverts Linux Homebrew CI changes, compiler flags, and build.sh modifications from this branch so PR #42 focuses strictly on Issue #39 (session loading, shader linking, and menu flashing). All Linux build optimizations are preserved on branch feat/linux-build-optimizations. Signed-off-by: Michael Oliver <mcoliver@gmail.com>
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #39
Summary of Changes
OpenGL Resource Sharing Across Contexts ():
Qt::AA_ShareOpenGLContextsbefore creatingQApplicationinsrc/bin/nsapps/UTV/main.cpp. On macOS,QTMetalVideoDevicecreates an offscreenQOpenGLContextfor rendering; without process-wide context sharing, static functions in IPCore (such asSourceRGBA) compiled in one context were invalid in another context, producing OpenGL linking errors:!glIsShader(F->state()->shader)inShaderProgram.cppto automatically release and recompile static shader functions if their handle is invalid in the current OpenGL context.Prevent Session Files from Being Dispatched to Media Preloader:
RvSession::LoadState, verified that file extensions are not.rv,.rvedl, or.edlbefore invokingm_session->startPreloadingMedia(filename).Prevent NanoSVG False Positive Matching:
BruteForceIOcapability fromIOsvg(cap = ImageRead) and added validation forg && g->shapesinIOsvg::getImageInfo. NanoSVG parses any text file as an empty SVG; without magic-byte verification, it was falsely claiming.rvfiles were SVG images and movie sequences.Debounce Menu Rebuilding on Startup:
RvDocument::notification, switchedmenuChangedMessagehandling to callsetBuildMenu()rather than immediately executingmergeMenu()synchronously.m_menuTimeras a single-shot timer. During startup, dozens of modes activate and fireinvalidateMenu(); debouncing coalesces these into a single menu build and completely eliminates the rapid menu bar flashing.Fix Console Log Mangling of
<...>:RvConsoleWindow.cpp, escaped raw log text withtoHtmlEscaped()when appending to HTML. Unescaped strings containing comparison operators (<and>in GLSL code or C++ templates) were previously stripped by Qt's rich text parser as unknown HTML tags.Reuse Initial Empty Document on macOS File Open:
RvApplication::newSessionFromFiles, checked if an existing document is currently open with no sources loaded. If so, incoming files from a macOSQFileOpenEventare loaded directly into that session rather than creating an extra redundant window.Apple Flex 2.6+ 64-bit Compatibility:
cmake/macros/rv_lex.cmaketo properly detect Apple flex on macOS.FlexLexer.hin bothGtoandMuLangto usesize_tfor buffer sizes andssize_tforLexerInputreturn types.