Замените Каир полностью на vulkan/skia для рендеринга в приложении GTK3, но операции рисования проваливаются тихо. />
[*] Успешно настроить устройство Vulkan и создать контекст < /code> (для требований к Skia). < /li>
< /ul>
< /li>
x11 Integration: < /strong>
Следуя этому посту, я создал vksurface. рендеринги. Настройка Skia для рендеринга через Vulkan, в окне GTK не появляется видимый выход. Код ниже работает без ошибок, но ничего не рисует.
Попытка кода:
Код: Выделить всё
static gboolean on_source_image_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data) {
TileGridUI *ui = (TileGridUI *)user_data;
render_data_t* state = render;
// Get widget dimensions
if (!draw.update_image_grid_container_drawing) {
dimensions.width = gtk_widget_get_allocated_width(widget);
dimensions.height = gtk_widget_get_allocated_height(widget);
GtkAllocation allocation;
gtk_widget_get_allocation(widget, &allocation);
dimensions.x = allocation.x;
dimensions.y = allocation.y;
draw.update_image_grid_container_drawing = TRUE;
}
// Configure Skia paints
SkPaint fillPaint;
fillPaint.setColor(SkColorSetARGB(0xDD, 0xDB, 0xDB, 0xDB)); // Semi-transparent white
// Create SkSurface (Vulkan-backed)
SkImageInfo info = SkImageInfo::MakeN32Premul(dimensions.width, dimensions.height);
sk_sp gpuSurface = SkSurfaces::RenderTarget(
context.get(), skgpu::Budgeted::kNo, info
);
if (!gpuSurface) {
SkDebugf("Failed to create SkSurface\n");
return FALSE;
}
// Draw a rectangle (expected: white fill, but nothing appears)
SkCanvas* gpuCanvas = gpuSurface->getCanvas();
gpuCanvas->drawRect(SkRect::MakeXYWH(dimensions.x, dimensions.y, dimensions.width, dimensions.height), fillPaint);
// Flush Vulkan commands
context->flush();
context->submit();
return TRUE;
}
без ошибок , но не вывод рендеринга. Но не используется - это проблема? Ясно? />
Есть ли отсутствующие шаги (например, представление вульканской очередь) после контекста-> prepect () ? /> Форумы Skia-discuss /khronos (без разрешения) < /li>
< /ul>
Любое руководство по мощности GTK, Vulkan и Skia будет высоко оценено! < /p>
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-skia-cpp
Мобильная версия