Существует ли способ изменить пиксели заднего буфера d3d9?
У меня есть возможность получить данные о пикселях заднего буфера хуком метода EndScene()
HRESULT MyEndScene(IDirect3DDevice9* self)
{
D3DLOCKED_RECT d3dlr;
D3DPRESENT_PARAMETERS d3dpp;
IDirect3DSwapChain9* pSwapChain;
self->GetSwapChain(0, &pSwapChain);
pSwapChain->GetPresentParameters(&d3dpp);
MyReset(self, &d3dpp); // меняет флаг параметров
D3DSURFACE_DESC desc;
LPDIRECT3DSURFACE9 back_buffer = NULL;
self->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &back_buffer);
back_buffer->GetDesc(&desc);
back_buffer->LockRect(&d3dlr, NULL, D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_READONLY);
//тут я могу получить указатель на данные о пикселях d3dlr.pBits
back_buffer->UnlockRect();
back_buffer->Release();
return oEndScene(self);
}
Эти данные я могу читать, но если я их изменю, ничего не произойдет. Существует ли какой-нибудь способ напрямую менять RGBA байты пикселей заднего буфера перед вызовом Present так, что бы менялось изображение?