载入中...
搜索中...
未找到
ShaderResourceScriptBindings.cpp
浏览该文件的文档.
18 if (!found || found->type() != type) throw std::runtime_error("Missing or invalid image field: " + name);
23 if (value < 0 || uint64_t(value) > UINT32_MAX) throw std::runtime_error("Image integer out of range: " + name);
33Result<void> replace(Graphics& graphics, Shader& shader, const std::string& vertex, const std::string& fragment,
101 if (filter > 2 || wrapU > 1 || wrapV > 1) throw std::runtime_error("Unknown resource sampler mode");
118 if (totalBytes > 2ull * 1024 * 1024 * 1024) throw std::runtime_error("Resource set exceeds 2 GiB");
128 inputs.constants = {static_cast<const std::byte*>(uniform->getData()), size_t(uniform->getSize())};
132 inputs.instanceMatrices = {static_cast<const std::byte*>(matrices->getData()), size_t(matrices->getSize())};
136 return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument, error.what(), "resources"));
142 cls.addFunc("setBloomFilter", [vm](Graphics* graphics, const std::string& mode, float scatter, int iterations,
144 if (!graphics || (mode != "karisTent" && mode != "gaussianScatter" && mode != "gaussianPyramid"))
159 graphics->pipelineBloom()->filterSettings().filter == BloomFilter::GaussianScatter ? "gaussianScatter"
160 : graphics->pipelineBloom()->filterSettings().filter == BloomFilter::GaussianPyramid ? "gaussianPyramid"
255 cls.addFunc("drawMeshShaderInstances", [vm](Graphics* graphics, Mesh* mesh, Shader* shader, ssq::Array model,
260 throw std::runtime_error("Expected mesh, shader, 16 matrix floats and nonnegative uint32 range");
263 return script::projectResult(vm, graphics->drawMeshShaderInstances(*mesh, *shader, transform, Color(1.f),
279 return script::projectResult(vm, replace(*graphics, *shader, vertex, fragment, value.value(), constants));
The single Squirrel projection for common Result, Status and Value.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
@ String
@ Int64
Result< void > configureFilter(const BloomFilterSettings &settings)
Select a reconstruction filter for subsequent builds.
Definition BloomGaussian.cpp:27
BloomFilterSettings filterSettings() const
Return a value snapshot. Render thread only; retains no references.
Definition Bloom.h:56
Definition Graphics.h:125
virtual Result< DisplayOutputSupport > queryDisplayOutputSupport() const
Query which present formats the current surface can offer.
Definition DisplayOutput.cpp:34
virtual DisplayColorSpace getActiveDisplayColorSpace() const
Color space of the live swapchain after the last rebuild.
Definition DisplayOutput.cpp:42
virtual float getDisplayPaperWhiteNits() const
Paper-white luminance in nits for HDR present encoding.
Definition DisplayOutput.cpp:40
virtual float getDisplayPeakNits() const
Peak luminance in nits for HDR present encoding.
Definition DisplayOutput.cpp:41
virtual float getScenePhotographicVignette() const
Return photographic vignette intensity; render thread only.
Definition Graphics.h:1387
virtual Result< void > setDisplayHdrCalibration(float paperWhiteNits, float peakNits)
Set paper-white and peak luminance used by HDR present encoding.
Definition DisplayOutput.cpp:23
virtual bool isDisplayHdrActive() const
True when the live swapchain is scRGB or HDR10.
Definition DisplayOutput.cpp:45
Bloom * pipelineBloom()
Pipeline-owned linear-HDR bloom pyramid, created on first use. @lifetime Returned effect remains vali...
Definition Graphics.cpp:1517
virtual Result< void > setScenePhotographicVignette(float intensity)
Set cosine-fourth photographic vignette intensity in [0,1].
Definition SceneToneMapping.cpp:15
virtual DisplayOutputMode getDisplayOutputMode() const
Return the requested present preference.
Definition DisplayOutput.cpp:39
virtual Result< void > drawMeshShaderInstances(Mesh &mesh, Shader &shader, const glm::mat4 &model, const Color &tint, std::uint32_t first, std::uint32_t count)
Draw a checked range from a resource shader's immutable instance matrix buffer. @ownership Mesh and S...
Definition Graphics.h:1116
virtual SceneToneMapping getSceneToneMapping() const
Return the current final display mapping; graphics/render thread only.
Definition Graphics.h:1347
virtual Result< void > setSceneToneMapping(SceneToneMapping mode)
Set final scene display mapping on the graphics/render thread.
Definition SceneToneMapping.cpp:6
virtual Result< void > setDisplayOutputMode(DisplayOutputMode mode)
Request a present color space on the graphics/render thread.
Definition DisplayOutput.cpp:8
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
Result< std::shared_ptr< const FileData > > readPreparedFile(const std::string &path, size_t limit)
Join a queued read or synchronously read an immutable file snapshot.
Definition PreparedFile.cpp:59
Definition PbrGpuUniform.cpp:5
void exposeShaderResourceBindings(ssq::Table &table, ssq::Class &cls)
Expose shader resource bindings.
Definition ShaderResourceScriptBindings.cpp:140
Result< std::vector< std::uint32_t > > readShaderStageFile(const std::string &path)
Reads shader stage file.
Definition ShaderScriptBindings.cpp:35
@ RGBA8Srgb
@ BGRA8Srgb
@ RGBA16Float
@ RGBA16Unorm
@ RGBA32Float
@ Nearest
@ KarisTent
@ GaussianPyramid
@ GaussianScatter
eve::Color Color
RGBA color used by every graphics draw call. Lives inside eve::graphics so including a graphics heade...
Definition Color.h:13
@ Nearest
@ Disabled
EVENGINE_API_BACKENDS Result< void > validateBloomFilterSettings(const BloomFilterSettings &settings)
Validate enum, finite scatter [0,1], iterations [1,16], and finite clamp (0,65504].
Definition BloomGaussian.cpp:17
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
ssq::Table projectResult(HSQUIRRELVM vm, Result< void > &&result)
Consume and project a void native Result using the common schema.
Definition SquirrelBinding.cpp:470
Result< Value > valueFromSquirrel(HSQUIRRELVM vm, SQInteger index, const SquirrelValueOptions &options)
Convert one Squirrel value into the canonical owning Value tree.
Definition SquirrelBinding.cpp:342
WidgetDesc row(std::vector< WidgetDesc > children, std::string id)
Horizontal elastic layout row.
Definition Widget.cpp:679
@ InvalidArgument
Definition Container.h:602
Value-owned Gaussian bloom settings, independent of camera intensity and threshold.
Definition Bloom.h:21
Surface present formats the current device/window can offer.
Definition Graphics.h:1331