Commit Graph

141 Commits

Author SHA1 Message Date
Robert Osfield
859bcf3c4b Further perfomrmance optimizations and clean up on new VBO/EBO/PBO API. 2007-05-01 18:03:32 +00:00
Robert Osfield
d625a5e114 Implementated new dirty buffer mechansim for BufferObjects to make it more efficient 2007-04-30 12:18:27 +00:00
Robert Osfield
d63b351137 From André Garneau, threading bug fixes - moving scoped statics out of scope to be global statics 2007-01-17 14:40:03 +00:00
Robert Osfield
16d1c00a3d Changed the return types of makeCurrent to bool, and added a bool GraphicsContext::releaseContext method
along with implementations in osgViewer.
2007-01-08 19:29:59 +00:00
Robert Osfield
4a5eda6522 Added GraphicsContext::ResizedCallback and GraphicsContext::resizedImplementation.
Added message on non implementation of GraphicsContext::valid().
Added prelimary GraphicsContext clean up support.
2007-01-08 16:20:10 +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
0900857333 From Farshid Lashkari,
"I was experiencing hard crashes of my application when using PBO's on
machines that don't support PBO's. I think osg incorrectly checks if
PBO's are supported.

I added a new method to the BufferObject::Extensions class which
returns if the "GL_ARB_pixel_buffer_object" string is supported. This
fixes the problem on my end. Machines without PBO support will
continue to work and machines with PBO support will still be able to
use it."
2006-08-25 08:48:16 +00:00
Robert Osfield
be60b32add Fixed texture optimization problem associated with mixing already compiled scene graphs - resulting
in incorrect texture assignment.  Solution was to a compareTextureObjects() test to the Texture*::compare(..) method that
the osgUtil::Optimizer::StateSetVisitor uses to determine uniqueness.
2006-08-14 19:42:22 +00:00
Robert Osfield
4d556c0ec4 Reworked the TextureObjectManager singleton so that it no longer reconstructed itself once deleted, and added checks to against a null manager to prevent calling code crashing. 2006-08-02 15:41:47 +00:00
Robert Osfield
d9b6d87d5a Cleaned up per context buffers support 2006-07-26 15:29:26 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
0b32213394 From Eric Sokolowsky,
"If a texture is used that is not a multiple of four, and compression
was requested through the texture's internal format, the texture's
internal format reverts to a non-compressed type and a NOTICE is given.
At present, compressed textures must have a multiple of four in each
dimension."
2006-07-06 14:14:19 +00:00
Robert Osfield
d7f1c34df8 From Eric Sokolowsky, "The attached Texture.cpp fixes a problem when subloading compressed
textures.  Near the top of the function that implements texture
subloading, osg::Texture::applyTexImage2D_subload(), the local variable
compressed_image examines the _image's_ pixel format to see if it is
compressed. However, further on, in calls to getCompressedSize() the
_texture's_ pixel format is used. In my application's Texture2D class,
I use osg::Texture::USE_ARB_COMPRESSION to
osg::Texture2D::setInternalFormatMode(), which causes the internal format
to become one of the generic ARB_COMPRESSED types, which do not have a
specific size. Thus the recent warning message added to
osg::Texture::getCompressedSize() is triggered. The correct behavior is
to use the format mode from the Image class instead of the Texture class
within the subload implementation, and then the size is calculated
correctly."
2006-07-05 21:52:36 +00:00
Robert Osfield
0f209a5362 From Eric Sokolowsky, "There is code in Image.cpp that calculates the size of a compressed image
based on the internal format. There is similar code in the Texture class
but it does not account for the ARB types. I modified the Texture class
implementation to show a warning when an incomplete internal format is
used to calculate the image size."
2006-07-05 13:44:07 +00:00
Robert Osfield
6a2387373c From Eric Sokolowsky, made a couple of methods static. 2006-06-30 13:47:12 +00:00
Robert Osfield
b5a5cd7901 Changed the default value of Texture::_resizeNonPowerOfTwoHint to true, to
improve the backwards compatibility of peformance on systems that have OpenGL2.0
drivers but without hardware that can't handle non power of two textures.
2005-11-24 10:28:09 +00:00
Robert Osfield
6c70812928 Fixed warnings. 2005-11-09 10:41:52 +00:00
Robert Osfield
53e075f78b From Brad Colbert/Robert Osfield: added s/getSourceFormat and s/getSourceType to osg::Texture
along with support for this Texture1D, 2D, 3D, TextureCubeMap and TextureRectangle.  The
new SourceFormat and SourceType parameters are only used when no osg::Image is assigned to
an osg::Texture, and main use is for render to texture effects.

Added support for --hdr option in osgprerender, which utilises the new Texture::setSourceFormat/Type() methods.
2005-11-08 15:52:21 +00:00
Robert Osfield
7c612fb1d9 Added env var docs on OSG_MAX_TEXTURE_SIZE 2005-11-03 10:59:22 +00:00
Robert Osfield
79a7f8c729 Added catch for NULL return from glGetString( GL_VERSION ); 2005-10-29 10:04:35 +00:00
Robert Osfield
76058f747c From Marco Jez, added fallback to TextureCubeMap subloading that calls load
when mipmaps are required, but non are present.
2005-09-29 09:49:20 +00:00
Robert Osfield
d48841f09b Fixed indenting and typo 2005-08-09 10:47:21 +00:00
Robert Osfield
3baa8cdad2 Disabled NPO2T on GeforceFX. 2005-06-22 11:02:37 +00:00
Robert Osfield
59be8c19f3 Changd unsigned int's to unsigned char* to fix gcc3.4 64 bit issues. 2005-05-25 09:50:11 +00:00
Robert Osfield
4645217733 Added RADEON as render type for disabling mipmapped NPO2T 2005-05-17 20:12:13 +00:00
Robert Osfield
2e4b266c39 Added differentiation between Non power of two textures when mip mapped vs
when not mipped mapped to get round the issue of incomplete support under
ATI cards.
2005-05-17 11:00:13 +00:00
Robert Osfield
fc585cd33d From Farshid Lashkari, support for non power of two extension. 2005-05-06 09:04:41 +00:00
Robert Osfield
c4e2e85aa1 From Farshid Lashkari, added Texture::Extension support for non power of two extension. 2005-05-05 09:18:03 +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
678b22ce83 Updated Copyright notices to 1998-2005. 2005-04-14 21:41:28 +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
feb06f7e4b Added improved PBO support. 2005-02-22 13:34:24 +00:00
Robert Osfield
117c791a3b Added osg::BufferObject and a made a number associated to accomodate this
new class. osg::BufferObject wraps up OpenGL pixel and array buffer objects.
Currently implementation is work in progress.
2005-02-09 10:39:45 +00:00
Robert Osfield
a0fc9632b8 Fixed warnings. 2004-11-13 21:42:45 +00:00
Robert Osfield
fd9063628a Added guard to testing _internalFormat in compareTexture(..) so that
a comparison would only be done if both the lhs and rhs had already been
set to a non zero value.
2004-11-08 16:39:10 +00:00
Robert Osfield
08d4fdefb0 Fixed newly introduced compressed mipmnap error. 2004-09-30 12:10:45 +00:00
Robert Osfield
d204a087c3 Added proper handling of 3d texture compression 2004-09-30 09:10:29 +00:00
Robert Osfield
e08328a449 Preliminary steps to support for compressed 3D textures. 2004-09-29 10:01:46 +00:00
Robert Osfield
1b31024cd5 Clean up of new DatabasePager code, and change of osgProducer so that
DatabasePager support is now integrated into the OsgSceneHandler.
2004-09-23 18:50:38 +00:00
Robert Osfield
54b45ce3bc Updated to DatabasePager support 2004-09-21 21:33:52 +00:00
Robert Osfield
0d884d66eb Various improvements to database paing. 2004-09-21 17:26:08 +00:00
Robert Osfield
d9af748b78 From Tom Jolly, add detection for whether multi-texturing is supported before
checking for number of texture units supported, using 1 as a fallback value
2004-09-01 10:41:50 +00:00
Robert Osfield
7126ca44e9 Better macro support for switching on/off use of mutex 2004-08-03 11:01:39 +00:00
Robert Osfield
ebad31c3dd Fixed warnings 2004-08-02 13:57:47 +00:00
Robert Osfield
c9f5749c12 Added preliminary support for thread safety in various delete GLobjects code 2004-07-21 19:16:49 +00:00
Robert Osfield
aa833acfd3 Added support for releasing GLObjects, and renamed DisplayListVisitor the
GLObjectVisitor to better fit its function, and added support for releasing
objects as well as compiling them.
2004-07-20 05:37:59 +00:00
Robert Osfield
3e5c491f54 Added debugging message, currently commented out. 2004-07-12 13:13:58 +00:00
Robert Osfield
b8aa8bfc40 Fixed warning. 2004-07-06 12:15:03 +00:00
Robert Osfield
fdbb1fe021 Re-organised Texture::computeInternalFormatWithImage() to avoid testing
for extensions when not required.
2004-06-28 22:09:52 +00:00
Robert Osfield
867a1ae105 From Bob Kuehne, more general checks for existance of extensions. 2004-05-17 13:20:41 +00:00