change shader properties to be vg_msg based
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift_blender / sr_shader.py
diff --git a/skaterift_blender/sr_shader.py b/skaterift_blender/sr_shader.py
new file mode 100644 (file)
index 0000000..fe4416d
--- /dev/null
@@ -0,0 +1,40 @@
+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 ) )
+#}