LINUX.ORG.RU

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

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

Если он воспроизводит только поток команд рисования, а приложение внезапно рисует в буфер самостоятельно, будет различие между картинкой локально и тем, что показывает клиент удалённого рабочего стола.

Рисовать напрямую в задний буфер нельзя, надо выделить новый растровый буфер и вызвать BView::DrawBitmap. Так как клиент удалённого рабочего стола не может использовать общую память, содержимое картинки передаётся по сокету.

Повторяю в третий раз.

Вам известно понятие регионов? Регионы - это набор отсортированных не пересекающихся прямоугольников с которыми можно выполнять булевы операции и которые используются для отсечения (clipping) отрисовки. У каждого окна есть регион, которым отсекаются все графические команды, приходящие в него. Если одно окно заслонено другим, то от региона нижнего окна вычитается регион верхнего окна. В результате регионы окон не пересекаются и окна могут рисовать параллельно друг от друга. Если переднее окно переместить, то регион заднего окна может расшириться и новая часть будет перерисована.

Картинка с пояснением: https://imgur.com/a/tWRVUAH.

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

Если он воспроизводит только поток команд рисования, а приложение внезапно рисует в буфер самостоятельно, будет различие между картинкой локально и тем, что показывает клиент удалённого рабочего стола.

Рисовать напрямую в задний буфер нельзя, надо выделить новый растровый буфер и вызвать BView::DrawBitmap. Так как клиент удалённого рабочего стола не может использовать общую память, содержимое картинки передаётся по сокету.

Повторяю в третий раз.

Вам известно понятие регионов? Регионы - это набор отсортированных не пересекающихся прямоугольников с которыми можно выполнять булевы операции и которые используются для отсечения (clipping) отрисовки. У каждого окна есть регион, которым отсекается все графические команды, приходящие в него. Если одно окно заслонено другим, то от региона нижнего окна вычитается регион верхнего окна. В результате регионы окон не пересекаются и окна могут рисовать параллельно друг от друга. Если переднее окно переместить, то регион заднего окна может расшириться и новая часть будет перерисована.

Картинка с пояснением: https://imgur.com/a/tWRVUAH.

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

Если он воспроизводит только поток команд рисования, а приложение внезапно рисует в буфер самостоятельно, будет различие между картинкой локально и тем, что показывает клиент удалённого рабочего стола.

Рисовать напрямую в задний буфер нельзя, надо выделить новый растровый буфер и вызвать BView::DrawBitmap. Так как клиент удалённого рабочего стола не может использовать общую память, содержимое картинки передаётся по сокету.

Повторяю в третий раз.

Вам известно понятие регионов? Регионы - это набор отсортированных не пересекающихся прямоугольников с которыми можно выполнять булевы операции и которые используются для отсечения (clipping) отрисовки. У каждого окна есть регион, которым отсекается все графические команды, приходящие в него. Если одно окно заслонено другим, то от региона нижнего окна вычитается регион верхнего окна. В результате регионы окон не пересекаются и окна могут рисовать параллельно друг от друга.

Картинка с пояснением: https://imgur.com/a/tWRVUAH.