#include <osg/CullFace>
#include <osg/Depth>
#include <osg/Material>
+#include <osg/Matrixf>
#include <osg/TexEnv>
#include <osg/PolygonOffset>
#include <Main/viewer.hxx>
#include <Instrumentation/dclgps.hxx>
-#include "hud.hxx"
-
-
#define WIN_X 0
#define WIN_Y 0
#define WIN_W 1024
{
osg::Texture2D* texture = _textureMap[relativePath].get();
if (texture == 0) {
- SG_LOG( SG_COCKPIT, SG_DEBUG,
- "Texture " << relativePath << " does not yet exist" );
- SGPath tpath(globals->get_fg_root());
- tpath.append(relativePath);
-
+ SGPath tpath = globals->resolve_aircraft_path(relativePath);
texture = SGLoadTexture2D(staticTexture, tpath);
_textureMap[relativePath] = texture;
void
FGPanel::update (osg::State& state, GLfloat winx, GLfloat winw, GLfloat winy, GLfloat winh)
{
+ using namespace osg;
// Calculate accelerations
// and jiggle the panel accordingly
// The factors and bounds are just
glMatrixMode(GL_PROJECTION);
glPushMatrix();
- glLoadIdentity();
+ Matrixf proj;
if ( _flipx->getBoolValue() ) {
- gluOrtho2D(winx + winw, winx, winy + winh, winy); /* up side down */
+ proj = Matrixf::ortho2D(winx + winw, winx, winy + winh, winy); /* up side down */
} else {
- gluOrtho2D(winx, winx + winw, winy, winy + winh); /* right side up */
+ proj = Matrixf::ortho2D(winx, winx + winw, winy, winy + winh); /* right side up */
}
+ glLoadMatrix(proj.ptr());
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
transform();
FGFontCache *fc = globals->get_fontcache();
- text_renderer.setFont(fc->getTexFont(_font_name.c_str()));
+ fntFont* font = fc->getTexFont(_font_name.c_str());
+ if (!font) {
+ return; // don't crash on missing fonts
+ }
+
+ text_renderer.setFont(font);
text_renderer.setPointSize(_pointSize);
text_renderer.begin();
FGTextLayer::setFontName(const string &name)
{
_font_name = name + ".txf";
+ FGFontCache *fc = globals->get_fontcache();
+ fntFont* font = fc->getTexFont(_font_name.c_str());
+ if (!font) {
+ SG_LOG(SG_GENERAL, SG_WARN, "unable to find font:" << name);
+ }
}