Merge branch 'master' into renderpasstransitions

This commit is contained in:
saschawillems 2016-08-11 20:00:34 +02:00
commit 85552a90df
24 changed files with 99 additions and 97 deletions

View file

@ -17,16 +17,38 @@
#define KEY_S 0x53 #define KEY_S 0x53
#define KEY_D 0x44 #define KEY_D 0x44
#define KEY_P 0x50 #define KEY_P 0x50
//
#define KEY_SPACE 0x20
#define KEY_KPADD 0x6B
#define KEY_KPSUB 0x6D
#define KEY_B 0x42
#define KEY_F 0x46
#define KEY_L 0x4C
#define KEY_N 0x4E
#define KEY_O 0x4F
#define KEY_T 0x54
//
#elif defined(__ANDROID__) #elif defined(__ANDROID__)
#elif defined(__linux__) #elif defined(__linux__)
#define KEY_ESCAPE 0x9 #define KEY_ESCAPE 0x9
#define KEY_F1 0x43
#define KEY_F2 0x44
#define KEY_W 0x19 #define KEY_W 0x19
#define KEY_A 0x26 #define KEY_A 0x26
#define KEY_S 0x27 #define KEY_S 0x27
#define KEY_D 0x28 #define KEY_D 0x28
#define KEY_P 0x21 #define KEY_P 0x21
#define KEY_F1 0x43 //
#define KEY_F2 0x44 #define KEY_SPACE 0x41
#define KEY_KPADD 0x56
#define KEY_KPSUB 0x52
#define KEY_B 0x38
#define KEY_F 0x29
#define KEY_L 0x2E
#define KEY_N 0x39
#define KEY_O 0x20
#define KEY_T 0x1C
//
#endif #endif
// todo: Android gamepad keycodes outside of define for now // todo: Android gamepad keycodes outside of define for now
@ -36,4 +58,4 @@
#define GAMEPAD_BUTTON_Y 0x1003 #define GAMEPAD_BUTTON_Y 0x1003
#define GAMEPAD_BUTTON_L1 0x1004 #define GAMEPAD_BUTTON_L1 0x1004
#define GAMEPAD_BUTTON_R1 0x1005 #define GAMEPAD_BUTTON_R1 0x1005
#define GAMEPAD_BUTTON_START 0x1006 #define GAMEPAD_BUTTON_START 0x1006

View file

@ -565,21 +565,6 @@ void VulkanExampleBase::renderLoop()
vkDeviceWaitIdle(device); vkDeviceWaitIdle(device);
} }
VkSubmitInfo VulkanExampleBase::prepareSubmitInfo(
std::vector<VkCommandBuffer> commandBuffers,
VkPipelineStageFlags *pipelineStages)
{
VkSubmitInfo submitInfo = vkTools::initializers::submitInfo();
submitInfo.pWaitDstStageMask = pipelineStages;
submitInfo.waitSemaphoreCount = 1;
submitInfo.pWaitSemaphores = &semaphores.presentComplete;
submitInfo.commandBufferCount = static_cast<uint32_t>(commandBuffers.size());
submitInfo.pCommandBuffers = commandBuffers.data();
submitInfo.signalSemaphoreCount = 1;
submitInfo.pSignalSemaphores = &semaphores.renderComplete;
return submitInfo;
}
void VulkanExampleBase::updateTextOverlay() void VulkanExampleBase::updateTextOverlay()
{ {
if (!enableTextOverlay) if (!enableTextOverlay)

View file

@ -104,8 +104,8 @@ protected:
VkCommandPool cmdPool; VkCommandPool cmdPool;
// Command buffer used for setup // Command buffer used for setup
VkCommandBuffer setupCmdBuffer = VK_NULL_HANDLE; VkCommandBuffer setupCmdBuffer = VK_NULL_HANDLE;
// Pipeline stage flags for the submit info structure /** @brief Pipeline stages used to wait at for graphics queue submissions */
VkPipelineStageFlags submitPipelineStages = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; VkPipelineStageFlags submitPipelineStages = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
// Contains command buffers and semaphores to be presented to the queue // Contains command buffers and semaphores to be presented to the queue
VkSubmitInfo submitInfo; VkSubmitInfo submitInfo;
// Command buffers used for rendering // Command buffers used for rendering
@ -337,12 +337,6 @@ public:
// Start the main render loop // Start the main render loop
void renderLoop(); void renderLoop();
// Prepare a submit info structure containing
// semaphores and submit buffer info for vkQueueSubmit
VkSubmitInfo prepareSubmitInfo(
std::vector<VkCommandBuffer> commandBuffers,
VkPipelineStageFlags *pipelineStages);
void updateTextOverlay(); void updateTextOverlay();
// Called when the text overlay is updating // Called when the text overlay is updating

View file

@ -1113,15 +1113,15 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeBlurScale(0.25f); changeBlurScale(0.25f);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeBlurScale(-0.25f); changeBlurScale(-0.25f);
break; break;
case 0x42: case KEY_B:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleBloom(); toggleBloom();
break; break;
@ -1212,4 +1212,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -774,11 +774,11 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
switchComputePipeline(1); switchComputePipeline(1);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
switchComputePipeline(-1); switchComputePipeline(-1);
break; break;

View file

@ -1221,7 +1221,7 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x70: case KEY_F1:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleDebugDisplay(); toggleDebugDisplay();
updateTextOverlay(); updateTextOverlay();
@ -1247,4 +1247,4 @@ public:
} }
}; };
VULKAN_EXAMPLE_MAIN() VULKAN_EXAMPLE_MAIN()

View file

@ -1208,12 +1208,12 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x70: case KEY_F1:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleDebugDisplay(); toggleDebugDisplay();
updateTextOverlay(); updateTextOverlay();
break; break;
case 0x71: case KEY_F2:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleShadows(); toggleShadows();
updateTextOverlay(); updateTextOverlay();
@ -1233,4 +1233,4 @@ public:
} }
}; };
VULKAN_EXAMPLE_MAIN() VULKAN_EXAMPLE_MAIN()

View file

@ -557,19 +557,19 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeTessellationStrength(0.025); changeTessellationStrength(0.025);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeTessellationStrength(-0.025); changeTessellationStrength(-0.025);
break; break;
case 0x44: case KEY_D:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleDisplacement(); toggleDisplacement();
break; break;
case 0x53: case KEY_S:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleSplitScreen(); toggleSplitScreen();
break; break;
@ -651,4 +651,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -716,11 +716,11 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x53: case KEY_S:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleSplitScreen(); toggleSplitScreen();
break; break;
case 0x4F: case KEY_O:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleFontOutline(); toggleFontOutline();
break; break;
@ -799,4 +799,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -478,7 +478,7 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x4E: case KEY_N:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleNormals(); toggleNormals();
break; break;
@ -554,4 +554,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -996,7 +996,7 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x44: case KEY_D:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleDebugDisplay(); toggleDebugDisplay();
break; break;
@ -1078,4 +1078,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -583,15 +583,15 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x4F: case KEY_O:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleParallaxOffset(); toggleParallaxOffset();
break; break;
case 0x4E: case KEY_N:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleNormalMapDisplay(); toggleNormalMapDisplay();
break; break;
case 0x53: case KEY_S:
case GAMEPAD_BUTTON_Y: case GAMEPAD_BUTTON_Y:
toggleSplitScreen(); toggleSplitScreen();
break; break;
@ -671,4 +671,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -980,11 +980,11 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x42: case KEY_B:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleBlur(); toggleBlur();
break; break;
case 0x54: case KEY_T:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleTextureDisplay(); toggleTextureDisplay();
break; break;
@ -1076,4 +1076,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -832,27 +832,27 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x20: case KEY_SPACE:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
wireframe = !wireframe; wireframe = !wireframe;
reBuildCommandBuffers(); reBuildCommandBuffers();
break; break;
case 0x50: case KEY_P:
scene->renderSingleScenePart = !scene->renderSingleScenePart; scene->renderSingleScenePart = !scene->renderSingleScenePart;
reBuildCommandBuffers(); reBuildCommandBuffers();
updateTextOverlay(); updateTextOverlay();
break; break;
case 0x6B: case KEY_KPADD:
scene->scenePartIndex = (scene->scenePartIndex < static_cast<uint32_t>(scene->meshes.size())) ? scene->scenePartIndex + 1 : 0; scene->scenePartIndex = (scene->scenePartIndex < static_cast<uint32_t>(scene->meshes.size())) ? scene->scenePartIndex + 1 : 0;
reBuildCommandBuffers(); reBuildCommandBuffers();
updateTextOverlay(); updateTextOverlay();
break; break;
case 0x6D: case KEY_KPSUB:
scene->scenePartIndex = (scene->scenePartIndex > 0) ? scene->scenePartIndex - 1 : static_cast<uint32_t>(scene->meshes.size()) - 1; scene->scenePartIndex = (scene->scenePartIndex > 0) ? scene->scenePartIndex - 1 : static_cast<uint32_t>(scene->meshes.size()) - 1;
updateTextOverlay(); updateTextOverlay();
reBuildCommandBuffers(); reBuildCommandBuffers();
break; break;
case 0x4C: case KEY_L:
attachLight = !attachLight; attachLight = !attachLight;
updateUniformBuffers(); updateUniformBuffers();
break; break;
@ -936,4 +936,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -1019,11 +1019,11 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x53: case KEY_S:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleShadowMapDisplay(); toggleShadowMapDisplay();
break; break;
case 0x4C: case KEY_L:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toogleLightPOV(); toogleLightPOV();
break; break;
@ -1102,4 +1102,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -1068,7 +1068,7 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x44: case KEY_D:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleCubeMapDisplay(); toggleCubeMapDisplay();
break; break;
@ -1151,4 +1151,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -1036,11 +1036,11 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeAnimationSpeed(0.1f); changeAnimationSpeed(0.1f);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeAnimationSpeed(-0.1f); changeAnimationSpeed(-0.1f);
break; break;
@ -1121,4 +1121,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -452,12 +452,12 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case 0x20: case KEY_SPACE:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
changeMatCapIndex(1); changeMatCapIndex(1);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
changeMatCapIndex(-1); changeMatCapIndex(-1);
break; break;
@ -548,4 +548,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -939,19 +939,19 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeTessellationFactor(0.05f); changeTessellationFactor(0.05f);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeTessellationFactor(-0.05f); changeTessellationFactor(-0.05f);
break; break;
case 0x46: case KEY_F:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleWireframe(); toggleWireframe();
break; break;
case 0x54: case KEY_T:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleTessellation(); toggleTessellation();
break; break;
@ -1038,4 +1038,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -533,19 +533,19 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeTessellationLevel(0.25); changeTessellationLevel(0.25);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeTessellationLevel(-0.25); changeTessellationLevel(-0.25);
break; break;
case 0x57: case KEY_W:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
togglePipelines(); togglePipelines();
break; break;
case 0x53: case KEY_S:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleSplitScreen(); toggleSplitScreen();
break; break;
@ -655,4 +655,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -1198,8 +1198,8 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case 0x20: case KEY_SPACE:
textOverlay->visible = !textOverlay->visible; textOverlay->visible = !textOverlay->visible;
} }
} }
@ -1264,4 +1264,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -875,11 +875,11 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeLodBias(0.1f); changeLodBias(0.1f);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeLodBias(-0.1f); changeLodBias(-0.1f);
break; break;
@ -898,4 +898,4 @@ public:
} }
}; };
VULKAN_EXAMPLE_MAIN() VULKAN_EXAMPLE_MAIN()

View file

@ -737,19 +737,19 @@ public:
{ {
switch (keyCode) switch (keyCode)
{ {
case 0x53: case KEY_S:
case GAMEPAD_BUTTON_A: case GAMEPAD_BUTTON_A:
toggleSkyBox(); toggleSkyBox();
break; break;
case 0x20: case KEY_SPACE:
case GAMEPAD_BUTTON_X: case GAMEPAD_BUTTON_X:
toggleObject(); toggleObject();
break; break;
case 0x6B: case KEY_KPADD:
case GAMEPAD_BUTTON_R1: case GAMEPAD_BUTTON_R1:
changeLodBias(0.1f); changeLodBias(0.1f);
break; break;
case 0x6D: case KEY_KPSUB:
case GAMEPAD_BUTTON_L1: case GAMEPAD_BUTTON_L1:
changeLodBias(-0.1f); changeLodBias(-0.1f);
break; break;
@ -831,4 +831,4 @@ int main(const int argc, const char *argv[])
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
return 0; return 0;
#endif #endif
} }

View file

@ -333,11 +333,12 @@ public:
// Get next image in the swap chain (back/front buffer) // Get next image in the swap chain (back/front buffer)
VK_CHECK_RESULT(swapChain.acquireNextImage(presentCompleteSemaphore, &currentBuffer)); VK_CHECK_RESULT(swapChain.acquireNextImage(presentCompleteSemaphore, &currentBuffer));
// Pipeline stage at which the queue submission will wait (via pWaitSemaphores)
VkPipelineStageFlags waitStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
// The submit info structure specifices a command buffer queue submission batch // The submit info structure specifices a command buffer queue submission batch
VkPipelineStageFlags pipelineStages = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
VkSubmitInfo submitInfo = {}; VkSubmitInfo submitInfo = {};
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
submitInfo.pWaitDstStageMask = &pipelineStages; submitInfo.pWaitDstStageMask = &waitStageMask; // Pointer to the list of pipeline stages that the semaphore waits will occur at
submitInfo.pWaitSemaphores = &presentCompleteSemaphore; // Semaphore(s) to wait upon before the submitted command buffer starts executing submitInfo.pWaitSemaphores = &presentCompleteSemaphore; // Semaphore(s) to wait upon before the submitted command buffer starts executing
submitInfo.waitSemaphoreCount = 1; // One wait semaphore submitInfo.waitSemaphoreCount = 1; // One wait semaphore
submitInfo.pSignalSemaphores = &renderCompleteSemaphore; // Semaphore(s) to be signaled when command buffers have completed submitInfo.pSignalSemaphores = &renderCompleteSemaphore; // Semaphore(s) to be signaled when command buffers have completed