载入中...
搜索中...
未找到
AntiAliasing.h
浏览该文件的文档.
1#pragma once
2
3#include <string>
4
5namespace eve::graphics {
6
7class Canvas;
8class Graphics;
9class Shader;
10class Texture;
11
25public:
26 explicit AntiAliasing(Graphics *gfx);
28
29 AntiAliasing(const AntiAliasing &) = delete;
31
33 void setQuality(const std::string &quality);
34 std::string getQuality() const { return quality_; }
35
37 void setMode(const std::string &mode);
38 std::string getMode() const { return mode_; }
39
40 bool hasParam(const std::string &name) const;
41 void setFloat(const std::string &name, float value);
42 float getFloat(const std::string &name) const;
43
49 float suggestScale() const;
50
52 int resolutionFor(int destSize) const;
53
58 void apply(Graphics *gfx, Texture *source);
59 void applyTo(Graphics *gfx, Texture *source, Canvas *dest);
60
61 void applyCanvas(Graphics *gfx, Canvas *source);
62 void applyCanvasTo(Graphics *gfx, Canvas *source, Canvas *dest);
63
65 void prepareSource(Texture *source);
66
67 Shader *getFxaaShader() const { return fxaa_; }
68 Shader *getSmaaShader() const { return smaa_; }
69 Shader *getSsaaShader() const { return ssaa_; }
70 Shader *getNfaaShader() const { return nfaa_; }
71 Shader *getShader() const;
72
73private:
74 void applyQualityDefaults();
75 void uploadScreenUniforms(Texture *source);
76 void drawFullscreen(Graphics *gfx, Texture *source, Shader *shader);
77 Shader *shaderForMode() const;
78
79 Graphics *gfx_ = nullptr; // not owned
80 Shader *fxaa_ = nullptr; // owned by Graphics
81 Shader *smaa_ = nullptr;
82 Shader *ssaa_ = nullptr;
83 Shader *nfaa_ = nullptr;
84 std::string quality_ = "medium";
85 std::string mode_ = "fxaa";
86};
87
88} // namespace eve::graphics
std::string value
Shader * shader
const char * name
Definition RockMesh.cpp:21
Classic image-space anti-aliasing.
bool hasParam(const std::string &name) const
void apply(Graphics *gfx, Texture *source)
Apply current mode to source, writing into the currently bound canvas / screen. Uploads texelW/texelH...
Shader * getSmaaShader() const
Shader * getNfaaShader() const
void setMode(const std::string &mode)
"fxaa" | "smaa" | "ssaa" | "nfaa" (unknown → fxaa).
Shader * getSsaaShader() const
void prepareSource(Texture *source)
Upload texel uniforms from source without drawing (3D scene-color resolve).
std::string getQuality() const
float suggestScale() const
Suggested supersample scale for the active quality when using "ssaa" (2 for low/medium,...
void applyTo(Graphics *gfx, Texture *source, Canvas *dest)
float getFloat(const std::string &name) const
Shader * getFxaaShader() const
void setFloat(const std::string &name, float value)
void applyCanvas(Graphics *gfx, Canvas *source)
AntiAliasing & operator=(const AntiAliasing &)=delete
int resolutionFor(int destSize) const
void applyCanvasTo(Graphics *gfx, Canvas *source, Canvas *dest)
AntiAliasing(const AntiAliasing &)=delete
void setQuality(const std::string &quality)
"low" | "medium" | "high" (unknown → medium).
std::string getMode() const
Custom GPU program.
Definition Shader.h:30
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:17
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition AnimTrail.h:6