2016-12-22 16 views
0

여러 색상의 그래픽 윈도우에서 선과 기호를 그려야하는 C 코드를 만듭니다. www 컨설팅 나는 컬러 맵을 사용해야한다는 것을 알았지 만, 일하게 할 수는 없습니다. 대부분의 코드는 새로운 색상 맵을 만들고 채우는 코드입니다. 그러나 기본지도만으로 충분할 것이라고 생각했기 때문에 소수의 색상 (노란색, 빨간색, 자홍색, ...) 만 있으면됩니다. 기본 색상 맵 화면 -> default_colormap에서 어떤 색상을 사용할 수 있습니까? 누군가가 창과 그래픽 컨텍스트를 작성한 다음 초록색 원을 그리거나 푸른 색 사각형을 그리는 기본 예제를 알려줄 수 있습니까?xcb 라이브러리 : 색상을 그리는 방법

답변

0

다음 코드는 내가 작업하고있는 프로젝트에서 추출한 몇 줄의 코드로 꽤 많은 수의 색으로 그립니다. 그것은 나를 위해 일합니다 - 나는 이것이 최고 또는 심지어 아주 좋은 방법이라고 말하려는 것이 아닙니다. 그러나 나는 스스로를 가르치려고 애쓰는 취미 인이며 내가 찾은 희소 한 예들 중에서 이것은 함께 자갈을 쌌어.

check this manpage for: xcb_change_gc(etc.,);

I 실제로 저장된 RGB 값의 간단한 배열을 유지 제가 그릴 uint32_ts이다. 나는 오직 내 자신 만의 만족감을 프로그램하기 때문에 이것이 매우 이식성이 있는지 전혀 모른다. 또한 색상 코딩을 발견하기 위해 몇 가지 실험을했습니다. 그게 하드웨어에 달려 있다고 확신합니다. 나는 컬러 맵의 장점은 그들이 쓸모 있다는 것, 그리고 트루 컬러가 없다면 칼라 맵은 올바른 색상으로 그릴 수 있도록 도와 줄 것이라고 생각합니다. 나는 개인적으로 알 필요가 없다. 나는 픽셀이나 채워진 사각형을 사용하여 그림을 그려 일부 수학을 탐색하는 것과 같습니다.

uint32_t rgb = 0xFFFFFFFF; // white on my system 

uint32_t mask = XCB_GC_FOREGROUND, 
      foreground_value = rgb; 

xcb_gcontext_t gc; 

gc = xcb_generate_id(connection); 
xcb_create_gc (connection, gc, drawing_buffer_pixmap, mask, &foreground_value); 

// below, the color of the gc is changed rather than making a new one 

xcb_change_gc(connection, *gc, mask, &foreground_value);