GdkPixbuf и HiDPI

Я пишу кроссплатформенное приложение C ++ с использованием GTK +, но все изображения, которые я добавляю в свое приложение, размыты на экране HiDPI (в данном случае MacBook Pro Retina Display). Другие элементы GTK +, такие как кнопки, текст, древовидная структура и т. Д., А также стандартные значки GTK очень четкие и отлично смотрятся на дисплее.

Одним из примеров является PNG, который я добавляю в окно своего приложения. Это 128x128px, и когда я добавляю его в окно, я уменьшаю его до 64×64:

GdkPixbuf *pix_buf, *logo_buf;
GtkWidget *logo;

pix_buf = gdk_pixbuf_new_from_file("logo128.png", NULL);
logo_buf = gdk_pixbuf_scale_simple(pix_buf, 64, 64, GDK_INTERP_BILINEAR)
logo = gtk_image_new_from_pixbuf(logo_buf);

g_object_unref(pix_buf);
g_object_unref(logo_buf);

gtk_grid_attach(GTK_GRID(grid), logo, 0, 0, 1, 2);

При попытке отладки я использовал функцию gdk_window_get_scale_factor (GdkWindow *window); проверить масштабный коэффициент. Он всегда возвращает 1 независимо от того, что на самом деле представляет дисплей, что говорит мне, что GTK не знает, каков масштабный коэффициент, даже если другие элементы четкие.

У кого-нибудь есть опыт решения этой проблемы? Как я могу заставить его отображать четкое изображение?

Заранее спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]