Robert Osfield
68f37c4dcb
From Tim More and Robert Osfield, implementation of ARB_timer_query based GPU timing stats syncronization.
...
Initial email from Tim : "I've implemented using a timestamp, available with ARB_timer_query and OpenGL 3.3, to gather GPU stats. This is nice because it can accurately fix the GPU draw time with respect to the other times on the stats graph, rather than having to estimate the wall time of the end of GPU drawing. This also prevents anomalies like the GPU phase starting before the draw phase..."
Changes to Tim's submission by Robert: Removal of need for swap buffer callback in ViewerBase.cpp, by
integrating a osg::State::frameCompleted() method that does the stats timing collection. Introduction of a
GraphicsContext::swapBuffersCallbackOrImplementation() method that calls the State::frameCompleted() and
the swap buffers callback or the swapImplementation as required.
2010-11-10 16:58:58 +00:00
Robert Osfield
0eded3efbe
From WojciechLewandowski, Added DispaySettings::SwapMethod and support for it in GraphicsContext::Traits
2010-09-30 14:25:27 +00:00
Robert Osfield
a79a8d30f9
Convesion of osg::notify to OSG_INFO etc.
2010-05-28 15:47:52 +00:00
Robert Osfield
f17e401347
Convert NOTIFY to OSG_NOTIFY to avoid problems with polution of users apps with the NOTIFY macro
2010-02-10 12:44:59 +00:00
Robert Osfield
8d8037ee12
Converted osg::notify usage to NOTIFY
2010-02-09 18:24:37 +00:00
Robert Osfield
22de011107
Renamed osg::GraphicsContext::OperationQueue typedef to GraphicsOperationQueue to avoid naming conflict with osg::OperationQueue
2009-12-14 13:42:00 +00:00
Robert Osfield
ab8d93a181
Introduced preliminary osg::deleteAllGLObjects() and osg::discardAllGLObjects() functions and associated support into Texture and BufferObjects
2009-11-26 12:33:07 +00:00
Robert Osfield
f5b61191ad
From Himar Carmona, " this submission resolves an issue regarding the setup of a slave camera with an (incorrect) coding style. Sharing the same instance of osg::Viewport with a camera and a slave camera causes incorrect rescaling in GraphicsContext::resizedImplementation, due to the viewport being rescaled twice (once per camera). Though viewports sharing is not intentional, it can be done with the current version of OSG and be a potential pitfall for anyone.
...
As Robert pointed out, i opted for modifying the resize code where the break is to minimize code changes, avoiding the duplicate resize of the viewport with the use of a vector and a search for duplicates. Not very elegant (avoiding an effect of a cause), another approach could be ripping out the method osg::Camera::setViewport(osg::Viewport*) which is more inline with Roberts rationale behind not to share viewports between cameras and left only its overloaded method setViewport(x,y,width,height). But this approach need some refactoring due to the intense use of the method. Notice also that the resize works well without this change if no sharing occurs, and the user of the method can opt for always call setViewport with a new instance.
"
Note from Robert Osfield, changed this submission to use an std::set<Viewport*> rather than an std::vector<> as it keeps the code a bit cleaner and more compact.
2009-11-20 11:39:10 +00:00
Robert Osfield
370deba546
<iterator>, <stdlib.h> and <ctype.h> includes required for QNX compiler
2009-11-17 14:06:07 +00:00
Robert Osfield
95d54ba15c
Added glContexVersion, glContextFlags and glContextProfileMask members to osg::GraphicsContext::Traits to support GL3 graphics context creation.
...
Moved the handling of DisplaySettings into Traits constructor.
Added support for s/getGLContextVersion(), s/getGLContextFlags() and s/getGLContextProfileMask() to osg::DisplaySettings.
Added command line and env var support for setting the GLContextVersion, GLContextFlags and GLContextProfileMask to osg::DisplaySettings.
2009-11-11 15:25:42 +00:00
Robert Osfield
cfdccbfed6
Fixed handling of case where the master and the slave camera are placed on the same GraphisContext, or when the master camera and slave camera are assigned to different Camers. Note normally one doesn't mix master with GraphicsContexts and slave cameras so neither case is common.
2009-05-21 16:33:38 +00:00
Robert Osfield
4a28b2ed4b
Fixed handling of resize of ABSOLUTE_RF slave cameras
2009-05-07 14:53:21 +00:00
Robert Osfield
c3fc21fa82
Added support for tracking the time since the last clear() call to enable other
...
classes to be able to find out how long the current graphics frame has been running.
2009-03-12 15:18:51 +00:00
Robert Osfield
7473b06275
Preliminary work on general purpose incremental compile support in osgViewer.
2009-03-08 12:00:36 +00:00
Robert Osfield
7f39dc3499
From Bill Prendergast, "Found a typo in CameraRenderOrderSortOp in osg/GraphicsContext.cpp
...
(V2.6.0 and prior) as noted below:
struct CameraRenderOrderSortOp
{
inline bool operator() (const Camera* lhs,const Camera* rhs) const
{
if (lhs->getRenderOrder()<rhs->getRenderOrder()) return true;
if (rhs->getRenderOrder()<lhs->getRenderOrder()) return false;
---> return lhs->getRenderOrderNum()<lhs->getRenderOrderNum();
^^^ ^^^
}
};
Corrected code attached."
2008-09-17 18:42:52 +00:00
Robert Osfield
44c125a801
Changed the removeCamera() method so that it now actively calls releaseGLObjects()
...
on all children of a camera that aren't shared with other cameras on that context.
This change fixes problems with allocating and deleting views.
2008-06-26 16:45:50 +00:00
Robert Osfield
dd9dc85d40
Disabled the resizing of Camera's with FBO's
2008-02-29 16:09:48 +00:00
Robert Osfield
9c24dc7083
Changed the updating of the contextID so that the DisplaySetting::MaxNumberOfGrapicsContexts()
...
is updated on each new graphics context creation, in keeping with how osgProducer used to do things.
2008-02-19 12:26:19 +00:00
Robert Osfield
11db24e6b3
From Colin McDonald, build fixes for Solaris.
2008-01-08 18:13:06 +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
35d9107d81
Added catch for handling cases where undefined settings for dislayNum and screenNum are used
2008-01-04 13:57:36 +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
da9b845558
Added a check against the makeCurrent() return type to make sure that OpenGL
...
calls are only made if the makeCurrent() is successful.
2007-11-21 10:18:10 +00:00
Robert Osfield
5e504026a5
Changed copy constrcutor to a default constrcutor and std::copy to avoid
...
problems with dodge Sun compiler.
2007-09-27 10:42:56 +00:00
Robert Osfield
409cdd0b28
Intoduced a new setGLExtensions template method to do a copy of void* pointer to
...
local function pointer to avoid compiler warnings related to case void*.
Moved various OSG classes across to using setGLExtensions instead of getGLExtensions,
and changed them to use typedef declarations in the headers rather than casts in
the .cpp.
Updated wrappers
2007-09-10 15:19:23 +00:00
Robert Osfield
020d7a5651
Added support for controlling the draw order on Cameras on each GraphcisContext
...
via the Camera::setRenderOrder parameters
2007-08-27 13:29:09 +00:00
Robert Osfield
eecd3e9257
From Andy Skinner, The attached file adds #include <stdlib.h> to GraphicsContext.cpp, so that it compiles with the solaris compiler we use.
2007-08-07 08:18:15 +00:00
Robert Osfield
9b9e4cd7c8
Added perlimnary support for reading the DISPLAY variable.
2007-08-03 14:50:58 +00:00
Robert Osfield
c346f5b943
Introduce new osgViewer::Renderer class for implementing of the rendering
...
of cameras in viewers
2007-08-02 11:02:47 +00:00
Robert Osfield
de69a4a3d8
Added call to State::initializeExtensionsProcs() to prevent crashes before
...
these variables are initialized.
2007-07-18 14:54:27 +00:00
Robert Osfield
04c1dee7a2
Fixed GraphcicsContext::getMaxContextID so it properly returns the current max contextID.
...
Fixed the osgviewer's compile context code to account for the above fix.
Added compile context support into osgterrain example.
2007-07-17 10:54:17 +00:00
Robert Osfield
ecf0b58a19
Renamed include/osg/OperationsThread to OperationThread.
...
Created a new GraphicsThread subclass from OperationThread which allows the
GraphicsContext specific calls to be moved out of the base OperationThread class.
Updated the rest of the OSG to respect these changes.
2007-07-12 15:54:45 +00:00
Robert Osfield
6931ae4878
Added include/osg/GLObjects + .cpp which provide osg::flush*DeletedGLObjects() methods.
...
Added and cleaned up DeleteHandler calls in osgViewer to help avoid crashes on exit.
Changed DatabasePager across to dynamically checcking osg::getCompileContext(..)
Updated wrappers.
2007-07-06 13:08:51 +00:00
Robert Osfield
a484b95d3c
Added #include<algorithm>
2007-07-06 09:06:37 +00:00
Robert Osfield
d1fa520349
Added support for managing a CompileContext. Rearranged the DeleteHandler::flushAll call.
2007-07-05 18:33:20 +00:00
Robert Osfield
34fe63a74f
Fixed case of when view==NULL
2007-05-30 09:25:01 +00:00
Robert Osfield
96f0e8bd54
Added some debug message to the set/getWindowSystemInterface function
2007-05-25 15:57:59 +00:00
Robert Osfield
5056f6fee6
Added osg::Camera::ProjectionResizePolicy enum and associated methods for controlling
...
how the field of view is adjust on window resizes.
2007-05-22 09:32:38 +00:00
Robert Osfield
561dc02da5
Commented out superfluous debug messages
2007-04-05 15:04:05 +00:00
Robert Osfield
ad3cac84e9
Moved Block, ReentrantMutex and ReadWriteMutex into OpenThreads.
2007-02-23 16:31:34 +00:00
Robert Osfield
69da91620f
Convert GraphicsThread/GraphicsOperation to more generic OperationsThread/Operation.
...
This paves the way to running cull traversals in seperate threads.
Updated wrappers
2007-02-02 22:30:36 +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
9fcace0e73
Added GraphicsContext support for clearing the graphis context. The clearing
...
is off by default (ClearMask is 0), but can be switched on when ClearMask is
non zero. GraphicsContext::clear() is called after each swap buffers
2007-01-05 15:24:06 +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
4f87afdbf5
Improved the robustness of thread start and cancellation
2007-01-03 16:06:12 +00:00
Robert Osfield
7155f7d1b0
Various work on osgViewer library, including warp point and graphics window resize support
2007-01-01 18:20:10 +00:00
Robert Osfield
39c0c2df76
Unified the osg::GraphicsThread::Operation and osg::GraphicsContext::Operation classes
...
as osg::GraphicsOperation. Unpdated parts of OSG depending upon these.
Added a virtaul bool valid() method to osg::GraphicsContext to allow apps to
test whether a valid graphis context has been created or not.
2006-12-24 16:40:19 +00:00
Robert Osfield
76461b3ab2
Added support for sample and sampleBuffers to osg::GraphicsContext::Traits and
...
cleaned up the Traits naming
2006-12-22 21:53:44 +00:00
Robert Osfield
bd6b7d581e
Implemented perliminary multi-threading support in osgViewer::Viewer
2006-12-22 17:46:21 +00:00