commit
2831fc8088
@ -74,7 +74,7 @@ IF(APPLE AND NOT ANDROID)
|
||||
SET(CMAKE_OSX_ARCHITECTURES "i386;x86_64" CACHE STRING "Build architectures for iOS Simulator" FORCE)
|
||||
ENDIF()
|
||||
|
||||
#here we set the specific iphone sdk version. We can only set either device or simulator sdk. So if you want both you currently have to have two seperate projects
|
||||
#here we set the specific iphone sdk version. We can only set either device or simulator sdk. So if you want both you currently have to have two separate projects
|
||||
SET(CMAKE_OSX_SYSROOT "${IPHONE_SDKROOT}" CACHE STRING "System root for iOS" FORCE)
|
||||
|
||||
ELSE()
|
||||
@ -232,7 +232,7 @@ IF(NOT ANDROID)
|
||||
IF(APPLE)
|
||||
# Trying to get CMake to generate an XCode IPhone project, current efforts are to get iphoneos sdk 3.1 working
|
||||
# Added option which needs manually setting to select the IPhone SDK for building. We can only have one of the below
|
||||
# set to true. Should realy have an OSG_BUILD_PLATFORM variable that we set to our desired platform
|
||||
# set to true. Should really have an OSG_BUILD_PLATFORM variable that we set to our desired platform
|
||||
OPTION(OSG_BUILD_PLATFORM_IPHONE "Enable IPhoneSDK Device support" OFF)
|
||||
OPTION(OSG_BUILD_PLATFORM_IPHONE_SIMULATOR "Enable IPhoneSDK Simulator support" OFF)
|
||||
|
||||
@ -884,7 +884,7 @@ IF(NOT DEFINED LIB_POSTFIX)
|
||||
SET(LIB_POSTFIX "")
|
||||
ENDIF()
|
||||
|
||||
# Here we apparantly do some funky stuff with making the bin/ and lib/
|
||||
# Here we apparently do some funky stuff with making the bin/ and lib/
|
||||
# folders which is probably needed to work around a very old CMake bug?
|
||||
|
||||
#SET(OUTPUT_BINDIR ${PROJECT_BINARY_DIR}/bin/${CMAKE_SYSTEM_NAME})
|
||||
@ -1057,7 +1057,7 @@ IF(OSG_AGGRESSIVE_WARNING_FLAGS)
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
ELSE()
|
||||
# Remove all flags considered aggresive
|
||||
# Remove all flags considered aggressive
|
||||
FOREACH(flag ${OSG_AGGRESSIVE_WARNING_FLAGS})
|
||||
STRING(REGEX REPLACE "${flag}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
ENDFOREACH()
|
||||
@ -1112,7 +1112,7 @@ IF(APPLE AND NOT ANDROID)
|
||||
|
||||
ENDIF()
|
||||
|
||||
#here we set the specific iphone sdk version. We can only set either device or simulator sdk. So if you want both you currently have to have two seperate projects
|
||||
#here we set the specific iphone sdk version. We can only set either device or simulator sdk. So if you want both you currently have to have two separate projects
|
||||
SET(CMAKE_OSX_SYSROOT "${IPHONE_SDKROOT}" CACHE STRING "System root for iOS" FORCE)
|
||||
|
||||
#hack, force link to opengles
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
#In ffmpeg code, old version use "#include <header.h>" and newer use "#include <libname/header.h>"
|
||||
#In OSG ffmpeg plugin, we used "#include <header.h>" for compatibility with old version of ffmpeg
|
||||
#With the new version of FFmpeg, a file named "time.h" was added that breaks compatability with the old version of ffmpeg.
|
||||
#With the new version of FFmpeg, a file named "time.h" was added that breaks compatibility with the old version of ffmpeg.
|
||||
|
||||
#We have to search the path which contain the header.h (useful for old version)
|
||||
#and search the path which contain the libname/header.h (useful for new version)
|
||||
|
@ -203,7 +203,7 @@ MACRO(GENERATE_PACKAGING_TARGET package_name)
|
||||
COMMENT "Run CPack packaging for ${package_name}..."
|
||||
)
|
||||
# Add the exact same custom command to the all package generating target.
|
||||
# I can't use add_dependencies to do this because it would allow parallell building of packages so am going brute here
|
||||
# I can't use add_dependencies to do this because it would allow parallel building of packages so am going brute here
|
||||
ADD_CUSTOM_COMMAND(TARGET ${PACKAGE_ALL_TARGETNAME}
|
||||
COMMAND ${CMAKE_CPACK_COMMAND} -C ${OSG_CPACK_CONFIGURATION} --config ${OpenSceneGraph_BINARY_DIR}/CPackConfig-${package_name}.cmake
|
||||
)
|
||||
|
@ -50,7 +50,7 @@
|
||||
|
||||
1. As a special exception, the copyright holders of this library give
|
||||
permission for additional uses of the text contained in this release of
|
||||
the library as licenced under the wxWindows Library Licence, applying
|
||||
the library as licensed under the wxWindows Library Licence, applying
|
||||
either version 3 of the Licence, or (at your option) any later version of
|
||||
the Licence as published by the copyright holders of version 3 of the
|
||||
Licence document.
|
||||
|
20
NEWS.txt
20
NEWS.txt
@ -53,7 +53,7 @@ The !OpenSceneGraph 3.2 release is the culmination of 14 years of work by the op
|
||||
* 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 osgGA::Device base class for receiving 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.
|
||||
@ -635,7 +635,7 @@ osgpbuffer also example now uses Producer's pbuffer support making it portable a
|
||||
|
||||
API refinements, bug fixes and performance improvements:
|
||||
|
||||
There have been many bug fixes, a number of performance improvements and API cleanups that have occured throughout the 0.9.8 - 0.9.9, too many separate items to enumerate here. Together with the above new features they all go to making the OpenSceneGraph-0.9.9 the most robust, high performance and feature rich version so far, and sets the stage for the upcoming 1.0.
|
||||
There have been many bug fixes, a number of performance improvements and API cleanups that have occurred throughout the 0.9.8 - 0.9.9, too many separate items to enumerate here. Together with the above new features they all go to making the OpenSceneGraph-0.9.9 the most robust, high performance and feature rich version so far, and sets the stage for the upcoming 1.0.
|
||||
|
||||
We would like to thank the following engineers for their contributions in the 0.9.8 - 0.9.9.9 time frame (in alphabetic order):
|
||||
Alberto Farre, Bob Kuehne, Brede Johansen, Carlo Camporesi, Chris Hanson, Don Burns, Donn Mielcarek, Don Tidrow, Farshid Lashkari, Frederic Marmond, Garrett Potts, Igor Kravtchenko, James French, Jan Ciger, John Grant, Joakim Simonsson, Joran Jessurun, Jason Daly, Kevin Moiule, Leandro Motta Barros, Marco Jez, Mason Menninger, Mike Weiblen, Nathan Monteleone, Norman Vine, Olaf Flebbe, Paul Melis, Per Fahlberg, Rainer Oder, Randall Hopper, Reinhard Sainitzer, Robert Osfield, Ruben, Sebastien Grignard, Stephan Huber, Terry Welsh, Thom DeCarlo, Tony Horrobin, Tree, Tugkan Calapoglu, Vivek Rajan, Waltice and Yuzhong Shen
|
||||
@ -654,7 +654,7 @@ OpenProducer - http://www.andesengineering.com/Producer/index.html
|
||||
OpenThreads - http://openthreads.sf.net
|
||||
xine-lib - http://xinehq.de/
|
||||
|
||||
OpenSceneGraph Commericial Support, Training and Consultancy links:
|
||||
OpenSceneGraph Commercial Support, Training and Consultancy links:
|
||||
|
||||
OpenSceneGraph Professional Services - http://www.openscenegraph.com
|
||||
Andes Engineering - http://www.andesengineering.com
|
||||
@ -668,7 +668,7 @@ Andes Engineering - http://www.andesengineering.com
|
||||
|
||||
>>> Support for database archives, improved pager, 3d compressed textures
|
||||
|
||||
Release 0.9.8 reflects a continuation of the prior committment to release
|
||||
Release 0.9.8 reflects a continuation of the prior commitment to release
|
||||
often, arriving only two short months after 0.9.7. This contrasts sharply
|
||||
to the long period between 0.9.6-2 and 0.9.7. The following set of
|
||||
improvements and features are part of the 0.9.8 release.
|
||||
@ -1083,7 +1083,7 @@ Andes Engineering - http://www.andesengineering.com
|
||||
has now been moved to a freetype plug-in which is dynamically loaded on demand,
|
||||
with the core osgText library providing a default font when the plug-in is
|
||||
unavailable. Moving the freetype dependency out of the osgText library makes
|
||||
it just dependant on OpenGL and Standard C++ like the rest of the core libraries,
|
||||
it just dependent on OpenGL and Standard C++ like the rest of the core libraries,
|
||||
allowing osgText to compile by default on all platforms.
|
||||
|
||||
Improved thread safety has also been achieved in the core osg and osgUtil libraries
|
||||
@ -1508,9 +1508,9 @@ Andes Engineering - http://www.andesengineering.com
|
||||
|
||||
Scene graph optimization has been added which can boost performance
|
||||
on some database by as much as an order of magnititude, this is
|
||||
particularily noticable in .flt based databases. Display list performance
|
||||
particularly noticeable in .flt based databases. Display list performance
|
||||
has also been boosted on NVidia based machines thanks to changing the
|
||||
compilation and execution of display list into two seperate operations.
|
||||
compilation and execution of display list into two separate operations.
|
||||
|
||||
App callbacks are now supported on all Nodes, and there now a proper
|
||||
app traversal which can be used to animate the scene.
|
||||
@ -1560,7 +1560,7 @@ Andes Engineering - http://www.andesengineering.com
|
||||
the core scene graph library making extremely easy to take advantage of
|
||||
this advanced rendering techinque - normally only seen in research papers.
|
||||
Check out osgimpostor demo to see how easy it is to add osg::Impostor
|
||||
nodes to your own models. Impostors are particularily effective are
|
||||
nodes to your own models. Impostors are particularly effective are
|
||||
reducing scene complexity whilest minimizing the visual impact, making it
|
||||
ideal for scenes with large numbers of complex objects such as a city
|
||||
scene, or a dense forest.
|
||||
@ -1571,7 +1571,7 @@ Andes Engineering - http://www.andesengineering.com
|
||||
|
||||
The cool thing about both the osgreflect and osgimpostor demos is that
|
||||
there is no hardwiring to achieve the results, the scene graph stores
|
||||
all the information neccessary to specify the number and type of rendering
|
||||
all the information necessary to specify the number and type of rendering
|
||||
passes, and the framework handles the rest behind the scenes. This also
|
||||
makes it very easy to add these advanced rendering techinques to your
|
||||
own applications as everything is cleanly encapsulated with
|
||||
@ -1583,7 +1583,7 @@ Andes Engineering - http://www.andesengineering.com
|
||||
web or your own.
|
||||
|
||||
osg::Camera has been totally revamped and now supports asymetric
|
||||
and othographics projections in addition to the symetrical perspective
|
||||
and othographics projections in addition to the symmetrical perspective
|
||||
projections.
|
||||
|
||||
And finally, support for texture subloading has been added to osg::Texture
|
||||
|
@ -43,7 +43,7 @@ class Receiver
|
||||
// Define what port to listen and bind to
|
||||
void setPort( const short port );
|
||||
|
||||
// Sync does a blocking wait to recieve next message
|
||||
// Sync does a blocking wait to receive next message
|
||||
void sync( void );
|
||||
|
||||
private :
|
||||
|
@ -32,10 +32,10 @@
|
||||
/// with a different texture. Generally speaking in broad terms
|
||||
/// driver overhead tends to be a huge bottle neck on modern
|
||||
/// hardware (as of late 2016). By using bindless textures
|
||||
/// we can remove alot of calls to the driver to switch active
|
||||
/// we can remove a lot of calls to the driver to switch active
|
||||
/// textures while rendering. What this also allows us to do
|
||||
/// is to consolidate more objects + draw states as we do
|
||||
/// not need to change textures, this save us alot of calls to
|
||||
/// not need to change textures, this save us a lot of calls to
|
||||
/// the driver.
|
||||
///
|
||||
/// This example combines instancing with bindless textures
|
||||
@ -43,7 +43,7 @@
|
||||
/// a pretty simplified example, where each instance ID is
|
||||
/// used as a index into the array of textures.
|
||||
///
|
||||
/// One of the powerfull things about bindless textures is it allows
|
||||
/// One of the powerful things about bindless textures is it allows
|
||||
/// many more objects to be combined into a single drawable.
|
||||
/// However to do this you may need to add an attribute to
|
||||
/// use an index into the array of texture handles, and not
|
||||
@ -261,7 +261,7 @@ void BindlessTexture::setBidlessIndex(unsigned int index){
|
||||
_bindlessIndex = index;
|
||||
}
|
||||
/// Just as the name suggest this should be called once per
|
||||
/// context, durring its lifetime. This basically
|
||||
/// context, during its lifetime. This basically
|
||||
/// just sets up our texture handles, and loads them
|
||||
/// into our UBO. A good portion of this was copied from
|
||||
/// Texture2D::apply, this is in no ways a general solution.
|
||||
@ -326,7 +326,7 @@ void BindlessTexture::apply(osg::State& state) const
|
||||
applyOnce(state);
|
||||
_isBound[contextID] = true;
|
||||
}else{
|
||||
//we should mostly hit this durring the lifetime of this object,
|
||||
//we should mostly hit this during the lifetime of this object,
|
||||
//note we basically do nothing......
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ class Receiver
|
||||
// Define what port to listen and bind to
|
||||
void setPort( const short port );
|
||||
|
||||
// Sync does a blocking wait to recieve next message
|
||||
// Sync does a blocking wait to receive next message
|
||||
unsigned int sync( void );
|
||||
|
||||
private :
|
||||
|
@ -124,7 +124,7 @@ int main( int argc, char **argv )
|
||||
impostor->setRange(0,0.0f,1e7f);
|
||||
impostor->setCenter(bs.center());
|
||||
|
||||
// impostor specfic settings.
|
||||
// impostor specific settings.
|
||||
impostor->setImpostorThresholdToBound(5.0f);
|
||||
|
||||
model = impostor;
|
||||
|
@ -613,7 +613,7 @@ public:
|
||||
// to be deleted and re-recreated.
|
||||
//
|
||||
// The load/subload happens during the draw traversal so doesn't happen on
|
||||
// the setImage which just updates internal pointers and modifed flags.
|
||||
// the setImage which just updates internal pointers and modified flags.
|
||||
|
||||
_texture->setImage(_imageList[_currPos].get());
|
||||
|
||||
|
@ -70,7 +70,7 @@
|
||||
* This class packs a lot of functionality that you might not expect from a "Viewer".
|
||||
* The reason is that Mac users have high expectations of their applications, so things
|
||||
* that might not even be considered on other platforms (like drag-and-drop), are almost
|
||||
* a requirment on Mac OS X.
|
||||
* a requirement on Mac OS X.
|
||||
* The good news is that this class can almost be used as a template for other purposes.
|
||||
* If you are looking for the bare minimum code needed, focus your attention on
|
||||
* the init* routines and drawRect.
|
||||
@ -782,7 +782,7 @@ A -respondsToSelector: check has been used to provide compatibility with previou
|
||||
}
|
||||
|
||||
// This is a job for Mighty Mouse!
|
||||
// For the most fluid experience turn on 360 degree mode availble in 10.4.8+.
|
||||
// For the most fluid experience turn on 360 degree mode available in 10.4.8+.
|
||||
// With your Mighty Mouse plugged in,
|
||||
// open 'Keyboard & Mouse' in 'System Preferences'.
|
||||
// Select the 'Mouse' tab.
|
||||
@ -796,7 +796,7 @@ A -respondsToSelector: check has been used to provide compatibility with previou
|
||||
// This this call does nothing.
|
||||
// theViewer->getEventQueue()->mouseScroll2D([the_event deltaX], [the_event deltaY]);
|
||||
|
||||
// With the absense of a useful mouseScroll2D API, we can manually simulate the desired effect.
|
||||
// With the absence of a useful mouseScroll2D API, we can manually simulate the desired effect.
|
||||
NSPoint the_point = [the_event locationInWindow];
|
||||
NSPoint converted_point = [self convertPoint:the_point fromView:nil];
|
||||
theViewer->getEventQueue()->mouseButtonPress(converted_point.x, converted_point.y, 1);
|
||||
|
@ -72,7 +72,7 @@ class OSG_EXPORT Callback : public virtual Object {
|
||||
|
||||
/** Invoke the callback, first parameter is the Object that the callback is attached to,
|
||||
* the second parameter, the data, is typically the NodeVisitor that is invoking the callback.
|
||||
* The run(..) method may be overriden by users directly, or if the user is using one of the old
|
||||
* The run(..) method may be overridden by users directly, or if the user is using one of the old
|
||||
* style callbacks such as NodeCallback or Drawable::UpdateCallback then you can just override
|
||||
* the appropriate callback method on those callback subclasses.
|
||||
* If you are implementing your own callback then one should call traverse() to make sure nested callbacks
|
||||
|
@ -747,7 +747,7 @@ class OSG_EXPORT GLExtensions : public osg::Referenced
|
||||
// debug extensions
|
||||
void (GL_APIENTRY * glObjectLabel) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
|
||||
|
||||
/** convinience wrapper around glObjectLabel that calls glObjectLabel if it's supported and using std::string as a label parameter.*/
|
||||
/** convenience wrapper around glObjectLabel that calls glObjectLabel if it's supported and using std::string as a label parameter.*/
|
||||
void debugObjectLabel(GLenum identifier, GLuint name, const std::string& label) const { if (glObjectLabel && !label.empty()) glObjectLabel(identifier, name, label.size(), label.c_str()); }
|
||||
};
|
||||
|
||||
|
@ -129,7 +129,7 @@ class OSG_EXPORT Geometry : public Drawable
|
||||
unsigned int getPrimitiveSetIndex(const PrimitiveSet* primitiveset) const;
|
||||
|
||||
|
||||
/** Convinience method that checks all the vertex arrays to make sure that the buffer objects are all assigned appropriate.*/
|
||||
/** Convenience method that checks all the vertex arrays to make sure that the buffer objects are all assigned appropriate.*/
|
||||
void configureBufferObjects();
|
||||
|
||||
/** return true if any arrays are shared.*/
|
||||
@ -279,7 +279,7 @@ class OSG_EXPORT Geometry : public Drawable
|
||||
#endif
|
||||
};
|
||||
|
||||
/** Convinience visitor for making sure that any BufferObjects that might be required are set up in the scene graph.*/
|
||||
/** Convenience visitor for making sure that any BufferObjects that might be required are set up in the scene graph.*/
|
||||
class ConfigureBufferObjectsVisitor : public osg::NodeVisitor
|
||||
{
|
||||
public:
|
||||
|
@ -747,7 +747,7 @@ class TessellationHints : public Object
|
||||
// forward declare;
|
||||
class Geometry;
|
||||
|
||||
/** Convinience class for populating an Geomtry with vertex, normals, texture coords and primitives that can render a Shape. */
|
||||
/** Convenience class for populating an Geomtry with vertex, normals, texture coords and primitives that can render a Shape. */
|
||||
class OSG_EXPORT BuildShapeGeometryVisitor : public ConstShapeVisitor
|
||||
{
|
||||
public:
|
||||
|
@ -39,7 +39,7 @@ namespace osgParticle
|
||||
virtual const char* className() const { return "Interpolator"; }
|
||||
virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const Interpolator* >(obj) != 0; }
|
||||
|
||||
/// Interpolate between floats. Must be overriden in descendant classes.
|
||||
/// Interpolate between floats. Must be overridden in descendant classes.
|
||||
virtual float interpolate(float t, float y1, float y2) const = 0;
|
||||
|
||||
/// Interpolate between 2-dimensional vectors. Default behavior is to interpolate each component separately.
|
||||
|
@ -50,7 +50,7 @@ namespace osgParticle
|
||||
/// Implementation of <CODE>ParticleProcessor::process()</CODE>. Do not call this method by yourself.
|
||||
inline void process(double dt);
|
||||
|
||||
/// Execute the program on the particle system. Must be overriden in descendant classes.
|
||||
/// Execute the program on the particle system. Must be overridden in descendant classes.
|
||||
virtual void execute(double dt) = 0;
|
||||
|
||||
private:
|
||||
|
@ -36,7 +36,7 @@ namespace osgParticle
|
||||
virtual const char* className() const { return "Shooter"; }
|
||||
virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const Shooter *>(obj) != 0; }
|
||||
|
||||
/** Shoot a particle. Must be overriden by descendants.
|
||||
/** Shoot a particle. Must be overridden by descendants.
|
||||
This method should only set the velocity vector of particle <CODE>P</CODE>, leaving other
|
||||
attributes unchanged.
|
||||
*/
|
||||
|
@ -28,12 +28,12 @@
|
||||
namespace osgShadow {
|
||||
|
||||
/**
|
||||
Class used as a layer for debuging resources used by derived xxxShadowMap classes.
|
||||
Class used as a layer for debugging resources used by derived xxxShadowMap classes.
|
||||
As designed by its base ViewDepndentShadowTechnique, DebugShadowMap serves mainly as container of
|
||||
DebugShadowMap::ViewData objects. Most of the debuging support work is done by these objects.
|
||||
DebugShadowMap::ViewData objects. Most of the debugging support work is done by these objects.
|
||||
DebugShadowMap technique only initializes them in initViewDependentData method.
|
||||
|
||||
Debuging outputs present:
|
||||
Debugging outputs present:
|
||||
Shadow maps (pseudo colored to improve readability)
|
||||
Shadow and related volumes (represented as convex polyhedra)
|
||||
*/
|
||||
@ -65,16 +65,16 @@ class OSGSHADOW_EXPORT DebugShadowMap : public ViewDependentShadowTechnique
|
||||
/** Declaration of standard OSG object methods */
|
||||
META_Object( osgShadow, DebugShadowMap );
|
||||
|
||||
/** Turn on/off debuging hud & rendering of debug volumes in main view */
|
||||
/** Turn on/off debugging hud & rendering of debug volumes in main view */
|
||||
void setDebugDraw( bool draw ) { _doDebugDraw = draw; }
|
||||
|
||||
/** Tell if debuging hud & rendering of debug volumes is active */
|
||||
/** Tell if debugging hud & rendering of debug volumes is active */
|
||||
bool getDebugDraw( void ) const { return _doDebugDraw; }
|
||||
|
||||
/** Get the file name of debuging dump */
|
||||
/** Get the file name of debugging dump */
|
||||
std::string getDebugDump( void ) const { return _debugDump; }
|
||||
|
||||
/** Set the file name of debuging dump */
|
||||
/** Set the file name of debugging dump */
|
||||
void setDebugDump( const std::string & debugDumpFile ) { _debugDump = debugDumpFile; }
|
||||
|
||||
|
||||
|
@ -111,7 +111,7 @@ class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
class OSGSHADOW_EXPORT FragmentShaderGenerator : public osg::Referenced {
|
||||
public:
|
||||
/**
|
||||
* generate the GLSL fragement shader
|
||||
* generate the GLSL fragment shader
|
||||
*/
|
||||
virtual std::string generateGLSL_FragmentShader_BaseTex(bool debug, unsigned int splitCount,double textureRes, bool filtered, unsigned int nbrSplits,unsigned int textureOffset);
|
||||
};
|
||||
|
@ -82,13 +82,13 @@ class OSGTEXT_EXPORT Text3D : public osgText::TextBase
|
||||
/** return true, osgText::Text does support accept(ConstAttributeFunctor&).*/
|
||||
virtual bool supports(const osg::Drawable::ConstAttributeFunctor&) const { return false; }
|
||||
|
||||
/** accept an ConstAttributeFunctor and call its methods to tell it about the interal attributes that this Drawable has.*/
|
||||
/** accept an ConstAttributeFunctor and call its methods to tell it about the internal attributes that this Drawable has.*/
|
||||
virtual void accept(osg::Drawable::ConstAttributeFunctor& af) const;
|
||||
|
||||
/** return true, osgText::Text does support accept(PrimitiveFunctor&) .*/
|
||||
virtual bool supports(const osg::PrimitiveFunctor&) const { return false; }
|
||||
|
||||
/** accept a PrimtiveFunctor and call its methods to tell it about the interal primtives that this Drawable has.*/
|
||||
/** accept a PrimtiveFunctor and call its methods to tell it about the internal primtives that this Drawable has.*/
|
||||
virtual void accept(osg::PrimitiveFunctor& pf) const;
|
||||
|
||||
/** Resize any per context GLObject buffers to specified size. */
|
||||
|
@ -460,8 +460,8 @@ class OSGUTIL_EXPORT SceneView : public osg::Object, public osg::CullSettings
|
||||
|
||||
/** Do init traversal of the attached scene graph using Init NodeVisitor.
|
||||
* The init traversal is called once for each SceneView, and should
|
||||
* be used to compile display lists, texture objects and intialize data
|
||||
* not otherwise intialized during scene graph loading. Note, is
|
||||
* be used to compile display lists, texture objects and initialize data
|
||||
* not otherwise initialized during scene graph loading. Note, is
|
||||
* called automatically by update & cull if it hasn't already been called
|
||||
* elsewhere. Also init() should only ever be called within a valid
|
||||
* graphics context.*/
|
||||
|
@ -817,7 +817,7 @@ void DisplaySettings::readCommandLine(ArgumentParser& arguments)
|
||||
if (arguments.getApplicationUsage())
|
||||
{
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--display <type>","MONITOR | POWERWALL | REALITY_CENTER | HEAD_MOUNTED_DISPLAY");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--stereo","Use default stereo mode which is ANAGLYPHIC if not overriden by environmental variable");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--stereo","Use default stereo mode which is ANAGLYPHIC if not overridden by environmental variable");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--stereo <mode>","ANAGLYPHIC | QUAD_BUFFER | HORIZONTAL_SPLIT | VERTICAL_SPLIT | LEFT_EYE | RIGHT_EYE | HORIZONTAL_INTERLACE | VERTICAL_INTERLACE | CHECKERBOARD | ON | OFF ");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--rgba","Request a RGBA color buffer visual");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--stencil","Request a stencil buffer visual");
|
||||
|
@ -1634,7 +1634,7 @@ void Texture::computeInternalFormatWithImage(const osg::Image& image) const
|
||||
{
|
||||
case(GL_INTENSITY) : internalFormat = GL_RED; break; // should it be swizzled to match RGBA(INTENSITY, INTENSITY, INTENSITY, INTENSITY)?
|
||||
case(GL_LUMINANCE) : internalFormat = GL_RED; break; // should it be swizzled to match RGBA(LUMINANCE, LUMINANCE, LUMINANCE, 1.0)?
|
||||
case(1) : internalFormat = GL_RED; break; // or sould this be GL_ALPHA?
|
||||
case(1) : internalFormat = GL_RED; break; // or should this be GL_ALPHA?
|
||||
case(2) : internalFormat = GL_RG; break; // should we assume GL_LUMINANCE_ALPHA?
|
||||
case(GL_LUMINANCE_ALPHA) : internalFormat = GL_RG; break; // should it be swizlled to match RGAB(LUMUNIANCE, LUMINANCE, LUMINANCE, ALPHA)?
|
||||
case(3) : internalFormat = GL_RGB; break;
|
||||
|
@ -63,7 +63,7 @@ void TextureBuffer::setBufferData(BufferData *bufferdata)
|
||||
{
|
||||
_bufferData->addClient(this);
|
||||
|
||||
///set BufferObject if not setted by user
|
||||
///set BufferObject if not set by user
|
||||
if(!_bufferData->getBufferObject())
|
||||
{
|
||||
VertexBufferObject* bo=new VertexBufferObject();
|
||||
|
@ -17,7 +17,7 @@
|
||||
/// [EXPERIMENTAL] Disables animation data (and matrix transforms) for compatibility with some 3rd party apps.
|
||||
/// Animations are not read by all 3DS importers. Thus disabling them may allow some 3rd-party apps, such as Rhinoceros (tested with 4.0) to correctly import 3DS files.
|
||||
/// However, having proper hierarchy with matrix transforms will become impossible.
|
||||
///\warning This is still experimental, hence the compile flag. This should become a reader/writer option as soon as it works as intented (maybe "noMatrixTransforms" could become a read/write option?).
|
||||
///\warning This is still experimental, hence the compile flag. This should become a reader/writer option as soon as it works as intended (maybe "noMatrixTransforms" could become a read/write option?).
|
||||
#define DISABLE_3DS_ANIMATION 0 // Default = 0
|
||||
|
||||
#include <osg/io_utils>
|
||||
|
@ -123,7 +123,7 @@ osgDB::ReaderWriter::WriteResult ReaderWritterOpenCASCADE::writeNode(const osg::
|
||||
|
||||
/// \brief heals a opencascade shape
|
||||
/// \detail http://www.opencascade.org/org/forum/thread_12716/?forum=3
|
||||
/// Usually IGES files suffer from precision problems (when transfering from
|
||||
/// Usually IGES files suffer from precision problems (when transferring from
|
||||
/// one CAD system to another).It might be the case that faces are not sewed
|
||||
/// properly, or do not have the right precision, and so the tesselator does
|
||||
/// not treat them like "sewed". this needs to be done for sewing
|
||||
|
@ -91,7 +91,7 @@ class ReaderWritterOpenCASCADE: public osgDB::ReaderWriter
|
||||
|
||||
/// \brief heals a opencascade shape
|
||||
/// \detail http://www.opencascade.org/org/forum/thread_12716/?forum=3
|
||||
/// Usually IGES files suffer from precision problems (when transfering from
|
||||
/// Usually IGES files suffer from precision problems (when transferring from
|
||||
/// one CAD system to another).It might be the case that faces are not sewed
|
||||
/// properly, or do not have the right precision, and so the tesselator does
|
||||
/// not treat them like "sewed". this needs to be done for sewing
|
||||
|
@ -61,7 +61,7 @@
|
||||
</p>
|
||||
<p><b>8. Limitation of Liability</b></p>
|
||||
|
||||
<p>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY WILL EITHER PARTY BE LIABLE TO THE OTHER PARTY OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, OR EXEMPLARY DAMAGES WITH RESPECT TO ANY INJURY, LOSS, OR DAMAGE, ARISING UNDER OR IN CONNECTION WITH THIS LETTER AGREEMENT, WHETHER FORESEEABLE OR UNFORESEEABLE, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH INJURY, LOSS, OR DAMAGE. THE LIMITATIONS OF LIABILITY SET FORTH IN THIS SECTION SHALL APPLY TO THE FULLEST EXTENT PERMISSIBLE AT LAW OR ANY GOVERMENTAL REGULATIONS.
|
||||
<p>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY WILL EITHER PARTY BE LIABLE TO THE OTHER PARTY OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, OR EXEMPLARY DAMAGES WITH RESPECT TO ANY INJURY, LOSS, OR DAMAGE, ARISING UNDER OR IN CONNECTION WITH THIS LETTER AGREEMENT, WHETHER FORESEEABLE OR UNFORESEEABLE, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH INJURY, LOSS, OR DAMAGE. THE LIMITATIONS OF LIABILITY SET FORTH IN THIS SECTION SHALL APPLY TO THE FULLEST EXTENT PERMISSIBLE AT LAW OR ANY GOVERNMENTAL REGULATIONS.
|
||||
</p>
|
||||
<p><b>9. Governing Law and Consent to Jurisdiction</b></p>
|
||||
|
||||
|
@ -493,7 +493,7 @@
|
||||
** a single double value, using NaN values to represent non-number
|
||||
** values. The trick only works on 32-bit machines (ints and pointers
|
||||
** are 32-bit values) with numbers represented as IEEE 754-2008 doubles
|
||||
** with conventional endianess (12345678 or 87654321), in CPUs that do
|
||||
** with conventional endianness (12345678 or 87654321), in CPUs that do
|
||||
** not produce signaling NaN values (all NaNs are quiet).
|
||||
*/
|
||||
|
||||
|
@ -150,7 +150,7 @@ protected:
|
||||
bool fixBlackMaterials;
|
||||
bool noReverseFaces;
|
||||
// This is the order in which the materials will be assigned to texture maps, unless
|
||||
// otherwise overriden
|
||||
// otherwise overridden
|
||||
typedef std::vector< std::pair<int,obj::Material::Map::TextureMapType> > TextureAllocationMap;
|
||||
TextureAllocationMap textureUnitAllocation;
|
||||
/// Coordinates precision.
|
||||
|
@ -32,7 +32,7 @@ Purpose:
|
||||
std::streampos actually points past 32 bit addressable range (2 GiB).
|
||||
|
||||
Even if std::streamoff is 32 bit and incapable of representing 64 bit file
|
||||
positions, original std::streampos may be prefectly able to handle them.
|
||||
positions, original std::streampos may be perfectly able to handle them.
|
||||
|
||||
But, when such situation occurs more elaborate conversion methods from/to
|
||||
std::streampos are needed. Functions below employ such methods.
|
||||
|
@ -14,7 +14,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -14,7 +14,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -15,7 +15,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -14,7 +14,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -15,7 +15,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -161,7 +161,7 @@ osg::Group *TXPParser::parseScene(
|
||||
_root->accept(lv);
|
||||
|
||||
//modified by Brad Anderegg May-27-08
|
||||
//running the optimizer on the terrain fixes some major preformance issues, unfortunately the texture atlas builder seems to get messed up
|
||||
//running the optimizer on the terrain fixes some major performance issues, unfortunately the texture atlas builder seems to get messed up
|
||||
//on some of the textures (usually around buildings) and the tri stripper seems to occasionally crash and also mess up the indices on certain buildings.
|
||||
osgUtil::Optimizer opt;
|
||||
opt.optimize(_root.get(), (osgUtil::Optimizer::ALL_OPTIMIZATIONS ^ osgUtil::Optimizer::TEXTURE_ATLAS_BUILDER) ^ osgUtil::Optimizer::TRISTRIP_GEOMETRY);
|
||||
@ -1433,7 +1433,7 @@ void* geomRead::Parse(trpgToken /*tok*/,trpgReadBuffer &buf)
|
||||
if (geometry.valid() && top)
|
||||
{
|
||||
|
||||
//modifed by Brad Anderegg on May-27-08
|
||||
//modified by Brad Anderegg on May-27-08
|
||||
//using display lists actually increases our framerate by
|
||||
//a fair amount, on certain laptops it increased by as much as 1000%
|
||||
geometry->setUseDisplayList(true);
|
||||
|
@ -14,7 +14,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -15,7 +15,7 @@
|
||||
* OpenSceneGraph loader for Terrapage format database
|
||||
* by Boris Bralo 2002
|
||||
*
|
||||
* based on/modifed sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
* based on/modified sgl (Scene Graph Library) loader by Bryan Walsh
|
||||
*
|
||||
* This loader is based on/modified from Terrain Experts Performer Loader,
|
||||
* and was ported to SGL by Bryan Walsh / bryanw at earthlink dot net
|
||||
|
@ -3112,7 +3112,7 @@ public:
|
||||
|
||||
// Set the text alignment. See GetAlignmentType() for more information.
|
||||
void SetAlignment(AlignmentType);
|
||||
/* Return the alignement type. This controls the alignement of the text
|
||||
/* Return the alignment type. This controls the alignment of the text
|
||||
with respect to the label geometry.
|
||||
*/
|
||||
AlignmentType GetAlignment(void) const;
|
||||
|
@ -562,7 +562,7 @@ TX_EXDECL class TX_CLDECL trpgCheckable {
|
||||
public:
|
||||
trpgCheckable(void);
|
||||
virtual ~trpgCheckable(void);
|
||||
// Returns the state of the valid flag, or can be overriden by a subclass to do a more complex check.
|
||||
// Returns the state of the valid flag, or can be overridden by a subclass to do a more complex check.
|
||||
bool isValid(void) const;
|
||||
|
||||
virtual TeAttrHdl GetHandle() const {
|
||||
@ -606,7 +606,7 @@ public:
|
||||
/* The Write method is a virtual that must be filled in by the subclass.
|
||||
It takes a trpgWriteBuffer and should return true on success. */
|
||||
virtual bool Write(trpgWriteBuffer &) = 0;
|
||||
/* The Read method should be overriden by a subclass. It should read
|
||||
/* The Read method should be overridden by a subclass. It should read
|
||||
the contents of the given trpgReadBuffer up to the current limit
|
||||
into itself. It must return true on success. */
|
||||
virtual bool Read(trpgReadBuffer &) { return false;};
|
||||
|
@ -338,7 +338,7 @@ bool trpgr_Archive::ReadHeader(bool readAllBlocks)
|
||||
// Read Tile
|
||||
// Read a tile into a read buffer
|
||||
// For version 2.1 only tile with lod=0 are stored in the tile table, so an
|
||||
// error will be returned if you try to use the table with a differrent lod.
|
||||
// error will be returned if you try to use the table with a different lod.
|
||||
bool trpgr_Archive::ReadTile(uint32 x,uint32 y,uint32 lod,trpgMemReadBuffer &buf)
|
||||
{
|
||||
if (!isValid())
|
||||
|
@ -294,7 +294,7 @@ void LightSpacePerspectiveShadowMapAlgorithm::operator()
|
||||
|
||||
#if 1
|
||||
// Original LiSPSM Paper suggests that algorithm should work for all light types:
|
||||
// infinte directional, omnidirectional and spot types may be treated as directional
|
||||
// infinite directional, omnidirectional and spot types may be treated as directional
|
||||
// as all computations are performed in post projection light space.
|
||||
// Frankly, I have my doubts if their error analysis and methodology still works
|
||||
// in non directional lights post projective space. But since I can't prove it doesn't,
|
||||
|
@ -138,7 +138,7 @@ void MinimalShadowMap::ViewData::aimShadowCastingCamera
|
||||
|
||||
if( up.length2() <= 0 )
|
||||
{
|
||||
// This is extra step (not really needed but helpful in debuging)
|
||||
// This is extra step (not really needed but helpful in debugging)
|
||||
// Compute such lightUp vector that shadow cam is intuitively aligned with eye
|
||||
// We compute this vector on -ZY view plane, perpendicular to light direction
|
||||
// Matrix m = ViewToWorld
|
||||
@ -234,7 +234,7 @@ void MinimalShadowMap::ViewData::frameShadowCastingCamera
|
||||
if( bb.valid() )
|
||||
trimProjection( cameraShadow->getProjectionMatrix(), bb, 1|2|4|8|16|32 );
|
||||
|
||||
///// Debuging stuff //////////////////////////////////////////////////////////
|
||||
///// Debugging stuff //////////////////////////////////////////////////////////
|
||||
setDebugPolytope( "scene", _sceneReceivingShadowPolytope, osg::Vec4(0,1,0,1) );
|
||||
|
||||
|
||||
|
@ -270,7 +270,7 @@ void Text3D::computeGlyphRepresentation()
|
||||
osg::Vec2 endOfLine_coords(cursor);
|
||||
String::iterator endOfLine_itr = computeLastCharacterOnLine(endOfLine_coords, itr,_text.end());
|
||||
|
||||
// ** position the cursor function to the Layout and the alignement
|
||||
// ** position the cursor function to the Layout and the alignment
|
||||
TextBase::positionCursor(endOfLine_coords, cursor, (unsigned int) (endOfLine_itr - startOfLine_itr));
|
||||
|
||||
|
||||
|
@ -468,21 +468,21 @@ namespace PlaneIntersectorUtils
|
||||
|
||||
if (numOnPlane==3)
|
||||
{
|
||||
// triangle lives wholy in the plane
|
||||
// triangle lives wholly in the plane
|
||||
OSG_NOTICE<<"3"<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (numOnPlane==2)
|
||||
{
|
||||
// one edge lives wholy in the plane
|
||||
// one edge lives wholly in the plane
|
||||
OSG_NOTICE<<"2"<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (numOnPlane==1)
|
||||
{
|
||||
// one point lives wholy in the plane
|
||||
// one point lives wholly in the plane
|
||||
OSG_NOTICE<<"1"<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
@ -886,7 +886,7 @@ bool GraphicsWindowIOS::realizeImplementation()
|
||||
|
||||
OSG_DEBUG << "GraphicsWindowIOS::realizeImplementation: INFO: Created UIWindow with bounds '" << window_bounds.size.width << ", " << window_bounds.size.height << "' (points)." << std::endl;
|
||||
|
||||
//if the user has requested a differnet screenNum from default 0 get the UIScreen object and
|
||||
//if the user has requested a different screenNum from default 0 get the UIScreen object and
|
||||
//apply to our window (this is for IPad external screens, I don't have one, so I've no idea if it works)
|
||||
//I'm also not sure if we should apply this to external windows also?
|
||||
if(_traits->screenNum > 0 && screen != nil)
|
||||
|
Loading…
Reference in New Issue
Block a user