changeset 153:291afc2a8ca2

Updated README: replaced Layer with View.
author Mikhail Kryshen <mikhail@kryshen.net>
date Mon, 14 Apr 2014 15:37:28 +0400
parents 9997ac717c3c
children ed36fcf061de
files README.rst README.ru
diffstat 2 files changed, 33 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/README.rst	Mon Apr 07 20:19:02 2014 +0400
+++ b/README.rst	Mon Apr 14 15:37:28 2014 +0400
@@ -10,27 +10,27 @@
 It is based around the idea of basically stateless UI elements defined
 by the following simple protocol::
 
-  (defprotocol Layer
-    (render! [layer]
-      "Draws the layer.")
-    (geometry [layer]
-      "Returns preferred size for the layer."))
+  (defprotocol View
+    (render! [view]
+      "Draws the view.")
+    (geometry [view]
+      "Returns preferred size for the view."))
 
-Layer functions are called in the Layer context which is defined by
+View functions are called in the View context which is defined by
 bindings to vars including:
 
 - ``*graphics*`` — an instance of java.awt.Graphics2D used for drawing;
 - ``*width*`` and ``*height*`` — size of the drawing bounds;
 - ``*clip*`` — clipping area (instance of java.awt.geom.Shape).
 
-In the ``render!`` function layer could draw using the provided
-Graphics2D instance, display another layers at the specified locations
+In the ``render!`` function View could draw using the provided
+Graphics2D instance, display another Views at the specified locations
 relative to it's own context, and register event handlers.
 
 Event dispatching is done by remembering the clipping areas and affine
-transforms of visible layer contexts after every repaint for the time
+transforms of visible View contexts after every repaint for the time
 until the rendering of the next frame is complete.
 
-It is possible to draw layers asynchronously in parallel threads by
-wrapping them in ``async-layer``, which uses two off-screen buffers
+It is possible to draw Views asynchronously in parallel threads by
+wrapping them in ``async-view``, which uses two off-screen buffers
 (triple buffering) to avoid locking.
--- a/README.ru	Mon Apr 07 20:19:02 2014 +0400
+++ b/README.ru	Mon Apr 14 15:37:28 2014 +0400
@@ -11,19 +11,21 @@
  - произвольная область отсечения (форма элементов), которая
    учитывается при обработке событий.
 
-Базовый элемент пользовательского интерфейса описан протоколом Layer
-(слой), который содержит всего две функции:
+Базовый элемент пользовательского интерфейса описан протоколом View
+(визуальный объект), который содержит всего две функции:
 
   render! — отрисовка,
   geometry — получение предпочтительных размеров элемента.
 
-Слой, в отличии от обычных компонентов интерфейса или элементов графов
-сцены в системах визуализации, не имеет состояния (координаты, размер,
-элемент-родитель, дочерние элементы) и может быть изображен по-разному
-на каждой итерации цикла отрисовки.
+Визуальный объект в Indyvon, в отличии от обычных компонентов
+интерфейса или элементов графов сцены в системах визуализации, не
+имеет состояния (координаты, размер, элемент-родитель, дочерние
+элементы) и может быть изображен по-разному на каждой итерации цикла
+отрисовки.
 
-Функции слоя выполняются в контексте слоя (layer context), который
-представлен набором связанных переменных, в том числе:
+Функции слоя выполняются в контексте визуального объекта (view
+context), который представлен набором связанных переменных, в том
+числе:
 
   *graphics* — экземпляр java.awt.Graphics2D для рисования,
   *width* и *height* — размеры области рисования,
@@ -35,27 +37,28 @@
 контекста. При установке обработчика контекст сохраняется для
 обработки событий до завершения следующей перерисовки сцены.
 
-Слои могут инициировать перерисовку с помощью механизма
+Визуальные объекты могут инициировать перерисовку с помощью механизма
 уведомлений. Обработчики уведомлений, как и обработчики событий,
 устанавливаются на время до следующей перерисовки.
 
 Таким образом, получать события ввода и вызывать перерисовку могут
-только те слои, которые в данный момент видны на экране, т. е.
-участвовали в последней перерисовке.
+только те визуальные объекты, которые в данный момент видны на экране,
+т. е.  участвовали в последней перерисовке.
 
 Сцена может строиться во время выполнения отрисовки (как в IMGUI:
 "сейчас нарисовать здесь кнопку") или описываться путем композиции
-слоев (предполагая, что реализованы функции border, vbox, label и
-button, которые создают слои):
+визуальных объектов (предполагая, что реализованы функции border,
+vbox, label и button, которые возвращают реализации View):
 
   (border
     (hbox
       (label "Comment:") 
       (button (label "Button"))))
 
-Отрисовку можно распараллелить с помощью функции async-layer, которая
-возвращает слой, показывающий результат отрисовки слоя-аргумента. При
-этом отрисовка слоя-аргумента выполняется в параллельной нити в буфер
-в памяти. Для избежания блокировок используется тройная
-буферизация. Слои, помещенные в async-layer, не будут ограничивать
-частоту кадров и могут обновляться медленнее, чем основная сцена.
+Отрисовку можно распараллелить с помощью функции async-view, которая
+возвращает визуальный объект, показывающий результат отрисовки
+объекта-аргумента. При этом отрисовка аргумента выполняется в
+параллельной нити в буфер в памяти. Для избежания блокировок
+используется тройная буферизация. Визуальные объекты, помещенные в
+async-view, не будут ограничивать частоту кадров и могут обновляться
+медленнее, чем основная сцена.