Show
Ignore:
Timestamp:
01/20/09 18:14:04 (3 years ago)
Author:
mirko
Message:

simplistic makefile

Location:
branches/clutter-experiments
Files:
1 added
3 modified

Legend:

Unmodified
Added
Removed
  • branches/clutter-experiments/document.hh

    r47 r48  
    99namespace pdfcube { 
    1010 
     11  /** 
     12   * @brief A document of pdfcube::page elements made from a 
     13   * PopplerDocument object. 
     14   */ 
    1115  class document  
    1216  { 
    1317  public: 
     18    /** @brief Ctor. */ 
    1419    document(PopplerDocument* doc) 
    1520      : doc_m(doc),  
     
    2025    } 
    2126 
     27    /** 
     28     * @brief Returns ii-th page. 
     29     */ 
    2230    pdfcube::page&  
    2331    page(int ii)  
    2432    { return *page_m[ii]; } 
    2533 
     34    /** 
     35     * @brief Returns ii-th page, const version. 
     36     */ 
    2637    const pdfcube::page&  
    2738    page(int ii) const  
    2839    { return *page_m[ii]; } 
    2940 
     41    /** 
     42     * @brief Returns number of pages. 
     43     */ 
    3044    int  
    3145    n_pages() const  
  • branches/clutter-experiments/main.cc

    r47 r48  
    4848      "Presentation PDF file to load",  
    4949      "FILE" }, 
    50      
    5150    { NULL } 
    5251  }; 
     
    7776  guint screen_w = 0; 
    7877  guint screen_h = 0; 
    79   //clutter_actor_set_size(CLUTTER_ACTOR(stage),  
    80   //                     640, 480); 
    8178  clutter_stage_fullscreen (CLUTTER_STAGE (stage)); 
    8279  clutter_actor_get_size(CLUTTER_ACTOR(stage), &screen_w, &screen_h); 
     
    8481 
    8582  // render low res version of all pages 
     83  // TODO: show fancy progress bar in the meantime. 
    8684  for(int ii(0); ii != doc.n_pages(); ++ii) 
    8785    { 
     
    109107                    G_CALLBACK (on_stage_button_press), NULL); 
    110108 
    111  
    112109  //clutter_stage_hide_cursor (CLUTTER_STAGE (stage)); 
    113110  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? 
    14#ifndef __PDFCUBE__PAGE_HH__ 
    25#define __PDFCUBE__PAGE_HH__ 
     
    710#include <gdk-pixbuf/gdk-pixbuf.h> 
    811 
    9 namespace pdfcube { 
     12namespace pdfcube  
     13{ 
    1014 
     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   */ 
    1130  class page  
    1231  { 
    1332  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     */ 
    1442    page(PopplerPage* poppler_page)  
    1543      : poppler_page_m(poppler_page), 
     
    2048    enum rendering_mode { LOW_RES, HI_RES }; 
    2149     
     50    /** 
     51     * @brief Renders the PopplerPage on the desired actor. 
     52     */ 
    2253    void 
    2354    render(rendering_mode mode) 
     
    4172                                          buffer); 
    4273            GError* error; 
    43             low_res_m = clutter_texture_new(); 
     74            if(!low_res_m) low_res_m = clutter_texture_new(); 
    4475            clutter_texture_set_from_rgb_data  
    4576               (CLUTTER_TEXTURE(low_res_m), 
     
    5182                4, (ClutterTextureFlags)0, 
    5283                &error); 
     84            g_object_unref(buffer); 
    5385            break; 
    5486          } 
     
    69101                                          buffer); 
    70102            GError* error; 
    71             hi_res_m = clutter_texture_new(); 
     103            if(!hi_res_m) hi_res_m = clutter_texture_new(); 
    72104            clutter_texture_set_from_rgb_data  
    73105               (CLUTTER_TEXTURE(hi_res_m), 
     
    79111                4, (ClutterTextureFlags)0, 
    80112                &error); 
     113            g_object_unref(buffer); 
    81114            break; 
    82115          } 
     
    84117    }; 
    85118 
     119    /** 
     120     * @brief Frees an unneeded actor. 
     121     */ 
    86122    void 
    87123    free(rendering_mode mode) 
     
    90126        { 
    91127        case LOW_RES: 
    92           //gobject_unref(low_res_m); 
     128          g_object_unref(low_res_m); 
    93129          low_res_m = NULL; 
    94130          break; 
    95131        case HI_RES: 
    96           //gobject_unref(hi_res_m); 
     132          g_object_unref(hi_res_m); 
    97133          hi_res_m = NULL; 
    98134          break; 
     
    100136    }; 
    101137 
     138    /** 
     139     * @brief Tells if the desired version is available. 
     140     */ 
    102141    bool 
    103142    has(rendering_mode mode) 
     
    110149          return hi_res_m != NULL; 
    111150        } 
     151      return false; 
    112152    }; 
    113153 
     154    /** 
     155     * @brief Returns the desired actor (on NULL if not present). 
     156     */ 
    114157    ClutterActor*  
    115158    actor(rendering_mode mode) 
     
    122165          return hi_res_m; 
    123166        } 
     167      return NULL; 
    124168    } 
    125169