1 /* 2 Copyright (C) 2009-2010 Samsung Electronics 3 Copyright (C) 2009-2010 ProFUSION embedded systems 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Library General Public 7 License as published by the Free Software Foundation; either 8 version 2 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public License 16 along with this library; see the file COPYING.LIB. If not, write to 17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. 19 */ 20 21 #ifndef ewk_tiled_model_h 22 #define ewk_tiled_model_h 23 24 #include "ewk_eapi.h" 25 #include "ewk_tiled_backing_store.h" 26 27 #include <Evas.h> 28 29 /* model */ 30 EAPI Ewk_Tile *ewk_tile_new(Evas *evas, Evas_Coord w, Evas_Coord h, float zoom, Evas_Colorspace cspace); 31 EAPI void ewk_tile_free(Ewk_Tile *t); 32 EAPI void ewk_tile_unused_cache_clear(Ewk_Tile_Unused_Cache *tuc); 33 EAPI void ewk_tile_show(Ewk_Tile *t); 34 EAPI void ewk_tile_hide(Ewk_Tile *t); 35 Eina_Bool ewk_tile_visible_get(Ewk_Tile *t); 36 EAPI void ewk_tile_update_full(Ewk_Tile *t); 37 EAPI void ewk_tile_update_area(Ewk_Tile *t, const Eina_Rectangle *r); 38 EAPI void ewk_tile_updates_process(Ewk_Tile *t, void (*cb)(void *data, Ewk_Tile *t, const Eina_Rectangle *update), const void *data); 39 EAPI void ewk_tile_updates_clear(Ewk_Tile *t); 40 41 /* cache of unused tiles */ 42 EAPI Ewk_Tile_Unused_Cache *ewk_tile_unused_cache_new(size_t max); 43 EAPI void ewk_tile_unused_cache_lock_area(Ewk_Tile_Unused_Cache *tuc, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom); 44 EAPI void ewk_tile_unused_cache_unlock_area(Ewk_Tile_Unused_Cache *tuc); 45 EAPI void ewk_tile_unused_cache_free(Ewk_Tile_Unused_Cache *tuc); 46 EAPI Ewk_Tile_Unused_Cache *ewk_tile_unused_cache_ref(Ewk_Tile_Unused_Cache *tuc); 47 EAPI void ewk_tile_unused_cache_unref(Ewk_Tile_Unused_Cache *tuc); 48 49 EAPI void ewk_tile_unused_cache_dirty(Ewk_Tile_Unused_Cache *tuc); 50 51 EAPI void ewk_tile_unused_cache_freeze(Ewk_Tile_Unused_Cache *tuc); 52 EAPI void ewk_tile_unused_cache_thaw(Ewk_Tile_Unused_Cache *tuc); 53 54 EAPI Eina_Bool ewk_tile_unused_cache_tile_get(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t); 55 EAPI Eina_Bool ewk_tile_unused_cache_tile_put(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t, void (*tile_free_cb)(void *data, Ewk_Tile *t), const void *data); 56 57 #endif // ewk_tiled_model_h 58 59