Robert Osfield
3531bec43c
Added State::getMaxTextureCoords() and State::getMaxTextureUnits() inline methods.
2014-01-07 11:01:32 +00:00
Robert Osfield
afab78ed40
Preliminary support for wrapping methods in the lua script plugin.
2013-12-25 17:36:32 +00:00
Robert Osfield
723ecfad8d
Removed the unused Texture::Extensions::numTextureUnits()
2013-12-16 11:28:10 +00:00
Robert Osfield
91033a3a1f
From Kristofer Tingdahl, Build fix for svg plugin that makes sure the version of librsvg is at sufficient, and fixed a missing virtual destructor warning.
2013-11-22 09:48:02 +00:00
Robert Osfield
d3a7115c45
Removed trailing spaces, added missing return to last lines
2013-11-22 09:38:50 +00:00
Robert Osfield
a54b999ccc
Added Geometry::drawVertexArraysomplemetation(..) and drawPrimitivesImplemenation(..) methods that are called from drawImplementation(..). These new vertex methods
...
allow subclasses from osg::Geometry to specialize the vertex array setup or how the primitives are dispatched to OpenGL.
2013-11-21 10:31:34 +00:00
Robert Osfield
d8c1c4bbeb
From Stephan Huber, compile fix for OpenGL ES on iOS.
2013-11-18 13:31:44 +00:00
Robert Osfield
80c45ad46a
Added BoundingBox::contains(const vec_type& v, value_type epsilon) method with new epsilon parameter to make it easier to test for containment in the presence of numerical errors
2013-11-18 12:45:04 +00:00
Robert Osfield
6f6c44446c
Introduced a cast(T) method into the ImageUtils template functor to allow code reading images to handle casting from source data to a form that a user can use more conviently
2013-11-06 09:23:21 +00:00
Robert Osfield
ff8fe4143e
From Likasz Izebski, "added support for etc2/eac compression"
2013-10-28 12:03:55 +00:00
Robert Osfield
c45f3aa4fb
Merged changes to DisplaySettings from Stephan Huber in prep for controlling the menu hiding behaviour under OSX.
...
Added new WindowSystemInterface::setDisplaySettings() method to provide a mechanism for passing settings onto the WindowSystemInterface so it can then set up the system appropriately.
Added assignment of the DisplaySettings to the WindowSystemInterface in Viewer/ComppsiteViewer::realize().
2013-10-22 19:12:34 +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
9146ba7d44
From Vladimir Chebeav, fix for removal of nested callbacks
2013-10-18 08:37:18 +00:00
Robert Osfield
08ec0a11bf
From Laurens Voerman, compile fix for VisualStudio
2013-10-10 14:45:57 +00:00
Robert Osfield
b5b020a138
Updated version number after 3.3.0 dev release
2013-10-04 16:28:49 +00:00
Robert Osfield
0eb435e118
Re-ordered the public/protected sections to keep the public section all together
2013-10-02 11:28:38 +00:00
Robert Osfield
5015ec4b5d
From Aurelien Albert, "I'm working with OSG and a customer low-level OpenGL library.
...
To make easier "lazy apply" on the customer OpenGL shaders, the easiest way was to add an accessor to current OSG state's UniformMap.
I've also added accessors for modes and texture, since it could be usefull in the same way.
All methods are const, so I think there is no side-effects."
2013-10-01 17:01:21 +00:00
Robert Osfield
6d8f40d13a
Added support for passing parameters in and out of scripts.
...
Implemented support for osg::ValueObject in LuaScriptEngine.
2013-09-24 15:17:42 +00:00
Robert Osfield
796314c339
Changed NodeVisitor so that is subclasses from osg::Object rather than osg::Referenced to enable it to be used with serialization and scripting
2013-09-24 15:08:23 +00:00
Robert Osfield
6bc413530e
Added compoundClassName() convinience method to standardize the generation of the compoundClassName.
2013-09-20 10:25:23 +00:00
Robert Osfield
bd7ec9c5f7
Added initial cut of basic scripting support, introducing an osg::Script object to wrap up the individual scripts, osg::ScriptCallback for assigning a Script as node callback and an osg::ScriptEngine base class that plugins implement to provided support for specific scripting languages.
...
Provided are lua, python and V8 (for javascript) plugins that just open up enough of a link to the respective libs to run a script, there is no scene graph <-> script communication in current implementation.
2013-08-09 16:51:06 +00:00
Robert Osfield
07365c1073
Added osg::RenderInfo::pushRenderBin()/popRenderBin() and RenderInfo::getRenderBinStack() and getCameraStack() access methods for getting access to the current RenderBin/RenderStage.
2013-08-01 07:19:45 +00:00
Robert Osfield
9c9939e5d4
From Aurelien Albert, "Here is the code to get access to OpenGL handle of an osg::FrameBufferObject"
2013-07-31 07:11:07 +00:00
Robert Osfield
75fd039dba
Added GL2Extensions::isDrawBuffersSupported() and usage of this in FrameBufferObject.cpp to prevent crash under GLES2 when users attempt to use MRT when it's not supported
2013-07-24 13:02:32 +00:00
Robert Osfield
8d3e46dfac
Updated SO version for post 3.2 era.
2013-07-24 12:25:18 +00:00
Robert Osfield
a802729562
Added FRAME_BUFFER_OBJECT enum
2013-07-22 10:15:59 +00:00
Robert Osfield
cda0b615de
Updated version number for svn/trunk to 3.3.0 for all new feature development
2013-07-19 14:55:36 +00:00
Robert Osfield
95a5f3ed0f
Updated version number to 3.2.0-rc1 in prep for create the 3.2 branch, and 3.2.0-rc1
2013-07-19 14:06:11 +00:00
Robert Osfield
170cbb9018
Updater version for 3.1.10 dev release
2013-07-19 10:17:26 +00:00
Robert Osfield
82f7031ab5
From Lionel Lagarde, "The extension name is misspelled. It conflicts with GLEW."
2013-07-18 16:27:17 +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
08f741bcd9
From Pjotr Svetachov, "The binding of arrays is always set to BIND_UNDEFINED when using the array constructor because the binding parameter is ignored. Here is a fix."
2013-07-02 09:44:46 +00:00
Robert Osfield
ff3a6f4eb1
Removed BIND_INSTANCE_DIVISOR as they don't yet have any implementation backend to support them.
2013-07-01 10:22:34 +00:00
Robert Osfield
a64b412885
Reverted the usage of OSG_UNUSED and OT_UNUSED as in hindsight these should never have been merged. Adding code to quieten
...
inappropriate warnings is a bad programming practice and does not desrve a place in the OSG code base.
2013-07-01 08:21:13 +00:00
Robert Osfield
4493cc817d
From Laurens Voerman, "the current version of BufferObject causes a huge amount of warnings in Visual Studio 2012 like:
...
OpenSceneGraph/include\osg/BufferObject(701): warning C4138: '*/' found outside of comment (E:\osg\osgSvn\OpenSceneGraph\src\osg\Array.cpp)
adding a space before /* fixes the problem
void removeClient(osg::Object * /*client*/) { --_numClients; }
"
2013-06-28 14:08:36 +00:00
Robert Osfield
353b18b27b
From Aurelien Albert, Added support for glPrimitiveRestartIndex.
...
"The idea of this new OpenGL feature is :
- set RestartIndex = "n"
- draw elements strip
-> when the index is "n", the strip is "stopped" and restarted
It's very usefull for drawing tiles with a single strip and a "restart" at the end of each row.
The idea a an OSG StateAttribute is :
Usually we use to build geometry from code, because software modelers rarely support it (and 3d file formats doesn't support it) :
-RootNode <= "PrimitiveRestartIndex=0" // So now, we know that our restart index is 0 for all drawables under this node
|
- Drawable 1 : triangles => as usual
|
- Drawable 2 : triangles strip => as usual
|
- Drawable 3 : triangles strip + "GL_PRIMITIVE_RESTART" mode = ON => use the restart index
|
- Drawable 4 : triangles strip + "GL_PRIMITIVE_RESTART" mode = ON => use the restart index
|
- Drawable 5 : triangles strip => as usual
With a StateAttribute, it's easy for the developper to say "0 will be my restart index for all this object" and then activate the mode only on some nodes.
The main problem is if you set and restart index value which is not included in the vertex array (for exemple set restart index = 100 but you have only 50 vertex). There is no problem with OpenGL, but some OSG algorithms will try to access the vertex[100] and will segfault.
To solve this, I think there is two ways :
1/ add restart index in osg::PrimitiveSet and use this value in all algorithms. It's a lot of work, maybe dangerous, and it concern only a few situations : developpers who use this extension should be aware of advanced OpenGL (and OSG) data management
2/ use a StateAttribute, and choose a "correct" restart index. In my applications, I always use "0" as a restart index and duplicate the first vertex (vertex[0] = vertex[1]). So there is no difference for OpenGL and all OSG algorithms works properly.
"
2013-06-28 13:43:46 +00:00
Robert Osfield
097aedf23c
From David Callu, warning fixes and removal of spaces at end of lines.
2013-06-28 12:00:43 +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
775c1443eb
From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes"
2013-06-27 17:37:03 +00:00
Robert Osfield
9f13e2fcb9
From Lionel Lagarde, "Support for paging and shared PBO"
...
"The attached file contains:
- a per-context read counter in GLBufferObject::BufferEntry
- a global client counter in BufferData
- the glue between Texture* and Image client counter
"
2013-06-27 16:44:32 +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
Robert Osfield
90ceb88c12
Replaced deprecatated osg::Geometry::get*Binding() calls.
2013-06-27 14:46:16 +00:00
Robert Osfield
9f0bbbf831
Added osg::getBinding(osg::Array* array) convinience function that returns the Array::getBinding() is the array is not NULL, otherwise returns BIND_OFF.
2013-06-26 17:54:35 +00:00
Robert Osfield
bead0740f2
From Aurelien Albert, "This submission allow the user to specify how to setup VertexAttributeAliasing.
...
I think this is necessary on OpenGL 3.2+ since this is no more "default" locations in the OpenGL specs.
The default behaviour stay the same.
There is a few new methods on osg::State :
- resetVertexAttributeAlias : reset all vertex alias to osg's default ones
- set**Alias : set a vertex attribute alias configuration
- setAttributeBindingList : set the attribute binding list (allow to specify an empty list if you're using "layout" qualifier in glsl code to specify the bindings. This save some CPU operations)"
2013-06-26 13:00:12 +00:00
Robert Osfield
831a552dfa
Removed unused methods
2013-06-26 12:59:40 +00:00
Robert Osfield
3de0ec1904
Removed #include<osg/Notify> as it's nolonger required in the header
2013-06-25 16:19:00 +00:00
Robert Osfield
1793466442
With assistance from Sukender, moved the depreacted osg::Geometry vertex indices and AttributeBinding definitions out into a separated namespace/class so to use
...
deprecated features you should now use deprecated_osg::Geometry in place of osg::Geometry.
2013-06-25 16:10:24 +00:00
Robert Osfield
addf8b1d2d
Updatd SO_VERSION to reflect changes in ABI from merging submissions.
2013-06-24 12:30:08 +00:00
Robert Osfield
1e715b6877
From Sukender, "I recently pulled from the GIT mirror and found that "OSG_USE_DEPRECATED_GEOMETRY_METHODS=OFF" hides a little mistake: there is a "#include <osg/Notify>" inside the "osg" namespace, in inlude/osg/Geometry.
...
"
2013-06-24 12:27:19 +00:00
Robert Osfield
261db64a9e
From Farshid Lashkari, "I've attached a small patch that extends the Image::readImageFromCurrentTexture method to support more depth texture pixel formats (16, 24, 32, 32F). In order to compile, I moved some depth pixel format definitions from FrameBufferObject to Image.
...
"
2013-06-24 09:51:30 +00:00
Robert Osfield
0a4bf71fbb
Updated version number after dev release
2013-06-21 19:35:56 +00:00
Robert Osfield
15fea448d8
Added new osg::Array::Binding parameter to osg::Geometry::set*Array(osg::Array* array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED) methods to make it easier for the user
...
to set the binding without the need to call the deprecated osg::Geometry::set*Binding(osg::Geometry::AttributeBinding)
2013-06-21 09:43:15 +00:00
Robert Osfield
df075ef9bb
Cleaned up usage of BIND_PER_PRIMITIVE where possible.
2013-06-19 16:24:59 +00:00
Robert Osfield
c8fa3244c2
From Jan Ciger, "I have found a problem when building OSG with Qt 5 support. Qt has the
...
following in the qopengl.h header:
# include <QtGui/qopengles2ext.h>
# ifndef GL_DOUBLE
# define GL_DOUBLE GL_FLOAT
# endif
# ifndef GLdouble
typedef GLfloat GLdouble;
# endif
Unfortunately, when building for normal OpenGL (not GL/ES!) on Windows
with MSVC2012, GLdouble is not defined (it is not a macro but typedef)
and the code above produces a conflicting definition, making the
compile fail. I am attaching a bit hackish workaround for this problem
in osg/GL "
2013-06-19 12:19:28 +00:00
Robert Osfield
635993038a
Changed header guard back to original, and removed deprecated enum
2013-06-18 14:52:26 +00:00
Robert Osfield
390316e579
Removed experiment GeometryNew as it's no longer required.
2013-06-18 11:49:03 +00:00
Robert Osfield
7d40c7258f
Clean up up osg::Geometry, removing long deprecated support for array indices and BIND_PER_PRIMITIVE binding that forced OpenGL slow paths. osg::Geometry is now smaller and only supports OpenGL fasts paths.
...
New methods osg::Geometry::containsDeprecatedData() and osg::Geometry::fixDeprecatedData() provide a means for converting geometries that still use the array indices and BIND_PER_PRIMITIVE across to complient
versions.
Cleaned up the rest of the OSG where use of array indices and BIND_PER_PRIMITIVE were accessed or used.
2013-06-18 11:18:28 +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
8cf9600e2c
Fixed remove and add callback so they properly handle nested callbacks
2013-06-10 10:37:08 +00:00
Robert Osfield
49cfece9d4
Reorder member variables to ensure better packing in memory.
2013-06-05 07:55:05 +00:00
Robert Osfield
4f1e6b28e8
Moved the Array::AttribDivisor into the Array::Binding enum to avoid conflicts in settings between Binding and AttribDivisor.
...
Removed the vertify bindings/shared arrays handling from GeometryNew
2013-06-05 07:27:35 +00:00
Robert Osfield
eb693f6a92
Updates to GeometryNew, Array and ArraDispatchers to clean up GeometryNew so that is no longer uses ArrayData.
2013-06-04 19:04:26 +00:00
Robert Osfield
cbea97009c
Added s/getNormalize(), s/getPreserveDataType(), s/getAttribDivisor() and s/getBinding() to osg::Array base class in preperation for refactor of osg::Geometry and introduction of new features.
2013-06-04 14:55:57 +00:00
Robert Osfield
caa3a06c70
Introduced GeometryNew which is a cleaned up version of Geometry that removes support for array indices.
...
GeometryNew is only temporary and will be renamed to Geometry on the completion of refactoring work and feedback from community.
Ported osggeometry across to use GeometryNew.
2013-06-04 09:32:59 +00:00
Robert Osfield
2dc53ceabb
From Aurelien Albert, Added support for texture swizzle.
2013-06-03 15:10:53 +00:00
Robert Osfield
9b67578c47
Updated version and so_version in prep for 3.1.8 developer release
2013-06-03 14:38:23 +00:00
Robert Osfield
4697b3c68b
From Art Tevs, int and uint Vec classes
2013-06-03 11:38:20 +00:00
Robert Osfield
efe52842fa
From Aurelien Albert, "This submission is made against trunk version and add the loading of "glVertexAttribDivisor" extension."
2013-06-03 09:19:46 +00:00
Robert Osfield
47f574429a
From Marcin Prus and Robert Osfield, moved the key parts of the .dds plugins computeRowWidthInBytes implementation into the osg::Image::computeImageSizeInBytes(..) to
...
address bugs in the computation of image size.
2013-05-28 14:14:45 +00:00
Robert Osfield
18c37d14cd
Moved quad buffer definitions into include/osg/Camera
2013-05-27 08:10:42 +00:00
Robert Osfield
1284a0dd40
From Pawel Ksiezopolski, first email: "This submission adds texture buffer object ( defined in GL_ARB_texture_buffer_object extension ) to the osg::Texture* family.
...
TextureBuffer objects may use osg::Texture::bindToImageUnit(), so GLSL shaders are able to use not only texelFetch() function , but also functions defined in GL_ARB_shader_image_load_store extension : imageLoad(), imageStore(), imageAtomicAdd() etc."
second email: "After a while I found that osg::Texture::applyTexParameters() used with TextureBuffer may cause some OpenGL errors ( applying texture filters and wraps to TextureBuffer makes no sense ) so I fixed it."
2013-05-22 12:49:46 +00:00
Robert Osfield
c238a7cca2
From Michael Kapelko, "The provided patch (against SVN revision 13380) adds missing constness to returning calls (without it the user code does not compile)."
2013-05-14 16:18:41 +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
f1d5ba4278
Updated version after dev release
2013-05-14 13:34:54 +00:00
Robert Osfield
9402efe38e
Added DisplaySettings::KeystoneHint flag that can be set via --keystone-on and --keystone-off command line parameters, and the OSG_KEYSTONE env var
2013-05-10 17:59:07 +00:00
Robert Osfield
e545627571
Moved Keystone class into osgViewer library.
2013-05-09 15:18:14 +00:00
Robert Osfield
34a6b38983
Preperation for adding stereo support direclty into osgViewer.
2013-04-15 14:21:32 +00:00
Robert Osfield
dd8d7c2839
Updated developer release number
2013-03-21 16:42:09 +00:00
Robert Osfield
ed35a0a07a
Added check against isVertexBufferObjectSupported() in set*Pointer() methods
2013-03-21 16:22:30 +00:00
Robert Osfield
68fdae5761
From Lukasz Izdebski,"added support for gl_SampleMaski."
2013-02-13 16:29:03 +00:00
Robert Osfield
63cd217c77
From Jordi Torres, Android build fix
2013-02-12 15:44:52 +00:00
Robert Osfield
2700c9d5e5
Updated SO version in prep for serialization foramt change
2013-02-07 11:08:34 +00:00
Robert Osfield
00c7e5e552
From Aurelien Albert, "This line,I use the "useVertexAttributeAliasing" mode in my application, and color arrays are not normalized, so shaders get [0.0-255.0] values instead of [0.0-1.0] values.
...
This patch fix this."
and those below, will be ignored
----
M include/osg/State
2013-02-06 14:50:37 +00:00
Robert Osfield
19bfa92c91
Simplified include/osg/Math to use Standard C++ maths headers - <cmath> and <cfloat>
2013-02-06 12:02:05 +00:00
Robert Osfield
5297502a38
Updated version number after 3.1.4 developer release
2013-02-04 14:42:44 +00:00
Robert Osfield
6ec15736cd
Standardized use of GL_HALF_FLOAT_NV and GL_HALF_FLOAT_ARB to GL_HALF_FLOAT
2013-01-31 16:26:06 +00:00
Robert Osfield
45585b78fb
From Laurens Voerman, "I have implemented and tested (on windows only) your suggestion for resetCullingMask(), it's far less intrusive than my previous submission.
...
attached are the changes to current svn (28 Jan 2013 / rev :13312).
"
2013-01-28 14:30: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
f6450a1123
From Lukasz Izdebski, "Adding this GL mode makes possibly to use this GL Modes (added in core OpenGL 3.2) in Windows."
2013-01-25 11:08:32 +00:00
Robert Osfield
5aa1234fa4
Fixed usage of META_NodeVisitor so it doesn't include ""
2013-01-24 18:48:34 +00:00
Robert Osfield
0b1605ed08
From Wang Rui with edits from Robert Osfield, additional GLenums for cross platform build
2013-01-23 16:22:45 +00:00
Robert Osfield
83f9d0f3e6
Added Options support to ImageSequence LOAD_* functionality
2013-01-18 17:11:49 +00:00
Robert Osfield
5fb8cd6a9c
Update SO_VERSION to reflect new API changes
2013-01-18 16:30:55 +00:00
Robert Osfield
a0980734ac
Added LOAD_AND_RETAIN_IN_UPDATE_TRAVERSAL and LOAD_AND_DISCARD_IN_UPDATE_TRAVERSAL ImageSequence::Mode's to allow for ImageSequence usage without using background paging threads, instead loading all the images on demand in the update traversal.
2013-01-18 16:21:17 +00:00
Robert Osfield
4a0ce866c0
Updated SO version
2012-12-14 16:30:28 +00:00
Robert Osfield
32c0bc3b39
From Lionel Lagarde, "Here is a correction on the PixelBufferObject getter methods of Image.
...
The set method modify the buffer object of the BufferData while the get method returned the buffer object of the Image.
I've also removed the _bufferObject member of Image (not used anymore)."
--This line, Lionel Lagardeand those below, will be ignored--
M include/osg/Image
2012-12-13 17:35:27 +00:00
Robert Osfield
e64d5e5eca
Added template swapBytes method
2012-12-07 19:04:49 +00:00
Robert Osfield
5a88734598
Moved the expansion of the key codes into ApplicationUsage so that help is only generated for non zero keycodes.
2012-12-05 10:13:51 +00:00
Robert Osfield
e4a42fa65c
Fixed error in Unfiform set method
2012-12-03 09:50:41 +00:00
Robert Osfield
8b30807ef1
From Paul Martz, build fixes
2012-11-19 11:25:52 +00:00