-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmemory.cpp
41 lines (36 loc) · 1.4 KB
/
memory.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "precompiled.h"
VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(VkDevice device,
const VkMemoryAllocateInfo *pAllocateInfo,
const VkAllocationCallbacks *pAllocator,
VkDeviceMemory *pMemory)
{
VkDeviceMemory ret = new VkDeviceMemory_T;
ret->size = pAllocateInfo->allocationSize;
ret->bytes = new byte[pAllocateInfo->allocationSize];
*pMemory = ret;
return VK_SUCCESS;
}
VKAPI_ATTR void VKAPI_CALL vkFreeMemory(VkDevice device, VkDeviceMemory memory,
const VkAllocationCallbacks *pAllocator)
{
delete[] memory->bytes;
delete memory;
}
VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(VkDevice device, VkDeviceMemory memory,
VkDeviceSize offset, VkDeviceSize size,
VkMemoryMapFlags flags, void **ppData)
{
byte *data = memory->bytes;
data += offset;
*ppData = (void *)data;
return VK_SUCCESS;
}
VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(VkDevice device, VkDeviceMemory memory)
{
}
VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
const VkMappedMemoryRange *pMemoryRanges)
{
// no caching, no flushing!
return VK_SUCCESS;
}