У меня есть IDirect3DSurface9, пул по умолчанию, формат YUV. Как я могу эффективно получить из него биты растрового изображения? На данный момент я:
device->CreateRenderTarget(surf_desc.Width, surf_desc. Height, D3DFMT_A8R8G8B8, D3DMULTISAMPLE_NONE, 0, TRUE, &render_target, NULL)
device->StretchRect(videomem_surf, NULL, render_target_, NULL, D3DTEXF_NONE)
device->CreateOffscreenPlainSurface(surf_desc. Width, surf_desc. Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &sysmem_offscreen_surf, NULL)
device->GetRenderTargetData(render_target, sysmem_offscreen_surface)
это выглядит немного накладным, из-за стольких копирований: с оригинальной поверхности на цель рендеринга, затем на внеэкранную поверхность, затем на совместимый битмап, и наконец в мой буфер. Как это можно улучшить?
спасибо