载入中...
搜索中...
未找到
EvpackShader.h
浏览该文件的文档.
1#pragma once
2
3#include <array>
4#include <memory>
5#include <span>
7#include "common/Export.h"
9
10namespace eve::asset {
11class EvpackResourceReader;
12struct EvpackCapabilities;
13struct ShaderAsset;
14} // namespace eve::asset
15namespace eve::graphics {
16class Graphics;
17class Mesh;
18class Texture;
19} // namespace eve::graphics
20namespace eve::asset_graphics {
28public:
31 EvpackShader(const EvpackShader&) = delete;
34 [[nodiscard]] static Result<std::unique_ptr<EvpackShader>> load(const asset::EvpackResourceReader& reader,
35 const AssetRef& asset,
36 const asset::EvpackCapabilities& capabilities,
37 graphics::Graphics& graphics);
39 [[nodiscard]] const asset::ShaderAsset& definition() const noexcept;
41 [[nodiscard]] Result<void> setParameter(std::string_view name, std::span<const float> values);
43 [[nodiscard]] Result<void> drawMesh(graphics::Mesh& mesh, const std::array<float, 16>& transform,
44 OptionalRef<graphics::Texture> texture, const std::array<float, 4>& tint);
46 [[nodiscard]] Result<void> drawSprite(OptionalRef<graphics::Texture> texture, const std::array<float, 4>& rect,
47 const std::array<float, 4>& tint);
49 [[nodiscard]] Result<void> release();
50
51private:
52 struct Impl;
53 explicit EvpackShader(std::unique_ptr<Impl> impl);
54 std::unique_ptr<Impl> impl_;
55};
56} // namespace eve::asset_graphics
Vocabulary aliases for nullable and checked borrowed references.
void * impl
std::map< std::string, Var > values
#define EVENGINE_API_WORLD
Definition Export.h:109
glm::vec4 tint
std::string name
std::function< eve::Result< void >()> release
Definition Procgen.cpp:86
Mesh * mesh
Strong asset, definition, object and generic resource references.
LogicalId definition
Stable asset identity backed by PersistentId.
Definition ResourceRef.h:53
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Immutable reader retaining an admitted pack by shared ownership.
Unique lease on a validated package shader and its independent parameter instance....
EvpackShader(const EvpackShader &)=delete
EvpackShader & operator=(const EvpackShader &)=delete
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
std::optional< std::reference_wrapper< T > > OptionalRef
Optional borrowed reference; it does not extend T's lifetime.
Definition BorrowedRef.h:24
Actual runtime device capabilities used for variant selection.
Definition Evpack.h:92
Owning CPU program snapshot; decoding does not prove GPU/descriptor compatibility.
Definition ShaderAsset.h:26