mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-05 22:09:59 +03:00
Merge branch 'master' into win64
This commit is contained in:
@@ -79,14 +79,14 @@ Studio models are position independent, so the cache manager can move them.
|
||||
#define MAXSTUDIOFLEXVERTS 5000
|
||||
#endif
|
||||
#define MAXSTUDIOSKINS 32 // total textures
|
||||
#define MAXSTUDIOBONES 256 // total bones actually used
|
||||
#define MAXSTUDIOBONES 128 // total bones actually used
|
||||
#define MAXSTUDIOFLEXDESC 1024 // maximum number of low level flexes (actual morph targets)
|
||||
#define MAXSTUDIOFLEXCTRL 96 // maximum number of flexcontrollers (input sliders)
|
||||
#define MAXSTUDIOPOSEPARAM 24
|
||||
#define MAXSTUDIOBONECTRLS 5
|
||||
#define MAXSTUDIOANIMBLOCKS 256
|
||||
|
||||
#define MAXSTUDIOBONEBITS 8 // NOTE: MUST MATCH MAXSTUDIOBONES
|
||||
#define MAXSTUDIOBONEBITS 7 // NOTE: MUST MATCH MAXSTUDIOBONES
|
||||
|
||||
// NOTE!!! : Changing this number also changes the vtx file format!!!!!
|
||||
#define MAX_NUM_BONES_PER_VERT 3
|
||||
|
||||
@@ -52,6 +52,12 @@
|
||||
#pragma once
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4251)
|
||||
|
||||
extern "C"
|
||||
{
|
||||
void __declspec(dllimport) __stdcall Sleep( unsigned long );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef COMPILER_MSVC64
|
||||
@@ -194,8 +200,6 @@ PLATFORM_INTERFACE bool ReleaseThreadHandle( ThreadHandle_t );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
PLATFORM_INTERFACE void ThreadSleep(unsigned duration = 0);
|
||||
PLATFORM_INTERFACE void ThreadNanoSleep(unsigned ns);
|
||||
PLATFORM_INTERFACE ThreadId_t ThreadGetCurrentId();
|
||||
PLATFORM_INTERFACE ThreadHandle_t ThreadGetCurrentHandle();
|
||||
PLATFORM_INTERFACE int ThreadGetPriority( ThreadHandle_t hThread = NULL );
|
||||
@@ -229,10 +233,10 @@ inline void ThreadPause()
|
||||
{
|
||||
#if defined( COMPILER_PS3 )
|
||||
__db16cyc();
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
sched_yield();
|
||||
#elif defined( COMPILER_GCC )
|
||||
#elif defined( COMPILER_GCC ) && (defined( __i386__ ) || defined( __x86_64__ ))
|
||||
__asm __volatile( "pause" );
|
||||
#elif defined( POSIX )
|
||||
sched_yield();
|
||||
#elif defined ( COMPILER_MSVC64 )
|
||||
_mm_pause();
|
||||
#elif defined( COMPILER_MSVC32 )
|
||||
@@ -247,6 +251,36 @@ inline void ThreadPause()
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void ThreadSleep(unsigned nMilliseconds = 0)
|
||||
{
|
||||
if( nMilliseconds == 0 )
|
||||
{
|
||||
ThreadPause();
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#ifdef _WIN32_PC
|
||||
static bool bInitialized = false;
|
||||
if ( !bInitialized )
|
||||
{
|
||||
bInitialized = true;
|
||||
// Set the timer resolution to 1 ms (default is 10.0, 15.6, 2.5, 1.0 or
|
||||
// some other value depending on hardware and software) so that we can
|
||||
// use Sleep( 1 ) to avoid wasting CPU time without missing our frame
|
||||
// rate.
|
||||
timeBeginPeriod( 1 );
|
||||
}
|
||||
#endif
|
||||
Sleep( nMilliseconds );
|
||||
#elif PS3
|
||||
sys_timer_usleep( nMilliseconds * 1000 );
|
||||
#elif defined(POSIX)
|
||||
usleep( nMilliseconds * 1000 );
|
||||
#endif
|
||||
}
|
||||
|
||||
PLATFORM_INTERFACE bool ThreadJoin( ThreadHandle_t, unsigned timeout = TT_INFINITE );
|
||||
|
||||
PLATFORM_INTERFACE void ThreadSetDebugName( ThreadHandle_t hThread, const char *pszName );
|
||||
|
||||
@@ -428,6 +428,8 @@ inline bool KeyValues::IsEmpty( int keySymbol )
|
||||
return dat ? dat->IsEmpty( ) : true;
|
||||
}
|
||||
|
||||
bool IsSteamDeck();
|
||||
|
||||
bool EvaluateConditional( const char *str );
|
||||
|
||||
class CUtlSortVectorKeyValuesByName
|
||||
|
||||
@@ -11,21 +11,15 @@ namespace memutils
|
||||
template<typename T>
|
||||
inline void copy( T *dest, const T *src, size_t n )
|
||||
{
|
||||
do
|
||||
{
|
||||
--n;
|
||||
*(dest+n) = *(src+n);
|
||||
} while( n );
|
||||
for(; n; n--)
|
||||
*(dest++) = *(src++);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline void set( T *dest, const T &value, size_t n )
|
||||
inline void set( T *dest, const T& value, size_t n )
|
||||
{
|
||||
do
|
||||
{
|
||||
--n;
|
||||
*(dest+n) = value;
|
||||
} while( n );
|
||||
for(; n; n--)
|
||||
*(dest++) = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,6 +69,8 @@
|
||||
#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
|
||||
#define GL_ALPHA_TEST_REF_QCOM 0x0BC2
|
||||
|
||||
#define GLSL_VERSION "#version 300 es\n"
|
||||
|
||||
extern void GLMDebugPrintf( const char *pMsg, ... );
|
||||
|
||||
extern uint g_nTotalDrawsOrClears, g_nTotalVBLockBytes, g_nTotalIBLockBytes;
|
||||
|
||||
@@ -492,8 +492,8 @@ public:
|
||||
//-----------------------------------------------------
|
||||
// Thread event support (safe for NULL this to simplify code )
|
||||
//-----------------------------------------------------
|
||||
bool WaitForFinish( uint32 dwTimeout = TT_INFINITE ) { if (!this) return true; return ( !IsFinished() ) ? g_pThreadPool->YieldWait( this, dwTimeout ) : true; }
|
||||
bool WaitForFinishAndRelease( uint32 dwTimeout = TT_INFINITE ) { if (!this) return true; bool bResult = WaitForFinish( dwTimeout); Release(); return bResult; }
|
||||
inline bool WaitForFinish( uint32 dwTimeout = TT_INFINITE, IThreadPool *pool = g_pThreadPool ) { if (!this) return true; return ( !IsFinished() ) ? pool->YieldWait( this, dwTimeout ) : true; }
|
||||
inline bool WaitForFinishAndRelease( uint32 dwTimeout = TT_INFINITE ) { if (!this) return true; bool bResult = WaitForFinish( dwTimeout); Release(); return bResult; }
|
||||
CThreadEvent *AccessEvent() { return &m_CompleteEvent; }
|
||||
|
||||
//-----------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user