История изменений
Исправление 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 задержку формировала. Вот надо выяснить симптомы.