Changeset 1902

Show
Ignore:
Timestamp:
04/18/03 17:59:34 (11 years ago)
Author:
robert
Message:

Updated NEWS for the release.

Fixed warnings.

Location:
OpenSceneGraph/trunk
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/NEWS.txt

    r1889 r1902  
    44================================================ 
    55 
    6     osgProducer library adds very tight integration with OpenProducer, 
    7     provide the OpenSceneGraph with a scalable, configurable and portable  
    8     framework for developing real-time and interactive graphics application. 
    9     The scalability afforded by OpenProducer allows applications to be 
    10     developed which seemlessly run on single pipe machines up to multi-pipe 
    11     machines such as Sgi Onyx IR system, and Sun Zulu systems, through 
    12     to running of clusters.  The osgProducer/OpenProducer framework 
    13     automatically handles the multi-threading of cull-draw pairs and GUI  
    14     events. 
     618th April 2003  - OpenSceneGraph-0.9.4 
     7 
     8    >>> Multi-threaded, multi-pipe support via integration with OpenProducer, 
     9    >>> 64bit Linux support for Intel Intanium and AMD Opteron, 
     10    >>> new osgText library with greater performance, and thread safety, 
     11    >>> new DDS plug-in for compressed and non-compressed images, 
     12    >>> new MD2 plug-in adds support for animate Quake character, 
     13    >>> support added for NV_texture_rectangle. 
     14 
     15    The most significant new feature is the osgProducer library that adds  
     16    tight integration with OpenProducer, providing the OpenSceneGraph with a  
     17    scalable, configurable and portable framework for developing real-time  
     18    and interactive graphics applications.  The scalability afforded by  
     19    OpenProducer allows applications to be developed which run seamlessly  
     20    on single pipe machines up to multi-pipe machines such as Sgi Onyx  
     21    IR system, and Sun Zulu systems. 
     22    The osgProducer/OpenProducer framework automatically handles the  
     23    multi-threading of cull-draw pairs and GUI events. 
    1524 
    1625    All the example programs have been ported over from being based on 
    17     GLUT to using osgProducer.  This allows all the examples to scale from 
    18     running on laptops up to multiple cpu and graphics pipe systems. The 
     26    GLUT to using osgProducer. This allows all the examples to scale from 
     27    running on laptops up to multiple CPU and graphics pipe systems. The 
    1928    configuration of threading and multiple camera views can all be done 
    20     via ASCII configuration files, no need to recompile.  
    21  
    22     Added Linux 64 bit support for IA64 (Intel Itanium) and x86-64 (AMD Opteron) 
    23     which augments the existing support for Solaris and IRIX 64 bit compilation. 
    24     64 bit supports allows the use of very large data set, and potential  
    25     peformance improvemnts. 
    26  
    27     Improvements to the makefile system, all makefiles are now named 
    28     GNUmakefile which ensures that they are only run by gmake.  The new system 
    29     allow multiple build targets to be built from one source code install. 
    30  
    31     Completely new osgText implemention which is simpler to use, faster, and 
    32     thread safe.  Support for high quality true type fonts has now been moved 
    33     to a freetype plugin which is dynamically loaded on demand, with the 
    34     core osgText library providing a default font when the plugin is 
    35     unavailable.  Moving the freetype dependancy out of the osgText allows 
    36     the text library to be just dependant on OpenGL and Standard C++ like 
    37     the rest of the core libraries, virtual of this osgText now compiles  
    38     by default on platforms. 
    39  
    40     Improved thread safety when working multipipe systems. 
    41  
    42     New DDS plugin for loading compressed and non-compressed images. 
    43  
    44     New MD2 plugin which allows Quake animated characters to be loaded 
    45     into the OSG. 
    46      
    47     New osg::TextureRectangle texture class which encapsulates the 
    48     NV_texture_rectangle and EXT_texture_rectange extensions. 
    49  
    50     Added automatic subloading of textures when image data is updated. 
    51      
    52     Added the option of automatic unref'ing of texture image data once the data has 
    53     been download to OpenGL to active graphics contexts. 
    54      
    55     New osgUtil::DelaunayTriangulator utlity class for tesselating data points. 
    56  
    57     New osg::ArgumentParser and osg::ApplicationUsage classes for  
    58     convineiently and robustly parsing command line arguments and 
    59     report command line usage, environmental variables and 
    60     keyboard and mouse bindings used by applications.  Running any 
    61     of the examples with -h or --help will report full details example 
    62     usage.  Keyboard and Mouse bindings usage is now also available as 
    63     a HUD on all examples, simply press 'h' while the app is runing to 
     29    via ASCII configuration files, no need to recompile.  A number of  
     30    new examples have also been added or revamped, bringing the total to 42. 
     31 
     32    Also in the theme of increasing scalability there is support for 64bit Linux for both 
     33    IA64 (Intel Itanium) and x86-64 (AMD Opteron) which compliments the existing  
     34    support for Solaris and IRIX 64 bit compilation.  64 bit supports allows  
     35    the use of very large data sets, and potential performance improvements. 
     36 
     37    To help support development teams working with multiple build configuration, 
     38    the makefile system has been extended to allow multiple build targets to be  
     39    built from one source code base.  All makefiles are also now named GNUmakefile  
     40    which ensures that they are only run by gmake to avoid an confusion on system 
     41    where gmake isn't the default make tool. 
     42 
     43    A completely new osgText implemention has been developed which is simpler  
     44    to use, faster, and thread safe.  Support for high quality true type fonts  
     45    has now been moved to a freetype plug-in which is dynamically loaded on demand,  
     46    with the core osgText library providing a default font when the plug-in is 
     47    unavailable.  Moving the freetype dependency out of the osgText library makes 
     48    it just dependant on OpenGL and Standard C++ like the rest of the core libraries,  
     49    allowing osgText to compile by default on all platforms. 
     50 
     51    Improved thread safety has also been achieved in the core osg and osgUtil libraries 
     52    making work on multiple CPU/multi-pipe systems robust and with improved performance. 
     53 
     54    Two new plug-ins have been added, for loading DDS and MD2 data formats. The DDS plug-in 
     55    is for loading compressed and non-compressed images.  The MD2 plug-in loads Quake  
     56    animated characters. 
     57     
     58    osg::TextureRectangle class has been added, which encapsulates the 
     59    NV_texture_rectangle and EXT_texture_rectangle extensions.  This is particularly 
     60    useful for render to texture algorithms, and dynamic paging of images such as for 
     61    rendering video streams. 
     62 
     63    Support for automatic subloading of osg::Texture2D textures has been added 
     64    so that when image data is updated the corresponding OpenGL texture is 
     65    automatically updated - no need for callbacks.  Also added to the osg::Texture 
     66    classes is the option of automatic unref'ing of texture image data once the data has 
     67    been download to all active OpenGL graphics contexts. 
     68     
     69    A new osgUtil::DelaunayTriangulator utility class has been added.  This is ideal for 
     70    creating optimal triangular meshes from unconnected data points. 
     71 
     72    Two new classes, osg::ArgumentParser and osg::ApplicationUsage, have been introduced 
     73    to convineiently and robustly parse command line arguments and 
     74    report command line usage, environmental variables and keyboard and mouse bindings  
     75    used by applications.  Running any of the examples with -h or --help will report  
     76    full details example usage.  Keyboard and Mouse bindings usage is now also available as 
     77    a HUD on all examples, simply press 'h' while the app is running to 
    6478    bring up help. 
    6579 
    66     New database cache in the osgDB library. 
    67      
    68     Added support for early abort of rendering, useful for interactive 
    69     applications which occasional have rendering that takes that long 
    70     enough (i.e. several seconds) that end users may wish to abort  
    71     during the drawing. 
    72  
    73     Clean up of memory management in the OpenFlight loader. 
    74  
    75     Various API clean ups and bug fixes. 
     80    A database cache in the osgDB library has been added, along with a clean up 
     81    of memory management in the OpenFlight loader, make development of 
     82    dynamic paging of databases easier and more robust. 
     83     
     84    Support for early abort of rendering has been added, which is useful for  
     85    interactive applications which occasionally have rendering that takes that long 
     86    enough (i.e.several seconds) that end users may wish to abort during the drawing. 
     87 
     88    There have also been many general API improvements and bug fixes, too many to enumerate, 
     89    but all go to solidify the quality of the scene graph and its accompanying libraries.   
     90     
     91    The combination of new features, robustness and scalability mark this release as a 
     92    significant step towards 1.0.   
     93     
     94 
    7695 
    779624th January 2003 - OpenSceneGraph-0.9.3.tar.gz 
     
    396415     
    397416 
    398 24th February 2002 - osg-0.8.44.tar.gz 
     41724th February 2002 - osg-0.8.44.tar.gzosg- 
    399418 
    400419    >>> Support added for Mac OSX, Cygwin and MinGW, and new TerraPage loader. 
  • OpenSceneGraph/trunk/doc/dependencies.html

    r1869 r1902  
    8282src/osgProducer - The osgProducer library depends upon, you guessed it, Producer...</li> 
    8383 
    84 <ul><i><a href="http://www.andesengineering.com/BlueMarbleViewer/producer_install.html">"http://www.andesengineering.com/BlueMarbleViewer/producer_install.html</a></i></ul> 
     84<ul><i><a href="http://www.andesengineering.com/Producer">"http://www.andesengineering.com/Producer</a></i></ul> 
    8585</ul> 
    8686 
  • OpenSceneGraph/trunk/examples/osgoccluder/osgoccluder.cpp

    r1851 r1902  
    2727    public: 
    2828     
    29         OccluderEventHandler(osgUtil::SceneView* sceneview,osg::Group* rootnode):_sceneview(sceneview),_rootnode(rootnode) {} 
     29        OccluderEventHandler(osgProducer::Viewer* viewer):_viewer(viewer) {} 
    3030     
    3131        virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter&); 
     
    4040        void endOccluder(); 
    4141         
    42          
    43         osg::ref_ptr<osgUtil::SceneView>        _sceneview; 
     42        osg::Group* rootNode() { return dynamic_cast<osg::Group*>(_viewer->getSceneData()); } 
     43         
     44         
     45        osgProducer::Viewer*                    _viewer; 
    4446        osg::ref_ptr<osg::Group>                _rootnode; 
    4547        osg::ref_ptr<osg::Group>                _occluders; 
     
    5658            { 
    5759 
    58                 float x = ea.getX(); 
    59                 float y = ea.getY(); 
     60                float x = ea.getXnormalized(); 
     61                float y = ea.getYnormalized(); 
    6062  
    61                 osg::Vec3 near_point,far_point; 
    62                 if (!_sceneview->projectWindowXYIntoObject(x,ea.getYmax()-y,near_point,far_point)) 
     63                osgUtil::IntersectVisitor::HitList hitList; 
     64                if (!_viewer->computeIntersections(x,y,hitList)) 
    6365                { 
    6466                     return true; 
    6567                } 
    6668 
    67                 osg::ref_ptr<osg::LineSegment> lineSegment = new osg::LineSegment; 
    68                 lineSegment->set(near_point,far_point); 
    69  
    70                 osgUtil::IntersectVisitor iv; 
    71                 iv.addLineSegment(lineSegment.get()); 
    72  
    73                 _rootnode->accept(iv); 
    74  
    75                 if (iv.hits()) 
     69                if (!hitList.empty()) 
    7670                { 
    77                  
    78                     osgUtil::IntersectVisitor::HitList& hitList = iv.getHitList(lineSegment.get()); 
    79                     if (!hitList.empty()) 
    80                     { 
    81                      
    82                         osgUtil::Hit& hit = hitList.front(); 
    83                         addPoint(hit.getWorldIntersectPoint()); 
    84                     } 
    85  
     71 
     72                    osgUtil::Hit& hit = hitList.front(); 
     73                    addPoint(hit.getWorldIntersectPoint()); 
    8674                } 
    8775 
     
    9785                if (_occluders.valid()) 
    9886                { 
    99                     std::cout<<"saving occluders to 'saved_occluders.osg'"<<std::endl; 
    100                     osgDB::writeNodeFile(*_occluders,"saved_occluders.osg"); 
     87                     
     88                    if (osgDB::writeNodeFile(*_occluders,"saved_occluders.osg")) 
     89                        std::cout<<"saved occluders to 'saved_occluders.osg'"<<std::endl; 
    10190                } 
    10291                else 
     
    137126            { 
    138127                _occluders = new osg::Group; 
    139                 _rootnode->addChild(_occluders.get()); 
     128                if (rootNode()) rootNode()->addChild(_occluders.get()); 
    140129            } 
    141130            _occluders->addChild(occluderNode); 
     
    298287    while (arguments.read("-m")) { manuallyCreateOccluders = true; } 
    299288 
     289    if (manuallyCreateOccluders) 
     290    { 
     291        viewer.getEventHandlerList().push_front(new OccluderEventHandler(&viewer)); 
     292    } 
     293 
    300294    // get details on keyboard and mouse bindings used by the viewer. 
    301295    viewer.getUsage(*arguments.getApplicationUsage()); 
     
    350344    viewer.realize(); 
    351345 
    352     if (manuallyCreateOccluders) 
    353     { 
    354         osgUtil::SceneView* sceneview = viewer.getSceneHandlerList()[0].get(); 
    355      
    356         viewer.getEventHandlerList().push_front(new OccluderEventHandler(sceneview,rootnode.get())); 
    357     } 
    358346 
    359347    while( !viewer.done() ) 
  • OpenSceneGraph/trunk/src/osgPlugins/txp/trpage_material.cpp

    r1431 r1902  
    12091209            return totSize; 
    12101210        } 
     1211    default: 
     1212        break;         
    12111213    }; 
    12121214 
     
    13431345        pixel_size = 2; 
    13441346        break; 
     1347    default: 
     1348        break; 
    13451349    } 
    13461350 
  • OpenSceneGraph/trunk/src/osgProducer/Viewer.cpp

    r1894 r1902  
    438438    if (computePixelCoords(x,y,cameraNum,pixel_x,pixel_y)) 
    439439    { 
    440         return scenehandler->projectWindowXYIntoObject(pixel_x,pixel_y,near_point,far_point); 
     440        return scenehandler->projectWindowXYIntoObject((int)(pixel_x+0.5f),(int)(pixel_y+0.5f),near_point,far_point); 
    441441    } 
    442442    return false; 
  • OpenSceneGraph/trunk/src/osgProducer/ViewerEventHandler.cpp

    r1896 r1902  
    227227            text->setFont("fonts/arial.ttf"); 
    228228            text->setColor(colorDescription); 
    229             text->setFontSize(characterSize,characterSize); 
     229            text->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    230230            text->setCharacterSize(characterSize); 
    231231            text->setPosition(posDescription); 
     
    253253            text->setFont("fonts/arial.ttf"); 
    254254            text->setColor(colorOption); 
    255             text->setFontSize(characterSize,characterSize); 
     255            text->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    256256            text->setCharacterSize(characterSize); 
    257257            text->setPosition(posOption); 
     
    280280            text->setFont("fonts/arial.ttf"); 
    281281            text->setColor(colorExplanation); 
    282             text->setFontSize(characterSize,characterSize); 
     282            text->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    283283            text->setCharacterSize(characterSize); 
    284284            text->setPosition(posExplanation); 
     
    614614        text->setFont("fonts/arial.ttf"); 
    615615        text->setColor(colorUpdate); 
    616         text->setFontSize(characterSize,characterSize); 
     616        text->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    617617        text->setCharacterSize(characterSize); 
    618618        text->setPosition(pos); 
     
    628628        _updateTimeText->setFont("fonts/arial.ttf"); 
    629629        _updateTimeText->setColor(colorUpdate); 
    630         _updateTimeText->setFontSize(characterSize,characterSize); 
     630        _updateTimeText->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    631631        _updateTimeText->setCharacterSize(characterSize); 
    632632        _updateTimeText->setPosition(pos); 
     
    651651        cullLabel->setFont("fonts/arial.ttf"); 
    652652        cullLabel->setColor(colorCull); 
    653         cullLabel->setFontSize(characterSize,characterSize); 
     653        cullLabel->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    654654        cullLabel->setCharacterSize(characterSize); 
    655655        cullLabel->setPosition(pos); 
     
    665665        cullField->setFont("fonts/arial.ttf"); 
    666666        cullField->setColor(colorCull); 
    667         cullField->setFontSize(characterSize,characterSize); 
     667        cullField->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    668668        cullField->setCharacterSize(characterSize); 
    669669        cullField->setPosition(pos); 
     
    681681        drawLabel->setFont("fonts/arial.ttf"); 
    682682        drawLabel->setColor(colorDraw); 
    683         drawLabel->setFontSize(characterSize,characterSize); 
     683        drawLabel->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    684684        drawLabel->setCharacterSize(characterSize); 
    685685        drawLabel->setPosition(pos); 
     
    695695        drawField->setFont("fonts/arial.ttf"); 
    696696        drawField->setColor(colorDraw); 
    697         drawField->setFontSize(characterSize,characterSize); 
     697        drawField->setFontSize((unsigned int)characterSize,(unsigned int)characterSize); 
    698698        drawField->setCharacterSize(characterSize); 
    699699        drawField->setPosition(pos);