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
|