> -- adva писал(а):
> Вопрос в том, можно ли как-то прикрутить масштабирование и текста и графики к этому новому HostPorts?
На уровне HostPorts вы сможете сделать любые чудеса, какие только захотите
Я не пробовал рендерить текст в DC, но это по аналогии с остальным должно быть не сложно сделать.

Добавьте глобальную переменнуюzoomи используйте её для масштабирования. Вот пример дляDrawLine.
## Код:
```
PROCEDURE (rd: Rider) DrawLine* (x0, y0, x1, y1, s: INTEGER; col: Ports.Color);
      VAR res: INTEGER; pt: WinApi.POINT; p: Port; dc, oldb, oldp: WinApi.HANDLE;
         surface: CairoApi.cairo_surface_t; ctx: CairoApi.cairo_t;
   BEGIN
      ...
      CairoApi.cairo_move_to(ctx, x0 * zoom + 0.5, y0 * zoom + 0.5);
          CairoApi.cairo_line_to(ctx, x1 * zoom + 0.5, y1 * zoom + 0.5);
      CairoApi.cairo_set_line_width(ctx, s * zoom);
      ...
   END DrawLine;
```
