X logo billboarding
[faros-demo] / src / geom.cc
index 804c18f..62e36d3 100644 (file)
@@ -114,4 +114,34 @@ void ground()
 
 void xlogo()
 {
+       static const float xlogo_varr[] = {
+               -0.500, 0.407, -0.113, -0.109, 0.059, -0.006, -0.251, 0.407,
+               -0.113, -0.109, -0.499, -0.593, -0.410, -0.593, 0.059, -0.006,
+               -0.058, -0.182, 0.251, -0.593, 0.500, -0.593, 0.114, -0.079,
+               -0.058, -0.182, 0.114, -0.079, 0.500, 0.407, 0.411, 0.407
+       };
+
+       /* billboarding */
+       float mv[16];
+       glGetFloatv(GL_MODELVIEW_MATRIX, mv);
+       mv[0] = mv[5] = mv[10] = 1.0f;
+       mv[1] = mv[2] = mv[4] = mv[6] = mv[8] = mv[9] = 0.0f;
+
+       glPushMatrix();
+       glLoadMatrixf(mv);
+
+       glPushAttrib(GL_ENABLE_BIT);
+       glEnable(GL_BLEND);
+       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+       glBegin(GL_QUADS);
+       const float *vptr = xlogo_varr;
+       for(int i=0; i<(int)(sizeof xlogo_varr / sizeof *xlogo_varr) / 2; i++) {
+               glVertex2fv(vptr);
+               vptr += 2;
+       }
+       glEnd();
+
+       glPopAttrib();
+       glPopMatrix();
 }