MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Hpp / Asset

Method Asset

samples/SharedHandles/SharedHandles.cpp:273–304  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

271{
272public:
273 Asset( const Engine & engine, vk::Extent2D extent )
274 {
275 auto device_handle = engine.device.get();
276 vk::su::BufferData vertexBufferData( engine.physicalDevice, device_handle, sizeof( texturedCubeData ), vk::BufferUsageFlagBits::eVertexBuffer );
277 vk::su::copyToDevice( device_handle, vertexBufferData.deviceMemory, texturedCubeData, sizeof( texturedCubeData ) / sizeof( texturedCubeData[0] ) );
278
279 vertexBuffer = vk::SharedBuffer{ vertexBufferData.buffer, engine.device };
280 vertexBufferMemory = vk::SharedDeviceMemory{ vertexBufferData.deviceMemory, engine.device };
281
282 engine.commandBuffer->begin( vk::CommandBufferBeginInfo() );
283
284 vk::su::BufferData uniformBufferData( engine.physicalDevice, device_handle, sizeof( glm::mat4x4 ), vk::BufferUsageFlagBits::eUniformBuffer );
285 glm::mat4x4 mvpcMatrix = vk::su::createModelViewProjectionClipMatrix( extent );
286 vk::su::copyToDevice( device_handle, uniformBufferData.deviceMemory, mvpcMatrix );
287
288 uniformBufferMemory = vk::SharedDeviceMemory{ uniformBufferData.deviceMemory, engine.device };
289 uniformBuffer = vk::SharedBuffer{ uniformBufferData.buffer, engine.device };
290
291 vk::su::TextureData textureData( engine.physicalDevice, device_handle );
292 textureData.setImage( device_handle, engine.commandBuffer.get(), vk::su::CheckerboardImageGenerator() );
293
294 textureImage = vk::SharedImage{ textureData.imageData->image, engine.device };
295 textureImageMemory = vk::SharedDeviceMemory{ textureData.imageData->deviceMemory, engine.device };
296 textureImageView = vk::SharedImageView{ textureData.imageData->imageView, engine.device };
297 textureSampler = vk::SharedSampler{ textureData.sampler, engine.device };
298
299 vk::su::updateDescriptorSets(
300 device_handle, engine.descriptorSet.get(), { { vk::DescriptorType::eUniformBuffer, uniformBufferData.buffer, VK_WHOLE_SIZE, {} } }, textureData );
301 engine.commandBuffer->end();
302
303 vk::su::submitAndWait( device_handle, engine.graphicsQueue.get(), engine.commandBuffer.get() );
304 }
305
306 void draw( vk::CommandBuffer commandBuffer )
307 {

Callers

nothing calls this directly

Calls 6

copyToDeviceFunction · 0.50
updateDescriptorSetsFunction · 0.50
submitAndWaitFunction · 0.50
setImageMethod · 0.45

Tested by

no test coverage detected