LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

GTK, по-моему, с третьей уже бэкендом использует Cairo

В GTK+2 тоже использовался Cairo с какой-то версии, а вот в GTK+1 был более продвинутый GDK (не в плане технологии, а в плане наличия в нём функций рисования примитивов, позже из GDK всё это уберут), через который можно было рисовать как-то вот так:

gdk_gc_set_foreground(gc, &tileColor);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset, rect, rect, -64*180, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset, rect, rect, 64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset + w + rad, rect, rect, -64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset + w + rad, rect, rect, 0, -64*90);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset, yOffset + qw, TILE_SIZE + 1, rw);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset + qw, yOffset, rw, TILE_SIZE + 1);

И кстати иксовые ресурсы, например, те же шрифты, он поддерживал из коробки:

GdkFont *font = gdk_font_load("-adobe-helvetica-medium-r-normal--20-140-100-100-p-100-iso8859-1");

Интересно, «транслировались» ли эти функции gdk_draw_X() в иксовые XDrawX(), вполне возможно тогда там и сетевая прозрачность была совсем другого уровня.

Исправление EXL, :

GTK, по-моему, с третьей уже бэкендом использует Cairo

В GTK+2 тоже использовался Cairo с какой-то версии, а вот в GTK+1 был более продвинутый GDK (не в плане технологии, а в плане наличия в нём функция рисования примитивов, позже из GDK всё это уберут), через который можно было рисовать как-то вот так:

gdk_gc_set_foreground(gc, &tileColor);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset, rect, rect, -64*180, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset, rect, rect, 64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset + w + rad, rect, rect, -64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset + w + rad, rect, rect, 0, -64*90);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset, yOffset + qw, TILE_SIZE + 1, rw);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset + qw, yOffset, rw, TILE_SIZE + 1);

И кстати иксовые ресурсы, например, те же шрифты, он поддерживал из коробки:

GdkFont *font = gdk_font_load("-adobe-helvetica-medium-r-normal--20-140-100-100-p-100-iso8859-1");

Исправление EXL, :

GTK, по-моему, с третьей уже бэкендом использует Cairo

В GTK+2 тоже использовался Cairo с какой-то версии, а вот в GTK+1 был более продвинутый GDK, через который можно было рисовать как-то вот так:

gdk_gc_set_foreground(gc, &tileColor);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset, rect, rect, -64*180, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset, rect, rect, 64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset + w + rad, rect, rect, -64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset + w + rad, rect, rect, 0, -64*90);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset, yOffset + qw, TILE_SIZE + 1, rw);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset + qw, yOffset, rw, TILE_SIZE + 1);

И кстати иксовые ресурсы, например, те же шрифты, он поддерживал из коробки:

GdkFont *font = gdk_font_load("-adobe-helvetica-medium-r-normal--20-140-100-100-p-100-iso8859-1");

Исходная версия EXL, :

GTK, по-моему, с третьей уже бэкендом использует Cairo

В GTK+2 тоже использовался Cairo с какой-то версии, а вот в GTK+1 был более продвинутый GDK, через который можно было рисовать как-то вот так:

gdk_gc_set_foreground(gc, &tileColor);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset, rect, rect, -64*180, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset, rect, rect, 64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset, yOffset + w + rad, rect, rect, -64*90, -64*90);
gdk_draw_arc(widget->window, gc, TRUE, xOffset + w + rad, yOffset + w + rad, rect, rect, 0, -64*90);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset, yOffset + qw, TILE_SIZE + 1, rw);
gdk_draw_rectangle(widget->window, gc, TRUE, xOffset + qw, yOffset, rw, TILE_SIZE + 1);

И кстати иксовые ресурсы, например, те же шрифты, он поддерживал из коробки:

GdkFont *font = gdk_font_load("-adobe-helvetica-medium-r-normal--20-140-100-100-p-100-iso8859-1");