Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

У DirectX 8 пытаюсь применить процедуру Lock к BackBuffer [Delphi, Windows]


Spose ©   (2003-10-06 23:45:00) 

У DirectX 8 пытаюсь применить процедуру Lock к BackBuffer
Но к сожалению, выходной компонент TD3DLocked_Rect почемуто получает pbits=0 и Pitch=0, а эти значения мне очень нужны для вывода изображения! Помогите кто может, по возможности с примером!
Дело в том что в C++ это все работало...

2Cyborg А нафига было ветку закрывать? Сами не знаете не лезьте!

var
LRect: TD3DLocked_Rect;
p:pRect;
********************
begin
********************
p.Left:=0;
p.Top:=0;
p.Bottom:=480;
p.Right:=640;
********************
m_pBackBuffer[0].LockRect(lrect,p,0); //Бесполезно :((
********************
BackBuffer[0].UnlockRect();
********************
end;


Sapersky   (2003-10-07 10:30:00) [1]

Да вот товарищ думает Spose©  (06.10.03 23:45), что каким-то. Я пытаюсь его убедить, что  никаким... наверное :)


cyborg   (2003-10-07 10:08:00) [2]

А я то тут каким боком?


Sapersky   (2003-10-07 10:01:00) [3]

Var p : pRect;
begin
p.Left:=0;


Хм... Это работает? Очень странно. Не должно :)
PRect - это указатель. Для того, чтобы его использовать как переменную, нужно, вообще-то, выделить память. Хотя в данном случае проще объявить Var p : TRect и затем LockRect(lrect,@p,0).

BackBuffer[0]

И что это значит? Бэкбуферы хранятся в массиве? Зачем? Ведь реально нужен, вроде, только последний, к тому же он обычно один.
Далее - зачем, собственно, его лочить? Такая операция даже в более ранних DX считается плохим тоном (на Королевстве Дельфи есть статья про блендинг спрайтов в DirectDraw, где всё неплохо объяснено). Если уж нужно что-то произвольное нарисовать, создаём буфер в системной памяти, лочим, заполняем, и копируем (аппаратно) в видеопамять. Или используем буфер как текстуру.

2Cyborg А нафига было ветку закрывать? Сами не знаете не лезьте!
Ветки закрывает модератор. Чем в данном случае он руководствовался - сказать трудно (неисповедимы пути господни, ага :))


Наверх

Титульная страница Поиск, карта сайта Написать письмо