- 1
- 2
- 3
- 4
void Draw_Pixel_Memset(UINT color, //color = _RGB32BIT(a,r,g,b) ((b) + ((g) << 8) + ((r) << 16) + ((a) << 24))
UINT *buffer){ //buffer = (UINT*) ddsd.lpSurface
memset(buffer, color,8);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+170
void Draw_Pixel_Memset(UINT color, //color = _RGB32BIT(a,r,g,b) ((b) + ((g) << 8) + ((r) << 16) + ((a) << 24))
UINT *buffer){ //buffer = (UINT*) ddsd.lpSurface
memset(buffer, color,8);
}
Рисование пикселя с помощью meset()
Подскажите, пожалуйста, почему при использование этой функции в 32 битном режиме точка получается какового то серого цвета.
С другой стороны если использовать 8 битный режим то пиксель будет нужного цвета.
Источник: http://www.gamedev.ru/code/forum/?id=145274
RaZeR 19.03.2011 13:27 # 0
"Моя установить"
absolut 19.03.2011 18:32 # 0
SIGSEGV 19.03.2011 14:19 # 0
TheCalligrapher 19.03.2011 21:33 # +1
Почему 8 - не ясно. Могу предположить, что подразумевалась функция `memcpy` c `sizeof color`? Но это было бы то же самое, что банальное присваивание `*buffer = color`. Опять же 8 вместо `sizeof color` смущает. Поэтому какой головой думал тут аффтар и что он пытался соорудить своим "мемсетом" - не ясно.
absolut 19.03.2011 21:37 # +3
Вообще-то принимает она как раз int, но интерпретирует потом как unsigned char.
TheCalligrapher 19.03.2011 21:39 # 0
TarasB 19.03.2011 23:41 # +2
Судя по разговору по ссылке, он ещё не умеет думать.
Kirinyale 20.03.2011 00:08 # 0
std::fill_n(buffer, 1, color);
TarasB 20.03.2011 00:18 # 0
Kirinyale 20.03.2011 00:21 # 0
ctm 21.03.2011 07:45 # −2
size = 8; // ну не знаю уж почему 8 - рисуете горизонтальную линию из двух пикселей?
*buffer = color;
memcpy(&(buffer[1]), buffer, size - sizeof(UINT)); // это нужно если все-таки "линия"
а вообще, если скорость критична, то советую найти Graphics32 - там в исходниках FillLongword_MMX - оно правда для Delphi, но разберетесь:)
bugmenot 21.03.2011 16:03 # −1
пикселов
absolut 21.03.2011 16:24 # +3
p.s. даже словарь мозиллы "пикселов" подчеркивает как ошибку.
bugmenot 21.03.2011 17:13 # 0
SIGSEGV 30.03.2011 19:29 # 0
Кладут в буфер
bugmenot 30.03.2011 21:25 # 0
istem 31.03.2011 01:25 # +1
SmackMyBitchUp 29.04.2011 06:00 # 0