Объединить Surface.Lock и Surface.GetDC

Тема в разделе "WASM.DirectX", создана пользователем DevilDevil, 13 апр 2008.

  1. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    При редактировании поверхности, хотелось бы "объединить" эти методы; причём крайне желательно получать DC не на всю поверхность, а только на часть, на Rect.

    Стал читать DX7 Sdk, оказывается:
    1) использовать HDC и данные (по Lock-у) одновременно не получится.
    2) GetDC() на самом деле использует Lock :)

    Из чего я делаю вывод, что как то можно ассоциировать HDC с заЛоченной областью памяти. И это при всём при том, что форматы пиксела вроде как не совпадают О_о?

    Теперь мой вопрос.
    Как это можно сделать: ассоциировать DC с залоченной памятью.

    Буду рад помощи.
     
  2. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    Как оказывается, форматы пиксела битмапа и поверхности совпадают: сначала B, потом G, потом R, в 32битном фрмате может быть A. (палитровые варианты не рассматриваем). Мне посоветовали юзать SetDIBitsToDevice, но:

    1) я никак не могу разобраться с параметрами. помогите пожалуйста.
    2) возможно ли указать DC, что стоки пикселей идут не снизу вверх, а сверху книз ?
     
  3. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    И снова здравствуйте, уважаемые форумчане!

    Такой вопрос...

    Для поверхности по скорости нет разницы: делать Lock(NULL, ...) или Lock() одного пикселя ? Pitch всегда будет одним и тем же ? Его как-то можно заранее опеределить ?