_Use_decl_annotations_ HRESULT WINAPI DXGISwapChainProxy::Present1( UINT sync_interval, UINT present_flags, const DXGI_PRESENT_PARAMETERS* present_parameters) { hadesmem::detail::LastErrorPreserver last_error_preserver; HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A("Args: [%p] [%u] [%u] [%p].", this, sync_interval, present_flags, present_parameters); auto& callbacks = GetOnFrameDXGICallbacks(); callbacks.Run(swap_chain_); last_error_preserver.Revert(); auto const swap_chain = static_cast<IDXGISwapChain1*>(swap_chain_); auto const ret = swap_chain->Present1(sync_interval, present_flags, present_parameters); last_error_preserver.Update(); HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A("Ret: [%ld].", ret); return ret; }
ULONG WINAPI DirectInput8WProxy::Release() { hadesmem::detail::LastErrorPreserver last_error_preserver; refs_--; HADESMEM_DETAIL_ASSERT(refs_ >= 0); if (refs_ == 0) { Cleanup(); } last_error_preserver.Revert(); auto const ret = direct_input_->Release(); last_error_preserver.Update(); HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A( "Internal refs: [%lu]. External refs: [%lld].", ret, refs_); if (ret == 0) { delete this; } return ret; }
ULONG WINAPI DirectInput8WProxy::AddRef() { refs_++; auto const ret = direct_input_->AddRef(); HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A( "Internal refs: [%lu]. External refs: [%lld].", ret, refs_); return ret; }
HRESULT WINAPI DXGISwapChainProxy::Present(UINT sync_interval, UINT flags) { hadesmem::detail::LastErrorPreserver last_error_preserver; HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A( "Args: [%p] [%u] [%u].", this, sync_interval, flags); auto& callbacks = GetOnFrameDXGICallbacks(); callbacks.Run(swap_chain_); last_error_preserver.Revert(); auto const ret = swap_chain_->Present(sync_interval, flags); last_error_preserver.Update(); HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A("Ret: [%ld].", ret); return ret; }
ULONG WINAPI DXGISwapChainProxy::AddRef() { refs_++; auto const ret = swap_chain_->AddRef(); HADESMEM_DETAIL_TRACE_NOISY_FORMAT_A( "Internal refs: [%lu]. External refs: [%lld].", ret, refs_); return ret; }