X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Freflect.cpp;h=8c10acccd697c265063d481a8f1a8b055ac492bb;hp=c2a913f982acfcb61c6ca7a0289f3233f3d434e9;hb=91e65bc9e24a6889995081035f6f6f0a78a6c20e;hpb=2016444ee144ce41f88c48e89c825137ad7e4ec2 diff --git a/source/glsl/reflect.cpp b/source/glsl/reflect.cpp index c2a913f9..8c10accc 100644 --- a/source/glsl/reflect.cpp +++ b/source/glsl/reflect.cpp @@ -33,6 +33,8 @@ bool can_convert(const BasicTypeDeclaration &from, const BasicTypeDeclaration &t return from.size<=to.size; else if(from.kind!=to.kind) return false; + else if(from.kind==BasicTypeDeclaration::INT && from.sign!=to.sign) + return from.sign && from.size<=to.size; else if(is_vector_or_matrix(from) && from.size==to.size) { BasicTypeDeclaration *from_base = dynamic_cast(from.base_type); @@ -123,7 +125,7 @@ void TypeComparer::visit(BasicTypeDeclaration &basic) { if(BasicTypeDeclaration *basic1 = multi_visit(basic)) { - if(basic1->kind!=basic.kind || basic1->size!=basic.size) + if(basic1->kind!=basic.kind || basic1->size!=basic.size || basic1->sign!=basic.sign) r_result = false; else if(basic1->base_type && basic.base_type) compare(*basic1->base_type, *basic.base_type);