GLAN 2.0.4 (2006/0702)

OpenGL 한글 (입)출력 라이브러리 "glan"에 대한 포럼입니다.

Moderator: 류광

eoh
Posts: 135
Joined: 2001-07-20 09:00
Location: REAL:DREAM
Contact:

GLAN 2.0.4 (2006/0702)

Post by eoh »

2.0.4 가 공개되었습니다.
STLport를 제거하고 컴파일해보았습니다. GCC 3.4.4 에서 문제없이 컴파일이 가능했지만,
VC++ 에서는 확인해보지 못했습니다. 혹시 문제가 생기면 알려주시면 감사하겠습니다..


테스트는.. 일단 devC++/GCC 3.4.4 mingw 에서 이루어집니다.
필요한 경우, freetype 등의 연결을 시켜주세요.
(혹은 include/glan_fimp_freetype.h 파일을 사용하지 않으시면, 분리가능합니다.)

GLAN 2.0.4

---------------------
2.0.3 이 공개되었습니다.
한글비트맵폰트에서의 처리범위 지정 문제가 수정되었습니다.

---------------------
2.0.2 가 공개되었습니다.
2.0.1에서 생긴 문제를 수정하였습니다.

---------------------
2.0.1 이 공개되었습니다.
일단 원하신대로, 그 차지하는 공간을 위한 함수를 덧붙여 보았습니다.

다음 메이저 버전엔 stlport 없어도 됩니다. (언제 나오려나..)

---------------------
2.0.0 이 공개되었습니다.
자세한 설명은.. 아직 문서화 부족으로;
일단 설명은 readme.txt 정도로;

VC++.net 2003 과 mingw 3.3.1 + stlport 에서 테스트되었습니다.
Freetype 2.1.8 을 이용하는 것도 가능합니다.

컴파일된 라이브러리 파일은 소스포지에서만 받으실 수 있습니다.
카페에는 용량관계상 등록을 실패해서.. ;;


http://gpgstudy.cafe24.com/cafe24board/ ... &mode=view
https://sourceforge.net/projects/glaning
Last edited by eoh on 2006-07-02 01:21, edited 7 times in total.
chobo

Post by chobo »

헉.

초보인 저로써는 빌드조차 난관이군요 ㅜㅜ

간단한 과정이라도 설명해주심..
eoh
Posts: 135
Joined: 2001-07-20 09:00
Location: REAL:DREAM
Contact:

Post by eoh »

빌드 하기 위하여..

VC++.net 2003 의 경우

라이브러리 - GLAN2.sln 에서 GLAN2 프로젝트로 간단히 컴파일가능합니다.
그러나 예제를 컴파일하기 위해서는, 예제에서는 GLAN2(glan2d.lib)의 라이브러리파일과
freetype(freetype218mt.lib) 라는 라이브러리를 프로젝트속에 직접 넣어서 링크하고 있으므로,
GLAN2 라이브러리의 컴파일후 생기는 라이브러리로 대체하여야 할것입니다..
(아마도 VC에서 상대적인 주소로 저장된다면 문제 없겠지만, 절대주소로 저장이 될것 같아서요.)

freetype 의 경우에는 www.freetype.org 에서 구하실 수 있습니다.
만일 freetype 를 구하기 귀찮으시거나, 사용하지 않으실분은, 예제인 Textdraw 프로젝트에서
main.cpp 중, glan_fimp_freetype.h 의 인클루딩(줄28)을 제거하시기 바랍니다..
그리고, 삭제전의 261번째 줄의 glanFont* font1 = new IS::freetype("georgia.ttf");
를 제거하시고 그 아래의 비트맵 글꼴을 읽는것을 활성화 시켜주십시오..

freetype 에 VC++ 6.0과 .net 2003 에서 컴파일 가능한 프로젝트 파일들이 있습니다.
저같은경우에 mingw 용으로 컴파일하고 했는데, 엉뚱한 헤더를 포함시키려하는 에러가 나더군요.
그 헤더파일의 include 를 주석처리하니 해결되더군요.


DEV C++ 혹은 mingw 의 경우

VC++에 비해서 헤더파일, 라이브러리 링크의 경로가 절대경로로 저장되는듯 해서
조금 귀찮은 절차가 필요로 할것으로 예상됩니다..
특히 mingw 만으로는 한술더떠서 makefile 을 직접 만드셔야 할것입니다..;;
그래서 둘중의 하나를 선택하라면 makefile 을 자동으로 생성해주는 dev-c++을 추천합니다.
따라서, 이 설명은 dev-c++ 만을 기준으로 하겠습니다.

라이브러리의 빌드는 GLAN2.dev 프로젝트로 가능합니다.
다만, STLport 를 기준으로 사용하였으므로, mingw자체의 STL 로는 컴파일이 실패할것입니다...
따라서, STLport를 stlport.com 에서 구하셔서 설치해두시기 바랍니다..
(이 문제에 대해서는 이미 설명되어 있는 글이 있는것으로 알고 있습니다.)

프로젝트 옵션에서 빌드과정에 사용되는 include 경로에 대해서는,
프로젝트의 설정에서 자신의 환경에 맞는 경로로 바꾸어주세요.
이때에 freetype 와는 전혀 상관없습니다.. (그외의 라이브러리의 링크도..)

예제는 sample/textdraw/textdraw.dev 프로젝트로 빌드 가능합니다.
그 프로젝트를 불러들이고난뒤에 컴파일을 할때에는,
GLAN2의 include 디렉토리가 컴파일환경에 등록되어 있어야 합니다.
헤더파일들을 <> 로 찾기 때문이죠.. 만일 귀찮으시면 main.cpp 에서
헤더파일의 include 파일들의 위치를 상대경로나 절대경로로 고치시길;
(역시 환경쪽을 고치는게 편하다고 생각합니다;)

그리고 예제에서 freetype 의 링크제거에 대해서는 VC++.net 2003 의 경우를 참고하여 주세요.
만일 freetype를 빌드하고자 하신다면, freetype 에 포함되어 있는 설명문대로..
하시면 됩니다. 간단히 소개하자면, MINGW 와 같이 만들어 지고 있는 MSYS 환경에서
configure 해주시고 make 해주시면 간단히 빌드될겁니다...
(그 이외의 방법으로는, 상당히 귀찮을것으로 알고 있습니다.)


툴의 설명서가 아닌지라.. 일단 그쪽의 설명은 자제하였습니다만..
이것저것 끌어다 쓰는 라이브러리들에 대해서 에러가 날것이라고 생각합니다..
제가 재배포를 하기도 뭣하고.. 해서 일단은 포함하지 않았습니다만..
제가 컴파일한 라이브러리 및, 최소한으로 필요한 헤더파일들,
그리고 예제의 실행파일만 따로 올려두도록 하겠습니다..
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

호일님 dev-c++ 버전 뭐 쓰세요.... 최근 버전에서는 파일 정보가 상대 경로로 지정되거든요.

그리고 mingw에서 굳이 STLport를 쓸 필요가 있을지 모르겠습니다.

dev-C++ 최신 버전에서 STLport 없이 빌드하는 걸 목표로 한 번 해보겠습니다. 잘 되면 DevPak으로 만들어 볼게요.
eoh
Posts: 135
Joined: 2001-07-20 09:00
Location: REAL:DREAM
Contact:

mingw에서 stlport...

Post by eoh »

네.. 저도 STLport없이 만들어 보려고 했었습니다만..
현재의 mingw 에 포함되어 있는 libstdc++ 라이브러리 에는 wchar_t 에 대한 wiostream 들과 wstring 이 들어있지 않은관계로.. 링크시에 에러가 납니다.. 물론 헤더파일에는 그 정의가 포함되어 있지만요. 그 부분에 대해서 mingw의 포럼에서 검색해본 결과로는, libstdc++ 을 wchar_t 에 관련하여 포함시키나(그러나 로케일의 문제로 불가능하다는군요), STLport 같은 외부 라이브러리를 사용하라고 하더군요...
(http://sourceforge.net/mailarchive/mess ... id=7046369으로부터..)

고로 STLport 는 wchar_t 의 필요성때문에 포함하게 된것입니다..
자체적으로 어느정도 로케일같은것의 구현을 하고 있습니다만.. 그부분은 어디까지나 코드와 코드사이의 변환으로서, wchar_t 에 대한 구현은 임시적인 부분이죠.. 음.. 간단히는 독자적인 string 클래스를 사용함으로서 분리는 해 낼 수 있을것이라 생각합니다만... stl 의 wstring 과는 호환성이 사라지게 되는군요.. 아마도 그것을 염려하여 STLport 까지 사용하였던것으로 생각됩니다.. (오래전 일이라;; ) 그렇지만 그 호환성에 대해서는 좀더 논의와 생각을 해볼 필요가 있을것 같네요.


일부는 절대링크가 아닐까 싶습니다..
freetype 라거나 stlport 를 링크시켜놓은 경로같은것은 말이죠..
(제가 mingw 에 합쳐놓은 상태가 아니고 직접 경로를 지정해 놓아서...)
eoh
Posts: 135
Joined: 2001-07-20 09:00
Location: REAL:DREAM
Contact:

Post by eoh »

2.0.2 작업을 하다가 Textdraw 예제를 UTF8형식으로 저장을 하였더니, GCC 에서 더이상 U_를 사용하지 않아도 문제없이 한글이 표시 되더군요. 이로서 별다른 문제없이 많은 부분의 삭제(..)가 가능해질것 같기도합니다.

일단 예제는 GCC에서 컴파일이 되도록 수정하였습니다만, VisualC++에서는 될런지 모르겠네요. (2003에서는 되었던것 같습니다만.. 수정이 필요할런지는 모르겠네요.)
비회원

초보라서 죄송한데..

Post by 비회원 »

어떻게 어떻게 라이브러리재컴파일링크고치고해서 샘플예제 텍스트드로우 실행은 잘되는데요

닫으면 오류가 발생해요. 메모리릭이 있는거같은데..

'Win32 스레드' (0x3cc) 스레드가 종료되었습니다(코드: 0 (0x0)).
'Win32 스레드' (0x121c) 스레드가 종료되었습니다(코드: 0 (0x0)).
'Win32 스레드' (0x1494) 스레드가 종료되었습니다(코드: 0 (0x0)).
'Textdraw.exe': 'C:\WINDOWS\system32\mcd32.dll' 로드
'Textdraw.exe': 'C:\WINDOWS\system32\mcd32.dll' 언로드
'Win32 스레드' (0xd4) 스레드가 종료되었습니다(코드: -1073741510 (0xc000013a)).
'Win32 스레드' (0x25c) 스레드가 종료되었습니다(코드: -1073741510 (0xc000013a)).
'Win32 스레드' (0x1160) 스레드가 종료되었습니다(코드: -1073741510 (0xc000013a)).
Textdraw.exe의 0x1000156e에 첫째 예외가 있습니다. 0xC0000005: 0x011b1ea0 위치를 읽는 동안 액세스 위반이 발생했습니다.
Textdraw.exe의 0x1000156e에 첫째 예외가 있습니다. 0xC0000005: 0x011f1ea0 위치를 읽는 동안 액세스 위반이 발생했습니다.
Textdraw.exe의 0x1000156e에 첫째 예외가 있습니다. 0xC0000005: 0x01231ea0 위치를 읽는 동안 액세스 위반이 발생했습니다.
Textdraw.exe의 0x1000156e에 첫째 예외가 있습니다. 0xC0000005: 0x01271ea0 위치를 읽는 동안 액세스 위반이 발생했습니다.
Textdraw.exe의 0x1000156e에 첫째 예외가 있습니다. 0xC0000005: 0x012b1ea0 위치를 읽는 동안 액세스 위반이 발생했습니다.
Textdraw.exe의 0x1000156e에 첫째 예외가 있습니다. 0xC0000005: 0x012f1ea0 위치를 읽는 동안 액세스 위반이 발생했습니다.
Textdraw.exe의 0x7c93e4ff에 첫째 예외가 있습니다. 0xC0000008: An invalid handle was specified
'[2928] Textdraw.exe: 네이티브' 프로그램이 종료되었습니다(코드: 0 (0x0)).

이렇게 뜨면서 free.c에 있는 힙프리로 가거든요?
뭐가 잘못일까요 ㅠ_ㅠ
Post Reply