Fixing pointer up and downcasting
This commit is contained in:
@@ -42,5 +42,18 @@ void Seele::VulkanPipelineLayout::create()
|
|||||||
for (size_t i = 0; i < descriptorSetLayouts.size(); ++i)
|
for (size_t i = 0; i < descriptorSetLayouts.size(); ++i)
|
||||||
{
|
{
|
||||||
PVulkanDescriptorLayout layout = descriptorSetLayouts[i].cast<VulkanDescriptorLayout>();
|
PVulkanDescriptorLayout layout = descriptorSetLayouts[i].cast<VulkanDescriptorLayout>();
|
||||||
|
layout->create();
|
||||||
|
vulkanDescriptorLayouts[i] = layout->getHandle();
|
||||||
}
|
}
|
||||||
|
VkPipelineLayoutCreateInfo createInfo =
|
||||||
|
init::PipelineLayoutCreateInfo(vulkanDescriptorLayouts.data(), vulkanDescriptorLayouts.size());
|
||||||
|
Array<VkPushConstantRange> vkPushConstants(pushConstants.size());
|
||||||
|
for (size_t i = 0; i < pushConstants.size(); i++)
|
||||||
|
{
|
||||||
|
vkPushConstants[i].offset = pushConstants[i].offset;
|
||||||
|
vkPushConstants[i].size = pushConstants[i].size;
|
||||||
|
vkPushConstants[i].stageFlags = pushConstants[i].stageFlags;
|
||||||
|
}
|
||||||
|
createInfo.pushConstantRangeCount = vkPushConstants.size();
|
||||||
|
createInfo.pPushConstantRanges = vkPushConstants.data();
|
||||||
}
|
}
|
||||||
@@ -111,7 +111,7 @@ namespace Seele
|
|||||||
{
|
{
|
||||||
return RefPtr<F>();
|
return RefPtr<F>();
|
||||||
}
|
}
|
||||||
RefObject<F>* newObject = static_cast<RefObject<F>*>(object);
|
RefObject<F>* newObject = (RefObject<F>*)object;
|
||||||
RefPtr<F> result(newObject);
|
RefPtr<F> result(newObject);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ struct TestStruct
|
|||||||
: data(10)
|
: data(10)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
~TestStruct()
|
virtual ~TestStruct()
|
||||||
{
|
{
|
||||||
|
data = 15;
|
||||||
}
|
}
|
||||||
uint32 data;
|
uint32 data;
|
||||||
};
|
};
|
||||||
@@ -33,7 +34,16 @@ BOOST_AUTO_TEST_CASE(basic_refcount)
|
|||||||
|
|
||||||
struct DerivedStruct : public TestStruct
|
struct DerivedStruct : public TestStruct
|
||||||
{
|
{
|
||||||
|
DerivedStruct()
|
||||||
|
:data2(20)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
~DerivedStruct()
|
||||||
|
{
|
||||||
|
data2 = 30;
|
||||||
|
}
|
||||||
|
uint32 data2;
|
||||||
};
|
};
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(inheritance_cast)
|
BOOST_AUTO_TEST_CASE(inheritance_cast)
|
||||||
@@ -46,6 +56,7 @@ BOOST_AUTO_TEST_CASE(inheritance_cast)
|
|||||||
backCast = base.cast<DerivedStruct>();
|
backCast = base.cast<DerivedStruct>();
|
||||||
}
|
}
|
||||||
BOOST_REQUIRE_EQUAL(backCast->data, 10);
|
BOOST_REQUIRE_EQUAL(backCast->data, 10);
|
||||||
|
BOOST_REQUIRE_EQUAL(backCast->data2, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(unique_ptr)
|
BOOST_AUTO_TEST_CASE(unique_ptr)
|
||||||
|
|||||||
Reference in New Issue
Block a user