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_D 0x44
#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(__linux__)
#define KEY_ESCAPE 0x9
#define KEY_F1 0x43
#define KEY_F2 0x44
#define KEY_W 0x19
#define KEY_A 0x26
#define KEY_S 0x27
#define KEY_D 0x28
#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
// todo: Android gamepad keycodes outside of define for now
@ -36,4 +58,4 @@
#define GAMEPAD_BUTTON_Y 0x1003
#define GAMEPAD_BUTTON_L1 0x1004
#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);
}
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()
{
if (!enableTextOverlay)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -333,11 +333,12 @@ public:
// Get next image in the swap chain (back/front buffer)
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
VkPipelineStageFlags pipelineStages = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
VkSubmitInfo submitInfo = {};
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.waitSemaphoreCount = 1; // One wait semaphore
submitInfo.pSignalSemaphores = &renderCompleteSemaphore; // Semaphore(s) to be signaled when command buffers have completed