Добрый день, уважаемые коллеги.
Во время тестирования нашего программного продукта обнаружили, что на некоторых картах 2 запуска функции mapPaintToXImage в рамках разных процессов с одними и теми же параметрами дают разные результаты.
Изображения после первого запуска (https://forsys.ru/nextcloud/index.php/s/N7JKXjjbZemrmTS ):
Изображение после второго запуска (https://forsys.ru/nextcloud/index.php/s/JMSnj9BxAPJWdb9 ):
Масштаб, смещение и размер изображения полностью совпадают. Красным подсвечены пиксели, которые не совпадают с первым запуском.
Отсюда вопрос: что необходимо сделать, что бы 2 запуска mapPaintToXImage в рамках разных процессов давали одинаковый результат?
Изображение формирует так:
Во время тестирования нашего программного продукта обнаружили, что на некоторых картах 2 запуска функции mapPaintToXImage в рамках разных процессов с одними и теми же параметрами дают разные результаты.
Изображения после первого запуска (
Изображение после второго запуска (
Масштаб, смещение и размер изображения полностью совпадают. Красным подсвечены пиксели, которые не совпадают с первым запуском.
Отсюда вопрос: что необходимо сделать, что бы 2 запуска mapPaintToXImage в рамках разных процессов давали одинаковый результат?
Изображение формирует так:
Код |
---|
func(int mapX, int mapY, int w, int h) { int newW = w; int newH = h; RECT rect; rect.left = mapX; rect.top = mapY; rect.right = mapX + newW; rect.bottom = mapY + newH; const int mapDepth = 32; XIMAGEDESC xImagedesc; long allignWidth = newW * (mapDepth / 8); long size = allignWidth * newH; char* lpBits = NULL; lpBits = new char[size]; memset(lpBits, 0x0, size); xImagedesc.Point = lpBits; // Address of pixels area xImagedesc.Width = newW; // String width in pixels xImagedesc.Height = newH; // String amount xImagedesc.Depth = mapDepth;// Element size in bits (8, 15, 16, 24, 32) xImagedesc.CellSize = mapDepth / 8;// Element size in bytes xImagedesc.RowSize = newW * xImagedesc.CellSize;// String width in bytes long int res = wrapper->mapPaintToXImage(hMap, &xImagedesc, 0, 0, &rect); .... } |