Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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)));
}
Exemplo n.º 3
0
/*
 * 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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
/* 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);
}
Exemplo n.º 7
0
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;
}
Exemplo n.º 8
0
/* 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);
}
Exemplo n.º 9
0
/* 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);
}
Exemplo n.º 10
0
/*
 * 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);
}
Exemplo n.º 11
0
/*
 * 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);
}
Exemplo n.º 12
0
/*
 * 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);
}
Exemplo n.º 13
0
/* 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);
}
Exemplo n.º 14
0
/* 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);
}
Exemplo n.º 15
0
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;
}
Exemplo n.º 16
0
/*
 * 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));
}
Exemplo n.º 17
0
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();
}
Exemplo n.º 18
0
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;
}
Exemplo n.º 19
0
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;
}
Exemplo n.º 20
0
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;
}
Exemplo n.º 21
0
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", &timestamp);
  data->event.user.timestamp = timestamp;
  return self;
}
Exemplo n.º 22
0
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;
}
Exemplo n.º 23
0
/*
 * 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();
}
Exemplo n.º 24
0
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;
}
Exemplo n.º 25
0
/*
 * 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();
}
Exemplo n.º 26
0
/*
 * 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);
}
Exemplo n.º 27
0
/*
 * 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();
}
Exemplo n.º 28
0
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);
}
Exemplo n.º 29
0
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;
}
Exemplo n.º 30
0
/* 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;
}