1. C++ / Говнокод #10866

    −27

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    class Screen
    {
    private:
            unsigned char *data; // do not move
            size_t size; // do not move

    Запостил: USB, 09 Июня 2012

    Комментарии (27) RSS

    • > do not move
      Don't move or I'll shoot!

      А почему нельзя двигать? Используются какие-то грязные хаки с доступом к полям по смещению от начала объекта?
      Ответить
      • Ставлю сто кармы на то, что это видеостраница
        Ответить
        • Да даже если так, ну лежит в data указатель на видеопамять, ну и пусть себе лежит. Почему его нельзя переместить например за size?
          Ответить
          • тогда мемберы перестанут совпадать с layout-ом, который определен биосом адаптера

            получается такая структура с хелперами, если её подогнать под нужный layout и поставить указатель, то можно дальше без байтоёбства работать уже с пикселами

            в общем-то хак, но полезный
            Ответить
            • > тогда мемберы перестанут совпадать с layout-ом, который определен биосом адаптера
              > можно дальше без байтоёбства работать уже с пикселами

              Как байтоебство при работе с самой структурой Screen (которое осталось за кадром, но судя по don't move существует) связано с байтоебством при работе с пикселями (на которые указывает data)??
              Ответить
              • > с хелперами
                Ответить
                • показать все, что скрыто
                  Ответить
                • Где тут хелперы? Я вижу тупой указатель на массив байтов.
                  Ответить
                • Или этот класс Screen накладывается на некоторую структуру (например заполняемую VESA вызовами), и затем у нее вызываются хелперы - методы для доступа к пикселям?

                  Имхо классы не предназначены для наложения их на что-либо. И лучше наложить куда нужно структуру (при описании которой не забыт pragma pack!), и аккуратно скопировать нужные поля в поля класса.

                  P.S. Пришел некий Вася Пупкин и добавил этому классу виртуальный метод. Кровь-кишки-распидорасило.

                  Better safe than sorry...
                  Ответить
            • > тогда мемберы перестанут совпадать с layout-ом, который определен биосом адаптера
              > биосом адаптера
              http://www.gamedev.ru/code/forum/?id=163201
              Ответить
    • Сериализовали сериализовали да не высериализовали?
      Ответить
    • показать все, что скрытоЯ ЁБАНЫЙ В РОТ!!!
      Ответить

    Добавить комментарий