mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 13:14:04 +00:00
Rewrite find_param_from_semantic
This commit is contained in:
parent
6e04afad4d
commit
4a41dbcda7
@ -54,35 +54,40 @@ static INLINE bool validate_param_name(const char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static INLINE CGparameter find_param_from_semantic(
|
static INLINE CGparameter find_param_from_semantic(
|
||||||
CGparameter param, const std::string &sem)
|
CGparameter param, const char *sem)
|
||||||
{
|
{
|
||||||
while (param)
|
while (param)
|
||||||
{
|
{
|
||||||
if (cgGetParameterType(param) == CG_STRUCT)
|
CGparameter ret;
|
||||||
{
|
CGtype type = cgGetParameterType(param);
|
||||||
CGparameter ret = find_param_from_semantic(
|
|
||||||
cgGetFirstStructParameter(param), sem);
|
|
||||||
|
|
||||||
if (ret)
|
switch (type)
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (cgGetParameterSemantic(param) &&
|
case CG_STRUCT:
|
||||||
sem == cgGetParameterSemantic(param) &&
|
ret = find_param_from_semantic(
|
||||||
cgGetParameterDirection(param) == CG_IN &&
|
cgGetFirstStructParameter(param), sem);
|
||||||
cgGetParameterVariability(param) == CG_VARYING &&
|
|
||||||
validate_param_name(cgGetParameterName(param)))
|
if (ret)
|
||||||
return param;
|
return ret;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (cgGetParameterSemantic(param) &&
|
||||||
|
sem == cgGetParameterSemantic(param) &&
|
||||||
|
cgGetParameterDirection(param) == CG_IN &&
|
||||||
|
cgGetParameterVariability(param) == CG_VARYING &&
|
||||||
|
validate_param_name(cgGetParameterName(param)))
|
||||||
|
return param;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
param = cgGetNextParameter(param);
|
param = cgGetNextParameter(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE CGparameter find_param_from_semantic(CGprogram prog,
|
static INLINE CGparameter find_param_from_semantic(
|
||||||
const std::string &sem)
|
CGprogram prog, const char *sem)
|
||||||
{
|
{
|
||||||
CGparameter param = cgGetFirstParameter(prog, CG_PROGRAM);
|
CGparameter param = cgGetFirstParameter(prog, CG_PROGRAM);
|
||||||
return find_param_from_semantic(param, sem);
|
return find_param_from_semantic(param, sem);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user