static bool load_plain(cg_shader_data_t *cg, const char *path) { if (!load_stock(cg)) return false; cg->shader = (struct video_shader*)calloc(1, sizeof(*cg->shader)); if (!cg->shader) return false; cg->shader->passes = 1; if (path) { RARCH_LOG("Loading Cg file: %s\n", path); strlcpy(cg->shader->pass[0].source.path, path, sizeof(cg->shader->pass[0].source.path)); if (!load_program(cg, 1, path, true)) return false; } else { RARCH_LOG("Loading stock Cg file.\n"); cg->prg[1] = cg->prg[0]; } video_shader_resolve_parameters(NULL, cg->shader); return true; }
static bool load_plain(const char *path) { if (!load_stock()) return false; cg_shader = (struct gfx_shader*)calloc(1, sizeof(*cg_shader)); if (!cg_shader) return false; cg_shader->passes = 1; if (path && path[0] != '\0') { RARCH_LOG("Loading Cg/HLSL file: %s\n", path); strlcpy(cg_shader->pass[0].source.cg, path, sizeof(cg_shader->pass[0].source.cg)); if (!load_program(1, path, true)) return false; } else { RARCH_LOG("Loading stock Cg/HLSL file.\n"); prg[1] = prg[0]; } return true; }
static bool load_plain(hlsl_shader_data_t *hlsl, void *data, const char *path) { if (!load_stock(hlsl, data)) return false; hlsl->cg_shader = (struct video_shader*)calloc(1, sizeof(*hlsl->cg_shader)); if (!hlsl->cg_shader) return false; hlsl->cg_shader->passes = 1; if (path && path[0] != '\0') { RARCH_LOG("Loading Cg/HLSL file: %s\n", path); strlcpy(hlsl->cg_shader->pass[0].source.path, path, sizeof(hlsl->cg_shader->pass[0].source.path)); if (!load_program(hlsl, data, 1, path, true)) return false; } else { RARCH_LOG("Loading stock Cg/HLSL file.\n"); hlsl->prg[1] = hlsl->prg[0]; } return true; }
static bool load_preset(const char *path) { unsigned i; if (!load_stock()) return false; RARCH_LOG("Loading Cg meta-shader: %s\n", path); config_file_t *conf = config_file_new(path); if (!conf) { RARCH_ERR("Failed to load preset.\n"); return false; } if (!cg_shader) cg_shader = (struct gfx_shader*)calloc(1, sizeof(*cg_shader)); if (!cg_shader) return false; if (!gfx_shader_read_conf_cgp(conf, cg_shader)) { RARCH_ERR("Failed to parse CGP file.\n"); config_file_free(conf); return false; } config_file_free(conf); gfx_shader_resolve_relative(cg_shader, path); if (cg_shader->passes > GFX_MAX_SHADERS - 3) { RARCH_WARN("Too many shaders ... Capping shader amount to %d.\n", GFX_MAX_SHADERS - 3); cg_shader->passes = GFX_MAX_SHADERS - 3; } for (i = 0; i < cg_shader->passes; i++) { if (!load_shader(i)) { RARCH_ERR("Failed to load shaders ...\n"); return false; } } if (!load_textures()) { RARCH_ERR("Failed to load lookup textures ...\n"); return false; } if (!load_imports()) { RARCH_ERR("Failed to load imports ...\n"); return false; } return true; }
static bool load_plain(const char *path) { #if 0 if (!load_stock()) return false; #endif RARCH_LOG("Loading HLSL file: %s\n", path); if (!load_program(0, path, true)) return false; return true; }
static bool load_preset(hlsl_shader_data_t *hlsl, void *data, const char *path) { if (!load_stock(hlsl, data)) return false; RARCH_LOG("Loading Cg meta-shader: %s\n", path); config_file_t *conf = config_file_new(path); if (!conf) { RARCH_ERR("Failed to load preset.\n"); return false; } if (!hlsl->cg_shader) hlsl->cg_shader = (struct video_shader*)calloc(1, sizeof(*hlsl->cg_shader)); if (!hlsl->cg_shader) { config_file_free(conf); return false; } if (!video_shader_read_conf_cgp(conf, hlsl->cg_shader)) { RARCH_ERR("Failed to parse CGP file.\n"); config_file_free(conf); return false; } config_file_free(conf); if (hlsl->cg_shader->passes > RARCH_HLSL_MAX_SHADERS - 3) { RARCH_WARN("Too many shaders ... Capping shader amount to %d.\n", RARCH_HLSL_MAX_SHADERS - 3); hlsl->cg_shader->passes = RARCH_HLSL_MAX_SHADERS - 3; } for (unsigned i = 0; i < hlsl->cg_shader->passes; i++) { if (!load_shader(hlsl, data, path, i)) { RARCH_ERR("Failed to load shaders ...\n"); return false; } } /* TODO - textures / imports */ return true; }
static bool load_preset(cg_shader_data_t *cg, const char *path) { unsigned i; config_file_t *conf = NULL; if (!load_stock(cg)) return false; RARCH_LOG("Loading Cg meta-shader: %s\n", path); conf = config_file_new(path); if (!conf) { RARCH_ERR("Failed to load preset.\n"); return false; } cg->shader = (struct video_shader*)calloc(1, sizeof(*cg->shader)); if (!cg->shader) { config_file_free(conf); return false; } if (!video_shader_read_conf_cgp(conf, cg->shader)) { RARCH_ERR("Failed to parse CGP file.\n"); config_file_free(conf); return false; } video_shader_resolve_relative(cg->shader, path); video_shader_resolve_parameters(conf, cg->shader); config_file_free(conf); if (cg->shader->passes > GFX_MAX_SHADERS - 3) { RARCH_WARN("Too many shaders ... Capping shader amount to %d.\n", GFX_MAX_SHADERS - 3); cg->shader->passes = GFX_MAX_SHADERS - 3; } for (i = 0; i < cg->shader->passes; i++) if (*cg->shader->pass[i].alias) snprintf(cg->cg_alias_define[i], sizeof(cg->cg_alias_define[i]), "-D%s_ALIAS", cg->shader->pass[i].alias); for (i = 0; i < cg->shader->passes; i++) { if (!load_shader(cg, i)) { RARCH_ERR("Failed to load shaders ...\n"); return false; } } if (!gl_load_luts(cg->shader, cg->lut_textures)) { RARCH_ERR("Failed to load lookup textures ...\n"); return false; } if (!gl_cg_load_imports(cg)) { RARCH_ERR("Failed to load imports ...\n"); return false; } return true; }