Show
Ignore:
Timestamp:
01/22/09 22:43:20 (3 years ago)
Author:
mirko
Message:

A decent index page with clutter, experimental branch

Files:
1 modified

Legend:

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

    r48 r50  
    4646    { } 
    4747     
     48    double 
     49    aspect_ratio() 
     50    { 
     51      double w, h; 
     52      poppler_page_get_size(poppler_page_m, &w, &h); 
     53      return w/h; 
     54    } 
     55 
     56    std::pair<double, double> 
     57    size() 
     58    { 
     59      double w, h; 
     60      poppler_page_get_size(poppler_page_m, &w, &h); 
     61      return std::make_pair(w,h); 
     62    } 
     63     
    4864    enum rendering_mode { LOW_RES, HI_RES }; 
    4965     
     
    5874        case LOW_RES: 
    5975          { 
    60             double w, h; 
     76            int w,h; 
     77            // we assume 4/3 aspect monitor can do better 
     78            double box_w = 320; 
     79            double box_h = 240; 
     80            double aspect = aspect_ratio(); 
     81            // Check if our slot ratio is less or more than owr own 
     82            if(box_h > box_w/aspect) 
     83              { 
     84                w = box_w; 
     85                h = w/aspect; 
     86              } 
     87            else  
     88              { 
     89                h = box_h; 
     90                w = h*aspect; 
     91              } 
     92 
    6193            GdkPixbuf* buffer = NULL; 
    62             poppler_page_get_size(poppler_page_m, &w, &h); 
    63             g_print("Page %f by %f\n", w, h); 
    64             buffer = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 320, 240); 
     94            buffer = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, w, h); 
    6595            poppler_page_render_to_pixbuf(poppler_page_m,  
    6696                                          0, 
    6797                                          0,  
    68                                           320,  
    69                                           240,  
    70                                           240.0f/h,  
     98                                          w,  
     99                                          h,  
     100                                          ((double)h)/size().second,  
    71101                                          0,  
    72102                                          buffer); 
     
    87117        case HI_RES: 
    88118          { 
    89             double w, h; 
     119            int w, h; 
     120            // we assume 4/3 aspect monitor can do better 
     121            double box_w = 1600; 
     122            double box_h = 1200; 
     123            double aspect = aspect_ratio(); 
     124            // Check if our slot ratio is less or more than owr own 
     125            if(box_h > box_w/aspect) 
     126              { 
     127                w = box_w; 
     128                h = w/aspect; 
     129              } 
     130            else  
     131              { 
     132                h = box_h; 
     133                w = h*aspect; 
     134              } 
    90135            GdkPixbuf* buffer = NULL; 
    91             poppler_page_get_size(poppler_page_m, &w, &h); 
    92             g_print("Page is %f by %f\n", w, h); 
    93             buffer = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 1600, 1200); 
     136            buffer = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, w, h); 
    94137            poppler_page_render_to_pixbuf(poppler_page_m,  
    95138                                          0, 
    96139                                          0,  
    97                                           1600,  
    98                                           1200,  
    99                                           1200.0f/h,  
     140                                          w,  
     141                                          h,  
     142                                          ((double)h)/size().second,  
    100143                                          0,  
    101144                                          buffer);