Robert Osfield
ee5a1b0a83
Fixed warning
2013-07-24 12:48:59 +00:00
Robert Osfield
095b64dc41
From Aurelien Albert, "Recently I had to integrate a client OpenGL library with OSG. For textures and other StateAttribute I've done that by subclassing osg::StateAttribute and this works well.
...
But for glPrograms, in order to get all osg's uniform management system to work, I had to subclass osg::program::PerContextProgram.
Here is a modified version of this class, which add some "virtual" method to allow easy subclassing."
2013-07-02 10:32:53 +00:00
Robert Osfield
1a7f2fcb3e
Introduced new osg::PatchParameter StateAttribute class to wrap up glPatchParameter associated state.
...
Note, osg::Program::setParameter(GL_PATCH_VERTICES,num); is nolonger support and should be replaced by using the new PatchParameter class.
2013-06-11 10:52:37 +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
9045813aab
Added missing getUniformBlocks implmentation
2012-04-19 10:10:26 +00:00
Robert Osfield
96effb3690
From Martin Naylor, "Please find attached a fix for the STD library(tested under Windowsx64
...
VS2008) when atomiccounter is found but not used."
2012-04-06 11:29:29 +00:00
Robert Osfield
aab27e106c
From David Callu, "Here an update of osg::Uniform :
...
- add non square matrix
- add double
- add all uniform type available in OpenGL 4.2
- backward compatibility for Matrixd to set/get an float uniform matrix
- update of IVE / Wrapper ReadWriter
implementation of AtomicCounterBuffer based on BufferIndexBinding
add example that use AtomicCounterBuffer and show rendering order of fragments,
original idea from geeks3d.com."
2012-03-29 09:43:12 +00:00
Robert Osfield
14a563dc9f
Ran script to remove trailing spaces and tabs
2012-03-21 17:36:20 +00:00
Robert Osfield
6e01f05853
Added removal of [..] from names returned from glGetActiveUniform results to avoid issues with name lookups when the driver add the [..] for uniform arrays.
2011-09-19 10:12:53 +00:00
Robert Osfield
6f09acace9
Moved ProgramBinary into osg::Program scope
2011-02-14 15:01:56 +00:00
Robert Osfield
1d55efb721
From Michael Platings, I've added initial support to osg for glGetProgramBinary and glProgramBinary. This means that shader programs can now be cached to disk and later reloaded, which is much faster than linking shaders from source code. This should mean significantly shorter load times for people who use lots of combinations of shaders.
2011-02-14 12:54:21 +00:00
Robert Osfield
e5a9eaa711
From Tim Moore, "Here is initial support for uniform buffer objects. The binding between a buffer object and an indexed target is implemented as a new StateAttribute, UniformBufferBinding. I've included an example program based on the code in the ARB_uniform_buffer_object specification.
...
A few things remain to do:
* The binding between a uniform block in a shader program and a buffer indexed target number is fixed, like a vertex attribute binding. This is too restrictive because that binding can be changed without relinking the program. This mapping should be done by name in the same way that uniform values are handled i.e., like a pseudo state attribute;
* There's no direct way yet to query for the offset of uniforms in uniform block, so only the std140 layout is really usable. A helper class that implemented the std140 rules would be quite helpful for setting up uniform blocks without having to link a program first;
* There's no direct support for querying parameters such as the maximum block length, minimum offset alignment, etc. Having that information available outside of the draw thread would make certain instancing techniques easier to implement."
2010-11-29 17:43:27 +00:00
Robert Osfield
cdfbb7a753
From Michael Platings, To address performance bottleneck that occurs when using large number of uniforms introduced a name to uniqued ID scheme for Uniforms so comparisons can be done on a uint rather than a string.
2010-11-25 12:30:38 +00:00
Robert Osfield
d7747685b3
From Holger Helmich, Tessellation shader support
2010-11-23 14:50:31 +00:00
Robert Osfield
e5bc43f04c
From Magnus Kessler, "After a closer look at this particular issue, I used some grep and sed magic
...
to fix all occurrences of "macro's" and "paramter".
"
2010-09-30 16:57:02 +00:00
Robert Osfield
3c3a34d5f6
From Farshid Lashkari, "This patch simply reduces some messages output in osg::Program from NOTICE to INFO, since they are not important for most users."
2010-08-08 15:34:43 +00:00
Robert Osfield
d1a3350af0
From Jan Peciva, change information about failed shader compilation/linking/validation to OSG_WARN.
2010-06-14 15:21:50 +00:00
Robert Osfield
a79a8d30f9
Convesion of osg::notify to OSG_INFO etc.
2010-05-28 15:47:52 +00:00
Robert Osfield
7db9f18619
From Chris Hanson, build fixes for Solaris-64
2010-04-15 11:41:37 +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
6e780bfa62
From Simon Carmody, "Patches for compare and copy of Programs and related state
...
-Added copying of shaders and attributes in osg::Program copy constructor.
-Changed StateSet::compare function to compare Uniforms and their
override values. Previously it compared a RefUniformPair."
2009-04-08 12:32:52 +00:00
Robert Osfield
ebf653369a
From Art Trevs, set the _geometryVerticesOut to default to 1 as a workaround
...
for OpenGL driver bug that incorrectly reports a warning when value is 0.
2008-05-09 11:54:24 +00:00
Robert Osfield
fea3595b43
From Mike Weiblen, restructured GL2Extensions so that they now live in their own GL2Extensions.cpp file rather than in Program.cpp
2008-01-21 11:47:40 +00:00
Robert Osfield
4a08d8daaa
Added geometry shader extension supported check to geometry shader parameter calls
2008-01-14 11:44:04 +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
175c3ce806
From Art Trevs, "File Changes:
...
- GL2Extensions, Program and Program.cpp
Features:
- Support for fragment output binding. (e.g. You can now specify in the fragment shader varying out vec3 fragOut; fragOut = vec3(1,0,1); to write to the fragOut variable. In your program you call glBindFragDataLocation(program, 1, "fragOut") to bind the fragOut variable with the MRT 1 - GL_COLOR_ATTACHMENT1_EXT)
- new methods Program::add/removeBindFragDataLocation Program::getFragDataBindingList
"
2007-09-11 13:34:41 +00:00
Robert Osfield
73fffe1800
Made Refernced::setThreadSafeReferenceCounting(bool) a virtual then overrode
...
this in various scene graph classes to ensure that the scene graph gets
updated as well as the objects that the initialial call is made from.
2007-01-04 16:49:58 +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
d9b6d87d5a
Cleaned up per context buffers support
2006-07-26 15:29:26 +00:00
Robert Osfield
e7a4ad287b
From Mike Weiblen, changes to internal help class in prep for array uniform support.
...
Small tweaks for build under Linux from Robert Osfield.
2006-03-28 16:08:32 +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
26e77fc92f
From Jason Daly, (with small tweak by Robert Osfield) fix for Prorgram::removeShader(Shader*)
...
so that it properly remove the shader and its entry in the _shaderList.
2005-11-22 09:57:32 +00:00
Robert Osfield
2b2ca82b5a
Added check against glGetString(GL_VERSION) returning NULL.
2005-10-25 13:24:39 +00:00
Robert Osfield
53347812cb
From Mike Weiblen, addiding of Program::validateProgram and osg::isNotifyEnabled() method
2005-07-14 10:27:00 +00:00
Robert Osfield
fe384e53c7
Added clear of lazy uniform updating structure on relink, also added debug
...
output of shader being compiled.
2005-05-12 08:54:11 +00:00
Robert Osfield
679c44f4ae
Changed the info log so that it output to INFO on success, to WARN when an
...
error has occured.
2005-05-11 19:32:57 +00:00
Robert Osfield
fb34b22e34
Cleaned up API of BindAttributeLocation, added deletion of shader objects.
2005-05-11 11:41:44 +00:00
Robert Osfield
d681d47c72
Moved the infolog to the error handling block and upping its notification
...
level to WARN to provide better feedback on failure with needing to use
DEBUG notification level.
2005-05-10 18:21:31 +00:00
Robert Osfield
7480d51830
From Mike Weiblen, further work on GLSL support
2005-05-06 09:58:49 +00:00
Robert Osfield
a5fcddc5e5
From Mike Weiblen, Progra/Shader fixes
2005-04-30 07:02:02 +00:00
Robert Osfield
a1bda0dab8
Added support for per context extension string.
...
Note, this required adding a unsigned int context ID to the osg::isGLUExtensionSupported(,)
and osg::isGLExtensionSupported(,) functions. This may require reimplementation
of end user code to accomodate the new calling convention.
2005-04-26 13:15:27 +00:00
Robert Osfield
1525a00e1f
From Mike Weiblen,added debug info to osg::Program and changed shader uniform names to
...
avoid conflict with built in functions
2005-04-16 10:11:18 +00:00
Robert Osfield
0015a31de8
Added basic support for applying uniforms to programs, non lazy state updating
...
is yet applied though.
2005-04-13 14:12:06 +00:00
Robert Osfield
2e10cffb4d
Work in progress on shader language uniform support
2005-04-13 12:00:28 +00:00
Robert Osfield
2fb3d9aae5
Fixed warning, and sorted entries in GNUmakefile
2005-04-11 10:12:32 +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