drawing join dots on stroke fonts is now optional (and default off)
authorDiederick Niehorster <dcnieho@gmail.com>
Sun, 28 Sep 2014 04:04:08 +0000 (04:04 +0000)
committerDiederick Niehorster <dcnieho@gmail.com>
Sun, 28 Sep 2014 04:04:08 +0000 (04:04 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1705 7f0cb862-5218-0410-a997-914c9d46530a

include/GL/freeglut_ext.h
src/fg_font.c
src/fg_init.c
src/fg_internal.h
src/fg_state.c

index 6f0a048..9c3eee1 100644 (file)
@@ -88,6 +88,8 @@
 
 #define  GLUT_GEOMETRY_VISUALIZE_NORMALS    0x0205
 
+#define  GLUT_STROKE_FONT_DRAW_JOIN_DOTS    0x0206  /* Draw dots between line segments of stroke fonts? */
+
 /*
  * New tokens for glutInitDisplayMode.
  * Only one GLUT_AUXn bit may be used at a time.
index c0f0479..9e73949 100644 (file)
@@ -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 );
 }
index 4061836..fda824d 100644 (file)
@@ -87,6 +87,7 @@ SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
                       1,                      /* AuxiliaryBufferNumber */
                       4,                      /* SampleNumber */
                       GL_FALSE,               /* SkipStaleMotion */
+                      GL_FALSE,               /* StrokeFontDrawJoinDots */
                       1,                      /* OpenGL context MajorVersion */
                       0,                      /* OpenGL context MinorVersion */
                       0,                      /* OpenGL ContextFlags */
index 5e35378..8c0be9b 100644 (file)
@@ -342,6 +342,8 @@ struct tagSFG_State
 
     GLboolean        SkipStaleMotion;      /* skip stale motion events */
 
+    GLboolean        StrokeFontDrawJoinDots;/* Draw dots between line segments of stroke fonts? */
+
     int              MajorVersion;         /* Major OpenGL context version  */
     int              MinorVersion;         /* Minor OpenGL context version  */
     int              ContextFlags;         /* OpenGL context flags          */
index 580ff10..bb2e8f7 100644 (file)
@@ -118,6 +118,10 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value )
         fgStructure.CurrentWindow->State.VisualizeNormals = value;
       break;
 
+    case GLUT_STROKE_FONT_DRAW_JOIN_DOTS:
+      fgState.StrokeFontDrawJoinDots = value;
+      break;
+
     default:
         fgWarning( "glutSetOption(): missing enum handle %d", eWhat );
         break;
@@ -218,6 +222,9 @@ int FGAPIENTRY glutGet( GLenum eWhat )
         return GL_FALSE;
       return fgStructure.CurrentWindow->State.VisualizeNormals;
 
+    case GLUT_STROKE_FONT_DRAW_JOIN_DOTS:
+        return fgState.StrokeFontDrawJoinDots;
+
     default:
         return fgPlatformGlutGet ( eWhat );
         break;