#include "dawn/wire/client/Instance.h"
#include <memory>
#include <string>
#include <utility>
#include "dawn/common/Log.h"
#include "dawn/common/WGSLFeatureMapping.h"
#include "dawn/wire/client/ApiObjects_autogen.h"
#include "dawn/wire/client/Client.h"
#include "dawn/wire/client/EventManager.h"
#include "dawn/wire/client/webgpu.h"
#include "partition_alloc/pointers/raw_ptr.h"
#include "tint/lang/wgsl/features/language_feature.h"
#include "tint/lang/wgsl/features/status.h"
namespace dawn::wire::client {
namespace {
class RequestAdapterEvent : public TrackedEvent { … };
WGPUWGSLFeatureName ToWGPUFeature(tint::wgsl::LanguageFeature f) { … }
}
Instance::Instance(const ObjectBaseParams& params)
: … { … }
void Instance::WillDropLastExternalRef() { … }
ObjectType Instance::GetObjectType() const { … }
WireResult Instance::Initialize(const WGPUInstanceDescriptor* descriptor) { … }
void Instance::RequestAdapter(const WGPURequestAdapterOptions* options,
WGPURequestAdapterCallback callback,
void* userdata) { … }
WGPUFuture Instance::RequestAdapterF(const WGPURequestAdapterOptions* options,
const WGPURequestAdapterCallbackInfo& callbackInfo) { … }
WGPUFuture Instance::RequestAdapter2(const WGPURequestAdapterOptions* options,
const WGPURequestAdapterCallbackInfo2& callbackInfo) { … }
WireResult Client::DoInstanceRequestAdapterCallback(ObjectHandle eventManager,
WGPUFuture future,
WGPURequestAdapterStatus status,
const char* message,
const WGPUAdapterInfo* info,
const WGPUSupportedLimits* limits,
uint32_t featuresCount,
const WGPUFeatureName* features) { … }
void Instance::ProcessEvents() { … }
WGPUWaitStatus Instance::WaitAny(size_t count, WGPUFutureWaitInfo* infos, uint64_t timeoutNS) { … }
void Instance::GatherWGSLFeatures(const WGPUDawnWireWGSLControl* wgslControl,
const WGPUDawnWGSLBlocklist* wgslBlocklist) { … }
bool Instance::HasWGSLLanguageFeature(WGPUWGSLFeatureName feature) const { … }
size_t Instance::EnumerateWGSLLanguageFeatures(WGPUWGSLFeatureName* features) const { … }
WGPUSurface Instance::CreateSurface(const WGPUSurfaceDescriptor* desc) const { … }
}
DAWN_WIRE_EXPORT WGPUStatus wgpuDawnWireClientGetInstanceFeatures(WGPUInstanceFeatures* features) { … }
DAWN_WIRE_EXPORT WGPUInstance
wgpuDawnWireClientCreateInstance(WGPUInstanceDescriptor const* descriptor) { … }