- 1
- 2
- 3
- 4
- 5
class Screen
{
private:
unsigned char *data; // do not move
size_t size; // do not move
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−27
class Screen
{
private:
unsigned char *data; // do not move
size_t size; // do not move
Don't move or I'll shoot!
А почему нельзя двигать? Используются какие-то грязные хаки с доступом к полям по смещению от начала объекта?
получается такая структура с хелперами, если её подогнать под нужный layout и поставить указатель, то можно дальше без байтоёбства работать уже с пикселами
в общем-то хак, но полезный
> можно дальше без байтоёбства работать уже с пикселами
Как байтоебство при работе с самой структурой Screen (которое осталось за кадром, но судя по don't move существует) связано с байтоебством при работе с пикселями (на которые указывает data)??
Имхо классы не предназначены для наложения их на что-либо. И лучше наложить куда нужно структуру (при описании которой не забыт pragma pack!), и аккуратно скопировать нужные поля в поля класса.
P.S. Пришел некий Вася Пупкин и добавил этому классу виртуальный метод. Кровь-кишки-распидорасило.
Better safe than sorry...
> биосом адаптера
Мда, все даже хуже чем мы тут обсуждали. Автор кода намертво пришил поля класса тупо потому, что не знал, как с ассемблера получить доступ к ним.
Не встречал таких людей, которые ковыряли бы классы из ассемблера.