Cycles:
* Change some if / else if conditions to switch / case.
This commit is contained in:
@@ -79,18 +79,20 @@ bool MeshManager::displace(Device *device, DeviceScene *dscene, Scene *scene, Me
|
|||||||
int object = ~object_index;
|
int object = ~object_index;
|
||||||
int prim = mesh->tri_offset + i;
|
int prim = mesh->tri_offset + i;
|
||||||
float u, v;
|
float u, v;
|
||||||
|
|
||||||
if(j == 0) {
|
switch (j) {
|
||||||
u = 1.0f;
|
case 0:
|
||||||
v = 0.0f;
|
u = 1.0f;
|
||||||
}
|
v = 0.0f;
|
||||||
else if(j == 1) {
|
break;
|
||||||
u = 0.0f;
|
case 1:
|
||||||
v = 1.0f;
|
u = 0.0f;
|
||||||
}
|
v = 1.0f;
|
||||||
else {
|
break;
|
||||||
u = 0.0f;
|
default:
|
||||||
v = 0.0f;
|
u = 0.0f;
|
||||||
|
v = 0.0f;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* back */
|
/* back */
|
||||||
|
@@ -124,23 +124,28 @@ SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_man
|
|||||||
|
|
||||||
int SVMCompiler::stack_size(ShaderSocketType type)
|
int SVMCompiler::stack_size(ShaderSocketType type)
|
||||||
{
|
{
|
||||||
if(type == SHADER_SOCKET_FLOAT)
|
int size = 0;
|
||||||
return 1;
|
|
||||||
else if(type == SHADER_SOCKET_INT)
|
switch (type) {
|
||||||
return 1;
|
case SHADER_SOCKET_FLOAT:
|
||||||
else if(type == SHADER_SOCKET_COLOR)
|
case SHADER_SOCKET_INT:
|
||||||
return 3;
|
size = 1;
|
||||||
else if(type == SHADER_SOCKET_VECTOR)
|
break;
|
||||||
return 3;
|
case SHADER_SOCKET_COLOR:
|
||||||
else if(type == SHADER_SOCKET_NORMAL)
|
case SHADER_SOCKET_VECTOR:
|
||||||
return 3;
|
case SHADER_SOCKET_NORMAL:
|
||||||
else if(type == SHADER_SOCKET_POINT)
|
case SHADER_SOCKET_POINT:
|
||||||
return 3;
|
size = 3;
|
||||||
else if(type == SHADER_SOCKET_CLOSURE)
|
break;
|
||||||
return 0;
|
case SHADER_SOCKET_CLOSURE:
|
||||||
|
size = 0;
|
||||||
assert(0);
|
break;
|
||||||
return 0;
|
default:
|
||||||
|
assert(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SVMCompiler::stack_find_offset(ShaderSocketType type)
|
int SVMCompiler::stack_find_offset(ShaderSocketType type)
|
||||||
@@ -581,14 +586,20 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty
|
|||||||
ShaderNode *node = graph->output();
|
ShaderNode *node = graph->output();
|
||||||
ShaderInput *clin = NULL;
|
ShaderInput *clin = NULL;
|
||||||
|
|
||||||
if(type == SHADER_TYPE_SURFACE)
|
switch (type) {
|
||||||
clin = node->input("Surface");
|
case SHADER_TYPE_SURFACE:
|
||||||
else if(type == SHADER_TYPE_VOLUME)
|
clin = node->input("Surface");
|
||||||
clin = node->input("Volume");
|
break;
|
||||||
else if(type == SHADER_TYPE_DISPLACEMENT)
|
case SHADER_TYPE_VOLUME:
|
||||||
clin = node->input("Displacement");
|
clin = node->input("Volume");
|
||||||
else
|
break;
|
||||||
assert(0);
|
case SHADER_TYPE_DISPLACEMENT:
|
||||||
|
clin = node->input("Displacement");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
assert(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* clear all compiler state */
|
/* clear all compiler state */
|
||||||
memset(&active_stack, 0, sizeof(active_stack));
|
memset(&active_stack, 0, sizeof(active_stack));
|
||||||
@@ -604,20 +615,22 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty
|
|||||||
if(shader->used) {
|
if(shader->used) {
|
||||||
if(clin->link) {
|
if(clin->link) {
|
||||||
bool generate = false;
|
bool generate = false;
|
||||||
if(type == SHADER_TYPE_SURFACE) {
|
|
||||||
/* generate surface shader */
|
switch (type) {
|
||||||
generate = true;
|
case SHADER_TYPE_SURFACE: /* generate surface shader */
|
||||||
shader->has_surface = true;
|
generate = true;
|
||||||
}
|
shader->has_surface = true;
|
||||||
else if(type == SHADER_TYPE_VOLUME) {
|
break;
|
||||||
/* generate volume shader */
|
case SHADER_TYPE_VOLUME: /* generate volume shader */
|
||||||
generate = true;
|
generate = true;
|
||||||
shader->has_volume = true;
|
shader->has_volume = true;
|
||||||
}
|
break;
|
||||||
else if(type == SHADER_TYPE_DISPLACEMENT) {
|
case SHADER_TYPE_DISPLACEMENT: /* generate displacement shader */
|
||||||
/* generate displacement shader */
|
generate = true;
|
||||||
generate = true;
|
shader->has_displacement = true;
|
||||||
shader->has_displacement = true;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(generate) {
|
if(generate) {
|
||||||
|
Reference in New Issue
Block a user