载入中...
搜索中...
未找到
RenderableInstances.cpp
浏览该文件的文档.
2#include "graphics/Mesh.h"
3#include "graphics/Shader.h"
4
5namespace eve::graphics {
6namespace detail {
8 auto* shader = mr.material ? mr.material->effectiveShader() : mr.shader;
9 if (!mr.mesh || !shader || shader->getKind() != Shader::Kind::eMesh3D || shader->isXray() || mr.usesParts() ||
10 mr.effectiveHair() || mr.xrayHighlight || mr.lodCount || mr.mesh->hasGpuSkinning() ||
11 mr.effectiveCastShadow() || mr.castOcclusion)
14 "Instanced renderables require one custom static mesh without shadow/occlusion casting, LOD, hair or Xray",
15 "graphics.instances"));
16 return Result<void>::success();
17}
18} // namespace detail
21 if (!valid) return valid;
22 auto mr = meshRenderer();
23 auto supported = detail::validateInstancedRenderable(*mr);
24 if (!supported) return supported;
25 mr->instances = range;
26 return Result<void>::success();
27}
28void Renderable3D::clearInstanceRange() { meshRenderer()->instances.reset(); }
29} // namespace eve::graphics
Range range
bool valid
int detail
Renderable3D::MeshRenderer * mr
Shader * shader
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
Move-only operation result carrying either a value or Status.
Definition Result.h:155
static Result success(T value)
Construct a successful result owning value.
Definition Result.h:164
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
void clearInstanceRange()
Remove runtime instance metadata on the update thread; no callbacks.
Result< void > setInstanceRange(const MeshInstanceRange &range)
Atomically set static instance range and bounds; render/update thread only. @ownership Metadata is co...
Result< void > validateInstancedRenderable(const Renderable3D::MeshRenderer &mr)
Validate instanced renderable.
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Result< void > validateMeshInstanceRange(const MeshInstanceRange &range)
Worker-safe validation of value-owned range and culling metadata.
Value-owned subset of a resource shader's static instances.