Robert Osfield
ffbc1167de
Added lazy state updating for vertex array object binding/unbinding
2017-03-13 11:44:34 +00:00
d-a-heitbrink
7b3fc0925c
Merge branch 'master' of https://github.com/openscenegraph/OpenSceneGraph
2017-03-01 16:12:49 -06:00
Kjell Andersson
f5483b0ad6
Bug fix to not crash when using shared context and adding / removing windowed views dynamically.
...
The GLExtension object is now reused instead of creating a new when allocating a state on the same ContextID. The static map that stores the GLExtensions is only reset when all references to the extension object are released.
2017-02-02 11:46:16 +01:00
d-a-heitbrink
18369bed2d
added code to deal with #extension for shader, added int64 and uint64 support
2017-01-13 09:33:49 -06:00
Robert Osfield
38c515a600
Fixed handling of #define's that are used as functions
2016-12-16 16:16:50 +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
66873b8c6c
Fixed build errors when OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION to OFF
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
f842750342
Removed no longer used member variables
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
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
83f73df814
Added State::useVertexArrayObject() member to streamline toggling on/off of VAO usage
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
14d1483b06
Experimental support for OpenGL Vertex Array Object
2016-10-11 11:29:29 +01:00
Anish Thomas
2b9dfab1fc
GLSL 1.3 support for vertex-attrib aliasing
2016-08-10 14:12:27 +01:00
Robert Osfield
0876677fb2
Removed check against changed flag as check is aleady done outside the method so no need for a duplicate check
2016-06-29 16:07:39 +01:00
Julien Valentin
98b81821fb
fix in StateSet.cpp
...
the State::DefineMap::changed flag is not resetted to false after currentDefines are updated
2016-06-29 16:05:14 +01:00
Robert Osfield
bc8452512f
Added initializers and handling of null case
2016-06-23 11:03:38 +01:00
Robert Osfield
707c1a32aa
Within the #pragmatic shader composition code added platform specific line endings for WIN32 vs all other platforms to "\r\n" and "\n" respectively.
2016-03-01 11:45:20 +00:00
Robert Osfield
4b2912e096
From John Farrier, "Best I can tell, there is an enumeration for NEVER_CHECK_GL_ERRORS in CheckForGLErrors, defined in State. State.cpp does check to see if you want MORE error checking, but there is no way to turn OFF error checking. This change allows disabling of OpenGL error checking."
2016-01-25 10:45:07 +00:00
Robert Osfield
161246d864
Refactored the GL object deletion management to use new osg::GraphicsObjectManager/GLObjectManager base classes, and osg::ContextData container.
...
This approach unifies much of the code handling the clean up of OpenGL graphics data, avoids lots of local mutexes and static variables that were previously required,
and enables the clean up scheme to be easily extended by users providing their own GraphicsObjectManager subclasses.
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15130 16af8721-9629-0410-8352-f15c8da7e697
2015-09-23 09:47:34 +00:00
Robert Osfield
b964c53445
Removed spaces
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15088 16af8721-9629-0410-8352-f15c8da7e697
2015-08-10 19:55:16 +00:00
Robert Osfield
aff6e112ec
Added support for injecting GL_VENDOR strings into GLSL shaders via the new #pragma(tic) shader composition
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15078 16af8721-9629-0410-8352-f15c8da7e697
2015-08-10 17:42:05 +00:00
Robert Osfield
1020e22c33
Moved uniform substitution to infront of vertex attribute substituion to make sure gl_Vertex usage is replaced when required.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14848 16af8721-9629-0410-8352-f15c8da7e697
2015-04-20 09:39:00 +00:00
Robert Osfield
0a1db3d6fc
From Jannik Heller, typo fixes
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14832 16af8721-9629-0410-8352-f15c8da7e697
2015-04-13 10:43:56 +00:00
Robert Osfield
d03b38dea8
Fixes for warnings
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14736 16af8721-9629-0410-8352-f15c8da7e697
2015-02-27 04:29:30 +00:00
Robert Osfield
6bddbdf074
Improvements to the #pragma(tic) shader composition support
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14694 16af8721-9629-0410-8352-f15c8da7e697
2015-02-13 12:50:43 +00:00
Robert Osfield
b90503fdf5
Introduced new shader composition approach that utilizes #pragma requires(), #pragma import_defines() and #ifdef in GLSL to enable multiple different versions of shaders based
...
on defines passed in from osg::StateSet::setDefine(..).
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14681 16af8721-9629-0410-8352-f15c8da7e697
2015-02-10 17:04:02 +00:00
Robert Osfield
d5f2c34f24
From Andreas Henne, OpenGL core profile fixes required for OSX.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14669 16af8721-9629-0410-8352-f15c8da7e697
2015-01-21 15:35:19 +00:00
Robert Osfield
0a4efa35c3
Changed the reset of the GLExtensions::Set() in the State destructor so that it checks to see if the local _glExtensions pointer has been set up and taken ownership of the GLExtensions::Set() value
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14661 16af8721-9629-0410-8352-f15c8da7e697
2015-01-20 11:24:31 +00:00
Robert Osfield
485709f708
Moved GL2Extensions functionality into the include/osg/GLExtensions header and new GLExtensions object.
...
Moved the #defines into new include/osg/GLDefines
Converted all GL2Extensions usage to GLExtensions usage
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14593 16af8721-9629-0410-8352-f15c8da7e697
2014-12-10 10:38:12 +00:00
Robert Osfield
f634152de0
Moved osg::Drawable::Extensions into osg::GL2Extensions
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14575 16af8721-9629-0410-8352-f15c8da7e697
2014-12-05 17:26:42 +00:00
Robert Osfield
66da1328f8
Ported GL2Extentions across to using the new GL extensions approach - cutting code count by 3000 lines!
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14566 16af8721-9629-0410-8352-f15c8da7e697
2014-12-04 16:22:31 +00:00
Robert Osfield
79a4fff2dc
Commented out State::setUpVertexAttribAlias(..) debug message.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14529 16af8721-9629-0410-8352-f15c8da7e697
2014-11-25 10:11:06 +00:00
Robert Osfield
fce7137525
Added numTextureUnits parameter to the osg::State::resetVertexAttributeAlias(bool, unit) method, and set the default to 8.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14523 16af8721-9629-0410-8352-f15c8da7e697
2014-11-24 14:01:05 +00:00
Robert Osfield
7dc3b34bfd
Removed State::AppliedProgramObjectSet container and Obsever usage from osg::State to address threading bug crash.
...
The State::AppliedProgramObjectSet wasn't ever being used actively in the current rev of the OSG so populating and clearing was no longer neccessary, allowing the code to be removed completely.
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14377 16af8721-9629-0410-8352-f15c8da7e697
2014-07-22 16:02:33 +00:00
Robert Osfield
be13c2202d
Added if () blocks to State::convertVertexShaderSourceToOsgBuiltIns() to ensure that only parts of the shader than need replacing are replaced.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14255 16af8721-9629-0410-8352-f15c8da7e697
2014-06-12 15:24:34 +00:00
Robert Osfield
5597248895
Introduced new scheme for setting up which version of OpenGL/OpenGL ES the OSG is compiled for.
...
To select standard OpenGL 1/2 build with full backwards and forwards comtability use:
./configure
make
OR
./configure -DOPENGL_PROFILE=GL2
To select OpenGL 3 core profile build using GL3/gl3.h header:
./configure -DOPENGL_PROFILE=GL3
To select OpenGL Arb core profile build using GL/glcorearb.h header:
./configure -DOPENGL_PROFILE=GLCORE
To select OpenGL ES 1.1 profile use:
./configure -DOPENGL_PROFILE=GLES1
To select OpenGL ES 2 profile use:
./configure -DOPENGL_PROFILE=GLES2
Using OPENGL_PROFILE will select all the appropriate features required so no other settings in cmake will need to be adjusted.
The new configuration options are stored in the include/osg/OpenGL header that deprecates the old include/osg/GL header.
2014-04-23 09:08:26 +00:00
Robert Osfield
5ed399ca48
Fixed handling of osg::Program so that it's not overriden by shader composition when enabled
2013-10-22 11:18:28 +00:00
Robert Osfield
4493d11ca3
Added State::releaseGLObjects() and ShaderComposer::releaseGLObjects() to avoid problems with cleanup of graphics context
2013-10-21 16:35:12 +00:00
Robert Osfield
0c609bc17e
From Aurelien Albert, "I've go some problem with the method "State_Utils::replace" : if the original_phrase is empty, it leads to an infinite loop.
...
Here is a path to prevent this."
2013-08-05 12:00:34 +00:00
Robert Osfield
56cb7de72a
From Sergey Kurdakov, fixed GLES2 invalid enumerant warning by disabling the check against GL_MAX_TEXTURE_COORDS under GLES.
2013-07-31 06:42:49 +00:00
Robert Osfield
8420b158c1
Restructed handling of the _currentShaderCompositionUniformList in State::apply() and State::apply(const StateSet*) so that it can be used even when shader composition isn't enabled.
2013-07-02 13:45:23 +00:00
Robert Osfield
db1f2c5eb1
From David Callu, added support for glVertexAttribLPointer and glVertexAttribIPointer, utilized via osg::Array::setPreserveDataType(true);
2013-06-28 10:51:22 +00:00
Robert Osfield
57947ea75c
From Aurelien Albert, added passing on of the gl array normalize to OpenGL when uses vertex attribute aliasing.
2013-06-27 15:18:38 +00:00