Now that we don't need static methods on the client, we can switch
the construction pattern away from a bunch of forward declarations
to a single forward declaration with virtual methods. Since most
platforms don't implement all methods, this is a nice cleanup.
It also stops passing MediaGpuChannelManager everywhere since it
must only be used on the gpu task runner which makes it risky to
pass to client implementations.
Since GpuMojoMediaClientWin can now have member variables, it also
relocates ownership of the D3D11Device and D3D12Device variables
to remove a bunch of BUILDFLAGs.
Bug: 40287910
Change-Id: I9209f520251405f0cd4630a5628daec9a8f44574
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5429047
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jianlin Qiu <jianlin.qiu@intel.com>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1284842}