Commit Graph

2509 Commits

Author SHA1 Message Date
Robert Osfield
9c9439ef73 Added DisplaySettings:s/getgTextShaderTechnique() and OSG_TEXT_SHADER_TECHNIQUE env var support to DisplaySettings.
Added using of DisplaySettings:getgTextShaderTechnique() to Text default constructor.
Added better debug output control in Text.cpp
2017-10-24 14:46:13 +01:00
Robert Osfield
6b75439ae4 Merge branch 'master' into text_improvements 2017-10-20 14:14:14 +01:00
Robert Osfield
068f47d91f Build fixes with ref_ptr<> autoconversion disabled 2017-10-19 11:57:53 +01:00
Laurens Voerman
274cea19bf copySubImage support for block compressed images, added support for astc compressed type. 2017-10-13 16:54:04 +02:00
Robert Osfield
d6af00d9bd Merge branch 'master' into text_improvements 2017-10-10 09:21:34 +01:00
OpenSceneGraph git repository
d74e340f32 Merge pull request #359 from eligovision/OpenSceneGraph_gles
Added defines: GL_ALPHA4/8/12/16 in osg/Image, this will fix compilat…
2017-10-09 10:03:21 +01:00
OpenSceneGraph git repository
5f985a36a2 Merge pull request #358 from eligovision/OpenSceneGraph_optimizer
VertexAttribDivisor compare function fix: index must be compared
2017-10-09 10:02:51 +01:00
Robert Osfield
9ac2b2eb7b Added VertexArrayState::ArrayDispatch::className() method and implementation for each ArrayDispatch subclass to help with debugging 2017-10-06 17:47:19 +01:00
Konstantin S. Matveyev
1e1f69febc Added defines: GL_ALPHA4/8/12/16 in osg/Image, this will fix compilation error while building for GLES2 2017-10-06 18:16:48 +03:00
Konstantin S. Matveyev
a87e57e946 VertexAttribDivisor compare function fix: index must be compared 2017-10-06 18:14:47 +03:00
Robert Osfield
cc7cf54353 Added support for subsititing $VAR_NAME entries in shaders to enable writing shaders that work across GLSL versions. 2017-09-18 18:09:15 +01:00
Denys Koch
1d1bfa1b39 Fix flawed BoundingSphere inequality operator 2017-08-28 14:34:39 +02:00
OpenSceneGraph git repository
5efdcd5655 Merge pull request #328 from scrawl/group-docs
Fix docs for Group::addChild to match implementation
2017-08-27 18:07:21 +01:00
scrawl
1cd1ab1c60 Fix docs for Group::addChild to match implementation
Checking for duplicates is only done if ENSURE_CHILD_IS_UNIQUE is defined, but this is never defined anywhere.
2017-08-26 11:30:55 +00:00
Daniel Emminizer
2e456eeddc No longer using OSG_EXPORT on DefaultIndirectCommandDrawArrays and DefaultIndirectCommandDrawElements, fixing compile errors in MSVC 2015. 2017-08-25 08:55:25 -04:00
Julien Valentin
c89b08ea1f Add extensions 2017-08-25 00:19:22 +02:00
Julien Valentin
107b7be95b Merge remote-tracking branch 'upstream/master' into MDI7 2017-08-24 11:26:23 +02:00
OpenSceneGraph git repository
b89384d810 Merge pull request #318 from mp3butcher/osganimation
change the design of BufferIndexBinding to work with BufferData instead of BufferObject +matrix transpose
2017-08-24 09:53:32 +01:00
Julien Valentin
d49f0d67af change the design of BufferIndexBinding to work with BufferData instead of BufferObject
allow convenient BufferData abstraction +  serialization of BufferIndexBinding
2017-08-24 03:28:55 +02:00
Julien Valentin
3b03699fbc add a transpose method for 4x4
and a transpose3x3 to transpose only orthogonal part of a mat4x4
2017-08-23 23:49:36 +02:00
Robert Osfield
eefeb3bb93 Fixed underflow issue 2017-08-23 15:26:07 +01:00
Robert Osfield
f3adcda6b7 Removed the GLclampd declaration and replaced its usage with GLdouble to standardize the OSG extension setup with current GL/GLES headers.
Added a float fallback from osg::DepthDangeIndex to suppprt GLES.
2017-08-16 14:20:00 +01:00
luzpaz
2cd31f65e4 misc. typo fixes
mostly non-user-facing but some doxy.
2017-08-15 12:23:49 -04:00
Julien Valentin
899a704eb7 update IndirectCommandArrays interfaces and default impl to use DrawElements like semantic 2017-08-05 18:03:27 +02:00
Julien Valentin
7f292c3fb5 add resize methods method in CommandArrays (it allows user to work without casting to the concrete class result of MDI.getCommandArray())
move getTotalDataSize in CommandArrays interfaces
comply with other DrawElementsXXX removing parameters in mdi constructors and add several method ( allow use of osgUtil::DrawElementTypeSimplifer on these)
2017-08-02 21:50:25 +02:00
Robert Osfield
fda30b36d1 Merged #pragmatic shader fix from OpenSceneGraph-3.4 branch. 2017-07-31 13:38:18 +01:00
Robert Osfield
5a946e218f Improved the readability and consistency with the rest of the OSG by inserting/removing spaces and line spacing. 2017-07-28 13:30:36 +01:00
mp3butcher
a45c4c8f39 set DIBO of the drawcommandarray directly in their interface constructor
it makes osggpu use case lighter + drawcommandarray can't exist without a BO
2017-07-27 12:27:55 +02:00
mp3butcher
104b2dfc72 Promote PrimitiveSetIndirect's VBO to a target explicited DIBO (in order to benefit from BOSet queue management) 2017-07-27 12:13:05 +02:00
mp3butcher
7606159a78 add DrawIndirectBufferObject as State variable in order to minimize call to glBindBuffer(GL_DRAW_INDIRECT_BUFFER,X)
TODO: Promote PrimitiveSetIndirect's VBO to target explicited DIBO (in order to benefit from BOSet queue management)
2017-07-27 01:54:25 +02:00
mp3butcher
9b53775840 remove deprecated DrawIndirectBufferBinding 2017-07-27 01:40:04 +02:00
mp3butcher
8742ad8da6 fix some errors during renaming and cleanup code 2017-07-27 01:08:37 +02:00
mp3butcher
f27c379b1e some renaming and harmonisations with osg metamodel convention 2017-07-26 23:36:55 +02:00
mp3butcher
5be14bc2ba first commit for Indirect Draw integration in osg
users will have to implement interfaces for their custom drawcommandarrays
add a lot of new primitive set + few defines
integration is made in osggpucull
2017-07-26 21:20:28 +02:00
OpenSceneGraph git repository
da7a0968be Merge pull request #265 from cxw42/array-classname
Make Array::className() support all Array::Type values
2017-06-19 08:50:00 +01:00
Chris White
eb99df894a Make Array::className() support all Array::Type's
Array::className() had fallen out of date with respect to Array::Type.
This commit updates it, and adds documentation and a debug message to
serve as a reminder for future additions of values to Array::Type.
2017-06-16 11:02:14 -04:00
blobfish
f5bd280b51 osg: KdTree: count degenerates to keep original primitive index in sync 2017-06-04 17:29:57 -04:00
blobfish
bb804c2045 osg: KdTree: encode original primitive index into _vertexIndices 2017-06-04 17:29:57 -04:00
Robert Osfield
502acc19c9 Build fix 2017-05-25 09:54:11 +01:00
Robert Osfield
20ac472d1f Moved OSG_USE_DEPRECATED_API from include/osg/Export to Cmake controlled include/osg/Config 2017-05-24 19:40:08 +01:00
Robert Osfield
a74b4b94a9 Fixes/clean up of KdTree/LineSegmentIntersector/PolytopeIntersector 2017-05-11 15:29:31 +01:00
Robert Osfield
6e1866ac18 Added --points and --lines command line options that do a very simplistic conversion of geometry primitives to points or lines respectively, used to aid testing of intersectors 2017-05-11 15:29:31 +01:00
Robert Osfield
bc0a402dac Improved indentation, making it consistent with the rest of the OSG headers 2017-05-11 15:25:10 +01:00
Robert Osfield
9ce657f413 Created TemplatePrimitiveIndexFunctor to enable easier handling of point, lines, triangles and quad index meshes 2017-05-11 15:25:10 +01:00
Robert Osfield
c9545970ac Removed redudent bool parameter from TriangleFunctor::operator(Vec3, Vec3, Vec3, bool) so it's now simply TriangleFunctor::operator(Vec3, Vec3, Vec3) as the bool was always false in recently OSG versions. 2017-05-11 15:25:10 +01:00
Robert Osfield
48a3fc30f3 Removed old style OpenGL methods from PrimitiveFunctor classes/templates as these are no longer used or required. 2017-05-11 15:25:10 +01:00
Robert Osfield
8f5493e573 Implemented Polytope::contains(..) for triangle vertices and added support for using the results mask. 2017-05-11 15:25:10 +01:00
Robert Osfield
265efb85a1 Initial work on adding KdTree support for PolytopeIntersector. 2017-05-11 15:25:10 +01:00
Robert Osfield
a95d66a587 Replaced dynamoc_cast<osg::CullStack*> with asCullStack() to improve performance of AutoTransform, screen size based LOD and PagedLOD. 2017-04-26 17:10:58 +01:00
Robert Osfield
92092a56ae Refactored AutoTransform so that it dynamically computes the rotation, scale and matrices during the cull traversal to enable usage in multi-view, multi-threaded applications 2017-04-26 11:50:35 +01:00
Robert Osfield
a4b0dc7426 Added missing Node::asAutoTransform() + NodeVisitor::apply(AutoTransform&). 2017-04-25 18:04:04 +01:00
mp3butcher
8d40323761 add Extensions 2017-04-05 18:11:50 +02:00
mp3butcher
9d490bbf1c add ScriptNodeCallback serializer 2017-03-28 22:37:34 +02:00
Robert Osfield
6308b497f2 Replaced macro based selection of which shaders to use by default with DisplaySettings::setShaderHint() and OSG_SHADER=HINT=GL2|GL3|GLES2|GLES3|NONE controls 2017-03-27 11:44:41 +01:00
Robert Osfield
c6228fabbd Added built-in shaders for shader_pipeline functionality
Added support for enabling shader_pipeline shaders using OSG_SHADER_PIPELINE=ON/OFF env var
Added support for setting the shader_pipeline shaders using OSG_SHADER_PIPELINE_FILES=shader.vert:shader.shaderpipeline_frag env var
Added support for setting the maximum number of texture units used by shader_pipeline shaders via OSG_SHADER_PIPELINE_MAX_TEXTURE_UNITS=<num> env var
2017-03-24 18:53:22 +00:00
Robert Osfield
7346831082 Added parameter to invocation of all GLSL TexEnv combinations and cleaned up debug output from new osg::UniformTemplate implementations 2017-03-24 10:08:51 +00:00
Robert Osfield
986674e547 Added CopyOp handling of Uniform. 2017-03-23 18:12:52 +00:00
Robert Osfield
d5e9a2c447 Added shader pipeline support to various Texture subclasses 2017-03-23 18:12:52 +00:00
Robert Osfield
3821f77c35 Added name of uniform to debug output 2017-03-23 17:59:39 +00:00
Robert Osfield
83372ff864 Added shader pipeline support to osg::TexEnv 2017-03-23 17:59:39 +00:00
Robert Osfield
59a28859ec Added shader pipeline support to osg::TexGen. 2017-03-23 17:59:39 +00:00
Robert Osfield
2fc28a7f64 Added mapping of GL modes to 0 (disabled) or 1 (enabled) for the fixed function -> shaders mapping.
Added flags for hinting to StateAttribute::apply() implementations whether to toggling on/off the fixed function or shader equivilants.
2017-03-23 17:59:39 +00:00
Robert Osfield
2574894e17 Added TextureAttribute base class from Texture related StateAttribute that need texture unit information from StateSet::setTextureAttribute assigned to
help set configure the appropriate uniforms.
2017-03-23 17:58:34 +00:00
Robert Osfield
7d076d0407 Added UniformBase::setName(const std::string& baseName, unsigned int unit); declaration 2017-03-23 17:58:34 +00:00
Robert Osfield
7e43538c63 Added accessors for osg::State's ModeDefineMaps 2017-03-23 17:58:34 +00:00
Robert Osfield
7744c44c8a Added convinience mathod for passing osg::Plane to glUniform 2017-03-23 17:58:34 +00:00
Robert Osfield
bbbfa19ce2 Added osg::PlaneUniform.
Added osg::UniformBase::setName(const std::string&) ability to be reset.
Added osg::UniformBase::setName(const std::string& baseName, unsigned int unit) so set the uniform name in the form "baseName[unit]".
2017-03-23 17:58:34 +00:00
Robert Osfield
5a996dd2d1 Added osg::MakeString class to make it easier to create std::string's using std::ostream style << usage. 2017-03-23 17:58:34 +00:00
Robert Osfield
c0b04cc37b Introduced new osg::UniformBase class to enable an extensible uniform class hierachy
Added osg::UniformTemplate, osg::UniformArrayTemplate and a set of IntUniform, IntArrayUniform etc. to make it easier to interact with basic types more efficiently.
2017-03-23 17:58:34 +00:00
Robert Osfield
5bfefdae6a Added mapping of texture modes to #define's to inject into shaders where required 2017-03-23 17:42:33 +00:00
Robert Osfield
6d531fd643 Moved the implementation of the State::setUseModelViewAndProjectionUniforms(bool) and State::setUseVertexAttributeAliasing(bool) into State.cpp and added initialization of the VertexArrayState array bindings to ensure that bindings get updated correctly.
Refined the State::popStateSet() method to make it more efficient
2017-03-23 17:42:33 +00:00
Robert Osfield
a99b05ff87 Added State::s/getRootStateSet() that enables applications to insert a StateSet above all rendering for a graphics context. Utilized in the new shadper pipeline functionality 2017-03-23 17:42:33 +00:00
Robert Osfield
172ca9bae5 Removed debug version of applyUniformList 2017-03-23 17:42:33 +00:00
Robert Osfield
d1222fc2ef Added fallback textures to handle cases where no texture is provided 2017-03-23 17:42:33 +00:00
Robert Osfield
7e0551e7e8 Added #pragma import_texture_modes() -> #define into #pragma data structure a GLSL parsing 2017-03-23 17:42:33 +00:00
Robert Osfield
71da950cee Standardized GLenum's on non EXT versions 2017-03-23 17:42:33 +00:00
Robert Osfield
5c2ea3ad1f Intial work on providing mapping from OpenGL modes to #pragma(tic) shader composition defines.
Shader  usage:

   #pragma import_modes ( GL_LIGHTING, GL_TEXGTURE_2D )

Will provide #define in shaders for GL_LIGHTING and GL_TEXTURE_2D if these Modes are enabled via StateSet::setMode(..);
2017-03-23 17:42:33 +00:00
OpenSceneGraph git repository
602a6beda8 Merge pull request #225 from MPursche/add_texture2dmultisample_serializer
Added serializer for Texture2DMultisample
2017-03-22 10:31:45 +00:00
Marcel Pursche
422587a285 Added serializer for Texture2DMultisample 2017-03-22 10:47:58 +01:00
Thomas Hogarth
76fe572934 Added conditionals for GLES3, added correct gl headers for GLES3 on iOS and Android to GL.in 2017-03-20 18:33:08 +00:00
Robert Osfield
ffbc1167de Added lazy state updating for vertex array object binding/unbinding 2017-03-13 11:44:34 +00:00
Robert Osfield
61782d8f29 Build fixes 2017-03-11 12:31:19 +00:00
OpenSceneGraph git repository
75e4d85681 Merge pull request #211 from D-A-Heitbrink/master
Added support for unsigned 64 bit ints + some code for bindless textures
2017-03-11 11:58:20 +00:00
Robert Osfield
96760970ed Added setDataVariance(DYNAMIC) to stats text labels that are dyanmically updated. 2017-03-09 17:01:33 +00:00
d-a-heitbrink
7b3fc0925c Merge branch 'master' of https://github.com/openscenegraph/OpenSceneGraph 2017-03-01 16:12:49 -06:00
Robert Osfield
255a86cbe2 Added public accessors 2017-01-17 10:52:26 +00:00
d-a-heitbrink
3d2f4ea404 Added support for Bindless texture extension,
64 bit uniforms, 64 bit buffers
Added new bindless texture example
2017-01-13 09:56:42 -06:00
Hartwig
5e0b3dacc6 Replaced tabs with spaces 2017-01-07 13:54:21 +01:00
Hartwig
7c1098c843 Addition of documentation for LOD and PagedLOD
Documentation has been added for their default constructors. Furthermore, the consequences of different center modes have been explained. A comment regarding the setting of the radius has been fixed.
2017-01-07 09:20:56 +01:00
Robert Osfield
1abd99f084 Added support for glObjectLabel debugging 2016-11-15 14:35:47 +00:00
Robert Osfield
5b375124cc Added osg::Geometry::configureBufferObjects() and ConfigureBufferObjectsVisitor visitor to help with setting up buffer objects in a coherent fashion. 2016-11-14 17:59:25 +00:00
Robert Osfield
99cb8ebacf Added more flexibility into the State::checkGLErrors() method, allowing calling code to pass in two strings.
Improved the StateSet::compileGLObjects() usage of checkGLErrors() to make the warning reports more meaningful.
2016-11-14 11:59:47 +00:00
Robert Osfield
b10d30242d Fixed GLES build due to lack of GLclampd 2016-10-12 18:00:05 +01:00
Laurens Voerman
1a664b19de add #define GL_TEXTURE0 for windows users previously provided by GLBeginEndAdapter 2016-10-12 13:29:58 +02:00
Robert Osfield
38ff11f8c5 Renamed ArrayDispatchers to AttributeDispatchers to better reflect it's role 2016-10-11 15:14:14 +01:00
Robert Osfield
e14ee80282 Streamlined the dispatch and activation of attribute dispatchers 2016-10-11 11:29:29 +01:00
Robert Osfield
364c838ea1 Removed unused vertex and texcoord array dispatchers 2016-10-11 11:29:29 +01:00
Fabian Wiesel
b13bbe3bdb VAO id is a GLuint 2016-10-11 11:29:29 +01:00
Robert Osfield
0ee65c9d2f Removed unneccessary parameter 2016-10-11 11:29:29 +01:00
Robert Osfield
e11e45a2e3 Removed GLBeginEndAdapter as it is no longer needed 2016-10-11 11:29:29 +01:00
Robert Osfield
aa0c8fdefd Added ApplyTextureModeProxy for temporarily applying a texture mode 2016-10-11 11:29:29 +01:00
Robert Osfield
1914eb435b Added State::ApplyModeProxy to help with temporarily applying a mode 2016-10-11 11:29:29 +01:00
Robert Osfield
cd3a5f8097 Added osg::convertToRGBA8(Vec4f) convenience function 2016-10-11 11:29:29 +01:00
Robert Osfield
8febae1546 Fixed VertexArrayState::bind*BufferObject(..) methods so they correctly handle dirtied buffer objects 2016-10-11 11:29:29 +01:00
Robert Osfield
a5e0398a29 Fixed typo in comment 2016-10-11 11:29:29 +01:00
Robert Osfield
611b7afb07 Added OSG_EXPORT 2016-10-11 11:29:29 +01:00
Robert Osfield
e5ab4355be Added osg::convertShapeToGeometry(...) convinience functions for creating osg::Geometry from osg::Shape descriptions. 2016-10-11 11:29:29 +01:00
Robert Osfield
83b5cabac9 Refactored ShapeDrawable so that it is subclassed from osg::Geometry rather than osg::Drawable.
Created a BuildShapeGeometryVisitor visitor that can create osg::Geometry for osg::Shape objects
2016-10-11 11:29:29 +01:00
Robert Osfield
f842750342 Removed no longer used member variables 2016-10-11 11:29:29 +01:00
Robert Osfield
65884f296b Removed no longer used data structures 2016-10-11 11:29:29 +01:00
Robert Osfield
16da432be3 Moved FOG_COORD and SECONDARY_COLOR #define's from State header into VertexArrayState.cpp 2016-10-11 11:29:29 +01:00
Robert Osfield
359b136b5e Added check against State::useVertexBufferObjects(..) so that Display Lists are only used when VBO is OFF. 2016-10-11 11:29:29 +01:00
Robert Osfield
94891778c4 Restructred the enabling of vertex array object support to allow one to set enable the default via osg::State.
Added OSG_VERTEX_BUFFER_HINT env var to osg::DisplaySettings with VERTEX_BUFFER_OBJECT/VBO, VERTEX_ARRAY_OBJECT/VAO and NO_PREFERENCE to allow one to foce on VBO or VAO usage.

Restructred BufferObject assigned in osg::Geometry

Added
2016-10-11 11:29:29 +01:00
Robert Osfield
ee31921520 Streamlined State::_is*Supported variables 2016-10-11 11:29:29 +01:00
Robert Osfield
1d75089bf8 Build fixes when compiling wuth CMake options OPENGL_PROFILE set to GLCORE 2016-10-11 11:29:29 +01:00
Robert Osfield
e3c663bb02 Removed deprecated code paths and moved implementations into headers 2016-10-11 11:29:29 +01:00
Robert Osfield
bf28e2d037 Refactored the VertexArrayState's handling of vertex attribute aliasing 2016-10-11 11:29:29 +01:00
Robert Osfield
1f147f6bc6 Moved implementations from .cpp's to headers as inline methods to improve performance. 2016-10-11 11:29:29 +01:00
Robert Osfield
97df15b205 Improved naming of createVertexArrayState(..) method 2016-10-11 11:29:29 +01:00
Robert Osfield
83f73df814 Added State::useVertexArrayObject() member to streamline toggling on/off of VAO usage 2016-10-11 11:29:29 +01:00
Robert Osfield
a4e682bb28 Added support for clean up Vertex Array Objects 2016-10-11 11:29:29 +01:00
Robert Osfield
4131d2da34 Added intialization of the VAO in Geometry::compileGLObjects() and refined the invocation of updates to the VAO 2016-10-11 11:29:29 +01:00
Robert Osfield
078598872f Added lazy setting of arrays for osg::Geometry using vertex_array_object 2016-10-11 11:29:29 +01:00
Robert Osfield
4b4cd13d31 Implemented lighter weight setting of the CurrentVertexArrayState and introduced GlobalVertexArrayState. 2016-10-11 11:29:29 +01:00
Robert Osfield
7d83d735ad Implemented a different approach to vertex array object support to enable creation of a single global vertex array object as well as provide individual vertex array objects per Drawable when required. 2016-10-11 11:29:29 +01:00
Robert Osfield
4d8a29b987 Added ability to initializer GL vertex array object id with Geometry::compileGLObjects().
Improved the handling of buffer object state when not using VAO's
2016-10-11 11:29:29 +01:00
Robert Osfield
14d1483b06 Experimental support for OpenGL Vertex Array Object 2016-10-11 11:29:29 +01:00
Robert Osfield
ee97db3488 Introduced OpenThreads::Affinity support into osg::Camera, osg::GraphicsContext::Traitse, osgDB::DatabasePager and osgViewer::ViewerBase/Viewer/CompositeViewer.
Added ViewerBase::configureAffinity() to help with the setting of the affinity of camera, graphics context and pager threads
2016-10-07 12:17:03 +01:00
Robert Osfield
8de4c76582 Fixed crash and double call bug in handle event callbacks attached to Drawable 2016-10-06 18:27:23 +01:00
Robert Osfield
b0df75e674 Cleaned up the spacing and const of various method parameters.
Added non const versions of StateSet::getAttributePair() and getTextureAttributePair()
2016-09-20 17:01:26 +01:00
Laurens Voerman
55b8c380d8 wrong Meta_Shape tag in ConvexHull 2016-09-12 16:49:35 +02:00
Robert Osfield
cb6e6ff2be Fixed warnings, deprecated another out of date method 2016-09-05 15:35:54 +01:00
Robert Osfield
a494cd71e8 Fixed typo 2016-09-05 07:59:15 +01:00
Robert Osfield
79ff8ba273 Merge branch 'Submissions2e' of https://github.com/LaurensVoerman/OpenSceneGraph into LaurensVoerman-Submissions2e 2016-09-02 18:26:11 +01:00
OpenSceneGraph git repository
8d827ced1b Merge pull request #117 from LaurensVoerman/Submissions2a
bugfix: wrong class name in META_Object macro for osg::Enablei /disable
2016-09-02 17:35:47 +01:00
Laurens Voerman
628f8fd9dc added call to copy constructor for virtual base classes in copy constructor of derived classes, removed these for abstract classes 2016-08-29 10:41:40 +02:00
Laurens Voerman
dd223002dd bugfix: wrong class name in META_Object macro for osg::Enablei osg::Disablei 2016-08-29 09:37:14 +02:00
Robert Osfield
0ad09d6dad Fixed unused variable warnings 2016-08-26 19:18:00 +01:00
Robert Osfield
11ddd53eb4 Removed redundent Referenced::s/getThreadSafeReferenceCounting() and associated static and env vars as there are now inapprorpiate and no longer supported 2016-08-26 17:59:30 +01:00
Robert Osfield
82ab389fd6 Added Vec2,3,4 for b, ub, s, us, i, ui. 2016-07-04 13:36:28 +01:00
Julien Valentin
50f6cf6a69 Added missing xzyw accessor to Vec4ub 2016-07-04 10:01:17 +01:00
Robert Osfield
b7bf94b4c6 Added const 2016-07-02 14:45:10 +01:00
Marc Helbling
43443928d0 Updates osgAnimation
This updates is mainly for the gles plugint to work correctly.

* adds Quaternion array
* reintroduces `KeyframeContainer::linearInterpolationDeduplicate`
* fixes MorphGeometry OSG serialization (target names)
2016-07-01 17:04:15 +02:00
Robert Osfield
00b1173e70 Added osg::ScissorIndexed that wraps up glScissorIndexed function 2016-06-29 15:11:02 +01:00
Robert Osfield
412e9fc3dd Added osg::DepthRangeIndexed class to wrap up glDepthRangeIndexed functionality. 2016-06-29 12:28:28 +01:00
Robert Osfield
8d7d5d12a1 Added osg::ViewportIndexed that adds support for glViewportIndexed 2016-06-29 11:26:54 +01:00
Laurens Voerman
ec74518868 Added glViewerArray, glSissorArray, glDepthRangeArray etc. GL extension support 2016-06-29 09:53:04 +01:00
Robert Osfield
39317acd42 Changed return type to unsigned int to make it more compatible with serialization 2016-06-25 12:35:34 +01:00
Robert Osfield
949aca196d Refactored handling of StateAttiribute's that override the StateAttiribute::getMember() so that when they change their Member value they update the StateSet parents that own them to keep the StateSet's maps coherent. 2016-06-25 12:24:19 +01:00
Robert Osfield
c8d668b298 Added depecated message to redundent shape classes 2016-06-24 09:46:19 +01:00
Robert Osfield
07137f4111 Fixed unitialized variables 2016-06-23 16:32:02 +01:00
Robert Osfield
1f73376476 Restructed the GLExtensions(..) constructor so that it now intializes all the variables to NULL if there is not a valid graphics context present 2016-06-23 12:19:59 +01:00
Robert Osfield
bc8452512f Added initializers and handling of null case 2016-06-23 11:03:38 +01:00
Robert Osfield
67cc776696 Added default_value() template to help with creating templates that need to initialize members that are floats etc. 2016-06-22 11:26:11 +01:00
Robert Osfield
d5f18590fd Added intializers 2016-06-22 10:35:37 +01:00
Robert Osfield
7d34e8f441 Build fixes to reflect removal of deprecated_osg::Geometry 2016-06-17 12:49:44 +01:00
Julien Valentin
e236acfed5 Added OpenGL extensions related to shader subroutine 2016-06-17 10:35:25 +01:00
Julien Valentin
78b99c7143 Refactored osg::TextureBuffer to support assigning any type of osg::BufferData rather than just osg::Image as was previously required.
Refactored osgforest and osggpucull examples to take account of changes to TextureBuffer.

Added osg::DrawIndirectBufferBinding.
2016-06-15 19:05:35 +01:00
Robert Osfield
819ce6c0d1 Removed redundent _boundingBoxComputed 2016-06-14 18:27:27 +01:00
Robert Osfield
4c5ca932c8 Added #include <string> in case other headers don't include it. 2016-06-13 16:24:01 +01:00
Julien Valentin
ac26ba7e5b Shader subroutine related funcs added 2016-06-09 10:48:05 +01:00
Robert Osfield
ef73d2449e Fixed -Wextra warnings 2016-06-08 09:20:16 +01:00
Robert Osfield
10e27681dd Fixed "unreferenced formal parameter" warnings 2016-06-07 08:53:42 +01:00
Robert Osfield
27caa9c1b1 Removed redundent _EXT 2016-06-06 12:05:28 +01:00
Jethro Leevers
08a823d857 Added support for GL_LINE_STRIP_ADJACENCY_EXT 2016-06-06 11:59:56 +01:00
Björn Blissing
e8f103afc9 VS2015 build fix 2016-06-03 17:22:28 +01:00
Robert Osfield
afe89e8d94 Added float variants of osg::PI etc. in the form osg::PIf
Converted osg::PI usage to osg::PIf in ShapeDrawable.cpp to address Windows build errors
2016-06-03 11:28:10 +01:00
Robert Osfield
41ce857c93 Fixed clang warnings 2016-06-03 09:33:47 +01:00
Robert Osfield
d038866649 Fixed method to match parent class. 2016-06-02 14:31:44 +01:00
Robert Osfield
d3c6dc6f34 Fixed doxygen warnings 2016-06-01 14:20:14 +01:00
Julien Valentin
5a4a5c3507 Added glDrawArraysIndirect, glMultiDrawArraysIndirect, glDrawElementsIndirect and glMultiDrawElementsIndirect extensions. 2016-06-01 10:01:44 +01:00
Jannik Heller
55e5d74a1c Fixed typo of method name 2016-05-30 13:44:54 +01:00
Alberto Luaces
260cbab518 Typo fixes 2016-05-30 12:30:05 +01:00
Robert Osfield
5260e3a35e Fixed build error introduced by c3f2711b09 2016-05-23 11:31:02 +01:00
rdiankov
da34da18ca add safety checking when dereferencing ref_ptr 2016-05-21 21:29:14 +02:00
Robert Osfield
ae3ba28fee Fixes shadows warnings 2016-05-20 13:38:34 +01:00
Jannik Heller
a5b05f77ea This submission removes the define / code path OSG_USE_BOUND that was never used. The class osg::Bound used by this code doesn't exist either. 2016-05-19 17:32:24 +01:00
Robert Osfield
fe6238d126 Added osg::GraphicsContext::WindowingSystemInterfaces singleton for managing multiple WIndowinSystemInterface
implementations being registered at the same time.

One usage case for this functionality to support usage of Wayland and X11 in the same version of the osgViewer.

As part of the new functionality there is now a osg::GraphicsContext::Traits::windowingSystemPreferrence string
that default to empty, but if defined will ensure that a specific WindowingSystemInterface is utilized when
you do a generic call like osg::createGraphicsContext().

Also implemented is standard proxy object for registering the new contexts and removing them automatically, and
declaration of standard graphicswindow_name() C entry point to help with static build linking.
2016-05-16 13:45:31 +01:00
Robert Osfield
eb50a15b52 Fixed ShaderComposer::releaseGLObjects(State*) const method as it's const was missing.
Rewrote the ShaderComposer::releaseGLObjects() const method to pass on the releaseGLObjects() calls to any associated Program or Shader objects.
2016-04-18 20:46:45 +01:00
Robert Osfield
459ae5ce64 Changed the default value paramter to be consistent with the non templated version of StateSet::setTextureAttributeAndModes(..) 2016-03-29 20:24:05 +01:00
Robert Osfield
f5b5202296 From Joe Thompson, "OpenSceneGraph cannot be built with Visual Studio 2008.
The file osg-OpenSceneGraph-3.4.0\include\osg\Types
typedefs int8_t, int16_t, int32_t and int64_t
These are typedefed as signed __intX in several other places.
With VS2008, this causes an error "int8_t redifined, different basic types"
Explicitly declaring them signed fixes the error."
2016-03-02 09:18:26 +00:00
Robert Osfield
5d03bb9a2b From Jannik Heller, "This submission fixes a stuttering issue that may occur when occlusion query nodes are in view. The problem is that OSG retrieves the occlusion query result without first checking if it's available (GL_QUERY_RESULT_AVAILABLE). Thus, the driver has to sync with the GPU i.e. wait for all queued draw calls to complete. This is particularly bad in V-Synced situations where the driver may be using multi frame queueing techniques - coupled with the fact that OSG only runs an occlusion query every 5th frame, results in very unpleasant stuttering in some situations.
The change I made is to check GL_QUERY_RESULT_AVAILABLE before retrieving the query, to ensure that there won't be a stall. If the query result is not available yet, we'll leave it alone and try again in the next frame.

Had to make a few more changes than I'd liked, mostly because the TestResult mechanism wasn't designed for holding on to query objects for more than one frame. As well, I'm thinking that RetrieveQueriesCallback and ClearQueriesCallback could be merged together, if we wanted to go for more refactoring. For though now my strategy is to make as little changes as possible. Let me know what you think of the patch."
2016-03-01 10:37:41 +00:00
Robert Osfield
98ca24ff4e From Laurens Voerman, "a few additions in the repository (asDrawableEventCallback / asDrawableCullCallback) made this version a bit outdated,
so I get so new warnings. This update can fix those warnings."
2016-02-17 15:09:14 +00:00
Robert Osfield
937ef73521 From Laurens Loerman, Fix for "Visual Studio 2013 gives me a large amount (2778) of warnings about inheritance via dominace (C4250)." 2016-02-15 12:37:05 +00:00
Robert Osfield
8cefa05e3a From "Jannik Heller", I just updated to the latest commit and noticed that drawable cull callbacks were no longer working. As it turns out there was a missing implementation of the asDrawableCullCallback() and asDrawableEventCallback(), after implementing these methods everything is working as expected. 2016-02-04 20:15:14 +00:00
Robert Osfield
aa17f5441a From Laurens Voerman,
"E:\osg\osgSvnGit\OpenSceneGraph\include\osg/Callback(286): warning C4099: 'osg::DrawableUpdateCallback' : type name first seen using 'class' now seen using 'struct' (E:\osg\osgSvnGit\OpenSceneGraph\src\osgUtil\RenderBin.cpp)
          E:\osg\osgSvnGit\OpenSceneGraph\include\osg/Callback(27) : see declaration of 'osg::DrawableUpdateCallback'

attached is a modified version of include/osg/Callback:
changing
- struct OSG_EXPORT DrawableUpdateCallback : public virtual Callback
- {
to
+ class OSG_EXPORT DrawableUpdateCallback : public virtual Callback
+ {
+ public:

and the same changes for DrawableEventCallback and DrawableCullCallback"
2016-02-04 19:53:13 +00:00
Robert Osfield
e00977f3c2 Added OSG_EXPORT 2016-02-04 19:40:14 +00:00
Robert Osfield
f373bcf23d Added osg::resizeGLObjectBuffers(..) and osg::releaseGLObjects(..) functions to make it easier to call these methods on objects which ref_ptr<> or C pointers are held for. 2016-02-04 17:36:33 +00:00
Robert Osfield
f8306f145a Added NodeVisitor::g/setValueMap and g/setValueStack, and osg::PushPopObject and osg::PushPopValue helper classes for pushing/popping values to the NodeVisitor's ValueStack. 2016-02-04 13:12:33 +00:00
Robert Osfield
b4eb8d4597 Improved the speed of the ValueObject get/setting by utilizing typeid() and static_cast<> in place of original dynamic_cast<>'s 2016-02-04 13:10:28 +00:00
Robert Osfield
041ab29d1f Added osg::Identifer, osg::ValueMap and osg::ValueStack classes to provide a general purpose means for storing and retrieving values from map or stack containers.
Typical use will be for storing and passing values between nodes during traversals.
2016-02-04 13:04:40 +00:00
Robert Osfield
5cb486f7c5 Added osg::MultiDrawArrays which wraps up glMultiDrawArrays extension. 2016-01-22 09:47:49 +00:00
Robert Osfield
4de2fc120d Merge branch 'master' of https://github.com/openscenegraph/osg 2016-01-20 17:51:03 +00:00
Robert Osfield
8fc287c1b7 Added asUpdate/Cull/EventVisitor and asCamera/asDrawable to osg::Object and usage of these within the code base to avoid dynamic_cast<> usage. 2016-01-20 17:49:10 +00:00
Robert Osfield
1219a6d3bf Added more osg::Object::as*() methods and usage of these through the code base to avoid use of dynamic_cast<> when using UpdateVisitor/CullVisitor/EventVIisitor etc. 2016-01-20 15:13:19 +00:00
Robert Osfield
e5a7c353ae From Jannik Heller, "This submission fixes a typo in the new GLObjectManager
sheduleGLObjectForDeletion(GLuint globj);

should be

scheduleGLObjectForDeletion(GLuint globj)"
2016-01-19 14:49:56 +00:00
Robert Osfield
b3e0f83c07 From Jordi Torres, "Added TriangleLinePointIndexFunctor to osg namespace" 2016-01-19 14:22:12 +00:00
Robert Osfield
55a8f4abbc Renamed DrawableUpdate/Event/Cull callbacks to use new include/osg/Callback versions 2016-01-19 11:39:28 +00:00
Robert Osfield
baaf5712c4 Added missing OSG_EXPORT 2016-01-19 09:46:20 +00:00
Robert Osfield
3e92c1fc43 Added osg::Object::asStateSet() implementation and usage to avoid use of dynamic_cast<> 2016-01-18 20:05:20 +00:00