Конференция "Игры" » Возможно ли создать DIB и DDB для одних данных? [Delphi, Windows]
 
  • eXo_ (18.01.12 19:47) [0]
    То есть создается DIB (CreateDIBSection).
    И как от него создать DDB, так чтобы они указывали на одни и те же данные? Т.е. в одном HDC DIB, а в другом HDC DDB?
  • MBo © (18.01.12 20:21) [1]
    Зачем это нужно?
    Данные для них - лежат в разных по назначению областях памяти
  • eXo_ (18.01.12 20:40) [2]

    > MBo ©   (18.01.12 20:21) [1]
    >
    > Зачем это нужно?


    работать с пикселями через DIB.
    а выводить через DDB. Т.к. вывод DDB быстрее в 10 раз.
  • MBo © (18.01.12 20:51) [3]
    >Т.к. вывод DDB быстрее в 10 раз.
    Проверяли?

    DirectX не подойдёт?
  • eXo_ (18.01.12 21:44) [4]

    > MBo ©   (18.01.12 20:51) [3]
    >
    > >Т.к. вывод DDB быстрее в 10 раз.
    > Проверяли?

    Да, но не я:
    См. пример Bitmap Speed.
    http://delphikingdom.ru/asp/viewitem.asp?catalogid=169#10

    >
    > DirectX не подойдёт?

    Нет. Нужен софтверный GDI.
  • Sapersky (19.01.12 03:35) [5]
  • MBo © (19.01.12 05:37) [6]
    >Да, но не я
    Проверьте лично на нужных размерах битмапов. Возможно, что скорости за глаза хватит и при работе с DIB.
  • eXo_ (19.01.12 13:33) [7]

    > MBo ©   (19.01.12 05:37) [6]
    >
    > >Да, но не я
    > Проверьте лично на нужных размерах битмапов. Возможно, что
    > скорости за глаза хватит и при работе с DIB.
    >


    Проверял. На встроенной видюхе разница где-то в 1.5 раза.
    А на достаточно мощной рАзница разнИца в 10 раз.
  • MBo © (19.01.12 16:02) [8]
    Абсолютные цифры-то какие?
    Если у меня в секунду выводится 300-700 DIB 768х576 на старенькой машине, то я и не буду про DDB вспоминать...
  • eXo_ (19.01.12 20:06) [9]

    > MBo ©   (19.01.12 16:02) [8]
    >
    > Абсолютные цифры-то какие?


    Повторить не удастся.
    Времени и так будет много отжираться - делаю софтверный рендер.
    Вывод на ДС больное место.
  • ~AQUARIUS~ (19.01.12 20:59) [10]
    DIB и DDB - несовместимы по своему определению. DIB - это изображение в строго известном и фиксированном формате. DDB - это изображение в формате, совместимом с видеоадаптером, и поэтому изменяеться от машыны к машыне, и даже при апгрейде. Так что ваша задача (в данной постановке) не имеет решения вообще
  • eXo_ (20.01.12 00:12) [11]

    > ~AQUARIUS~   (19.01.12 20:59) [10]


    > машыны к машыне


    ЖИ-ШИ


    > Так что ваша задача (в данной постановке) не имеет решения
    > вообще
    >


    TBitmap же переводит как-то DIB в DDB.
    Одни данные.
  • ~AQUARIUS~ (21.01.12 19:13) [12]

    > ЖИ-ШИ

    Давайте посмотрим, как у вас с украинским правописанием, а? Хотя, конечно же, спасибо.

    Не будьте так ленивы, посмотрите исходники TBitmap. При изменении PixelFormat битмап пересоздается и данные копируются. Примерно то же происходит при обращении к ScanLine в случае с DDB, только здесь уже на уровне ОС
  • Грамотей (29.01.12 08:53) [13]

    > eXo_   (20.01.12 00:12) [11]
    >
    > > ~AQUARIUS~   (19.01.12 20:59) [10]
    >
    >
    > > машыны к машыне
    >
    >
    > ЖИ-ШИ


    Это очень пикантно в свете:

    > А на достаточно мощной рАзница разнИца в 10 раз.


    Написать правильно, как советуется другим, не получается. Только выделение букв спасает.
  • eXo_ (29.01.12 18:55) [14]

    > Грамотей   (29.01.12 08:53) [13]


    ЧЯДНТ?
  • Грамотей (30.01.12 05:28) [15]
    -тся, - ться
    а не ЦА.
  • eXo_ (01.02.12 16:44) [16]

    > Грамотей   (30.01.12 05:28) [15]


    Это ж для красоты. :)
 
Конференция "Игры" » Возможно ли создать DIB и DDB для одних данных? [Delphi, Windows]
Есть новые Нет новых   [118646   +52][b:0][p:0.001]