Сообщения об ошибках не помещенные в Bugzilla
-
: /* разработчик тихо потирает руки: пора заканчивать пить сок и идти пилить свой менеджер обновлений, т.е. стремиться к полезным результатам */
Тостер - не разработчик, но уже ближе.
SVN r.2063 - MAGNIFY, проверка окна на "свернутость" (rolled up) перед отрисовкой.
KFAR has 2 defects (at least for me):
1. it crashes if I'm trying to edit file of zero size
2. it doesn't update panels after editing is completed, so old file size is displayed
For the 1st defect, crash log is
1. it crashes if I'm trying to edit file of zero size
2. it doesn't update panels after editing is completed, so old file size is displayed
For the 1st defect, crash log is
Code: Select all
K : Process - forced terminate PID: 00000027
K : Page fault
K : EAX : FFFFF01B EBX : 0005D9E4 ECX : 000003F9
K : EDX : 00000FE4 ESI : 0005D9E4 EDI : 0006200C
K : EBP : 0005C000 EIP : 0000387E ESP : 0002B770
K : Flags : 00011206 CS : 0000001B (application)
in code we trust
Очень интересная вещь.
Я решил переделать Flood-it в игрушку Clicks. До этого рисовались цветные квадратики. Сейчас вместо них должны рисоваться кнопочки. Делаю так:
И тут обнаруживаю, что нарисованные кнопки на 1 пиксель больше, квадратиков, которые до этого рисовались!
Почему?
Я решил переделать Flood-it в игрушку Clicks. До этого рисовались цветные квадратики. Сейчас вместо них должны рисоваться кнопочки. Делаю так:
Code: Select all
//DrawBar(j*BLOCK_SIZE+USER_PANEL_WIDTH, i*BLOCK_SIZE+5, BLOCK_SIZE,BLOCK_SIZE, FIELD_COLORS[color_id]);
DefineButton(j*BLOCK_SIZE+USER_PANEL_WIDTH,i*BLOCK_SIZE+5,BLOCK_SIZE,BLOCK_SIZE, i*BLOCKS_NUM+j+100,FIELD_COLORS[color_id]);
Почему?
- Attachments
-
-
flood-it.zip (10.15 KiB)Downloaded 168 times
-
Из хаоса в космос
А ты можешь сделать скриншоты, чтобы замерить размеры по точкам?
Судя по коду, который ты дал,
И значит, размеры должны совпадать.
Судя по коду, который ты дал,
Code: Select all
void DrawBar(dword x,y,w,h,EDX)
{
EAX = 13;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
}
void DefineButton(dword x,y,w,h,EDX,ESI)
{
EAX = 8;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
}
Должны, а не совпадают. Кнопки на 1 пиксель больше в ширину и длинну.
Из хаоса в космос
А если установить плоский тип кнопок? (а не 3d, который по умолчанию)
Тоже самое.
Из хаоса в космос
Это давно так, ещё помойму с Менуета осталось. Линии. кнопки, окна и что-то ещё, на 1 пиксель больше рисуются, по оси х и у. Почему так, думаю только Вилле знает.
В чём может быть причина «Page fault»?
На ядре 1319 всё нормально. А вот в 2306 и 2307 — такая ошибка. Моё приложение вылетает сразу после отрисовки окна.
Программа отображает увеличенный участок экрана под указателем мыши и показывает RGB-цвет точки.
Скриншот её тут: viewtopic.php?p=38800#p38800
На ядре 1319 всё нормально. А вот в 2306 и 2307 — такая ошибка. Моё приложение вылетает сразу после отрисовки окна.
Программа отображает увеличенный участок экрана под указателем мыши и показывает RGB-цвет точки.
Скриншот её тут: viewtopic.php?p=38800#p38800
Скилл "telepathy" приветствуется.
Code: Select all
Vesa20_getpixel32:
imul ebx, [BytesPerScanLine] ; ebx = y * y multiplier
lea edi, [ebx+eax*4]; edi = x*4+(y*y multiplier)
mov ecx, [LFB_BASE+edi] ; <--- crash here, `LFB_BASE+edi` points below LFB area due to overflow
and ecx, 0xffffff
ret
in code we trust
mike.dld
я так понимаю, что эта функция getpixel была изменена в новых версиях ядра.
Раньше, если подвести указатель к краю экрана, то программа отображала кусочек с противоположного края.
Теперь на новых версиях ядра это свойство программы сохранилось только для горизонтального направления.
Если опустить указатель вниз, то кусочек сверху не отобразится — вместо него чернота.
Если же поднять указатель наверх — программа вылетает.
И вот что ещё заметил:
при перемещении окна за заголовок отображается инверсный прямоугольник, так вот,
если во время перемещения процесс умирает(как у меня) — прямоугольник всё ещё остаётся и при этом может оставить артефакт на окне другого приложения.
я так понимаю, что эта функция getpixel была изменена в новых версиях ядра.
Раньше, если подвести указатель к краю экрана, то программа отображала кусочек с противоположного края.
Теперь на новых версиях ядра это свойство программы сохранилось только для горизонтального направления.
Если опустить указатель вниз, то кусочек сверху не отобразится — вместо него чернота.
Если же поднять указатель наверх — программа вылетает.
И вот что ещё заметил:
при перемещении окна за заголовок отображается инверсный прямоугольник, так вот,
если во время перемещения процесс умирает(как у меня) — прямоугольник всё ещё остаётся и при этом может оставить артефакт на окне другого приложения.
mike.dld
That code was always working well, nothing changed -- maybe something damages [BytesPerScanLine] ?
What screendriver is used? Emulator?
That code was always working well, nothing changed -- maybe something damages [BytesPerScanLine] ?
What screendriver is used? Emulator?
Who is online
Users browsing this forum: No registered users and 17 guests