-CMAKE_MINIMUM_REQUIRED(VERSION 3.9)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library")
-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
-SET(CMAKE_CXX_FLAGS "-Wall -std=c++11")
+#SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
+
+IF (UNIX)
+ SET(CMAKE_CXX_FLAGS "-Wall -Wno-extra")
+ELSEIF(MSVC)
+ SET(CMAKE_CXX_FLAGS "-W4")
+ENDIF()
+
+
SET(CMAKE_EXE_LINKER_FLAGS "-lm")
IF(NOT CMAKE_BUILD_TYPE)
--- /dev/null
+version: 0.1.{build}
+
+environment:
+ VULKAN_SDK: C:/VulkanSDK/1.1.130.0
+ APPVEYOR_SAVE_CACHE_ON_ERROR: true
+
+install:
+ - if not exist VulkanSDK.exe curl -L --silent --show-error --output VulkanSDK.exe https://vulkan.lunarg.com/sdk/download/1.1.130.0/windows/VulkanSDK-1.1.130.0-Installer.exe?Human=true && VulkanSDK.exe /S
+ - vcpkg install glfw3
+cache:
+ - VulkanSDK.exe
+ - c:\tools\vcpkg\installed\
+ - c:\VulkanSDK\
+
+before_build:
+ - git submodule update --init --recursive
+ - mkdir build
+ - cd build
+ - cmake -G "Visual Studio 14" -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake ..
+ - ls
+
+build_script:
+ - msbuild vkh.sln /p:Configuration=Debug /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
+
VkhPhyInfo* vkh_app_get_phyinfos (VkhApp app, uint32_t* count, VkSurfaceKHR surface) {
VK_CHECK_RESULT(vkEnumeratePhysicalDevices (app->inst, count, NULL));
- VkPhysicalDevice phyDevices[(*count)];
+ VkPhysicalDevice* phyDevices = (VkPhysicalDevice*)malloc((*count) * sizeof(VkPhysicalDevice));
VK_CHECK_RESULT(vkEnumeratePhysicalDevices (app->inst, count, phyDevices));
VkhPhyInfo* infos = (VkhPhyInfo*)malloc((*count) * sizeof(VkhPhyInfo));
for (uint32_t i=0; i<(*count); i++)
infos[i] = vkh_phyinfo_create (phyDevices[i], surface);
+ free (phyDevices);
return infos;
}
uint32_t count;
VK_CHECK_RESULT(vkGetPhysicalDeviceSurfaceFormatsKHR (r->dev->phy, r->surface, &count, NULL));
assert (count>0);
- VkSurfaceFormatKHR formats[count];
+ VkSurfaceFormatKHR* formats = (VkSurfaceFormatKHR*)malloc(count * sizeof(VkSurfaceFormatKHR));
VK_CHECK_RESULT(vkGetPhysicalDeviceSurfaceFormatsKHR (r->dev->phy, r->surface, &count, formats));
- for (uint i=0; i<count; i++){
+ for (uint32_t i=0; i<count; i++){
if (formats[i].format == preferedFormat) {
r->format = formats[i].format;
r->colorSpace = formats[i].colorSpace;
VK_CHECK_RESULT(vkGetPhysicalDeviceSurfacePresentModesKHR(r->dev->phy, r->surface, &count, NULL));
assert (count>0);
- VkPresentModeKHR presentModes[count];
+ VkPresentModeKHR* presentModes = (VkPresentModeKHR*)malloc(count * sizeof(VkPresentModeKHR));
VK_CHECK_RESULT(vkGetPhysicalDeviceSurfacePresentModesKHR(r->dev->phy, r->surface, &count, presentModes));
r->presentMode = -1;
- for (uint i=0; i<count; i++){
+ for (uint32_t i=0; i<count; i++){
if (presentModes[i] == presentMode) {
r->presentMode = presentModes[i];
break;
}
}
assert (r->presentMode >= 0);
+ free(formats);
+ free(presentModes);
}
void vkh_presenter_create_swapchain (VkhPresenter r){
VK_CHECK_RESULT(vkGetSwapchainImagesKHR(r->dev->dev, r->swapChain, &r->imgCount, NULL));
assert (r->imgCount>0);
- VkImage images[r->imgCount];
- VK_CHECK_RESULT(vkGetSwapchainImagesKHR(r->dev->dev, r->swapChain, &r->imgCount,images));
+ VkImage* images = (VkImage*)malloc(r->imgCount * sizeof(VkImage));
+ VK_CHECK_RESULT(vkGetSwapchainImagesKHR(r->dev->dev, r->swapChain, &r->imgCount, images));
r->ScBuffers = (VkhImage*) malloc (r->imgCount * sizeof(VkhImage));
r->cmdBuffs = (VkCommandBuffer*)malloc (r->imgCount * sizeof(VkCommandBuffer));
- for (int i=0; i<r->imgCount; i++) {
+ for (uint32_t i=0; i<r->imgCount; i++) {
VkhImage sci = vkh_image_import(r->dev, images[i], r->format, r->width, r->height);
vkh_image_create_view(sci, VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT);
r->cmdBuffs [i] = vkh_cmd_buff_create(r->dev, r->cmdPool,VK_COMMAND_BUFFER_LEVEL_PRIMARY);
}
r->currentScBufferIndex = 0;
+ free (images);
}
void _swapchain_destroy (VkhPresenter r){
for (uint32_t i = 0; i < r->imgCount; i++)
assert (vkEnumerateInstanceLayerProperties(&instance_layer_count, NULL)==VK_SUCCESS);
if (instance_layer_count == 0)
return;
- VkLayerProperties vk_props[instance_layer_count];
+ VkLayerProperties* vk_props = (VkLayerProperties*)malloc(instance_layer_count * sizeof(VkLayerProperties));
assert (vkEnumerateInstanceLayerProperties(&instance_layer_count, vk_props)==VK_SUCCESS);
for (uint32_t i = 0; i < instance_layer_count; i++) {
if (res) return res;
info.instance_layer_properties.push_back(layer_props);*/
}
+ free (vk_props);
}