toge's diary

コンピュータ関連の趣味をつらつらと。

縁取り文字描画

結局OpenGLだろうが何だろうが、昔懐しの1dotズらしで描画する方法で、縁取り描画が実現できることに変わりはないわけですね。
同じく影付き文字の場合は2ドットぐらいズらして半透明で描画すれば、すぐに実現できますね。

うーん、昔ながらの技術は今も使えるもんだな。

// 影描画
glTranslatef(2.0f, -2.0f, 0.f);
glColor4f(pfont->back[0], pfont->back[1], pfont->back[2], pfont->back[3]);
glDrawArrays(GL_TRIANGLE_STRIP, glyph_index * 4, 4);

// 縁描画
glTranslatef(-3.0f, 1.0f, 0.f);
glColor4f(pfont->edge[0], pfont->edge[1], pfont->edge[2], pfont->edge[3]);
glDrawArrays(GL_TRIANGLE_STRIP, glyph_index * 4, 4);
  
glTranslatef(0.0f, 2.f, 0.f);
glDrawArrays(GL_TRIANGLE_STRIP, glyph_index * 4, 4);
  
glTranslatef(2.0f, 0.f, 0.f);
glDrawArrays(GL_TRIANGLE_STRIP, glyph_index * 4, 4);
  
glTranslatef(0.0f, -2.0f, 0.f);
glDrawArrays(GL_TRIANGLE_STRIP, glyph_index * 4, 4);
  
// 文字描画
glTranslatef(-1.0f, 1.0f, 0.f);
glColor4f(pfont->fore[0], pfont->fore[1], pfont->fore[2], pfont->fore[3]);
glDrawArrays(GL_TRIANGLE_STRIP, glyph_index * 4, 4);