gecko-dev/dom/webgpu/TextureView.h
Andrew Osmond c18a944c15 Bug 1754978 - Part 2. Switch WebGPU to use async image pipelines for display. r=kvark
This patch removes more main thread dependencies from the content side
of WebGPU. Instead of issuing a resource update for an external image,
we now use an async image pipeline in conjunction with
CompositableInProcessManager from part 1. This allows us to update the
HTMLCanvasElement bound to the WebGPU device without having to go
through the main thread, or even the content process after the swap
chain update / readback has been requested.

Differential Revision: https://phabricator.services.mozilla.com/D138887
2022-02-18 15:59:13 +00:00

36 lines
890 B
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef GPU_TextureView_H_
#define GPU_TextureView_H_
#include "nsWrapperCache.h"
#include "ObjectModel.h"
#include "mozilla/webgpu/WebGPUTypes.h"
namespace mozilla::webgpu {
class CanvasContext;
class Texture;
class TextureView final : public ObjectBase, public ChildOf<Texture> {
public:
GPU_DECL_CYCLE_COLLECTION(TextureView)
GPU_DECL_JS_WRAP(TextureView)
TextureView(Texture* const aParent, RawId aId);
CanvasContext* GetTargetContext() const;
const RawId mId;
private:
virtual ~TextureView();
void Cleanup();
};
} // namespace mozilla::webgpu
#endif // GPU_TextureView_H_