Function fro getting asset base path depending on operating system

This commit is contained in:
saschawillems 2016-03-21 20:10:09 +01:00
parent d7bbb0c7a2
commit 29ac49fb6a
2 changed files with 15 additions and 6 deletions

View file

@ -86,6 +86,15 @@ std::string VulkanExampleBase::getWindowTitle()
return windowTitle; return windowTitle;
} }
const std::string VulkanExampleBase::getAssetPath()
{
#if defined(__ANDROID__)
return "";
#else
return "./../data/";
#endif
}
bool VulkanExampleBase::checkCommandBuffers() bool VulkanExampleBase::checkCommandBuffers()
{ {
for (auto& cmdBuffer : drawCmdBuffers) for (auto& cmdBuffer : drawCmdBuffers)
@ -213,15 +222,15 @@ void VulkanExampleBase::prepare()
textureLoader = new vkTools::VulkanTextureLoader(physicalDevice, device, queue, cmdPool); textureLoader = new vkTools::VulkanTextureLoader(physicalDevice, device, queue, cmdPool);
} }
VkPipelineShaderStageCreateInfo VulkanExampleBase::loadShader(const char * fileName, VkShaderStageFlagBits stage) VkPipelineShaderStageCreateInfo VulkanExampleBase::loadShader(std::string fileName, VkShaderStageFlagBits stage)
{ {
VkPipelineShaderStageCreateInfo shaderStage = {}; VkPipelineShaderStageCreateInfo shaderStage = {};
shaderStage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; shaderStage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
shaderStage.stage = stage; shaderStage.stage = stage;
#if defined(__ANDROID__) #if defined(__ANDROID__)
shaderStage.module = vkTools::loadShader(androidApp->activity->assetManager, fileName, device, stage); shaderStage.module = vkTools::loadShader(androidApp->activity->assetManager, fileName.c_str(), device, stage);
#else #else
shaderStage.module = vkTools::loadShader(fileName, device, stage); shaderStage.module = vkTools::loadShader(fileName.c_str(), device, stage);
#endif #endif
shaderStage.pName = "main"; // todo : make param shaderStage.pName = "main"; // todo : make param
assert(shaderStage.module != NULL); assert(shaderStage.module != NULL);

View file

@ -112,10 +112,10 @@ protected:
// Command buffer submission and execution // Command buffer submission and execution
VkSemaphore renderComplete; VkSemaphore renderComplete;
} semaphores; } semaphores;
// Simple texture loader // Simple texture loader
vkTools::VulkanTextureLoader *textureLoader = nullptr; vkTools::VulkanTextureLoader *textureLoader = nullptr;
// Returns the base asset path (for shaders, models, textures) depending on the os
const std::string getAssetPath();
public: public:
bool prepared = false; bool prepared = false;
uint32_t width = 1280; uint32_t width = 1280;
@ -247,7 +247,7 @@ public:
virtual void prepare(); virtual void prepare();
// Load a SPIR-V shader // Load a SPIR-V shader
VkPipelineShaderStageCreateInfo loadShader(const char* fileName, VkShaderStageFlagBits stage); VkPipelineShaderStageCreateInfo loadShader(std::string fileName, VkShaderStageFlagBits stage);
// Create a buffer, fill it with data and bind buffer memory // Create a buffer, fill it with data and bind buffer memory
// Can be used for e.g. vertex or index buffer based on mesh data // Can be used for e.g. vertex or index buffer based on mesh data