Функция 34 - узнать владельца точки на экране

Kernel-side graphics support
  • Полезная функция. Даже странно, что ее до сих пор не было.
    Только я бы ее расширил еще одной нужной подфункцией -
    п/ф 0 = узнать владельца точки,
    п/ф 1 = перемаппить всю экранную карту на адресное пространство пользователя.
    А то если про каждую точку спрашивать у ядра - так и уснуть можно.
  • Для @RB и Icon ее вполне хватает.

    Насчет получения куском - я могу сделать только как функцию 36. Но она всегда показывает только прошлое состояние. Которое при активной перерисовке может сильно отстать и вообще сделать мгновенный срез без CLI не получится, а CLI вообще-то не желательно на длительный срок.

    Как сделать по аналогии с именованной памятью я не знаю. Из известных мне вариантов реализации есть только 15.6, но там уж больно топорно реализовано и работает только в монопольном доступе.

    З.Ы.
    art_zh wrote:Полезная функция. Даже странно, что ее до сих пор не было.
    Вообще то умные люди давно советовали.
  • Влезет ли туда тип точки? Шапка-левая-правая-нижняя граница, углы, просто форма, ещё чего-то. Ориентируясь на эту инфу можно было бы менять вид курсора.
  • Вид курсора по позиции - будет менять ядро. Приложению делать что ли больше нечего? Такие вещи централизованно решать надо.
  • Это система быстрых 256 объектов, которую я уже давно придумал и реализовал, для неё заводится массив 256*4 байт, там адреса на однотипные записи объектов, объекты могут быть и иконки и формы и кнопки и т.д. . В начале идут данные общие для всех: тип объекта, затем адрес курсора, затем адрес функции сообщений, затем адрес картинки, ... , потом данные специфичные для объекта, которые использует только он. По нажатию мышки на экран сразу получаешь пиксель с номером объекта, берешь его из массива и вызываешь его функцию (без переборов). Я кидаю туда же и сообщения от клавы и таймера сохраняя последний активный объект.
    По движению мыши по экрану постоянно берётся адрес курсора и рисуется новый при его перерисовки, только так можно рисовать руку при наведении на ссылку или карандаш при наведении на поле ввода.
    Я использую 4 байт пикселя для номера объекта, для прозрачности, для Z растояния в 3д
    Учитесь.
  • Who is online

    Users browsing this forum: No registered users and 4 guests