]> O.S.I.I.S - jp/vkhelpers.git/commitdiff
Appveyor (#3)
authorj-p <jp_bruyere@hotmail.com>
Thu, 23 Jan 2020 06:28:09 +0000 (07:28 +0100)
committerGitHub <noreply@github.com>
Thu, 23 Jan 2020 06:28:09 +0000 (07:28 +0100)
MSVC compilation ok.

CMakeLists.txt
appveyor.yml [new file with mode: 0644]
src/vkh_app.c
src/vkh_presenter.c
src/vkhelpers.c

index 07ef231d6d7b7cb38a2d5a5b2106d7d724810290..c0880b1a21cc9247fe3c63f315b3fd5d1019c3e7 100644 (file)
@@ -1,9 +1,16 @@
-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)
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644 (file)
index 0000000..9890041
--- /dev/null
@@ -0,0 +1,24 @@
+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"
+
index cc387abc13937394eee9ae061cfb05fba81450c4..013df2c1b016576fb69f5b673a397445c73433ac 100644 (file)
@@ -105,13 +105,14 @@ VkInstance vkh_app_get_inst (VkhApp app) {
 
 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;
 }
 
index 83cdc74380eed32c3b57c86ca378fe3fdbcd0c5d..f2f2126c28ff8f0179124b3b2c8c14eb9bd64450 100644 (file)
@@ -150,10 +150,10 @@ void _init_phy_surface(VkhPresenter r, VkFormat preferedFormat, VkPresentModeKHR
     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;
@@ -164,16 +164,18 @@ void _init_phy_surface(VkhPresenter r, VkFormat preferedFormat, VkPresentModeKHR
 
     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){
@@ -226,13 +228,13 @@ 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);
@@ -241,6 +243,7 @@ void vkh_presenter_create_swapchain (VkhPresenter r){
         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++)
index b6490b5a13eed5b2aed2b8e74f626f4543a2269e..9557bda18b2bee8f53e47b6ea471125cd9830acb 100644 (file)
@@ -277,7 +277,7 @@ void dumpLayerExts () {
     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++) {
@@ -286,4 +286,5 @@ void dumpLayerExts () {
         if (res) return res;
         info.instance_layer_properties.push_back(layer_props);*/
     }
+    free (vk_props);
 }