mirror of
https://github.com/libretro/RetroArch
synced 2025-04-11 00:44:20 +00:00
De-opaque shader_parse.
This commit is contained in:
parent
270bb930d6
commit
76292f873a
11
driver.h
11
driver.h
@ -27,6 +27,7 @@
|
|||||||
#include "gfx/scaler/scaler.h"
|
#include "gfx/scaler/scaler.h"
|
||||||
#include "gfx/image/image.h"
|
#include "gfx/image/image.h"
|
||||||
#include "gfx/filters/softfilter.h"
|
#include "gfx/filters/softfilter.h"
|
||||||
|
#include "gfx/shader_parse.h"
|
||||||
#include "audio/dsp_filter.h"
|
#include "audio/dsp_filter.h"
|
||||||
#include "input/overlay.h"
|
#include "input/overlay.h"
|
||||||
#include "frontend/frontend_context.h"
|
#include "frontend/frontend_context.h"
|
||||||
@ -167,14 +168,6 @@ struct platform_bind
|
|||||||
char desc[64];
|
char desc[64];
|
||||||
};
|
};
|
||||||
|
|
||||||
enum rarch_shader_type
|
|
||||||
{
|
|
||||||
RARCH_SHADER_CG,
|
|
||||||
RARCH_SHADER_HLSL,
|
|
||||||
RARCH_SHADER_GLSL,
|
|
||||||
RARCH_SHADER_NONE
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(_XBOX360)
|
#if defined(_XBOX360)
|
||||||
#define DEFAULT_SHADER_TYPE RARCH_SHADER_HLSL
|
#define DEFAULT_SHADER_TYPE RARCH_SHADER_HLSL
|
||||||
#elif defined(__PSL1GHT__)
|
#elif defined(__PSL1GHT__)
|
||||||
@ -538,7 +531,7 @@ typedef struct
|
|||||||
struct retro_system_info info;
|
struct retro_system_info info;
|
||||||
bool load_no_rom;
|
bool load_no_rom;
|
||||||
|
|
||||||
void *shader;
|
struct gfx_shader *shader;
|
||||||
void *parameter_shader; // Points to either shader or graphics driver current shader.
|
void *parameter_shader; // Points to either shader or graphics driver current shader.
|
||||||
unsigned current_pad;
|
unsigned current_pad;
|
||||||
|
|
||||||
|
@ -58,9 +58,8 @@ static enum gfx_wrap_type wrap_str_to_mode(const char *wrap_mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CGP
|
// CGP
|
||||||
static bool shader_parse_pass(config_file_t *conf, void *data, unsigned i)
|
static bool shader_parse_pass(config_file_t *conf, struct gfx_shader_pass *pass, unsigned i)
|
||||||
{
|
{
|
||||||
struct gfx_shader_pass *pass = (struct gfx_shader_pass*)data;
|
|
||||||
// Source
|
// Source
|
||||||
char shader_name[64];
|
char shader_name[64];
|
||||||
print_buf(shader_name, "shader%u", i);
|
print_buf(shader_name, "shader%u", i);
|
||||||
@ -228,12 +227,11 @@ static bool shader_parse_pass(config_file_t *conf, void *data, unsigned i)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool shader_parse_textures(config_file_t *conf, void *data)
|
static bool shader_parse_textures(config_file_t *conf, struct gfx_shader *shader)
|
||||||
{
|
{
|
||||||
const char *id;
|
const char *id;
|
||||||
char *save;
|
char *save;
|
||||||
char textures[1024];
|
char textures[1024];
|
||||||
struct gfx_shader *shader = (struct gfx_shader*)data;
|
|
||||||
|
|
||||||
if (!config_get_array(conf, "textures", textures, sizeof(textures)))
|
if (!config_get_array(conf, "textures", textures, sizeof(textures)))
|
||||||
return true;
|
return true;
|
||||||
@ -287,10 +285,9 @@ static struct gfx_shader_parameter *find_parameter(struct gfx_shader_parameter *
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gfx_shader_resolve_parameters(config_file_t *conf, void *data)
|
bool gfx_shader_resolve_parameters(config_file_t *conf, struct gfx_shader *shader)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
struct gfx_shader *shader = (struct gfx_shader*)data;
|
|
||||||
|
|
||||||
shader->num_parameters = 0;
|
shader->num_parameters = 0;
|
||||||
struct gfx_shader_parameter *param = &shader->parameters[shader->num_parameters];
|
struct gfx_shader_parameter *param = &shader->parameters[shader->num_parameters];
|
||||||
@ -453,13 +450,10 @@ static bool shader_parse_imports(config_file_t *conf, struct gfx_shader *shader)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gfx_shader_read_conf_cgp(config_file_t *conf, void *data)
|
bool gfx_shader_read_conf_cgp(config_file_t *conf, struct gfx_shader *shader)
|
||||||
{
|
{
|
||||||
unsigned shaders, i;
|
unsigned shaders, i;
|
||||||
struct gfx_shader *shader = (struct gfx_shader*)data;
|
|
||||||
|
|
||||||
memset(shader, 0, sizeof(*shader));
|
memset(shader, 0, sizeof(*shader));
|
||||||
|
|
||||||
shader->type = RARCH_SHADER_CG;
|
shader->type = RARCH_SHADER_CG;
|
||||||
|
|
||||||
shaders = 0;
|
shaders = 0;
|
||||||
@ -597,10 +591,9 @@ static void shader_write_variable(config_file_t *conf, const struct state_tracke
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfx_shader_write_conf_cgp(config_file_t *conf, void *data)
|
void gfx_shader_write_conf_cgp(config_file_t *conf, struct gfx_shader *shader)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
struct gfx_shader *shader = (struct gfx_shader*)data;
|
|
||||||
config_set_int(conf, "shaders", shader->passes);
|
config_set_int(conf, "shaders", shader->passes);
|
||||||
for (i = 0; i < shader->passes; i++)
|
for (i = 0; i < shader->passes; i++)
|
||||||
{
|
{
|
||||||
@ -721,11 +714,10 @@ enum rarch_shader_type gfx_shader_parse_type(const char *path, enum rarch_shader
|
|||||||
return fallback;
|
return fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfx_shader_resolve_relative(void *data, const char *ref_path)
|
void gfx_shader_resolve_relative(struct gfx_shader *shader, const char *ref_path)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
char tmp_path[PATH_MAX];
|
char tmp_path[PATH_MAX];
|
||||||
struct gfx_shader *shader = (struct gfx_shader*)data;
|
|
||||||
|
|
||||||
for (i = 0; i < shader->passes; i++)
|
for (i = 0; i < shader->passes; i++)
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,8 @@
|
|||||||
|
|
||||||
#include "../boolean.h"
|
#include "../boolean.h"
|
||||||
#include "state_tracker.h"
|
#include "state_tracker.h"
|
||||||
#include "../general.h"
|
#include "../conf/config_file.h"
|
||||||
|
#include "../miscellaneous.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -40,6 +41,14 @@ extern "C" {
|
|||||||
#define GFX_MAX_PARAMETERS 64
|
#define GFX_MAX_PARAMETERS 64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
enum rarch_shader_type
|
||||||
|
{
|
||||||
|
RARCH_SHADER_CG,
|
||||||
|
RARCH_SHADER_HLSL,
|
||||||
|
RARCH_SHADER_GLSL,
|
||||||
|
RARCH_SHADER_NONE
|
||||||
|
};
|
||||||
|
|
||||||
enum gfx_scale_type
|
enum gfx_scale_type
|
||||||
{
|
{
|
||||||
RARCH_SCALE_INPUT = 0,
|
RARCH_SCALE_INPUT = 0,
|
||||||
@ -141,11 +150,11 @@ struct gfx_shader
|
|||||||
char script_class[512];
|
char script_class[512];
|
||||||
};
|
};
|
||||||
|
|
||||||
bool gfx_shader_read_conf_cgp(config_file_t *conf, void *data);
|
bool gfx_shader_read_conf_cgp(config_file_t *conf, struct gfx_shader *shader);
|
||||||
void gfx_shader_write_conf_cgp(config_file_t *conf, void *data);
|
void gfx_shader_write_conf_cgp(config_file_t *conf, struct gfx_shader *shader);
|
||||||
|
|
||||||
void gfx_shader_resolve_relative(void *data, const char *ref_path);
|
void gfx_shader_resolve_relative(struct gfx_shader *shader, const char *ref_path);
|
||||||
bool gfx_shader_resolve_parameters(config_file_t *conf, void *data);
|
bool gfx_shader_resolve_parameters(config_file_t *conf, struct gfx_shader *shader);
|
||||||
|
|
||||||
enum rarch_shader_type gfx_shader_parse_type(const char *path, enum rarch_shader_type fallback);
|
enum rarch_shader_type gfx_shader_parse_type(const char *path, enum rarch_shader_type fallback);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user