LINUX.ORG.RU

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

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

Я смотрю в исходники Qt на их сайте. Qt вроде бы XRender*, XGetWindowAttributes сам вызывает и все копирования выполняет.

Вот fromX11Pixmap(), а вот copy()

Получается, что XSync() перед qpxmp = QPixmap... как бы бессмысленный, так как XGetGeometry, XGetWindowAttributes в коде qpixmap_x11.cpp это уже запросы с ответом и автоматом делают то, что делает XSync(). Поэтому если действительно наличие или отсутсвие XGetWindowAttributes в твоем коде влияет на результат, то получается, что иксы не успевают подготовить картинку окна в pixmap, а твоя XGetWindowAttributes задержку формировала. Вот надо выяснить симптомы.

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

Я смотрю в исходники Qt на их сайте. Qt вроде бы XRender*, XGetWindowAttributes сам вызывает и все копирования выполняет.

Вот fromX11Pixmap(), а вот copy()

Получается, что XSync() перед qpxmp = QPixmap... как бы бессмысленный, так как XGetGeometry, XGetWindowAttributes в коде qpixmap_x11.cpp это уже запросы с ответом и автоматом делают то, что делает XSync(). Поэтому если действительно наличие или отсутсвие XGetWindowAttributes в твоем коде влияет на результат, то получается, что иксы не успевают подготовить картинку окна в pixmap, а твоя XGetWindowAttributes задержку формировала. Вот надо выяснить симптомы.

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

Я смотрю в исходники Qt на их сайте. Qt вроде бы XRender*, XGetWindowAttributes сам вызывает и все копирования выполняет.

Вот fromX11Pixmap(), а вот copy()

Получается, что XSync() перед qpxmp = QPixmap... как бы бессмысленный, так как XGetGeometry, XGetWindowAttributes в коде qpimap_x11.cpp это уже запросы с ответом и автоматом делают то, что делает XSync(). Поэтому если действительно наличие или отсутсвие XGetWindowAttributes в твоем коде влияет на результат, то получается, что иксы не успевают подготовить картинку окна в pixmap, а твоя XGetWindowAttributes задержку формировала. Вот надо выяснить симптомы.

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

Я смотрю в исходники Qt на их сайте. Qt вроде бы XRender*, XGetWindowAttributes сам вызывает и все копирования выполняет.

Вот fromX11Pixmap(), а вот copy()

Получается, что XSync() перед qpxmp = QPixmap... как бы бессмысленный, так как XGetGeometry, XGetWindowAttributes в коде qpimap_x11.cpp уже запросы с ответом и автоматом делают то, что делает XSync(). Поэтому если действительно наличие или отсутсвие XGetWindowAttributes в твоем коде влияет на результат, то получается, что иксы не успевают подготовить картинку окна в pixmap, а твоя XGetWindowAttributes задержку формировала. Вот надо выяснить симптомы.

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

Я смотрю в исходники Qt на их сайте. Qt вроде бы XRender*, XGetWindowAttributes сам вызывает и все копирования выполняет.

Вот fromX11Pixmap(), а вот copy()

Получается, что XSync() перед qpxmp = QPixmap...[/inline[ как бы бессмысленный, так как XGetGeometry, XGetWindowAttributes в коде qpimap_x11.cpp уже запросы с ответом и автоматом делают то, что делает XSync(). Поэтому если действительно наличие или отсутсвие XGetWindowAttributes в твоем коде влияет на результат, то получается, что иксы не успевают подготовить картинку окна в pixmap, а твоя XGetWindowAttributes задержку формировала. Вот надо выяснить симптомы.