MQEngine
载入中...
搜索中...
未找到
Tech.hpp
浏览该文件的文档.
1#ifndef TECH_HPP
2#define TECH_HPP
3#include "Tech.h"
4
5namespace MQEngine
6{
7 template<typename... Args>
8 Tech::Tech(Args... args)
9 {
10 processArgs(args...);
11 }
12
13
14
15 template<typename... Args>
16 void Tech::processArgs(const TechName& name, Args... args)
17 {
18 m_name = name.name;
19 processArgs(args...);
20 }
21
22 template<typename... Args>
23 void Tech::processArgs(const VertexShaderSource& vs, Args... args)
24 {
26 processArgs(args...);
27 }
28
29 template<typename... Args>
30 void Tech::processArgs(const PixelShaderSource& ps, Args... args)
31 {
33 processArgs(args...);
34 }
35
36 template<typename... Args>
37 void Tech::processArgs(const FCT::VertexLayout& layout, Args... args)
38 {
39 m_vertexLayouts.push_back(layout);
40 processArgs(args...);
41 }
42
43 template<typename... Args>
44 void Tech::processArgs(const std::vector<FCT::VertexLayout>& layouts, Args... args)
45 {
46 for (const auto& layout : layouts)
47 {
48 m_vertexLayouts.push_back(layout);
49 }
50 processArgs(args...);
51 }
52
53 template<typename... Args>
54 void Tech::processArgs(const FCT::PixelLayout& layout, Args... args)
55 {
56 m_pixelLayout = layout;
57 processArgs(args...);
58 }
59
60 template<typename... Args>
61 void Tech::processArgs(const FCT::UniformSlot& slot, Args... args)
62 {
63 m_uniformSlots.push_back(slot);
64 processArgs(args...);
65 }
66
67 template<typename... Args>
68 void Tech::processArgs(const std::vector<FCT::UniformSlot>& slots, Args... args)
69 {
70 for (const auto& slot : slots)
71 {
72 m_uniformSlots.push_back(slot);
73 }
74 processArgs(args...);
75 }
76
77 template<typename... Args>
78 void Tech::processArgs(const FCT::SamplerSlot& slot, Args... args)
79 {
80 m_samplerSlots.push_back(slot);
81 processArgs(args...);
82 }
83
84 template<typename... Args>
85 void Tech::processArgs(const std::vector<FCT::SamplerSlot>& slots, Args... args)
86 {
87 for (const auto& slot : slots)
88 {
89 m_samplerSlots.push_back(slot);
90 }
91 processArgs(args...);
92 }
93
94 template<typename... Args>
95 void Tech::processArgs(const FCT::TextureSlot& slot, Args... args)
96 {
97 m_textureSlots.push_back(slot);
98 processArgs(args...);
99 }
100
101 template<typename... Args>
102 void Tech::processArgs(const std::vector<FCT::TextureSlot>& slots, Args... args)
103 {
104 for (const auto& slot : slots)
105 {
106 m_textureSlots.push_back(slot);
107 }
108 processArgs(args...);
109 }
110
111 template<typename... Args>
112 void Tech::processArgs(const ComponentFilter& filter, Args... args)
113 {
114 m_componentFilter = filter;
115 processArgs(args...);
116 }
117
118 template<typename... Args>
119 void Tech::processArgs(const TechBindCallback& callback, Args... args)
120 {
121 m_bindCallback = callback;
122 processArgs(args...);
123 }
124
125 template<typename... Args>
126 void Tech::processArgs(const EntityOperationCallback& callback, Args... args)
127 {
128 m_entityOperationCallback = callback;
129 processArgs(args...);
130 }
131
132}
133
134#endif // TECH_HPP
std::string m_vs_source
定义 Tech.h:202
std::vector< FCT::UniformSlot > m_uniformSlots
定义 Tech.h:206
Tech(Args... args)
定义 Tech.hpp:8
EntityOperationCallback m_entityOperationCallback
定义 Tech.h:214
std::string m_name
定义 Tech.h:201
std::vector< FCT::TextureSlot > m_textureSlots
定义 Tech.h:208
TechBindCallback m_bindCallback
定义 Tech.h:213
std::string m_ps_source
定义 Tech.h:203
std::vector< FCT::VertexLayout > m_vertexLayouts
定义 Tech.h:204
FCT::PixelLayout m_pixelLayout
定义 Tech.h:205
void processArgs()
定义 Tech.h:153
ComponentFilter m_componentFilter
定义 Tech.h:212
std::vector< FCT::SamplerSlot > m_samplerSlots
定义 Tech.h:207
定义 application.h:5
std::function< void(const EntityRenderContext &context)> EntityOperationCallback
实体操作回调函数类型
定义 Tech.h:41
std::function< void(FCT::Layout *layout, const std::string &techName, const std::string &passName)> TechBindCallback
Tech绑定回调函数类型
定义 Tech.h:23
定义组件过滤器,用于runtime view
定义 Tech.h:71
定义像素着色器源码
定义 Tech.h:63
std::string source
定义 Tech.h:64
定义Tech的名称
定义 Tech.h:47
std::string name
定义 Tech.h:48
定义顶点着色器源码
定义 Tech.h:55
std::string source
定义 Tech.h:56