Вопрос про нестыковку в 1 пиксель и про KeyDown (решено)

Applications development, KoOS API questions
  • 1) Добро пожаловать в порочный и удивительный мир legacy кода. Это унаследовано от MenuetOS. Не правим ядро потому что нужно править 100500 приложений. Причем изменения будут не совсем тривиальными. Еще такая же фигня есть с размерами кнопки - ф.8.
    2) Читать описание ф.2 и ф.66 - в части касающейся сканкодов.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • 1) То есть нужно отнимать единицу и таким образом фиксить неисправимый баг, правильно?
    2) Ага. Я про сканкоды сначала не стал читать, решив, что там только про их преобразование в ASCII. А оказалось, что в 15-м бите информация о том, нажат он или нет. Спасибо.

    А сканкоды безопасно использовать? На других клавиатурах с другими драйверами сканкоды останутся прежними?
    Roman Shuvalov
  • 1) Да.
    2) Да.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Добро пожаловать в порочный и удивительный мир legacy кода. Это унаследовано от MenuetOS. Не правим ядро потому что нужно править 100500 приложений. Причем изменения будут не совсем тривиальными. Еще такая же фигня есть с размерами кнопки - ф.8.
    В разработке ядра и в ассемблере я конечно мало что понимаю, но ведь можно создать новую системную функцию на основе существующей для создания окна, в ней уже исправить баги. старые приложения будут работать, используя старую функцию, а в тех, что будут создаваться можно пользоваться новой.
    Чудеса случаются! Это вам любой программист скажет! :)
  • Nikolai1 wrote:В разработке ядра и в ассемблере я конечно мало что понимаю, но ведь можно создать новую системную функцию на основе существующей для создания окна, в ней уже исправить баги. старые приложения будут работать, используя старую функцию, а в тех, что будут создаваться можно пользоваться новой.
    Можно. Создавайте.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Можно. Создавайте.
    Да я бы с радостью :wink: но в ассемблере почти не разбираюсь. куда уж мне в ядре копаться
    Чудеса случаются! Это вам любой программист скажет! :)
  • Nikolai1 wrote:Да я бы с радостью :wink: но в ассемблере почти не разбираюсь. куда уж мне в ядре копаться
    Не боги горшки обжигают.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Nikolai1 wrote:
    Можно. Создавайте.
    Да я бы с радостью :wink: но в ассемблере почти не разбираюсь. куда уж мне в ядре копаться
    Пришли мыши к мудрой сове попросить совета, как им избежать участи быть съеденными обнаглевшими котами. Сова говорит им:
    - Станьте ежиками. Если вы будете колючими, вас никто не съест!
    Обалдевшие от восторга мыши побежали домой, там опомнились и снова вернулись к сове:
    - Сова, расскажи - а как нам стать ежиками?
    А Сова им в ответ:
    - Мыши! Как – разбирайтесь сами! Мое дело – стратегия!
  • "Вопрос про нестыковку в 1 пиксель"
    Создаю окно, вывожу прямоугольник 400х250 в точке (0,0) и получаю:
    Image
    Справа и снизу имеется нестыковка в один пиксель. ...
    Таким образом, вы сделали окно, содержащее градиент цвета - вместо
    сделать это содержащий сетку (для удобства просмотра сделать линии сетки
    есть цвет, например, зеленый), линии сетки в первом положении пикселя, на
    десятая позиция пикселей, на двадцатой позиции пикселя.
    Затем проверьте - может видеть десятый и двадцатый линии сетки? Да -
    то линии сетки работает. Теперь, мы можем увидеть первые линии сетки?
    Если нет, то, возможно, первой сетки линия покрыта какой-то «внешней рамы /
    промежуточный кадр / внутренняя рама» элементов. Если это так, увеличить
    Размер линии сетки вверх от одного пикселя, до, возможно,
    появляется первая позиция линии сетки.
    также (так как ширина и высота установлен).
    Такая процедура может служить, чтобы дать подсказки о том, где искать
    для устранения неисправности в коде.
    So you made a window containing a colour gradient - instead
    make it containing a grid (for ease of viewing make grid lines
    have colour e.g. green), grid lines at the first pixel position, at
    the tenth pixel position, at the twentieth pixel position.
    Then check - can see the tenth and twentieth grid lines? Yes -
    then grid lines are working. Now, can we see the first grid line?
    If no, then perhaps the first grid line is covered by some 'outer
    frame/intermediate frame/inner frame' elements . If so, increase
    the size of the grid line upwards from one pixel, until perhaps
    first position grid line appears.
    These grid lines vertical, concurrently make horizontal grid lines
    also (so both the width and height are checked).
    Such procedure may serve to give clues as to where to look
    for the fault in the code.
  • - рисуется внешняя рамка шириной 1 пиксель цвета 'outer' из скина
    - рисуется промежуточная рамка шириной 3 пикселя цвета 'frame' из скина
    - рисуется внутренняя рамка шириной 1 пиксель цвета 'inner' из скина
    - рисуется заголовок (по картинкам из скина) в прямоугольнике (0,0) - (xsize,_skinh-1)
    На самом деле, глядя теперь на картинке под XP лупа, не вижу какой-либо
    "рисуется внутренняя рамка шириной 1 пиксель цвета 'inner' из скина".
    Сравнение с внутренняя рамка окна Eolite, которая рядом с ним,
    по-видимому, показывают, что ваше окно отсутствует внутренняя рамка на
    правой и нижней, и, возможно, слева, а. (Верхний внутренний линию рамки,
    кажется, присутствует.)
    Если вы обнаружите в коде этого окна, причины неисправности, пожалуйста,
    поделиться. Причина не смущать, но, скорее, похожи или же вина
    - в программах TABLE и TANKS (не LaserTank).
    Last edited by buyerninety on Sat Jan 31, 2015 4:07 pm, edited 2 times in total.
  • Please write in English only. Google Translate sucks.

    I don't have time to debug this code, but maybe one day I will code some stuff for KolibriOS and figure out what's going on about this 1-pixel glitch.
    Roman Shuvalov
  • Who is online

    Users browsing this forum: No registered users and 16 guests