@@ -4076,13 +4076,17 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
40764076 case ShaderLanguage::TYPE_BOOL:
40774077 if (p_uniform.array_size > 0 ) {
40784078 pi.type = Variant::PACKED_INT32_ARRAY;
4079+ pi.hint = PROPERTY_HINT_TYPE_STRING;
4080+ pi.hint_string = itos (Variant::INT) + " /" + itos (PROPERTY_HINT_FLAGS) + " :" + RTR (" On" );
40794081 } else {
40804082 pi.type = Variant::BOOL;
40814083 }
40824084 break ;
40834085 case ShaderLanguage::TYPE_BVEC2:
40844086 if (p_uniform.array_size > 0 ) {
40854087 pi.type = Variant::PACKED_INT32_ARRAY;
4088+ pi.hint = PROPERTY_HINT_TYPE_STRING;
4089+ pi.hint_string = itos (Variant::INT) + " /" + itos (PROPERTY_HINT_FLAGS) + " :x,y" ;
40864090 } else {
40874091 pi.type = Variant::INT;
40884092 pi.hint = PROPERTY_HINT_FLAGS;
@@ -4092,6 +4096,8 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
40924096 case ShaderLanguage::TYPE_BVEC3:
40934097 if (p_uniform.array_size > 0 ) {
40944098 pi.type = Variant::PACKED_INT32_ARRAY;
4099+ pi.hint = PROPERTY_HINT_TYPE_STRING;
4100+ pi.hint_string = itos (Variant::INT) + " /" + itos (PROPERTY_HINT_FLAGS) + " :x,y,z" ;
40954101 } else {
40964102 pi.type = Variant::INT;
40974103 pi.hint = PROPERTY_HINT_FLAGS;
@@ -4101,6 +4107,8 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
41014107 case ShaderLanguage::TYPE_BVEC4:
41024108 if (p_uniform.array_size > 0 ) {
41034109 pi.type = Variant::PACKED_INT32_ARRAY;
4110+ pi.hint = PROPERTY_HINT_TYPE_STRING;
4111+ pi.hint_string = itos (Variant::INT) + " /" + itos (PROPERTY_HINT_FLAGS) + " :x,y,z,w" ;
41044112 } else {
41054113 pi.type = Variant::INT;
41064114 pi.hint = PROPERTY_HINT_FLAGS;
@@ -4111,18 +4119,24 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
41114119 case ShaderLanguage::TYPE_INT: {
41124120 if (p_uniform.array_size > 0 ) {
41134121 pi.type = Variant::PACKED_INT32_ARRAY;
4122+ // TODO: Handle range and encoding for for unsigned values.
41144123 } else {
41154124 pi.type = Variant::INT;
4125+ pi.hint = PROPERTY_HINT_RANGE;
41164126 if (p_uniform.hint == ShaderLanguage::ShaderNode::Uniform::HINT_RANGE) {
4117- pi.hint = PROPERTY_HINT_RANGE;
41184127 pi.hint_string = rtos (p_uniform.hint_range [0 ]) + " ," + rtos (p_uniform.hint_range [1 ]) + " ," + rtos (p_uniform.hint_range [2 ]);
4128+ } else if (p_uniform.type == ShaderLanguage::TYPE_UINT) {
4129+ pi.hint_string = " 0," + itos (UINT32_MAX);
4130+ } else {
4131+ pi.hint_string = itos (INT32_MIN) + " ," + itos (INT32_MAX);
41194132 }
41204133 }
41214134 } break ;
41224135 case ShaderLanguage::TYPE_UVEC2:
41234136 case ShaderLanguage::TYPE_IVEC2: {
41244137 if (p_uniform.array_size > 0 ) {
41254138 pi.type = Variant::PACKED_INT32_ARRAY;
4139+ // TODO: Handle vector pairs?
41264140 } else {
41274141 pi.type = Variant::VECTOR2I;
41284142 }
@@ -4131,6 +4145,7 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
41314145 case ShaderLanguage::TYPE_IVEC3: {
41324146 if (p_uniform.array_size > 0 ) {
41334147 pi.type = Variant::PACKED_INT32_ARRAY;
4148+ // TODO: Handle vector pairs?
41344149 } else {
41354150 pi.type = Variant::VECTOR3I;
41364151 }
@@ -4139,6 +4154,7 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
41394154 case ShaderLanguage::TYPE_IVEC4: {
41404155 if (p_uniform.array_size > 0 ) {
41414156 pi.type = Variant::PACKED_INT32_ARRAY;
4157+ // TODO: Handle vector pairs?
41424158 } else {
41434159 pi.type = Variant::VECTOR4I;
41444160 }
0 commit comments