LINUX.ORG.RU

Вопрос по Cairo


0

0

Есть библиотека Cairo 0.1.22. Есть libgdiplus (из проекта Mono). При сборке libgdiplus'а лезут ошибки насчет неверных типов аргументов при вызове Cairo'шной функции cairo_set_pattern. Лезу в соответствующие файлы - и впрямь, вместо cairo_pattern_t применяется cairo_surface_t. Судя по всему, в Cairo есть функция получения pattern'а по surface'у. Так что я везде где надо в libgdiplus делаю создание переменной нужного типа (cairo_pattern_t*) и передаю в функцию cairo_set_pattern уже ее.

Вот тут возникает вопрос. Вроде в Cairo используется подсчет использований структур типа pattern и surface, т.е. когда он доходит до нуля, соотв. экземпляр структуры убивается. Надо ли после передачи cairo_pattern_t* в функцию делать cairo_pattern_destroy или нет? В одном месте в libgdiplus, где была попытка передать cairo_surface_t* после передачи как раз стоял cairo_surface_destroy. В других местах этого не было, но особо подробно я код не анализировал, наверняка сказать не могу.

Не возникнет ли у меня либо утечек памяти, либо, наоборот, сбоев, при использовании такой "пропатченой" libgdiplus?

anonymous

Черт, уже 0.1.22 вышел. А что там нового?

Я вот кстати себе двигло для gtk написал с использованием cairo и back-end'а glitz (openGL). Так все ваще летает.

По теме: смирись. Даже на офф. сайте написано, что АПИ не устоялся и ждите подобных траблем.

anonymous
()
Ответ на: комментарий от anonymous

Что значит "смирись"?!? Это не дело.

Собственно, вопрос ведь в чем - можно ли (и нужно ли) выполнять этот pattern_destroy после передачи pattern'а в функцию set_pattern?

Черт, придется наверное лезть в реализацию этой функции.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.