Added a second minimalistic HUD.
Added code to display the number of triangles rendered.
This commit is contained in:
parent
3344696781
commit
1932c68065
3 changed files with 436 additions and 13 deletions
|
@ -247,6 +247,12 @@ double get_vfc_ratio( void )
|
||||||
return pview->vfc_ratio;
|
return pview->vfc_ratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double get_vfc_tris_drawn ( void )
|
||||||
|
{
|
||||||
|
return current_view.tris_rendered;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool fgCockpitInit( fgAIRCRAFT *cur_aircraft )
|
bool fgCockpitInit( fgAIRCRAFT *cur_aircraft )
|
||||||
{
|
{
|
||||||
fgPrintf( FG_COCKPIT, FG_INFO, "Initializing cockpit subsystem\n");
|
fgPrintf( FG_COCKPIT, FG_INFO, "Initializing cockpit subsystem\n");
|
||||||
|
@ -303,9 +309,13 @@ void fgCockpitUpdate( void ) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.13 1998/08/22 01:19:27 curt
|
/* Revision 1.14 1998/08/24 20:05:15 curt
|
||||||
/* Omit panel code because it's texture loading overruns array bounds.
|
/* Added a second minimalistic HUD.
|
||||||
|
/* Added code to display the number of triangles rendered.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.13 1998/08/22 01:19:27 curt
|
||||||
|
* Omit panel code because it's texture loading overruns array bounds.
|
||||||
|
*
|
||||||
* Revision 1.12 1998/07/13 21:28:00 curt
|
* Revision 1.12 1998/07/13 21:28:00 curt
|
||||||
* Converted the aoa scale to a radio altimeter.
|
* Converted the aoa scale to a radio altimeter.
|
||||||
*
|
*
|
||||||
|
|
415
Cockpit/hud.cxx
415
Cockpit/hud.cxx
|
@ -124,8 +124,8 @@ int yy;
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(theta * RAD_TO_DEG, 0.0, 0.0, 1.0);
|
glRotatef(theta * RAD_TO_DEG, 0.0, 0.0, 1.0);
|
||||||
xx = x * cos(theta) + y * sin( theta );
|
xx = (int)(x * cos(theta) + y * sin( theta ));
|
||||||
yy = y * cos(theta) - x * sin( theta );
|
yy = (int)(y * cos(theta) - x * sin( theta ));
|
||||||
glTranslatef( xx, yy, 0);
|
glTranslatef( xx, yy, 0);
|
||||||
glScalef(.1, .1, 0.0);
|
glScalef(.1, .1, 0.0);
|
||||||
while (*msg) {
|
while (*msg) {
|
||||||
|
@ -463,6 +463,24 @@ int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 20:
|
case 20:
|
||||||
|
switch( current_options.get_tris_or_culled() ) {
|
||||||
|
case 0:
|
||||||
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
|
25,
|
||||||
|
90,
|
||||||
|
10,
|
||||||
|
get_vfc_tris_drawn,
|
||||||
|
"%.0f",
|
||||||
|
"Tris Rendered = ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
HIptr = (instr_item *) new instr_label( 10,
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
25,
|
25,
|
||||||
90,
|
90,
|
||||||
|
@ -478,6 +496,391 @@ int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ )
|
||||||
0,
|
0,
|
||||||
TRUE );
|
TRUE );
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 21:
|
||||||
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
|
40,
|
||||||
|
90,
|
||||||
|
10,
|
||||||
|
get_fov,
|
||||||
|
"%.1f",
|
||||||
|
"FOV = ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
HIptr = 0;;
|
||||||
|
}
|
||||||
|
if( HIptr ) { // Anything to install?
|
||||||
|
HUD_deque.insert( HUD_deque.begin(), HIptr);
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
while( HIptr );
|
||||||
|
|
||||||
|
return 0; // For now. Later we may use this for an error code.
|
||||||
|
}
|
||||||
|
|
||||||
|
int fgHUDInit2( fgAIRCRAFT * /* current_aircraft */ )
|
||||||
|
{
|
||||||
|
instr_item *HIptr;
|
||||||
|
int index;
|
||||||
|
|
||||||
|
fgPrintf( FG_COCKPIT, FG_INFO, "Initializing current aircraft HUD\n" );
|
||||||
|
|
||||||
|
HUD_deque.erase( HUD_deque.begin(), HUD_deque.end()); // empty the HUD deque
|
||||||
|
|
||||||
|
// hud->code = 1;
|
||||||
|
// hud->status = 0;
|
||||||
|
|
||||||
|
// For now lets just hardcode the hud here.
|
||||||
|
// In the future, hud information has to come from the same place
|
||||||
|
// aircraft information came from.
|
||||||
|
|
||||||
|
// fgHUDSetTimeMode( hud, NIGHT );
|
||||||
|
// fgHUDSetBrightness( hud, BRT_LIGHT );
|
||||||
|
|
||||||
|
// index = 0;
|
||||||
|
index = 19;
|
||||||
|
|
||||||
|
do {
|
||||||
|
switch ( index ) {
|
||||||
|
case 0: // TBI
|
||||||
|
HIptr = (instr_item *) new fgTBI_instr( 270, 100, 60, 10 );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: // Artificial Horizon
|
||||||
|
HIptr = (instr_item *) new HudLadder( 240, 195, 120, 180 );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // KIAS
|
||||||
|
HIptr = (instr_item *) new hud_card( 130,
|
||||||
|
170,
|
||||||
|
28,
|
||||||
|
200,
|
||||||
|
get_speed,
|
||||||
|
HUDS_LEFT | HUDS_VERT,
|
||||||
|
200.0, 0.0,
|
||||||
|
1.0,
|
||||||
|
10, 5,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
50.0,
|
||||||
|
true);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: // Radio Altimeter
|
||||||
|
HIptr = (instr_item *) new hud_card( 420,
|
||||||
|
195,
|
||||||
|
25,
|
||||||
|
150,
|
||||||
|
get_agl,
|
||||||
|
HUDS_LEFT | HUDS_VERT,
|
||||||
|
1000, 0,
|
||||||
|
1.0,
|
||||||
|
25, 5,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
200.0,
|
||||||
|
true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4: // GYRO COMPASS
|
||||||
|
HIptr = (instr_item *) new hud_card( 200,
|
||||||
|
375,
|
||||||
|
200,
|
||||||
|
28,
|
||||||
|
get_heading,
|
||||||
|
HUDS_TOP,
|
||||||
|
360, 0,
|
||||||
|
1.0,
|
||||||
|
5, 1,
|
||||||
|
360,
|
||||||
|
0,
|
||||||
|
25,
|
||||||
|
true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5: // AMSL
|
||||||
|
HIptr = (instr_item *) new hud_card( 460,
|
||||||
|
170,
|
||||||
|
35,
|
||||||
|
200,
|
||||||
|
get_altitude,
|
||||||
|
HUDS_RIGHT | HUDS_VERT,
|
||||||
|
15000, 0,
|
||||||
|
1.0,
|
||||||
|
100, 25,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
250,
|
||||||
|
true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
HIptr = (instr_item *) new guage_instr( 250, // x
|
||||||
|
350, // y
|
||||||
|
100, // width
|
||||||
|
20, // height
|
||||||
|
get_aileronval, // data source
|
||||||
|
HUDS_BOTTOM | HUDS_NOTEXT,
|
||||||
|
100.0,
|
||||||
|
+1.0,
|
||||||
|
-1.0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 7:
|
||||||
|
HIptr = (instr_item *) new guage_instr( 170, // x
|
||||||
|
225, // y
|
||||||
|
20, // width
|
||||||
|
100, // height
|
||||||
|
get_elevatorval, // data source
|
||||||
|
HUDS_RIGHT | HUDS_VERT | HUDS_NOTEXT,
|
||||||
|
-100.0, // Scale data
|
||||||
|
+1.0, // Data Range
|
||||||
|
-1.0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 8:
|
||||||
|
HIptr = (instr_item *) new guage_instr( 250, // x
|
||||||
|
200, // y
|
||||||
|
100, // width
|
||||||
|
20, // height
|
||||||
|
get_rudderval, // data source
|
||||||
|
HUDS_TOP | HUDS_NOTEXT,
|
||||||
|
100.0,
|
||||||
|
+1.0,
|
||||||
|
-1.0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 9:
|
||||||
|
HIptr = (instr_item *) new guage_instr( 100, // x
|
||||||
|
190,
|
||||||
|
20,
|
||||||
|
160, // height
|
||||||
|
get_throttleval, // data source
|
||||||
|
HUDS_VERT | HUDS_RIGHT | HUDS_NOTEXT,
|
||||||
|
100.0,
|
||||||
|
1.0,
|
||||||
|
0.0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 10: // Digital KIAS
|
||||||
|
HIptr = (instr_item *) new instr_label ( 110,
|
||||||
|
150,
|
||||||
|
40,
|
||||||
|
30,
|
||||||
|
get_speed,
|
||||||
|
"%5.0f",
|
||||||
|
NULL,
|
||||||
|
" Kts",
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 11: // Digital Altimeter
|
||||||
|
HIptr = (instr_item *) new instr_label ( 110,
|
||||||
|
135,
|
||||||
|
40,
|
||||||
|
10,
|
||||||
|
get_altitude,
|
||||||
|
"MSL %5.0f",
|
||||||
|
NULL,
|
||||||
|
" m",
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
LEFT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 12: // Roll indication diagnostic
|
||||||
|
HIptr = (instr_item *) new instr_label ( 110,
|
||||||
|
120,
|
||||||
|
40,
|
||||||
|
10,
|
||||||
|
get_roll,
|
||||||
|
"%5.2f",
|
||||||
|
" Roll",
|
||||||
|
" Deg",
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 13: // Angle of attack diagnostic
|
||||||
|
HIptr = (instr_item *) new instr_label ( 440,
|
||||||
|
150,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_aoa,
|
||||||
|
" %5.2f",
|
||||||
|
"AOA",
|
||||||
|
" Deg",
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 14:
|
||||||
|
HIptr = (instr_item *) new instr_label ( 440,
|
||||||
|
135,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_heading,
|
||||||
|
" %5.1f",
|
||||||
|
"Heading ",
|
||||||
|
" Deg",
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 15:
|
||||||
|
HIptr = (instr_item *) new instr_label ( 440,
|
||||||
|
120,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_sideslip,
|
||||||
|
"%5.2f",
|
||||||
|
"Sideslip ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 16:
|
||||||
|
HIptr = (instr_item *) new instr_label( 440,
|
||||||
|
100,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_throttleval,
|
||||||
|
"%5.2f",
|
||||||
|
"Throttle ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 17:
|
||||||
|
HIptr = (instr_item *) new instr_label( 440,
|
||||||
|
85,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_elevatorval,
|
||||||
|
"%5.2f",
|
||||||
|
"Elevator ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 18:
|
||||||
|
HIptr = (instr_item *) new instr_label( 440,
|
||||||
|
60,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_aileronval,
|
||||||
|
"%5.2f",
|
||||||
|
"Aileron ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case 19:
|
||||||
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
|
10,
|
||||||
|
60,
|
||||||
|
10,
|
||||||
|
get_frame_rate,
|
||||||
|
"%.1f",
|
||||||
|
"Frame rate = ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 20:
|
||||||
|
switch( current_options.get_tris_or_culled() ) {
|
||||||
|
case 0:
|
||||||
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
|
25,
|
||||||
|
90,
|
||||||
|
10,
|
||||||
|
get_vfc_tris_drawn,
|
||||||
|
"%.0f",
|
||||||
|
"Tris Rendered = ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
|
25,
|
||||||
|
90,
|
||||||
|
10,
|
||||||
|
get_vfc_ratio,
|
||||||
|
"%.2f",
|
||||||
|
"VFC Ratio = ",
|
||||||
|
NULL,
|
||||||
|
1.0,
|
||||||
|
HUDS_TOP,
|
||||||
|
RIGHT_JUST,
|
||||||
|
SMALL,
|
||||||
|
0,
|
||||||
|
TRUE );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 21:
|
case 21:
|
||||||
HIptr = (instr_item *) new instr_label( 10,
|
HIptr = (instr_item *) new instr_label( 10,
|
||||||
|
@ -696,9 +1099,13 @@ void fgUpdateHUD( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.19 1998/07/30 23:44:05 curt
|
/* Revision 1.20 1998/08/24 20:05:16 curt
|
||||||
/* Tweaks for sgi building.
|
/* Added a second minimalistic HUD.
|
||||||
|
/* Added code to display the number of triangles rendered.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.19 1998/07/30 23:44:05 curt
|
||||||
|
* Tweaks for sgi building.
|
||||||
|
*
|
||||||
* Revision 1.18 1998/07/20 12:47:55 curt
|
* Revision 1.18 1998/07/20 12:47:55 curt
|
||||||
* Replace the hud rendering for loop (which linearly searches the the hud
|
* Replace the hud rendering for loop (which linearly searches the the hud
|
||||||
* list to find the entry with the proper position) with a simple linear
|
* list to find the entry with the proper position) with a simple linear
|
||||||
|
|
|
@ -174,6 +174,7 @@ extern double get_longitude ( void );
|
||||||
extern double get_long_min ( void );
|
extern double get_long_min ( void );
|
||||||
extern double get_fov ( void );
|
extern double get_fov ( void );
|
||||||
extern double get_vfc_ratio ( void );
|
extern double get_vfc_ratio ( void );
|
||||||
|
extern double get_vfc_tris_drawn ( void );
|
||||||
|
|
||||||
enum hudinstype{ HUDno_instr,
|
enum hudinstype{ HUDno_instr,
|
||||||
HUDscale,
|
HUDscale,
|
||||||
|
@ -495,6 +496,7 @@ class HudLadder : public dual_instr_item {
|
||||||
|
|
||||||
extern void HUD_brightkey( bool incr_bright );
|
extern void HUD_brightkey( bool incr_bright );
|
||||||
extern int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ );
|
extern int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ );
|
||||||
|
extern int fgHUDInit2( fgAIRCRAFT * /* current_aircraft */ );
|
||||||
extern void fgUpdateHUD( void );
|
extern void fgUpdateHUD( void );
|
||||||
|
|
||||||
extern void drawOneLine ( UINT x1, UINT y1, UINT x2, UINT y2);
|
extern void drawOneLine ( UINT x1, UINT y1, UINT x2, UINT y2);
|
||||||
|
@ -523,10 +525,14 @@ void fgHUDSetTimeMode( Hptr hud, int time_of_day );
|
||||||
#endif // _HUD_H
|
#endif // _HUD_H
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.11 1998/07/24 21:36:55 curt
|
/* Revision 1.12 1998/08/24 20:05:17 curt
|
||||||
/* Ran dos2unix to get rid of extraneous ^M's. Tweaked parameter in
|
/* Added a second minimalistic HUD.
|
||||||
/* ImageGetRawData() to match usage.
|
/* Added code to display the number of triangles rendered.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.11 1998/07/24 21:36:55 curt
|
||||||
|
* Ran dos2unix to get rid of extraneous ^M's. Tweaked parameter in
|
||||||
|
* ImageGetRawData() to match usage.
|
||||||
|
*
|
||||||
* Revision 1.10 1998/07/13 21:28:02 curt
|
* Revision 1.10 1998/07/13 21:28:02 curt
|
||||||
* Converted the aoa scale to a radio altimeter.
|
* Converted the aoa scale to a radio altimeter.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue