Compare commits

...

27 Commits

Author SHA1 Message Date
Robert Osfield
7f2eaa4339 Release OpenSceneGraph-3.2.0 2013-07-24 17:47:38 +00:00
Robert Osfield
789d435abe Updated ChangeLog 2013-07-24 17:29:50 +00:00
Robert Osfield
6b8db67c91 Changed default of serialize draw to OFF 2013-07-24 17:27:14 +00:00
Robert Osfield
2975f9c20a Updated README for 3.2 release 2013-07-24 14:23:37 +00:00
Robert Osfield
ebc855cf50 Removed release candidate number in prep for 3.2.0 release 2013-07-24 14:11:55 +00:00
Robert Osfield
c9547497cc Fixed typo 2013-07-24 14:05:08 +00:00
Robert Osfield
75d32b3af6 Updated ChangeLog 2013-07-24 13:29:22 +00:00
Robert Osfield
a844a278ab Added GL2Extensions::isDrawBuffersSupported() and usage with FrameBufferObject.cpp to prevent invalid MRT usage causing crash under GLES2 2013-07-24 13:01:38 +00:00
Robert Osfield
94dcfb4ec2 Updated NEWS for 3.2 release 2013-07-24 12:50:34 +00:00
Robert Osfield
8528449dff Fixed warning 2013-07-24 12:49:11 +00:00
Robert Osfield
8d7fd88d5f Added getCallbacks() methods 2013-07-24 12:17:10 +00:00
Robert Osfield
28dd1cf8a8 Updated ChangeLog, AUTHORS file, Release Candidate Number and SO version number for 3.2-rc4 2013-07-23 18:34:01 +00:00
Robert Osfield
14de2266ba From Rocco Martino, build fix for compiling against ffmpeg/trunk 2013-07-23 18:11:31 +00:00
Robert Osfield
cc02695822 Disabled the check for Asio for Windows 2013-07-23 15:36:45 +00:00
Robert Osfield
2c442c9e9a Added NOT ANDROID to force use of posix API when building for Android under Windows 2013-07-23 15:28:34 +00:00
Robert Osfield
ca44b9cbce Added lazy setting of the UserDataContainer to avoid unncessarily create a UserDataContain when an empty description list is passed to Node::setDescriptions(..) 2013-07-23 10:24:27 +00:00
Robert Osfield
0483912e32 Fixed crash when open(..) returns an error. 2013-07-23 09:54:28 +00:00
Robert Osfield
21b5109089 Updated ChangeLog and AUTHORS file for rc3 2013-07-23 05:45:34 +00:00
Robert Osfield
549e20fbe7 Fixed svn source to that it's relase candidates and final release made from the OpenSceneGraph-3.2 branch 2013-07-23 05:41:40 +00:00
Robert Osfield
b4b7a13063 From Torben Dannhauer, "Please find attached further changes to make library auto detection
functional again for some libraries:

    Find3rdPa..: Fix to find libxml2
    FindCollada: Rearranged to handle different MSVC versions more effective.
    This file is already prepared for the upcoming VS 2013.
    FindNVTT: introduced management of debug libraries (also auto detected).
    "
2013-07-23 05:25:45 +00:00
Robert Osfield
8b58890975 Updatected rc number 2, ChangeLog and AUTHORS file for OSG-3.2-rc2 release 2013-07-22 13:40:53 +00:00
Robert Osfield
871521cfea From Andreas Ekstrand, "Attached is a small modification of the Collada writer that protects from crashes due to valArray being NULL in some situations." 2013-07-22 13:31:32 +00:00
Robert Osfield
f19018a03d Added FRAME_BUFFER_OBJECT enum 2013-07-22 10:07:21 +00:00
Robert Osfield
2709a5e946 From Christian Ruzicka, "with the current touch implementation on iOS the touches are not forwarded to parent views because the base implementation is not called. Also see the "Best Practices" in the iOS documentation for event handling:
http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/multitouch_background/multitouch_background.html

"If you handle events in a subclass of any other UIKit responder class:
- You do not have to implement all of the event handling methods.
- In the methods you do implement, be sure to call the superclass implementation. For example, [super touchesBegan:touches withEvent:event]."

I added the missing lines and tested it with OSG 3.1.9 and iOS SDK 6.1."
2013-07-19 21:03:28 +00:00
Robert Osfield
52d5d80508 Added default setting of BIND_PER_VERTEX when applying Geometry::setTexCoordArray() 2013-07-19 20:59:14 +00:00
Robert Osfield
86e465d5d8 Updated OpenThreads version to be in sync with OSG version. 2013-07-19 17:00:08 +00:00
Robert Osfield
50ed5ebd1c Branch OpenSceneGraph-3.2 2013-07-19 14:08:08 +00:00
25 changed files with 19620 additions and 61895 deletions

View File

@@ -1,6 +1,6 @@
OpenSceneGraph Library 3.2.0 OpenSceneGraph Library 3.2.0
510 Contributors: 511 Contributors:
Firstname Surname Firstname Surname
----------------- -----------------
@@ -70,11 +70,11 @@ Adrian Egli
Ruben Lopez Ruben Lopez
Randall Hopper Randall Hopper
Jan Ciger Jan Ciger
Torben Dannhauer
Glenn Waldron Glenn Waldron
Gideon May Gideon May
Don Tidrow Don Tidrow
Aurelien Albert Aurelien Albert
Torben Dannhauer
Stephane Lamoliatte Stephane Lamoliatte
Romano Jos<6F> Magacho da Silva Romano Jos<6F> Magacho da Silva
Michael Gronager Michael Gronager
@@ -84,10 +84,10 @@ David Spilling
Daniel Sj<53>lie Daniel Sj<53>lie
Bryan Thrall Bryan Thrall
Fabien Lavignotte Fabien Lavignotte
Andreas Ekstrand
Mike Connell Mike Connell
Melchior Franz Melchior Franz
Johannes Baeuerle Johannes Baeuerle
Andreas Ekstrand
Riccardo Corsi Riccardo Corsi
Rafa Gaitan Rafa Gaitan
Neil Hughes Neil Hughes
@@ -294,6 +294,7 @@ Daniel Trstenjak
Craig Bosma Craig Bosma
Claus Scheiblauer Claus Scheiblauer
Christophe Loustaunau Christophe Loustaunau
Christian Ruzicka
Brad Anderegg Brad Anderegg
Aric Aumann Aric Aumann
Andrew Sampson Andrew Sampson
@@ -340,6 +341,7 @@ Ross Anderson
Ronny Krueger Ronny Krueger
Ronald van Maarseveen Ronald van Maarseveen
Romain Charbit Romain Charbit
Rocco Martino
Robert Swain Robert Swain
Rob Smith Rob Smith
Rob Radtke Rob Radtke
@@ -481,7 +483,6 @@ Clay Fowler
Chuck Sembroski Chuck Sembroski
Christopher Blaesius Christopher Blaesius
Christophe Herreman Christophe Herreman
Christian Ruzicka
Christian Noon Christian Noon
Christian Kaser Christian Kaser
Christian Ehrlicher Christian Ehrlicher

View File

@@ -49,11 +49,11 @@ PROJECT(OpenSceneGraph)
SET(OPENSCENEGRAPH_MAJOR_VERSION 3) SET(OPENSCENEGRAPH_MAJOR_VERSION 3)
SET(OPENSCENEGRAPH_MINOR_VERSION 2) SET(OPENSCENEGRAPH_MINOR_VERSION 2)
SET(OPENSCENEGRAPH_PATCH_VERSION 0) SET(OPENSCENEGRAPH_PATCH_VERSION 0)
SET(OPENSCENEGRAPH_SOVERSION 99) SET(OPENSCENEGRAPH_SOVERSION 100)
# set to 0 when not a release candidate, non zero means that any generated # set to 0 when not a release candidate, non zero means that any generated
# svn tags will be treated as release candidates of given number # svn tags will be treated as release candidates of given number
SET(OPENSCENEGRAPH_RELEASE_CANDIDATE 1) SET(OPENSCENEGRAPH_RELEASE_CANDIDATE 0)
SET(OPENSCENEGRAPH_VERSION ${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}.${OPENSCENEGRAPH_PATCH_VERSION}) SET(OPENSCENEGRAPH_VERSION ${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}.${OPENSCENEGRAPH_PATCH_VERSION})
@@ -174,8 +174,8 @@ ENDIF()
OPTION(OSG_MAINTAINER "Enable OpenSceneGraph maintainer build methods, such as making svn branches, tags, updating ChangeLog." OFF) OPTION(OSG_MAINTAINER "Enable OpenSceneGraph maintainer build methods, such as making svn branches, tags, updating ChangeLog." OFF)
IF (OSG_MAINTAINER) IF (OSG_MAINTAINER)
SET(OPENSCENEGRAPH_SVN "trunk") #SET(OPENSCENEGRAPH_SVN "trunk")
#SET(OPENSCENEGRAPH_SVN "branches") SET(OPENSCENEGRAPH_SVN "branches")
SET(OPENSCENEGRAPH_BRANCH OpenSceneGraph-${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}) SET(OPENSCENEGRAPH_BRANCH OpenSceneGraph-${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION})
# #
@@ -535,7 +535,9 @@ ELSE()
FIND_PACKAGE(GtkGl) FIND_PACKAGE(GtkGl)
FIND_PACKAGE(DirectInput) FIND_PACKAGE(DirectInput)
FIND_PACKAGE(NVTT) FIND_PACKAGE(NVTT)
FIND_PACKAGE(Asio) IF (NOT WIN32)
FIND_PACKAGE(Asio)
ENDIF()
FIND_PACKAGE(ZeroConf) FIND_PACKAGE(ZeroConf)
ENDIF() ENDIF()

View File

@@ -54,7 +54,7 @@ ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST D
################################################################################################ ################################################################################################
# this Macro is tailored to Mike dependencies # this Macro is tailored to Mike and Torbens dependencies
################################################################################################ ################################################################################################
MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN) MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN)
@@ -86,7 +86,7 @@ MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN)
MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR) MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR)
ENDIF(PNG_FOUND) ENDIF(PNG_FOUND)
ENDIF(ZLIB_FOUND) ENDIF(ZLIB_FOUND)
FIND_DEPENDENCY(LIBXML2 libxml "libxml2" ${OSG_3RDPARTY_BIN} "D" "") FIND_DEPENDENCY(LIBXML2 libxml2 "libxml2" ${OSG_3RDPARTY_BIN} "D" "")
IF(LIBXML2_FOUND) IF(LIBXML2_FOUND)
# The CMAKE find libxml module uses LIBXML2_LIBRARIES -> fill it.... kind of a hack # The CMAKE find libxml module uses LIBXML2_LIBRARIES -> fill it.... kind of a hack
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY} CACHE FILEPATH "" FORCE) SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY} CACHE FILEPATH "" FORCE)

View File

@@ -28,6 +28,10 @@ IF(APPLE)
SET(COLLADA_BUILDNAME "mac") SET(COLLADA_BUILDNAME "mac")
ELSEIF(MINGW) ELSEIF(MINGW)
SET(COLLADA_BUILDNAME "mingw") SET(COLLADA_BUILDNAME "mingw")
ELSEIF(MSVC12)
SET(COLLADA_BUILDNAME "vc12")
ELSEIF(MSVC11)
SET(COLLADA_BUILDNAME "vc11")
ELSEIF(MSVC10) ELSEIF(MSVC10)
SET(COLLADA_BUILDNAME "vc10") SET(COLLADA_BUILDNAME "vc10")
ELSEIF(MSVC90) ELSEIF(MSVC90)
@@ -238,7 +242,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
) )
FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY
NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-vc90-mt libboost_filesystem-vc100-mt NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BUILDNAME}0-mt libboost_filesystem-${COLLADA_BUILDNAME}0-mt-1_54
PATHS PATHS
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
@@ -246,7 +250,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
) )
FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG
NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-vc90-mt-gd libboost_filesystem-vc100-mt-gd NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd-1_54
PATHS PATHS
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
@@ -254,7 +258,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
) )
FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY
NAMES libboost_system boost_system boost_system-mt libboost_system-vc90-mt libboost_system-vc100-mt NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BUILDNAME}0-mt libboost_system-${COLLADA_BUILDNAME}0-mt-1_54
PATHS PATHS
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
@@ -262,7 +266,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
) )
FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG
NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-vc90-mt-gd libboost_system-vc100-mt-gd NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BUILDNAME}0-mt-gd libboost_system-${COLLADA_BUILDNAME}0-mt-gd-1_54
PATHS PATHS
${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw

View File

@@ -15,6 +15,7 @@ FIND_PATH(NVTT_INCLUDE_DIR nvtt/nvtt.h
PATH_SUFFIXES include PATH_SUFFIXES include
) )
# NVTT
FIND_LIBRARY(NVTT_LIBRARY FIND_LIBRARY(NVTT_LIBRARY
NAMES nvtt NAMES nvtt
PATHS PATHS
@@ -25,6 +26,17 @@ FIND_LIBRARY(NVTT_LIBRARY
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
) )
FIND_LIBRARY(NVTT_LIBRARY_DEBUG
NAMES nvtt_d
PATHS
/usr/local
/usr
$ENV{NVTT_DIR}
${3rdPartyRoot}
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
)
# NVIMAGE
FIND_LIBRARY(NVIMAGE_LIBRARY FIND_LIBRARY(NVIMAGE_LIBRARY
NAMES nvimage NAMES nvimage
PATHS PATHS
@@ -35,6 +47,17 @@ FIND_LIBRARY(NVIMAGE_LIBRARY
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
) )
FIND_LIBRARY(NVIMAGE_LIBRARY_DEBUG
NAMES nvimage_d
PATHS
/usr/local
/usr
$ENV{NVTT_DIR}
${3rdPartyRoot}
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
)
# NVMATH
FIND_LIBRARY(NVMATH_LIBRARY FIND_LIBRARY(NVMATH_LIBRARY
NAMES nvmath NAMES nvmath
PATHS PATHS
@@ -45,6 +68,17 @@ FIND_LIBRARY(NVMATH_LIBRARY
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
) )
FIND_LIBRARY(NVMATH_LIBRARY_DEBUG
NAMES nvmath_d
PATHS
/usr/local
/usr
$ENV{NVTT_DIR}
${3rdPartyRoot}
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
)
# NVCORE
FIND_LIBRARY(NVCORE_LIBRARY FIND_LIBRARY(NVCORE_LIBRARY
NAMES nvcore NAMES nvcore
PATHS PATHS
@@ -54,6 +88,18 @@ FIND_LIBRARY(NVCORE_LIBRARY
${3rdPartyRoot} ${3rdPartyRoot}
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
) )
FIND_LIBRARY(NVCORE_LIBRARY_DEBUG
NAMES nvcore_d
PATHS
/usr/local
/usr
$ENV{NVTT_DIR}
${3rdPartyRoot}
PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
)
SET(NVTT_FOUND "NO") SET(NVTT_FOUND "NO")
IF(NVTT_LIBRARY AND NVTT_INCLUDE_DIR) IF(NVTT_LIBRARY AND NVTT_INCLUDE_DIR)

80401
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,57 @@
OSG News OSG News
======== ========
= !OpenSceneGraph 3.2 release improves support iOS and Android, supports a range of new OpenGL features much more.
PERTHSHIRE, Scotland - 24th July 2013 - !OpenSceneGraph Professional Services announces the release of !OpenSceneGraph 3.2, the industry's leading open-source scene graph technology, designed to accelerate application development and improve 3D graphics performance. !OpenSceneGraph 3.2 written entirely in Standard C++ and built upon OpenGL, offers developers working in the visual simulation, game development, virtual reality, scientific visualization and modeling markets - a real-time visualization tool which eclipses commercial scene graph toolkits in functionality, stability and performance. !OpenSceneGraph 3.2 runs on all Microsoft Windows platforms, Apple OS/X, IOS, GNU/Linux, Android, IRIX, Solaris, HP-UX, AIX and FreeBSD operating systems.
=== Open-source development delivers industry-leading features and performance ===
The !OpenSceneGraph 3.2 release is the culmination of 14 years of work by the open-source community that has grown up around the project. The real-time graphics industry and academia embraced it from the very beginning, deploying it in real-world applications, and actively participating in its development, testing and refinement. The end result is a high-quality library with a feature set relevant to application developers' needs in both the desktop and mobile space.
=== Updates include: ===
* Improvements to OpenGL ES 1.1 and 2.0 support, including platform specific extensions
* Revamped QTKit, imageio and quicktime plugins for improved support of iOS and OSX
* New avfoundation plugin for reading video on iOS and OSX
* New ktx plugin for reading Khronos Texture Files
* New OpenGL extensions support including compute shaders, tessellation shaders, integer array formats and associated Vec* classes, primitive restart
* Improvements to osgManipulator NodeKit that introduce new manipulators and improve flexibility and customizability
* Updates to osgQt to support Qt5 and provide better support for Qt4
* New osgGA::Device base class for recieving from and sending events to both real and virtual devices in a generic, extensible way
* New ZeroConf, RestHTTP and OSC plugins to enable remote control of applications such as controlling desktop systems from tablets and phones
* Improvements to osgVolume NodeKit and DICOM plugin for better medical visualization
* New TrackVis .trk track files plugin for the visualization of brain scans.
* Improvements to osgPresentation NodeKit and Present3D application to make it possible to create non-linear interactive, remote controlled shows
* New osgViewer::ViewConfig class with range of implementations to make it easier to configure viewers for advanced rendering support
* Support for GPU based Keystone correction with onscreen editing making it possible to use low cost projectors in off axis setups
* Clean up of osg::Geometry class removing all deprecated slow path API's resulting in a smaller and faster Geometry class
* Addition of deprecated_osg namespace and deprecated_osg::Geometry class that provides deprecated BIND_PER_PRIMITIVE and array indices APIs to add with porting
* New ViewDependentShadowMap shadow rendering class that combines enables robust combining of parallel split and perspective shadow map techniques
* Updates of plugins to work with the latest FBX, ffmpeg, NVTT, OpenVRML, LibVNCServer releases
=== Downloads and Licensing ===
!OpenSceneGraph is open-source, so full source code is provided, and can be copied, modified and used free of charge for commercial and non-commercial use. Access to the source allows end users greater flexibility in how they develop, debug and deploy their applications. They gain productivity and freedom by being able to leverage the tool chain in accordance with their own release cycles. Downloads of binaries and source can be found in the [http://www.openscenegraph.org/index.php/download-section/stable-releases Downloads] section of the openscenegraph.org website.
!OpenSceneGraph is released under the [http://www.openscenegraph.org/projects/osg/wiki/Legal OpenSceneGraph Public License], which is based on the Lesser GNU Public License (LGPL), permitting the software to be used free of charge across the full spectrum of commercial and open-source applications. Furthermore, it allows both static and dynamic linking of the !OpenSceneGraph libraries without restricting the licensing of the user's software.
=== Professional support and services ===
!OpenSceneGraph project is backed up with professional services by [http://www.openscenegraph.com OpenSceneGraph Professional Services], based in Scotland, and [http://www.skew-matrix.com Skew-Matrix] and [http://www.alphapixel.com AlphaPixel] both based in the USA, and a range of [wiki:Community/Contractors Contractors] from around the world. Services available include:
* Confidential Professional Support
* Bespoke development
* Consultancy
* Training
=== Community support and contributions ===
The diverse and growing community of over 5000 developers is centred around the public osg-users mailing list/forum, where members discuss how best to use !OpenSceneGraph, provide mutual support, and coordinate development of new features and bug fixes. Members of this community come from many different countries with backgrounds ranging from some of the world's largest aerospace companies, game companies, and visual simulation specialists to university researchers, students and hobbyists.
The !OpenSceneGraph project owes a great deal to the community for its development and support, in particular we wish to thank the [http://www.openscenegraph.org/index.php/about/http:/www.openscenegraph.org/index.php/about/142-contributors-to-openscenegraph-3-2-0 511 individuals] from around the world that have directly contributed to the development and refinement of the !OpenSceneGraph code base.
= !OpenSceneGraph 3.0 release adds support OpenGL ES 1.1, OpenGL ES 2.0, OpenGL 3.x to 4.0, support for Andoid and IOS platforms and much more. = !OpenSceneGraph 3.0 release adds support OpenGL ES 1.1, OpenGL ES 2.0, OpenGL 3.x to 4.0, support for Andoid and IOS platforms and much more.
PERTHSHIRE, Scotland - 28th June 2011 - !OpenSceneGraph Professional Services announces the release of !OpenSceneGraph 3.0, the industry's leading open-source scene graph technology, designed to accelerate application development and improve 3D graphics performance. !OpenSceneGraph 3.0 written entirely in Standard C++ and built upon OpenGL, offers developers working in the visual simulation, game development, virtual reality, scientific visualization and modeling markets - a real-time visualization tool which eclipses commercial scene graph toolkits in functionality, stability and performance. !OpenSceneGraph 3.0 runs on all Microsoft Windows platforms, Apple OS/X, IOS, GNU/Linux, Android, IRIX, Solaris, HP-UX, AIX and FreeBSD operating systems. PERTHSHIRE, Scotland - 28th June 2011 - !OpenSceneGraph Professional Services announces the release of !OpenSceneGraph 3.0, the industry's leading open-source scene graph technology, designed to accelerate application development and improve 3D graphics performance. !OpenSceneGraph 3.0 written entirely in Standard C++ and built upon OpenGL, offers developers working in the visual simulation, game development, virtual reality, scientific visualization and modeling markets - a real-time visualization tool which eclipses commercial scene graph toolkits in functionality, stability and performance. !OpenSceneGraph 3.0 runs on all Microsoft Windows platforms, Apple OS/X, IOS, GNU/Linux, Android, IRIX, Solaris, HP-UX, AIX and FreeBSD operating systems.

View File

@@ -4,15 +4,11 @@ For up-to-date information on the project, in-depth details on how to
compile and run libraries and examples, see the documentation on the compile and run libraries and examples, see the documentation on the
OpenSceneGraph website: OpenSceneGraph website:
http://www.openscenegraph.org http://www.openscenegraph.org/index.php/documentation
For support subscribe to our public mailing list: For support subscribe to our public mailing list or forum, details at:
http://www.openscenegraph.org/projects/osg/wiki/MailingLists http://www.openscenegraph.org/index.php/support
or forum:
http://forum.openscenegraph.org/
For the impatient, we've included quick build instructions below, these For the impatient, we've included quick build instructions below, these
are are broken down is three parts: are are broken down is three parts:
@@ -27,7 +23,7 @@ more indepth instructions.
Robert Osfield. Robert Osfield.
Project Lead. Project Lead.
26th April 2013. 24th July 2013.
-- --
@@ -74,7 +70,7 @@ Under Windows use the GUI tool CMakeSetup to build your VisualStudio
files. The following page on our wiki dedicated to the CMake build files. The following page on our wiki dedicated to the CMake build
system should help guide you through the process: system should help guide you through the process:
http://www.openscenegraph.org/projects/osg/wiki/Support/PlatformSpecifics/VisualStudio http://www.openscenegraph.org/index.php/documentation/platform-specifics/windows
Under OSX you can either use the CMake build system above, or use the Under OSX you can either use the CMake build system above, or use the
Xcode projects that you will find in the OpenSceneGraph/Xcode Xcode projects that you will find in the OpenSceneGraph/Xcode
@@ -83,7 +79,7 @@ directory. See release notes on OSX CMake build below.
For further details on compilation, installation and platform-specific For further details on compilation, installation and platform-specific
information read "Getting Started" guide: information read "Getting Started" guide:
http://www.openscenegraph.org/projects/osg/wiki/Support/GettingStarted http://www.openscenegraph.org/index.php/documentation/10-getting-started
Section 2. Release notes on OSX build, by Eric Sokolowsky, August 5, 2008 Section 2. Release notes on OSX build, by Eric Sokolowsky, August 5, 2008

View File

@@ -18,10 +18,10 @@
extern "C" { extern "C" {
#define OPENTHREADS_MAJOR_VERSION 2 #define OPENTHREADS_MAJOR_VERSION 3
#define OPENTHREADS_MINOR_VERSION 6 #define OPENTHREADS_MINOR_VERSION 2
#define OPENTHREADS_PATCH_VERSION 0 #define OPENTHREADS_PATCH_VERSION 0
#define OPENTHREADS_SOVERSION 12 #define OPENTHREADS_SOVERSION 13
/** OpenThreadsGetVersion() returns the library version number. /** OpenThreadsGetVersion() returns the library version number.
* Numbering convention : OpenThreads-1.0 will return 1.0 from OpenThreadsGetVersion. */ * Numbering convention : OpenThreads-1.0 will return 1.0 from OpenThreadsGetVersion. */

View File

@@ -400,7 +400,7 @@ namespace osg
FrameBufferObject(); FrameBufferObject();
FrameBufferObject(const FrameBufferObject& copy, const CopyOp& copyop = CopyOp::SHALLOW_COPY); FrameBufferObject(const FrameBufferObject& copy, const CopyOp& copyop = CopyOp::SHALLOW_COPY);
META_StateAttribute(osg, FrameBufferObject, (StateAttribute::Type)0x101010/*FrameBufferObject*/); META_StateAttribute(osg, FrameBufferObject, FRAME_BUFFER_OBJECT);
inline const AttachmentMap& getAttachmentMap() const; inline const AttachmentMap& getAttachmentMap() const;

View File

@@ -530,6 +530,8 @@ class OSG_EXPORT GL2Extensions : public osg::Referenced
void setShaderAtomicCounterSupported(bool flag) { _isShaderAtomicCountersSupported = flag; } void setShaderAtomicCounterSupported(bool flag) { _isShaderAtomicCountersSupported = flag; }
bool isShaderAtomicCounterSupported() const {return _isShaderAtomicCountersSupported; } bool isShaderAtomicCounterSupported() const {return _isShaderAtomicCountersSupported; }
bool isDrawBuffersSupported() const { return _glDrawBuffers!=0; }
/** Function to call to get the extension of a specified context. /** Function to call to get the extension of a specified context.
* If the Exentsion object for that context has not yet been created then * If the Exentsion object for that context has not yet been created then
* and the 'createIfNotInitalized' flag been set to false then returns NULL. * and the 'createIfNotInitalized' flag been set to false then returns NULL.

View File

@@ -193,7 +193,9 @@ class OSG_EXPORT StateAttribute : public Object
ATOMICCOUNTERBUFFERBINDING, ATOMICCOUNTERBUFFERBINDING,
PATCH_PARAMETER PATCH_PARAMETER,
FRAME_BUFFER_OBJECT
}; };
/** Simple pairing between an attribute type and the member within that attribute type group.*/ /** Simple pairing between an attribute type and the member within that attribute type group.*/

View File

@@ -21,7 +21,7 @@ extern "C" {
#define OPENSCENEGRAPH_MAJOR_VERSION 3 #define OPENSCENEGRAPH_MAJOR_VERSION 3
#define OPENSCENEGRAPH_MINOR_VERSION 2 #define OPENSCENEGRAPH_MINOR_VERSION 2
#define OPENSCENEGRAPH_PATCH_VERSION 0 #define OPENSCENEGRAPH_PATCH_VERSION 0
#define OPENSCENEGRAPH_SOVERSION 99 #define OPENSCENEGRAPH_SOVERSION 100
/* Convenience macro that can be used to decide whether a feature is present or not i.e. /* Convenience macro that can be used to decide whether a feature is present or not i.e.
* #if OSG_MIN_VERSION_REQUIRED(2,9,5) * #if OSG_MIN_VERSION_REQUIRED(2,9,5)

View File

@@ -314,6 +314,11 @@ class OSGWIDGET_EXPORT EventInterface
return _eventMask; return _eventMask;
} }
typedef std::list<osg::ref_ptr<Callback> > CallbackList;
inline CallbackList& getCallbacks() { return _callbacks; }
inline const CallbackList& getCallbacks() const { return _callbacks; }
void addCallback(Callback* cb) { void addCallback(Callback* cb) {
_callbacks.push_back(cb); _callbacks.push_back(cb);
} }
@@ -400,7 +405,6 @@ class OSGWIDGET_EXPORT EventInterface
bool canKeyUp () const { return (_eventMask & EVENT_KEY_UP) != 0; } bool canKeyUp () const { return (_eventMask & EVENT_KEY_UP) != 0; }
private: private:
typedef std::list<osg::ref_ptr<Callback> > CallbackList;
unsigned int _eventMask; unsigned int _eventMask;
CallbackList _callbacks; CallbackList _callbacks;

View File

@@ -2,10 +2,10 @@
# what to do with it. # what to do with it.
ADD_DEFINITIONS(-DOPENTHREADS_EXPORTS) ADD_DEFINITIONS(-DOPENTHREADS_EXPORTS)
SET(OPENTHREADS_MAJOR_VERSION 2) SET(OPENTHREADS_MAJOR_VERSION 3)
SET(OPENTHREADS_MINOR_VERSION 6) SET(OPENTHREADS_MINOR_VERSION 2)
SET(OPENTHREADS_PATCH_VERSION 0) SET(OPENTHREADS_PATCH_VERSION 0)
SET(OPENTHREADS_SOVERSION 12) SET(OPENTHREADS_SOVERSION 13)
SET(OPENTHREADS_VERSION ${OPENTHREADS_MAJOR_VERSION}.${OPENTHREADS_MINOR_VERSION}.${OPENTHREADS_PATCH_VERSION}) SET(OPENTHREADS_VERSION ${OPENTHREADS_MAJOR_VERSION}.${OPENTHREADS_MINOR_VERSION}.${OPENTHREADS_PATCH_VERSION})

View File

@@ -197,7 +197,7 @@ void DisplaySettings::setDefaults()
#endif #endif
_compileContextsHint = false; _compileContextsHint = false;
_serializeDrawDispatch = true; _serializeDrawDispatch = false;
_useSceneViewForStereoHint = true; _useSceneViewForStereoHint = true;
_numDatabaseThreadsHint = 2; _numDatabaseThreadsHint = 2;

View File

@@ -916,10 +916,14 @@ void FrameBufferObject::apply(State &state, BindTarget target) const
if (_drawBuffers.size() > 0) if (_drawBuffers.size() > 0)
{ {
GL2Extensions *gl2e = GL2Extensions::Get(state.getContextID(), true ); GL2Extensions *gl2e = GL2Extensions::Get(state.getContextID(), true );
if (gl2e) if (gl2e && gl2e->isDrawBuffersSupported())
{ {
gl2e->glDrawBuffers(_drawBuffers.size(), &(_drawBuffers[0])); gl2e->glDrawBuffers(_drawBuffers.size(), &(_drawBuffers[0]));
} }
else
{
OSG_WARN <<"Warning: FrameBufferObject: could not set draw buffers, glDrawBuffers is not supported!" << std::endl;
}
} }
if (dirtyAttachmentList) if (dirtyAttachmentList)
@@ -939,7 +943,7 @@ void FrameBufferObject::apply(State &state, BindTarget target) const
{ {
OSG_WARN << OSG_WARN <<
"Warning: FrameBufferObject: could not attach PACKED_DEPTH_STENCIL_BUFFER, " "Warning: FrameBufferObject: could not attach PACKED_DEPTH_STENCIL_BUFFER, "
"EXT_packed_depth_stencil is not supported !" << std::endl; "EXT_packed_depth_stencil is not supported!" << std::endl;
} }
break; break;

View File

@@ -161,12 +161,14 @@ void Geometry::setTexCoordArray(unsigned int index,Array* array, osg::Array::Bin
if (_texCoordList.size()<=index) if (_texCoordList.size()<=index)
_texCoordList.resize(index+1); _texCoordList.resize(index+1);
if (array && binding!=osg::Array::BIND_UNDEFINED) array->setBinding(binding); if (array)
{
if (binding!=osg::Array::BIND_UNDEFINED) array->setBinding(binding);
else array->setBinding(osg::Array::BIND_PER_VERTEX);
}
_texCoordList[index] = array; _texCoordList[index] = array;
// do we set to array BIND_PER_VERTEX?
dirtyDisplayList(); dirtyDisplayList();
if (_useVertexBufferObjects && array) if (_useVertexBufferObjects && array)

View File

@@ -475,7 +475,11 @@ bool Node::containsOccluderNodes() const
void Node::setDescriptions(const DescriptionList& descriptions) void Node::setDescriptions(const DescriptionList& descriptions)
{ {
getOrCreateUserDataContainer()->setDescriptions(descriptions); // only assign a description list (and associated UseDataContainer) if we need to.
if (!descriptions.empty() || getUserDataContainer())
{
getOrCreateUserDataContainer()->setDescriptions(descriptions);
}
} }
Node::DescriptionList& Node::getDescriptions() Node::DescriptionList& Node::getDescriptions()

View File

@@ -515,8 +515,8 @@ const Program::UniformBlockMap& Program::getUniformBlocks(unsigned contextID) co
Program::PerContextProgram::PerContextProgram(const Program* program, unsigned int contextID, GLuint programHandle ) : Program::PerContextProgram::PerContextProgram(const Program* program, unsigned int contextID, GLuint programHandle ) :
osg::Referenced(), osg::Referenced(),
_loadedBinary(false),
_glProgramHandle(programHandle), _glProgramHandle(programHandle),
_loadedBinary(false),
_contextID( contextID ), _contextID( contextID ),
_ownsProgramHandle(false) _ownsProgramHandle(false)
{ {

View File

@@ -582,7 +582,7 @@ bool daeWriter::processGeometry( osg::Geometry *geom, domGeometry *geo, const st
{ {
sName = name + "-positions"; sName = name + "-positions";
unsigned int elementSize = verts.getDAESize(); unsigned int elementSize = verts.getDAESize();
unsigned int numElements = verts.valArray->getNumElements(); unsigned int numElements = verts.valArray ? verts.valArray->getNumElements() : 0;
pos = createSource( mesh, sName, elementSize ); pos = createSource( mesh, sName, elementSize );
pos->getFloat_array()->setCount( numElements * elementSize ); pos->getFloat_array()->setCount( numElements * elementSize );
pos->getTechnique_common()->getAccessor()->setCount( numElements ); pos->getTechnique_common()->getAccessor()->setCount( numElements );
@@ -608,7 +608,7 @@ bool daeWriter::processGeometry( osg::Geometry *geom, domGeometry *geo, const st
{ {
sName = name + "-normals"; sName = name + "-normals";
unsigned int elementSize = normals.getDAESize(); unsigned int elementSize = normals.getDAESize();
unsigned int numElements = normals.valArray->getNumElements(); unsigned int numElements = normals.valArray ? normals.valArray->getNumElements() : 0;
norm = createSource( mesh, sName, elementSize ); norm = createSource( mesh, sName, elementSize );
norm->getFloat_array()->setCount( numElements * elementSize ); norm->getFloat_array()->setCount( numElements * elementSize );
norm->getTechnique_common()->getAccessor()->setCount( numElements ); norm->getTechnique_common()->getAccessor()->setCount( numElements );
@@ -631,7 +631,7 @@ bool daeWriter::processGeometry( osg::Geometry *geom, domGeometry *geo, const st
{ {
sName = name + "-colors"; sName = name + "-colors";
unsigned int elementSize = colors.getDAESize(); unsigned int elementSize = colors.getDAESize();
unsigned int numElements = colors.valArray->getNumElements(); unsigned int numElements = colors.valArray ? colors.valArray->getNumElements() : 0;
color = createSource( mesh, sName, elementSize, true ); color = createSource( mesh, sName, elementSize, true );
color->getFloat_array()->setCount( numElements * elementSize ); color->getFloat_array()->setCount( numElements * elementSize );
color->getTechnique_common()->getAccessor()->setCount( numElements ); color->getTechnique_common()->getAccessor()->setCount( numElements );
@@ -660,7 +660,7 @@ bool daeWriter::processGeometry( osg::Geometry *geom, domGeometry *geo, const st
sName = name + "-texcoord_" + intstr.str(); sName = name + "-texcoord_" + intstr.str();
unsigned int elementSize = texcoords[ti].getDAESize(); unsigned int elementSize = texcoords[ti].getDAESize();
unsigned int numElements = texcoords[ti].valArray->getNumElements(); unsigned int numElements = texcoords[ti].valArray ? texcoords[ti].valArray->getNumElements() : 0;
domSource *t = createSource( mesh, sName, elementSize, false, true ); domSource *t = createSource( mesh, sName, elementSize, false, true );
t->getFloat_array()->setCount( numElements * elementSize ); t->getFloat_array()->setCount( numElements * elementSize );
t->getTechnique_common()->getAccessor()->setCount( numElements ); t->getTechnique_common()->getAccessor()->setCount( numElements );
@@ -684,7 +684,7 @@ bool daeWriter::processGeometry( osg::Geometry *geom, domGeometry *geo, const st
sName = name + "-vertexAttribute_" + intstr.str(); sName = name + "-vertexAttribute_" + intstr.str();
unsigned int elementSize = vertexAttributes[ti].getDAESize(); unsigned int elementSize = vertexAttributes[ti].getDAESize();
unsigned int numElements = vertexAttributes[ti].valArray->getNumElements(); unsigned int numElements = vertexAttributes[ti].valArray ? vertexAttributes[ti].valArray->getNumElements() : 0;
domSource *t = createSource( mesh, sName, elementSize, false, true ); // Sukender: should we *REALLY* call createSource(... false, true)? (I mean with such flags) domSource *t = createSource( mesh, sName, elementSize, false, true ); // Sukender: should we *REALLY* call createSource(... false, true)? (I mean with such flags)
t->getFloat_array()->setCount( numElements * elementSize ); t->getFloat_array()->setCount( numElements * elementSize );
t->getTechnique_common()->getAccessor()->setCount( numElements ); t->getTechnique_common()->getAccessor()->setCount( numElements );

View File

@@ -9,6 +9,11 @@
//#include <iostream> //#include <iostream>
#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
#endif
namespace osgFFmpeg { namespace osgFFmpeg {

View File

@@ -29,7 +29,7 @@ SET(TARGET_H
OscSendingDevice.hpp OscSendingDevice.hpp
) )
if(WIN32) if(WIN32 AND NOT ANDROID)
SET(TARGET_SRC SET(TARGET_SRC
${TARGET_SRC} ${TARGET_SRC}
ip/win32/NetworkingUtils.cpp ip/win32/NetworkingUtils.cpp

View File

@@ -87,13 +87,12 @@ XBaseParser::XBaseParser(const std::string fileName):
if (fileName.empty() == false) if (fileName.empty() == false)
{ {
#ifdef WIN32 #ifdef WIN32
if( (fd = open( fileName.c_str(), O_RDONLY | O_BINARY )) <= 0 ) if( (fd = open( fileName.c_str(), O_RDONLY | O_BINARY )) < 0 )
#else #else
if( (fd = ::open( fileName.c_str(), O_RDONLY )) <= 0 ) if( (fd = ::open( fileName.c_str(), O_RDONLY )) < 0 )
#endif #endif
{ {
perror( fileName.c_str() ); perror( fileName.c_str() );
if (fd) close( fd );
return; return;
} }
} }

View File

@@ -587,6 +587,7 @@ typedef std::map<void*, unsigned int> TouchPointsIdMapping;
} }
} }
[super touchesBegan:touches withEvent:event];
} }
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
@@ -607,9 +608,9 @@ typedef std::map<void*, unsigned int> TouchPointsIdMapping;
} else { } else {
osg_event->addTouchPoint(touch_id, [self convertTouchPhase: [touch phase]], pixelPos.x(), pixelPos.y()); osg_event->addTouchPoint(touch_id, [self convertTouchPhase: [touch phase]], pixelPos.x(), pixelPos.y());
} }
} }
[super touchesMoved:touches withEvent:event];
} }
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
@@ -630,8 +631,9 @@ typedef std::map<void*, unsigned int> TouchPointsIdMapping;
} else { } else {
osg_event->addTouchPoint(touch_id, [self convertTouchPhase: [touch phase]], pixelPos.x(), pixelPos.y(), [touch tapCount]); osg_event->addTouchPoint(touch_id, [self convertTouchPhase: [touch phase]], pixelPos.x(), pixelPos.y(), [touch tapCount]);
} }
} }
[super touchesEnded:touches withEvent:event];
} }
-(void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event -(void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event