forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Разработка LIB (http://forum.boolean.name/forumdisplay.php?f=58)
-   -   Вопрос c++ и b3d (http://forum.boolean.name/showthread.php?t=4431)

LD 13.09.2007 10:23

Вопрос c++ и b3d
 
Хочу попробовать написать эффект glow для б3д на си, мне интересны две вещи:
1) как получить содержимое заднего (экранного, текстурного) буффера блица для последующей обработки?
2)как его вернуть блицу?
Извините, если тема повторная, я с мобильного, искать неудобно :-)

jimon 13.09.2007 17:30

Re: Вопрос c++ и b3d
 
ну перехватываеш хендл DX7 Device и копаеш дальше в C++ как с DX7 :)

alcoSHoLiK 13.09.2007 18:38

Re: Вопрос c++ и b3d
 
Хендл_буфера + 4 = указатель на содержимое буфера. Чтобы передать его в длл, надо в decls-файле в качестве типа параметра указать *, например
Код:

MyFunc(buffer_ptr*):"_MyFunc@4"
В C тогда нужно для параметра указывать тип unsigned char**.

Можно просто передать как целочисленный параметр. В С нужно будет сделать преобразование типа тогда.

Тут инфа про необходимые смещения http://blitz.pp.ru/forum/showthread.php?s=&threadid=203

HolyDel 16.09.2007 06:55

Re: Вопрос c++ и b3d
 
можеш reinterpret_cast<>() заюзать, для перевода простой смертной переменной в указатель на чтолибо.

-=Jack=- 19.02.2009 12:16

Ответ: Вопрос c++ и b3d
 
А можно и просто получить указатель на устройство, и использовать функцию IDirect3DDevice7::GetBackBuffer().
>как его вернуть блицу?
никак не надо. Ты получаешь указатель на буфер, а не его копию. Тоесть ты блокируешь его, делаешь своё дело, разблокируешь и данные уже записаны в бэк-буфер.

NitE 19.02.2009 19:22

Ответ: Вопрос c++ и b3d
 
-=Jack=-, полезно !
долго копал да ?


Часовой пояс GMT +4, время: 15:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot