Class: SDL2::Rect

Inherits:
Object
  • Object
show all
Defined in:
video.c,
video.c

Overview

This class represents a rectangle in SDL2.

Any rectanle is represented by four attributes x, y, w, and h, and these four attributes must be integer.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialze(x, y, w, h) ⇒ SDL2::Rect #initializeSDL2::Rect

Create a new SDL2::Rect object

Overloads:

  • #initialze(x, y, w, h) ⇒ SDL2::Rect

    Create a new SDL2::Rect object

    Parameters:

    • x (Integer)

      X coordiante of the left-top point of the rectangle

    • y (Integer)

      Y coordiante of the left-top point of the rectangle

    • w (Integer)

      Width of the rectangle

    • h (Integer)

      Height of the rectangle

  • #initializeSDL2::Rect

    Create a new SDL2::Rect object whose x, w, w, and h are all zero.



2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
# File 'video.c', line 2506

static VALUE Rect_initialize(int argc, VALUE* argv, VALUE self)
{
    VALUE x, y, w, h;
    rb_scan_args(argc, argv, "04", &x, &y, &w, &h);
    if (argc == 0) {
        /* do nothing*/
    } else if (argc == 4) {
        SDL_Rect* rect;
        Data_Get_Struct(self, SDL_Rect, rect);
        rect->x = NUM2INT(x); rect->y = NUM2INT(y);
        rect->w = NUM2INT(w); rect->h = NUM2INT(h);
    } else {
        rb_raise(rb_eArgError, "wrong number of arguments (%d for 0 or 4)", argc);
    }
    return Qnil;
}

Instance Attribute Details

#hInteger

Height of the rectangle

Returns:

  • (Integer)

#wInteger

Width of the rectangle

Returns:

  • (Integer)

#xInteger

X coordiante of the left-top point of the rectangle

Returns:

  • (Integer)

#yInteger

Y coordiante of the left-top point of the rectangle

Returns:

  • (Integer)

Class Method Details

.[](*args) ⇒ SDL2::Rect

Alias of new. See #initialize.

Returns:

Instance Method Details

#inspectString

Inspection string for debug

Returns:

  • (String)


2527
2528
2529
2530
2531
2532
# File 'video.c', line 2527

static VALUE Rect_inspect(VALUE self)
{
    SDL_Rect* rect = Get_SDL_Rect(self);
    return rb_sprintf("<SDL2::Rect: x=%d y=%d w=%d h=%d>",
                      rect->x, rect->y, rect->w, rect->h);
}

#intersection(other) ⇒ SDL2::Rect?

Returns the intersection rect of self and other.

If there is no intersection, returns nil.

Parameters:

Returns:



2548
2549
2550
2551
2552
2553
2554
2555
2556
# File 'video.c', line 2548

static VALUE Rect_intersection(VALUE self, VALUE other)
{
    VALUE result = Rect_s_allocate(cRect);
    if (SDL_IntersectRect(Get_SDL_Rect(self), Get_SDL_Rect(other), Get_SDL_Rect(result))) {
        return result;
    } else {
        return Qnil;
    }
}

#union(other) ⇒ SDL2::Rect

Returns the minimal rect containing self and other

Parameters:

Returns:



2565
2566
2567
2568
2569
2570
# File 'video.c', line 2565

static VALUE Rect_union(VALUE self, VALUE other)
{
    VALUE result = Rect_s_allocate(cRect);
    SDL_UnionRect(Get_SDL_Rect(self), Get_SDL_Rect(other), Get_SDL_Rect(result));
    return result;
}