save some ram by backing structs :)

SVN revision: 5516
This commit is contained in:
Carsten Haitzler 2001-10-19 02:01:37 +00:00
parent 317853525e
commit b4c3e0e90b
1 changed files with 73 additions and 59 deletions

View File

@ -80,66 +80,68 @@ struct _Evas
Drawable drawable; Drawable drawable;
Visual *visual; Visual *visual;
Colormap colormap; Colormap colormap;
int created_window; unsigned char created_window;
int screen; unsigned char screen;
int colors; unsigned short colors;
Imlib_Image image; Imlib_Image image;
int drawable_width, drawable_height; unsigned short drawable_width, drawable_height;
struct { struct {
double x, y, w, h; double x, y, w, h;
} viewport; } __attribute__ ((packed)) viewport;
struct { struct {
double mult_x, mult_y; double mult_x, mult_y;
} val_cache; } __attribute__ ((packed)) val_cache;
Evas_Render_Method render_method; Evas_Render_Method render_method;
Evas_Render_Data renderer_data; Evas_Render_Data renderer_data;
} current, previous; }
__attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
struct { struct {
int in; unsigned char in;
int x, y; int x, y;
int buttons; int buttons;
Evas_Object object, button_object; Evas_Object object, button_object;
} mouse; } __attribute__ ((packed)) mouse;
void (*evas_renderer_data_free) (Evas _e); void (*evas_renderer_data_free) (Evas _e);
int changed; unsigned char changed;
Evas_List layers; Evas_List layers;
Imlib_Updates updates; Imlib_Updates updates;
Imlib_Updates obscures; Imlib_Updates obscures;
}; } __attribute__ ((packed));
struct _Evas_Color_Point struct _Evas_Color_Point
{ {
int r, g, b, a; unsigned char r, g, b, a;
int distance; int distance;
}; } __attribute__ ((packed));
struct _Evas_Gradient struct _Evas_Gradient
{ {
Evas_List color_points; Evas_List color_points;
int references; int references;
}; } __attribute__ ((packed));
struct _Evas_Rectangle struct _Evas_Rectangle
{ {
int x, y, w, h; int x, y, w, h;
}; } __attribute__ ((packed));
struct _Evas_Data struct _Evas_Data
{ {
char *key; char *key;
void *data; void *data;
}; } __attribute__ ((packed));
struct _Evas_Layer struct _Evas_Layer
{ {
@ -147,35 +149,37 @@ struct _Evas_Layer
Evas_List objects; Evas_List objects;
struct { struct {
int store; unsigned char store;
} current, previous; } __attribute__ ((packed)) current, __attribute__ ((packed)) previous;
Evas_Render_Data renderer_data; Evas_Render_Data renderer_data;
}; } __attribute__ ((packed));
struct _Evas_Callback struct _Evas_Callback
{ {
Evas_Callback_Type type; Evas_Callback_Type type;
void *data; void *data;
void (*callback) (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y); void (*callback) (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y);
}; } __attribute__ ((packed));
struct _Evas_Object_Any struct _Evas_Object_Any
{ {
int type; unsigned short type;
struct { struct {
double x, y, w, h; double x, y, w, h;
int zoomscale; unsigned char zoomscale;
int layer; int layer;
int visible; unsigned char visible;
int stacking; unsigned char stacking;
} current, previous; }
__attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
int changed; unsigned char changed;
int delete_me; unsigned char delete_me;
int pass_events; unsigned char pass_events;
void (*object_free) (Evas_Object _o); void (*object_free) (Evas_Object _o);
void (*object_renderer_data_free) (Evas _e, Evas_Object _o); void (*object_renderer_data_free) (Evas _e, Evas_Object _o);
@ -186,37 +190,37 @@ struct _Evas_Object_Any
struct { struct {
Evas_List list; Evas_List list;
Evas_Object object; Evas_Object object;
int changed; unsigned char changed;
} clip; } __attribute__ ((packed)) clip;
Evas_Render_Data renderer_data; Evas_Render_Data renderer_data;
char *name; char *name;
}; } __attribute__ ((packed));
struct _Evas_Object_Image struct _Evas_Object_Image
{ {
struct _Evas_Object_Any object; struct _Evas_Object_Any object;
struct { struct {
char *file; char *file;
int new_data; unsigned char new_data;
int scale; unsigned char scale;
int alpha; unsigned char alpha;
struct { struct {
int w, h; unsigned short w, h;
} image; } __attribute__ ((packed)) image;
struct { struct {
double x, y, w, h; double x, y, w, h;
} fill; } __attribute__ ((packed)) fill;
struct { struct {
int l, r, t, b; unsigned short l, r, t, b;
} border; } __attribute__ ((packed)) border;
struct { struct {
int r, g, b, a; unsigned char r, g, b, a;
} color; } __attribute__ ((packed)) color;
} current, previous; } current, previous;
Imlib_Load_Error load_error; Imlib_Load_Error load_error;
}; } __attribute__ ((packed));
struct _Evas_Object_Text struct _Evas_Object_Text
{ {
@ -224,49 +228,59 @@ struct _Evas_Object_Text
struct { struct {
char *text; char *text;
char *font; char *font;
int size; unsigned short size;
struct { struct {
int w, h; int w, h;
} string; } __attribute__ ((packed)) string;
int r, g, b, a; unsigned char r, g, b, a;
} current, previous; }
}; __attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
} __attribute__ ((packed));
struct _Evas_Object_Rectangle struct _Evas_Object_Rectangle
{ {
struct _Evas_Object_Any object; struct _Evas_Object_Any object;
struct { struct {
int r, g, b, a; unsigned char r, g, b, a;
} current, previous; }
}; __attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
} __attribute__ ((packed));
struct _Evas_Object_Line struct _Evas_Object_Line
{ {
struct _Evas_Object_Any object; struct _Evas_Object_Any object;
struct { struct {
double x1, y1, x2, y2; double x1, y1, x2, y2;
int r, g, b, a; unsigned char r, g, b, a;
} current, previous; }
}; __attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
} __attribute__ ((packed));
struct _Evas_Object_Gradient_Box struct _Evas_Object_Gradient_Box
{ {
struct _Evas_Object_Any object; struct _Evas_Object_Any object;
struct { struct {
Evas_Gradient gradient; Evas_Gradient gradient;
int new_gradient; unsigned char new_gradient;
double angle; double angle;
} current, previous; }
}; __attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
} __attribute__ ((packed));
struct _Evas_Object_Poly struct _Evas_Object_Poly
{ {
struct _Evas_Object_Any object; struct _Evas_Object_Any object;
struct { struct {
int r, g, b, a; unsigned char r, g, b, a;
Evas_List points; Evas_List points;
} current, previous; }
}; __attribute__ ((packed)) current,
__attribute__ ((packed)) previous;
} __attribute__ ((packed));
static void static void
_evas_get_current_clipped_geometry(Evas e, Evas_Object o, double *x, double *y, double *w, double *h) _evas_get_current_clipped_geometry(Evas e, Evas_Object o, double *x, double *y, double *w, double *h)