X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Freflect.cpp;h=643c42e79be90f51f07009df7343ce67df80f09e;hp=64dbbf6e0e140ddc47385b75f6a966a2658fea8b;hb=HEAD;hpb=215d5bed27ad3de92557ae1b631695a036d29741 diff --git a/source/glsl/reflect.cpp b/source/glsl/reflect.cpp index 64dbbf6e..becc833e 100644 --- a/source/glsl/reflect.cpp +++ b/source/glsl/reflect.cpp @@ -159,6 +159,25 @@ void TypeComparer::visit(TernaryExpression &ternary) } } +void TypeComparer::visit(FunctionCall &call) +{ + if(FunctionCall *call1 = multi_visit(call)) + { + if(!call1->constructor || !call.constructor) + r_result = false; + else if(call1->name!=call.name) + r_result = false; + else if(call1->arguments.size()!=call.arguments.size()) + r_result = false; + else + { + r_result = true; + for(unsigned i=0; (r_result && iarguments[i], *call.arguments[i]); + } + } +} + void TypeComparer::visit(BasicTypeDeclaration &basic) { if(BasicTypeDeclaration *basic1 = multi_visit(basic)) @@ -180,6 +199,8 @@ void TypeComparer::visit(ImageTypeDeclaration &image) r_result = false; else if(image1->sampled!=image.sampled || image1->shadow!=image.shadow || image1->multisample!=image.multisample) r_result = false; + else if(image1->format!=image.format) + r_result = false; else if(image1->base_type && image.base_type) compare(*image1->base_type, *image.base_type); else