mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-17 12:51:28 +00:00
This CL changes several includes which were using the system include syntax to the local syntax. This causes GN check to verify that the headers are specified correctly in the dependencies. Two missing dependencies are added to the BUILD.gn file for the Dawn tests. Bug: dawn:1373 Change-Id: I7afd5ab48f4f2e2ddaf1839058c6bbeec2b97fd0 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86940 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
74 lines
2.6 KiB
C++
74 lines
2.6 KiB
C++
// Copyright 2018 The Dawn Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef INCLUDE_DAWN_NATIVE_METALBACKEND_H_
|
|
#define INCLUDE_DAWN_NATIVE_METALBACKEND_H_
|
|
|
|
#include "dawn/dawn_wsi.h"
|
|
#include "dawn/native/DawnNative.h"
|
|
|
|
// The specifics of the Metal backend expose types in function signatures that might not be
|
|
// available in dependent's minimum supported SDK version. Suppress all availability errors using
|
|
// clang's pragmas. Dependents using the types without guarded availability will still get errors
|
|
// when using the types.
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wunguarded-availability"
|
|
|
|
struct __IOSurface;
|
|
typedef __IOSurface* IOSurfaceRef;
|
|
|
|
#ifdef __OBJC__
|
|
# import <Metal/Metal.h>
|
|
#endif // __OBJC__
|
|
|
|
namespace dawn::native::metal {
|
|
|
|
struct DAWN_NATIVE_EXPORT AdapterDiscoveryOptions : public AdapterDiscoveryOptionsBase {
|
|
AdapterDiscoveryOptions();
|
|
};
|
|
|
|
struct DAWN_NATIVE_EXPORT ExternalImageDescriptorIOSurface : ExternalImageDescriptor {
|
|
public:
|
|
ExternalImageDescriptorIOSurface();
|
|
|
|
IOSurfaceRef ioSurface;
|
|
|
|
// This has been deprecated.
|
|
uint32_t plane;
|
|
};
|
|
|
|
DAWN_NATIVE_EXPORT WGPUTexture
|
|
WrapIOSurface(WGPUDevice device, const ExternalImageDescriptorIOSurface* descriptor);
|
|
|
|
// When making Metal interop with other APIs, we need to be careful that QueueSubmit doesn't
|
|
// mean that the operations will be visible to other APIs/Metal devices right away. macOS
|
|
// does have a global queue of graphics operations, but the command buffers are inserted there
|
|
// when they are "scheduled". Submitting other operations before the command buffer is
|
|
// scheduled could lead to races in who gets scheduled first and incorrect rendering.
|
|
DAWN_NATIVE_EXPORT void WaitForCommandsToBeScheduled(WGPUDevice device);
|
|
|
|
} // namespace dawn::native::metal
|
|
|
|
#ifdef __OBJC__
|
|
namespace dawn::native::metal {
|
|
|
|
DAWN_NATIVE_EXPORT id<MTLDevice> GetMetalDevice(WGPUDevice device);
|
|
|
|
} // namespace dawn::native::metal
|
|
#endif // __OBJC__
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
#endif // INCLUDE_DAWN_NATIVE_METALBACKEND_H_
|