[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