summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/ExternalTexture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webgpu/ExternalTexture.cpp')
-rw-r--r--dom/webgpu/ExternalTexture.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/dom/webgpu/ExternalTexture.cpp b/dom/webgpu/ExternalTexture.cpp
new file mode 100644
index 0000000000..0cab2ae3f2
--- /dev/null
+++ b/dom/webgpu/ExternalTexture.cpp
@@ -0,0 +1,39 @@
+/* -*- 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/. */
+
+#include "ExternalTexture.h"
+
+#ifdef XP_WIN
+# include "mozilla/webgpu/ExternalTextureD3D11.h"
+#endif
+
+namespace mozilla::webgpu {
+
+// static
+UniquePtr<ExternalTexture> ExternalTexture::Create(
+ const uint32_t aWidth, const uint32_t aHeight,
+ const struct ffi::WGPUTextureFormat aFormat,
+ const ffi::WGPUTextureUsages aUsage) {
+ UniquePtr<ExternalTexture> texture;
+#ifdef XP_WIN
+ texture = ExternalTextureD3D11::Create(aWidth, aHeight, aFormat, aUsage);
+#endif
+ return texture;
+}
+
+ExternalTexture::ExternalTexture(const uint32_t aWidth, const uint32_t aHeight,
+ const struct ffi::WGPUTextureFormat aFormat,
+ const ffi::WGPUTextureUsages aUsage)
+ : mWidth(aWidth), mHeight(aHeight), mFormat(aFormat), mUsage(aUsage) {}
+
+ExternalTexture::~ExternalTexture() {}
+
+void ExternalTexture::SetSubmissionIndex(uint64_t aSubmissionIndex) {
+ MOZ_ASSERT(aSubmissionIndex != 0);
+
+ mSubmissionIndex = aSubmissionIndex;
+}
+
+} // namespace mozilla::webgpu