Changeset 65 for trunk

Show
Ignore:
Timestamp:
11/19/11 11:57:53 (6 months ago)
Author:
mirko
Message:

bug fixes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/pdfcube.cc

    r62 r65  
    3939#include <gtk/gtkgl.h> 
    4040 
    41 // OpenGL (-lglut) 
     41// OpenGL 
    4242#include <GL/gl.h> 
    4343#include <GL/glu.h> 
     
    139139    pixmap = 
    140140      cairo_image_surface_create(CAIRO_FORMAT_ARGB32,  
    141                                  tex_width, 
    142                                  tex_height); 
     141                                 (double)tex_width, 
     142                                 (double)tex_height); 
    143143    context = cairo_create(pixmap); 
    144     cairo_scale(context, tex_width/w, (double)tex_height/h); 
     144    cairo_scale(context, ((double)tex_width)/w, ((double)tex_height)/h); 
    145145 
    146146    steps = new GLfloat[N_FRAMES]; 
     
    236236  void 
    237237  initialize(GtkWidget * widget) { 
    238     GLfloat position[] = { 1.0, 1.0, 0.0, 1.0 }; 
     238    GLfloat position[] = { 1.0, 0.0, 0.0, 1.0 }; 
    239239    GLfloat local_view[] = { 0.0 }; 
    240240 
     
    242242    glEnable(GL_TEXTURE_RECTANGLE_ARB); 
    243243 
    244     GLfloat mat_ambient[] = { 0.0, 0.0, 0.0, 0.00 }; 
    245     GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 0.00 }; 
    246     GLfloat mat_shininess[] = { 3.0 }; 
     244    GLfloat mat_ambient[] = { 1.0, 1.0, 1.0, 0.00 }; 
     245    // GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 0.00 }; 
     246    // GLfloat mat_shininess[] = { 0.2 }; 
    247247 
    248248    glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); 
     
    252252    glEnable(GL_LIGHTING); 
    253253    glEnable(GL_LIGHT0); 
    254     glEnable(GL_BLEND); 
     254    // glEnable(GL_BLEND); 
    255255    glEnable(GL_CULL_FACE); 
    256     glEnable(GL_POLYGON_SMOOTH); 
    257     glPolygonMode(GL_FRONT, GL_FILL); 
    258     glEdgeFlag(GL_FALSE); 
     256    // glEnable(GL_POLYGON_SMOOTH); 
     257    // glPolygonMode(GL_FRONT, GL_FILL); 
     258    // glEdgeFlag(GL_FALSE); 
    259259     
    260     glClearColor(clear_color[0], clear_color[1], clear_color[2], clear_color[3]); 
     260    glClearColor(clear_color[0], clear_color[1], clear_color[2],  
     261                 clear_color[3]); 
    261262    glCullFace(GL_FRONT); 
    262     glDisable(GL_DEPTH_TEST); 
    263  
    264 //    glEnable(GL_DEPTH_TEST); 
    265 //    glDepthFunc(GL_LEQUAL); 
     263    // glDisable(GL_DEPTH_TEST); 
     264 
     265    // glEnable(GL_DEPTH_TEST); 
     266    // glDepthFunc(GL_LEQUAL); 
    266267    glLightfv(GL_LIGHT0, GL_POSITION, position); 
    267     glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view); 
    268  
    269     glFrontFace(GL_CCW); 
    270     glEnable(GL_LIGHTING); 
    271     glEnable(GL_LIGHT0); 
     268    glLightfv(GL_LIGHT0, GL_COLOR, mat_ambient); 
     269    // glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view); 
     270 
     271    // glFrontFace(GL_CCW); 
     272    // glEnable(GL_LIGHTING); 
     273    // glEnable(GL_LIGHT0); 
    272274    glEnable(GL_AUTO_NORMAL); 
    273275    glEnable(GL_NORMALIZE); 
     
    722724 
    723725      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    724       //      glClear(GL_COLOR_BUFFER_BIT); 
    725726      glMatrixMode(GL_PROJECTION); 
    726727      glLoadIdentity(); 
     
    10441045  render_page(int i) { 
    10451046    PopplerPage *page; 
     1047    double w, h; 
    10461048    page = poppler_document_get_page(doc, i); 
    1047     //double w,h; 
    1048     //poppler_page_get_size(page, &w, &h); 
     1049    poppler_page_get_size(page, &w, &h); 
    10491050    cairo_save(context); 
    1050     unsigned char* data = cairo_image_surface_get_data(pixmap); 
    1051     std::fill(data, data+4*tex_width*tex_height, 0); 
    1052     cairo_surface_mark_dirty(pixmap); 
     1051    cairo_rectangle(context, 0.0, 0.0, w, h); 
     1052    cairo_set_source_rgb(context, 1.0, 1.0, 1.0); 
     1053    cairo_fill(context); 
    10531054    poppler_page_render(page, context); 
    10541055    cairo_restore(context); 
     
    18001801  /* Try double-buffered visual */ 
    18011802  glconfig = gdk_gl_config_new_by_mode((GdkGLConfigMode) 
    1802                                        (GDK_GL_MODE_RGBA | 
    1803                                         GDK_GL_MODE_ALPHA | 
    1804                                         GDK_GL_MODE_RGB | 
     1803                                       (GDK_GL_MODE_RGB | 
    18051804                                        GDK_GL_MODE_DEPTH | 
    1806                                         GDK_GL_MODE_DOUBLE)); 
     1805                                        GDK_GL_MODE_DOUBLE 
     1806                                        )); 
    18071807  if (glconfig == NULL) { 
    18081808    g_print("\n*** Cannot find the double-buffered visual.\n"); 
     
    18991899    cout << endl << "pdfcube 0.0.4" << endl; 
    19001900    cout << "=============" << endl; 
    1901     cout << "Copyright (C) 2006-2008 Mirko Maischberger <mirko.maischberger@gmail.com>" << endl; 
     1901    cout << "Copyright (C) 2006-2011 Mirko Maischberger <mirko.maischberger@gmail.com>" << endl; 
    19021902    cout << "                   2008 Karol Sokolowski   <sokoow@gmail.com>" <<  endl << endl; 
    19031903    cout << opts << endl; 
     
    20182018              break; 
    20192019            case POPPLER_PAGE_TRANSITION_BOX: 
     2020              cerr << "Supported transition type (" << transition->type  
     2021                   << ") at page " << (ii+1) << endl; 
    20202022              page_transition[ii] = true; 
    20212023              break; 
    20222024            default: 
    2023               cerr << "Unsuported transition type (" << transition->type  
     2025              cerr << "Unsupported transition type (" << transition->type  
    20242026                   << ") at page " << (ii+1) << endl; 
    20252027              break;