SwfdecRectangle

SwfdecRectangle — handling regions on the screen

Synopsis


#include <swfdec/swfdec.h>

                    SwfdecRectangle;
gboolean            swfdec_rectangle_contains           (const SwfdecRectangle *container,
                                                         const SwfdecRectangle *content);
gboolean            swfdec_rectangle_contains_point     (const SwfdecRectangle *rectangle,
                                                         int x,
                                                         int y);
void                swfdec_rectangle_init_empty         (SwfdecRectangle *rectangle);
gboolean            swfdec_rectangle_intersect          (SwfdecRectangle *dest,
                                                         const SwfdecRectangle *a,
                                                         const SwfdecRectangle *b);
gboolean            swfdec_rectangle_is_empty           (const SwfdecRectangle *rectangle);
void                swfdec_rectangle_union              (SwfdecRectangle *dest,
                                                         const SwfdecRectangle *a,
                                                         const SwfdecRectangle *b);

Description

This section describes how regions are handled in Swfdec. Regions are important when tracking which parts of the screen have been invalidated and need to be repainted. See SwfdecPlayer::invalidate for an example.

Details

SwfdecRectangle

typedef struct {
  int		x;			/* x coordinate of top-left point */
  int		y;			/* y coordinate of top left point */
  int		width;			/* width of rectangle or 0 for empty */
  int		height;			/* height of rectangle or 0 for empty */
} SwfdecRectangle;

This structure represents a rectangular region. It is identical to the GdkRectangle structure, so you can cast freely between them. The only difference is that Gdk does not allow empty rectangles, while Swfdec does. You can use swfdec_rectangle_is_empty() to check for this.

int x;

x coordinate of top-left point

int y;

y coordinate of top-left point

int width;

width of rectangle or 0 for empty

int height;

height of rectangle or 0 for empty

swfdec_rectangle_contains ()

gboolean            swfdec_rectangle_contains           (const SwfdecRectangle *container,
                                                         const SwfdecRectangle *content);

Checks if container contains the whole rectangle content.

container :

the supposedly bigger rectangle

content :

the supposedly smaller rectangle

Returns :

TRUE if container contains content.

swfdec_rectangle_contains_point ()

gboolean            swfdec_rectangle_contains_point     (const SwfdecRectangle *rectangle,
                                                         int x,
                                                         int y);

Checks if the given point is inside the given rectangle.

rectangle :

a rectangle

x :

x coordinate of point to check

y :

y coordinate of point to check

Returns :

TRUE if the point is inside the rectangle

swfdec_rectangle_init_empty ()

void                swfdec_rectangle_init_empty         (SwfdecRectangle *rectangle);

Initializes the rectangle as empty.

rectangle :

rectangle to initialize

swfdec_rectangle_intersect ()

gboolean            swfdec_rectangle_intersect          (SwfdecRectangle *dest,
                                                         const SwfdecRectangle *a,
                                                         const SwfdecRectangle *b);

Intersects the rectangles a and b and puts the result into dest. It is allowed if dest is the same as a or b.

dest :

the rectangle to take the result or NULL

a :

first rectangle to intersect

b :

second rectangle to intersect

Returns :

TRUE if the intersection is not empty.

swfdec_rectangle_is_empty ()

gboolean            swfdec_rectangle_is_empty           (const SwfdecRectangle *rectangle);

Checks if the given rectangle is empty.

rectangle :

rectangle to check

Returns :

TRUE if the rectangle is emtpy

swfdec_rectangle_union ()

void                swfdec_rectangle_union              (SwfdecRectangle *dest,
                                                         const SwfdecRectangle *a,
                                                         const SwfdecRectangle *b);

Computes the smallest rectangle that contains both a and b and puts it in dest.

dest :

destination to take the union

a :

first rectangle to union

b :

second rectangle to union