Home | History | Annotate | Download | only in ewk
      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