]> git.mxchange.org Git - flightgear.git/commit
Clean up OSG camera setup and interface to plib PUI
authortimoore <timoore>
Mon, 19 May 2008 21:21:03 +0000 (21:21 +0000)
committertimoore <timoore>
Mon, 19 May 2008 21:21:03 +0000 (21:21 +0000)
commit580ebf637b991bbc5bb6b9632e8e62845d23ea43
treea1613d9bda7bffd1304a84b88f7db52e8433c58e
parentc92dcc6b249eb650d10ca6b739bbfa23402126c5
Clean up OSG camera setup and interface to plib PUI

Switch to defining PU_USE_NONE and providing our own callback
functions to pui for "get window" and "get window size." A new
WindowSystemAdapter class assigns ID numbers to windows for the
purpose of identifying them to plib; the window size can be extracted
from the osg::GraphicsContext class in all the different
implementations (osgViewer, glut, sdl).

Implement a GraphicsContextOperation that runs code in a particular
graphics context, perhaps in another thread, and provides an
isFinished() method to test if the operation has finished. This allows
us to initialize plib PUI properly if there are multiple graphics
contexts without using fgMakeCurrent(). fgMakeCurrent() can't work in
multi-threaded OSG configurations.

Eliminate fgMakeCurrent() and all its uses, either by using
GraphicsContextOperation or by seeing that it is not necessary.

Attach the GUI camera as a slave camera.

Don't manipulate the OSG state in the drawImplementation() functions
for SGHUDAndPanelDrawable and SGPuDrawable; it's not needed.
18 files changed:
configure.ac
projects/VC7.1/FlightGear.vcproj
src/Cockpit/cockpit.cxx
src/GUI/gui.cxx
src/GUI/gui.h
src/Include/config.h-msvc8
src/Include/config.h-msvc8.in
src/Input/input.cxx
src/Main/Makefile.am
src/Main/WindowSystemAdapter.cxx [new file with mode: 0644]
src/Main/WindowSystemAdapter.hxx [new file with mode: 0644]
src/Main/fg_os.cxx
src/Main/fg_os.hxx
src/Main/fg_os_common.cxx
src/Main/fg_os_osgviewer.cxx
src/Main/fg_os_sdl.cxx
src/Main/main.cxx
src/Main/renderer.cxx