Jason Beverage
89a5d8b513
Protect the _programSet in Shader with a mutex.
...
This prevents thread safety issues when Shader objects are used in
multiple programs.
2018-09-04 10:35:38 -04:00
Robert Osfield
dadfe8ae0b
Merge branch 'master' into shader_pipeline
2017-12-01 09:14:52 +00:00
Robert Osfield
34336931fa
Deprecated the osg::Shader::reaDShaderFile() and osg::Shader::loadShaderSourceFromFile() methods.
...
Programmers should use osgDB::readRefShaderFile()/readShaderFile() instead.
2017-11-27 18:28:15 +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
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
Robert Osfield
d3c6dc6f34
Fixed doxygen warnings
2016-06-01 14:20:14 +01: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
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
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
1debc21bb2
Removed unncessary _EXT
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14679 16af8721-9629-0410-8352-f15c8da7e697
2015-02-03 16:36:19 +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
1a683e2f83
From Ulrich Hertlein, "Attached is a patch that introduces 'static_cast<unsigned int>' on some instances where
...
the code returns '.size()' of a std::vector. This caused some warnings when using clang++
on OS X."
2013-05-14 16:12:21 +00:00
Robert Osfield
26a8f63212
From Wang Rui, "In the attached files I've added the Compute Shader support for OSG, as well as serializer updates and a new osgcomputeshaders example. My submission also include a setComputeGroups() function in Program for setting compute-shader work groups, and a bindToImageUnit() function in Texture for binding textures as image variables in shaders.
...
All code are tested on Windows 7 + NVIDIA GFX 570 with the latest GeForce 310.70 Driver (BETA), which could support OpenGL 4.3.
Compute shader information can be found at "http://www.opengl.org/registry/specs/ARB/compute_shader.txt "
"
2013-01-25 11:54:03 +00:00
Robert Osfield
14a563dc9f
Ran script to remove trailing spaces and tabs
2012-03-21 17:36:20 +00:00
Robert Osfield
d7747685b3
From Holger Helmich, Tessellation shader support
2010-11-23 14:50:31 +00:00
Robert Osfield
9b70348ced
Fixed typo of commercial
2010-11-22 11:22:03 +00:00
Robert Osfield
46b221a832
Added compile/release and resize of GL objects to ShaderAttribute.
...
Removed the StateAttribute::compose() method.
Fixed the default type value in ShaderAttribute
2010-07-06 12:19:26 +00:00
Robert Osfield
751b0498fe
Added basic code injection fields to osg::Shader,
...
creation of main shader to ShaderComposer and
collection of ShaderComponent to osg::State.
Also added very basic shader set up in osgshadecomposition example.
2010-07-05 16:32:58 +00:00
Robert Osfield
a55c4b7d70
Added basic ShaderComponent class and beginnings osgshadercomposition example
2010-07-02 12:04:20 +00:00
Robert Osfield
9ab856323d
Added export for PerContextShader.
2010-03-11 14:48:54 +00:00
Robert Osfield
5383297cbe
Change Shader::getPCS(..) from protected to public scope to enable isCompiled() method to be accessible in applications.
...
Updated wrappers
2010-03-05 11:30:50 +00:00
Robert Osfield
4262d10217
Added osg::ShaderBinary::readShaderBinaryFile(..) static method
2009-11-18 11:25:28 +00:00
Robert Osfield
52fbe9723f
Added new osg::ShaderBinary class, and support for it in osg::Shader.
2009-11-16 12:32:41 +00:00
Robert Osfield
aefd1513f4
Ported osg::Geometry across to supporting the aliasing of vertex, color and normal etc. calls to Vertex Attributes.
...
Added support for automatic aliasing of vertex, normal, color etc. arrays to Vertex Attribute equivelants.
Added new osg::GLBeginEndAdapter class for runtime conversion from glBegin/glEnd codes to vertex arrray equivelants.
Added automatic shader source conversion from gl_ to osg_ builtins.
2009-10-16 16:26:27 +00:00
Robert Osfield
c4d07194a2
From Art Trevs, add support for saving external shader files.
...
From Robert Osfield, adding missing member variable initializes and Output::getShaderFileNameForOutput() implementation
2008-03-04 14:04:48 +00:00
Robert Osfield
e73134d6fb
Removed non standard and redundent /*EOF*/
2008-01-08 14:38:58 +00:00
Robert Osfield
578f385760
From Mike Weiblen, support for geometry shaders, and osgeometryshaders example to demonstrate them.
2008-01-08 14:29:44 +00:00
Robert Osfield
ff565128af
Introduced new osg::discardDeletedOpenGLObjects() methods, and usage of it in
...
GrpahicsContext::close() to handle cases where deletingOpenGLObjects is no possible,
such as when GraphicsWindowEmbedded is used.
2008-01-08 13:24:29 +00:00
Robert Osfield
4e5ce63c85
From Per Fahlberg, "Attached is a fix allowing removal of shaders from a program after it is
...
first compiled. It will also allow new shaders to be attached after the
program is first compiled."
2007-12-11 11:21:13 +00:00
Robert Osfield
f4afa427a7
From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)."
2007-12-10 17:30:18 +00:00
Robert Osfield
ff195bddf5
Added Object::resizeGLObjectBuffers(uint) method to help improve the ability
...
to change the number of active graphics contexts on the fly during an applications
life.
2007-01-04 14:11:51 +00:00
Robert Osfield
f1c2694c17
Updated copyright years.
2006-07-18 15:21:48 +00:00
Robert Osfield
93a2c3d011
Improved handling of clean up of osg::Program/osg::Shader on closing of a graphis context.
2006-01-16 17:05:17 +00:00
Robert Osfield
7453711267
From Mike Weiblen,
...
" - adjustments to improve namespacing on VS
- clarify compilation status message"
2005-06-20 10:36:06 +00:00
Robert Osfield
9c950f0f3c
From Andreas Jochens (submitted by Loic Dachary), addintion of forward declare
...
of class Progam; to fix compile problem under gcc4.0/amd64/debian unstable.
2005-06-20 10:28:52 +00:00
Robert Osfield
27c4c6a956
Moved the set/getName() support from osg::Node etc into the osg::Obejct
...
base class
2005-06-08 13:16:19 +00:00
Robert Osfield
715df123f1
From Mike Weiblen, Added queries of compilation state to Shader (for symmetry with Program's
...
link state queries)
2005-05-12 20:59:53 +00:00
Robert Osfield
ea1dc4dd20
Added missing required includes
2005-05-11 21:06:29 +00:00
Robert Osfield
1f6cdc49e5
Compile fix.
2005-05-11 20:37:22 +00:00
Robert Osfield
9ef29824aa
Moved GL2Extensions back out of Program and into its own header file.
2005-05-11 19:59:21 +00:00
Robert Osfield
a5fcddc5e5
From Mike Weiblen, Progra/Shader fixes
2005-04-30 07:02:02 +00:00
Robert Osfield
e24cfa0370
Futher work on supporting update and event callbacks in StateSet, Uniform and StateAttribute
2005-04-25 13:37:12 +00:00
Robert Osfield
d268cf46fa
Renamed SG_LIBRARY and SG_EXPORT macro's to OSG_LIBRARY and OSG_EXPORT
2005-04-11 17:14:17 +00:00
Robert Osfield
84e8338be1
From Mike Weiblen, "adds sourcefiles for beginnings of .osg fileformat i/o support
...
> - enhancemens to core GLSL classes to support file i/o"
2005-04-07 20:23:58 +00:00
Robert Osfield
aa8dbea11c
From Mike Weiblen, updates to Shander Language support
2005-04-04 10:08:15 +00:00
Robert Osfield
7883574d28
From Mike Weiblen,
...
"updates for GLSL core integration:
Code compiles and runs on win32.
Basic functionality of Program and Shader in place.
Program derived from StateAttribute.
Uniform value propagation is not yet functional (in development)
Includes some patches by Nathan Cournia.
includes example testcase to demo use of new classes."
2005-03-24 09:37:45 +00:00
Robert Osfield
a2e8bc6267
Added support for set/getUniform and set/getProgram into osg::StateSet.
2005-03-11 20:29:21 +00:00
Robert Osfield
5fbb1f11cd
From Mike Weiblen, adding prelimimnary GL Shader Language support into core OSG lib.
...
with renaming and reordering by Robert Osfield,
2005-02-24 13:33:35 +00:00