MCPcopy Create free account
hub / github.com/LibreVR/Revive / CreateSharedTextureGL

Method CreateSharedTextureGL

Revive/TextureVk.cpp:240–259  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238}
239
240bool TextureVk::CreateSharedTextureGL(unsigned int* outName)
241{
242 VK_DEVICE_FUNCTION(m_device, vkGetMemoryWin32HandleKHR);
243
244 VkMemoryGetWin32HandleInfoKHR handleInfo = { VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR };
245 handleInfo.memory = m_memory;
246 handleInfo.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR;
247 VkResult result = vkGetMemoryWin32HandleKHR(m_device, &handleInfo, &m_hMemoryHandle);
248 if (result != VK_SUCCESS)
249 return false;
250
251 VkMemoryRequirements memReqs;
252 vkGetImageMemoryRequirements(m_device, m_image, &memReqs);
253
254 glCreateTextures(GL_TEXTURE_2D, 1, outName);
255 glCreateMemoryObjectsEXT(1, &m_MemoryObject);
256 glImportMemoryWin32HandleEXT(m_MemoryObject, memReqs.size, GL_HANDLE_TYPE_OPAQUE_WIN32_EXT, m_hMemoryHandle);
257 glTextureStorageMem2DEXT(*outName, 1, GL_RGBA8, m_data.m_nWidth, m_data.m_nHeight, m_MemoryObject, 0);
258 return true;
259}
260
261void TextureVk::DeleteSharedTextureGL(unsigned int name)
262{

Callers 1

SetTextureMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected