{"id":32,"date":"2005-05-07T06:37:00","date_gmt":"2005-05-07T06:37:00","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=32"},"modified":"2017-01-29T20:26:33","modified_gmt":"2017-01-29T11:26:33","slug":"opengl-tutorial-output-string-on-the-screenoutline","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=32","title":{"rendered":"[OpenGL Tutorial] Output String on the Screen(Outline)"},"content":{"rendered":"<p><P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1309282497.jpg\" class=\"alignleft\" width=\"200\" height=\"150\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/>\uc9c0\ub09c\uc7a5\uc5d0\uc11c\ub294 \ube44\ud2b8\ub9f5\uc73c\ub85c \ubb38\uc790\ub97c \ucd9c\ub825\ud588\uc5c8\ub2e4. \uc774\ubc88\uc5d0\ub294 \ubb38\uc790\ub97c \uac1d\uccb4\ub85c \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95\uc778 Outline Font\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d \ud55c\ub2e4. \uc774 \uc7a5\uc758 \uc2dc\uc791\uc740 7\uc7a5\uc758 \uc18c\uc2a4 \ucf54\ub4dc\uc5d0\uc11c \uc2dc\uc791\ud55c\ub2e4.<\/P><P>\uc804\uc5ed \ubcc0\uc218\ub97c 2\uac1c \ucd94\uac00\ud558\uc790. Outline Font\ub85c\uc368 \ubb38\uc790\ub97c \ucc98\ub9ac\ud558\uba74 \uc77c\ubc18 \uac1d\uccb4\ucc98\ub7fc \ud68c\uc804\uc774 \uac00\ub2a5\ud558\ub2e4. \uc774\ub97c \ud655\uc778\ud574 \ubcf4\uae30 \uc704\ud574 \ubb38\uc790\ub97c \ud68c\uc804\uc2dc\ud0a4\ub294\ub370 \uc0ac\uc6a9\ud558\ub294 \ubcc0\uc218 \ud558\ub098\uc640 Outline Font \ubb38\uc790\ub4e4\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ubcc0\uc218 \ubcc0\uc218\uc778 gmf\uc744 \uc120\uc5b8\ud55c\ub2e4. \ubc30\uc5f4\uc774 96\uac1c\uc778 \uc774\uc720\ub294 ASCII\uc758 \ucf54\ub4dc\uc911\uc5d0\uc11c \uc22b\uc790, \uc601\ubb38\uc790\uc640 \ud2b9\uc218\ubb38\uc790\uc5d0 \ub300\ud574 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uae30 \uc704\ud568\uc774\ub2e4.<\/P><\/p>\n<pre>GLuint base;\r\nGLfloat rot = 0.0f; \/\/ \r\nGLYPHMETRICSFLOAT gmf[96]; \/\/ <New><\/pre>\n<p>\uc774\uc81c \ud574\uc57c \ud560 \uc77c\uc740 \ubaa8\ub4e0 \ubb38\uc790\ub4e4\uc744 Outline Font\ub85c\uc368 \ub9ac\uc2a4\ud2b8\uc5d0 \ub4f1\ub85d \uc800\uc7a5\ud558\ub294 \uac83\uc774\ub2e4. \uc989, OpenGL\uc5d0\uc11c \uc0ac\uc6a9\ud560\uc218 \uc788\ub3c4\ub85d \ud3f0\ud2b8\uc758 \ub9ac\uc2a4\ud2b8\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud55c\ub2e4. \ub2e4\uc74c\uc758 \ucf54\ub4dc\uac00 \ud3f0\ud2b8\uc758 \ub9ac\uc2a4\ud2b8\ub97c \uc0dd\uc131\ud558\ub294 \ucf54\ub4dc\uc774\ub2e4.<\/p>\n<pre>GLvoid BuildFont(GLvoid)\r\n{\r\n    HFONT font;\r\n    base = glGenLists(96);\r\n    font = CreateFont(-12,\r\n                0,\r\n                0,\r\n                0,\r\n                FW_BOLD,\r\n                FALSE,\r\n                FALSE,\r\n                FALSE,\r\n                HANGUL_CHARSET,  \/\/ <1-1>\r\n                OUT_TT_PRECIS,\r\n                CLIP_DEFAULT_PRECIS,\r\n                ANTIALIASED_QUALITY,\r\n                FF_DONTCARE|DEFAULT_PITCH,\r\n                \"Comic Sans MS\"); \/\/ <1-2>\r\n   \r\n    SelectObject(hDC, font);\r\n   \r\n    wglUseFontOutlines(hDC,  \/\/ <2-1>\r\n                32, \/\/ <2-2>\r\n                96, \/\/ <2-3>\r\n                base, \/\/ <2-4>\r\n                0.1f, \/\/ <2-5>\r\n                0.5f, \/\/ <2-6>\r\n                WGL_FONT_POLYGONS, \/\/ <2-7>\r\n                gmf); \/\/ <2-8>\r\n}<\/pre>\n<p>\uc9c0\ub09c\uc7a5\uc5d0\uc11c \uc124\uba85\ud588\ub358 \uac83\uc740 \uc81c\uc678\ud558\uace0 \uc0c8\ub85c\uc6b4 \uac83\ub9cc\uc744 \uc124\uba85\ud558\ub3c4\ub85d \ud558\uaca0\ub2e4.<br \/>\n<P><1-1>\uc758 \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uc790. \uae30\uc5b5\ub825\uc774 \uc88b\uc740 \ub3c5\uc790\ub294 \uc9c0\ub09c\uc7a5\uc5d0\uc11c\uc758 <1-1>\uc758 \ucf54\ub4dc\uac00 \ubb34\uc5c7\uc774\uc5c8\ub294\uc9c0 \uae30\uc5b5\ud558\ub294\uac00? ANSI_CHARSET\uc774\uc600\ub2e4. \ud558\uc9c0\ub9cc \ud55c\uae00 \uc708\ub3c4\uc6b0\uc988\uc5d0\uc11c\ub294 Outline Font\ub97c \uc0ac\uc6a9\ud560\ub54c ANSI_CHARSET\ub85c \ud574\uc8fc\uba74 Outline Font\ub97c \uc5bb\uc744\uc218\uc5c6\ub2e4. \uc6d0\ud558\ub294 \uac83\uc744 \uc5bb\uae30\uc704\ud574\uc11c\ub294 HANGUL_CHARSET\uc73c\ub85c \uc9c0\uc815\ud574 \uc8fc\uc5b4\uc57c \ud55c\ub2e4.<\/P><P><1-2>\uc5d0\uc11c \ud3f0\ud2b8\ub97c \ubc14\uafb8\uc5c8\ub2e4. \uc9c0\ub09c\uc7a5\uacfc \uac19\uc774 \ud3f0\ud2b8\ub97c \ubc14\uafb8\uc9c0 \uc54a\uc544\ub3c4 \uc0c1\uad00\uc5c6\ub2e4.<\/P><P>\uc774\uc81c \uac00\uc7a5 \ud575\uc2ec\uc774 \ub418\ub294 \uc2e4\uc81c Outline Font\uc758 \ub9ac\uc2a4\ud2b8\ub97c \uc5bb\uc5b4\uc624\ub294 \ud568\uc218\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d \ud558\uaca0\ub294\ub370 \ubc14\ub85c <2-1>\uc5d0\uc11c \ubcf4\uc774\ub294 wglUseFontOutlines\uac00 \ubc14\ub85c \uadf8\uac83\uc774\ub2e4. \ucd1d 8\uac1c\uc758 \uc778\uc790\uac00 \ud544\uc694\ud55c\ub370 \ud558\ub098 \ud558\ub098 \uc54c\uc544\ubcf4\uc790.<\/P><P><2-1> \ucf54\ub4dc\ub294 OpenGL\uacfc \uc5f0\uacb0\ub418\uc5b4 \uc788\ub294 DC\uc5d0\uc11c \ud3f0\ud2b8 \uc815\ubcf4\ub97c \uc5bb\uae30 \uc704\ud55c DC\uc758 \ud578\ub4e4\uc774\ub2e4.<\/P><P><2-2> \ucf54\ub4dc\ub294 ASCII\uc5d0\uc11c \uc2dc\uc791\ud560 \ucf54\ub4dc\uc758 \ubc88\ud638\uc774\uace0 <2-3> \ucf54\ub4dc\ub294 <2-2>\ucf54\ub4dc\uc5d0\uc11c \uc9c0\uc815\ub41c \ucf54\ub4dc\uc5d0\uc11c \uba87\uac1c\uc758 \ubb38\uc790\ub97c \uc5bb\uc744 \uac83\uc778\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uac2f\uc218\uac12\uc774\ub2e4.<\/P><P><2-4> \ucf54\ub4dc\ub294 \uc2e4\uc81c \ub9ac\uc2a4\ud2b8\ub97c \ub9cc\ub4e4\ub54c \uae30\uc900\uc774 \ub418\ub294 \uac12\uc744 \uc9c0\uc815\ud558\ub294 \uac83\uc774\ub2e4.<\/P><P><2-5> \ucf54\ub4dc\ub294 \ud3f0\ud2b8\ub85c\ubd80\ud130 \uc5bc\ub9c8\ub098 \uc815\ubc00\ud558\uac8c \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uac83\uc778\uc9c0\ub97c \ub098\ud0c0\ub0b8\ub2e4. 0.0\uac12\uc774 \uac00\uc7a5 \uc815\ub9d0\ud558\uac8c \ub9cc\ub4e4\uc218\uc788\ub2e4.<\/P><P><2-6> \ucf54\ub4dc\ub294 Z\ucd95\uc73c\ub85c \ubb38\uc790 \uac1d\uccb4\uc758 \ub450\uae68\ub97c \uc124\uc815\ud55c\ub2e4.<\/P><P><2-7> \ucf54\ub4dc\uac00 \uac00\uc9c8\uc218\uc788\ub294 \uac12\uc740 2\uac00\uc9c0\uc778\ub370 \uccab\uc9f8\ub294 WGL_FONT_POLYGONS\uc640 WGL_FONT_LINES\uc774\ub2e4. \uccab\uc9f8\ub294 \uba74\uc73c\ub85c \uad6c\uc131\ub41c \ud3f0\ud2b8 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0 \ub450\ubc88\uc9f8\ub294 \ub77c\uc778\ub9cc\uc73c\ub85c \uad6c\uc131\ub41c \ud3f0\ud2b8 \uac1d\uccb4\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/P><P><2-8> \ucf54\ub4dc\ub294 \uc2e4\uc81c \uc0dd\uc131\ub41c \uac01\uac01\uc758 \ubb38\uc790\uc5d0 \ub300\ud55c Outline \uc815\ubcf4\uac00 \uc800\uc7a5\ub418\ub294 \ubc30\uc5f4 \ubcc0\uc218\uc774\ub2e4.<\/P><P>\ub9ac\uc2a4\ud2b8\ub97c \uc0dd\uc131\ud588\ub2e4\uba74 \uc0dd\uc131\ub41c \uac83\ub4e4\uc744 \ubc18\ud658\ud558\ub294 \ud568\uc218\ub3c4 \ud544\uc694\ud558\ub2e4. \ub2e4\uc74c\uc758 \ucf54\ub4dc\uac00 \uadf8\uc640 \uac19\uc740 \uac83\uc774\ub2e4. \uc774\ubbf8 \uc9c0\ub09c\uc7a5\uc5d0\uc11c \ub9cc\ub4e4\uc5c8\uace0 \uadf8\ub300\ub85c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4.<\/P><\/p>\n<pre>GLvoid KillFont(GLvoid)\r\n{\r\n    glDeleteLists(base, 96);\r\n}<\/pre>\n<p>glDeleteLists \ud568\uc218\ub85c\uc368 \uccab\ubc88\uc7ac \uc778\uc790\ub294 \uba54\ubaa8\ub9ac \uc0c1\uc5d0\uc11c \uc81c\uac70\ud560 \ub9ac\uc2a4\ud2b8\uc758 \uae30\uc900\uac12\uc774 \uc624\uace0 \ub450\ubc88\uc9f8\ub294 \uadf8 \uae30\uc900\uc5d0\uc11c\ubd80\ud130 \uba87\uac1c\uc758 \ub9ac\uc2a4\ud2b8\ub97c \uc81c\uac70\ud560 \uac83\uc778\uc9c0\ub97c \ub098\ud0c0\ub0b8\ub2e4.<br \/>\n<P>\uc774\uc81c \uc0ac\uc6a9\ud560 \ud3f0\ud2b8 \ub9ac\uc2a4\ud2b8\uac00 \uc644\ubcbd\ud558\uac8c \uc900\ube44\uac00 \ub418\uc5c8\ub2e4. \uc774\uc81c \uc774 \uc900\ube44\ub41c \ub9ac\uc2a4\ud2b8\ub97c \ud654\uba74\uc0c1\uc5d0 \ucc0d\uc744 \uc218 \uc788\ub294 \ud568\uc218\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uc790. \ucd9c\ub825\ud55c \ubb3c\uc790\uc5f4\uc744 \uc778\uc790\ub85c \ubc1b\uc544 \ucd9c\ub825\ud574 \uc8fc\ub294 \ud568\uc218\uc774\ub2e4. \uc774\ubbf8 \uc9c0\ub09c\uc7a5\uc5d0\uc11c \ub9cc\ub4e4\uc5c8\uace0 \uadf8\ub300\ub85c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4.<\/P><\/p>\n<pre>GLvoid glPrint(const char *text)\r\n{\r\n    glPushAttrib(GL_LIST_BIT); \/\/<1>\r\n    glListBase(base - 32); \/\/<2>\r\n    glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); \/\/<3>\r\n    glPopAttrib(); \/\/<4>\r\n}<\/pre>\n<p>\uc790! \uc774\uc81c \ud654\uba74\uc0c1\uc5d0 \uae00\uc790\ub97c \uadf8\ub824\uc8fc\ub294 \ud568\uc218\uae4c\uc9c0 \uc900\ube44\uac00 \ub418\uc5c8\ub2e4. \uc774\uc81c \uc704\uc5d0\uc11c \ub9cc\ub4e0 \uac83\ub4e4\uc744 \uc0ac\uc6a9\ub9cc \ud558\uba74 \ub418\uaca0\ub2e4. \uba3c\uc800 initGL(GLvoid) \ud568\uc218\uc5d0 \uc704\uc5d0\uc11c \ub9cc\ub4e0 BuildFont \ud568\uc218\ub97c \ucd94\uac00\ud568\uc73c\ub85c\uc368 \ud3f0\ud2b8 \ub9ac\uc2a4\ud2b8\ub97c \uc0dd\uc131\ud558\ub3c4\ub85d \ud55c\ub2e4. <\/p>\n<pre>int InitGL(GLvoid)\r\n{\r\n    glShadeModel(GL_SMOOTH);\r\n    glClearColor(0.0f, 0.0f, 0.0f, 0.5f);\r\n    glClearDepth(1.0f);\r\n    glEnable(GL_DEPTH_TEST);\r\n    glDepthFunc(GL_LEQUAL);\r\n    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);\r\n   \r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NEW \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n    BuildFont();\r\n    glEnable(GL_LIGHTING); \/\/ <1>\r\n    glEnable(GL_LIGHT0); \/\/ <2>\r\n    glEnable(GL_COLOR_MATERIAL); \/\/ <3>\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NEW \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n   \r\n    return TRUE;\r\n}<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub97c \ubcf4\uba74 \uc0c8\ub86d\uac8c \ucd94\uac00\ub41c \ucf54\ub4dc\uac00 3\uac1c\uc774\ub2e4. <1>\uacfc <2>\ub294 \ube5b\uc744 \ucf1c\ub294 \ucf54\ub4dc\uc774\uace0 <3>\uc740 \uc0c9\uc0c1\uc744 \ucd94\uc801\ud558\uc5ec \ubb3c\uccb4\uc758 \uc7ac\uc9c8\uc744 \uc124\uc815\ud558\ub294 \ucf54\ub4dc\uc774\ub2e4. \uc774 \ucf54\ub4dc\uac00 \uc0c8\ub85c\uc6b4 \ub3c5\uc790\ub294 \ube5b\uacfc \uc7ac\uc9c8\uc5d0 \ub300\ud55c \uc7a5\uc744 \ubcf4\uae30 \ubc14\ub780\ub2e4.<br \/>\n<P>\uadf8\ub9ac\uace0 WinProc \ud568\uc218\uc758 WM_CLOSE\ub97c \ucc98\ub9ac\ud558\ub294 \ubd80\ubd84(\uc774 \ubd80\ubd84\uc740 \ud504\ub85c\uadf8\ub7a8\uc774 \uc885\ub8cc\ub420\ub54c \uc2e4\ud589\ub41c\ub2e4)\uc5d0\uc11c KillFont \ud568\uc218\ub97c \ucd94\uac00\ud558\uc5ec\uc57c \ud558\ub294\ub370 \uc774\ubbf8 \uc9c0\ub09c\uc7a5\uc5d0\uc11c \ucd94\uac00\ud558\uc600\ub2e4.<\/P><\/p>\n<pre>case WM_CLOSE:\r\n{\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NEW \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n    KillFont();\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NEW \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n    PostQuitMessage(0);\r\n\r\n    return 0;\r\n}<\/pre>\n<p>\uc790 \uc774\uc81c \ubb38\uc790\uc5f4\uc744 \ud654\uba74\uc0c1\uc5d0 \uadf8\ub824\uc8fc\ub294 \uac83\ub9cc \ub0a8\uc558\ub2e4. \ubb34\uc5b8\uac00\ub97c \uadf8\ub824\uc8fc\ub294 \ucf54\ub4dc\ub294 \ud56d\uc0c1 DrawGLScene(GLvoid) \ubd80\uc5d0 \uc704\uce58\ud588\uace0 \uc774\ubc88\uc5d0\ub3c4 \uc5ed\uc2dc \ub9c8\ucc2c\uac00\uc9c0\uc774\ub2e4. \ub2e4\uc74c\uc758 \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uc790.<\/p>\n<pre>int DrawGLScene(GLvoid)\r\n{\r\n    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r\n    glLoadIdentity();\r\n    glTranslatef(0.0f, 0.0f, -6.0f);\r\n   \r\n    glColor3f(0.90f, 0.9f, 1.0f);\r\n    glScalef(1.0f, 2.0f, 1.0f);\r\n    glRotatef(rot, 0.0f, 1.0f, 0.0f);\r\n    glTranslatef(-1.0f, -0.3f, 0.0f);\r\n    glPrint(\"Dip2K\");\r\n    rot += 1.0f;\r\n   \r\n    return TRUE;\r\n}<\/pre>\n<p>DrawGLScene \ud568\uc218\uc758 \uad6c\ud604\uc740 \ubaa8\ub450 \uc0c8\ub86d\uac8c \uc791\uc131\ub418\uc5b4\uc84c\ub2e4.<br \/>\n<P>\uae30\ubcf8 \ud750\ub984\uc740 \uc605\uc740 \ud30c\ub791\uc0c9\uc73c\ub85c \uc7ac\uc9c8\uc744 \uc124\uc815\ud558\uba70 Y\ucd95\uc73c\ub85c \ubb3c\uccb4(\ubb38\uc790)\ub97c \ub298\ub838\ub2e4. \uadf8\ub9ac\uace0 \ub9e4 \uc21c\uac04\ub9c8\ub2e4 Y\ucd95\uc73c\ub85c 1\ub3c4\uc529 \ud68c\uc804\uc2dc\ud0a4\ub294 \uc5d0\ub2c8\uba54\uc774\uc158\uc73c\ub85c\uc368 \ubd84\uba85\ud558\uac8c \ubb38\uc790\uc758 3\ucc28\uc6d0\uc784\uc77c \ud655\uc778\ud55c\ub2e4. \ube44\ud2b8\ub9f5\uc758 \uacbd\uc6b0 \ud2b9\ubcc4\ud558\uac8c \ubb38\uc790\uc758 \uc704\uce58\ub97c \uc9c0\uc815\ud558\ub294 \ud568\uc218\uac00 \ub530\ub85c \uc788\uc5c8\ub358\ub370 \ubc18\ud574\uc11c Outline Font\ub294 \ub2e8\uc9c0 \uac1d\uccb4\uc774\ubbc0\ub85c \ub530\ub85c \uadf8\ub7f4 \ud544\uc694\uac00 \uc5c6\ub2e4.<\/P><P>\ub2e4\uc74c\uc740 \ucd5c\uc885\uc801\uc778 \uc774 \ud504\ub85c\uadf8\ub7a8\uc758 \uc2e4\ud589 \uacb0\uacfc\uc774\ub2e4.<\/P><br \/>\n<P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1256133351.jpg\" class=\"aligncenter\" width=\"452\" height=\"367\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><BR>\uc5b4\ub5a4\uac00? \ub4dc\ub514\uc5b4 \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \uacb0\uacfc\ub97c \uc5bb\uc5c8\ub2e4.<\/p>\n<p style='text-align:center'><a href=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1376394384.zip\"><img width='64' src='\/images\/download.svg' \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc9c0\ub09c\uc7a5\uc5d0\uc11c\ub294 \ube44\ud2b8\ub9f5\uc73c\ub85c \ubb38\uc790\ub97c \ucd9c\ub825\ud588\uc5c8\ub2e4. \uc774\ubc88\uc5d0\ub294 \ubb38\uc790\ub97c \uac1d\uccb4\ub85c \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95\uc778 Outline Font\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d \ud55c\ub2e4. \uc774 \uc7a5\uc758 \uc2dc\uc791\uc740 7\uc7a5\uc758 \uc18c\uc2a4 \ucf54\ub4dc\uc5d0\uc11c \uc2dc\uc791\ud55c\ub2e4.\uc804\uc5ed \ubcc0\uc218\ub97c 2\uac1c \ucd94\uac00\ud558\uc790. Outline Font\ub85c\uc368 \ubb38\uc790\ub97c \ucc98\ub9ac\ud558\uba74 \uc77c\ubc18 \uac1d\uccb4\ucc98\ub7fc \ud68c\uc804\uc774 \uac00\ub2a5\ud558\ub2e4. \uc774\ub97c \ud655\uc778\ud574 \ubcf4\uae30 \uc704\ud574 \ubb38\uc790\ub97c \ud68c\uc804\uc2dc\ud0a4\ub294\ub370 \uc0ac\uc6a9\ud558\ub294 \ubcc0\uc218 \ud558\ub098\uc640 Outline Font \ubb38\uc790\ub4e4\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ubcc0\uc218 \ubcc0\uc218\uc778 gmf\uc744 \uc120\uc5b8\ud55c\ub2e4. \ubc30\uc5f4\uc774 96\uac1c\uc778 \uc774\uc720\ub294 ASCII\uc758 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=32\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[OpenGL Tutorial] Output String on the Screen(Outline)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[3],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-opengl","tag-opengl"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32"}],"version-history":[{"count":4,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":3834,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/32\/revisions\/3834"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}