Skip to content

ludus::tooling::shader_compiler::Compiler

Ludus Wiki · API overview · Browse API

Class

Optional native compiler library. Does not initialize an engine, editor, device or window. Single-thread-affine: all operations and destruction use its creating thread. One global Slang session survives requests. Only the latest identical source snapshot and ray-query profile reuse a module/session; changes replace it before loading sources.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

#include <ludus/tooling/shader_compiler/compiler.hpp>
class ludus::tooling::shader_compiler::Compiler final

Methods

Compiler

ludus::tooling::shader_compiler::Compiler::Compiler() noexcept
Construct without initializing Slang.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

~Compiler

ludus::tooling::shader_compiler::Compiler::~Compiler() noexcept
Release session objects before the global compiler.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Compiler

ludus::tooling::shader_compiler::Compiler::Compiler(const Compiler &)=delete
Compiler ownership is unique.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

operator=

Compiler & ludus::tooling::shader_compiler::Compiler::operator=(const Compiler &)=delete
Compiler ownership is unique.

Related types: Compiler

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Initialize

Status ludus::tooling::shader_compiler::Compiler::Initialize() noexcept
Initialize the pinned Slang API. Repeated initialization returns InvalidState. Returns Unavailable when the pinned version or its SPIR-V optimizer library cannot be loaded; Slang would otherwise emit unoptimized SPIR-V that differs from slangc's output.

Related types: Status

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Compile

Status ludus::tooling::shader_compiler::Compiler::Compile(const Request &request, Result &outResult) noexcept
Synchronously compile captured sources, with no disk reads through the Slang filesystem.
ParameterDescription
request
Input views remain alive only for this call; source bytes are copied.
outResult
Replaced with complete output/status/diagnostics. Failures expose no artifacts.

Returns

The same status stored in outResult. May allocate; never call on a rendering thread.

Related types: Status · Request · Result

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp