static mrb_value mrb_sdl2_misc_buffer_get_address(mrb_state *mrb, mrb_value self) { mrb_sdl2_misc_buffer_data_t *data = (mrb_sdl2_misc_buffer_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_misc_buffer_data_type); return mrb_float_value(mrb, (mrb_float)(intptr_t)data->buffer); }
static mrb_value mrb_sdl2_misc_floatbuffer_get_size(mrb_state *mrb, mrb_value self) { mrb_sdl2_misc_buffer_data_t *data = (mrb_sdl2_misc_buffer_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_misc_buffer_data_type); return mrb_float_value(mrb, (mrb_float)(data->size/sizeof(float))); }
/* * Chipmunk2d::Mat2x2#b * @return [Float] */ static mrb_value mat2x2_get_b(mrb_state *mrb, mrb_value self) { cpMat2x2 *mat2x2; mat2x2 = mrb_data_get_ptr(mrb, self, &mrb_cp_mat2x2_type); return mrb_float_value(mrb, (mrb_float)mat2x2->b); }
static mrb_value mrb_sdl2_input_event_get_type(mrb_state *mrb, mrb_value self) { mrb_sdl2_input_event_data_t *data = (mrb_sdl2_input_event_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_input_event_data_type); return mrb_fixnum_value(data->event.type); }
static mrb_value mrb_sdl2_misc_buffer_get_cptr(mrb_state *mrb, mrb_value self) { mrb_sdl2_misc_buffer_data_t *data = (mrb_sdl2_misc_buffer_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_misc_buffer_data_type); return mrb_cptr_value(mrb, data->buffer); }
/* Returns true if this time is in the UTC timezone false if not. */ static mrb_value mrb_time_utcp(mrb_state *mrb, mrb_value self) { struct mrb_time *tm; tm = (struct mrb_time*)mrb_data_get_ptr(mrb, self, &mrb_time_type); if (!tm) return mrb_nil_value(); return mrb_bool_value(tm->timezone == MRB_TIMEZONE_UTC); }
SDL_Keysym * mrb_sdl2_keyboard_keysym_get_ptr(mrb_state *mrb, mrb_value value) { if (mrb_nil_p(value)) { return NULL; } return &((mrb_sdl2_keyboard_keysym_data_t*)mrb_data_get_ptr(mrb, value, &mrb_sdl2_keyboard_keysym_data_type))->keysym; }
/* Returns true if daylight saving was applied for this time. */ static mrb_value mrb_time_dstp(mrb_state *mrb, mrb_value self) { struct mrb_time *tm; tm = (struct mrb_time*)mrb_data_get_ptr(mrb, self, &mrb_time_type); if (!tm) return mrb_nil_value(); return mrb_bool_value(tm->datetime.tm_isdst); }
/* Returns year of time. */ static mrb_value mrb_time_year(mrb_state *mrb, mrb_value self) { struct mrb_time *tm; tm = (struct mrb_time*)mrb_data_get_ptr(mrb, self, &mrb_time_type); if (!tm) return mrb_nil_value(); return mrb_fixnum_value(tm->datetime.tm_year + 1900); }
/* * Chipmunk2d::Constraint#impulse * @return [Float] */ static mrb_value constraint_get_impulse(mrb_state *mrb, mrb_value self) { cpConstraint *constraint; cpFloat impulse; constraint = mrb_data_get_ptr(mrb, self, &mrb_cp_constraint_type); impulse = cpConstraintGetImpulse(constraint); return mrb_float_value(mrb, impulse); }
/* * Chipmunk2d::Constraint#max_bias * @return [Float] */ static mrb_value constraint_get_max_bias(mrb_state *mrb, mrb_value self) { cpConstraint *constraint; cpFloat max_bias; constraint = mrb_data_get_ptr(mrb, self, &mrb_cp_constraint_type); max_bias = cpConstraintGetMaxBias(constraint); return mrb_float_value(mrb, max_bias); }
/* * Chipmunk2d::Constraint#body_b * @return [Chipmunk2d::Body] */ static mrb_value constraint_get_body_b(mrb_state *mrb, mrb_value self) { cpBody *body; cpConstraint *constraint; constraint = mrb_data_get_ptr(mrb, self, &mrb_cp_constraint_type); body = cpConstraintGetBodyB(constraint); return constraint_get_mrb_cp_body(mrb, self, body); }
/* Returns a Float with the time since the epoch in seconds. */ static mrb_value mrb_time_to_f(mrb_state *mrb, mrb_value self) { struct mrb_time *tm; tm = (struct mrb_time*)mrb_data_get_ptr(mrb, self, &mrb_time_type); if (!tm) return mrb_nil_value(); return mrb_float_value(mrb, (mrb_float)tm->sec + (mrb_float)tm->usec/1.0e6); }
/* Returns a Float with the time since the epoch in microseconds. */ static mrb_value mrb_time_usec(mrb_state *mrb, mrb_value self) { struct mrb_time *tm; tm = (struct mrb_time*)mrb_data_get_ptr(mrb, self, &mrb_time_type); if (!tm) return mrb_nil_value(); return mrb_fixnum_value(tm->usec); }
static mrb_value mrb_sdl2_cond_wait(mrb_state *mrb, mrb_value self) { mrb_value mutex; mrb_sdl2_mutex_data_t *mutex_data; mrb_sdl2_cond_data_t *data = (mrb_sdl2_cond_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_cond_data_type); if (NULL == data->cond) { return mrb_nil_value(); } mrb_get_args(mrb, "o", &mutex); mutex_data = (mrb_sdl2_mutex_data_t*)mrb_data_get_ptr(mrb, mutex, &mrb_sdl2_mutex_data_type); if (0 > SDL_CondWait(data->cond, mutex_data->mutex)) { mruby_sdl2_raise_error(mrb); } return self; }
/* * Chipmunk2d::Mat2x2#transform(vect) * @param [Chipmunk2d::Vect] vect */ static mrb_value mat2x2_transform(mrb_state *mrb, mrb_value self) { cpMat2x2 *mat2x2; cpVect *vect; mrb_get_args(mrb, "d", &vect, &mrb_cp_vect_type); mat2x2 = mrb_data_get_ptr(mrb, self, &mrb_cp_mat2x2_type); return mrb_cp_vect_value(mrb, cpMat2x2Transform(*mat2x2, *vect)); }
mrb_value mrb_mraa_uart_data_available(mrb_state *mrb, mrb_value self) { mraa_uart_context uart; unsigned int millis, nargs; nargs = mrb_get_args(mrb, "|i", &millis); if (nargs == 0) millis = 0; uart = (mraa_uart_context)mrb_data_get_ptr(mrb, self, &mrb_mraa_uart_ctx_type); return ( mraa_uart_data_available(uart, millis) == 1 ) ? mrb_true_value() : mrb_false_value(); }
static mrb_value mrb_sdl2_input_userevent_set_data2(mrb_state *mrb, mrb_value self) { mrb_sdl2_input_event_data_t *data = (mrb_sdl2_input_event_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_input_event_data_type); mrb_value data2; mrb_get_args(mrb, "o", &data2); data->event.user.data2 = mrb_sdl2_input_to_voidp(mrb, data2); return self; }
static mrb_value mrb_sdl2_input_userevent_set_code(mrb_state *mrb, mrb_value self) { mrb_sdl2_input_event_data_t *data = (mrb_sdl2_input_event_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_input_event_data_type); mrb_int code; mrb_get_args(mrb, "i", &code); data->event.user.code = code; return self; }
static mrb_value mrb_sdl2_input_userevent_set_window_id(mrb_state *mrb, mrb_value self) { mrb_sdl2_input_event_data_t *data = (mrb_sdl2_input_event_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_input_event_data_type); mrb_int windowID; mrb_get_args(mrb, "i", &windowID); data->event.user.windowID = windowID; return self; }
static mrb_value mrb_sdl2_input_userevent_set_timestamp(mrb_state *mrb, mrb_value self) { mrb_sdl2_input_event_data_t *data = (mrb_sdl2_input_event_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_input_event_data_type); mrb_int timestamp; mrb_get_args(mrb, "i", ×tamp); data->event.user.timestamp = timestamp; return self; }
SDL_Event * mrb_sdl2_input_event_get_ptr(mrb_state *mrb, mrb_value value) { if (mrb_nil_p(value)) { return NULL; } mrb_sdl2_input_event_data_t *data = (mrb_sdl2_input_event_data_t*)mrb_data_get_ptr(mrb, value, &mrb_sdl2_input_event_data_type); return &data->event; }
/* * Chipmunk2d::Constraint#max_force=(max_force) * @param [Float] max_force */ static mrb_value constraint_set_max_force(mrb_state *mrb, mrb_value self) { cpConstraint *constraint; mrb_float max_force; mrb_get_args(mrb, "f", &max_force); constraint = mrb_data_get_ptr(mrb, self, &mrb_cp_constraint_type); cpConstraintSetMaxForce(constraint, (cpFloat)max_force); return mrb_nil_value(); }
SDL_Surface * mrb_sdl2_video_surface_get_ptr(mrb_state *mrb, mrb_value surface) { if (mrb_nil_p(surface)) { return NULL; } mrb_sdl2_video_surface_data_t *data = (mrb_sdl2_video_surface_data_t*)mrb_data_get_ptr(mrb, surface, &mrb_sdl2_video_surface_data_type); return data->surface; }
/* * Chipmunk2d::Mat2x2#b= * @param [Float] b */ static mrb_value mat2x2_set_b(mrb_state *mrb, mrb_value self) { cpMat2x2 *mat2x2; mrb_float b; mrb_get_args(mrb, "f", &b); mat2x2 = mrb_data_get_ptr(mrb, self, &mrb_cp_mat2x2_type); mat2x2->b = (cpFloat)b; return mrb_nil_value(); }
/* * Chipmunk2d::Constraint#collide_bodies * @return [Boolean] */ static mrb_value constraint_get_collide_bodies(mrb_state *mrb, mrb_value self) { cpConstraint *constraint; cpBool collide_bodies; constraint = mrb_data_get_ptr(mrb, self, &mrb_cp_constraint_type); collide_bodies = cpConstraintGetCollideBodies(constraint); return mrb_bool_value(collide_bodies); }
/* * Chipmunk2d::Constraint#collide_bodies=(collide_bodies) * @param [Boolean] collide_bodies */ static mrb_value constraint_set_collide_bodies(mrb_state *mrb, mrb_value self) { cpConstraint *constraint; mrb_bool collide_bodies; mrb_get_args(mrb, "b", &collide_bodies); constraint = mrb_data_get_ptr(mrb, self, &mrb_cp_constraint_type); cpConstraintSetCollideBodies(constraint, (cpBool)collide_bodies); return mrb_nil_value(); }
mrb_value mrb_mraa_uart_get_dev_path(mrb_state *mrb, mrb_value self) { mraa_uart_context uart; const char *path; uart = (mraa_uart_context)mrb_data_get_ptr(mrb, self, &mrb_mraa_uart_ctx_type); path = mraa_uart_get_dev_path(uart); return mrb_str_new_cstr(mrb, path); }
static mrb_value mrb_sdl2_video_surface_free(mrb_state *mrb, mrb_value self) { mrb_sdl2_video_surface_data_t *data = (mrb_sdl2_video_surface_data_t*)mrb_data_get_ptr(mrb, self, &mrb_sdl2_video_surface_data_type); if ((NULL != data->surface) && (false == data->is_associated)) { SDL_FreeSurface(data->surface); data->surface = NULL; } return self; }
/* Sets the timezone attribute of the Time object to LOCAL. */ static mrb_value mrb_time_localtime(mrb_state *mrb, mrb_value self) { struct mrb_time *tm; tm = (struct mrb_time*)mrb_data_get_ptr(mrb, self, &mrb_time_type); if (!tm) return self; tm->timezone = MRB_TIMEZONE_LOCAL; mrb_time_update_datetime(tm); return self; }