Skip to content

Commit b8333fb

Browse files
Publishing testing environment. Tests are available under [T] key.
1 parent f1a793c commit b8333fb

File tree

7 files changed

+3240
-8
lines changed

7 files changed

+3240
-8
lines changed

bin/VulkanSample_Release_2015.exe

-100 KB
Binary file not shown.

bin/VulkanSample_Release_vs2015.exe

174 KB
Binary file not shown.

src/Common.cpp

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,157 @@
22

33
#ifdef _WIN32
44

5+
void ReadFile(std::vector<char>& out, const char* fileName)
6+
{
7+
std::ifstream file(fileName, std::ios::ate | std::ios::binary);
8+
assert(file.is_open());
9+
size_t fileSize = (size_t)file.tellg();
10+
if(fileSize > 0)
11+
{
12+
out.resize(fileSize);
13+
file.seekg(0);
14+
file.read(out.data(), fileSize);
15+
}
16+
else
17+
out.clear();
18+
}
19+
20+
void SetConsoleColor(CONSOLE_COLOR color)
21+
{
22+
WORD attr = 0;
23+
switch(color)
24+
{
25+
case CONSOLE_COLOR::INFO:
26+
attr = FOREGROUND_INTENSITY;;
27+
break;
28+
case CONSOLE_COLOR::NORMAL:
29+
attr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
30+
break;
31+
case CONSOLE_COLOR::WARNING:
32+
attr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
33+
break;
34+
case CONSOLE_COLOR::ERROR_:
35+
attr = FOREGROUND_RED | FOREGROUND_INTENSITY;
36+
break;
37+
default:
38+
assert(0);
39+
}
40+
41+
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
42+
SetConsoleTextAttribute(out, attr);
43+
}
44+
45+
void PrintMessage(CONSOLE_COLOR color, const char* msg)
46+
{
47+
if(color != CONSOLE_COLOR::NORMAL)
48+
SetConsoleColor(color);
49+
50+
printf("%s\n", msg);
51+
52+
if (color != CONSOLE_COLOR::NORMAL)
53+
SetConsoleColor(CONSOLE_COLOR::NORMAL);
54+
}
55+
56+
void PrintMessage(CONSOLE_COLOR color, const wchar_t* msg)
57+
{
58+
if(color != CONSOLE_COLOR::NORMAL)
59+
SetConsoleColor(color);
60+
61+
wprintf(L"%s\n", msg);
62+
63+
if (color != CONSOLE_COLOR::NORMAL)
64+
SetConsoleColor(CONSOLE_COLOR::NORMAL);
65+
}
66+
67+
static const size_t CONSOLE_SMALL_BUF_SIZE = 256;
68+
69+
void PrintMessageV(CONSOLE_COLOR color, const char* format, va_list argList)
70+
{
71+
size_t dstLen = (size_t)::_vscprintf(format, argList);
72+
if(dstLen)
73+
{
74+
bool useSmallBuf = dstLen < CONSOLE_SMALL_BUF_SIZE;
75+
char smallBuf[CONSOLE_SMALL_BUF_SIZE];
76+
std::vector<char> bigBuf(useSmallBuf ? 0 : dstLen + 1);
77+
char* bufPtr = useSmallBuf ? smallBuf : bigBuf.data();
78+
::vsprintf_s(bufPtr, dstLen + 1, format, argList);
79+
PrintMessage(color, bufPtr);
80+
}
81+
}
82+
83+
void PrintMessageV(CONSOLE_COLOR color, const wchar_t* format, va_list argList)
84+
{
85+
size_t dstLen = (size_t)::_vcwprintf(format, argList);
86+
if(dstLen)
87+
{
88+
bool useSmallBuf = dstLen < CONSOLE_SMALL_BUF_SIZE;
89+
wchar_t smallBuf[CONSOLE_SMALL_BUF_SIZE];
90+
std::vector<wchar_t> bigBuf(useSmallBuf ? 0 : dstLen + 1);
91+
wchar_t* bufPtr = useSmallBuf ? smallBuf : bigBuf.data();
92+
::vswprintf_s(bufPtr, dstLen + 1, format, argList);
93+
PrintMessage(color, bufPtr);
94+
}
95+
}
96+
97+
void PrintMessageF(CONSOLE_COLOR color, const char* format, ...)
98+
{
99+
va_list argList;
100+
va_start(argList, format);
101+
PrintMessageV(color, format, argList);
102+
va_end(argList);
103+
}
104+
105+
void PrintMessageF(CONSOLE_COLOR color, const wchar_t* format, ...)
106+
{
107+
va_list argList;
108+
va_start(argList, format);
109+
PrintMessageV(color, format, argList);
110+
va_end(argList);
111+
}
112+
113+
void PrintWarningF(const char* format, ...)
114+
{
115+
va_list argList;
116+
va_start(argList, format);
117+
PrintMessageV(CONSOLE_COLOR::WARNING, format, argList);
118+
va_end(argList);
119+
}
120+
121+
void PrintWarningF(const wchar_t* format, ...)
122+
{
123+
va_list argList;
124+
va_start(argList, format);
125+
PrintMessageV(CONSOLE_COLOR::WARNING, format, argList);
126+
va_end(argList);
127+
}
128+
129+
void PrintErrorF(const char* format, ...)
130+
{
131+
va_list argList;
132+
va_start(argList, format);
133+
PrintMessageV(CONSOLE_COLOR::WARNING, format, argList);
134+
va_end(argList);
135+
}
136+
137+
void PrintErrorF(const wchar_t* format, ...)
138+
{
139+
va_list argList;
140+
va_start(argList, format);
141+
PrintMessageV(CONSOLE_COLOR::WARNING, format, argList);
142+
va_end(argList);
143+
}
144+
145+
void SaveFile(const wchar_t* filePath, const void* data, size_t dataSize)
146+
{
147+
FILE* f = nullptr;
148+
_wfopen_s(&f, filePath, L"wb");
149+
if(f)
150+
{
151+
fwrite(data, 1, dataSize, f);
152+
fclose(f);
153+
}
154+
else
155+
assert(0);
156+
}
157+
5158
#endif // #ifdef _WIN32

src/Common.h

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,105 @@
11
#ifndef COMMON_H_
22
#define COMMON_H_
33

4+
#include "VmaUsage.h"
5+
46
#ifdef _WIN32
57

68
#define MATHFU_COMPILE_WITHOUT_SIMD_SUPPORT
79
#include <mathfu/glsl_mappings.h>
810
#include <mathfu/constants.h>
911

12+
#include <iostream>
1013
#include <fstream>
1114
#include <vector>
12-
#include <string>
1315
#include <memory>
1416
#include <algorithm>
1517
#include <numeric>
1618
#include <array>
1719
#include <type_traits>
1820
#include <utility>
21+
#include <chrono>
22+
#include <string>
1923

20-
#include <cmath>
2124
#include <cassert>
2225
#include <cstdlib>
2326
#include <cstdio>
27+
#include <cstdarg>
28+
29+
typedef std::chrono::high_resolution_clock::time_point time_point;
30+
typedef std::chrono::high_resolution_clock::duration duration;
2431

2532
#define ERR_GUARD_VULKAN(Expr) do { VkResult res__ = (Expr); if (res__ < 0) assert(0); } while(0)
2633

34+
extern VkPhysicalDevice g_hPhysicalDevice;
35+
extern VkDevice g_hDevice;
36+
extern VmaAllocator g_hAllocator;
37+
extern bool g_MemoryAliasingWarningEnabled;
38+
39+
inline float ToFloatSeconds(duration d)
40+
{
41+
return std::chrono::duration_cast<std::chrono::duration<float>>(d).count();
42+
}
43+
44+
template <typename T>
45+
inline T ceil_div(T x, T y)
46+
{
47+
return (x+y-1) / y;
48+
}
49+
50+
template <typename T>
51+
static inline T align_up(T val, T align)
52+
{
53+
return (val + align - 1) / align * align;
54+
}
55+
56+
class RandomNumberGenerator
57+
{
58+
public:
59+
RandomNumberGenerator() : m_Value{GetTickCount()} {}
60+
RandomNumberGenerator(uint32_t seed) : m_Value{seed} { }
61+
void Seed(uint32_t seed) { m_Value = seed; }
62+
uint32_t Generate() { return GenerateFast() ^ (GenerateFast() >> 7); }
63+
64+
private:
65+
uint32_t m_Value;
66+
uint32_t GenerateFast() { return m_Value = (m_Value * 196314165 + 907633515); }
67+
};
68+
69+
void ReadFile(std::vector<char>& out, const char* fileName);
70+
71+
enum class CONSOLE_COLOR
72+
{
73+
INFO,
74+
NORMAL,
75+
WARNING,
76+
ERROR_,
77+
COUNT
78+
};
79+
80+
void SetConsoleColor(CONSOLE_COLOR color);
81+
82+
void PrintMessage(CONSOLE_COLOR color, const char* msg);
83+
void PrintMessage(CONSOLE_COLOR color, const wchar_t* msg);
84+
85+
inline void Print(const char* msg) { PrintMessage(CONSOLE_COLOR::NORMAL, msg); }
86+
inline void Print(const wchar_t* msg) { PrintMessage(CONSOLE_COLOR::NORMAL, msg); }
87+
inline void PrintWarning(const char* msg) { PrintMessage(CONSOLE_COLOR::WARNING, msg); }
88+
inline void PrintWarning(const wchar_t* msg) { PrintMessage(CONSOLE_COLOR::WARNING, msg); }
89+
inline void PrintError(const char* msg) { PrintMessage(CONSOLE_COLOR::ERROR_, msg); }
90+
inline void PrintError(const wchar_t* msg) { PrintMessage(CONSOLE_COLOR::ERROR_, msg); }
91+
92+
void PrintMessageV(CONSOLE_COLOR color, const char* format, va_list argList);
93+
void PrintMessageV(CONSOLE_COLOR color, const wchar_t* format, va_list argList);
94+
void PrintMessageF(CONSOLE_COLOR color, const char* format, ...);
95+
void PrintMessageF(CONSOLE_COLOR color, const wchar_t* format, ...);
96+
void PrintWarningF(const char* format, ...);
97+
void PrintWarningF(const wchar_t* format, ...);
98+
void PrintErrorF(const char* format, ...);
99+
void PrintErrorF(const wchar_t* format, ...);
100+
101+
void SaveFile(const wchar_t* filePath, const void* data, size_t dataSize);
102+
27103
#endif // #ifdef _WIN32
28104

29105
#endif

0 commit comments

Comments
 (0)