/* * Copyright (C) 2017-2020 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "opencl/source/sharings/sharing_factory.h" #include namespace NEO { class Context; class DriverInfo; template struct D3DCreateContextProperties { typename D3D::D3DDevice *pDevice = nullptr; bool argumentsDefined = false; }; template class D3DSharingContextBuilder : public SharingContextBuilder { protected: std::unique_ptr> contextData; public: bool processProperties(cl_context_properties &propertyType, cl_context_properties &propertyValue, cl_int &errcodeRet) override; bool finalizeProperties(Context &context, int32_t &errcodeRet) override; }; template class D3DSharingBuilderFactory : public SharingBuilderFactory { public: std::unique_ptr createContextBuilder() override; std::string getExtensions(DriverInfo *driverInfo) override; void fillGlobalDispatchTable() override; void *getExtensionFunctionAddress(const std::string &functionName) override; void setExtensionEnabled(DriverInfo *driverInfo) override; bool extensionEnabled = true; }; } // namespace NEO