Специфікація BTRON3 (Український переклад) | Розділ 6: Графічні примітиви (Display Primitives)
Повернутися до змісту розділу Графічних примітивів
Попередня сторінка: 2.2 Базові графічні концепції (Повернутися)
Наступна сторінка: 2.4 Функції малювання геометричних фігур (Перейти)

2.3 Базові функції графічного порту (Basic Display Functions)

2.3.1 Створення та видалення середовища малювання

gini_dsp
Initialize Display Primitive Subsystem
Ініціалізація підсистеми графічних примітивів

【Синтаксис / Прототип】

ERR gini_dsp(void)

【Детальний опис】

Виконує початкову системну ініціалізацію графічної підсистеми Display Primitives, виділяє внутрішні таблиці та буфери ядра. Зазвичай викликається автоматично при старті операційної системи.

【Значення, що повертається】

= 0 (E_OK) : Успішне виконання
< 0        : Помилка (EG_NOSPC — недостатньо системної пам'яті)
gfin_dsp
Finish Display Primitive Subsystem
Завершення роботи підсистеми графічних примітивів

【Синтаксис / Прототип】

ERR gfin_dsp(void)

【Детальний опис】

Завершує функціонування підсистеми Display Primitives, скидає буфери на відеоадаптер та звільняє всі виділені ресурси пам'яті.

【Значення, що повертається】

= 0 (E_OK) : Успішне виконання
< 0        : Помилка (EG_CTX)
gopn_dev
Open Device Drawing Environment
Створення середовища малювання для пристрою (Open Device GID)

【Синтаксис / Прототип】

GID gopn_dev(TC *dev, B *par)

【Параметри】

TC *dev     Символьна назва графічного пристрою у кодуванні TRON Code (наприклад, "display")
B  *par     Вказівник на додаткові параметри пристрою (NULL = за замовчуванням)

【Значення, що повертається】

>= 0    Успіх: дескриптор середовища малювання (GID)
< 0     Помилка (EG_ADR, EG_DEV, EG_LIMIT, EG_NOEXS, EG_NOSPC)

【Детальний опис】

Створює новий екземпляр середовища малювання GID, прив'язаний безпосередньо до відеопам'яті (VRAM) або екранного пристрою dev.

gopn_mem
Open Memory Drawing Environment
Створення середовища малювання в оперативній пам'яті (Off-screen Memory GID)

【Синтаксис / Прототип】

GID gopn_mem(TC *dev, BITMAP *bmap, B *par)

【Параметри】

TC     *dev     Назва сумісного пристрою (або NULL для системного за замовчуванням)
BITMAP *bmap    Вказівник на опис цільової бітової карти у віртуальній пам'яті
B      *par     Параметри колірної специфікації CSPEC (NULL = сумісні з dev)

【Значення, що повертається】

>= 0    Успіх: дескриптор позаекранного середовища малювання (GID)
< 0     Помилка (EG_ADR, EG_DEV, EG_LIMIT, EG_NOSPC, EG_PAR)

【Детальний опис】

Створює позаекранне графічне середовище в оперативній пам'яті RAM на основі бітової карти bmap для рендерингу без мерехтіння (Double Buffering).

gcls_env
Delete Drawing Environment
Видалення середовища малювання (Close GID)

【Синтаксис / Прототип】

ERR gcls_env(GID gid)

【Параметри】

GID gid     Дескриптор середовища малювання

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_GID — недійсний дескриптор)

【Детальний опис】

Знищує середовище малювання gid та звільняє пов'язані з ним системні структури даних.

gnew_env
Duplicate Drawing Environment
Дублювання середовища малювання (Duplicate GID)

【Синтаксис / Прототип】

GID gnew_env(GID gid)

【Параметри】

GID gid     Дескриптор вихідного середовища малювання

【Значення, що повертається】

>= 0    Дескриптор нового здубльованого середовища (GID)
< 0     Помилка (EG_GID, EG_NOSPC)

【Детальний опис】

Створює нове середовище малювання, яке успадковує всі поточні атрибути (кольори, лінії, патерни, маски) та використовує ту саму бітову карту, що й вихідне gid.

gini_env
Reset Drawing Environment
Скидання параметрів середовища малювання

【Синтаксис / Прототип】

ERR gini_env(GID gid)

【Параметри】

GID gid     Дескриптор середовища малювання

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_GID)

【Детальний опис】

Скидає всі графічні атрибути середовища малювання gid (кольори переднього/заднього плану, товщину ліній, маски відсікання) до системних значень за замовчуванням.

gget_spc
Get Device Specification
Отримання характеристик графічного пристрою за ім'ям

【Синтаксис / Прототип】

ERR gget_spc(TC *dev, DEV_SPEC *spec)

【Параметри】

TC       *dev   Символьна назва графічного пристрою
DEV_SPEC *spec  Буфер у пам'яті для збереження характеристик пристрою

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_ADR, EG_DEV, EG_NOEXS)
gget_dev
Get Drawing Environment Device Name
Отримання назви пристрою середовища

【Синтаксис / Прототип】

ERR gget_dev(GID gid, TC *dev)

【Параметри】

GID gid     Дескриптор середовища малювання
TC *dev     Буфер для збереження ім'я пристрою у кодуванні TRON Code

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_ADR, EG_GID)
gget_dsp
Get Device Specification by GID
Отримання специфікації пристрою за дескриптором GID

【Синтаксис / Прототип】

ERR gget_dsp(GID gid, DEV_SPEC *spec)

【Параметри】

GID       gid   Дескриптор середовища малювання
DEV_SPEC *spec  Буфер для збереження специфікації пристрою

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_ADR, EG_GID)
gget_csp
Get Color Specification
Отримання колірної специфікації середовища

【Синтаксис / Прототип】

ERR gget_csp(GID gid, CSPEC *cspec)

【Параметри】

GID    gid      Дескриптор середовища малювання
CSPEC *cspec    Буфер для збереження структури колірної специфікації CSPEC

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_ADR, EG_GID)
gset_bcs
Set Color Conversion Specification
Встановлення параметрів колірної конверсії

【Синтаксис / Прототип】

ERR gset_bcs(GID gid, CSPEC *cspec)

【Параметри】

GID    gid      Дескриптор середовища малювання
CSPEC *cspec    Вказівник на специфікацію колірної конверсії

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_ADR, EG_GID, EG_PAR)
gget_bcs
Get Color Conversion Specification
Отримання параметрів колірної конверсії

【Синтаксис / Прототип】

ERR gget_bcs(GID gid, CSPEC *cspec)

【Параметри】

GID    gid      Дескриптор середовища малювання
CSPEC *cspec    Буфер для збереження специфікації конверсії

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_ADR, EG_GID)

2.3.2 Управління палітрою (Color Map)

gset_col
Set Color Map Entries
Запис елементів у колірну палітру (Set Palette)

【Синтаксис / Прототип】

W gset_col(GID gid, UW p, COLOR *cv, UW cnt)

【Параметри】

GID     gid     ID середовища малювання
UW      p       Початковий індекс палітри для запису (0..255)
COLOR  *cv      Масив структур кольорів для запису
UW      cnt     Кількість елементів для оновлення

【Значення, що повертається】

>= 0    Кількість успішно встановлених кольорів
< 0     Помилка (EG_ADR, EG_ENV, EG_GID, EG_PAR)

【Детальний опис】

Записує масив кольорів cv у системну колірну карту (Color Map) середовища gid, починаючи з індексу p.

gget_col
Get Color Map Entries
Зчитування елементів колірної палітри (Get Palette)

【Синтаксис / Прототип】

W gget_col(GID gid, UW p, COLOR *cv, UW cnt)

【Параметри】

GID     gid     ID середовища малювання
UW      p       Початковий індекс палітри
COLOR  *cv      Масив у пам'яті для збереження кольорів
UW      cnt     Кількість записів для зчитування

【Значення, що повертається】

>= 0    Кількість фактично зчитаних елементів палітри
< 0     Помилка (EG_ADR, EG_ENV, EG_GID, EG_PAR)
gcnv_col
Convert Color to Pixel Value
Перетворення кольору RGB у значення пікселя (Color to Pixel)

【Синтаксис / Прототип】

W gcnv_col(GID gid, COLOR cv, PIXVAL *pixv)

【Параметри】

GID     gid     ID середовища малювання
COLOR   cv      Колір для перетворення (структура COLOR)
PIXVAL *pixv    Буфер для збереження розрахованого піксельного значення

【Значення, що повертається】

>= 0    Похибка наближення кольору (0 = точний збіг, 100 = протилежний колір)
< 0     Помилка (EG_ADR, EG_GID, EG_PAR)

2.3.3 Доступ до параметрів середовища малювання

gset_msk / gget_msk
Set/Get Mask Pixel Value
Встановлення та зчитування маскового пікселя прозорості

【Синтаксис / Прототип】

ERR gset_msk(GID gid, PIXVAL pixv)
ERR gget_msk(GID gid, PIXVAL *pixv)

【Детальний опис】

Встановлює або зчитує масковий піксель pixv, який використовується для створення прозорих областей під час растрових операцій малювання.

gset_clp / gget_clp
Set/Get Clipping Region
Встановлення та зчитування області відсікання (Clipping Region)

【Синтаксис / Прототип】

ERR gset_clp(GID gid, GRGN *clip)
ERR gget_clp(GID gid, GRGN *clip, W csize, W *a_size)

【Детальний опис】

Встановлює або зчитує складну область відсікання малювання clip (Clipping Region). Будь-які графічні операції за межами області відсікання відкидаються.

gset_fra / gget_fra
Set/Get Frame Rectangle
Встановлення та зчитування прямокутника кадру (FrameRect)

【Синтаксис / Прототип】

ERR gset_fra(GID gid, RECT *rp)
ERR gget_fra(GID gid, RECT *rp)

【Детальний опис】

Задає або повертає прямокутну рамку кадру середовища малювання FrameRect.

gset_vis / gget_vis
Set/Get Visible Rectangle
Встановлення та зчитування прямокутника видимості (VisibleRect)

【Синтаксис / Прототип】

ERR gset_vis(GID gid, RECT *rp)
ERR gget_vis(GID gid, RECT *rp)
gset_for / gget_for
Set/Get Forward Rectangle List
Встановлення та зчитування списку передніх прямокутників перекриття

【Синтаксис / Прототип】

ERR gset_for(GID gid, RLIST *rlp)
ERR gget_for(GID gid, RLIST *rlp, W size, W *a_size)
gsiz_pat / gcre_pat
Size/Create Pattern Image
Визначення розміру та створення внутрішнього патерну малювання

【Синтаксис / Прототип】

ERR gsiz_pat(GID gid, UW kind, UW hsize, UW vsize, W *size)
ERR gcre_pat(GID gid, PAT *def, UB *loc, UB **pat, W *size, W cvt)

【Детальний опис】

Розраховує розмір пам'яті та створює внутрішній графічний патерн заповнення (Pattern) для використання при малюванні примітивів.

gset_lmk / gget_lmk
Set/Get Line Mask Pattern
Встановлення та зчитування бітової маски лінії (пунктир)

【Синтаксис / Прототип】

ERR gset_lmk(GID gid, UW nbytes, UB *mask)
W   gget_lmk(GID gid, UB *mask)
gget_bmp / gget_bnd
Get Bitmap / Bounds
Отримання цільової бітової карти та меж растру

【Синтаксис / Прототип】

ERR gget_bmp(GID gid, BITMAP *bmap)
ERR gget_bnd(GID gid, RECT *rp)
gmov_bnd / gmov_cor
Move Bitmap Bounds / Coordination
Зсув меж растру та переміщення системи координат

【Синтаксис / Прототип】

ERR gmov_bnd(GID gid, W dh, W dv)
ERR gmov_cor(GID gid, W dh, W dv)

【Детальний опис】

Виконують зсув початкової точки растру або переміщують початок координат системи $(X, Y)$ на величину $(dh, dv)$.

2.3.4 Перетворення координат та блокування

gcnv_abs / gcnv_rel
Convert Coordinates (Absolute <-> Relative)
Перетворення між абсолютними та відносними координатами

【Синтаксис / Прототип】

ERR gcnv_abs(GID gid, PNT *pp)
ERR gcnv_rel(GID gid, PNT *pp)

【Детальний опис】

Транслюють координати точки pp між відносною системою координат середовища малювання та абсолютними фізичними координатами екрана.

gloc_env
Lock/Unlock Drawing Environment
Блокування / розблокування середовища малювання (Lock GID)

【Синтаксис / Прототип】

ERR gloc_env(GID gid, W lock)

【Параметри】

GID gid     ID середовища малювання
W   lock    1 = заблокувати доступ інших процесів; 0 = розблокувати

【Значення, що повертається】

= 0 (E_OK) : Успіх
< 0        : Помилка (EG_GID)

【Детальний опис】

Забезпечує атомарне блокування екранного середовища gid для відвернення міжпроцесного конфлікту при послідовному малюванні кількох примітивів.


Повернутися до змісту розділу Графічних примітивів
Попередня сторінка: 2.2 Базові графічні концепції (Повернутися)
Наступна сторінка: 2.4 Функції малювання геометричних фігур (Перейти)