+// Screen projections
+// ============================================================================================
+
+void vg_projection_update(void)
+{
+ // Do transform local->world
+ vg_mouse_ws[0] = vg_mouse[0];
+ vg_mouse_ws[1] = vg_mouse[1];
+ vg_mouse_ws[2] = 1.0f;
+
+ vg_mouse_ws[0] = (2.0f * vg_mouse_ws[0]) / ((float)vg_window_x) - 1.0f;
+ vg_mouse_ws[1] = -((2.0f * vg_mouse_ws[1]) / ((float)vg_window_y) - 1.0f);
+
+ m3x3f inverse;
+ m3x3_inv( vg_pv, inverse );
+ m3x3_mulv( inverse, vg_mouse_ws, vg_mouse_ws );
+}
+