| 260 | /* EffekManager */ |
| 261 | |
| 262 | static const char* findShaderFile(const char* name, const char* type) { |
| 263 | #define CHECK_SHADER(_SHADERNAME, _VS, _FS) \ |
| 264 | if (strcmp(name, _SHADERNAME) == 0) { \ |
| 265 | if (strcmp(type, "vs") == 0) { \ |
| 266 | return _VS; \ |
| 267 | } \ |
| 268 | assert(strcmp(type, "fs") == 0); \ |
| 269 | return _FS; \ |
| 270 | } |
| 271 | CHECK_SHADER("sprite_unlit", |
| 272 | "sprite_unlit_vs", |
| 273 | "model_unlit_ps"); |
| 274 | CHECK_SHADER("sprite_lit", |
| 275 | "sprite_lit_vs", |
| 276 | "model_lit_ps"); |
| 277 | CHECK_SHADER("sprite_distortion", |
| 278 | "sprite_distortion_vs", |
| 279 | "model_distortion_ps"); |
| 280 | CHECK_SHADER("sprite_adv_unlit", |
| 281 | "ad_sprite_unlit_vs", |
| 282 | "ad_model_unlit_ps"); |
| 283 | CHECK_SHADER("sprite_adv_lit", |
| 284 | "ad_sprite_lit_vs", |
| 285 | "ad_model_lit_ps"); |
| 286 | CHECK_SHADER("sprite_adv_distortion", |
| 287 | "ad_sprite_distortion_vs", |
| 288 | "ad_model_distortion_ps"); |
| 289 | |
| 290 | CHECK_SHADER("model_unlit", |
| 291 | "model_unlit_vs", |
| 292 | "model_unlit_ps"); |
| 293 | CHECK_SHADER("model_lit", |
| 294 | "model_lit_vs", |
| 295 | "model_lit_ps"); |
| 296 | CHECK_SHADER("model_distortion", |
| 297 | "model_distortion_vs", |
| 298 | "model_distortion_ps"); |
| 299 | CHECK_SHADER("model_adv_unlit", |
| 300 | "ad_model_unlit_vs", |
| 301 | "ad_model_unlit_ps"); |
| 302 | CHECK_SHADER("model_adv_lit", |
| 303 | "ad_model_lit_vs", |
| 304 | "ad_model_lit_ps"); |
| 305 | CHECK_SHADER("model_adv_distortion", |
| 306 | "ad_model_distortion_vs", |
| 307 | "ad_model_distortion_ps"); |
| 308 | |
| 309 | Issue("invalid shader name and type name"); |
| 310 | return nullptr; |
| 311 | } |
| 312 | |
| 313 | static bgfx_shader_handle_t shaderLoad(const char* mat, const char* name, const char* type, void* ud) { |
| 314 | AssertIf(mat, "Effekseer shader loading with user defined material \"{}\" is unsupported", mat); |