--- /dev/null
+print( "sr_shader" )
+
+def shader_prop_f32( msg, key, order, value ):
+#{
+ vec = (c_float*4)()
+
+ for i in range(order):
+ #{
+ vec[i] = value[i]
+ #}
+
+ sr_lib.vg_msg_wkvnum( byref(msg), key.encode(), k_vg_msg_f32, order, vec )
+#}
+
+def shader_prop_rgba( msg, key, value ):
+#{
+ colour = (c_float*4)()
+
+ for i in range(4):
+ #{
+ if i < len(value):
+ colour[i] = pow( value[i], 1.0/2.2 )
+ else:
+ colour[i] = 1.0 if i==3 else 0.0
+ #}
+
+ sr_lib.vg_msg_wkvnum( byref(msg), key.encode(), k_vg_msg_f32, 4, colour )
+#}
+
+def shader_prop_u32( msg, key, value ):
+#{
+ cval = c_uint32( value )
+ sr_lib.vg_msg_wkvnum( byref(msg), key.encode(), \
+ k_vg_msg_u32, 1, byref(cval) )
+#}
+
+def shader_prop_texture( msg, key, value ):
+#{
+ shader_prop_u32( msg, key, sr_compile_texture( value ) )
+#}