Changeset 48 for branches/clutter-experiments
- Timestamp:
- 01/20/09 18:14:04 (3 years ago)
- Location:
- branches/clutter-experiments
- Files:
-
- 1 added
- 3 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/clutter-experiments/document.hh
r47 r48 9 9 namespace pdfcube { 10 10 11 /** 12 * @brief A document of pdfcube::page elements made from a 13 * PopplerDocument object. 14 */ 11 15 class document 12 16 { 13 17 public: 18 /** @brief Ctor. */ 14 19 document(PopplerDocument* doc) 15 20 : doc_m(doc), … … 20 25 } 21 26 27 /** 28 * @brief Returns ii-th page. 29 */ 22 30 pdfcube::page& 23 31 page(int ii) 24 32 { return *page_m[ii]; } 25 33 34 /** 35 * @brief Returns ii-th page, const version. 36 */ 26 37 const pdfcube::page& 27 38 page(int ii) const 28 39 { return *page_m[ii]; } 29 40 41 /** 42 * @brief Returns number of pages. 43 */ 30 44 int 31 45 n_pages() const -
branches/clutter-experiments/main.cc
r47 r48 48 48 "Presentation PDF file to load", 49 49 "FILE" }, 50 51 50 { NULL } 52 51 }; … … 77 76 guint screen_w = 0; 78 77 guint screen_h = 0; 79 //clutter_actor_set_size(CLUTTER_ACTOR(stage),80 // 640, 480);81 78 clutter_stage_fullscreen (CLUTTER_STAGE (stage)); 82 79 clutter_actor_get_size(CLUTTER_ACTOR(stage), &screen_w, &screen_h); … … 84 81 85 82 // render low res version of all pages 83 // TODO: show fancy progress bar in the meantime. 86 84 for(int ii(0); ii != doc.n_pages(); ++ii) 87 85 { … … 109 107 G_CALLBACK (on_stage_button_press), NULL); 110 108 111 112 109 //clutter_stage_hide_cursor (CLUTTER_STAGE (stage)); 113 110 clutter_actor_show (stage); -
branches/clutter-experiments/page.hh
r47 r48 1 // TODO: move implementation in .cc file 2 // TODO: refine api, it's somewhat ugly right now 3 // TODO: should render in a thread? 1 4 #ifndef __PDFCUBE__PAGE_HH__ 2 5 #define __PDFCUBE__PAGE_HH__ … … 7 10 #include <gdk-pixbuf/gdk-pixbuf.h> 8 11 9 namespace pdfcube { 12 namespace pdfcube 13 { 10 14 15 /** 16 * @brief The pdfcube::page class is the link between a PopplerPage 17 * and ClutterActor GObjects. 18 * 19 * This class is used to render low and hi res version of a 20 * PopplerPage as a ClutterActor. 21 * 22 * Usually on start all the pages will be rendered in a low res 23 * version, while higher res versions will be rendered on demand by 24 * the animations. We need to program the animations in advance so 25 * that we can pre-render hi-res versions of the pages before the 26 * animations begins. One way can be to read animations from the 27 * PDF. 28 * 29 */ 11 30 class page 12 31 { 13 32 public: 33 /** 34 * @brief Ctor. 35 * 36 * This is used internally by pdfcube::document. (FIXME: make 37 * protected and friend of document?) 38 * 39 * @param poppler_page a PopplerPage* 40 * 41 */ 14 42 page(PopplerPage* poppler_page) 15 43 : poppler_page_m(poppler_page), … … 20 48 enum rendering_mode { LOW_RES, HI_RES }; 21 49 50 /** 51 * @brief Renders the PopplerPage on the desired actor. 52 */ 22 53 void 23 54 render(rendering_mode mode) … … 41 72 buffer); 42 73 GError* error; 43 low_res_m = clutter_texture_new();74 if(!low_res_m) low_res_m = clutter_texture_new(); 44 75 clutter_texture_set_from_rgb_data 45 76 (CLUTTER_TEXTURE(low_res_m), … … 51 82 4, (ClutterTextureFlags)0, 52 83 &error); 84 g_object_unref(buffer); 53 85 break; 54 86 } … … 69 101 buffer); 70 102 GError* error; 71 hi_res_m = clutter_texture_new();103 if(!hi_res_m) hi_res_m = clutter_texture_new(); 72 104 clutter_texture_set_from_rgb_data 73 105 (CLUTTER_TEXTURE(hi_res_m), … … 79 111 4, (ClutterTextureFlags)0, 80 112 &error); 113 g_object_unref(buffer); 81 114 break; 82 115 } … … 84 117 }; 85 118 119 /** 120 * @brief Frees an unneeded actor. 121 */ 86 122 void 87 123 free(rendering_mode mode) … … 90 126 { 91 127 case LOW_RES: 92 //gobject_unref(low_res_m);128 g_object_unref(low_res_m); 93 129 low_res_m = NULL; 94 130 break; 95 131 case HI_RES: 96 //gobject_unref(hi_res_m);132 g_object_unref(hi_res_m); 97 133 hi_res_m = NULL; 98 134 break; … … 100 136 }; 101 137 138 /** 139 * @brief Tells if the desired version is available. 140 */ 102 141 bool 103 142 has(rendering_mode mode) … … 110 149 return hi_res_m != NULL; 111 150 } 151 return false; 112 152 }; 113 153 154 /** 155 * @brief Returns the desired actor (on NULL if not present). 156 */ 114 157 ClutterActor* 115 158 actor(rendering_mode mode) … … 122 165 return hi_res_m; 123 166 } 167 return NULL; 124 168 } 125 169

