c++ - Resizing a DXGI swap chain bound to a Direct2D render target -


i have direct2d render target created id2d1factory::createdxgisurfacerendertarget. when receive wm_size message, try resize corresponding swap chain calling idxgiswapchain::resizebuffers, fails dxgi_error_invalid_call (0x887a0001). believe it's because of following stated the resizebuffers documentation:

you can't resize swap chain unless release outstanding references buffers. must release of direct , indirect references on buffers in order resizebuffers succeed.

direct references held application after calls addref on resource.

indirect references held views resource, binding view of resource device context, command list used resource, command list used view resource, command list executed command list used resource, , on.

i assume direct2d render target created id2d1rendertarget::createdxgisurfacerendertarget 1 such indirect reference. can't imagine should recreate render target everytime window resized, should do?

nevermind, apparently render target need re-created everytime window resized, explained here.


Comments