Namespaces | |
| namespace | ZoneShaderUboRegions |
| UBO region offsets for partial updates (reduces GPU bandwidth). | |
Classes | |
| class | ShaderCompiler |
| Static utility for GLSL → SPIR-V compilation with include resolution and caching. More... | |
| class | ShaderEffect |
| QQuickItem that renders a fullscreen fragment shader via Qt RHI. More... | |
| class | ShaderNodeRhi |
| QSGRenderNode for fullscreen-quad shader rendering via Qt RHI (Vulkan / OpenGL) More... | |
| struct | WarmShaderBakeResult |
| Result of warmShaderBakeCacheForPaths for reporting to UI. More... | |
| struct | ZoneColor |
| Parsed zone color data for shader rendering. More... | |
| struct | ZoneData |
| Per-zone payload pushed into the UBO each frame. More... | |
| struct | ZoneDataSnapshot |
| Thread-safe zone data snapshot for the render thread. More... | |
| struct | ZoneLabelTexture |
| Sparse zone-labels payload: the full screen-addressed texture size plus only the glyph tiles that actually carry a number. More... | |
| struct | ZoneLabelTile |
| One rendered zone-label glyph (number) plus where its top-left sits in the full, screen-addressed labels texture. More... | |
| struct | ZoneRect |
| Parsed zone rectangle data for shader rendering. More... | |
| class | ZoneShaderNodeRhi |
| QSGRenderNode for zone overlay rendering, delegating to ShaderNodeRhi. More... | |
| struct | ZoneShaderUniforms |
| GPU uniform buffer layout — BaseUniforms + zone extension. More... | |
| class | ZoneUniformExtension |
| IUniformExtension implementation for zone data. More... | |
Functions | |
| constexpr bool | isConsumerBinding (int binding) noexcept |
| PHOSPHORRENDERING_EXPORT WarmShaderBakeResult | warmShaderBakeCacheForPaths (const QString &vertexPath, const QString &fragmentPath, const QStringList &includePaths={}, const QString ¶mPreamble={}, const QString &entryPrologue={}, const QList< PhosphorShaders::EntryCandidate > &entryCandidates={}) |
| Pre-load cache warming: load, bake, and insert shaders for the given paths into the shared bake cache. | |
Variables | |
| constexpr int | kMaxUserTextureSlots = 4 |
Public mirror of ShaderNodeRhi::kMaxUserTextures (4 user-texture slots at SRB bindings 7..10). | |
| constexpr int | kMaxBufferPasses = 4 |
| constexpr int | kMaxUserTextures = 4 |
| constexpr int | kMaxCustomParams = 8 |
| constexpr int | kMaxCustomColors = 16 |
| constexpr int | kFirstFreeConsumerBinding = 1 |
| First slot usable via setExtraBinding() | |
| constexpr int | kMaxConsumerBinding = 31 |
| Highest portable SRB binding. | |
| constexpr int | kReservedBindingRangeStart = 2 |
| First library-managed binding above 0. | |
| constexpr int | kReservedBindingRangeEnd = 12 |
| Last library-managed binding. | |
| constexpr int | kUserTextureBaseBinding = 7 |
| First SRB binding for the user-texture slots (slot 0 → binding 7). | |
| constexpr int | MaxZones = 64 |
| Maximum number of zones the zone-aware UBO supports. | |
|
constexprnoexcept |
binding is usable by consumers via setExtraBinding(). | PHOSPHORRENDERING_EXPORT WarmShaderBakeResult PhosphorRendering::warmShaderBakeCacheForPaths | ( | const QString & | vertexPath, |
| const QString & | fragmentPath, | ||
| const QStringList & | includePaths = {}, |
||
| const QString & | paramPreamble = {}, |
||
| const QString & | entryPrologue = {}, |
||
| const QList< PhosphorShaders::EntryCandidate > & | entryCandidates = {} |
||
| ) |
Pre-load cache warming: load, bake, and insert shaders for the given paths into the shared bake cache.
Safe to call from any thread.
| vertexPath | Path to the vertex shader file |
| fragmentPath | Path to the fragment shader file |
| includePaths | Directories to search for #include directives |
| paramPreamble | Generated #define p_<id> ... block spliced after the fragment shader's #version (T1.1). MUST match what the live ShaderNodeRhi::loadFragmentShader splices for the same effect, since both compute the same bake-cache key (which is fingerprinted on the preamble) — a mismatch would let this warm entry serve the wrong SPIR-V to the live load. Empty (the default) is a no-op splice. |
| entryPrologue | T1.4 entry-point prologue (#version/include/in-out) prepended to an entry-only fragment source before expansion. Empty (default) disables assembly. |
| entryCandidates | T1.4 entry functions + their generated main(), applied when the fragment defines no main(). MUST match what ShaderNodeRhi::loadFragmentShader uses for the same shader so warm + live agree on key and source. |
|
constexpr |
First slot usable via setExtraBinding()
|
constexpr |
|
constexpr |
Highest portable SRB binding.
31 matches Qt RHI's minimum guarantee (minMaxShaderResourceBindingCount) across all backends — Vulkan/D3D11/ Metal/OpenGL all advertise at least 32 bindings. Going higher risks pipeline-creation failure on conservative drivers.
|
constexpr |
|
constexpr |
|
constexpr |
|
inlineconstexpr |
Public mirror of ShaderNodeRhi::kMaxUserTextures (4 user-texture slots at SRB bindings 7..10).
Re-declared here so member-array sizes can use the named constant without pulling in the heavy rhi/qrhi.h transitive chain that ShaderNodeRhi.h carries. Kept in sync via a static_assert in shadereffect.cpp.
|
constexpr |
Last library-managed binding.
|
constexpr |
First library-managed binding above 0.
|
constexpr |
First SRB binding for the user-texture slots (slot 0 → binding 7).
Both setSourceTextureProvider's slot-0 override and the QImage-uploaded user textures key off this base.
|
constexpr |
Maximum number of zones the zone-aware UBO supports.