이미 20년 좀 못되게 늦은 이야기이긴 한데..새삼스레 조합형 한글이 그리워진다. -_-;;
일단 문제의 발단은 OpenGL로 한글을 출력하고자 했더니, 이게 영문이랑 같은 방식으로는 안되는 문제가 발생했다.
아니, 되긴 되는데, 윤곽선 글꼴을 전부 메모리에 올려놓고 편하게 출력하려고 했더니 엄청난 메모리를 요구한다. -_-;;
영문이야 일단 대소문자 해봐야 52자밖에 안되고, 거기에 7-bit 특수문자 몇개 더 끼워줘도 128개 정도면 화면에 출력하기 위한 글자는 충분하다(실제로 ASCII에서는 128개만 표시 문자로 사용중).
그런데 한글은 약 11000자, 현대 한글은 정확히 11172자를 사용하고 있으므로 단순계산으로는 자그만치 100배에 가까운 저장 공간이 필요한 셈이다.
윈도우에서 사용하는 윤곽선 글꼴들은 경우에 따라 다르긴 하지만, 11172자만큼의 용량을 가지고 있는 셈이다.
실제로 영문 글꼴과 한글 글꼴의 크기를 비교해보면 그 차이는 어마어마하다.
결국, OpenGL에서 영문과 같은 방식으로(즉, 몽땅 메모리에 올려놓고 하려면) 한글을 표시하려면 그만큼의 데이터를 메모리에 올려놓느라 시작할 때 열심히 메모리 잡느라 버벅댄다.
조합형 글꼴이라면 3벌...아니 3벌은 모양이 좀 안이쁘니 좀 더 많이 쓴다 하더라도 그 정도까진 아닐텐데(물론, 벌수가 늘어날수록 복잡한 문제가 생기는 건 당연하다).
애초에 폰트를 단순 윤곽선 데이터로 정의하는 것 보다는, 아예 진정한 의미의 폰트 엔진으로서 사용할 수 있게 되면 이런 문제는 조금 덜어질 수 있을텐데...(물론, 이러면 문제는 더더욱 복잡 + 심각해진다 -ㅅ-;)
어쨌든, OpenGL에서 효과적으로 한글출력을 하려면 유니코드 - 확장완성형 - UTF8 코드 변환 및 동적 폰트 데이터 할당을 고려해야 하려나보다.
뭐, 어디까지나 취미수준이니까 일단 이건 뒤로 패스.
이런거 신경 안쓰려고 4G램 꽂았잖수...:P