Я объяснил свою предыдущую проблему простым вопросом. Как я могу прочитать цвета моего backbuf (fer). Если найден какой-то код, есть рабочий backbuf, заполненный цветами, можно сохранить его в растровое изображение. Но когда я пытаюсь получить указатель на эти цвета в backbuf, я получаю «ошибку» в функции lockRect. Понятия не имею почему. (мои delphi навыки и особенно direct3D очень ограничены)
var
backbuf : Idirect3Dsuface8;
r : Hresult;
p : pointer;
begin
r:=d3ddevice.GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO , backbuf);
r:=D3DXSaveSurfaceToFile('test.bmp', D3DXIFF_BMP, backbuf, 0, 0); // I can save the backbuffer to a readable file, so I know backbuf object has received the colors
p := addr(lockedRect);
zeromemory( p , sizeof ( D3Dlocked_rect ));
r:=backbuf.LockRect(lockedrect, nil , 0);
if failed(r) then form1.Caption := 'error ' //I ALWAYS GET AN ERROR -2005530516
else form1.caption := 'pitch:'+inttostr(lockedrect.Pitch)+' bits:'+inttostr(longint(lockedrect.pBits));
backbuf.UnlockRect;