splited and Created VKDeviceSampler.cpp
This commit is contained in:
parent
fb15e1bf5e
commit
ecbfc38d0c
@ -122,6 +122,7 @@ SET(VK_DEVICE_SOURCE ${SG_INCLUDE_PATH}/VKDevice.h
|
|||||||
Vulkan/VKDeviceBuffer.cpp
|
Vulkan/VKDeviceBuffer.cpp
|
||||||
Vulkan/VKDeviceImage.cpp
|
Vulkan/VKDeviceImage.cpp
|
||||||
Vulkan/VKDeviceTexture.cpp
|
Vulkan/VKDeviceTexture.cpp
|
||||||
|
Vulkan/VKDeviceSampler.cpp
|
||||||
Vulkan/VKDeviceMaterial.cpp
|
Vulkan/VKDeviceMaterial.cpp
|
||||||
Vulkan/VKDeviceFramebuffer.cpp
|
Vulkan/VKDeviceFramebuffer.cpp
|
||||||
Vulkan/VKDeviceSwapchain.cpp
|
Vulkan/VKDeviceSwapchain.cpp
|
||||||
|
80
src/SceneGraph/Vulkan/VKDeviceSampler.cpp
Normal file
80
src/SceneGraph/Vulkan/VKDeviceSampler.cpp
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
#include<hgl/graph/VKDevice.h>
|
||||||
|
#include<hgl/graph/VKSampler.h>
|
||||||
|
VK_NAMESPACE_BEGIN
|
||||||
|
Sampler *GPUDevice::CreateSampler(VkSamplerCreateInfo *sci)
|
||||||
|
{
|
||||||
|
static VkSamplerCreateInfo default_sampler_create_info=
|
||||||
|
{
|
||||||
|
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
|
||||||
|
nullptr,
|
||||||
|
0,
|
||||||
|
VK_FILTER_LINEAR,
|
||||||
|
VK_FILTER_LINEAR,
|
||||||
|
VK_SAMPLER_MIPMAP_MODE_LINEAR,
|
||||||
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||||
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||||
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||||
|
0.0f,
|
||||||
|
false,
|
||||||
|
1.0f,
|
||||||
|
false,
|
||||||
|
VK_COMPARE_OP_NEVER,
|
||||||
|
0.0f,
|
||||||
|
0.0f,
|
||||||
|
VK_BORDER_COLOR_INT_OPAQUE_BLACK,//VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
|
||||||
|
false
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!sci)
|
||||||
|
sci=&default_sampler_create_info;
|
||||||
|
|
||||||
|
VkSampler sampler;
|
||||||
|
|
||||||
|
sci->sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
|
||||||
|
|
||||||
|
if(vkCreateSampler(attr->device,sci,nullptr,&sampler)!=VK_SUCCESS)
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
return(new Sampler(attr->device,sampler));
|
||||||
|
}
|
||||||
|
|
||||||
|
Sampler *GPUDevice::CreateSampler(Texture *tex)
|
||||||
|
{
|
||||||
|
VkSamplerCreateInfo sci=
|
||||||
|
{
|
||||||
|
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
|
||||||
|
nullptr,
|
||||||
|
0,
|
||||||
|
VK_FILTER_LINEAR,
|
||||||
|
VK_FILTER_LINEAR,
|
||||||
|
VK_SAMPLER_MIPMAP_MODE_LINEAR,
|
||||||
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||||
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||||
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||||
|
0.0f,
|
||||||
|
false,
|
||||||
|
1.0f,
|
||||||
|
false,
|
||||||
|
VK_COMPARE_OP_NEVER,
|
||||||
|
0.0f,
|
||||||
|
0.0f,
|
||||||
|
VK_BORDER_COLOR_INT_OPAQUE_BLACK,//VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
|
||||||
|
false
|
||||||
|
};
|
||||||
|
|
||||||
|
VkSampler sampler;
|
||||||
|
|
||||||
|
sci.anisotropyEnable = attr->physical_device->SupportSamplerAnisotropy();
|
||||||
|
|
||||||
|
if(sci.anisotropyEnable)
|
||||||
|
sci.maxAnisotropy = attr->physical_device->GetMaxSamplerAnisotropy();
|
||||||
|
|
||||||
|
if(tex)
|
||||||
|
sci.maxLod=tex->GetMipLevel();
|
||||||
|
|
||||||
|
if(vkCreateSampler(attr->device,&sci,nullptr,&sampler)!=VK_SUCCESS)
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
return(new Sampler(attr->device,sampler));
|
||||||
|
}
|
||||||
|
VK_NAMESPACE_END
|
@ -1,5 +1,4 @@
|
|||||||
#include<hgl/graph/VKTexture.h>
|
#include<hgl/graph/VKTexture.h>
|
||||||
#include<hgl/graph/VKSampler.h>
|
|
||||||
#include<hgl/graph/VKDevice.h>
|
#include<hgl/graph/VKDevice.h>
|
||||||
#include<hgl/graph/VKPhysicalDevice.h>
|
#include<hgl/graph/VKPhysicalDevice.h>
|
||||||
#include<hgl/graph/VKFence.h>
|
#include<hgl/graph/VKFence.h>
|
||||||
@ -411,81 +410,4 @@ bool GPUDevice::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t cou
|
|||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Sampler *GPUDevice::CreateSampler(VkSamplerCreateInfo *sci)
|
|
||||||
{
|
|
||||||
static VkSamplerCreateInfo default_sampler_create_info=
|
|
||||||
{
|
|
||||||
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
|
|
||||||
nullptr,
|
|
||||||
0,
|
|
||||||
VK_FILTER_LINEAR,
|
|
||||||
VK_FILTER_LINEAR,
|
|
||||||
VK_SAMPLER_MIPMAP_MODE_LINEAR,
|
|
||||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
|
||||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
|
||||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
|
||||||
0.0f,
|
|
||||||
false,
|
|
||||||
1.0f,
|
|
||||||
false,
|
|
||||||
VK_COMPARE_OP_NEVER,
|
|
||||||
0.0f,
|
|
||||||
0.0f,
|
|
||||||
VK_BORDER_COLOR_INT_OPAQUE_BLACK,//VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
if(!sci)
|
|
||||||
sci=&default_sampler_create_info;
|
|
||||||
|
|
||||||
VkSampler sampler;
|
|
||||||
|
|
||||||
sci->sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
|
|
||||||
|
|
||||||
if(vkCreateSampler(attr->device,sci,nullptr,&sampler)!=VK_SUCCESS)
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
return(new Sampler(attr->device,sampler));
|
|
||||||
}
|
|
||||||
|
|
||||||
Sampler *GPUDevice::CreateSampler(Texture *tex)
|
|
||||||
{
|
|
||||||
VkSamplerCreateInfo sci=
|
|
||||||
{
|
|
||||||
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
|
|
||||||
nullptr,
|
|
||||||
0,
|
|
||||||
VK_FILTER_LINEAR,
|
|
||||||
VK_FILTER_LINEAR,
|
|
||||||
VK_SAMPLER_MIPMAP_MODE_LINEAR,
|
|
||||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
|
||||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
|
||||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
|
||||||
0.0f,
|
|
||||||
false,
|
|
||||||
1.0f,
|
|
||||||
false,
|
|
||||||
VK_COMPARE_OP_NEVER,
|
|
||||||
0.0f,
|
|
||||||
0.0f,
|
|
||||||
VK_BORDER_COLOR_INT_OPAQUE_BLACK,//VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
VkSampler sampler;
|
|
||||||
|
|
||||||
sci.anisotropyEnable = attr->physical_device->SupportSamplerAnisotropy();
|
|
||||||
|
|
||||||
if(sci.anisotropyEnable)
|
|
||||||
sci.maxAnisotropy = attr->physical_device->GetMaxSamplerAnisotropy();
|
|
||||||
|
|
||||||
if(tex)
|
|
||||||
sci.maxLod=tex->GetMipLevel();
|
|
||||||
|
|
||||||
if(vkCreateSampler(attr->device,&sci,nullptr,&sampler)!=VK_SUCCESS)
|
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
return(new Sampler(attr->device,sampler));
|
|
||||||
}
|
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user