mirror of
https://github.com/libretro/RetroArch
synced 2025-02-15 00:40:06 +00:00
Use floating point values for uniforms from Python.
This commit is contained in:
parent
9647006a2b
commit
97f937ec6d
@ -304,7 +304,7 @@ void py_state_free(py_state_t *handle)
|
|||||||
Py_Finalize();
|
Py_Finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
int py_state_get(py_state_t *handle, const char *id,
|
float py_state_get(py_state_t *handle, const char *id,
|
||||||
unsigned frame_count)
|
unsigned frame_count)
|
||||||
{
|
{
|
||||||
PyObject *ret = PyObject_CallMethod(handle->inst, (char*)id, (char*)"I", frame_count);
|
PyObject *ret = PyObject_CallMethod(handle->inst, (char*)id, (char*)"I", frame_count);
|
||||||
@ -313,10 +313,10 @@ int py_state_get(py_state_t *handle, const char *id,
|
|||||||
if (!handle->warned_ret)
|
if (!handle->warned_ret)
|
||||||
SSNES_WARN("Didn't get return value from script! Bug?\n");
|
SSNES_WARN("Didn't get return value from script! Bug?\n");
|
||||||
handle->warned_ret = true;
|
handle->warned_ret = true;
|
||||||
return 0;
|
return 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
int retval = PyLong_AsLong(ret);
|
float retval = (float)PyFloat_AsDouble(ret);
|
||||||
Py_DECREF(ret);
|
Py_DECREF(ret);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ typedef struct py_state py_state_t;
|
|||||||
py_state_t *py_state_new(const char *program, bool is_file, const char *pyclass);
|
py_state_t *py_state_new(const char *program, bool is_file, const char *pyclass);
|
||||||
void py_state_free(py_state_t *handle);
|
void py_state_free(py_state_t *handle);
|
||||||
|
|
||||||
int py_state_get(py_state_t *handle,
|
float py_state_get(py_state_t *handle,
|
||||||
const char *id, unsigned frame_count);
|
const char *id, unsigned frame_count);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
#define pglLinkProgram glLinkProgram
|
#define pglLinkProgram glLinkProgram
|
||||||
#define pglGetUniformLocation glGetUniformLocation
|
#define pglGetUniformLocation glGetUniformLocation
|
||||||
#define pglUniform1i glUniform1i
|
#define pglUniform1i glUniform1i
|
||||||
|
#define pglUniform1f glUniform1f
|
||||||
#define pglUniform2fv glUniform2fv
|
#define pglUniform2fv glUniform2fv
|
||||||
#define pglUniform4fv glUniform4fv
|
#define pglUniform4fv glUniform4fv
|
||||||
#define pglGetShaderiv glGetShaderiv
|
#define pglGetShaderiv glGetShaderiv
|
||||||
@ -78,6 +79,7 @@ static PFNGLDETACHSHADERPROC pglDetachShader = NULL;
|
|||||||
static PFNGLLINKPROGRAMPROC pglLinkProgram = NULL;
|
static PFNGLLINKPROGRAMPROC pglLinkProgram = NULL;
|
||||||
static PFNGLGETUNIFORMLOCATIONPROC pglGetUniformLocation = NULL;
|
static PFNGLGETUNIFORMLOCATIONPROC pglGetUniformLocation = NULL;
|
||||||
static PFNGLUNIFORM1IPROC pglUniform1i = NULL;
|
static PFNGLUNIFORM1IPROC pglUniform1i = NULL;
|
||||||
|
static PFNGLUNIFORM1FPROC pglUniform1f = NULL;
|
||||||
static PFNGLUNIFORM2FVPROC pglUniform2fv = NULL;
|
static PFNGLUNIFORM2FVPROC pglUniform2fv = NULL;
|
||||||
static PFNGLUNIFORM4FVPROC pglUniform4fv = NULL;
|
static PFNGLUNIFORM4FVPROC pglUniform4fv = NULL;
|
||||||
static PFNGLGETSHADERIVPROC pglGetShaderiv = NULL;
|
static PFNGLGETSHADERIVPROC pglGetShaderiv = NULL;
|
||||||
@ -842,6 +844,7 @@ bool gl_glsl_init(const char *path)
|
|||||||
LOAD_GL_SYM(LinkProgram);
|
LOAD_GL_SYM(LinkProgram);
|
||||||
LOAD_GL_SYM(GetUniformLocation);
|
LOAD_GL_SYM(GetUniformLocation);
|
||||||
LOAD_GL_SYM(Uniform1i);
|
LOAD_GL_SYM(Uniform1i);
|
||||||
|
LOAD_GL_SYM(Uniform1f);
|
||||||
LOAD_GL_SYM(Uniform2fv);
|
LOAD_GL_SYM(Uniform2fv);
|
||||||
LOAD_GL_SYM(Uniform4fv);
|
LOAD_GL_SYM(Uniform4fv);
|
||||||
LOAD_GL_SYM(GetShaderiv);
|
LOAD_GL_SYM(GetShaderiv);
|
||||||
@ -862,7 +865,7 @@ bool gl_glsl_init(const char *path)
|
|||||||
bool shader_support = pglCreateProgram && pglUseProgram && pglCreateShader
|
bool shader_support = pglCreateProgram && pglUseProgram && pglCreateShader
|
||||||
&& pglDeleteShader && pglShaderSource && pglCompileShader && pglAttachShader
|
&& pglDeleteShader && pglShaderSource && pglCompileShader && pglAttachShader
|
||||||
&& pglDetachShader && pglLinkProgram && pglGetUniformLocation
|
&& pglDetachShader && pglLinkProgram && pglGetUniformLocation
|
||||||
&& pglUniform1i && pglUniform2fv && pglUniform4fv
|
&& pglUniform1i && pglUniform1f && pglUniform2fv && pglUniform4fv
|
||||||
&& pglGetShaderiv && pglGetShaderInfoLog && pglGetProgramiv && pglGetProgramInfoLog
|
&& pglGetShaderiv && pglGetShaderInfoLog && pglGetProgramiv && pglGetProgramInfoLog
|
||||||
&& pglDeleteProgram && pglGetAttachedShaders
|
&& pglDeleteProgram && pglGetAttachedShaders
|
||||||
&& pglGetAttribLocation && pglEnableVertexAttribArray
|
&& pglGetAttribLocation && pglEnableVertexAttribArray
|
||||||
@ -1148,7 +1151,7 @@ void gl_glsl_set_params(unsigned width, unsigned height,
|
|||||||
for (unsigned i = 0; i < cnt; i++)
|
for (unsigned i = 0; i < cnt; i++)
|
||||||
{
|
{
|
||||||
location = pglGetUniformLocation(gl_program[active_index], info[i].id);
|
location = pglGetUniformLocation(gl_program[active_index], info[i].id);
|
||||||
pglUniform1i(location, info[i].value);
|
pglUniform1f(location, info[i].value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ struct snes_tracker_info
|
|||||||
struct snes_tracker_uniform
|
struct snes_tracker_uniform
|
||||||
{
|
{
|
||||||
const char *id;
|
const char *id;
|
||||||
int value;
|
float value;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct snes_tracker snes_tracker_t;
|
typedef struct snes_tracker snes_tracker_t;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user