728x90
반응형

폰트 2

[OpenGL] 텍스트의 검은 배경 없애기

OpenGL에서 글자를 사용하기 위해서 freetype을 사용하여 폰트의 데이터를 얻는다. 이때 얻어진 데이터는 1 Channel 데이터인 것 같다. 해당 데이터로 0이 아닌 부분에서 일일이 Pixel을 찍어서 표시하면 투명한 배경의 텍스트를 얻을 수 있지만 Zoom을 할 시 발생하는 문제와 함께 엄청난 부하가 발생한다. 이를 위해서 텍스쳐를 이용하면 배경이 검은색으로 표시된다. 이를 해결하기 위해서는 RGBA의 이미지 형식을 사용하면 된다. struct Color32 { unsigned char r; unsigned char g; unsigned char b; unsigned char a; }; for (int y = 0; y < chars.height; y++) for (int x = 0; x < c..

[MFC] CEdit : 폰트와 텍스트 색깔 바꾸기 (예제)

CEdit는 기본적으로 부모의 폰트를 따라가게 된다. CEdit를 수정하는 것은 부모 창에서 조절하는 방법도 있지만 일괄로 나만의 스타일을 구축하기에는 번거롭다. 그래서 Subclassing하여 스타일을 만들어 놓으면 두고두고 쓸 수 있어 유용하다. CEdit를 Subclassing하는 CMxEdit를 만든다. 헤드 파일에 CFont 변수를 선언한 후, 생성자에 Font에 대한 데이터를 미리 넣어둔다. Set/Get 함수를 이용한 Font의 업데이트도 좋지만, 많이 사용하는 스타일로 미리 만들어 놓으면 사용 시 손이 덜가는 경우가 많다. 그리고 CEdit는 WM_CREATE 같은 이벤트가 발생하지 않기 때문에 초기화도 WM_PAINT나 WM_CTLCOLOR_REFLECT 같은 이벤트를 사용한다. Font..

코드/MFC 2021.05.19
728x90
반응형