载入中...
搜索中...
未找到
Stylize.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Module.h"
10#include "stylize/StyleChain.h"
11#include "stylize/StylePass.h"
12#include "stylize/TrailEffect.h"
13
14#include <memory>
15#include <string>
16
17namespace eve::graphics {
18class Graphics;
19class Shader;
20} // namespace eve::graphics
21
22namespace eve::image {
23class ImageData;
24} // namespace eve::image
25
26namespace eve::stylize {
27
28class StyleInstance;
29class StyleRecipe;
30
55public:
58 Stylize();
60 ~Stylize() override;
61
63 int getStyleCount() const;
65 std::string getStyleId(int index) const;
67 bool hasStyle(const std::string &style) const;
69 bool hasMeshStyle(const std::string &style) const;
70
79 bool supports(const std::string &style, const std::string &feature) const;
80
82 int getStyleParamCount(const std::string &style) const;
84 std::string getStyleParamName(const std::string &style, int index) const;
85
87 StyleInstance *newInstance(const std::string &style);
89 StyleRecipe *newRecipe();
90
92 [[nodiscard]] std::unique_ptr<MeshEffectInstance> createMeshEffect(const std::string& style);
94 [[nodiscard]] std::unique_ptr<TrailEmitter> createTrailEmitter();
96 [[nodiscard]] std::unique_ptr<MeshEffectRenderer> createMeshEffectRenderer(graphics::Graphics& gfx);
98 [[nodiscard]] std::unique_ptr<SkillMeshEffect> createSkillMeshEffect(SkillMeshEffectKind kind);
100 [[nodiscard]] eve::Result<std::unique_ptr<MeshVfxAssetInstance>> createMeshVfxAssetInstance(const MeshVfxAsset& asset);
102 [[nodiscard]] std::unique_ptr<AttackVfxRuntime> createAttackVfxRuntime();
103
105 StylePass *newPass(graphics::Graphics *gfx, const std::string &style);
106
112 StylePass *newPassFromShader(const std::string &styleId, graphics::Shader *shader);
113
116 StyleChain *newChain();
117
119 graphics::Shader *newPostShader(graphics::Graphics *gfx, const std::string &style);
120
122 graphics::Shader *newMeshShader(graphics::Graphics *gfx, const std::string &style);
123
128 image::ImageData *processImage(image::ImageData *src, const std::string &style);
129};
130
131} // namespace eve::stylize
Data-driven layered attack VFX recipe and element skin (Phase 1 schema).
Pooled AttackVfx orchestration with optional layer executors.
#define EVENGINE_API_WORLD
Definition Export.h:109
TokenKind kind
Shader * shader
uint32_t index
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Custom GPU program.
Definition Shader.h:39
Represents raw pixel data.
Definition ImageData.h:38
Ordered multi-pass stylize pipeline (extension point).
Definition StyleChain.h:29
Mutable parameter instance of an immutable built-in style definition.
One stylized post-process pass bound to a style id (built-in or custom label). Draws a full-quad of t...
Definition StylePass.h:26
Compilable recipe of style instances sharing one pipeline stage.
Definition StyleRecipe.h:26
Stylized / NPR rendering module — stable public surface for future expansion.
Definition Stylize.h:54
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
SkillMeshEffectKind
Built-in gameplay-oriented mesh VFX compositions.
Versioned, backend-neutral description of a real-time mesh effect.