LINUX.ORG.RU

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

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

В windows RDP текст UI локально рисуется, например, а не пережатыми картинками шлётся. Если я не ошибаюсь, конечно.

В NX, X11, X2Go так же, в общем-то. Закидываются отдельные глифы в кэш единожды (уже на уровне XRender есть GlyphSet [1]). Потом глифы рисуются в нужных местах уже у клиента локально.

Если я правильно помню, то хранение characters на стороне клиента в RDP реализовано в GDI Acceleration Extensions. Ну, то есть это расширение для GDI. [2] По сути своей то же самое, что и X11.

[1] https://cgit.freedesktop.org/xorg/proto/renderproto/plain/renderproto.txt:

12. Glyph Rendering

Glyphs are small alpha masks which can be stored in the X server and rendered by referring to them by name. A set of glyphs can be rendered in a single request. Glyphs are positioned by subtracting the x, y elements of the GLYPHINFO from the requested rendering position. The next glyph rendering position is set to the current rendering position plus the off-x and off-y elements. Glyphs are stored in GlyphSets and are named within the GlyphSet with client-specified 32-bit numbers.

[2] https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-RDP...

In addition to defining how to encode common drawing operations, the Remote Desktop Protocol: GDI Acceleration Extension also facilitates the use of caches to store drawing primitives such as bitmaps, color tables, and characters. The effective use of caching techniques helps to reduce wire traffic by ensuring that items used in multiple drawing operations are sent only once from server to client (retransmission of these items for use in conjunction with future drawing operations is not required after the item has been cached on the client).

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

В windows RDP текст UI локально рисуется, например, а не пережатыми картинками шлётся. Если я не ошибаюсь, конечно.

В NX, X11, X2Go так же, в общем-то. Закидываются отдельные глифы в кэш единожды (уже на уровне XRender есть GlyphSet [1]). Потом глифы рисуются в нужных местах уже у клиента локально.

Если я правильно помню, то хранение characters на стороне клиента в RDP реализовано в GDI Acceleration Extensions. Ну, то есть это расширение для GDI. [2]

[1] https://cgit.freedesktop.org/xorg/proto/renderproto/plain/renderproto.txt:

12. Glyph Rendering

Glyphs are small alpha masks which can be stored in the X server and rendered by referring to them by name. A set of glyphs can be rendered in a single request. Glyphs are positioned by subtracting the x, y elements of the GLYPHINFO from the requested rendering position. The next glyph rendering position is set to the current rendering position plus the off-x and off-y elements. Glyphs are stored in GlyphSets and are named within the GlyphSet with client-specified 32-bit numbers.

[2] https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-RDP...

In addition to defining how to encode common drawing operations, the Remote Desktop Protocol: GDI Acceleration Extension also facilitates the use of caches to store drawing primitives such as bitmaps, color tables, and characters. The effective use of caching techniques helps to reduce wire traffic by ensuring that items used in multiple drawing operations are sent only once from server to client (retransmission of these items for use in conjunction with future drawing operations is not required after the item has been cached on the client).

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

В windows RDP текст UI локально рисуется, например, а не пережатыми картинками шлётся. Если я не ошибаюсь, конечно.

В NX, X11, X2Go так же, в общем-то. Закидываются отдельные глифы в кэш единожды (уже на уровне XRender есть GlyphSet [1]). Потом глифы рисуются в нужных местах уже у клиента локально.

[1] https://cgit.freedesktop.org/xorg/proto/renderproto/plain/renderproto.txt:

12. Glyph Rendering

Glyphs are small alpha masks which can be stored in the X server and rendered by referring to them by name. A set of glyphs can be rendered in a single request. Glyphs are positioned by subtracting the x, y elements of the GLYPHINFO from the requested rendering position. The next glyph rendering position is set to the current rendering position plus the off-x and off-y elements. Glyphs are stored in GlyphSets and are named within the GlyphSet with client-specified 32-bit numbers.