Jelajahi Sumber

Added getTempPath.

Branimir Karadžić 9 tahun lalu
induk
melakukan
1e6e3eda86
3 mengubah file dengan 41 tambahan dan 3 penghapusan
  1. 34 0
      include/bx/os.h
  2. 3 3
      include/bx/simd256_avx.inl
  3. 4 0
      tests/misc_test.cpp

+ 34 - 0
include/bx/os.h

@@ -306,6 +306,40 @@ namespace bx
 #endif // BX_COMPILER_
 	}
 
+	inline bool getTempPath(char* _out, uint32_t* _inOutSize)
+	{
+#if BX_PLATFORM_WINDOWS
+		uint32_t len = ::GetTempPathA(*_inOutSize, _out);
+		bool result = len != 0 && len < *_inOutSize;
+		*_inOutSize = len;
+		return result;
+#else
+		static const char* s_tmp[] =
+		{
+			"TMPDIR",
+			"TMP",
+			"TEMP",
+			"TEMPDIR",
+
+			NULL
+		};
+
+		for (const char** tmp = s_tmp; tmp != NULL; ++tmp)
+		{
+			uint32_t len = *_inOutSize;
+			bool result = getenv(*tmp, _out, &len);
+			if (len != 0
+			&&  len < *_inOutSize)
+			{
+				*_inOutSize = len;
+				return result;
+			}
+		}
+
+		return false;
+#endif // BX_PLATFORM_*
+	}
+
 	struct FileInfo
 	{
 		enum Enum

+ 3 - 3
include/bx/simd256_avx.inl

@@ -46,7 +46,7 @@ namespace bx
 	template<>
 	BX_SIMD_FORCE_INLINE simd256_avx_t simd_isplat(uint32_t _a)
 	{
-		const __m256i splat          = _mm256_set1_epi32(_a);
+		const __m256i splat        = _mm256_set1_epi32(_a);
 		const simd256_avx_t result = _mm256_castsi256_ps(splat);
 
 		return result;
@@ -55,7 +55,7 @@ namespace bx
 	template<>
 	BX_SIMD_FORCE_INLINE simd256_avx_t simd_itof(simd256_avx_t _a)
 	{
-		const __m256i  itof          = _mm256_castps_si256(_a);
+		const __m256i  itof        = _mm256_castps_si256(_a);
 		const simd256_avx_t result = _mm256_cvtepi32_ps(itof);
 
 		return result;
@@ -64,7 +64,7 @@ namespace bx
 	template<>
 	BX_SIMD_FORCE_INLINE simd256_avx_t simd_ftoi(simd256_avx_t _a)
 	{
-		const __m256i ftoi           = _mm256_cvtps_epi32(_a);
+		const __m256i ftoi         = _mm256_cvtps_epi32(_a);
 		const simd256_avx_t result = _mm256_castsi256_ps(ftoi);
 
 		return result;

+ 4 - 0
tests/misc_test.cpp

@@ -5,4 +5,8 @@ TEST(getProcessMemoryUsed)
 {
 	CHECK(0 != bx::getProcessMemoryUsed() );
 //	DBG("bx::getProcessMemoryUsed %d", bx::getProcessMemoryUsed() );
+
+	char tmpDir[PATH_MAX];
+	uint32_t len = BX_COUNTOF(tmpDir);
+	CHECK(bx::getTempPath(tmpDir, &len) );
 }