(D3D) Refactor find_semantic

This commit is contained in:
twinaphex 2015-04-05 04:04:19 +02:00
parent 32d80dc413
commit 58112a1409

View File

@ -58,36 +58,31 @@ static INLINE CGparameter find_param_from_semantic(
{
while (param)
{
CGparameter ret;
CGtype type = cgGetParameterType(param);
switch (type)
if (cgGetParameterType(param) == CG_STRUCT)
{
case CG_STRUCT:
ret = find_param_from_semantic(
cgGetFirstStructParameter(param), sem);
CGparameter ret = find_param_from_semantic(
cgGetFirstStructParameter(param), sem);
if (ret)
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;
if (ret)
return ret;
}
else
{
if (cgGetParameterSemantic(param) &&
!strcmp(sem, cgGetParameterSemantic(param)) &&
cgGetParameterDirection(param) == CG_IN &&
cgGetParameterVariability(param) == CG_VARYING &&
validate_param_name(cgGetParameterName(param)))
return param;
}
param = cgGetNextParameter(param);
}
return NULL;
}
static INLINE CGparameter find_param_from_semantic(
CGprogram prog, const char *sem)
static INLINE CGparameter find_param_from_semantic(CGprogram prog,
const char *sem)
{
CGparameter param = cgGetFirstParameter(prog, CG_PROGRAM);
return find_param_from_semantic(param, sem);