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

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

Как снять программно скриншот с экрана в FullScreen DirectX?


AlexT1000 ©   (2003-10-02 12:26:00) 

И сохранить его как кусок памяти.


Sapersky   (2003-10-04 11:47:00) [1]

как создать сюрфасе

IDirect3DDevice8.CreateImageSurface

Или использовать IDirect3DDevice8.GetBackBuffer, там вроде создавать поверхность не надо (возвращается указатель на существующий surface).


AlexT1000   (2003-10-03 14:23:00) [2]

указывал и 1 . нифига

а вот из второй части вреде следует , что типа нужно всетаки эту поверхность создать.

Не могу найти функцию ,которая создает сюрфасе. вчера нашел но не помню как называется. как создать сюрфасе?


NailMan   (2003-10-03 13:24:00) [3]

Точно не помню(исходники с игрой дома), но вроде надо либо создать эту поверхность(а мож и не надо), или номер swapchain указывай не 0, а 1.

И еще не стоит забывать, что:
"For windowed mode, the size of the destination surface should be the size of the desktop. For full-screen mode, the size of the destination surface should be the screen size."


AlexT1000   (2003-10-03 12:00:00) [4]

Делаю так ,

IDirect3DSurface9* DestSurface =NULL;
if (m_pd3dDevice->GetFrontBufferData(0,DestSurface) == D3DERR_INVALIDCALL)
{
return ;
}
но мне все время выдает эту ошибку D3DERR_INVALIDCALL не пойму что я делаю не так?!


cyborg   (2003-10-02 16:57:00) [5]

Да, нужно заметить, что [1] cyborg ©   (02.10.03 15:22) для DirectDraw.


NailMan   (2003-10-02 16:18:00) [6]

Если в D3D, то

var DestSurface:IDirect3DSurface8;

IDirect3DDevice8.GetFrontBuffer(DestSurface);
D3DXSaveSurfaceToFile('xxx.bmp',D3DXIFF_BMP,DestSurface,nil,nil);

Канает только с заголовками d3d 8.1 и выше.

если ddraw то нынаю - гемор наверно.


cyborg   (2003-10-02 15:22:00) [7]

Surface.Lock

TDDSurfaceDesc.lpSurface возвращаемое функцией будет содержать адрес графических данных, их и сливай.


Наверх

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