void rut_graphable_get_modelview (RutObject *graphable, RutCamera *camera, CoglMatrix *transform) { const CoglMatrix *view = rut_camera_get_view_transform (camera); *transform = *view; rut_graphable_apply_transform (graphable, transform); }
static void get_modelview_matrix(rig_entity_t *camera, rig_entity_t *entity, c_matrix_t *modelview) { rut_object_t *camera_component = rig_entity_get_component(camera, RIG_COMPONENT_TYPE_CAMERA); *modelview = *rut_camera_get_view_transform(camera_component); c_matrix_multiply(modelview, modelview, rig_entity_get_transform(entity)); }
static void get_modelview_matrix (RutEntity *camera, RutEntity *entity, CoglMatrix *modelview) { RutCamera *camera_component = rut_entity_get_component (camera, RUT_COMPONENT_TYPE_CAMERA); *modelview = *rut_camera_get_view_transform (camera_component); cogl_matrix_multiply (modelview, modelview, rut_entity_get_transform (entity)); }
static RutInputEventStatus _rut_button_input_cb (RutInputRegion *region, RutInputEvent *event, void *user_data) { RutButton *button = user_data; if(rut_input_event_get_type (event) == RUT_INPUT_EVENT_TYPE_MOTION && rut_motion_event_get_action (event) == RUT_MOTION_EVENT_ACTION_DOWN) { RutShell *shell = button->ctx->shell; ButtonGrabState *state = g_slice_new (ButtonGrabState); const CoglMatrix *view; state->button = button; state->camera = rut_input_event_get_camera (event); view = rut_camera_get_view_transform (state->camera); state->transform = *view; rut_graphable_apply_transform (button, &state->transform); if (!cogl_matrix_get_inverse (&state->transform, &state->inverse_transform)) { g_warning ("Failed to calculate inverse of button transform\n"); g_slice_free (ButtonGrabState, state); return RUT_INPUT_EVENT_STATUS_UNHANDLED; } rut_shell_grab_input (shell, state->camera, _rut_button_grab_input_cb, state); //button->grab_x = rut_motion_event_get_x (event); //button->grab_y = rut_motion_event_get_y (event); button->state = BUTTON_STATE_ACTIVE; rut_shell_queue_redraw (button->ctx->shell); return RUT_INPUT_EVENT_STATUS_HANDLED; } return RUT_INPUT_EVENT_STATUS_UNHANDLED; }