OpenComputers/GPU API

Этот интерфейс предоставляет расширенную функциональность видеокарт.

Для простых программ будет достаточно Term API.


Название компонента: gpu.


Связывает видеокарту с монитором (который задан адресом).

Возвращает true или false, в зависимости от успеха.

Одна видеокарта может работать только с одним монитором одновременно. Все операции производимые на видеокарте, будут отображаться на мониторе, связанном с ней. Если вы хотите выводить изображение на несколько мониторов, подключите с своему компьютеру несколько видеокарт.


Возвращает адрес экрана, к которому привязана видеокарта.

Примечание: начиная с версии OpenComputers 1.3.2.


Возвращает текущий цвет фона. Этот применяется ко всем "пикселям", которые изменяются другими операторами.

Первое возвращаемое значение — RGB цвет в шестнадцатеричном формате, т.е. 0xRRGGBB. Такой формат используется мониторами и видеокартами вне зависимости от уровня и глубины цвета.

Второе значение показывает в каком формате представлен цвет (true - в виде номера в палитре, false - в виде числа RGB)


Устанавливает новый цвет фона. Возвращаемое значение — старый цвет, в том виде, в каком он был установлен (т.е. не сжатый до цветовой глубины экрана/видекарты).

Если цвет принадлежал палитре, второе возвращаемое значение будет индексом этого цвета в палитре. Иначе - nil.

Функция работает с RGB цветом в шестнадцатеричном формате, т.е. 0xRRGGBB. Такой формат используется мониторами и видеокартами вне зависимости от уровня и глубины цвета.


Как getBackground, только для основного цвета.


Как setBackground, только для основного цвета.


Устанавливает RGB цвет value в палитру по индексу index.


Возвращает цвет палитры по заданному индексу.


Возвращает максимальную глубину цвета, которая поддерживается видеокартой и монитором (одновременно).


Текущая глубина цвета видеокарты/монитора в битах. Может быть равна 1, 4 или 8.


Устанавливает новую глубину цвета. Это значение не может быть больше максимально поддерживаемого экраном/видеокартой (maxDepth). Значение большее, или некорректное вызовет ошибку.

Возвращает true или false, в зависимости от успеха.


Возвращает максимальное разрешение, поддерживаемое видеокартой и монитором, с которым она связана.


Возвращает текущее разрешение.


Задает новое разрешение. Разрешение не может быть больше, чем максимальное поддерживаемое экраном и видеокартой (maxResolution). Значение большее, или некорректное вызовет ошибку.

Возвращает true или false, в зависимости от успеха.


Возвращает размер мультиблочного экрана, в блоках. Для простого экрана или робота это будет (1, 1).

Внимание! Функция устарела. Используйте screen.getAspectRatio() вместо нее.


Возвращает символ, который отображен по заданным координатам. Второе и третье значения - основной цвет, и цвет фона соответственно, в виде RGB значений. Если это цвета палитры, то четвертое и пятое значения будут содержать их индексы. Иначе - они будут пусты (nil).


Пишет строку на экран, начиная в заданных координатах. Функция просто копирует строку в буфер видеокарты в виде символьной последовательности. Т.е. если строка содержит символы переносов, они будут просто отображены на дисплее как специальные символы. Строка не будет отображена в несколько линий.

Возвращает true или false, в зависимости от успеха.

Необязательный четвертый параметр позволяет вывести строку вертикально, если он будет равен true.


Копирует фрагмент экранного буфера в другое место. Копируемый участок задан параметрами x, y, width и height. Место, куда он будет скопирован определяется как x + tx, y + ty, width и height.

Возвращает true или false, в зависимости от успеха.


Заполняет прямоугольник экранного буфера заданным символом. Прямоугольник задается параметрами x, y, width и height.

Параметр char должен содержать один символ.

Функция возвращает true или false, в зависимости от успеха.

Примечание: заполнение экрана символами пробела (' ') обычно тратит меньше энергии, т.к. это операция "очистки" экрана. (См. файл конфигурации).

Пример программы

local component = require("component") local gpu = component.gpu -- получаем прокси видеокарты local w, h = gpu.getResolution() gpu.fill(1, 1, w, h, " ") -- очищаем экран gpu.setForeground(0x000000) gpu.setBackground(0xFFFFFF) gpu.fill(1, 1, w/2, h/2, "X") -- заполняем верхнюю-левую четверть экрана gpu.copy(1, 1, w/2, h/2, w/2, h/2) -- копируем верхнюю-левую четверть в правую-нижнюю
В данной статье используются материалы из статьи «OpenComputers/GPU API» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-Share Alike. Авторы статьи.