client: handle tags assignment in awful (FS#441)
[awesome.git] / image.h
blobc1aa6fcca58bcef292b9b5c788e46178675eac63
1 /*
2 * image.h - image object header
4 * Copyright © 2008 Julien Danjou <julien@danjou.info>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #ifndef AWESOME_IMAGE_H
23 #define AWESOME_IMAGE_H
25 #include <lua.h>
26 #include <Imlib2.h>
28 #include "common/util.h"
29 #include "common/refcount.h"
31 typedef struct
33 /** Reference counter */
34 int refcount;
35 /** Imlib2 image */
36 Imlib_Image image;
37 /** Image width */
38 int width;
39 /** Image height */
40 int height;
41 /** Image data */
42 uint8_t *data;
43 } image_t;
45 static inline void
46 image_delete(image_t **i)
48 if(*i)
50 imlib_context_set_image((*i)->image);
51 imlib_free_image();
52 p_delete(&(*i)->data);
53 p_delete(i);
57 DO_RCNT(image_t, image, image_delete)
59 image_t * image_new_from_file(const char *);
60 image_t * image_new_from_argb32(int, int, uint32_t *);
61 uint8_t * image_data_argb32_get(image_t *);
63 int luaA_image_userdata_new(lua_State *, image_t *);
65 #endif
66 // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80