载入中...
搜索中...
未找到
EvpackMeshVfx.cpp
浏览该文件的文档.
20Result<std::unique_ptr<EvpackMeshVfx>> EvpackMeshVfx::load(const asset::EvpackResourceReader& reader,
26 if (payload.value().chunks.size() != 1 || payload.value().chunks[0].kind != asset::EvpackChunkKind::Definition)
35 if (definition.value().layers.size() > 32 || definition.value().trail || definition.value().trailBinding ||
36 !definition.value().animationTriggers.play.empty() || !definition.value().animationTriggers.stop.empty() ||
40 "Package renderer supports up to 32 mesh layers; trail/animation attachments require a gameplay adapter",
48 Diagnostic::error(DiagnosticCode::InvalidArgument, "Invalid playback cycle", {}, {}, "asset.mesh-vfx"));
62 Diagnostic::error(DiagnosticCode::Unsupported, "Mesh VFX curves require scalar shader parameters",
89 Diagnostic::error(DiagnosticCode::InvalidArgument, "Playback time overflow", {}, {}, "asset.mesh-vfx"));
103 Diagnostic::error(DiagnosticCode::InvalidArgument, "Invalid layer/value", {}, {}, "asset.mesh-vfx"));
129Result<void> EvpackMeshVfx::reload(const asset::EvpackResourceReader& reader, const AssetRef& asset,
Typed capability-aware runtime access to admitted packs.
JSON-free versioned runtime metadata codec.
static Result< AssetRef > parse(std::string_view text)
Parse an asset://<canonical UUID> reference.
Definition ResourceRef.cpp:20
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
Immutable reader retaining an admitted pack by shared ownership.
Definition EvpackResourceReader.h:29
Result< RuntimeAssetPayload > read(const AssetRef &asset, std::string_view expectedType, const EvpackCapabilities &capabilities, std::uint64_t maximumDecodedBytes) const
Resolve, type-check, variant-select and decode a canonical runtime asset.
Definition EvpackResourceReader.cpp:10
static Result< std::unique_ptr< EvpackShader > > load(const asset::EvpackResourceReader &reader, const AssetRef &asset, const asset::EvpackCapabilities &capabilities, graphics::Graphics &graphics)
Validate then upload; failures preserve all existing instances. Reader is not retained.
Definition EvpackShader.cpp:30
Owning package-backed mesh effect, using the canonical MeshVfxAsset playback and curves....
Definition EvpackMeshVfx.h:26
Result< void > setFloat(std::size_t layer, std::string_view name, float value)
Set one scalar override for one layer; authored curves still own animated parameters on advance.
Definition EvpackMeshVfx.cpp:100
Result< void > reload(const asset::EvpackResourceReader &reader, const AssetRef &asset, const asset::EvpackCapabilities &capabilities)
Atomically replace only after successful full load. Reapply defaults and restart; failure preserves o...
Definition EvpackMeshVfx.cpp:129
Result< void > draw(graphics::Mesh &mesh, const std::array< float, 16 > &transform, OptionalRef< graphics::Texture > texture, const std::array< float, 4 > &tint={1, 1, 1, 1})
Draw active layers during an open 3D frame with caller-owned mesh/texture and instance transform....
Definition EvpackMeshVfx.cpp:111
std::vector< std::string > drainEvents()
Drain canonical timeline events; no caller callback is invoked while advancing.
Definition EvpackMeshVfx.cpp:136
static Result< std::unique_ptr< EvpackMeshVfx > > load(const asset::EvpackResourceReader &reader, const AssetRef &asset, const asset::EvpackCapabilities &capabilities, graphics::Graphics &graphics)
Resolve every layer and validate all candidates before GPU upload; no partial instance is published.
Definition EvpackMeshVfx.cpp:20
void play() noexcept
Restart the authored playback and reset its curves on the next advance.
Definition EvpackMeshVfx.cpp:80
Result< void > stop(float fadeOutSeconds=0.f)
Stop with an optional finite nonnegative fade.
Definition EvpackMeshVfx.cpp:93
Result< void > advance(float dt)
Advance using finite nonnegative seconds; invalid input leaves playback unchanged.
Definition EvpackMeshVfx.cpp:81
EvpackMeshVfx(const EvpackMeshVfx &)=delete
Definition Graphics.h:125
static eve::Result< std::unique_ptr< MeshVfxAssetInstance > > create(const MeshVfxAsset &asset)
Build independent runtime state for every asset layer.
Definition MeshVfxAsset.cpp:510
Result< void > validateShaderAssetGpu(const asset::ShaderAsset &shader)
Validate complete SPIR-V semantics and the supported engine pipeline interface before upload.
Definition ShaderAssetValidation.cpp:96
Definition EvpackMeshVfx.cpp:11
Result< Value > decodeRuntimeDefinition(std::span< const std::uint8_t > bytes, const RuntimeDefinitionLimits &limits)
Decode a bounded EVDEF\0\1 metadata tree without a JSON parser.
Definition RuntimeDefinition.cpp:246
EVENGINE_API_FOUNDATION Result< ShaderAsset > loadShaderAsset(const EvpackResourceReader &reader, const AssetRef &asset, const EvpackCapabilities &capabilities)
Read and decode one capability-selected eve.shader/1 from an admitted runtime package.
Definition ShaderAssetLoader.cpp:6
@ Definition
@ InvalidArgument
@ NotFound
@ Unsupported
std::optional< std::reference_wrapper< T > > OptionalRef
Optional borrowed reference; it does not extend T's lifetime.
Definition BorrowedRef.h:24
Definition Container.h:602
Actual runtime device capabilities used for variant selection.
Definition Evpack.h:92
std::unique_ptr< stylize::MeshVfxAssetInstance > playback
Definition EvpackMeshVfx.cpp:15
graphics::Graphics & graphics
Definition EvpackMeshVfx.cpp:14
std::vector< std::unique_ptr< asset_graphics::EvpackShader > > shaders
Definition EvpackMeshVfx.cpp:16
static eve::Result< MeshVfxAsset > fromJson(std::string_view json)
Parse, migrate, and validate a JSON asset without mutating live state.
Definition MeshVfxAsset.cpp:273