Xlib
Xlib는 C 프로그래밍 언어로 작성된 X 윈도 시스템 프로토콜 클라이언트 라이브러리이다. X 서버와 상호 작용하는 함수들을 포함하고 있다. 이 함수들은 프로그래머들이 통신 프로토콜을 자세히 모르더라도 프로그램을 작성할 수 있게 도와 준다. Xlib을 직접 사용하는 응용 프로그램들은 드문 편이지만, 대개 위젯 툴킷을 제공하기 위해 Xlib 함수들을 사용하는 다른 라이브러리들을 이용하는 편이다:
- 인트린식스 (Xt)
- 아테나 위젯 집합 (Xaw)
- 모티프
- FLTK
- GTK+
- Qt (X11 버전)
- Tk
Xlib은 1985년 즈음에 출현했으며 현재 수많은 유닉스 계열 운영 체제의 GUI에 사용된다. XCB 라이브러리는 Xlib을 대체할 목적으로 만들어진 라이브러리이다. 아직까지 Xlib이 널리 쓰이고 있으나, 오늘날 Xlib에서 구현하는 것들은 낮은 수준의 전송 계층으로서 XCB를 대신 이용할 수 있다.
Categories
Functions
Simple example
#include <X11/Xlib.h>
int main()
{
Display * d;
d = XOpenDisplay("localhost:0.0");
XCloseDisplay(d);
return 0;
}
그리고 다음과 같이 컴파일한다.
간단한 창 하나 만들어 봅시다
창 하나를 만들어서 표시해본다.
#include <X11/Xlib.h>
int main()
{
Display *d;
Window w, root;
d = XOpenDisplay(NULL);
root = XDefaultRootWindow(d);
w = XCreateSimpleWindow(d, root, 50, 50, 400, 300, 2, BlackPixel(d,0), WhitePixel(d,0));
XMapWindow(d, w);
XFlush(d);
getchar();
XCloseDisplay(d);
return 0;
}
이번 예제에서는 Window 라는 새로운 자료형과 XDefaultRootWindow, XCreateSimpleWindow, XMapWindow, XFlush 등의 새로운 함수들이 나오는군요. 참고로 BlackPixel()
, WhitePixel()
은 매크로다.
Favorite site
- Wikipedia (en) Xlib
- Stackoverflow - How to load bmp file using x11 window background
- Stackoverflow - how to get a screen pixel's color in x11