diff --git a/ftgl_testing.cc b/ftgl_testing.cc index 5a7f9b3..f08adef 100644 --- a/ftgl_testing.cc +++ b/ftgl_testing.cc @@ -16,7 +16,6 @@ void init(void) { glViewport(0, 0, WIDTH, HEIGHT); glClearColor (0.0, 0.0, 0.0, 0.0); - glEnable(GL_DEPTH_TEST); glShadeModel(GL_FLAT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -33,22 +32,31 @@ void init(void) void display(SDL_Window * window) { + float line_height = font->LineHeight(); + float advance = font->Advance("M"); + float low = font->BBox("g").Lower().Y(); + float high = font->BBox("M").Upper().X(); + float shift = (high + low) / 2.0 - line_height / 2.0; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_QUADS); - glVertex3f(2.0, 202.0, 0.0); - glVertex3f(2.0, 210.0, 0.0); - glVertex3f(10.0, 210.0, 0.0); - glVertex3f(10.0, 202.0, 0.0); + glColor4f(1.0, 1.0, 0.0, 1.0); + glVertex3f(10 + advance * ('J' - 'A'), HEIGHT - line_height * 3 + shift, 0.0); + glVertex3f(10 + advance * ('J' - 'A'), HEIGHT - line_height * 2 + shift, 0.0); + glVertex3f(10 + advance * ('J' - 'A' + 1), HEIGHT - line_height * 2 + shift, 0.0); + glVertex3f(10 + advance * ('J' - 'A' + 1), HEIGHT - line_height * 3 + shift, 0.0); glEnd(); - float line_height = font->LineHeight(); - font->Render("abcdefghijklmnopqrstuvwxyz", -1, FTPoint(10, HEIGHT - line_height, 0)); - font->Render("ABCDEFGHIJKLMNOPQRSTUVWXYZ", -1, FTPoint(10, HEIGHT - line_height * 2, 0)); + glColor4f(1, 1, 1, 1); + font->Render("abcdefghijklmnopqrstuvwxyz_", -1, FTPoint(10, HEIGHT - line_height, 0)); + font->Render("ABCDEFGHIJKLMNOPQRSTUVWXYZ_", -1, FTPoint(10, HEIGHT - line_height * 2, 0)); for (int i = 0; i < 26; i++) { char s[2]; s[0] = 'A' + i; s[1] = '\0'; - float advance = font->Advance("M"); + if (i == 'J' - 'A') + glColor4f(0, 0, 0, 1); + else + glColor4f(1, 1, 1, 1); font->Render(s, -1, FTPoint(10 + advance * i, HEIGHT - line_height * 3, 0)); } font->Render("0123456789", -1, FTPoint(10, HEIGHT - line_height * 4, 0));