Files
FlaxEngine/Source/Engine/GraphicsDevice/Vulkan/GPUAdapterVulkan.h
Wojciech Figat a7e428a21c Merge branch 'master' into 1.5
# Conflicts:
#	Content/Shaders/GI/DDGI.flax
#	Content/Shaders/GI/GlobalSurfaceAtlas.flax
#	Content/Shaders/TAA.flax
#	Content/Shaders/VolumetricFog.flax
#	Source/Editor/CustomEditors/Editors/ActorTagEditor.cs
#	Source/Engine/Core/Config/GraphicsSettings.cpp
#	Source/Engine/Engine/PostProcessEffect.cs
#	Source/Engine/Graphics/GPUResourcesCollection.cpp
#	Source/Engine/Graphics/GPUResourcesCollection.h
#	Source/Engine/Graphics/PostProcessBase.h
#	Source/FlaxEngine.Gen.cs
2023-01-10 15:37:55 +01:00

79 lines
1.5 KiB
C++

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#if GRAPHICS_API_VULKAN
#include "Engine/Graphics/GPUAdapter.h"
#include "VulkanPlatform.h"
#include "IncludeVulkanHeaders.h"
/// <summary>
/// Graphics Device adapter implementation for Vulkan backend.
/// </summary>
class GPUAdapterVulkan : public GPUAdapter
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="GPUAdapterVulkan"/> class.
/// </summary>
GPUAdapterVulkan()
: Gpu(VK_NULL_HANDLE)
{
}
GPUAdapterVulkan(const GPUAdapterVulkan& other)
: GPUAdapterVulkan()
{
*this = other;
}
GPUAdapterVulkan& operator=(const GPUAdapterVulkan& other)
{
Gpu = other.Gpu;
GpuProps = other.GpuProps;
Description = other.Description;
return *this;
}
public:
/// <summary>
/// The GPU device handle.
/// </summary>
VkPhysicalDevice Gpu;
/// <summary>
/// The GPU device properties.
/// </summary>
VkPhysicalDeviceProperties GpuProps;
/// <summary>
/// The GPU description.
/// </summary>
String Description;
public:
// [GPUAdapter]
bool IsValid() const override
{
return Gpu != VK_NULL_HANDLE;
}
void* GetNativePtr() const override
{
return (void*)Gpu;
}
uint32 GetVendorId() const override
{
return GpuProps.vendorID;
}
String GetDescription() const override
{
return Description;
}
};
#endif