[Wine-devel] [Wine-patches] Add DIB tests
Vitaly Lipatov
=?iso-8859-1?q?lav_=CE=C1_etersoft=2Eru?=
Сб Ноя 15 16:33:37 MSK 2008
В сообщении от 13 ноября 2008 Sergey Novosyolov написал(a):
> From d68a8d0a641b35f347a9da2dba2fa5058bdcde02 Mon Sep 17 00:00:00 2001
> From:
> =?utf-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=9D=D0=BE=D0=B2=D0=BE=D
>1=81=D1=91=D0=BB=D0=BE=D0=B2?= <chi на builder.office.etersoft.ru> Date:
Нужно настроить имя пользователя и обратный адрес (в UsesGit описано, как)
В сообщении от 13 ноября 2008 Sergey Novosyolov написал(a):
> + * DIB Engine Tests
> + *
> + * Copyright 2008 Huw Davies
Нужно дописать
Copyright 2008 Sergey Novosyolov (Etersoft)
> +static void test_Polyline_SolidPen()
Я предлагаю отправить патч ещё раз, но содержащий только этот тест, остальные
добавить следующим патчем (Huw Davies упоминать не нужно, если он его не
писал).
> +{
> + int width, height;
> + int i,j;
> + int diff;
> + float accuracy;
> + width = 20;
> + height = 25;
лишний пробел.
> +
> + char bmibuf[sizeof(BITMAPINFO) + 256 * sizeof(RGBQUAD)];
Память следует выделить через HeapAlloc
> + BITMAPINFO *bmi;
> + bmi = (BITMAPINFO* ) bmibuf;
> + memset(bmi, 0, sizeof(bmibuf));
для очистки у HeapAlloc есть спец. параметр
> +
> + bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
> + bmi->bmiHeader.biHeight = height;
> + bmi->bmiHeader.biWidth = width;
> + bmi->bmiHeader.biPlanes = 1;
> + bmi->bmiHeader.biBitCount = 24;
> + bmi->bmiHeader.biCompression = BI_RGB;
> + bmi->bmiHeader.biSizeImage = bmi->bmiHeader.biHeight *
> bmi->bmiHeader.biWidth * 4; +
> + accuracy = 0.03;
это присваивание стоит вынести выше, в определение переменной (туда же, где и
width/height)
> + BYTE *bits;
нельзя смешивать код с определением переменных
> + diff = 0;
> + for (i=0; i<width; i++)
> + for (j=0; j<height; j++)
> + if
> (GetPixel(memDC,i,j)!=pixels_polyline_solid1[i*height+j]) diff++;
Поскольку подобное сравнение выполняется много раз, этот цикл нужно вынести в
отдельную функцию, вместе со всем повторяющимся кодом.
> + for (i=0; i<50; i++)
> + for (j=0; j<50; j++)
> + SetPixel(memDC,i,j,RGB(0,0,0));
Заливку области можно выполнять специальной функцией
> +
> +
> + DeleteDC(memDC);
> +
> + DeleteObject(pen0);
> + DeleteObject(pen1);
> + DeleteObject(pen2);
> + DeleteObject(pen3);
Съехали отступы
> +
> +}
> +
> +START_TEST(dib)
> +{
> + CryptAcquireContextW(&crypt_prov, NULL, NULL, PROV_RSA_FULL,
> CRYPT_VERIFYCONTEXT);
Это зачем здесь? Вроде криптография ни при чём :)
> + test_simple_graphics();
> + test_GetPixel();
> + test_SetPixel();
> + test_BitBlt();
> + test_BitBlt_rop();
> + test_StretchDIBits();
> + test_Polyline_SolidPen();
> + CryptReleaseContext(crypt_prov, 0);
Это зачем здесь?
--
С уважением,
Виталий Липатов
Россия, Санкт-Петербург. www.etersoft.ru
GNU! ALT Linux Team! WINE! WIKI! LaTeX! LyX!
Подробная информация о списке рассылки Wine-devel