GLANG2 에서용 glanText 의 택스트 출력시 색깔 지정은 어떻게

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

Moderator: 류광

비회원

GLANG2 에서용 glanText 의 택스트 출력시 색깔 지정은 어떻게

Post by 비회원 »

색깔을 지정하고싶은데요..

glanText* 객체에 setColor 라는 함수가 있긴 한데요(인자가 .. 다 처음보는거구 찾아봐두 없구해서


참 난감하새요~~ 부탁드리옵니다~~~
eoh
Posts: 135
Joined: 2001-07-20 09:00
Location: REAL:DREAM
Contact:

Post by eoh »

2.0.0 버전에서는 글자의 색상을 지정하기 위한 맴버함수가 3가지 정의되어 있습니다.

Code: Select all

	void set_color ( ISfmtglans attrib__,
			 ISfloat r__, ISfloat g__, ISfloat b__, ISfloat a__  = 1.0 );
	void set_colori( ISfmtglans attrib__, ISdword rgba8__ );
	void set_colori( ISfmtglans attrib__,
			 ISdword r__, ISdword g__, ISdword b__, ISdword a__ = 0xFF,
			 ISdword maxvalue__ = 0xFF ) = 0;
ISfmtglans는 glan에서 상태를 지정하기위한 속성들을 정의해 놓은것이지요. 자세히는 glan.h 의 제일 처음부분에 namespace glans 속에 enum attribute_ 로서 정의되어 있지요. 그중에 색상과 관련되어 있는 속성은
  • text
    background
입니다. text는 글자 자체의 색, background는 아마도 배경의 색일것입니다. (..기억이 잘.. ;ㅁ;)

이 속성은 3가지 함수에 모두 사용되어지는데요, 각각의 함수의 차이는

set_color : float 형 r,g,b,a 요소를 인자로 받습니다.
set_colori : int 형 r,g,b,a 요소를 인자로 받습니다.

특히 void set_colori( ISfmtglans attrib__, ISdword rgba8__ ) 의 경우에는 ISdword rgba8__은, 4바이트 타입으로서 상위로부터 rgba 의 순서대로 1바이트씩 저장하는 형태입니다. 실제 구조에서는 엔디안의 문제가 생기는데, 여기서는 단순한 연산으로 가장 상위의 비트로부터 8비트씩 r, g, b, a 요소를 분리하게 됩니다..

0xFFFFFFFF 는 r, g, b, a 가 각각 0xFF 인거죠.
0x333333FF 는 r, g, b 가 각각 0x33에, a 가 0xFF 입니다.


각각의 요소를 ISdword로 받는 void set_colori ( ISfmtglans attrib__, ISdword r__, ISdword g__, ISdword b__, ISdword a__, ISdword maxvalue__ ) 의 경우에는 각 요소의 최대치를 maxvalue__로 하여 r, g, b, a 요소가 [0, maxvalue__] 까지의 구간속에서 위치함을 의미합니다. 따라서 기본값으로 0xFF가 지정되어 있는경우엔 r, g, b, a 요소가 1바이트인것이지요..
Post Reply