X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Freflect.cpp;h=becc833e28ef7da9c9bbcd5fc5ad6e6fe7d81ce6;hb=b6c4e1a794276ca343c0c9bb0a300e729ca41931;hp=643c42e79be90f51f07009df7343ce67df80f09e;hpb=03b2ea5c9c611cfa5f02afb49ed7e05743e691b4;p=libs%2Fgl.git diff --git a/source/glsl/reflect.cpp b/source/glsl/reflect.cpp index 643c42e7..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)) @@ -178,7 +197,9 @@ void TypeComparer::visit(ImageTypeDeclaration &image) { if(image1->dimensions!=image.dimensions || image1->array!=image.array) r_result = false; - else if(image1->sampled!=image.sampled || image1->shadow!=image.shadow) + 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);