implemented SUPER key/modifier support on windows
[freeglut] / src / fg_font.c
index c0f0479..7502a0b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * freeglut_font.c
+ * fg_font.c
  *
  * Bitmap and stroke fonts displaying.
  *
@@ -37,7 +37,7 @@
 /* -- IMPORT DECLARATIONS -------------------------------------------------- */
 
 /*
- * These are the font faces defined in freeglut_font_data.c file:
+ * These are the font faces defined in fg_font_data.c file:
  */
 extern SFG_Font fgFontFixed8x13;
 extern SFG_Font fgFontFixed9x15;
@@ -278,10 +278,14 @@ void FGAPIENTRY glutStrokeCharacter( void* fontID, int character )
         for( j = 0; j < strip->Number; j++ )
             glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
         glEnd( );
-                               glBegin( GL_POINTS );
-        for( j = 0; j < strip->Number; j++ )
-            glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
-                               glEnd( );
+        
+        if (fgState.StrokeFontDrawJoinDots)
+        {
+            glBegin( GL_POINTS );
+            for( j = 0; j < strip->Number; j++ )
+                glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
+            glEnd( );
+        }
     }
     glTranslatef( schar->Right, 0.0, 0.0 );
 }
@@ -342,7 +346,7 @@ void FGAPIENTRY glutStrokeString( void* fontID, const unsigned char *string )
 /*
  * Return the width in pixels of a stroke character
  */
-int FGAPIENTRY glutStrokeWidth( void* fontID, int character )
+GLfloat FGAPIENTRY glutStrokeWidthf( void* fontID, int character )
 {
     const SFG_StrokeChar *schar;
     SFG_StrokeFont* font;
@@ -360,17 +364,21 @@ int FGAPIENTRY glutStrokeWidth( void* fontID, int character )
     schar = font->Characters[ character ];
     freeglut_return_val_if_fail( schar, 0 );
 
-    return ( int )( schar->Right + 0.5 );
+    return schar->Right;
+}
+int FGAPIENTRY glutStrokeWidth(void* fontID, int character)
+{
+    return ( int )( glutStrokeWidthf(fontID,character) + 0.5f );
 }
 
 /*
  * Return the width of a string drawn using a stroke font
  */
-int FGAPIENTRY glutStrokeLength( void* fontID, const unsigned char* string )
+GLfloat FGAPIENTRY glutStrokeLengthf( void* fontID, const unsigned char* string )
 {
     unsigned char c;
-    float length = 0.0;
-    float this_line_length = 0.0;
+    GLfloat length = 0.0;
+    GLfloat this_line_length = 0.0;
     SFG_StrokeFont* font;
     FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeLength" );
     font = fghStrokeByID( fontID );
@@ -400,7 +408,11 @@ int FGAPIENTRY glutStrokeLength( void* fontID, const unsigned char* string )
         }
     if( length < this_line_length )
         length = this_line_length;
-    return( int )( length + 0.5 );
+    return length;
+}
+int FGAPIENTRY glutStrokeLength( void* fontID, const unsigned char* string )
+{
+    return( int )( glutStrokeLengthf(fontID,string) + 0.5f );
 }
 
 /*