Gráficos en C con X11

/* Aplicación simple que usa Xlib, una ventana con un cuadrado negro en su interior */ #include <X11/Xlib.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { Display *d; Window w; XEvent e; char *msg = "¡Hola, Mundo!"; int s; /* abrir la conexión con el servidor gráfico*/ d = XOpenDisplay(NULL); if (d == NULL) { fprintf(stderr, "No se pudo conectar al servidor gráfico\n"); exit(1); } s = DefaultScreen(d); /* crea la ventana */ w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 100, 1, BlackPixel(d, s), WhitePixel(d, s)); /* selecciona la clase de eventos que interesan */ XSelectInput(d, w, ExposureMask | KeyPressMask); /* muestra la ventana */ XMapWindow(d, w); /* lazo de eventos */ while (1) { XNextEvent(d, &e); /* dibujar o redibujar la ventana */ if (e.type == Expose) { XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10); XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg)); } /* salir si se presionó una tecla */ if (e.type == KeyPress) break; } /* cerrar la conexión al servidor gráfico */ XCloseDisplay(d); return 0; }

1 Response

Write a comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.