#include "components/viz/service/display_embedder/software_output_surface.h"
#include <utility>
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/memory/ref_counted.h"
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/service/display/output_surface_client.h"
#include "components/viz/service/display/output_surface_frame.h"
#include "components/viz/service/display/software_output_device.h"
#include "gpu/command_buffer/common/swap_buffers_complete_params.h"
#include "ui/gfx/presentation_feedback.h"
#include "ui/gfx/swap_result.h"
#include "ui/gfx/vsync_provider.h"
#include "ui/latency/latency_info.h"
namespace viz {
SoftwareOutputSurface::SoftwareOutputSurface(
std::unique_ptr<SoftwareOutputDevice> device)
: … { … }
SoftwareOutputSurface::~SoftwareOutputSurface() = default;
void SoftwareOutputSurface::BindToClient(OutputSurfaceClient* client) { … }
void SoftwareOutputSurface::EnsureBackbuffer() { … }
void SoftwareOutputSurface::DiscardBackbuffer() { … }
void SoftwareOutputSurface::Reshape(const ReshapeParams& params) { … }
void SoftwareOutputSurface::SwapBuffers(OutputSurfaceFrame frame) { … }
void SoftwareOutputSurface::SwapBuffersCallback(base::TimeTicks swap_time,
int64_t swap_trace_id,
const gfx::Size& pixel_size) { … }
void SoftwareOutputSurface::UpdateVSyncParameters(base::TimeTicks timebase,
base::TimeDelta interval) { … }
void SoftwareOutputSurface::SetUpdateVSyncParametersCallback(
UpdateVSyncParametersCallback callback) { … }
gfx::OverlayTransform SoftwareOutputSurface::GetDisplayTransform() { … }
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
void SoftwareOutputSurface::SetNeedsSwapSizeNotifications(
bool needs_swap_size_notifications) { … }
#endif
}