-
Notifications
You must be signed in to change notification settings - Fork 36
/
Shader.cpp
413 lines (406 loc) · 34.8 KB
/
Shader.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
#include "Bloom_fragment.h"
#include "Color_fragment.h"
#include "Depth_fragment.h"
#include "Fog_fragment.h"
#include "GaussianBlur_fragment.h"
#include "Generic_fragment.h"
#include "SMAABlendingWeightCalculation_fragment.h"
#include "SMAAEdgeDetection_fragment.h"
#include "SMAANeighborhoodBlending_fragment.h"
#include "Texture_fragment.h"
#include "TextureColor_fragment.h"
#include "TextureDebug_fragment.h"
#include "TextureVariation_fragment.h"
#include "Color_vertex.h"
#include "Depth_vertex.h"
#include "Fog_vertex.h"
#include "Generic_vertex.h"
#include "SMAABlendingWeightCalculation_vertex.h"
#include "SMAAEdgeDetection_vertex.h"
#include "SMAANeighborhoodBlending_vertex.h"
#include "Texture_vertex.h"
struct ShaderSourceMem { const uint8_t *mem; size_t size; };
static std::array<ShaderSourceMem, FragmentShaderId::Num> GetFragmentShaderSourceMap_gl()
{
std::array<ShaderSourceMem, FragmentShaderId::Num> mem;
mem[FragmentShaderId::Bloom].mem = Bloom_fragment_gl;
mem[FragmentShaderId::Bloom].size = sizeof(Bloom_fragment_gl);
mem[FragmentShaderId::Color].mem = Color_fragment_gl;
mem[FragmentShaderId::Color].size = sizeof(Color_fragment_gl);
mem[FragmentShaderId::Depth].mem = Depth_fragment_gl;
mem[FragmentShaderId::Depth].size = sizeof(Depth_fragment_gl);
mem[FragmentShaderId::Depth_AlphaTest].mem = Depth_AlphaTest_fragment_gl;
mem[FragmentShaderId::Depth_AlphaTest].size = sizeof(Depth_AlphaTest_fragment_gl);
mem[FragmentShaderId::Fog].mem = Fog_fragment_gl;
mem[FragmentShaderId::Fog].size = sizeof(Fog_fragment_gl);
mem[FragmentShaderId::Fog_Bloom].mem = Fog_Bloom_fragment_gl;
mem[FragmentShaderId::Fog_Bloom].size = sizeof(Fog_Bloom_fragment_gl);
mem[FragmentShaderId::GaussianBlur].mem = GaussianBlur_fragment_gl;
mem[FragmentShaderId::GaussianBlur].size = sizeof(GaussianBlur_fragment_gl);
mem[FragmentShaderId::Generic].mem = Generic_fragment_gl;
mem[FragmentShaderId::Generic].size = sizeof(Generic_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTest].mem = Generic_AlphaTest_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTest].size = sizeof(Generic_AlphaTest_fragment_gl);
mem[FragmentShaderId::Generic_Bloom].mem = Generic_Bloom_fragment_gl;
mem[FragmentShaderId::Generic_Bloom].size = sizeof(Generic_Bloom_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloom].mem = Generic_AlphaTestBloom_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloom].size = sizeof(Generic_AlphaTestBloom_fragment_gl);
mem[FragmentShaderId::Generic_DynamicLights].mem = Generic_DynamicLights_fragment_gl;
mem[FragmentShaderId::Generic_DynamicLights].size = sizeof(Generic_DynamicLights_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestDynamicLights].mem = Generic_AlphaTestDynamicLights_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestDynamicLights].size = sizeof(Generic_AlphaTestDynamicLights_fragment_gl);
mem[FragmentShaderId::Generic_BloomDynamicLights].mem = Generic_BloomDynamicLights_fragment_gl;
mem[FragmentShaderId::Generic_BloomDynamicLights].size = sizeof(Generic_BloomDynamicLights_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLights].mem = Generic_AlphaTestBloomDynamicLights_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLights].size = sizeof(Generic_AlphaTestBloomDynamicLights_fragment_gl);
mem[FragmentShaderId::Generic_SoftSprite].mem = Generic_SoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_SoftSprite].size = sizeof(Generic_SoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestSoftSprite].mem = Generic_AlphaTestSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestSoftSprite].size = sizeof(Generic_AlphaTestSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_BloomSoftSprite].mem = Generic_BloomSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_BloomSoftSprite].size = sizeof(Generic_BloomSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSprite].mem = Generic_AlphaTestBloomSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSprite].size = sizeof(Generic_AlphaTestBloomSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_DynamicLightsSoftSprite].mem = Generic_DynamicLightsSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_DynamicLightsSoftSprite].size = sizeof(Generic_DynamicLightsSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSprite].mem = Generic_AlphaTestDynamicLightsSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSprite].size = sizeof(Generic_AlphaTestDynamicLightsSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSprite].mem = Generic_BloomDynamicLightsSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSprite].size = sizeof(Generic_BloomDynamicLightsSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSprite].mem = Generic_AlphaTestBloomDynamicLightsSoftSprite_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSprite].size = sizeof(Generic_AlphaTestBloomDynamicLightsSoftSprite_fragment_gl);
mem[FragmentShaderId::Generic_SunLight].mem = Generic_SunLight_fragment_gl;
mem[FragmentShaderId::Generic_SunLight].size = sizeof(Generic_SunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestSunLight].mem = Generic_AlphaTestSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestSunLight].size = sizeof(Generic_AlphaTestSunLight_fragment_gl);
mem[FragmentShaderId::Generic_BloomSunLight].mem = Generic_BloomSunLight_fragment_gl;
mem[FragmentShaderId::Generic_BloomSunLight].size = sizeof(Generic_BloomSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomSunLight].mem = Generic_AlphaTestBloomSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomSunLight].size = sizeof(Generic_AlphaTestBloomSunLight_fragment_gl);
mem[FragmentShaderId::Generic_DynamicLightsSunLight].mem = Generic_DynamicLightsSunLight_fragment_gl;
mem[FragmentShaderId::Generic_DynamicLightsSunLight].size = sizeof(Generic_DynamicLightsSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSunLight].mem = Generic_AlphaTestDynamicLightsSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSunLight].size = sizeof(Generic_AlphaTestDynamicLightsSunLight_fragment_gl);
mem[FragmentShaderId::Generic_BloomDynamicLightsSunLight].mem = Generic_BloomDynamicLightsSunLight_fragment_gl;
mem[FragmentShaderId::Generic_BloomDynamicLightsSunLight].size = sizeof(Generic_BloomDynamicLightsSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSunLight].mem = Generic_AlphaTestBloomDynamicLightsSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSunLight].size = sizeof(Generic_AlphaTestBloomDynamicLightsSunLight_fragment_gl);
mem[FragmentShaderId::Generic_SoftSpriteSunLight].mem = Generic_SoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_SoftSpriteSunLight].size = sizeof(Generic_SoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestSoftSpriteSunLight].mem = Generic_AlphaTestSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestSoftSpriteSunLight].size = sizeof(Generic_AlphaTestSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_BloomSoftSpriteSunLight].mem = Generic_BloomSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_BloomSoftSpriteSunLight].size = sizeof(Generic_BloomSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSpriteSunLight].mem = Generic_AlphaTestBloomSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSpriteSunLight].size = sizeof(Generic_AlphaTestBloomSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_DynamicLightsSoftSpriteSunLight].mem = Generic_DynamicLightsSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_DynamicLightsSoftSpriteSunLight].size = sizeof(Generic_DynamicLightsSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSpriteSunLight].mem = Generic_AlphaTestDynamicLightsSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_AlphaTestDynamicLightsSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSpriteSunLight].mem = Generic_BloomDynamicLightsSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_BloomDynamicLightsSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight].mem = Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight_fragment_gl;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight_fragment_gl);
mem[FragmentShaderId::SMAABlendingWeightCalculation].mem = SMAABlendingWeightCalculation_fragment_gl;
mem[FragmentShaderId::SMAABlendingWeightCalculation].size = sizeof(SMAABlendingWeightCalculation_fragment_gl);
mem[FragmentShaderId::SMAAEdgeDetection].mem = SMAAEdgeDetection_fragment_gl;
mem[FragmentShaderId::SMAAEdgeDetection].size = sizeof(SMAAEdgeDetection_fragment_gl);
mem[FragmentShaderId::SMAANeighborhoodBlending].mem = SMAANeighborhoodBlending_fragment_gl;
mem[FragmentShaderId::SMAANeighborhoodBlending].size = sizeof(SMAANeighborhoodBlending_fragment_gl);
mem[FragmentShaderId::Texture].mem = Texture_fragment_gl;
mem[FragmentShaderId::Texture].size = sizeof(Texture_fragment_gl);
mem[FragmentShaderId::TextureColor].mem = TextureColor_fragment_gl;
mem[FragmentShaderId::TextureColor].size = sizeof(TextureColor_fragment_gl);
mem[FragmentShaderId::TextureDebug].mem = TextureDebug_fragment_gl;
mem[FragmentShaderId::TextureDebug].size = sizeof(TextureDebug_fragment_gl);
mem[FragmentShaderId::TextureVariation].mem = TextureVariation_fragment_gl;
mem[FragmentShaderId::TextureVariation].size = sizeof(TextureVariation_fragment_gl);
mem[FragmentShaderId::TextureVariation_Bloom].mem = TextureVariation_Bloom_fragment_gl;
mem[FragmentShaderId::TextureVariation_Bloom].size = sizeof(TextureVariation_Bloom_fragment_gl);
mem[FragmentShaderId::TextureVariation_SunLight].mem = TextureVariation_SunLight_fragment_gl;
mem[FragmentShaderId::TextureVariation_SunLight].size = sizeof(TextureVariation_SunLight_fragment_gl);
mem[FragmentShaderId::TextureVariation_BloomSunLight].mem = TextureVariation_BloomSunLight_fragment_gl;
mem[FragmentShaderId::TextureVariation_BloomSunLight].size = sizeof(TextureVariation_BloomSunLight_fragment_gl);
return mem;
}
static std::array<ShaderSourceMem, VertexShaderId::Num> GetVertexShaderSourceMap_gl()
{
std::array<ShaderSourceMem, VertexShaderId::Num> mem;
mem[VertexShaderId::Color].mem = Color_vertex_gl;
mem[VertexShaderId::Color].size = sizeof(Color_vertex_gl);
mem[VertexShaderId::Depth].mem = Depth_vertex_gl;
mem[VertexShaderId::Depth].size = sizeof(Depth_vertex_gl);
mem[VertexShaderId::Depth_AlphaTest].mem = Depth_AlphaTest_vertex_gl;
mem[VertexShaderId::Depth_AlphaTest].size = sizeof(Depth_AlphaTest_vertex_gl);
mem[VertexShaderId::Fog].mem = Fog_vertex_gl;
mem[VertexShaderId::Fog].size = sizeof(Fog_vertex_gl);
mem[VertexShaderId::Generic].mem = Generic_vertex_gl;
mem[VertexShaderId::Generic].size = sizeof(Generic_vertex_gl);
mem[VertexShaderId::Generic_SunLight].mem = Generic_SunLight_vertex_gl;
mem[VertexShaderId::Generic_SunLight].size = sizeof(Generic_SunLight_vertex_gl);
mem[VertexShaderId::SMAABlendingWeightCalculation].mem = SMAABlendingWeightCalculation_vertex_gl;
mem[VertexShaderId::SMAABlendingWeightCalculation].size = sizeof(SMAABlendingWeightCalculation_vertex_gl);
mem[VertexShaderId::SMAAEdgeDetection].mem = SMAAEdgeDetection_vertex_gl;
mem[VertexShaderId::SMAAEdgeDetection].size = sizeof(SMAAEdgeDetection_vertex_gl);
mem[VertexShaderId::SMAANeighborhoodBlending].mem = SMAANeighborhoodBlending_vertex_gl;
mem[VertexShaderId::SMAANeighborhoodBlending].size = sizeof(SMAANeighborhoodBlending_vertex_gl);
mem[VertexShaderId::Texture].mem = Texture_vertex_gl;
mem[VertexShaderId::Texture].size = sizeof(Texture_vertex_gl);
return mem;
}
static std::array<ShaderSourceMem, FragmentShaderId::Num> GetFragmentShaderSourceMap_d3d11()
{
std::array<ShaderSourceMem, FragmentShaderId::Num> mem;
mem[FragmentShaderId::Bloom].mem = Bloom_fragment_d3d11;
mem[FragmentShaderId::Bloom].size = sizeof(Bloom_fragment_d3d11);
mem[FragmentShaderId::Color].mem = Color_fragment_d3d11;
mem[FragmentShaderId::Color].size = sizeof(Color_fragment_d3d11);
mem[FragmentShaderId::Depth].mem = Depth_fragment_d3d11;
mem[FragmentShaderId::Depth].size = sizeof(Depth_fragment_d3d11);
mem[FragmentShaderId::Depth_AlphaTest].mem = Depth_AlphaTest_fragment_d3d11;
mem[FragmentShaderId::Depth_AlphaTest].size = sizeof(Depth_AlphaTest_fragment_d3d11);
mem[FragmentShaderId::Fog].mem = Fog_fragment_d3d11;
mem[FragmentShaderId::Fog].size = sizeof(Fog_fragment_d3d11);
mem[FragmentShaderId::Fog_Bloom].mem = Fog_Bloom_fragment_d3d11;
mem[FragmentShaderId::Fog_Bloom].size = sizeof(Fog_Bloom_fragment_d3d11);
mem[FragmentShaderId::GaussianBlur].mem = GaussianBlur_fragment_d3d11;
mem[FragmentShaderId::GaussianBlur].size = sizeof(GaussianBlur_fragment_d3d11);
mem[FragmentShaderId::Generic].mem = Generic_fragment_d3d11;
mem[FragmentShaderId::Generic].size = sizeof(Generic_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTest].mem = Generic_AlphaTest_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTest].size = sizeof(Generic_AlphaTest_fragment_d3d11);
mem[FragmentShaderId::Generic_Bloom].mem = Generic_Bloom_fragment_d3d11;
mem[FragmentShaderId::Generic_Bloom].size = sizeof(Generic_Bloom_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloom].mem = Generic_AlphaTestBloom_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloom].size = sizeof(Generic_AlphaTestBloom_fragment_d3d11);
mem[FragmentShaderId::Generic_DynamicLights].mem = Generic_DynamicLights_fragment_d3d11;
mem[FragmentShaderId::Generic_DynamicLights].size = sizeof(Generic_DynamicLights_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestDynamicLights].mem = Generic_AlphaTestDynamicLights_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestDynamicLights].size = sizeof(Generic_AlphaTestDynamicLights_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomDynamicLights].mem = Generic_BloomDynamicLights_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomDynamicLights].size = sizeof(Generic_BloomDynamicLights_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLights].mem = Generic_AlphaTestBloomDynamicLights_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLights].size = sizeof(Generic_AlphaTestBloomDynamicLights_fragment_d3d11);
mem[FragmentShaderId::Generic_SoftSprite].mem = Generic_SoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_SoftSprite].size = sizeof(Generic_SoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestSoftSprite].mem = Generic_AlphaTestSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestSoftSprite].size = sizeof(Generic_AlphaTestSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomSoftSprite].mem = Generic_BloomSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomSoftSprite].size = sizeof(Generic_BloomSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSprite].mem = Generic_AlphaTestBloomSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSprite].size = sizeof(Generic_AlphaTestBloomSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_DynamicLightsSoftSprite].mem = Generic_DynamicLightsSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_DynamicLightsSoftSprite].size = sizeof(Generic_DynamicLightsSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSprite].mem = Generic_AlphaTestDynamicLightsSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSprite].size = sizeof(Generic_AlphaTestDynamicLightsSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSprite].mem = Generic_BloomDynamicLightsSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSprite].size = sizeof(Generic_BloomDynamicLightsSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSprite].mem = Generic_AlphaTestBloomDynamicLightsSoftSprite_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSprite].size = sizeof(Generic_AlphaTestBloomDynamicLightsSoftSprite_fragment_d3d11);
mem[FragmentShaderId::Generic_SunLight].mem = Generic_SunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_SunLight].size = sizeof(Generic_SunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestSunLight].mem = Generic_AlphaTestSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestSunLight].size = sizeof(Generic_AlphaTestSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomSunLight].mem = Generic_BloomSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomSunLight].size = sizeof(Generic_BloomSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomSunLight].mem = Generic_AlphaTestBloomSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomSunLight].size = sizeof(Generic_AlphaTestBloomSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_DynamicLightsSunLight].mem = Generic_DynamicLightsSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_DynamicLightsSunLight].size = sizeof(Generic_DynamicLightsSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSunLight].mem = Generic_AlphaTestDynamicLightsSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSunLight].size = sizeof(Generic_AlphaTestDynamicLightsSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomDynamicLightsSunLight].mem = Generic_BloomDynamicLightsSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomDynamicLightsSunLight].size = sizeof(Generic_BloomDynamicLightsSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSunLight].mem = Generic_AlphaTestBloomDynamicLightsSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSunLight].size = sizeof(Generic_AlphaTestBloomDynamicLightsSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_SoftSpriteSunLight].mem = Generic_SoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_SoftSpriteSunLight].size = sizeof(Generic_SoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestSoftSpriteSunLight].mem = Generic_AlphaTestSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestSoftSpriteSunLight].size = sizeof(Generic_AlphaTestSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomSoftSpriteSunLight].mem = Generic_BloomSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomSoftSpriteSunLight].size = sizeof(Generic_BloomSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSpriteSunLight].mem = Generic_AlphaTestBloomSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSpriteSunLight].size = sizeof(Generic_AlphaTestBloomSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_DynamicLightsSoftSpriteSunLight].mem = Generic_DynamicLightsSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_DynamicLightsSoftSpriteSunLight].size = sizeof(Generic_DynamicLightsSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSpriteSunLight].mem = Generic_AlphaTestDynamicLightsSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_AlphaTestDynamicLightsSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSpriteSunLight].mem = Generic_BloomDynamicLightsSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_BloomDynamicLightsSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight].mem = Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight_fragment_d3d11;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight_fragment_d3d11);
mem[FragmentShaderId::SMAABlendingWeightCalculation].mem = SMAABlendingWeightCalculation_fragment_d3d11;
mem[FragmentShaderId::SMAABlendingWeightCalculation].size = sizeof(SMAABlendingWeightCalculation_fragment_d3d11);
mem[FragmentShaderId::SMAAEdgeDetection].mem = SMAAEdgeDetection_fragment_d3d11;
mem[FragmentShaderId::SMAAEdgeDetection].size = sizeof(SMAAEdgeDetection_fragment_d3d11);
mem[FragmentShaderId::SMAANeighborhoodBlending].mem = SMAANeighborhoodBlending_fragment_d3d11;
mem[FragmentShaderId::SMAANeighborhoodBlending].size = sizeof(SMAANeighborhoodBlending_fragment_d3d11);
mem[FragmentShaderId::Texture].mem = Texture_fragment_d3d11;
mem[FragmentShaderId::Texture].size = sizeof(Texture_fragment_d3d11);
mem[FragmentShaderId::TextureColor].mem = TextureColor_fragment_d3d11;
mem[FragmentShaderId::TextureColor].size = sizeof(TextureColor_fragment_d3d11);
mem[FragmentShaderId::TextureDebug].mem = TextureDebug_fragment_d3d11;
mem[FragmentShaderId::TextureDebug].size = sizeof(TextureDebug_fragment_d3d11);
mem[FragmentShaderId::TextureVariation].mem = TextureVariation_fragment_d3d11;
mem[FragmentShaderId::TextureVariation].size = sizeof(TextureVariation_fragment_d3d11);
mem[FragmentShaderId::TextureVariation_Bloom].mem = TextureVariation_Bloom_fragment_d3d11;
mem[FragmentShaderId::TextureVariation_Bloom].size = sizeof(TextureVariation_Bloom_fragment_d3d11);
mem[FragmentShaderId::TextureVariation_SunLight].mem = TextureVariation_SunLight_fragment_d3d11;
mem[FragmentShaderId::TextureVariation_SunLight].size = sizeof(TextureVariation_SunLight_fragment_d3d11);
mem[FragmentShaderId::TextureVariation_BloomSunLight].mem = TextureVariation_BloomSunLight_fragment_d3d11;
mem[FragmentShaderId::TextureVariation_BloomSunLight].size = sizeof(TextureVariation_BloomSunLight_fragment_d3d11);
return mem;
}
static std::array<ShaderSourceMem, VertexShaderId::Num> GetVertexShaderSourceMap_d3d11()
{
std::array<ShaderSourceMem, VertexShaderId::Num> mem;
mem[VertexShaderId::Color].mem = Color_vertex_d3d11;
mem[VertexShaderId::Color].size = sizeof(Color_vertex_d3d11);
mem[VertexShaderId::Depth].mem = Depth_vertex_d3d11;
mem[VertexShaderId::Depth].size = sizeof(Depth_vertex_d3d11);
mem[VertexShaderId::Depth_AlphaTest].mem = Depth_AlphaTest_vertex_d3d11;
mem[VertexShaderId::Depth_AlphaTest].size = sizeof(Depth_AlphaTest_vertex_d3d11);
mem[VertexShaderId::Fog].mem = Fog_vertex_d3d11;
mem[VertexShaderId::Fog].size = sizeof(Fog_vertex_d3d11);
mem[VertexShaderId::Generic].mem = Generic_vertex_d3d11;
mem[VertexShaderId::Generic].size = sizeof(Generic_vertex_d3d11);
mem[VertexShaderId::Generic_SunLight].mem = Generic_SunLight_vertex_d3d11;
mem[VertexShaderId::Generic_SunLight].size = sizeof(Generic_SunLight_vertex_d3d11);
mem[VertexShaderId::SMAABlendingWeightCalculation].mem = SMAABlendingWeightCalculation_vertex_d3d11;
mem[VertexShaderId::SMAABlendingWeightCalculation].size = sizeof(SMAABlendingWeightCalculation_vertex_d3d11);
mem[VertexShaderId::SMAAEdgeDetection].mem = SMAAEdgeDetection_vertex_d3d11;
mem[VertexShaderId::SMAAEdgeDetection].size = sizeof(SMAAEdgeDetection_vertex_d3d11);
mem[VertexShaderId::SMAANeighborhoodBlending].mem = SMAANeighborhoodBlending_vertex_d3d11;
mem[VertexShaderId::SMAANeighborhoodBlending].size = sizeof(SMAANeighborhoodBlending_vertex_d3d11);
mem[VertexShaderId::Texture].mem = Texture_vertex_d3d11;
mem[VertexShaderId::Texture].size = sizeof(Texture_vertex_d3d11);
return mem;
}
static std::array<ShaderSourceMem, FragmentShaderId::Num> GetFragmentShaderSourceMap_vk()
{
std::array<ShaderSourceMem, FragmentShaderId::Num> mem;
mem[FragmentShaderId::Bloom].mem = Bloom_fragment_vk;
mem[FragmentShaderId::Bloom].size = sizeof(Bloom_fragment_vk);
mem[FragmentShaderId::Color].mem = Color_fragment_vk;
mem[FragmentShaderId::Color].size = sizeof(Color_fragment_vk);
mem[FragmentShaderId::Depth].mem = Depth_fragment_vk;
mem[FragmentShaderId::Depth].size = sizeof(Depth_fragment_vk);
mem[FragmentShaderId::Depth_AlphaTest].mem = Depth_AlphaTest_fragment_vk;
mem[FragmentShaderId::Depth_AlphaTest].size = sizeof(Depth_AlphaTest_fragment_vk);
mem[FragmentShaderId::Fog].mem = Fog_fragment_vk;
mem[FragmentShaderId::Fog].size = sizeof(Fog_fragment_vk);
mem[FragmentShaderId::Fog_Bloom].mem = Fog_Bloom_fragment_vk;
mem[FragmentShaderId::Fog_Bloom].size = sizeof(Fog_Bloom_fragment_vk);
mem[FragmentShaderId::GaussianBlur].mem = GaussianBlur_fragment_vk;
mem[FragmentShaderId::GaussianBlur].size = sizeof(GaussianBlur_fragment_vk);
mem[FragmentShaderId::Generic].mem = Generic_fragment_vk;
mem[FragmentShaderId::Generic].size = sizeof(Generic_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTest].mem = Generic_AlphaTest_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTest].size = sizeof(Generic_AlphaTest_fragment_vk);
mem[FragmentShaderId::Generic_Bloom].mem = Generic_Bloom_fragment_vk;
mem[FragmentShaderId::Generic_Bloom].size = sizeof(Generic_Bloom_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloom].mem = Generic_AlphaTestBloom_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloom].size = sizeof(Generic_AlphaTestBloom_fragment_vk);
mem[FragmentShaderId::Generic_DynamicLights].mem = Generic_DynamicLights_fragment_vk;
mem[FragmentShaderId::Generic_DynamicLights].size = sizeof(Generic_DynamicLights_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestDynamicLights].mem = Generic_AlphaTestDynamicLights_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestDynamicLights].size = sizeof(Generic_AlphaTestDynamicLights_fragment_vk);
mem[FragmentShaderId::Generic_BloomDynamicLights].mem = Generic_BloomDynamicLights_fragment_vk;
mem[FragmentShaderId::Generic_BloomDynamicLights].size = sizeof(Generic_BloomDynamicLights_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLights].mem = Generic_AlphaTestBloomDynamicLights_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLights].size = sizeof(Generic_AlphaTestBloomDynamicLights_fragment_vk);
mem[FragmentShaderId::Generic_SoftSprite].mem = Generic_SoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_SoftSprite].size = sizeof(Generic_SoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestSoftSprite].mem = Generic_AlphaTestSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestSoftSprite].size = sizeof(Generic_AlphaTestSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_BloomSoftSprite].mem = Generic_BloomSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_BloomSoftSprite].size = sizeof(Generic_BloomSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSprite].mem = Generic_AlphaTestBloomSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSprite].size = sizeof(Generic_AlphaTestBloomSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_DynamicLightsSoftSprite].mem = Generic_DynamicLightsSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_DynamicLightsSoftSprite].size = sizeof(Generic_DynamicLightsSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSprite].mem = Generic_AlphaTestDynamicLightsSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSprite].size = sizeof(Generic_AlphaTestDynamicLightsSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSprite].mem = Generic_BloomDynamicLightsSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSprite].size = sizeof(Generic_BloomDynamicLightsSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSprite].mem = Generic_AlphaTestBloomDynamicLightsSoftSprite_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSprite].size = sizeof(Generic_AlphaTestBloomDynamicLightsSoftSprite_fragment_vk);
mem[FragmentShaderId::Generic_SunLight].mem = Generic_SunLight_fragment_vk;
mem[FragmentShaderId::Generic_SunLight].size = sizeof(Generic_SunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestSunLight].mem = Generic_AlphaTestSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestSunLight].size = sizeof(Generic_AlphaTestSunLight_fragment_vk);
mem[FragmentShaderId::Generic_BloomSunLight].mem = Generic_BloomSunLight_fragment_vk;
mem[FragmentShaderId::Generic_BloomSunLight].size = sizeof(Generic_BloomSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomSunLight].mem = Generic_AlphaTestBloomSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomSunLight].size = sizeof(Generic_AlphaTestBloomSunLight_fragment_vk);
mem[FragmentShaderId::Generic_DynamicLightsSunLight].mem = Generic_DynamicLightsSunLight_fragment_vk;
mem[FragmentShaderId::Generic_DynamicLightsSunLight].size = sizeof(Generic_DynamicLightsSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSunLight].mem = Generic_AlphaTestDynamicLightsSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSunLight].size = sizeof(Generic_AlphaTestDynamicLightsSunLight_fragment_vk);
mem[FragmentShaderId::Generic_BloomDynamicLightsSunLight].mem = Generic_BloomDynamicLightsSunLight_fragment_vk;
mem[FragmentShaderId::Generic_BloomDynamicLightsSunLight].size = sizeof(Generic_BloomDynamicLightsSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSunLight].mem = Generic_AlphaTestBloomDynamicLightsSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSunLight].size = sizeof(Generic_AlphaTestBloomDynamicLightsSunLight_fragment_vk);
mem[FragmentShaderId::Generic_SoftSpriteSunLight].mem = Generic_SoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_SoftSpriteSunLight].size = sizeof(Generic_SoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestSoftSpriteSunLight].mem = Generic_AlphaTestSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestSoftSpriteSunLight].size = sizeof(Generic_AlphaTestSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_BloomSoftSpriteSunLight].mem = Generic_BloomSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_BloomSoftSpriteSunLight].size = sizeof(Generic_BloomSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSpriteSunLight].mem = Generic_AlphaTestBloomSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomSoftSpriteSunLight].size = sizeof(Generic_AlphaTestBloomSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_DynamicLightsSoftSpriteSunLight].mem = Generic_DynamicLightsSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_DynamicLightsSoftSpriteSunLight].size = sizeof(Generic_DynamicLightsSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSpriteSunLight].mem = Generic_AlphaTestDynamicLightsSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_AlphaTestDynamicLightsSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSpriteSunLight].mem = Generic_BloomDynamicLightsSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_BloomDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_BloomDynamicLightsSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight].mem = Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight_fragment_vk;
mem[FragmentShaderId::Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight].size = sizeof(Generic_AlphaTestBloomDynamicLightsSoftSpriteSunLight_fragment_vk);
mem[FragmentShaderId::SMAABlendingWeightCalculation].mem = SMAABlendingWeightCalculation_fragment_vk;
mem[FragmentShaderId::SMAABlendingWeightCalculation].size = sizeof(SMAABlendingWeightCalculation_fragment_vk);
mem[FragmentShaderId::SMAAEdgeDetection].mem = SMAAEdgeDetection_fragment_vk;
mem[FragmentShaderId::SMAAEdgeDetection].size = sizeof(SMAAEdgeDetection_fragment_vk);
mem[FragmentShaderId::SMAANeighborhoodBlending].mem = SMAANeighborhoodBlending_fragment_vk;
mem[FragmentShaderId::SMAANeighborhoodBlending].size = sizeof(SMAANeighborhoodBlending_fragment_vk);
mem[FragmentShaderId::Texture].mem = Texture_fragment_vk;
mem[FragmentShaderId::Texture].size = sizeof(Texture_fragment_vk);
mem[FragmentShaderId::TextureColor].mem = TextureColor_fragment_vk;
mem[FragmentShaderId::TextureColor].size = sizeof(TextureColor_fragment_vk);
mem[FragmentShaderId::TextureDebug].mem = TextureDebug_fragment_vk;
mem[FragmentShaderId::TextureDebug].size = sizeof(TextureDebug_fragment_vk);
mem[FragmentShaderId::TextureVariation].mem = TextureVariation_fragment_vk;
mem[FragmentShaderId::TextureVariation].size = sizeof(TextureVariation_fragment_vk);
mem[FragmentShaderId::TextureVariation_Bloom].mem = TextureVariation_Bloom_fragment_vk;
mem[FragmentShaderId::TextureVariation_Bloom].size = sizeof(TextureVariation_Bloom_fragment_vk);
mem[FragmentShaderId::TextureVariation_SunLight].mem = TextureVariation_SunLight_fragment_vk;
mem[FragmentShaderId::TextureVariation_SunLight].size = sizeof(TextureVariation_SunLight_fragment_vk);
mem[FragmentShaderId::TextureVariation_BloomSunLight].mem = TextureVariation_BloomSunLight_fragment_vk;
mem[FragmentShaderId::TextureVariation_BloomSunLight].size = sizeof(TextureVariation_BloomSunLight_fragment_vk);
return mem;
}
static std::array<ShaderSourceMem, VertexShaderId::Num> GetVertexShaderSourceMap_vk()
{
std::array<ShaderSourceMem, VertexShaderId::Num> mem;
mem[VertexShaderId::Color].mem = Color_vertex_vk;
mem[VertexShaderId::Color].size = sizeof(Color_vertex_vk);
mem[VertexShaderId::Depth].mem = Depth_vertex_vk;
mem[VertexShaderId::Depth].size = sizeof(Depth_vertex_vk);
mem[VertexShaderId::Depth_AlphaTest].mem = Depth_AlphaTest_vertex_vk;
mem[VertexShaderId::Depth_AlphaTest].size = sizeof(Depth_AlphaTest_vertex_vk);
mem[VertexShaderId::Fog].mem = Fog_vertex_vk;
mem[VertexShaderId::Fog].size = sizeof(Fog_vertex_vk);
mem[VertexShaderId::Generic].mem = Generic_vertex_vk;
mem[VertexShaderId::Generic].size = sizeof(Generic_vertex_vk);
mem[VertexShaderId::Generic_SunLight].mem = Generic_SunLight_vertex_vk;
mem[VertexShaderId::Generic_SunLight].size = sizeof(Generic_SunLight_vertex_vk);
mem[VertexShaderId::SMAABlendingWeightCalculation].mem = SMAABlendingWeightCalculation_vertex_vk;
mem[VertexShaderId::SMAABlendingWeightCalculation].size = sizeof(SMAABlendingWeightCalculation_vertex_vk);
mem[VertexShaderId::SMAAEdgeDetection].mem = SMAAEdgeDetection_vertex_vk;
mem[VertexShaderId::SMAAEdgeDetection].size = sizeof(SMAAEdgeDetection_vertex_vk);
mem[VertexShaderId::SMAANeighborhoodBlending].mem = SMAANeighborhoodBlending_vertex_vk;
mem[VertexShaderId::SMAANeighborhoodBlending].size = sizeof(SMAANeighborhoodBlending_vertex_vk);
mem[VertexShaderId::Texture].mem = Texture_vertex_vk;
mem[VertexShaderId::Texture].size = sizeof(Texture_vertex_vk);
return mem;
}