Exemplo n.º 1
0
VkResult Anvil::MemoryAllocatorBackends::VMA::map(void*        in_memory_object,
                                                  VkDeviceSize in_start_offset,
                                                  VkDeviceSize in_size,
                                                  void**       out_result_ptr)
{
    ANVIL_REDUNDANT_ARGUMENT(in_size);
    ANVIL_REDUNDANT_ARGUMENT(in_start_offset);

    anvil_assert(in_start_offset == 0);

    return vmaMapMemory(m_vma_allocator_ptr->get_handle(),
                        static_cast<VmaAllocation>(in_memory_object),
                        out_result_ptr);
}
Exemplo n.º 2
0
/** Entry-point for the Vulkan loader's debug callbacks.
 *
 *  For argument discussion, please see the extension specification
 **/
VkBool32 VKAPI_PTR Anvil::Instance::debug_callback_pfn_proc(VkDebugReportFlagsEXT      in_message_flags,
                                                            VkDebugReportObjectTypeEXT in_object_type,
                                                            uint64_t                   in_src_object,
                                                            size_t                     in_location,
                                                            int32_t                    in_msg_code,
                                                            const char*                in_layer_prefix_ptr,
                                                            const char*                in_message_ptr,
                                                            void*                      in_user_data)
{
    Anvil::Instance* instance_ptr = static_cast<Anvil::Instance*>(in_user_data);

    ANVIL_REDUNDANT_ARGUMENT(in_src_object);
    ANVIL_REDUNDANT_ARGUMENT(in_location);
    ANVIL_REDUNDANT_ARGUMENT(in_msg_code);
    ANVIL_REDUNDANT_ARGUMENT(in_user_data);

    return instance_ptr->m_validation_callback_function(in_message_flags,
                                                        in_object_type,
                                                        in_layer_prefix_ptr,
                                                        in_message_ptr);
}
VkResult Anvil::MemoryAllocatorBackends::VMA::map(void*        in_memory_object,
                                                  VkDeviceSize in_start_offset,
                                                  VkDeviceSize in_memory_block_start_offset,
                                                  VkDeviceSize in_size,
                                                  void**       out_result_ptr)
{
    VkResult result;
    void*    result_ptr = nullptr;

    ANVIL_REDUNDANT_ARGUMENT(in_size);
    ANVIL_REDUNDANT_ARGUMENT(in_start_offset);

    anvil_assert(in_start_offset == 0);

    result = vmaMapMemory(m_vma_allocator_ptr->get_handle(),
                          static_cast<VmaAllocation>(in_memory_object),
                         &result_ptr);

    result_ptr = reinterpret_cast<uint8_t*>(result_ptr) - in_memory_block_start_offset;

    *out_result_ptr = result_ptr;
    return result;
}