Show
Ignore:
Timestamp:
11/12/08 15:57:30 (6 years ago)
Author:
robert
Message:

Improved filepath handling, and increased the image resolution for better rendering quality

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgpdf/osgpdf.cpp

    r9156 r9158  
    77#include <osgViewer/ViewerEventHandlers> 
    88 
     9#include <osgDB/FileUtils> 
     10#include <osgDB/FileNameUtils> 
    911#include <osgDB/ReadFile> 
    1012 
     
    9496        { 
    9597            osg::notify(osg::NOTICE)<<"open("<<filename<<")"<<std::endl; 
     98             
     99            std::string foundFile = osgDB::findDataFile(filename); 
     100            if (foundFile.empty()) 
     101            { 
     102                osg::notify(osg::NOTICE)<<"could not find filename="<<filename<<std::endl; 
     103                return false; 
     104            } 
     105             
     106            osg::notify(osg::NOTICE)<<"foundFile = "<<foundFile<<std::endl; 
     107            foundFile = osgDB::getRealPath(foundFile); 
     108            osg::notify(osg::NOTICE)<<"foundFile = "<<foundFile<<std::endl; 
    96109 
    97110            static bool gTypeInit = false; 
     
    99112            if(!gTypeInit) 
    100113            { 
    101                     g_type_init(); 
    102  
    103                     gTypeInit = true; 
     114                g_type_init(); 
     115 
     116                gTypeInit = true; 
    104117            } 
    105  
    106             PopplerDocument* doc = poppler_document_new_from_file(filename.c_str(), NULL, NULL); 
     118             
     119            std::string uri = std::string("file:") + foundFile; 
     120 
     121            PopplerDocument* doc = poppler_document_new_from_file(uri.c_str(), NULL, NULL); 
    107122            if (!doc)  
    108123            { 
    109                 osg::notify(osg::NOTICE)<<" could not open("<<filename<<")"<<std::endl; 
     124                osg::notify(osg::NOTICE)<<" could not open("<<filename<<"), uri="<<uri<<std::endl; 
    110125 
    111126                return false; 
     
    171186            poppler_page_get_size(page, &w, &h); 
    172187 
    173             create((unsigned int)(w),(unsigned int)(h)); 
     188            create((unsigned int)(w*2.0),(unsigned int)(h*2.0)); 
    174189 
    175190            double r = 1.0; 
     
    181196             
    182197                cairo_set_source_rgba(_context, r, g, b, a); 
    183                 cairo_rectangle(_context, 0.0, 0.0, w, h); 
     198                cairo_rectangle(_context, 0.0, 0.0, double(s()), double(t())); 
    184199                cairo_fill(_context); 
    185200 
     201                cairo_scale(_context, double(s())/w, double(t())/h); 
     202 
    186203                poppler_page_render(page, getContext()); 
    187204             
     205 
    188206            cairo_restore(_context); 
    189207