Commit Graph

2390 Commits

Author SHA1 Message Date
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