aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-graphics/vulkan/vulkan-loader-layers/0005-demos-cube-use-absolute-location-for-data-files.patch
blob: 85c15b896b8a5863f162345f97e92cae49b4b9a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
From f6c2eeaad968b1ad0ebef7fad79eb5f01305a6e3 Mon Sep 17 00:00:00 2001
From: Awais Belal <awais_belal@mentor.com>
Date: Wed, 5 Sep 2018 11:43:07 +0500
Subject: [PATCH 5/5] demos/cube*: use absolute location for data files

If absolute locations are not used here the demo
looks for texture files in a haphazard way and
can only be launched from the same directory.
This allows running the demo from anywhere and
consolidate any data files that are needed.

Signed-off-by: Awais Belal <awais_belal@mentor.com>
---
 demos/cube.c   | 7 ++++++-
 demos/cube.cpp | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/demos/cube.c b/demos/cube.c
index 29a484260..6b5f0b7af 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -67,6 +67,8 @@
 #define APP_SHORT_NAME "cube"
 #define APP_LONG_NAME "The Vulkan Cube Demo Program"
 
+#define VULKAN_DATA_LOC "/usr/share/vulkan-data/"
+
 // Allow a maximum of two outstanding presentation operations.
 #define FRAME_LAG 2
 
@@ -1484,7 +1486,10 @@ bool loadTexture(const char *filename, uint8_t *rgba_data, VkSubresourceLayout *
 
     return true;
 #else
-    FILE *fPtr = fopen(filename, "rb");
+    char abs_filename[256];
+    strcpy(abs_filename, VULKAN_DATA_LOC);
+    strcat(abs_filename, filename);
+    FILE *fPtr = fopen(abs_filename, "rb");
     char header[256], *cPtr, *tmp;
 
     if (!fPtr) return false;
diff --git a/demos/cube.cpp b/demos/cube.cpp
index fe8cb7c90..3eee7d9c8 100644
--- a/demos/cube.cpp
+++ b/demos/cube.cpp
@@ -57,6 +57,8 @@
 // Allow a maximum of two outstanding presentation operations.
 #define FRAME_LAG 2
 
+#define VULKAN_DATA_LOC "/usr/share/vulkan-data/"
+
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
 
 #ifdef _WIN32
@@ -2261,7 +2263,10 @@ void Demo::update_data_buffer() {
 }
 
 bool Demo::loadTexture(const char *filename, uint8_t *rgba_data, vk::SubresourceLayout *layout, int32_t *width, int32_t *height) {
-    FILE *fPtr = fopen(filename, "rb");
+    char abs_filename[256];
+    strcpy(abs_filename, VULKAN_DATA_LOC);
+    strcat(abs_filename, filename);
+    FILE *fPtr = fopen(abs_filename, "rb");
     if (!fPtr) {
         return false;
     }
-- 
2.11.1