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,14 +86,14 @@ 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)
SET(LIBXML2_XMLLINT_EXECUTABLE ${OSG_3RDPARTY_BIN}/bin/xmllint.exe CACHE FILEPATH "Path to xmllint executable" FORCE) SET(LIBXML2_XMLLINT_EXECUTABLE ${OSG_3RDPARTY_BIN}/bin/xmllint.exe CACHE FILEPATH "Path to xmllint executable" FORCE)
ENDIF(LIBXML2_FOUND) ENDIF(LIBXML2_FOUND)
#FIND_DEPENDENCY(DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX EXSUFFIX) #FIND_DEPENDENCY(DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX EXSUFFIX)
FIND_Package(NVTT) FIND_Package(NVTT)
#luigi#INCLUDE(FindOSGDepends.cmake) #luigi#INCLUDE(FindOSGDepends.cmake)
ENDMACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN) ENDMACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN)

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

835
NEWS.txt

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +1,14 @@
Welcome to the OpenSceneGraph (OSG). Welcome to the OpenSceneGraph (OSG).
For up-to-date information on the project, in-depth details on how to 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:
http://www.openscenegraph.org/projects/osg/wiki/MailingLists For support subscribe to our public mailing list or forum, details at:
or forum: http://www.openscenegraph.org/index.php/support
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,41 +23,41 @@ more indepth instructions.
Robert Osfield. Robert Osfield.
Project Lead. Project Lead.
26th April 2013. 24th July 2013.
-- --
Section 1. How to build the OpenSceneGraph Section 1. How to build the OpenSceneGraph
========================================== ==========================================
The OpenSceneGraph uses the CMake build system to generate a The OpenSceneGraph uses the CMake build system to generate a
platform-specific build environment. CMake reads the CMakeLists.txt platform-specific build environment. CMake reads the CMakeLists.txt
files that you'll find throughout the OpenSceneGraph directories, files that you'll find throughout the OpenSceneGraph directories,
checks for installed dependenciesand then generates the appropriate checks for installed dependenciesand then generates the appropriate
build system. build system.
If you don't already have CMake installed on your system you can grab If you don't already have CMake installed on your system you can grab
it from http://www.cmake.org, use version 2.4.6 or later. Details on the it from http://www.cmake.org, use version 2.4.6 or later. Details on the
OpenSceneGraph's CMake build can be found at: OpenSceneGraph's CMake build can be found at:
http://www.openscenegraph.org/projects/osg/wiki/Build/CMake http://www.openscenegraph.org/projects/osg/wiki/Build/CMake
Under unices (i.e. Linux, IRIX, Solaris, Free-BSD, HP-Ux, AIX, OSX) Under unices (i.e. Linux, IRIX, Solaris, Free-BSD, HP-Ux, AIX, OSX)
use the cmake or ccmake command-line utils, or use the included tiny use the cmake or ccmake command-line utils, or use the included tiny
configure script that'll run cmake for you. The configure script configure script that'll run cmake for you. The configure script
simply runs 'cmake . -DCMAKE_BUILD_TYPE=Release' to ensure that you simply runs 'cmake . -DCMAKE_BUILD_TYPE=Release' to ensure that you
get the best performance from your final libraries/applications. get the best performance from your final libraries/applications.
cd OpenSceneGraph cd OpenSceneGraph
./configure ./configure
make make
sudo make install sudo make install
Alternatively, you can create an out-of-source build directory and run Alternatively, you can create an out-of-source build directory and run
cmake or ccmake from there. The advantage to this approach is that the cmake or ccmake from there. The advantage to this approach is that the
temporary files created by CMake won't clutter the OpenSceneGraph temporary files created by CMake won't clutter the OpenSceneGraph
source directory, and also makes it possible to have multiple source directory, and also makes it possible to have multiple
independent build targets by creating multiple build directories. In a independent build targets by creating multiple build directories. In a
directory alongside the OpenSceneGraph use: directory alongside the OpenSceneGraph use:
mkdir build mkdir build
@@ -70,22 +66,22 @@ directory alongside the OpenSceneGraph use:
make make
sudo make install sudo make install
Under Windows use the GUI tool CMakeSetup to build your VisualStudio 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
directory. See release notes on OSX CMake build below. 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
========================================================================= =========================================================================
@@ -169,11 +165,11 @@ Section 3. Release notes on iOS build, by Thomas Hoghart
* Check that CMAKE_OSX_ARCHITECTURE is i386 for the simulator or armv6;armv7 for the device * Check that CMAKE_OSX_ARCHITECTURE is i386 for the simulator or armv6;armv7 for the device
* Disable DYNAMIC_OPENSCENEGRAPH, DYNAMIC_OPENTHREADS * Disable DYNAMIC_OPENSCENEGRAPH, DYNAMIC_OPENTHREADS
This will give us the static build we need for iPhone. This will give us the static build we need for iPhone.
* Disable OSG_GL1_AVAILABLE, OSG_GL2_AVAILABLE, OSG_GL3_AVAILABLE, * Disable OSG_GL1_AVAILABLE, OSG_GL2_AVAILABLE, OSG_GL3_AVAILABLE,
OSG_GL_DISPLAYLISTS_AVAILABLE, OSG_GL_VERTEX_FUNCS_AVAILABLE OSG_GL_DISPLAYLISTS_AVAILABLE, OSG_GL_VERTEX_FUNCS_AVAILABLE
* Enable OSG_GLES1_AVAILABLE *OR* OSG_GLES2_AVAILABLE * Enable OSG_GLES1_AVAILABLE *OR* OSG_GLES2_AVAILABLE
* Ensure OSG_WINDOWING_SYSTEM is set to IOS * Ensure OSG_WINDOWING_SYSTEM is set to IOS
* Change FREETYPE include and library paths to an iPhone version * Change FREETYPE include and library paths to an iPhone version
(OpenFrameworks has one bundled with its distribution) (OpenFrameworks has one bundled with its distribution)
* Ensure that CMake_OSX_SYSROOT points to your iOS SDK. * Ensure that CMake_OSX_SYSROOT points to your iOS SDK.
* Generate the Xcode project * Generate the Xcode project
@@ -206,9 +202,9 @@ $ cmake -G Xcode \
Known issues: Known issues:
* When Linking final app against ive plugin, you need to add -lz to * When Linking final app against ive plugin, you need to add -lz to
the 'Other linker flags' list. the 'Other linker flags' list.
* Apps and exes don't get created * Apps and exes don't get created
* You can only select Simulator, or Device projects. In the XCode * You can only select Simulator, or Device projects. In the XCode
project you will see both types but the sdk they link will project you will see both types but the sdk they link will
be the same. be the same.

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

@@ -192,8 +192,10 @@ class OSG_EXPORT StateAttribute : public Object
TRANSFORMFEEDBACKBUFFERBINDING, TRANSFORMFEEDBACKBUFFERBINDING,
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})
@@ -55,10 +55,10 @@ SET(OpenThreads_PUBLIC_HEADERS
${HEADER_PATH}/Block ${HEADER_PATH}/Block
${HEADER_PATH}/Condition ${HEADER_PATH}/Condition
${HEADER_PATH}/Exports ${HEADER_PATH}/Exports
${HEADER_PATH}/Mutex ${HEADER_PATH}/Mutex
${HEADER_PATH}/ReadWriteMutex ${HEADER_PATH}/ReadWriteMutex
${HEADER_PATH}/ReentrantMutex ${HEADER_PATH}/ReentrantMutex
${HEADER_PATH}/ScopedLock ${HEADER_PATH}/ScopedLock
${HEADER_PATH}/Thread ${HEADER_PATH}/Thread
${HEADER_PATH}/Version ${HEADER_PATH}/Version
${OPENTHREADS_CONFIG_HEADER} ${OPENTHREADS_CONFIG_HEADER}
@@ -96,7 +96,7 @@ ELSEIF(WIN32)
SUBDIRS(pthreads) SUBDIRS(pthreads)
ELSE() ELSE()
# Everybody else including Msys should probably go here # Everybody else including Msys should probably go here
SUBDIRS(win32) SUBDIRS(win32)
# examples) # examples)
ENDIF() ENDIF()
ELSE() ELSE()

View File

@@ -96,7 +96,7 @@ void DisplaySettings::setDisplaySettings(const DisplaySettings& vs)
_glContextFlags = vs._glContextFlags; _glContextFlags = vs._glContextFlags;
_glContextProfileMask = vs._glContextProfileMask; _glContextProfileMask = vs._glContextProfileMask;
_swapMethod = vs._swapMethod; _swapMethod = vs._swapMethod;
_keystoneHint = vs._keystoneHint; _keystoneHint = vs._keystoneHint;
_keystoneFileNames = vs._keystoneFileNames; _keystoneFileNames = vs._keystoneFileNames;
_keystones = vs._keystones; _keystones = vs._keystones;
@@ -137,7 +137,7 @@ void DisplaySettings::merge(const DisplaySettings& vs)
_swapMethod = vs._swapMethod; _swapMethod = vs._swapMethod;
_keystoneHint = _keystoneHint | vs._keystoneHint; _keystoneHint = _keystoneHint | vs._keystoneHint;
// insert any unique filenames into the local list // insert any unique filenames into the local list
for(FileNames::const_iterator itr = vs._keystoneFileNames.begin(); for(FileNames::const_iterator itr = vs._keystoneFileNames.begin();
itr != vs._keystoneFileNames.end(); itr != vs._keystoneFileNames.end();
@@ -146,7 +146,7 @@ void DisplaySettings::merge(const DisplaySettings& vs)
const std::string& filename = *itr; const std::string& filename = *itr;
FileNames::iterator found_itr = std::find(_keystoneFileNames.begin(), _keystoneFileNames.end(), filename); FileNames::iterator found_itr = std::find(_keystoneFileNames.begin(), _keystoneFileNames.end(), filename);
if (found_itr == _keystoneFileNames.end()) _keystoneFileNames.push_back(filename); if (found_itr == _keystoneFileNames.end()) _keystoneFileNames.push_back(filename);
} }
// insert unique Keystone object into local list // insert unique Keystone object into local list
for(Objects::const_iterator itr = vs._keystones.begin(); for(Objects::const_iterator itr = vs._keystones.begin();
@@ -156,7 +156,7 @@ void DisplaySettings::merge(const DisplaySettings& vs)
const osg::Object* object = itr->get(); const osg::Object* object = itr->get();
Objects::iterator found_itr = std::find(_keystones.begin(), _keystones.end(), object); Objects::iterator found_itr = std::find(_keystones.begin(), _keystones.end(), object);
if (found_itr == _keystones.end()) _keystones.push_back(const_cast<osg::Object*>(object)); if (found_itr == _keystones.end()) _keystones.push_back(const_cast<osg::Object*>(object));
} }
} }
void DisplaySettings::setDefaults() void DisplaySettings::setDefaults()
@@ -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;
@@ -633,7 +633,7 @@ void DisplaySettings::readEnvironmentalVariables()
} }
} }
if ((ptr = getenv("OSG_KEYSTONE_FILES")) != 0) if ((ptr = getenv("OSG_KEYSTONE_FILES")) != 0)
{ {
#if defined(WIN32) && !defined(__CYGWIN__) #if defined(WIN32) && !defined(__CYGWIN__)
@@ -641,7 +641,7 @@ void DisplaySettings::readEnvironmentalVariables()
#else #else
char delimitor = ':'; char delimitor = ':';
#endif #endif
std::string paths(ptr); std::string paths(ptr);
if (!paths.empty()) if (!paths.empty())
{ {
@@ -743,10 +743,10 @@ void DisplaySettings::readCommandLine(ArgumentParser& arguments)
if (arguments.read("--keystone",str)) if (arguments.read("--keystone",str))
{ {
_keystoneHint = true; _keystoneHint = true;
if (!_keystoneFileNames.empty()) _keystoneFileNames.clear(); if (!_keystoneFileNames.empty()) _keystoneFileNames.clear();
_keystoneFileNames.push_back(str); _keystoneFileNames.push_back(str);
while(arguments.read("--keystone",str)) while(arguments.read("--keystone",str))
{ {
_keystoneFileNames.push_back(str); _keystoneFileNames.push_back(str);

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,17 +29,17 @@ 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
ip/win32/UdpSocket.cpp ip/win32/UdpSocket.cpp
) )
SET(TARGET_EXTERNAL_LIBRARIES "${TARGET_EXTERNAL_LIBRARIES};Ws2_32.lib;winmm") SET(TARGET_EXTERNAL_LIBRARIES "${TARGET_EXTERNAL_LIBRARIES};Ws2_32.lib;winmm")
ELSE() ELSE()
SET(TARGET_SRC SET(TARGET_SRC
${TARGET_SRC} ${TARGET_SRC}
ip/posix/NetworkingUtils.cpp ip/posix/NetworkingUtils.cpp
ip/posix/UdpSocket.cpp ip/posix/UdpSocket.cpp
) )
ENDIF() ENDIF()

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