1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2024-12-23 01:59:43 +08:00

Added reverse-engineered interfaces lib code and hacked up tier1 and mathlib to build against the newer headers.

This commit is contained in:
Scott Ehlert 2012-05-21 02:49:35 -05:00
parent d0b0a7a9dd
commit f2185a5cfb
78 changed files with 2756 additions and 434 deletions

View File

@ -96,8 +96,14 @@ typedef enum
// XVRB_ALL,
//} xverbose_e;
#ifdef POSIX
#ifndef WORD
typedef unsigned short WORD;
typedef unsigned long DWORD;
#endif
#ifndef DWORD
typedef unsigned int DWORD;
#endif
#endif
#ifndef POSIX
typedef void* HANDLE;
@ -115,7 +121,7 @@ typedef int32 COLORREF;
/*
* Internet address (old style... should be updated)
*/
#ifdef _POSIX
#ifdef POSIX
struct ip4_addr {
union {
struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b;
@ -321,7 +327,7 @@ enum XUSER_SIGNIN_STATE
eXUserSigninState_SignedInToLive,
};
#if (defined(_POSIX))
#if (defined(POSIX))
typedef size_t ULONG_PTR;
#else
typedef _W64 unsigned long ULONG_PTR;
@ -332,7 +338,7 @@ typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
typedef void * PXOVERLAPPED_COMPLETION_ROUTINE;
#ifndef _POSIX
#ifndef POSIX
typedef struct _XOVERLAPPED {
ULONG_PTR InternalLow;
ULONG_PTR InternalHigh;

230
interfaces/interfaces.cpp Normal file
View File

@ -0,0 +1,230 @@
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//=============================================================================//
/* This is totally reverse-engineered code and may be wrong */
#include "interfaces/interfaces.h"
#include "tier0/dbg.h"
ICvar *cvar, *g_pCVar;
IEventSystem *g_pEventSystem;
IProcessUtils *g_pProcessUtils;
IPhysics2 *g_pPhysics2;
IPhysics2ActorManager *g_pPhysics2ActorManager;
IPhysics2ResourceManager *g_pPhysics2ResourceManager;
IFileSystem *g_pFullFileSystem;
IAsyncFileSystem *g_pAsyncFileSystem;
IResourceSystem *g_pResourceSystem;
IMaterialSystem *materials, *g_pMaterialSystem;
IMaterialSystem2 *g_pMaterialSystem2;
IInputSystem *g_pInputSystem;
IInputStackSystem *g_pInputStackSystem;
INetworkSystem *g_pNetworkSystem;
IRenderDeviceMgr *g_pRenderDeviceMgr;
IMaterialSystemHardwareConfig *g_pMaterialSystemHardwareConfig;
ISoundSystem *g_pSoundSystem;
IDebugTextureInfo *g_pMaterialSystemDebugTextureInfo;
IVBAllocTracker *g_VBAllocTracker;
IColorCorrectionSystem *colorcorrection;
IP4 *p4;
IMdlLib *mdllib;
IQueuedLoader *g_pQueuedLoader;
IResourceAccessControl *g_pResourceAccessControl;
IPrecacheSystem *g_pPrecacheSystem;
IStudioRender *g_pStudioRender, *studiorender;
vgui::IVGui *g_pVGui;
vgui::IInput *g_pVGuiInput;
vgui::IPanel *g_pVGuiPanel;
vgui::ISurface *g_pVGuiSurface;
vgui::ISchemeManager *g_pVGuiSchemeManager;
vgui::ISystem *g_pVGuiSystem;
ILocalize *g_pLocalize;
vgui::ILocalize *g_pVGuiLocalize;
IMatSystemSurface *g_pMatSystemSurface;
IDataCache *g_pDataCache;
IMDLCache *g_pMDLCache, *mdlcache;
IAvi *g_pAVI;
IBik *g_pBIK;
IDmeMakefileUtils *g_pDmeMakefileUtils;
IPhysicsCollision *g_pPhysicsCollision;
ISoundEmitterSystemBase *g_pSoundEmitterSystem;
IMeshSystem *g_pMeshSystem;
IRenderDevice *g_pRenderDevice;
IRenderHardwareConfig *g_pRenderHardwareConfig;
ISceneSystem *g_pSceneSystem;
IWorldRendererMgr *g_pWorldRendererMgr;
IVGuiRenderSurface *g_pVGuiRenderSurface;
IMatchFramework *g_pMatchFramework;
IGameUISystemMgr *g_pGameUISystemMgr;
struct InterfaceGlobals_t
{
const char *m_pInterfaceName;
void *m_ppGlobal;
};
struct ConnectionRegistration_t
{
void *m_ppGlobalStorage;
int m_nConnectionPhase;
};
static const InterfaceGlobals_t g_pInterfaceGlobals[] =
{
{ CVAR_INTERFACE_VERSION, cvar },
{ CVAR_INTERFACE_VERSION, g_pCVar },
{ EVENTSYSTEM_INTERFACE_VERSION, g_pEventSystem },
{ PROCESS_UTILS_INTERFACE_VERSION, g_pProcessUtils },
{ VPHYSICS2_INTERFACE_VERSION, g_pPhysics2 },
{ VPHYSICS2_ACTOR_MGR_INTERFACE_VERSION, g_pPhysics2ActorManager },
{ VPHYSICS2_RESOURCE_MGR_INTERFACE_VERSION, g_pPhysics2ResourceManager },
{ FILESYSTEM_INTERFACE_VERSION, g_pFullFileSystem },
{ ASYNCFILESYSTEM_INTERFACE_VERSION, g_pAsyncFileSystem },
{ RESOURCESYSTEM_INTERFACE_VERSION, g_pResourceSystem },
{ MATERIAL_SYSTEM_INTERFACE_VERSION, materials },
{ MATERIAL_SYSTEM_INTERFACE_VERSION, g_pMaterialSystem },
{ MATERIAL_SYSTEM2_INTERFACE_VERSION, g_pMaterialSystem2 },
{ INPUTSYSTEM_INTERFACE_VERSION, g_pInputSystem },
{ INPUTSTACKSYSTEM_INTERFACE_VERSION, g_pInputStackSystem },
{ NETWORKSYSTEM_INTERFACE_VERSION, g_pNetworkSystem },
{ RENDER_DEVICE_MGR_INTERFACE_VERSION, g_pRenderDeviceMgr },
{ MATERIALSYSTEM_HARDWARECONFIG_INTERFACE_VERSION, g_pMaterialSystemHardwareConfig },
{ SOUNDSYSTEM_INTERFACE_VERSION, g_pSoundSystem },
{ DEBUG_TEXTURE_INFO_VERSION, g_pMaterialSystemDebugTextureInfo },
{ VB_ALLOC_TRACKER_INTERFACE_VERSION, g_VBAllocTracker },
{ COLORCORRECTION_INTERFACE_VERSION, colorcorrection },
{ P4_INTERFACE_VERSION, p4 },
{ MDLLIB_INTERFACE_VERSION, mdllib },
{ QUEUEDLOADER_INTERFACE_VERSION, g_pQueuedLoader },
{ RESOURCE_ACCESS_CONTROL_INTERFACE_VERSION, g_pResourceAccessControl },
{ PRECACHE_SYSTEM_INTERFACE_VERSION, g_pPrecacheSystem },
{ STUDIO_RENDER_INTERFACE_VERSION, g_pStudioRender },
{ STUDIO_RENDER_INTERFACE_VERSION, studiorender },
{ VGUI_IVGUI_INTERFACE_VERSION, g_pVGui },
{ VGUI_INPUT_INTERFACE_VERSION, g_pVGuiInput },
{ VGUI_PANEL_INTERFACE_VERSION, g_pVGuiPanel },
{ VGUI_SURFACE_INTERFACE_VERSION, g_pVGuiSurface },
{ VGUI_SCHEME_INTERFACE_VERSION, g_pVGuiSchemeManager },
{ VGUI_SYSTEM_INTERFACE_VERSION, g_pVGuiSystem },
{ LOCALIZE_INTERFACE_VERSION, g_pLocalize },
{ LOCALIZE_INTERFACE_VERSION, g_pVGuiLocalize },
{ MAT_SYSTEM_SURFACE_INTERFACE_VERSION, g_pMatSystemSurface },
{ DATACACHE_INTERFACE_VERSION, g_pDataCache },
{ MDLCACHE_INTERFACE_VERSION, g_pMDLCache },
{ MDLCACHE_INTERFACE_VERSION, mdlcache },
{ AVI_INTERFACE_VERSION, g_pAVI },
{ BIK_INTERFACE_VERSION, g_pBIK },
{ DMEMAKEFILE_UTILS_INTERFACE_VERSION, g_pDmeMakefileUtils },
{ VPHYSICS_COLLISION_INTERFACE_VERSION, g_pPhysicsCollision },
{ SOUNDEMITTERSYSTEM_INTERFACE_VERSION, g_pSoundEmitterSystem },
{ MESHSYSTEM_INTERFACE_VERSION, g_pMeshSystem },
{ RENDER_DEVICE_INTERFACE_VERSION, g_pRenderDevice },
{ RENDER_HARDWARECONFIG_INTERFACE_VERSION, g_pRenderHardwareConfig },
{ SCENESYSTEM_INTERFACE_VERSION, g_pSceneSystem },
{ WORLD_RENDERER_MGR_INTERFACE_VERSION, g_pWorldRendererMgr },
{ RENDER_SYSTEM_SURFACE_INTERFACE_VERSION, g_pVGuiRenderSurface },
{ MATCHFRAMEWORK_INTERFACE_VERSION, g_pMatchFramework },
{ GAMEUISYSTEMMGR_INTERFACE_VERSION, g_pGameUISystemMgr }
};
static const int NUM_INTERFACES = sizeof(g_pInterfaceGlobals) / sizeof(InterfaceGlobals_t);
static int s_nConnectionCount;
static int s_nRegistrationCount;
static ConnectionRegistration_t s_pConnectionRegistration[NUM_INTERFACES + 1];
void ReconnectInterface(CreateInterfaceFn factory, char const *pInterfaceName, void **w);
void ConnectInterfaces(CreateInterfaceFn *pFactoryList, int nFactoryCount)
{
if (s_nRegistrationCount < 0)
{
Error("APPSYSTEM: In ConnectInterfaces(), s_nRegistrationCount is %d!\n", s_nRegistrationCount);
s_nConnectionCount++;
return;
}
if (s_nRegistrationCount)
{
for (int i = 0; i < nFactoryCount; i++)
{
for (int j = 0; j < NUM_INTERFACES; j++)
{
ReconnectInterface(pFactoryList[i], g_pInterfaceGlobals[j].m_pInterfaceName, (void **)g_pInterfaceGlobals[j].m_ppGlobal);
}
}
s_nConnectionCount++;
return;
}
for (int i = 0; i < nFactoryCount; i++)
{
for (int j = 0; j < NUM_INTERFACES; j++)
{
const InterfaceGlobals_t &iface = g_pInterfaceGlobals[j];
if (!(*(void **)iface.m_ppGlobal))
{
void *ptr = pFactoryList[i](iface.m_pInterfaceName, NULL);
*(void **)iface.m_ppGlobal = ptr;
if (ptr)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[s_nRegistrationCount++];
reg.m_ppGlobalStorage = iface.m_ppGlobal;
reg.m_nConnectionPhase = s_nConnectionCount;
}
}
}
}
s_nConnectionCount++;
}
void DisconnectInterfaces()
{
if (--s_nConnectionCount >= 0)
{
for (int i = 0; i < s_nRegistrationCount; i++)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[i];
if (reg.m_nConnectionPhase == s_nConnectionCount)
reg.m_ppGlobalStorage = NULL;
}
}
}
void ReconnectInterface(CreateInterfaceFn factory, char const *pInterfaceName, void **ppGlobal)
{
bool got = false;
*ppGlobal = factory(pInterfaceName, NULL);
for (int i = 0; i < s_nRegistrationCount; i++)
{
if (s_pConnectionRegistration[i].m_ppGlobalStorage == ppGlobal)
got = true;
}
if ((s_nRegistrationCount <= 0 || !got) && *ppGlobal)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[s_nRegistrationCount++];
reg.m_ppGlobalStorage = ppGlobal;
reg.m_nConnectionPhase = s_nConnectionCount;
}
}
void ReconnectInterface(CreateInterfaceFn factory, const char *pInterfaceName)
{
for (int i = 0; i < NUM_INTERFACES; i++)
{
const InterfaceGlobals_t &iface = g_pInterfaceGlobals[i];
if (strcmp(iface.m_pInterfaceName, pInterfaceName) == 0)
ReconnectInterface(factory, iface.m_pInterfaceName, (void **)iface.m_ppGlobal);
}
}

20
interfaces/interfaces.sln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "interfaces", "interfaces.vcxproj", "{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Debug|Win32.ActiveCfg = Debug|Win32
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Debug|Win32.Build.0 = Debug|Win32
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Release|Win32.ActiveCfg = Release|Win32
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,226 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>interfaces</ProjectName>
<ProjectGuid>{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}</ProjectGuid>
<RootNamespace>tier1</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\lib\public\</OutDir>
<PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PostBuildEventUseInBuild>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\lib\public\</OutDir>
<PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PostBuildEventUseInBuild>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\public;..\public\tier0;..\public\tier1;..\public\interfaces;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32;COMPILER_MSVC;COMPILER_MSVC32;_DEBUG;DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TIER1_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>
</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeader>
</PrecompiledHeader>
<ExpandAttributedSource>false</ExpandAttributedSource>
<AssemblerOutput>
</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
<BrowseInformation>
</BrowseInformation>
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsCpp</CompileAs>
<ErrorReporting>Prompt</ErrorReporting>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<PreLinkEvent>
<Command>
</Command>
</PreLinkEvent>
<Lib>
<UseUnicodeResponseFiles>false</UseUnicodeResponseFiles>
<AdditionalDependencies>Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Xdcmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Xdcmake>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(OutDir)tier1.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>..\public;..\public\tier0;..\public\tier1;..\public\interfaces;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32;COMPILER_MSVC;COMPILER_MSVC32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TIER1_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeader>
</PrecompiledHeader>
<ExpandAttributedSource>false</ExpandAttributedSource>
<AssemblerOutput>
</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
<BrowseInformation>
</BrowseInformation>
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
<CompileAs>CompileAsCpp</CompileAs>
<ErrorReporting>Prompt</ErrorReporting>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<PreLinkEvent>
<Command>
</Command>
</PreLinkEvent>
<Lib>
<UseUnicodeResponseFiles>false</UseUnicodeResponseFiles>
<AdditionalDependencies>Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Xdcmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Xdcmake>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(OutDir)tier1.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\public\tier1\bitbuf.h" />
<ClInclude Include="..\public\tier1\byteswap.h" />
<ClInclude Include="..\public\tier1\callqueue.h" />
<ClInclude Include="..\public\tier1\characterset.h" />
<ClInclude Include="..\public\tier1\checksum_crc.h" />
<ClInclude Include="..\public\tier1\checksum_md5.h" />
<ClInclude Include="..\public\tier1\CommandBuffer.h" />
<ClInclude Include="..\public\tier1\convar.h" />
<ClInclude Include="..\public\tier1\datamanager.h" />
<ClInclude Include="..\public\datamap.h" />
<ClInclude Include="..\public\tier1\delegates.h" />
<ClInclude Include="..\public\tier1\diff.h" />
<ClInclude Include="..\public\tier1\fmtstr.h" />
<ClInclude Include="..\public\tier1\functors.h" />
<ClInclude Include="..\public\tier1\generichash.h" />
<ClInclude Include="..\public\tier1\iconvar.h" />
<ClInclude Include="..\public\tier1\interface.h" />
<ClInclude Include="..\public\tier1\KeyValues.h" />
<ClInclude Include="..\public\tier1\lzmaDecoder.h" />
<ClInclude Include="..\public\tier1\lzss.h" />
<ClInclude Include="..\public\tier1\mempool.h" />
<ClInclude Include="..\public\tier1\memstack.h" />
<ClInclude Include="..\public\tier1\netadr.h" />
<ClInclude Include="..\public\tier1\processor_detect.h" />
<ClInclude Include="..\public\tier1\rangecheckedvar.h" />
<ClInclude Include="..\public\tier1\refcount.h" />
<ClInclude Include="..\public\tier1\smartptr.h" />
<ClInclude Include="..\public\tier1\stringpool.h" />
<ClInclude Include="..\public\tier1\strtools.h" />
<ClInclude Include="..\public\tier1\tier1.h" />
<ClInclude Include="..\public\tier1\uniqueid.h" />
<ClInclude Include="..\public\tier1\utlbidirectionalset.h" />
<ClInclude Include="..\public\tier1\utlblockmemory.h" />
<ClInclude Include="..\public\tier1\utlbuffer.h" />
<ClInclude Include="..\public\tier1\utlbufferutil.h" />
<ClInclude Include="..\public\tier1\utldict.h" />
<ClInclude Include="..\public\tier1\utlenvelope.h" />
<ClInclude Include="..\public\tier1\utlfixedmemory.h" />
<ClInclude Include="..\public\tier1\utlhandletable.h" />
<ClInclude Include="..\public\tier1\utlhash.h" />
<ClInclude Include="..\public\tier1\utllinkedlist.h" />
<ClInclude Include="..\public\tier1\utlmap.h" />
<ClInclude Include="..\public\tier1\utlmemory.h" />
<ClInclude Include="..\public\tier1\utlmultilist.h" />
<ClInclude Include="..\public\tier1\utlpriorityqueue.h" />
<ClInclude Include="..\public\tier1\utlqueue.h" />
<ClInclude Include="..\public\tier1\utlrbtree.h" />
<ClInclude Include="..\public\tier1\UtlSortVector.h" />
<ClInclude Include="..\public\tier1\utlstack.h" />
<ClInclude Include="..\public\tier1\utlstring.h" />
<ClInclude Include="..\public\tier1\UtlStringMap.h" />
<ClInclude Include="..\public\tier1\utlsymbol.h" />
<ClInclude Include="..\public\tier1\utlvector.h" />
<ClInclude Include="..\common\xbox\xboxstubs.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="interfaces.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{aba1d919-d95c-4c3f-a495-be0375bab184}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{0295d938-2af6-4393-9785-4b7b122313c9}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\public\tier1\bitbuf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\byteswap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\callqueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\characterset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\checksum_crc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\checksum_md5.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\CommandBuffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\convar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\datamanager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\datamap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\delegates.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\diff.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\fmtstr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\functors.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\generichash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\iconvar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\interface.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\KeyValues.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\lzmaDecoder.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\lzss.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\mempool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\memstack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\netadr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\processor_detect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\rangecheckedvar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\refcount.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\smartptr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\stringpool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\strtools.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\tier1.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\uniqueid.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlbidirectionalset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlblockmemory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlbuffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlbufferutil.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utldict.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlenvelope.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlfixedmemory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlhandletable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlhash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utllinkedlist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlmemory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlmultilist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlpriorityqueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlqueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlrbtree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\UtlSortVector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlstack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlstring.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\UtlStringMap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlsymbol.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlvector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\common\xbox\xboxstubs.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="interfaces.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

BIN
lib/linux/interfaces_i486.a Normal file

Binary file not shown.

BIN
lib/linux/libtier0.so Normal file

Binary file not shown.

BIN
lib/linux/libvstdlib.so Normal file

Binary file not shown.

BIN
lib/linux/mathlib_i486.a Normal file

Binary file not shown.

BIN
lib/linux/tier1_i486.a Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -63,13 +63,13 @@ LIB_DIR = $(SRC_DIR)/lib/linux
# the CPU target for the build, must be i486 for now
ARCH = i486
ARCH_CFLAGS = -mtune=i686 -march=pentium3 -mmmx -m32
ARCH_CFLAGS = -mtune=i686 -march=pentium3 -mmmx -msse -m32
DEFINES = -D_LINUX -DLINUX -DVPROF_LEVEL=1 -DSWDS -D_finite=finite -Dstricmp=strcasecmp -D_stricmp=strcasecmp \
DEFINES = -D_LINUX -DLINUX -DCOMPILER_GCC -DPOSIX -DVPROF_LEVEL=1 -DSWDS -D_finite=finite -Dstricmp=strcasecmp -D_stricmp=strcasecmp \
-D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp
UNDEF = -Usprintf -Ustrncpy -UPROTECTED_THINGS_ENABLE
BASE_CFLAGS = -fno-strict-aliasing -Wall -Werror -Wconversion -Wno-non-virtual-dtor -Wno-invalid-offsetof
BASE_CFLAGS = -fno-strict-aliasing -Wall -Werror -Wno-conversion -Wno-non-virtual-dtor -Wno-invalid-offsetof
SHLIBEXT = so
SHLIBCFLAGS = -fPIC
SHLIBLDFLAGS = -shared -Wl,-Map,$@_map.txt -Wl
@ -100,6 +100,7 @@ MAKE_VCPM = Makefile.vcpm
MAKE_PLUGIN = Makefile.plugin
MAKE_TIER1 = Makefile.tier1
MAKE_MATH = Makefile.mathlib
MAKE_IFACE = Makefile.interfaces
MAKE_CHOREO = Makefile.choreo
all: check vcpm mod
@ -131,6 +132,9 @@ tier1:
mathlib:
$(MAKE) -f $(MAKE_MATH) $(BASE_DEFINES)
interfaces:
$(MAKE) -f $(MAKE_IFACE) $(BASE_DEFINES)
choreo:
$(MAKE) -f $(MAKE_CHOREO) $(BASE_DEFINES)
@ -147,4 +151,5 @@ clean:
$(MAKE) -f $(MAKE_SERVER) $(BASE_DEFINES) clean
$(MAKE) -f $(MAKE_TIER1) $(BASE_DEFINES) clean
$(MAKE) -f $(MAKE_MATH) $(BASE_DEFINES) clean
$(MAKE) -f $(MAKE_IFACE) $(BASE_DEFINES) clean
$(MAKE) -f $(MAKE_CHOREO) $(BASE_DEFINES) clean

View File

@ -0,0 +1,51 @@
#
# Tier1 Static Library Makefile
#
override NAME = interfaces
LIB_SRC_DIR = $(SRC_DIR)/$(NAME)
PUBLIC_SRC_DIR = $(SRC_DIR)/public
TIER0_PUBLIC_SRC_DIR = $(SRC_DIR)/public/tier0
TIER1_PUBLIC_SRC_DIR = $(SRC_DIR)/public/tier1
LIB_OBJ_DIR=$(BUILD_OBJ_DIR)/$(NAME)_$(ARCH)
# Extension of linux static library
override SHLIBEXT = a
INCLUDEDIRS = -I$(PUBLIC_SRC_DIR) -I$(TIER0_PUBLIC_SRC_DIR) -I$(TIER1_PUBLIC_SRC_DIR) -D_LIB
DO_CC = $(CPLUS) $(INCLUDEDIRS) -DARCH=$(ARCH)
ifeq "$(DEBUG)" "true"
DO_CC += $(DBG_DEFINES) $(DBG_CFLAGS)
else
DO_CC += -DNDEBUG $(CFLAGS)
endif
DO_CC += -o $@ -c $<
#####################################################################
LIB_OBJS= \
$(LIB_OBJ_DIR)/interfaces.o \
all: dirs $(NAME)_$(ARCH).$(SHLIBEXT)
dirs:
-mkdir -p $(BUILD_OBJ_DIR)
-mkdir -p $(LIB_OBJ_DIR)
$(NAME)_$(ARCH).$(SHLIBEXT): $(LIB_OBJS)
$(AR) $(LIB_DIR)/$@ $(LIB_OBJS)
$(LIB_OBJ_DIR)/%.o: $(LIB_SRC_DIR)/%.cpp
$(DO_CC)
install:
cp -f $(NAME)_$(ARCH).$(SHLIBEXT) $(LIB_DIR)/$(NAME)_$(ARCH).$(SHLIBEXT)
clean:
-rm -rf $(LIB_OBJ_DIR)

View File

@ -30,7 +30,6 @@ DO_CC += -o $@ -c $<
#####################################################################
LIB_OBJS= \
$(LIB_OBJ_DIR)/3dnow.o \
$(LIB_OBJ_DIR)/anorms.o \
$(LIB_OBJ_DIR)/bumpvects.o \
$(LIB_OBJ_DIR)/color_conversion.o \

View File

@ -50,7 +50,6 @@ LIB_OBJS= \
$(LIB_OBJ_DIR)/stringpool.o \
$(LIB_OBJ_DIR)/strtools.o \
$(LIB_OBJ_DIR)/tier1.o \
$(LIB_OBJ_DIR)/tokenreader.o \
$(LIB_OBJ_DIR)/undiff.o \
$(LIB_OBJ_DIR)/uniqueid.o \
$(LIB_OBJ_DIR)/utlbuffer.o \

View File

@ -6,6 +6,7 @@
#if !defined(_STATIC_LINKED) || defined(_SHARED_LIB)
#include "mathlib/mathlib.h"
#include "mathlib/vector.h"
#include "mathlib/anorms.h"

View File

@ -5,6 +5,7 @@
//=====================================================================================//
#include <halton.h>
#include "mathlib/mathlib.h"
HaltonSequenceGenerator_t::HaltonSequenceGenerator_t(int b)
{

View File

@ -6,6 +6,7 @@
//
//=============================================================================//
#include <quantize.h>
#include "tier0/basetypes.h"
#define N_EXTRAVALUES 1
#define N_DIMENSIONS (3+N_EXTRAVALUES)

View File

@ -27,12 +27,12 @@ void LightDesc_t::RecalculateDerivedValues(void)
{
// note - this quantity is very sensitive to round off error. the sse
// reciprocal approximation won't cut it here.
OneOver_ThetaDot_Minus_PhiDot=1.0/spread;
m_OneOverThetaDotMinusPhiDot=1.0/spread;
}
else
{
// hard falloff instead of divide by zero
OneOver_ThetaDot_Minus_PhiDot=1.0;
m_OneOverThetaDotMinusPhiDot=1.0;
}
}
if (m_Type==MATERIAL_LIGHT_DIRECTIONAL)
@ -140,7 +140,7 @@ void LightDesc_t::ComputeLightAtPoints( const FourVectors &pos, const FourVector
fltx4 dot2=SubSIMD(Four_Zeros,delta*m_Direction); // dot position with spot light dir for cone falloff
fltx4 cone_falloff_scale=MulSIMD(ReplicateX4(OneOver_ThetaDot_Minus_PhiDot),
fltx4 cone_falloff_scale=MulSIMD(ReplicateX4(m_OneOverThetaDotMinusPhiDot),
SubSIMD(dot2,ReplicateX4(m_PhiDot)));
cone_falloff_scale=MinSIMD(cone_falloff_scale,Four_Ones);
@ -236,7 +236,7 @@ void LightDesc_t::ComputeNonincidenceLightAtPoints( const FourVectors &pos, Four
fltx4 dot2=SubSIMD(Four_Zeros,delta*m_Direction); // dot position with spot light dir for cone falloff
fltx4 cone_falloff_scale=MulSIMD(ReplicateX4(OneOver_ThetaDot_Minus_PhiDot),
fltx4 cone_falloff_scale=MulSIMD(ReplicateX4(m_OneOverThetaDotMinusPhiDot),
SubSIMD(dot2,ReplicateX4(m_PhiDot)));
cone_falloff_scale=MinSIMD(cone_falloff_scale,Four_Ones);

20
mathlib/mathlib.sln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mathlib", "mathlib.vcxproj", "{884C66F2-7F84-4570-AE6C-B634C1113D69}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{884C66F2-7F84-4570-AE6C-B634C1113D69}.Debug|Win32.ActiveCfg = Debug|Win32
{884C66F2-7F84-4570-AE6C-B634C1113D69}.Debug|Win32.Build.0 = Debug|Win32
{884C66F2-7F84-4570-AE6C-B634C1113D69}.Release|Win32.ActiveCfg = Release|Win32
{884C66F2-7F84-4570-AE6C-B634C1113D69}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

407
mathlib/mathlib.vcproj Normal file
View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="mathlib"
ProjectGUID="{884C66F2-7F84-4570-AE6C-B634C1113D69}"
RootNamespace="mathlib"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
ExcludedFromBuild="false"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
AdditionalIncludeDirectories="..\public;..\public\tier0;..\public\tier1;..\public\mathlib"
PreprocessorDefinitions="WIN32;_WIN32;_DEBUG;DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
BufferSecurityCheck="false"
FloatingPointModel="2"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
OpenMP="false"
UsePrecompiledHeader="0"
ExpandAttributedSource="false"
AssemblerOutput="0"
AssemblerListingLocation="$(IntDir)/"
ObjectFile="$(IntDir)/"
ProgramDataBaseFileName="$(IntDir)/"
GenerateXMLDocumentationFiles="false"
BrowseInformation="0"
BrowseInformationFile="$(IntDir)/"
WarningLevel="4"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="2"
ErrorReporting="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
CommandLine=""
ExcludedFromBuild="false"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
OutputFile="..\lib\public\mathlib.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/mathlib.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
ExcludedFromBuild="false"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
ExcludedFromBuild="false"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="2"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..\public;..\public\tier0;..\public\tier1;..\public\mathlib"
PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
FloatingPointModel="2"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
OpenMP="false"
UsePrecompiledHeader="0"
ExpandAttributedSource="false"
AssemblerOutput="0"
AssemblerListingLocation="$(IntDir)/"
ObjectFile="$(IntDir)/"
ProgramDataBaseFileName="$(IntDir)/"
GenerateXMLDocumentationFiles="false"
BrowseInformation="0"
BrowseInformationFile="$(IntDir)/"
WarningLevel="4"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="1"
CompileAs="2"
ErrorReporting="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
CommandLine=""
ExcludedFromBuild="false"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
OutputFile="..\lib\public\mathlib.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/mathlib.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
ExcludedFromBuild="false"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath=".\3dnow.cpp"
>
</File>
<File
RelativePath=".\anorms.cpp"
>
</File>
<File
RelativePath=".\bumpvects.cpp"
>
</File>
<File
RelativePath=".\color_conversion.cpp"
>
</File>
<File
RelativePath=".\halton.cpp"
>
</File>
<File
RelativePath=".\IceKey.cpp"
>
</File>
<File
RelativePath=".\imagequant.cpp"
>
</File>
<File
RelativePath=".\lightdesc.cpp"
>
</File>
<File
RelativePath=".\mathlib_base.cpp"
>
</File>
<File
RelativePath=".\polyhedron.cpp"
>
</File>
<File
RelativePath=".\powsse.cpp"
>
</File>
<File
RelativePath=".\quantize.cpp"
>
</File>
<File
RelativePath=".\randsse.cpp"
>
</File>
<File
RelativePath=".\simdvectormatrix.cpp"
>
</File>
<File
RelativePath=".\sparse_convolution_noise.cpp"
>
</File>
<File
RelativePath=".\sse.cpp"
>
</File>
<File
RelativePath=".\sseconst.cpp"
>
</File>
<File
RelativePath=".\ssenoise.cpp"
>
</File>
<File
RelativePath=".\vector.cpp"
>
</File>
<File
RelativePath=".\vmatrix.cpp"
>
</File>
</Filter>
<Filter
Name="Public Header Files"
Filter="h"
>
<File
RelativePath="..\public\mathlib\amd3dx.h"
>
</File>
<File
RelativePath="..\public\mathlib\anorms.h"
>
</File>
<File
RelativePath="..\public\mathlib\bumpvects.h"
>
</File>
<File
RelativePath="..\public\mathlib\compressed_3d_unitvec.h"
>
</File>
<File
RelativePath="..\public\mathlib\compressed_light_cube.h"
>
</File>
<File
RelativePath="..\public\mathlib\compressed_vector.h"
>
</File>
<File
RelativePath="..\public\mathlib\halton.h"
>
</File>
<File
RelativePath="..\public\mathlib\IceKey.H"
>
</File>
<File
RelativePath="..\public\mathlib\lightdesc.h"
>
</File>
<File
RelativePath="..\public\mathlib\math_pfns.h"
>
</File>
<File
RelativePath="..\public\mathlib\mathlib.h"
>
</File>
<File
RelativePath="..\public\mathlib\noise.h"
>
</File>
<File
RelativePath="..\public\mathlib\polyhedron.h"
>
</File>
<File
RelativePath="..\public\mathlib\quantize.h"
>
</File>
<File
RelativePath="..\public\mathlib\simdvectormatrix.h"
>
</File>
<File
RelativePath="..\public\mathlib\ssemath.h"
>
</File>
<File
RelativePath="..\public\mathlib\ssequaternion.h"
>
</File>
<File
RelativePath="..\public\mathlib\vector.h"
>
</File>
<File
RelativePath="..\public\mathlib\vector2d.h"
>
</File>
<File
RelativePath="..\public\mathlib\vector4d.h"
>
</File>
<File
RelativePath="..\public\mathlib\vmatrix.h"
>
</File>
<File
RelativePath="..\public\mathlib\vplane.h"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath=".\3dnow.h"
>
</File>
<File
RelativePath=".\noisedata.h"
>
</File>
<File
RelativePath=".\sse.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

212
mathlib/mathlib.vcxproj Normal file
View File

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{884C66F2-7F84-4570-AE6C-B634C1113D69}</ProjectGuid>
<RootNamespace>mathlib</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\lib\public\</OutDir>
<PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PostBuildEventUseInBuild>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\lib\public\</OutDir>
<PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PostBuildEventUseInBuild>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\public;..\public\tier0;..\public\tier1;..\public\mathlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32;COMPILER_MSVC;COMPILER_MSVC32;_DEBUG;DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>
</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeader>
</PrecompiledHeader>
<ExpandAttributedSource>false</ExpandAttributedSource>
<AssemblerOutput>
</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
<BrowseInformation>
</BrowseInformation>
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsCpp</CompileAs>
<ErrorReporting>Prompt</ErrorReporting>
</ClCompile>
<PreLinkEvent>
<Command>
</Command>
</PreLinkEvent>
<Lib>
<UseUnicodeResponseFiles>false</UseUnicodeResponseFiles>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Xdcmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Xdcmake>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(OutDir)mathlib.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>..\public;..\public\tier0;..\public\tier1;..\public\mathlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32;COMPILER_MSVC;COMPILER_MSVC32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeader>
</PrecompiledHeader>
<ExpandAttributedSource>false</ExpandAttributedSource>
<AssemblerOutput>
</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
<BrowseInformation>
</BrowseInformation>
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
<CompileAs>CompileAsCpp</CompileAs>
<ErrorReporting>Prompt</ErrorReporting>
</ClCompile>
<PreLinkEvent>
<Command>
</Command>
</PreLinkEvent>
<Lib>
<UseUnicodeResponseFiles>false</UseUnicodeResponseFiles>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Xdcmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Xdcmake>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(OutDir)mathlib.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="anorms.cpp" />
<ClCompile Include="bumpvects.cpp" />
<ClCompile Include="color_conversion.cpp" />
<ClCompile Include="halton.cpp" />
<ClCompile Include="IceKey.cpp" />
<ClCompile Include="imagequant.cpp" />
<ClCompile Include="lightdesc.cpp" />
<ClCompile Include="mathlib_base.cpp" />
<ClCompile Include="polyhedron.cpp" />
<ClCompile Include="powsse.cpp" />
<ClCompile Include="quantize.cpp" />
<ClCompile Include="randsse.cpp" />
<ClCompile Include="simdvectormatrix.cpp" />
<ClCompile Include="sparse_convolution_noise.cpp" />
<ClCompile Include="sse.cpp" />
<ClCompile Include="sseconst.cpp" />
<ClCompile Include="ssenoise.cpp" />
<ClCompile Include="vector.cpp" />
<ClCompile Include="vmatrix.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\public\mathlib\amd3dx.h" />
<ClInclude Include="..\public\mathlib\anorms.h" />
<ClInclude Include="..\public\mathlib\bumpvects.h" />
<ClInclude Include="..\public\mathlib\compressed_3d_unitvec.h" />
<ClInclude Include="..\public\mathlib\compressed_light_cube.h" />
<ClInclude Include="..\public\mathlib\compressed_vector.h" />
<ClInclude Include="..\public\mathlib\halton.h" />
<ClInclude Include="..\public\mathlib\IceKey.H" />
<ClInclude Include="..\public\mathlib\lightdesc.h" />
<ClInclude Include="..\public\mathlib\math_pfns.h" />
<ClInclude Include="..\public\mathlib\mathlib.h" />
<ClInclude Include="..\public\mathlib\noise.h" />
<ClInclude Include="..\public\mathlib\polyhedron.h" />
<ClInclude Include="..\public\mathlib\quantize.h" />
<ClInclude Include="..\public\mathlib\simdvectormatrix.h" />
<ClInclude Include="..\public\mathlib\ssemath.h" />
<ClInclude Include="..\public\mathlib\ssequaternion.h" />
<ClInclude Include="..\public\mathlib\vector.h" />
<ClInclude Include="..\public\mathlib\vector2d.h" />
<ClInclude Include="..\public\mathlib\vector4d.h" />
<ClInclude Include="..\public\mathlib\vmatrix.h" />
<ClInclude Include="..\public\mathlib\vplane.h" />
<ClInclude Include="3dnow.h" />
<ClInclude Include="noisedata.h" />
<ClInclude Include="sse.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{00f9c713-dc8b-4f56-b6a8-0f7252d1a270}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Public Header Files">
<UniqueIdentifier>{c9fa2f3a-719d-4fab-aa39-714cf6391317}</UniqueIdentifier>
<Extensions>h</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{7f621938-4fe8-4d3f-a1b1-e00a41531e16}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="anorms.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="bumpvects.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="color_conversion.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="halton.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="IceKey.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="imagequant.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="lightdesc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mathlib_base.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="polyhedron.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="powsse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="quantize.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="randsse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="simdvectormatrix.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sparse_convolution_noise.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sseconst.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ssenoise.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="vector.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="vmatrix.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\public\mathlib\amd3dx.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\anorms.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\bumpvects.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\compressed_3d_unitvec.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\compressed_light_cube.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\compressed_vector.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\halton.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\IceKey.H">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\lightdesc.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\math_pfns.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\mathlib.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\noise.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\polyhedron.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\quantize.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\simdvectormatrix.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\ssemath.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\ssequaternion.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\vector.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\vector2d.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\vector4d.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\vmatrix.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\mathlib\vplane.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="3dnow.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="noisedata.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="sse.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -24,13 +24,12 @@
#include "mathlib/mathlib.h"
#include "mathlib/vector.h"
#if !defined( _X360 )
#include "mathlib/amd3dx.h"
#include "3dnow.h"
#include "sse.h"
#endif
#include "mathlib/ssemath.h"
#include "mathlib/ssequaternion.h"
#include "mathlib/vplane.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
@ -42,7 +41,6 @@ bool s_bMathlibInitialized = false;
void Sys_Error (char *error, ...);
#endif
const Vector vec3_origin(0,0,0);
const QAngle vec3_angle(0,0,0);
const Vector vec3_invalid( FLT_MAX, FLT_MAX, FLT_MAX );
const int nanmask = 255<<23;
@ -63,10 +61,10 @@ float _rsqrtf(float x)
return 1.f / _sqrtf( x );
}
float FASTCALL _VectorNormalize (Vector& vec)
float VectorNormalize (Vector& vec)
{
#ifdef _VPROF_MATHLIB
VPROF_BUDGET( "_VectorNormalize", "Mathlib" );
VPROF_BUDGET( "VectorNormalize", "Mathlib" );
#endif
Assert( s_bMathlibInitialized );
float radius = sqrtf(vec.x*vec.x + vec.y*vec.y + vec.z*vec.z);
@ -81,6 +79,8 @@ float FASTCALL _VectorNormalize (Vector& vec)
return radius;
}
// TODO: Add fast C VectorNormalizeFast.
// Perhaps use approximate rsqrt trick, if the accuracy isn't too bad.
void FASTCALL _VectorNormalizeFast (Vector& vec)
@ -109,7 +109,6 @@ float _InvRSquared(const float* v)
float (*pfSqrt)(float x) = _sqrtf;
float (*pfRSqrt)(float x) = _rsqrtf;
float (*pfRSqrtFast)(float x) = _rsqrtf;
float (FASTCALL *pfVectorNormalize)(Vector& v) = _VectorNormalize;
void (FASTCALL *pfVectorNormalizeFast)(Vector& v) = _VectorNormalizeFast;
float (*pfInvRSquared)(const float* v) = _InvRSquared;
void (*pfFastSinCos)(float x, float* s, float* c) = SinCos;
@ -382,9 +381,9 @@ void MatrixInvert( const matrix3x4_t& in, matrix3x4_t& out )
Assert( s_bMathlibInitialized );
if ( &in == &out )
{
swap(out[0][1],out[1][0]);
swap(out[0][2],out[2][0]);
swap(out[1][2],out[2][1]);
V_swap(out[0][1],out[1][0]);
V_swap(out[0][2],out[2][0]);
V_swap(out[1][2],out[2][1]);
}
else
{
@ -1266,18 +1265,18 @@ bool SolveInverseQuadraticMonotonic( float x1, float y1, float x2, float y2, flo
// first, sort parameters
if (x1>x2)
{
swap(x1,x2);
swap(y1,y2);
V_swap(x1,x2);
V_swap(y1,y2);
}
if (x2>x3)
{
swap(x2,x3);
swap(y2,y3);
V_swap(x2,x3);
V_swap(y2,y3);
}
if (x1>x2)
{
swap(x1,x2);
swap(y1,y2);
V_swap(x1,x2);
V_swap(y1,y2);
}
// this code is not fast. what it does is when the curve would be non-monotonic, slowly shifts
// the center point closer to the linear line between the endpoints. Should anyone need htis
@ -3198,7 +3197,6 @@ bool CalcLineToLineIntersectionSegment(
#pragma optimize( "", on )
#endif
static bool s_b3DNowEnabled = false;
static bool s_bMMXEnabled = false;
static bool s_bSSEEnabled = false;
static bool s_bSSE2Enabled = false;
@ -3218,7 +3216,6 @@ void MathLib_Init( float gamma, float texGamma, float brightness, int overbright
pfSqrt = _sqrtf;
pfRSqrt = _rsqrtf;
pfRSqrtFast = _rsqrtf;
pfVectorNormalize = _VectorNormalize;
pfVectorNormalizeFast = _VectorNormalizeFast;
pfInvRSquared = _InvRSquared;
pfFastSinCos = SinCos;
@ -3235,31 +3232,11 @@ void MathLib_Init( float gamma, float texGamma, float brightness, int overbright
s_bMMXEnabled = false;
}
// SSE Generally performs better than 3DNow when present, so this is placed
// first to allow SSE to override these settings.
if ( bAllow3DNow && pi.m_b3DNow )
{
s_b3DNowEnabled = true;
// Select the 3DNow specific routines if available;
pfVectorNormalize = _3DNow_VectorNormalize;
pfVectorNormalizeFast = _3DNow_VectorNormalizeFast;
pfInvRSquared = _3DNow_InvRSquared;
pfSqrt = _3DNow_Sqrt;
pfRSqrt = _3DNow_RSqrt;
pfRSqrtFast = _3DNow_RSqrt;
}
else
{
s_b3DNowEnabled = false;
}
if ( bAllowSSE && pi.m_bSSE )
{
s_bSSEEnabled = true;
// Select the SSE specific routines if available
pfVectorNormalize = _VectorNormalize;
pfVectorNormalizeFast = _SSE_VectorNormalizeFast;
pfInvRSquared = _SSE_InvRSquared;
pfSqrt = _SSE_Sqrt;
@ -3295,12 +3272,6 @@ void MathLib_Init( float gamma, float texGamma, float brightness, int overbright
BuildGammaTable( gamma, texGamma, brightness, overbright );
}
bool MathLib_3DNowEnabled( void )
{
Assert( s_bMathlibInitialized );
return s_b3DNowEnabled;
}
bool MathLib_MMXEnabled( void )
{
Assert( s_bMathlibInitialized );
@ -3319,20 +3290,6 @@ bool MathLib_SSE2Enabled( void )
return s_bSSE2Enabled;
}
float Approach( float target, float value, float speed )
{
float delta = target - value;
if ( delta > speed )
value += speed;
else if ( delta < -speed )
value -= speed;
else
value = target;
return value;
}
// BUGBUG: Why doesn't this call angle diff?!?!?
float ApproachAngle( float target, float value, float speed )
{
@ -3816,8 +3773,8 @@ void GeneratePerspectiveFrustum( const Vector& origin, const Vector &forward,
float flIntercept = DotProduct( origin, forward );
// Setup the near and far planes.
frustum.SetPlane( FRUSTUM_FARZ, PLANE_ANYZ, -forward, -flZFar - flIntercept );
frustum.SetPlane( FRUSTUM_NEARZ, PLANE_ANYZ, forward, flZNear + flIntercept );
frustum.SetPlane( FRUSTUM_FARZ, -forward, -flZFar - flIntercept );
frustum.SetPlane( FRUSTUM_NEARZ, forward, flZNear + flIntercept );
flFovX *= 0.5f;
flFovY *= 0.5f;
@ -3834,8 +3791,8 @@ void GeneratePerspectiveFrustum( const Vector& origin, const Vector &forward,
VectorNormalize( normalPos );
VectorNormalize( normalNeg );
frustum.SetPlane( FRUSTUM_LEFT, PLANE_ANYZ, normalPos, normalPos.Dot( origin ) );
frustum.SetPlane( FRUSTUM_RIGHT, PLANE_ANYZ, normalNeg, normalNeg.Dot( origin ) );
frustum.SetPlane( FRUSTUM_LEFT, normalPos, normalPos.Dot( origin ) );
frustum.SetPlane( FRUSTUM_RIGHT,normalNeg, normalNeg.Dot( origin ) );
VectorMA( up, flTanY, forward, normalPos );
VectorMA( normalPos, -2.0f, up, normalNeg );
@ -3843,8 +3800,8 @@ void GeneratePerspectiveFrustum( const Vector& origin, const Vector &forward,
VectorNormalize( normalPos );
VectorNormalize( normalNeg );
frustum.SetPlane( FRUSTUM_BOTTOM, PLANE_ANYZ, normalPos, normalPos.Dot( origin ) );
frustum.SetPlane( FRUSTUM_TOP, PLANE_ANYZ, normalNeg, normalNeg.Dot( origin ) );
frustum.SetPlane( FRUSTUM_BOTTOM, normalPos, normalPos.Dot( origin ) );
frustum.SetPlane( FRUSTUM_TOP, normalNeg, normalNeg.Dot( origin ) );
}
@ -3859,23 +3816,40 @@ void GeneratePerspectiveFrustum( const Vector& origin, const QAngle &angles, flo
GeneratePerspectiveFrustum( origin, vecForward, vecRight, vecUp, flZNear, flZFar, flFovX, flFovY, frustum );
}
inline cplane_t *ToPlane(cplane_t *out, const Frustum_t &frustum, int type)
{
Vector vecNormal;
float dist;
frustum.GetPlane(type, &vecNormal, &dist);
out->normal = vecNormal;
out->dist = dist;
out->type = PLANE_ANYZ;
out->signbits = SignbitsForPlane(out);
return out;
}
bool R_CullBox( const Vector& mins, const Vector& maxs, const Frustum_t &frustum )
{
return (( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_RIGHT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_LEFT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_TOP) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_BOTTOM) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_NEARZ) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_FARZ) ) == 2 ) );
cplane_t p;
return (( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_RIGHT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_LEFT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_TOP) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_BOTTOM) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_NEARZ) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_FARZ) ) == 2 ) );
}
bool R_CullBoxSkipNear( const Vector& mins, const Vector& maxs, const Frustum_t &frustum )
{
return (( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_RIGHT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_LEFT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_TOP) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_BOTTOM) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, frustum.GetPlane(FRUSTUM_FARZ) ) == 2 ) );
cplane_t p;
return (( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_RIGHT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_LEFT) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_TOP) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_BOTTOM) ) == 2 ) ||
( BoxOnPlaneSide( mins, maxs, ToPlane(&p, frustum, FRUSTUM_FARZ) ) == 2 ) );
}
@ -4088,3 +4062,208 @@ void GetInterpolationData( float const *pKnotPositions,
*pInterpolationValue = FLerp( 0, 1, 0, flSizeOfGap, flOffsetFromStartOfGap );
return;
}
/* Reverse engineered code ahead */
void fourplanes_t::ComputeSignbits()
{
xSign = CmpLtSIMD(nX, Four_Zeros);
ySign = CmpLtSIMD(nY, Four_Zeros);
zSign = CmpLtSIMD(nZ, Four_Zeros);
nXAbs = fabs(nX);
nYAbs = fabs(nY);
nZAbs = fabs(nZ);
}
void fourplanes_t::Set4Planes( const VPlane *pPlanes )
{
nX = *(fltx4 *)pPlanes;
nY = *(fltx4 *)++pPlanes;
nZ = *(fltx4 *)++pPlanes;
dist = *(fltx4 *)++pPlanes;
TransposeSIMD(nX, nY, nZ, dist);
ComputeSignbits();
}
void fourplanes_t::Set2Planes( const VPlane *pPlanes )
{
nX = *(fltx4 *)pPlanes;
nY = *(fltx4 *)++pPlanes;
nZ = Four_Zeros;
dist = Four_Zeros;
TransposeSIMD(nX, nY, nZ, dist);
ComputeSignbits();
}
void fourplanes_t::Get4Planes( VPlane *pPlanesOut )
{
fltx4 tempX = nX;
fltx4 tempY = nY;
fltx4 tempZ = nZ;
fltx4 tempDist = dist;
TransposeSIMD(tempX, tempY, tempZ, tempDist);
*(fltx4 *)pPlanesOut = tempX;
*(fltx4 *)++pPlanesOut = tempY;
*(fltx4 *)++pPlanesOut = tempZ;
*(fltx4 *)++pPlanesOut = tempDist;
}
void fourplanes_t::Get2Planes( VPlane *pPlanesOut )
{
fltx4 tempX = nX;
fltx4 tempY = nY;
fltx4 tempZ = nZ;
fltx4 tempDist = dist;
TransposeSIMD(tempX, tempY, tempZ, tempDist);
*(fltx4 *)pPlanesOut = tempX;
*(fltx4 *)++pPlanesOut = tempY;
}
void fourplanes_t::GetPlane( int index, Vector *pNormal, float *pDist ) const
{
pNormal->x = SubFloat(nX, index);
pNormal->y = SubFloat(nY, index);
pNormal->z = SubFloat(nZ, index);
*pDist = SubFloat(dist, index);
}
void fourplanes_t::SetPlane( int index, const Vector &vecNormal, float planeDist )
{
SubFloat(nX, index) = vecNormal.x;
SubFloat(nY, index) = vecNormal.y;
SubFloat(nZ, index) = vecNormal.z;
SubFloat(dist, index) = planeDist;
ComputeSignbits();
}
Frustum_t::Frustum_t()
{
memset(planes, 0, sizeof(planes));
}
void Frustum_t::SetPlane( int i, const Vector &vecNormal, float dist )
{
if (i < 4)
planes[0].SetPlane(i, vecNormal, dist);
else
planes[1].SetPlane(i - 4, vecNormal, dist);
}
void Frustum_t::GetPlane( int i, Vector *pNormalOut, float *pDistOut) const
{
if (i < 4)
planes[0].GetPlane(i, pNormalOut, pDistOut);
else
planes[1].GetPlane(i - 4, pNormalOut, pDistOut);
}
void Frustum_t::SetPlanes( const VPlane *pPlanes )
{
planes[0].Set4Planes(pPlanes);
planes[1].Set2Planes(pPlanes + 4);
}
void Frustum_t::GetPlanes( VPlane *pPlanesOut )
{
planes[0].Get4Planes(pPlanesOut);
planes[1].Get2Planes(pPlanesOut + 4);
}
bool Frustum_t::CullBox( const Vector &mins, const Vector &maxs ) const
{
fltx4 mins4 = LoadUnalignedSIMD(&mins);
fltx4 maxs4 = LoadUnalignedSIMD(&maxs);
fltx4 minX = SplatXSIMD(mins4);
fltx4 minY = SplatYSIMD(mins4);
fltx4 minZ = SplatZSIMD(mins4);
fltx4 maxX = SplatXSIMD(maxs4);
fltx4 maxY = SplatYSIMD(maxs4);
fltx4 maxZ = SplatZSIMD(maxs4);
for (int i = 0; i < 2; i++)
{
fltx4 xTotalBack = MulSIMD(planes[i].nX, MaskedAssign(planes[i].xSign, minX, maxX));
fltx4 yTotalBack = MulSIMD(planes[i].nY, MaskedAssign(planes[i].ySign, minY, maxY));
fltx4 zTotalBack = MulSIMD(planes[i].nZ, MaskedAssign(planes[i].zSign, minZ, maxZ));
fltx4 dotBack = AddSIMD(xTotalBack, AddSIMD(yTotalBack, zTotalBack));
if (IsAnyNegative(CmpLtSIMD(dotBack, planes[i].dist)))
return true;
}
return false;
}
bool Frustum_t::CullBoxCenterExtents( const Vector &center, const Vector &extents ) const
{
fltx4 center4 = LoadUnalignedSIMD(&center);
fltx4 extents4 = LoadUnalignedSIMD(&extents);
fltx4 centerX = SplatXSIMD(center4);
fltx4 centerY = SplatYSIMD(center4);
fltx4 centerZ = SplatZSIMD(center4);
fltx4 extentsX = SplatXSIMD(extents4);
fltx4 extentsY = SplatYSIMD(extents4);
fltx4 extentsZ = SplatZSIMD(extents4);
for (int i = 0; i < 2; i++)
{
fltx4 xTotalBack = AddSIMD(MulSIMD(planes[i].nX, centerX), MulSIMD(planes[i].nXAbs, extentsX));
fltx4 yTotalBack = AddSIMD(MulSIMD(planes[i].nY, centerY), MulSIMD(planes[i].nYAbs, extentsY));
fltx4 zTotalBack = AddSIMD(MulSIMD(planes[i].nZ, centerZ), MulSIMD(planes[i].nZAbs, extentsZ));
fltx4 dotBack = AddSIMD(xTotalBack, AddSIMD(yTotalBack, zTotalBack));
if (IsAnyNegative(CmpLtSIMD(dotBack, planes[i].dist)))
return true;
}
return false;
}
bool Frustum_t::CullBox( const fltx4 &fl4Mins, const fltx4 &fl4Maxs ) const
{
fltx4 minX = SplatXSIMD(fl4Mins);
fltx4 minY = SplatYSIMD(fl4Mins);
fltx4 minZ = SplatZSIMD(fl4Mins);
fltx4 maxX = SplatXSIMD(fl4Maxs);
fltx4 maxY = SplatYSIMD(fl4Maxs);
fltx4 maxZ = SplatZSIMD(fl4Maxs);
for (int i = 0; i < 2; i++)
{
fltx4 xTotalBack = MulSIMD(planes[i].nX, MaskedAssign(planes[i].xSign, minX, maxX));
fltx4 yTotalBack = MulSIMD(planes[i].nY, MaskedAssign(planes[i].ySign, minY, maxY));
fltx4 zTotalBack = MulSIMD(planes[i].nZ, MaskedAssign(planes[i].zSign, minZ, maxZ));
fltx4 dotBack = AddSIMD(xTotalBack, AddSIMD(yTotalBack, zTotalBack));
if (IsAnyNegative(CmpLtSIMD(dotBack, planes[i].dist)))
return true;
}
return false;
}
bool Frustum_t::CullBoxCenterExtents( const fltx4 &fl4Center, const fltx4 &fl4Extents ) const
{
fltx4 centerX = SplatXSIMD(fl4Center);
fltx4 centerY = SplatYSIMD(fl4Center);
fltx4 centerZ = SplatZSIMD(fl4Center);
fltx4 extentsX = SplatXSIMD(fl4Extents);
fltx4 extentsY = SplatYSIMD(fl4Extents);
fltx4 extentsZ = SplatZSIMD(fl4Extents);
for (int i = 0; i < 2; i++)
{
fltx4 xTotalBack = AddSIMD(MulSIMD(planes[i].nX, centerX), MulSIMD(planes[i].nXAbs, extentsX));
fltx4 yTotalBack = AddSIMD(MulSIMD(planes[i].nY, centerY), MulSIMD(planes[i].nYAbs, extentsY));
fltx4 zTotalBack = AddSIMD(MulSIMD(planes[i].nZ, centerZ), MulSIMD(planes[i].nZAbs, extentsZ));
fltx4 dotBack = AddSIMD(xTotalBack, AddSIMD(yTotalBack, zTotalBack));
if (IsAnyNegative(CmpLtSIMD(dotBack, planes[i].dist)))
return true;
}
return false;
}

View File

@ -21,6 +21,8 @@
#include <math.h>
#include "tier0/basetypes.h"
static int current_ndims;
static struct QuantizedValue *current_root;
static int current_ssize;

View File

@ -172,7 +172,7 @@ float _SSE_RSqrtFast(float x)
{
Assert( s_bMathlibInitialized );
float rroot;
float rroot = 0.0f;
#ifdef _WIN32
_asm
{

View File

@ -6,7 +6,8 @@
//
//=============================================================================//
#include "mathlib/mathlib.h"
#include "mathlib/vector.h"
Vector vec3_origin(0,0,0);
const Vector vec3_origin(0,0,0);

View File

@ -11,6 +11,7 @@
#include "basetypes.h"
#include "mathlib/vmatrix.h"
#include "mathlib/mathlib.h"
#include "mathlib/ssemath.h"
#include <string.h>
#include "mathlib/vector4d.h"
#include "tier0/dbg.h"
@ -1177,27 +1178,27 @@ void FrustumPlanesFromMatrix( const VMatrix &clipToWorld, Frustum_t &frustum )
FrustumPlanesFromMatrixHelper( clipToWorld,
Vector( 0.0f, 0.0f, 0.0f ), Vector( 1.0f, 0.0f, 0.0f ), Vector( 0.0f, 1.0f, 0.0f ), normal, dist );
frustum.SetPlane( FRUSTUM_NEARZ, PLANE_ANYZ, normal, dist );
frustum.SetPlane( FRUSTUM_NEARZ, normal, dist );
FrustumPlanesFromMatrixHelper( clipToWorld,
Vector( 0.0f, 0.0f, 1.0f ), Vector( 0.0f, 1.0f, 1.0f ), Vector( 1.0f, 0.0f, 1.0f ), normal, dist );
frustum.SetPlane( FRUSTUM_FARZ, PLANE_ANYZ, normal, dist );
frustum.SetPlane( FRUSTUM_FARZ, normal, dist );
FrustumPlanesFromMatrixHelper( clipToWorld,
Vector( 1.0f, 0.0f, 0.0f ), Vector( 1.0f, 1.0f, 1.0f ), Vector( 1.0f, 1.0f, 0.0f ), normal, dist );
frustum.SetPlane( FRUSTUM_RIGHT, PLANE_ANYZ, normal, dist );
frustum.SetPlane( FRUSTUM_RIGHT, normal, dist );
FrustumPlanesFromMatrixHelper( clipToWorld,
Vector( 0.0f, 0.0f, 0.0f ), Vector( 0.0f, 1.0f, 1.0f ), Vector( 0.0f, 0.0f, 1.0f ), normal, dist );
frustum.SetPlane( FRUSTUM_LEFT, PLANE_ANYZ, normal, dist );
frustum.SetPlane( FRUSTUM_LEFT, normal, dist );
FrustumPlanesFromMatrixHelper( clipToWorld,
Vector( 1.0f, 1.0f, 0.0f ), Vector( 1.0f, 1.0f, 1.0f ), Vector( 0.0f, 1.0f, 1.0f ), normal, dist );
frustum.SetPlane( FRUSTUM_TOP, PLANE_ANYZ, normal, dist );
frustum.SetPlane( FRUSTUM_TOP, normal, dist );
FrustumPlanesFromMatrixHelper( clipToWorld,
Vector( 1.0f, 0.0f, 0.0f ), Vector( 0.0f, 0.0f, 1.0f ), Vector( 1.0f, 0.0f, 1.0f ), normal, dist );
frustum.SetPlane( FRUSTUM_BOTTOM, PLANE_ANYZ, normal, dist );
frustum.SetPlane( FRUSTUM_BOTTOM, normal, dist );
}
void MatrixBuildOrtho( VMatrix& dst, double left, double top, double right, double bottom, double zNear, double zFar )

View File

@ -33,7 +33,9 @@ typedef enum DXGI_FORMAT;
//-----------------------------------------------------------------------------
// don't bitch that inline functions aren't used!!!!
#ifdef _MSC_VER
#pragma warning(disable : 4514)
#endif
enum ImageFormat
{
@ -170,7 +172,9 @@ typedef enum _D3DFORMAT
//-----------------------------------------------------------------------------
// Color structures
//-----------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma warning ( disable : 4293 )
#endif
template< int nBitCount > FORCEINLINE int ConvertTo10Bit( int x )
{
switch ( nBitCount )
@ -184,10 +188,15 @@ template< int nBitCount > FORCEINLINE int ConvertTo10Bit( int x )
case 4:
return ( x << 6 ) | ( x << 2 ) | ( x >> 2 );
default:
return ( x << ( 10 - nBitCount ) ) | ( x >> ( nBitCount - ( 10 - nBitCount ) ) );
{
int rshift = ( nBitCount - ( 10 - nBitCount ) );
return ( x << ( 10 - nBitCount ) ) | ( x >> rshift );
}
}
}
#ifdef _MSC_VER
#pragma warning ( default : 4293 )
#endif
template< int nBitCount > FORCEINLINE int ConvertFrom10Bit( int x )
{
@ -622,7 +631,7 @@ namespace ImageLoader
struct ResampleInfo_t
{
ResampleInfo_t() : m_nFlags(0), m_flAlphaThreshhold(0.4f), m_flAlphaHiFreqThreshhold(0.4f), m_nSrcDepth(1), m_nDestDepth(1)
ResampleInfo_t() : m_nSrcDepth(1), m_nDestDepth(1), m_flAlphaThreshhold(0.4f), m_flAlphaHiFreqThreshhold(0.4f), m_nFlags(0)
{
m_flColorScale[0] = 1.0f, m_flColorScale[1] = 1.0f, m_flColorScale[2] = 1.0f, m_flColorScale[3] = 1.0f;
m_flColorGoal[0] = 0.0f, m_flColorGoal[1] = 0.0f, m_flColorGoal[2] = 0.0f, m_flColorGoal[3] = 0.0f;

View File

@ -882,7 +882,9 @@ struct dfaceid_t
#if defined( _X360 )
#pragma bitfield_order( push, lsb_to_msb )
#endif
#ifdef _MSC_VER
#pragma warning( disable:4201 ) // C4201: nonstandard extension used: nameless struct/union
#endif
struct dleaf_version_0_t
{
DECLARE_BYTESWAP_DATADESC();
@ -936,7 +938,9 @@ struct dleaf_t
// Precaculated light info for entities.
// CompressedLightCube m_AmbientLighting;
};
#ifdef _MSC_VER
#pragma warning( default:4201 ) // C4201: nonstandard extension used: nameless struct/union
#endif
#if defined( _X360 )
#pragma bitfield_order( pop )
#endif

View File

@ -16,7 +16,7 @@
#include "tier0/dbg.h"
#include "appframework/iappsystem.h"
#include "appframework/IAppSystem.h"
#include "tier3/tier3.h"
class IDataCache;

View File

@ -19,7 +19,7 @@
#pragma once
#endif
#include "appframework/iappsystem.h"
#include "appframework/IAppSystem.h"
//-----------------------------------------------------------------------------
// Forward declarations

View File

@ -138,7 +138,7 @@ public:
switch ( m_Type )
{
case DPT_Int :
Q_snprintf( text, sizeof(text), "%i", m_Int );
Q_snprintf( text, sizeof(text), "%i", (int)m_Int );
break;
case DPT_Float :
Q_snprintf( text, sizeof(text), "%.3f", m_Float );
@ -170,7 +170,7 @@ public:
Q_snprintf( text, sizeof(text), "DataTable" );
break;
case DPT_Int64:
Q_snprintf( text, sizeof(text), "%I64d", m_Int64 );
Q_snprintf( text, sizeof(text), "%lld", m_Int64 );
break;
default :
Q_snprintf( text, sizeof(text), "DVariant type %i unknown", m_Type );

View File

@ -20,7 +20,7 @@
#include "tier1/interface.h"
#include "tier1/utlsymbol.h"
#include "tier1/utlstring.h"
#include "tier1/functors.h"
//#include "tier1/functors.h"
#include "tier1/checksum_crc.h"
#include "tier1/utlqueue.h"
#include "appframework/IAppSystem.h"
@ -539,7 +539,7 @@ public:
) = 0;
virtual void FindFileAbsoluteList(
CUtlVector<CUtlString, CUtlMemory<CUtlString, int>> &output,
CUtlVector<CUtlString> &output,
const char *pWildCard,
const char *pPathID
) = 0;

View File

@ -166,7 +166,7 @@ public:
FileFindHandle_t *pHandle
) { return m_pFileSystemPassThru->FindFirstEx( pWildCard, pPathID, pHandle ); }
virtual void FindFileAbsoluteList(
CUtlVector<CUtlString, CUtlMemory<CUtlString, int>> &output,
CUtlVector<CUtlString> &output,
const char *pWildCard,
const char *pPathID
) { m_pFileSystemPassThru->FindFileAbsoluteList( output, pWildCard, pPathID ); }

View File

@ -61,7 +61,7 @@ public:
virtual bool SendNetMsg(INetMessage &msg, bool bForceReliable = false, bool bVoice = false ) = 0;
#ifdef POSIX
FORCEINLINE bool SendNetMsg(INetMessage const &msg, bool bForceReliable = false, bool bVoice = false ) { SendNetMsg( *( (INetMessage *) &msg ), bForceReliable, bVoice ); }
FORCEINLINE bool SendNetMsg(INetMessage const &msg, bool bForceReliable = false, bool bVoice = false ) { return SendNetMsg( *( (INetMessage *) &msg ), bForceReliable, bVoice ); }
#endif
virtual bool SendData(bf_write &msg, bool bReliable = true) = 0;
virtual bool SendFile(const char *filename, unsigned int transferID, bool isReplayDemo) = 0;

View File

@ -2844,6 +2844,7 @@ FORCEINLINE fltx4 LoadAndConvertUint16SIMD( const uint16 *pInts )
SubFloat( retval, 1 ) = pInts[1];
SubFloat( retval, 2 ) = pInts[2];
SubFloat( retval, 3 ) = pInts[3];
return retval;
#else
__m128i inA = _mm_loadl_epi64( (__m128i const*) pInts); // Load the lower 64 bits of the value pointed to by p into the lower 64 bits of the result, zeroing the upper 64 bits of the result.
inA = _mm_unpacklo_epi16( inA, _mm_setzero_si128() ); // unpack unsigned 16's to signed 32's
@ -4057,7 +4058,7 @@ public:
FORCEINLINE void Init( void )
{
for( int i = 0; i < ARRAYSIZE( m_Mins ); i++ )
for( int i = 0; i < (int)ARRAYSIZE( m_Mins ); i++ )
{
m_Mins[i] = Four_FLT_MAX;
m_Maxes[i] = Four_Negative_FLT_MAX;

View File

@ -811,7 +811,7 @@ FORCEINLINE FourQuaternions FourQuaternions::ScaleAngle( const fltx4 &scale ) co
{
FourQuaternions ret;
static const fltx4 OneMinusEpsilon = {1.0f - 0.000001f, 1.0f - 0.000001f, 1.0f - 0.000001f, 1.0f - 0.000001f };
static const fltx4 tiny = { 0.00001f, 0.00001f, 0.00001f, 0.00001f };
//static const fltx4 tiny = { 0.00001f, 0.00001f, 0.00001f, 0.00001f };
const fltx4 Zero = Four_Zeros;
fltx4 signMask = LoadAlignedSIMD( (float *) g_SIMD_signmask );
// work out if there are any tiny scales or angles, which are unstable

View File

@ -2716,7 +2716,7 @@ public:
// ctor
CActivityToSequenceMapping( void )
: m_pSequenceTuples(NULL), m_iSequenceTuplesCount(0), m_ActToSeqHash(8,0,0), m_expectedVModel(NULL), m_pStudioHdr(NULL)
: m_pSequenceTuples(NULL), m_iSequenceTuplesCount(0), m_ActToSeqHash(8,0,0), m_pStudioHdr(NULL), m_expectedVModel(NULL)
{};
// dtor -- not virtual because this class has no inheritors

View File

@ -352,11 +352,12 @@ PLATFORM_INTERFACE void _AssertValidReadPtr( void* ptr, int count = 1 );
PLATFORM_INTERFACE void _AssertValidWritePtr( void* ptr, int count = 1 );
PLATFORM_INTERFACE void _AssertValidReadWritePtr( void* ptr, int count = 1 );
PLATFORM_INTERFACE void AssertValidStringPtr( const tchar* ptr, int maxchar = 0xFFFFFF );
PLATFORM_INTERFACE void _AssertValidStringPtr( const tchar* ptr, int maxchar = 0xFFFFFF );
template<class T> inline void AssertValidReadPtr( T* ptr, int count = 1 ) { _AssertValidReadPtr( (void*)ptr, count ); }
template<class T> inline void AssertValidWritePtr( T* ptr, int count = 1 ) { _AssertValidWritePtr( (void*)ptr, count ); }
template<class T> inline void AssertValidReadWritePtr( T* ptr, int count = 1 ) { _AssertValidReadWritePtr( (void*)ptr, count ); }
#define AssertValidThis() AssertValidReadWritePtr(this,sizeof(*this))
//-----------------------------------------------------------------------------

View File

@ -293,8 +293,10 @@ inline void CCycleCount::Init( uint64 cycles )
m_Int64 = cycles;
}
#ifdef COMPILER_MSVC
#pragma warning(push)
#pragma warning(disable : 4189) // warning C4189: local variable is initialized but not referenced
#endif
inline void CCycleCount::Sample()
{
@ -341,7 +343,9 @@ inline void CCycleCount::Sample()
#endif
}
#ifdef COMPILER_MSVC
#pragma warning(pop)
#endif
inline CCycleCount& CCycleCount::operator+=( CCycleCount const &other )

View File

@ -14,7 +14,7 @@
#pragma once
#endif
#include "color.h"
#include "Color.h"
#include "icommandline.h"
#include <stdio.h>
@ -133,7 +133,7 @@ typedef int LoggingChannelID_t;
//-----------------------------------------------------------------------------
// A sentinel value indicating an invalid logging channel ID.
//-----------------------------------------------------------------------------
const LoggingChannelID_t INVALID_LOGGING_CHANNEL_ID = -1;
static const LoggingChannelID_t INVALID_LOGGING_CHANNEL_ID = -1;
//-----------------------------------------------------------------------------
// The severity of a logging operation.
@ -337,7 +337,7 @@ public:
// A logging listener with Win32 console API color support which which prints
// to stdout and the debug channel.
//-----------------------------------------------------------------------------
#ifndef _X360
#if !defined _X360 && defined COMPILER_MSVC
class CColorizedLoggingListener : public CSimpleLoggingListener
{
public:

View File

@ -101,7 +101,9 @@ typedef void * HINSTANCE;
#define IsPlatformOSX() false
#define IsPlatformPS3() false
#define IsPlatformWindows() true
#ifndef PLATFORM_WINDOWS
#define PLATFORM_WINDOWS 1
#endif
#ifndef _X360
#define IsPlatformX360() false
@ -136,16 +138,22 @@ typedef void * HINSTANCE;
#define IsPlatformWindowsPC64() false
#define IsPlatformWindowsPC32() false
#define IsPlatformPosix() true
#ifndef PLATFORM_POSIX
#define PLATFORM_POSIX 1
#endif
#if defined( LINUX )
#define IsPlatformLinux() true
#define IsPlatformOSX() false
#ifndef PLATFORM_LINUX
#define PLATFORM_LINUX 1
#endif
#elif defined ( OSX )
#define IsPlatformLinux() false
#define IsPlatformOSX() true
#ifndef PLATFORM_OSX
#define PLATFORM_OSX 1
#endif
#else
#define IsPlatformLinux() false
#define IsPlatformOSX() false
@ -701,6 +709,7 @@ PLATFORM_INTERFACE void Plat_MessageBox( const char *pTitle, const tchar *pMessa
#define _putenv putenv
#define _chdir chdir
#define _access access
#define _strtoi64 strtoll
#if !defined( _snprintf ) // some vpc's define this on the command line
#define _snprintf snprintf
@ -1596,9 +1605,15 @@ int V_strncasecmp (const char *s1, const char *s2, int n);
// returns <0 if strings do not match even in a case-insensitive way
int _V_stricmp_NegativeForUnequal ( const char *s1, const char *s2 );
#ifndef stricmp
#define stricmp(s1,s2) _V_stricmp(s1, s2)
#endif
#ifndef strcmpi
#define strcmpi(s1,s2) _V_stricmp(s1, s2)
#endif
#ifndef strnicmp
#define strnicmp V_strncasecmp
#endif
#endif
#endif /* PLATFORM_H */

View File

@ -1681,8 +1681,8 @@ FORCEINLINE bool CThreadSpinRWLock::TryLockForWrite( const uint32 threadId )
return false;
}
static const LockInfo_t oldValue = { 0, 0 };
LockInfo_t newValue = { threadId, 0 };
static const LockInfo_t oldValue = {{ 0, 0 }};
LockInfo_t newValue = {{ threadId, 0 }};
if ( AssignIf( newValue, oldValue ) )
{
ThreadMemoryBarrier();

View File

@ -21,7 +21,7 @@
#endif
#include "utlvector.h"
#include "color.h"
#include "Color.h"
#include "exprevaluator.h"
class IBaseFileSystem;

View File

@ -778,7 +778,7 @@ public:
}
else
{
StoreLittleDWord( m_pDataOut, 0, LoadLittleDWord(m_pDataOut,0) & ~s_nMaskTable[ 32 - m_nOutBitsAvail ] | m_nOutBufWord );
StoreLittleDWord( m_pDataOut, 0, (LoadLittleDWord(m_pDataOut,0) & ~s_nMaskTable[ 32 - m_nOutBitsAvail ]) | m_nOutBufWord );
}
}
m_bFlushed = true;

View File

@ -240,7 +240,7 @@ private:
Assert( "Invalid size in CByteswap::LowLevelByteSwap" && 0 );
}
#else
for( int i = 0; i < sizeof(T); i++ )
for( size_t i = 0; i < sizeof(T); i++ )
{
((unsigned char* )&temp)[i] = ((unsigned char*)input)[sizeof(T)-(i+1)];
}

View File

@ -37,7 +37,7 @@ extern void CharacterSetBuild( characterset_t *pSetBuffer, const char *pSetStrin
// character - character to lookup
// Output : int - 1 if the character was in the set
//-----------------------------------------------------------------------------
#define IN_CHARACTERSET( SetBuffer, character ) ((SetBuffer).set[(character)])
#define IN_CHARACTERSET( SetBuffer, character ) ((SetBuffer).set[static_cast<size_t>(character)])
#endif // CHARACTERSET_H

View File

@ -20,7 +20,7 @@
#include "tier1/iconvar.h"
#include "tier1/utlvector.h"
#include "tier1/utlstring.h"
#include "color.h"
#include "Color.h"
#include "icvar.h"
#ifdef _WIN32
@ -874,7 +874,9 @@ void ConVar_PrintDescription( const ConCommandBase *pVar );
//-----------------------------------------------------------------------------
// Purpose: Utility class to quickly allow ConCommands to call member methods
//-----------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma warning (disable : 4355 )
#endif
template< class T >
class CConCommandMemberAccessor : public ConCommand, public ICommandCallback, public ICommandCompletionCallback
@ -921,8 +923,9 @@ private:
FnMemberCommandCompletionCallback_t m_CompletionFunc;
};
#ifdef _MSC_VER
#pragma warning ( default : 4355 )
#endif
//-----------------------------------------------------------------------------
// Purpose: Utility macros to quicky generate a simple console command

View File

@ -19,7 +19,7 @@
#include "tier0/dbg.h"
#include "tier0/platform.h"
#include "tier1/strtools.h"
#include "color.h"
#include "Color.h"
//-----------------------------------------------------------------------------

View File

@ -12,7 +12,7 @@
#pragma once
#endif
#include "appframework/iappsystem.h"
#include "appframework/IAppSystem.h"
#include "tier1/convar.h"
//-----------------------------------------------------------------------------

View File

@ -21,8 +21,10 @@
#include "tier0/memalloc.h"
#include "tier0/memdbgon.h"
#ifdef _MSC_VER
#pragma warning (disable:4100)
#pragma warning (disable:4514)
#endif
//-----------------------------------------------------------------------------

View File

@ -41,7 +41,7 @@ public:
struct ConversionArray_t
{
char m_nActualChar;
char *m_pReplacementString;
const char *m_pReplacementString;
};
CUtlCharConversion( char nEscapeChar, const char *pDelimiter, int nCount, ConversionArray_t *pArray );
@ -60,7 +60,7 @@ protected:
struct ConversionInfo_t
{
int m_nLength;
char *m_pReplacementString;
const char *m_pReplacementString;
};
char m_nEscapeChar;
@ -110,13 +110,13 @@ typedef unsigned short ushort;
template < class A >
static const char *GetFmtStr( int nRadix = 10, bool bPrint = true ) { Assert( 0 ); return ""; }
template <> static const char *GetFmtStr< short > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%hd"; }
template <> static const char *GetFmtStr< ushort > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%hu"; }
template <> static const char *GetFmtStr< int > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%d"; }
template <> static const char *GetFmtStr< uint > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 || nRadix == 16 ); return nRadix == 16 ? "%x" : "%u"; }
template <> static const char *GetFmtStr< int64 > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%I64d"; }
template <> static const char *GetFmtStr< float > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%f"; }
template <> static const char *GetFmtStr< double > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return bPrint ? "%.15lf" : "%lf"; } // force Printf to print DBL_DIG=15 digits of precision for doubles - defaults to FLT_DIG=6
template <> inline const char *GetFmtStr< short > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%hd"; }
template <> inline const char *GetFmtStr< ushort > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%hu"; }
template <> inline const char *GetFmtStr< int > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%d"; }
template <> inline const char *GetFmtStr< uint > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 || nRadix == 16 ); return nRadix == 16 ? "%x" : "%u"; }
template <> inline const char *GetFmtStr< int64 > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%lld"; }
template <> inline const char *GetFmtStr< float > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return "%f"; }
template <> inline const char *GetFmtStr< double > ( int nRadix, bool bPrint ) { Assert( nRadix == 10 ); return bPrint ? "%.15lf" : "%lf"; } // force Printf to print DBL_DIG=15 digits of precision for doubles - defaults to FLT_DIG=6
//-----------------------------------------------------------------------------
@ -784,14 +784,14 @@ inline int64 StringToNumber( char *pString, char **ppEnd, int nRadix )
template <>
inline float StringToNumber( char *pString, char **ppEnd, int nRadix )
{
/*UNUSED*/( nRadix );
// /*UNUSED*/( nRadix );
return ( float )strtod( pString, ppEnd );
}
template <>
inline double StringToNumber( char *pString, char **ppEnd, int nRadix )
{
/*UNUSED*/( nRadix );
// /*UNUSED*/( nRadix );
return ( double )strtod( pString, ppEnd );
}
@ -1349,7 +1349,7 @@ inline void CUtlBuffer::Spew( )
while( IsValid() && GetBytesRemaining() )
{
V_memset( pTmpLine, 0, sizeof(pTmpLine) );
Get( pTmpLine, MIN( GetBytesRemaining(), sizeof(pTmpLine-1) ) );
Get( pTmpLine, MIN( (unsigned int)GetBytesRemaining(), sizeof(pTmpLine-1) ) );
Msg( _T( "%s" ), pTmpLine );
}
}

View File

@ -20,8 +20,10 @@
#include "tier0/memalloc.h"
#include "tier0/memdbgon.h"
#ifdef _MSC_VER
#pragma warning (disable:4100)
#pragma warning (disable:4514)
#endif
//-----------------------------------------------------------------------------

View File

@ -198,7 +198,7 @@ public:
return false;
#ifdef _DEBUG // it's safe to skip this here, since the only way to get indices after m_LastAlloc is to use MaxElementIndex
if ( Memory().IsIdxAfter( i, this->m_LastAlloc ) )
if ( this->Memory().IsIdxAfter( i, this->m_LastAlloc ) )
{
Assert( 0 );
return false; // don't read values that have been allocated, but not constructed
@ -339,8 +339,10 @@ inline I CUtlLinkedList<T,S,ML,I,M>::Next( I i ) const
// Are nodes in the list or valid?
//-----------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning( disable: 4310 ) // Allows "(I)(S)M::INVALID_INDEX" below
#endif
template <class T, class S, bool ML, class I, class M>
inline bool CUtlLinkedList<T,S,ML,I,M>::IndexInRange( I index ) // Static method
{
@ -359,7 +361,9 @@ inline bool CUtlLinkedList<T,S,ML,I,M>::IndexInRange( I index ) // Static method
return ( ( (S)index == index ) && ( (S)index != InvalidIndex() ) );
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif
template <class T, class S, bool ML, class I, class M>
inline bool CUtlLinkedList<T,S,ML,I,M>::IsValidIndex( I i ) const

View File

@ -21,9 +21,10 @@
#include "tier0/memalloc.h"
#include "tier0/memdbgon.h"
#ifdef _MSC_VER
#pragma warning (disable:4100)
#pragma warning (disable:4514)
#endif
//-----------------------------------------------------------------------------

View File

@ -360,8 +360,8 @@ protected:
template < class T, class I, typename L, class M >
inline CUtlRBTree<T, I, L, M>::CUtlRBTree( int growSize, int initSize, const LessFunc_t &lessfunc ) :
m_Elements( growSize, initSize ),
m_LessFunc( lessfunc ),
m_Elements( growSize, initSize ),
m_Root( InvalidIndex() ),
m_NumElements( 0 ),
m_FirstFree( InvalidIndex() ),
@ -372,8 +372,8 @@ m_LastAlloc( m_Elements.InvalidIterator() )
template < class T, class I, typename L, class M >
inline CUtlRBTree<T, I, L, M>::CUtlRBTree( const LessFunc_t &lessfunc ) :
m_Elements( 0, 0 ),
m_LessFunc( lessfunc ),
m_Elements( 0, 0 ),
m_Root( InvalidIndex() ),
m_NumElements( 0 ),
m_FirstFree( InvalidIndex() ),
@ -648,8 +648,10 @@ inline void CUtlRBTree<T, I, L, M>::SetColor( I i, typename CUtlRBTree<T, I, L,
//-----------------------------------------------------------------------------
// Allocates/ deallocates nodes
//-----------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
#endif
template < class T, class I, typename L, class M >
I CUtlRBTree<T, I, L, M>::NewNode()
{
@ -694,7 +696,9 @@ I CUtlRBTree<T, I, L, M>::NewNode()
return elem;
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif
template < class T, class I, typename L, class M >
void CUtlRBTree<T, I, L, M>::FreeNode( I i )

View File

@ -441,13 +441,13 @@ class CSOAAttributeReference;
// define binary op class to allow this construct without temps:
// dest( FBM_ATTR_RED ) = src( FBM_ATTR_BLUE ) + src( FBM_ATTR_GREEN )
template<BINARYSIMDFUNCTION fn> class CSOAAttributeReferenceBinaryOp
template<BINARYSIMDFUNCTION fn, class Ref> class CSOAAttributeReferenceBinaryOp
{
public:
CSOAAttributeReference m_opA;
CSOAAttributeReference m_opB;
Ref m_opA;
Ref m_opB;
CSOAAttributeReferenceBinaryOp( CSOAAttributeReference const &a, CSOAAttributeReference const & b )
CSOAAttributeReferenceBinaryOp( Ref const &a, Ref const & b )
{
a.CopyTo( m_opA );
b.CopyTo( m_opB );
@ -456,9 +456,9 @@ public:
};
#define DEFINE_OP( opname, fnname ) \
FORCEINLINE CSOAAttributeReferenceBinaryOp<fnname> operator opname( CSOAAttributeReference const &other ) const \
FORCEINLINE CSOAAttributeReferenceBinaryOp<fnname, CSOAAttributeReference> operator opname( CSOAAttributeReference const &other ) const \
{ \
return CSOAAttributeReferenceBinaryOp<fnname>( *this, other ); \
return CSOAAttributeReferenceBinaryOp<fnname, CSOAAttributeReference>( *this, other ); \
}
class CSOAAttributeReference
@ -498,18 +498,18 @@ public:
DEFINE_OP( -, SubSIMD );
DEFINE_OP( /, DivSIMD );
template<BINARYSIMDFUNCTION fn> FORCEINLINE void operator =( CSOAAttributeReferenceBinaryOp<fn> const &op );
template<BINARYSIMDFUNCTION fn> FORCEINLINE void operator =( CSOAAttributeReferenceBinaryOp<fn, CSOAAttributeReference> const &op );
FORCEINLINE void CopyTo( CSOAAttributeReference &other ) const; // since operator= is over-ridden
};
template<BINARYSIMDFUNCTION fn> FORCEINLINE void CSOAAttributeReference::operator =( CSOAAttributeReferenceBinaryOp<fn> const &op )
template<BINARYSIMDFUNCTION fn> FORCEINLINE void CSOAAttributeReference::operator =( CSOAAttributeReferenceBinaryOp<fn, CSOAAttributeReference> const &op )
{
m_pContainer->AssertDataType( m_nAttributeID, ATTRDATATYPE_FLOAT );
fltx4 *pOut = m_pContainer->RowPtr<fltx4>( m_nAttributeID, 0 );
fltx4 *pInA = op.m_opA.m_pContainer->RowPtr<fltx4>( op.m_opA.m_nAttributeID, 0 );
fltx4 *pInB = op.m_opB.m_pContainer->RowPtr<fltx4>( op.m_opB.m_nAttributeID, 0 );
fltx4 *pInA = op.m_opA.m_pContainer->template RowPtr<fltx4>( op.m_opA.m_nAttributeID, 0 );
fltx4 *pInB = op.m_opB.m_pContainer->template RowPtr<fltx4>( op.m_opB.m_nAttributeID, 0 );
size_t nRowToRowStride = m_pContainer->RowToRowStep( m_nAttributeID ) / sizeof( fltx4 );
int nRowCtr = m_pContainer->NumRows() * m_pContainer->NumSlices();
do
@ -576,7 +576,8 @@ template<BINARYSIMDFUNCTION fn1, BINARYSIMDFUNCTION fn2> void CSOAContainer::App
int nColCtr = NumQuadsPerRow();
do
{
*( pOut++ ) = fn1( fn2( *pOut, fl4FnArg2 ), fl4FnArg1 );
*( pOut ) = fn1( fn2( *pOut, fl4FnArg2 ), fl4FnArg1 );
pOut++;
} while ( --nColCtr );
pOut += nRowToRowStride;
} while ( --nRowCtr );
@ -613,7 +614,8 @@ template<BINARYSIMDFUNCTION fn> void CSOAContainer::ApplyBinaryFunctionToAttr( i
int nColCtr = NumQuadsPerRow();
do
{
*(pOut++) = fn( *pOut, fl4FnArg1 );
*(pOut) = fn( *pOut, fl4FnArg1 );
pOut++;
} while ( --nColCtr );
pOut += nRowToRowStride;
} while ( --nRowCtr );

View File

@ -259,9 +259,11 @@ public:
// Especialy useful if you have a lot of vectors that are sparse, or if you're
// carefully packing holders of vectors
//-----------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4200) // warning C4200: nonstandard extension used : zero-sized array in struct/union
#pragma warning(disable : 4815 ) // warning C4815: 'staticData' : zero-sized array in stack object will have no elements
#endif
class CUtlVectorUltraConservativeAllocator
{
@ -499,8 +501,9 @@ private:
}
};
#ifdef _MSC_VER
#pragma warning(pop)
#endif
//-----------------------------------------------------------------------------
// The CCopyableUtlVector class:

View File

@ -12,7 +12,6 @@
#endif
#include "appframework/iappsystem.h"
#include "appframework/IAppSystem.h"
#include "tier1/utlstring.h"
#include "tier1/utlbuffer.h"

View File

@ -16,8 +16,10 @@
#define NTAB 32
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning( disable:4251 )
#endif
//-----------------------------------------------------------------------------
// A generator of uniformly distributed random numbers
@ -102,8 +104,9 @@ VSTDLIB_INTERFACE float RandomGaussianFloat( float flMean = 0.0f, float flStdDev
//-----------------------------------------------------------------------------
VSTDLIB_INTERFACE void InstallUniformRandomStream( IUniformRandomStream *pStream );
#ifdef _MSC_VER
#pragma warning(pop)
#endif
#endif // VSTDLIB_RANDOM_H

View File

@ -275,7 +275,9 @@ KeyValues::KeyValues( const char *setName, const char *firstKey, int firstValue,
//-----------------------------------------------------------------------------
void KeyValues::Init()
{
m_iKeyName = INVALID_KEY_SYMBOL;
m_iKeyName = 0;
m_iKeyNameCaseSensitive1 = 0;
m_iKeyNameCaseSensitive2 = 0;
m_iDataType = TYPE_NONE;
m_pSub = NULL;
@ -287,9 +289,6 @@ void KeyValues::Init()
m_pValue = NULL;
m_bHasEscapeSequences = false;
// for future proof
memset( unused, 0, sizeof(unused) );
}
//-----------------------------------------------------------------------------
@ -472,7 +471,7 @@ void KeyValues::UsesEscapeSequences(bool state)
//-----------------------------------------------------------------------------
// Purpose: Load keyValues from disk
//-----------------------------------------------------------------------------
bool KeyValues::LoadFromFile( IBaseFileSystem *filesystem, const char *resourceName, const char *pathID )
bool KeyValues::LoadFromFile( IBaseFileSystem *filesystem, const char *resourceName, const char *pathID, GetSymbolProc_t pfnEvaluateSymbolProc )
{
Assert(filesystem);
#ifndef _LINUX
@ -500,7 +499,7 @@ bool KeyValues::LoadFromFile( IBaseFileSystem *filesystem, const char *resourceN
if ( bRetOK )
{
buffer[fileSize] = 0; // null terminate file as EOF
bRetOK = LoadFromBuffer( resourceName, buffer, filesystem );
bRetOK = LoadFromBuffer( resourceName, buffer, filesystem, pathID, pfnEvaluateSymbolProc);
}
((IFileSystem *)filesystem)->FreeOptimalReadBuffer( buffer );
@ -676,7 +675,7 @@ void KeyValues::RecursiveSaveToFile( IBaseFileSystem *filesystem, FileHandle_t f
char buf[32];
// write "0x" + 16 char 0-padded hex encoded 64 bit value
Q_snprintf( buf, sizeof( buf ), "0x%016I64X", *( (uint64 *)dat->m_sValue ) );
Q_snprintf( buf, sizeof( buf ), "0x%016llX", *( (uint64 *)dat->m_sValue ) );
INTERNALWRITE(buf, Q_strlen(buf));
INTERNALWRITE("\"\n", 2);
@ -1136,7 +1135,7 @@ const char *KeyValues::GetString( const char *keyName, const char *defaultValue
SetString( keyName, buf );
break;
case TYPE_UINT64:
Q_snprintf( buf, sizeof( buf ), "%I64i", *((uint64 *)(dat->m_sValue)) );
Q_snprintf( buf, sizeof( buf ), "%llu", *((uint64 *)(dat->m_sValue)) );
SetString( keyName, buf );
break;
@ -1225,9 +1224,9 @@ const wchar_t *KeyValues::GetWString( const char *keyName, const wchar_t *defaul
//-----------------------------------------------------------------------------
// Purpose: Gets a color
//-----------------------------------------------------------------------------
Color KeyValues::GetColor( const char *keyName )
Color KeyValues::GetColor( const char *keyName, const Color &defaultColor )
{
Color color(0, 0, 0, 0);
Color color = defaultColor;
KeyValues *dat = FindKey( keyName, false );
if ( dat )
{
@ -1701,7 +1700,8 @@ void KeyValues::AppendIncludedKeys( CUtlVector< KeyValues * >& includedKeys )
}
void KeyValues::ParseIncludedKeys( char const *resourceName, const char *filetoinclude,
IBaseFileSystem* pFileSystem, const char *pPathID, CUtlVector< KeyValues * >& includedKeys )
IBaseFileSystem* pFileSystem, const char *pPathID, CUtlVector< KeyValues * >& includedKeys,
GetSymbolProc_t pfnEvaluateSymbolProc )
{
Assert( resourceName );
Assert( filetoinclude );
@ -1747,7 +1747,7 @@ void KeyValues::ParseIncludedKeys( char const *resourceName, const char *filetoi
newKV->UsesEscapeSequences( m_bHasEscapeSequences != 0 ); // use same format as parent
if ( newKV->LoadFromFile( pFileSystem, fullpath, pPathID ) )
if ( newKV->LoadFromFile( pFileSystem, fullpath, pPathID, pfnEvaluateSymbolProc ) )
{
includedKeys.AddToTail( newKV );
}
@ -1818,7 +1818,7 @@ void KeyValues::RecursiveMergeKeyValues( KeyValues *baseKV )
// Returns whether a keyvalues conditional evaluates to true or false
// Needs more flexibility with conditionals, checking convars would be nice.
//-----------------------------------------------------------------------------
bool EvaluateConditional( const char *str )
bool KeyValues::EvaluateConditional( const char *str, GetSymbolProc_t pfnEvaluateSymbolProc )
{
bool bResult = false;
bool bXboxUI = IsX360();
@ -1839,7 +1839,7 @@ bool EvaluateConditional( const char *str )
//-----------------------------------------------------------------------------
// Read from a buffer...
//-----------------------------------------------------------------------------
bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBaseFileSystem* pFileSystem, const char *pPathID )
bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBaseFileSystem* pFileSystem, const char *pPathID, GetSymbolProc_t pfnEvaluateSymbolProc )
{
KeyValues *pPreviousKey = NULL;
KeyValues *pCurrentKey = this;
@ -1868,7 +1868,7 @@ bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBase
}
else
{
ParseIncludedKeys( resourceName, s, pFileSystem, pPathID, includedKeys );
ParseIncludedKeys( resourceName, s, pFileSystem, pPathID, includedKeys, pfnEvaluateSymbolProc );
}
continue;
@ -1884,7 +1884,7 @@ bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBase
}
else
{
ParseIncludedKeys( resourceName, s, pFileSystem, pPathID, baseKeys );
ParseIncludedKeys( resourceName, s, pFileSystem, pPathID, baseKeys, pfnEvaluateSymbolProc );
}
continue;
@ -1912,7 +1912,7 @@ bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBase
if ( wasConditional )
{
bAccepted = EvaluateConditional( s );
bAccepted = EvaluateConditional( s, pfnEvaluateSymbolProc );
// Now get the '{'
s = ReadToken( buf, wasQuoted, wasConditional );
@ -1921,7 +1921,7 @@ bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBase
if ( s && *s == '{' && !wasQuoted )
{
// header is valid so load the file
pCurrentKey->RecursiveLoadFromBuffer( resourceName, buf );
pCurrentKey->RecursiveLoadFromBuffer( resourceName, buf, pfnEvaluateSymbolProc );
}
else
{
@ -1974,20 +1974,20 @@ bool KeyValues::LoadFromBuffer( char const *resourceName, CUtlBuffer &buf, IBase
//-----------------------------------------------------------------------------
// Read from a buffer...
//-----------------------------------------------------------------------------
bool KeyValues::LoadFromBuffer( char const *resourceName, const char *pBuffer, IBaseFileSystem* pFileSystem, const char *pPathID )
bool KeyValues::LoadFromBuffer( char const *resourceName, const char *pBuffer, IBaseFileSystem* pFileSystem, const char *pPathID, GetSymbolProc_t pfnEvaluateSymbolProc )
{
if ( !pBuffer )
return true;
int nLen = Q_strlen( pBuffer );
CUtlBuffer buf( pBuffer, nLen, CUtlBuffer::READ_ONLY | CUtlBuffer::TEXT_BUFFER );
return LoadFromBuffer( resourceName, buf, pFileSystem, pPathID );
return LoadFromBuffer( resourceName, buf, pFileSystem, pPathID, pfnEvaluateSymbolProc );
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void KeyValues::RecursiveLoadFromBuffer( char const *resourceName, CUtlBuffer &buf )
void KeyValues::RecursiveLoadFromBuffer( char const *resourceName, CUtlBuffer &buf, GetSymbolProc_t pfnEvaluateSymbolProc )
{
CKeyErrorContext errorReport(this);
bool wasQuoted;
@ -2027,7 +2027,7 @@ void KeyValues::RecursiveLoadFromBuffer( char const *resourceName, CUtlBuffer &b
if ( wasConditional && value )
{
bAccepted = EvaluateConditional( value );
bAccepted = EvaluateConditional( value, pfnEvaluateSymbolProc );
// get the real value
value = ReadToken( buf, wasQuoted, wasConditional );
@ -2050,7 +2050,7 @@ void KeyValues::RecursiveLoadFromBuffer( char const *resourceName, CUtlBuffer &b
// this isn't a key, it's a section
errorKey.Reset( INVALID_KEY_SYMBOL );
// sub value list
dat->RecursiveLoadFromBuffer( resourceName, buf );
dat->RecursiveLoadFromBuffer( resourceName, buf, pfnEvaluateSymbolProc );
}
else
{
@ -2125,7 +2125,7 @@ void KeyValues::RecursiveLoadFromBuffer( char const *resourceName, CUtlBuffer &b
const char *peek = ReadToken( buf, wasQuoted, wasConditional );
if ( wasConditional )
{
bAccepted = EvaluateConditional( peek );
bAccepted = EvaluateConditional( peek, pfnEvaluateSymbolProc );
}
else
{

View File

@ -115,10 +115,10 @@ CBitWriteMasksInit g_BitWriteMasksInit;
// ---------------------------------------------------------------------------------------- //
// old_bf_write
// bf_write
// ---------------------------------------------------------------------------------------- //
old_bf_write::old_bf_write()
bf_write::bf_write()
{
m_pData = NULL;
m_nDataBytes = 0;
@ -129,21 +129,21 @@ old_bf_write::old_bf_write()
m_pDebugName = NULL;
}
old_bf_write::old_bf_write( const char *pDebugName, void *pData, int nBytes, int nBits )
{
m_bAssertOnOverflow = true;
m_pDebugName = pDebugName;
StartWriting( pData, nBytes, 0, nBits );
}
old_bf_write::old_bf_write( void *pData, int nBytes, int nBits )
bf_write::bf_write( void *pData, int nBytes, int nMaxBits )
{
m_bAssertOnOverflow = true;
m_pDebugName = NULL;
StartWriting( pData, nBytes, 0, nBits );
StartWriting( pData, nBytes, 0, nMaxBits );
}
void old_bf_write::StartWriting( void *pData, int nBytes, int iStartBit, int nBits )
bf_write::bf_write( const char *pDebugName, void *pData, int nBytes, int nMaxBits )
{
m_bAssertOnOverflow = true;
m_pDebugName = pDebugName;
StartWriting( pData, nBytes, 0, nMaxBits );
}
void bf_write::StartWriting( void *pData, int nBytes, int iStartBit, int nMaxBits )
{
// Make sure it's dword aligned and padded.
Assert( (nBytes % 4) == 0 );
@ -155,53 +155,53 @@ void old_bf_write::StartWriting( void *pData, int nBytes, int iStartBit, int nBi
m_pData = (unsigned char*)pData;
m_nDataBytes = nBytes;
if ( nBits == -1 )
if ( nMaxBits == -1 )
{
m_nDataBits = nBytes << 3;
}
else
{
Assert( nBits <= nBytes*8 );
m_nDataBits = nBits;
Assert( nMaxBits <= nBytes*8 );
m_nDataBits = nMaxBits;
}
m_iCurBit = iStartBit;
m_bOverflow = false;
}
void old_bf_write::Reset()
void bf_write::Reset()
{
m_iCurBit = 0;
m_bOverflow = false;
}
void old_bf_write::SetAssertOnOverflow( bool bAssert )
void bf_write::SetAssertOnOverflow( bool bAssert )
{
m_bAssertOnOverflow = bAssert;
}
const char* old_bf_write::GetDebugName()
const char* bf_write::GetDebugName()
{
return m_pDebugName;
}
void old_bf_write::SetDebugName( const char *pDebugName )
void bf_write::SetDebugName( const char *pDebugName )
{
m_pDebugName = pDebugName;
}
void old_bf_write::SeekToBit( int bitPos )
void bf_write::SeekToBit( int bitPos )
{
m_iCurBit = bitPos;
}
// Sign bit comes first
void old_bf_write::WriteSBitLong( int data, int numbits )
void bf_write::WriteSBitLong( int data, int numbits )
{
// Do we have a valid # of bits to encode with?
Assert( numbits >= 1 );
@ -250,7 +250,7 @@ inline unsigned int BitCountNeededToEncode(unsigned int data)
#endif // _WIN32
// writes an unsigned integer with variable bit length
void old_bf_write::WriteUBitVar( unsigned int data )
void bf_write::WriteUBitVar( unsigned int data )
{
if ( ( data &0xf ) == data )
{
@ -305,7 +305,7 @@ void old_bf_write::WriteUBitVar( unsigned int data )
#endif
}
void old_bf_write::WriteBitLong(unsigned int data, int numbits, bool bSigned)
void bf_write::WriteBitLong(unsigned int data, int numbits, bool bSigned)
{
if(bSigned)
WriteSBitLong((int)data, numbits);
@ -313,10 +313,10 @@ void old_bf_write::WriteBitLong(unsigned int data, int numbits, bool bSigned)
WriteUBitLong(data, numbits);
}
bool old_bf_write::WriteBits(const void *pInData, int nBits)
bool bf_write::WriteBits(const void *pInData, int nBits)
{
#if defined( BB_PROFILING )
VPROF( "old_bf_write::WriteBits" );
VPROF( "bf_write::WriteBits" );
#endif
unsigned char *pOut = (unsigned char*)pInData;
@ -403,7 +403,7 @@ bool old_bf_write::WriteBits(const void *pInData, int nBits)
}
bool old_bf_write::WriteBitsFromBuffer( bf_read *pIn, int nBits )
bool bf_write::WriteBitsFromBuffer( bf_read *pIn, int nBits )
{
// This could be optimized a little by
while ( nBits > 32 )
@ -417,7 +417,7 @@ bool old_bf_write::WriteBitsFromBuffer( bf_read *pIn, int nBits )
}
void old_bf_write::WriteBitAngle( float fAngle, int numbits )
void bf_write::WriteBitAngle( float fAngle, int numbits )
{
int d;
unsigned int mask;
@ -432,14 +432,14 @@ void old_bf_write::WriteBitAngle( float fAngle, int numbits )
WriteUBitLong((unsigned int)d, numbits);
}
void old_bf_write::WriteBitCoordMP( const float f, bool bIntegral, bool bLowPrecision )
void bf_write::WriteBitCoordMP( const float f, EBitCoordType coordType )
{
#if defined( BB_PROFILING )
VPROF( "old_bf_write::WriteBitCoordMP" );
VPROF( "bf_write::WriteBitCoordMP" );
#endif
int signbit = (f <= -( bLowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ));
int signbit = (f <= -( coordType == kCW_LowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ));
int intval = (int)fabs(f);
int fractval = bLowPrecision ?
int fractval = coordType == kCW_LowPrecision ?
( abs((int)(f*COORD_DENOMINATOR_LOWPRECISION)) & (COORD_DENOMINATOR_LOWPRECISION-1) ) :
( abs((int)(f*COORD_DENOMINATOR)) & (COORD_DENOMINATOR-1) );
@ -448,7 +448,7 @@ void old_bf_write::WriteBitCoordMP( const float f, bool bIntegral, bool bLowPrec
WriteOneBit( bInBounds );
if ( bIntegral )
if ( coordType == kCW_Integral )
{
// Send the sign bit
WriteOneBit( intval );
@ -488,14 +488,35 @@ void old_bf_write::WriteBitCoordMP( const float f, bool bIntegral, bool bLowPrec
WriteUBitLong( (unsigned int)intval, COORD_INTEGER_BITS );
}
}
WriteUBitLong( (unsigned int)fractval, bLowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
WriteUBitLong( (unsigned int)fractval, coordType == kCW_LowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
}
}
void old_bf_write::WriteBitCoord (const float f)
void bf_write::WriteBitCellCoord( const float f, int bits, EBitCoordType coordType )
{
#if defined( BB_PROFILING )
VPROF( "old_bf_write::WriteBitCoord" );
VPROF( "bf_write::WriteCellBitCoordMP" );
#endif
int intval = (int)fabs(f);
int fractval = coordType == kCW_LowPrecision ?
( abs((int)(f*COORD_DENOMINATOR_LOWPRECISION)) & (COORD_DENOMINATOR_LOWPRECISION-1) ) :
( abs((int)(f*COORD_DENOMINATOR)) & (COORD_DENOMINATOR-1) );
if ( coordType == kCW_Integral )
{
WriteUBitLong( (unsigned int)intval, bits );
}
else
{
WriteUBitLong( (unsigned int)intval, bits );
WriteUBitLong( (unsigned int)fractval, coordType == kCW_LowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
}
}
void bf_write::WriteBitCoord (const float f)
{
#if defined( BB_PROFILING )
VPROF( "bf_write::WriteBitCoord" );
#endif
int signbit = (f <= -COORD_RESOLUTION);
int intval = (int)fabs(f);
@ -527,7 +548,7 @@ void old_bf_write::WriteBitCoord (const float f)
}
}
void old_bf_write::WriteBitFloat(float val)
void bf_write::WriteBitFloat(float val)
{
long intVal;
@ -538,7 +559,7 @@ void old_bf_write::WriteBitFloat(float val)
WriteUBitLong( intVal, 32 );
}
void old_bf_write::WriteBitVec3Coord( const Vector& fa )
void bf_write::WriteBitVec3Coord( const Vector& fa )
{
int xflag, yflag, zflag;
@ -558,7 +579,7 @@ void old_bf_write::WriteBitVec3Coord( const Vector& fa )
WriteBitCoord( fa[2] );
}
void old_bf_write::WriteBitNormal( float f )
void bf_write::WriteBitNormal( float f )
{
int signbit = (f <= -NORMAL_RESOLUTION);
@ -576,7 +597,7 @@ void old_bf_write::WriteBitNormal( float f )
WriteUBitLong( fractval, NORMAL_FRACTIONAL_BITS );
}
void old_bf_write::WriteBitVec3Normal( const Vector& fa )
void bf_write::WriteBitVec3Normal( const Vector& fa )
{
int xflag, yflag;
@ -596,39 +617,39 @@ void old_bf_write::WriteBitVec3Normal( const Vector& fa )
WriteOneBit( signbit );
}
void old_bf_write::WriteBitAngles( const QAngle& fa )
void bf_write::WriteBitAngles( const QAngle& fa )
{
// FIXME:
Vector tmp( fa.x, fa.y, fa.z );
WriteBitVec3Coord( tmp );
}
void old_bf_write::WriteChar(int val)
void bf_write::WriteChar(int val)
{
WriteSBitLong(val, sizeof(char) << 3);
}
void old_bf_write::WriteByte(int val)
void bf_write::WriteByte(unsigned int val)
{
WriteUBitLong(val, sizeof(unsigned char) << 3);
}
void old_bf_write::WriteShort(int val)
void bf_write::WriteShort(int val)
{
WriteSBitLong(val, sizeof(short) << 3);
}
void old_bf_write::WriteWord(int val)
void bf_write::WriteWord(unsigned int val)
{
WriteUBitLong(val, sizeof(unsigned short) << 3);
}
void old_bf_write::WriteLong(long val)
void bf_write::WriteLong(long val)
{
WriteSBitLong(val, sizeof(long) << 3);
}
void old_bf_write::WriteLongLong(int64 val)
void bf_write::WriteLongLong(int64 val)
{
uint *pLongs = (uint*)&val;
@ -639,7 +660,7 @@ void old_bf_write::WriteLongLong(int64 val)
WriteUBitLong(pLongs[*idx], sizeof(long) << 3);
}
void old_bf_write::WriteFloat(float val)
void bf_write::WriteFloat(float val)
{
// Pre-swap the float, since WriteBits writes raw data
LittleFloat( &val, &val );
@ -647,12 +668,12 @@ void old_bf_write::WriteFloat(float val)
WriteBits(&val, sizeof(val) << 3);
}
bool old_bf_write::WriteBytes( const void *pBuf, int nBytes )
bool bf_write::WriteBytes( const void *pBuf, int nBytes )
{
return WriteBits(pBuf, nBytes << 3);
}
bool old_bf_write::WriteString(const char *pStr)
bool bf_write::WriteString(const char *pStr)
{
if(pStr)
{
@ -670,6 +691,25 @@ bool old_bf_write::WriteString(const char *pStr)
return !IsOverflowed();
}
bool bf_write::WriteString(const wchar_t *pStr)
{
if(pStr)
{
do
{
WriteSBitLong( *pStr, 16 );
++pStr;
} while ( (*pStr-1) != 0 );
}
else
{
WriteUBitLong( 0, 15 );
WriteOneBit( 0 );
}
return !IsOverflowed();
}
// ---------------------------------------------------------------------------------------- //
// old_bf_read
// ---------------------------------------------------------------------------------------- //
@ -995,7 +1035,7 @@ float old_bf_read::ReadBitCoord (void)
return value;
}
float old_bf_read::ReadBitCoordMP( bool bIntegral, bool bLowPrecision )
float old_bf_read::ReadBitCoordMP( EBitCoordType coordType )
{
#if defined( BB_PROFILING )
VPROF( "old_bf_write::ReadBitCoordMP" );
@ -1006,7 +1046,7 @@ float old_bf_read::ReadBitCoordMP( bool bIntegral, bool bLowPrecision )
bool bInBounds = ReadOneBit() ? true : false;
if ( bIntegral )
if ( coordType == kCW_Integral )
{
// Read the required integer and fraction flags
intval = ReadOneBit();
@ -1050,10 +1090,10 @@ float old_bf_read::ReadBitCoordMP( bool bIntegral, bool bLowPrecision )
}
// If there's a fraction, read it in
fractval = ReadUBitLong( bLowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
fractval = ReadUBitLong( coordType == kCW_LowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
// Calculate the correct floating point value
value = intval + ((float)fractval * ( bLowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ) );
value = intval + ((float)fractval * ( coordType == kCW_LowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ) );
}
// Fixup the sign if negative.
@ -1250,7 +1290,7 @@ void old_bf_read::ExciseBits( int startbit, int bitstoremove )
int endbit = startbit + bitstoremove;
int remaining_to_end = m_nDataBits - endbit;
old_bf_write temp;
bf_write temp;
temp.StartWriting( (void *)m_pData, m_nDataBits << 3, startbit );
Seek( endbit );

View File

@ -62,7 +62,7 @@ void CByteswap::SwapFieldToTargetEndian( void* pOutputBuffer, void *pData, typed
break;
default:
assert(0);
Assert(0);
}
}

View File

@ -683,10 +683,10 @@ ConVar::ConVar( const char *pName, const char *pDefaultValue, int flags, const c
//-----------------------------------------------------------------------------
ConVar::~ConVar( void )
{
if ( m_pszString )
if ( m_Value.m_pszString )
{
delete[] m_pszString;
m_pszString = NULL;
delete[] m_Value.m_pszString;
m_Value.m_pszString = NULL;
}
}
@ -694,15 +694,24 @@ ConVar::~ConVar( void )
//-----------------------------------------------------------------------------
// Install a change callback (there shouldn't already be one....)
//-----------------------------------------------------------------------------
void ConVar::InstallChangeCallback( FnChangeCallback_t callback )
void ConVar::InstallChangeCallback( FnChangeCallback_t callback, bool bInvoke )
{
Assert( !m_pParent->m_fnChangeCallback || !callback );
m_pParent->m_fnChangeCallback = callback;
if ( m_pParent->m_fnChangeCallback )
if (callback)
{
// Call it immediately to set the initial value...
m_pParent->m_fnChangeCallback( this, m_pszString, m_fValue );
if (m_fnChangeCallbacks.Find(callback) != -1)
{
m_fnChangeCallbacks.AddToTail(callback);
if (bInvoke)
callback(this, m_Value.m_pszString, m_Value.m_fValue);
}
else
{
Warning("InstallChangeCallback ignoring duplicate change callback!!!\n");
}
}
else
{
Warning("InstallChangeCallback called with NULL callback, ignoring!!!\n");
}
}
@ -780,7 +789,7 @@ void ConVar::InternalSetValue( const char *value )
Assert(m_pParent == this); // Only valid for root convars.
float flOldValue = m_fValue;
float flOldValue = m_Value.m_fValue;
val = (char *)value;
fNewValue = ( float )atof( value );
@ -792,8 +801,8 @@ void ConVar::InternalSetValue( const char *value )
}
// Redetermine value
m_fValue = fNewValue;
m_nValue = ( int )( m_fValue );
m_Value.m_fValue = fNewValue;
m_Value.m_nValue = ( int )( fNewValue );
if ( !( m_nFlags & FCVAR_NEVER_AS_STRING ) )
{
@ -809,33 +818,32 @@ void ConVar::ChangeStringValue( const char *tempVal, float flOldValue )
{
Assert( !( m_nFlags & FCVAR_NEVER_AS_STRING ) );
char* pszOldValue = (char*)stackalloc( m_StringLength );
memcpy( pszOldValue, m_pszString, m_StringLength );
char* pszOldValue = (char*)stackalloc( m_Value.m_StringLength );
memcpy( pszOldValue, m_Value.m_pszString, m_Value.m_StringLength );
int len = Q_strlen(tempVal) + 1;
if ( len > m_StringLength)
if ( len > m_Value.m_StringLength)
{
if (m_pszString)
if (m_Value.m_pszString)
{
delete[] m_pszString;
delete[] m_Value.m_pszString;
}
m_pszString = new char[len];
m_StringLength = len;
m_Value.m_pszString = new char[len];
m_Value.m_StringLength = len;
}
memcpy( m_pszString, tempVal, len );
memcpy( m_Value.m_pszString, tempVal, len );
// Invoke any necessary callback function
if ( m_fnChangeCallback )
for (int i = 0; i < m_fnChangeCallbacks.Count(); i++)
{
m_fnChangeCallback( this, pszOldValue, flOldValue );
m_fnChangeCallbacks[i]( this, pszOldValue, flOldValue );
}
if (g_pCVar)
g_pCVar->CallGlobalChangeCallbacks( this, pszOldValue, flOldValue );
stackfree( pszOldValue );
}
//-----------------------------------------------------------------------------
@ -866,7 +874,7 @@ bool ConVar::ClampValue( float& value )
//-----------------------------------------------------------------------------
void ConVar::InternalSetFloatValue( float fNewValue )
{
if ( fNewValue == m_fValue )
if ( fNewValue == m_Value.m_fValue )
return;
Assert( m_pParent == this ); // Only valid for root convars.
@ -875,19 +883,19 @@ void ConVar::InternalSetFloatValue( float fNewValue )
ClampValue( fNewValue );
// Redetermine value
float flOldValue = m_fValue;
m_fValue = fNewValue;
m_nValue = ( int )m_fValue;
float flOldValue = m_Value.m_fValue;
m_Value.m_fValue = fNewValue;
m_Value.m_nValue = ( int )fNewValue;
if ( !( m_nFlags & FCVAR_NEVER_AS_STRING ) )
{
char tempVal[ 32 ];
Q_snprintf( tempVal, sizeof( tempVal), "%f", m_fValue );
Q_snprintf( tempVal, sizeof( tempVal), "%f", m_Value.m_fValue );
ChangeStringValue( tempVal, flOldValue );
}
else
{
Assert( !m_fnChangeCallback );
Assert( m_fnChangeCallbacks.Count() == 0 );
}
}
@ -897,7 +905,7 @@ void ConVar::InternalSetFloatValue( float fNewValue )
//-----------------------------------------------------------------------------
void ConVar::InternalSetIntValue( int nValue )
{
if ( nValue == m_nValue )
if ( nValue == m_Value.m_nValue )
return;
Assert( m_pParent == this ); // Only valid for root convars.
@ -909,19 +917,19 @@ void ConVar::InternalSetIntValue( int nValue )
}
// Redetermine value
float flOldValue = m_fValue;
m_fValue = fValue;
m_nValue = nValue;
float flOldValue = m_Value.m_fValue;
m_Value.m_fValue = fValue;
m_Value.m_nValue = nValue;
if ( !( m_nFlags & FCVAR_NEVER_AS_STRING ) )
{
char tempVal[ 32 ];
Q_snprintf( tempVal, sizeof( tempVal ), "%d", m_nValue );
Q_snprintf( tempVal, sizeof( tempVal ), "%d", m_Value.m_nValue );
ChangeStringValue( tempVal, flOldValue );
}
else
{
Assert( !m_fnChangeCallback );
Assert( m_fnChangeCallbacks.Count() == 0 );
}
}
@ -950,31 +958,32 @@ void ConVar::Create( const char *pName, const char *pDefaultValue, int flags /*=
m_pszDefaultValue = pDefaultValue ? pDefaultValue : empty_string;
Assert( m_pszDefaultValue );
m_StringLength = strlen( m_pszDefaultValue ) + 1;
m_pszString = new char[m_StringLength];
memcpy( m_pszString, m_pszDefaultValue, m_StringLength );
m_Value.m_StringLength = strlen( m_pszDefaultValue ) + 1;
m_Value.m_pszString = new char[m_Value.m_StringLength];
memcpy( m_Value.m_pszString, m_pszDefaultValue, m_Value.m_StringLength );
m_bHasMin = bMin;
m_fMinVal = fMin;
m_bHasMax = bMax;
m_fMaxVal = fMax;
m_fnChangeCallback = callback;
if (callback)
m_fnChangeCallbacks.AddToTail(callback);
m_fValue = ( float )atof( m_pszString );
m_Value.m_fValue = ( float )atof( m_Value.m_pszString );
// Bounds Check, should never happen, if it does, no big deal
if ( m_bHasMin && ( m_fValue < m_fMinVal ) )
if ( m_bHasMin && ( m_Value.m_fValue < m_fMinVal ) )
{
Assert( 0 );
}
if ( m_bHasMax && ( m_fValue > m_fMaxVal ) )
if ( m_bHasMax && ( m_Value.m_fValue > m_fMaxVal ) )
{
Assert( 0 );
}
m_nValue = ( int )m_fValue;
m_Value.m_nValue = ( int )m_Value.m_fValue;
BaseClass::Create( pName, pHelpString, flags );
}
@ -1205,7 +1214,7 @@ void ConVar_PrintDescription( const ConCommandBase *pVar )
float fMin, fMax;
const char *pStr;
assert( pVar );
Assert( pVar );
Color clr;
clr.SetColor( 255, 100, 100, 255 );

View File

@ -142,7 +142,7 @@ unsigned FASTCALL HashInt( const int n )
odd = g_nRandomValues[((n >> 8) & 0xff)];
even = g_nRandomValues[odd ^ (n >> 24)];
odd = g_nRandomValues[even ^ (n >> 16) & 0xff];
odd = g_nRandomValues[even ^ ((n >> 16) & 0xff)];
even = g_nRandomValues[odd ^ ((n >> 8) & 0xff)];
odd = g_nRandomValues[even ^ (n & 0xff)];
@ -163,7 +163,7 @@ unsigned FASTCALL Hash4( const void *pKey )
odd = g_nRandomValues[((n >> 8) & 0xff)];
even = g_nRandomValues[odd ^ (n >> 24)];
odd = g_nRandomValues[even ^ (n >> 16) & 0xff];
odd = g_nRandomValues[even ^ ((n >> 16) & 0xff)];
even = g_nRandomValues[odd ^ ((n >> 8) & 0xff)];
odd = g_nRandomValues[even ^ (n & 0xff)];
@ -185,7 +185,7 @@ unsigned FASTCALL Hash8( const void *pKey )
odd = g_nRandomValues[((n >> 8) & 0xff)];
even = g_nRandomValues[odd ^ (n >> 24)];
odd = g_nRandomValues[even ^ (n >> 16) & 0xff];
odd = g_nRandomValues[even ^ ((n >> 16) & 0xff)];
even = g_nRandomValues[odd ^ ((n >> 8) & 0xff)];
odd = g_nRandomValues[even ^ (n & 0xff)];
@ -213,7 +213,7 @@ unsigned FASTCALL Hash12( const void *pKey )
odd = g_nRandomValues[((n >> 8) & 0xff)];
even = g_nRandomValues[odd ^ (n >> 24)];
odd = g_nRandomValues[even ^ (n >> 16) & 0xff];
odd = g_nRandomValues[even ^ ((n >> 16) & 0xff)];
even = g_nRandomValues[odd ^ ((n >> 8) & 0xff)];
odd = g_nRandomValues[even ^ (n & 0xff)];
@ -247,7 +247,7 @@ unsigned FASTCALL Hash16( const void *pKey )
odd = g_nRandomValues[((n >> 8) & 0xff)];
even = g_nRandomValues[odd ^ (n >> 24)];
odd = g_nRandomValues[even ^ (n >> 16) & 0xff];
odd = g_nRandomValues[even ^ ((n >> 16) & 0xff)];
even = g_nRandomValues[odd ^ ((n >> 8) & 0xff)];
odd = g_nRandomValues[even ^ (n & 0xff)];

View File

@ -37,10 +37,14 @@
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
#if !defined COMPILER_MSVC && !defined HMODULE
#define HMODULE void *
#endif
// ------------------------------------------------------------------------------------ //
// InterfaceReg.
// ------------------------------------------------------------------------------------ //
InterfaceReg *InterfaceReg::s_pInterfaceRegs = NULL;
InterfaceReg *s_pInterfaceRegs = NULL;
InterfaceReg::InterfaceReg( InstantiateInterfaceFn fn, const char *pName ) :
m_pName(pName)
@ -59,7 +63,7 @@ void* CreateInterface( const char *pName, int *pReturnCode )
{
InterfaceReg *pCur;
for (pCur=InterfaceReg::s_pInterfaceRegs; pCur; pCur=pCur->m_pNext)
for (pCur=s_pInterfaceRegs; pCur; pCur=pCur->m_pNext)
{
if (strcmp(pCur->m_pName, pName) == 0)
{
@ -201,7 +205,7 @@ HMODULE Sys_LoadLibrary( const char *pLibraryName )
#endif
unsigned int nTimeout = 0;
while( ThreadWaitForObject( h, true, nTimeout ) == TW_TIMEOUT )
while( WaitForSingleObject(h, nTimeout) == WAIT_TIMEOUT )
{
nTimeout = threadFunc();
}

View File

@ -19,13 +19,13 @@
// Should be last include
#include "tier0/memdbgon.h"
MemoryPoolReportFunc_t CMemoryPool::g_ReportFunc = 0;
MemoryPoolReportFunc_t CUtlMemoryPool::g_ReportFunc = 0;
//-----------------------------------------------------------------------------
// Error reporting... (debug only)
//-----------------------------------------------------------------------------
void CMemoryPool::SetErrorReportFunc( MemoryPoolReportFunc_t func )
void CUtlMemoryPool::SetErrorReportFunc( MemoryPoolReportFunc_t func )
{
g_ReportFunc = func;
}
@ -33,7 +33,7 @@ void CMemoryPool::SetErrorReportFunc( MemoryPoolReportFunc_t func )
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CMemoryPool::CMemoryPool( int blockSize, int numElements, int growMode, const char *pszAllocOwner, int nAlignment )
CUtlMemoryPool::CUtlMemoryPool( int blockSize, int numElements, int growMode, const char *pszAllocOwner, int nAlignment )
{
#ifdef _X360
if( numElements > 0 && growMode != GROW_NONE )
@ -63,7 +63,7 @@ CMemoryPool::CMemoryPool( int blockSize, int numElements, int growMode, const ch
// any further use.
// Input : *memPool - the mempool to shutdown
//-----------------------------------------------------------------------------
CMemoryPool::~CMemoryPool()
CUtlMemoryPool::~CUtlMemoryPool()
{
if (m_BlocksAllocated > 0)
{
@ -76,7 +76,7 @@ CMemoryPool::~CMemoryPool()
//-----------------------------------------------------------------------------
// Resets the pool
//-----------------------------------------------------------------------------
void CMemoryPool::Init()
void CUtlMemoryPool::Init()
{
m_NumBlobs = 0;
m_BlocksAllocated = 0;
@ -88,7 +88,7 @@ void CMemoryPool::Init()
//-----------------------------------------------------------------------------
// Frees everything
//-----------------------------------------------------------------------------
void CMemoryPool::Clear()
void CUtlMemoryPool::Clear()
{
// Free everything..
CBlob *pNext;
@ -104,7 +104,7 @@ void CMemoryPool::Clear()
// Purpose: Reports memory leaks
//-----------------------------------------------------------------------------
void CMemoryPool::ReportLeaks()
void CUtlMemoryPool::ReportLeaks()
{
if (!g_ReportFunc)
return;
@ -155,7 +155,7 @@ void CMemoryPool::ReportLeaks()
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CMemoryPool::AddNewBlob()
void CUtlMemoryPool::AddNewBlob()
{
MEM_ALLOC_CREDIT_(m_pszAllocOwner);
@ -172,7 +172,7 @@ void CMemoryPool::AddNewBlob()
// Can only have one allocation when we're in this mode
if( m_NumBlobs != 0 )
{
Assert( !"CMemoryPool::AddNewBlob: mode == GROW_NONE" );
Assert( !"CUtlMemoryPool::AddNewBlob: mode == GROW_NONE" );
return;
}
}
@ -210,13 +210,13 @@ void CMemoryPool::AddNewBlob()
}
void* CMemoryPool::Alloc()
void* CUtlMemoryPool::Alloc()
{
return Alloc( m_BlockSize );
}
void* CMemoryPool::AllocZero()
void* CUtlMemoryPool::AllocZero()
{
return AllocZero( m_BlockSize );
}
@ -226,7 +226,7 @@ void* CMemoryPool::AllocZero()
// Purpose: Allocs a single block of memory from the pool.
// Input : amount -
//-----------------------------------------------------------------------------
void *CMemoryPool::Alloc( size_t amount )
void *CUtlMemoryPool::Alloc( size_t amount )
{
void *returnBlock;
@ -238,7 +238,7 @@ void *CMemoryPool::Alloc( size_t amount )
// returning NULL is fine in GROW_NONE
if( m_GrowMode == GROW_NONE )
{
//Assert( !"CMemoryPool::Alloc: tried to make new blob with GROW_NONE" );
//Assert( !"CUtlMemoryPool::Alloc: tried to make new blob with GROW_NONE" );
return NULL;
}
@ -248,7 +248,7 @@ void *CMemoryPool::Alloc( size_t amount )
// still failure, error out
if( !m_pHeadOfFreeList )
{
Assert( !"CMemoryPool::Alloc: ran out of memory" );
Assert( !"CUtlMemoryPool::Alloc: ran out of memory" );
return NULL;
}
}
@ -267,7 +267,7 @@ void *CMemoryPool::Alloc( size_t amount )
// Purpose: Allocs a single block of memory from the pool, zeroes the memory before returning
// Input : amount -
//-----------------------------------------------------------------------------
void *CMemoryPool::AllocZero( size_t amount )
void *CUtlMemoryPool::AllocZero( size_t amount )
{
void *mem = Alloc( amount );
if ( mem )
@ -281,7 +281,7 @@ void *CMemoryPool::AllocZero( size_t amount )
// Purpose: Frees a block of memory
// Input : *memBlock - the memory to free
//-----------------------------------------------------------------------------
void CMemoryPool::Free( void *memBlock )
void CUtlMemoryPool::Free( void *memBlock )
{
if ( !memBlock )
return; // trying to delete NULL pointer, ignore

View File

@ -179,11 +179,11 @@ void CBitWrite::WriteBitCoord (const float f)
}
}
void CBitWrite::WriteBitCoordMP (const float f, bool bIntegral, bool bLowPrecision )
void CBitWrite::WriteBitCoordMP (const float f, EBitCoordType coordType )
{
int signbit = (f <= -( bLowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ));
int signbit = (f <= -( coordType == kCW_LowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ));
int intval = (int)fabs(f);
int fractval = bLowPrecision ?
int fractval = coordType == kCW_LowPrecision ?
( abs((int)(f*COORD_DENOMINATOR_LOWPRECISION)) & (COORD_DENOMINATOR_LOWPRECISION-1) ) :
( abs((int)(f*COORD_DENOMINATOR)) & (COORD_DENOMINATOR-1) );
@ -191,7 +191,7 @@ void CBitWrite::WriteBitCoordMP (const float f, bool bIntegral, bool bLowPrecisi
WriteOneBit( bInBounds );
if ( bIntegral )
if ( coordType == kCW_Integral )
{
// Send the sign bit
WriteOneBit( intval );
@ -232,7 +232,7 @@ void CBitWrite::WriteBitCoordMP (const float f, bool bIntegral, bool bLowPrecisi
WriteUBitLong( (unsigned int)intval, COORD_INTEGER_BITS );
}
}
WriteUBitLong( (unsigned int)fractval, bLowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
WriteUBitLong( (unsigned int)fractval, coordType == kCW_LowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
}
}
@ -575,14 +575,14 @@ float CBitRead::ReadBitCoord (void)
return value;
}
float CBitRead::ReadBitCoordMP( bool bIntegral, bool bLowPrecision )
float CBitRead::ReadBitCoordMP( EBitCoordType coordType )
{
int intval=0,fractval=0,signbit=0;
float value = 0.0;
bool bInBounds = ReadOneBit() ? true : false;
if ( bIntegral )
if ( coordType == kCW_Integral )
{
// Read the required integer and fraction flags
intval = ReadOneBit();
@ -626,10 +626,10 @@ float CBitRead::ReadBitCoordMP( bool bIntegral, bool bLowPrecision )
}
// If there's a fraction, read it in
fractval = ReadUBitLong( bLowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
fractval = ReadUBitLong( coordType == kCW_LowPrecision ? COORD_FRACTIONAL_BITS_MP_LOWPRECISION : COORD_FRACTIONAL_BITS );
// Calculate the correct floating point value
value = intval + ((float)fractval * ( bLowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ) );
value = intval + ((float)fractval * ( coordType == kCW_LowPrecision ? COORD_RESOLUTION_LOWPRECISION : COORD_RESOLUTION ) );
}
// Fixup the sign if negative.

View File

@ -4,6 +4,7 @@
//
//=============================================================================//
#include "mathlib/mathlib.h"
#include "rangecheckedvar.h"
// memdbgon must be the last include file in a .cpp file!!!

View File

@ -18,16 +18,22 @@
// Purpose: Comparison function for string sorted associative data structures
//-----------------------------------------------------------------------------
bool StrLess( const char * const &pszLeft, const char * const &pszRight )
bool StrLessSensitive( const char * const &pszLeft, const char * const &pszRight )
{
return ( Q_strcmp( pszLeft, pszRight) < 0 );
}
bool StrLessInsensitive( const char * const &pszLeft, const char * const &pszRight )
{
return ( Q_stricmp( pszLeft, pszRight) < 0 );
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
CStringPool::CStringPool()
: m_Strings( 32, 256, StrLess )
CStringPool::CStringPool( StringPoolCase_t caseSensitivity )
: m_Strings( 32, 256, caseSensitivity == StringPoolCaseInsensitive ? StrLessInsensitive : StrLessSensitive )
{
}
@ -94,7 +100,7 @@ void CStringPool::FreeAll()
//-----------------------------------------------------------------------------
CCountedStringPool::CCountedStringPool()
CCountedStringPool::CCountedStringPool( StringPoolCase_t caseSensitivity )
{
MEM_ALLOC_CREDIT();
m_HashTable.EnsureCount(HASH_TABLE_SIZE);
@ -109,6 +115,8 @@ CCountedStringPool::CCountedStringPool()
m_Elements[0].pString = NULL;
m_Elements[0].nReferenceCount = 0;
m_Elements[0].nNextElement = INVALID_ELEMENT;
m_caseSensitivity = caseSensitivity;
}
CCountedStringPool::~CCountedStringPool()
@ -154,7 +162,7 @@ unsigned short CCountedStringPool::FindStringHandle( const char* pIntrinsic )
if( pIntrinsic == NULL )
return INVALID_ELEMENT;
unsigned short nHashBucketIndex = (HashStringCaseless(pIntrinsic ) %HASH_TABLE_SIZE);
unsigned short nHashBucketIndex = (m_caseSensitivity ? HashString( pIntrinsic ) : HashStringCaseless( pIntrinsic ) %HASH_TABLE_SIZE);
unsigned short nCurrentBucket = m_HashTable[ nHashBucketIndex ];
// Does the bucket already exist?
@ -187,7 +195,7 @@ unsigned short CCountedStringPool::ReferenceStringHandle( const char* pIntrinsic
if( pIntrinsic == NULL )
return INVALID_ELEMENT;
unsigned short nHashBucketIndex = (HashStringCaseless( pIntrinsic ) % HASH_TABLE_SIZE);
unsigned short nHashBucketIndex = (m_caseSensitivity ? HashString( pIntrinsic ) : HashStringCaseless( pIntrinsic ) % HASH_TABLE_SIZE);
unsigned short nCurrentBucket = m_HashTable[ nHashBucketIndex ];
// Does the bucket already exist?
@ -244,7 +252,7 @@ void CCountedStringPool::DereferenceString( const char* pIntrinsic )
if (!pIntrinsic)
return;
unsigned short nHashBucketIndex = (HashStringCaseless( pIntrinsic ) % m_HashTable.Count());
unsigned short nHashBucketIndex = (m_caseSensitivity ? HashString( pIntrinsic ) : HashStringCaseless( pIntrinsic ) % m_HashTable.Count());
unsigned short nCurrentBucket = m_HashTable[ nHashBucketIndex ];
// If there isn't anything in the bucket, just return.
@ -292,6 +300,14 @@ char* CCountedStringPool::HandleToString( unsigned short handle )
return m_Elements[handle].pString;
}
unsigned CCountedStringPool::Hash( const char *pszKey )
{
if (m_caseSensitivity == StringPoolCaseSensitive)
return HashString( pszKey );
return HashStringCaseless( pszKey );
}
void CCountedStringPool::SpewStrings()
{
int i;

View File

@ -75,7 +75,7 @@
#endif
#include "tier0/memdbgon.h"
void _V_memset (const char* file, int line, void *dest, int fill, int count)
void _V_memset (void *dest, int fill, int count)
{
Assert( count >= 0 );
AssertValidWritePtr( dest, count );
@ -83,7 +83,7 @@ void _V_memset (const char* file, int line, void *dest, int fill, int count)
memset(dest,fill,count);
}
void _V_memcpy (const char* file, int line, void *dest, const void *src, int count)
void _V_memcpy (void *dest, const void *src, int count)
{
Assert( count >= 0 );
AssertValidReadPtr( src, count );
@ -92,7 +92,7 @@ void _V_memcpy (const char* file, int line, void *dest, const void *src, int cou
memcpy( dest, src, count );
}
void _V_memmove(const char* file, int line, void *dest, const void *src, int count)
void _V_memmove(void *dest, const void *src, int count)
{
Assert( count >= 0 );
AssertValidReadPtr( src, count );
@ -101,7 +101,7 @@ void _V_memmove(const char* file, int line, void *dest, const void *src, int cou
memmove( dest, src, count );
}
int _V_memcmp (const char* file, int line, const void *m1, const void *m2, int count)
int _V_memcmp (const void *m1, const void *m2, int count)
{
Assert( count >= 0 );
AssertValidReadPtr( m1, count );
@ -110,28 +110,28 @@ int _V_memcmp (const char* file, int line, const void *m1, const void *m2, int c
return memcmp( m1, m2, count );
}
int _V_strlen(const char* file, int line, const char *str)
int _V_strlen(const char *str)
{
AssertValidStringPtr(str);
_AssertValidStringPtr(str);
return strlen( str );
}
void _V_strcpy (const char* file, int line, char *dest, const char *src)
void _V_strcpy (char *dest, const char *src)
{
AssertValidWritePtr(dest);
AssertValidStringPtr(src);
_AssertValidStringPtr(src);
strcpy( dest, src );
}
int _V_wcslen(const char* file, int line, const wchar_t *pwch)
int _V_wcslen(const wchar_t *pwch)
{
return wcslen( pwch );
}
char *_V_strrchr(const char* file, int line, const char *s, char c)
char *_V_strrchr(const char *s, char c)
{
AssertValidStringPtr( s );
_AssertValidStringPtr( s );
int len = V_strlen(s);
s += len;
while (len--)
@ -139,15 +139,15 @@ char *_V_strrchr(const char* file, int line, const char *s, char c)
return 0;
}
int _V_strcmp (const char* file, int line, const char *s1, const char *s2)
int _V_strcmp (const char *s1, const char *s2)
{
AssertValidStringPtr( s1 );
AssertValidStringPtr( s2 );
_AssertValidStringPtr( s1 );
_AssertValidStringPtr( s2 );
return strcmp( s1, s2 );
}
int _V_wcscmp (const char* file, int line, const wchar_t *s1, const wchar_t *s2)
int _V_wcscmp (const wchar_t *s1, const wchar_t *s2)
{
while (1)
{
@ -162,21 +162,23 @@ int _V_wcscmp (const char* file, int line, const wchar_t *s1, const wchar_t *s2)
return -1;
}
#ifdef PLATFORM_WINDOWS
#undef stricmp
#endif
int _V_stricmp(const char* file, int line, const char *s1, const char *s2 )
int _V_stricmp( const char *s1, const char *s2 )
{
AssertValidStringPtr( s1 );
AssertValidStringPtr( s2 );
_AssertValidStringPtr( s1 );
_AssertValidStringPtr( s2 );
return stricmp( s1, s2 );
}
char *_V_strstr(const char* file, int line, const char *s1, const char *search )
char *_V_strstr( const char *s1, const char *search )
{
AssertValidStringPtr( s1 );
AssertValidStringPtr( search );
_AssertValidStringPtr( s1 );
_AssertValidStringPtr( search );
#if defined( _X360 )
return (char *)strstr( (char *)s1, search );
@ -185,24 +187,24 @@ char *_V_strstr(const char* file, int line, const char *s1, const char *search
#endif
}
char *_V_strupr (const char* file, int line, char *start)
char *_V_strupr (char *start)
{
AssertValidStringPtr( start );
_AssertValidStringPtr( start );
return strupr( start );
}
char *_V_strlower (const char* file, int line, char *start)
char *_V_strlower (char *start)
{
AssertValidStringPtr( start );
_AssertValidStringPtr( start );
return strlwr(start);
}
int V_strncmp (const char *s1, const char *s2, int count)
{
Assert( count >= 0 );
AssertValidStringPtr( s1, count );
AssertValidStringPtr( s2, count );
_AssertValidStringPtr( s1, count );
_AssertValidStringPtr( s2, count );
while ( count-- > 0 )
{
@ -220,7 +222,7 @@ int V_strncmp (const char *s1, const char *s2, int count)
char *V_strnlwr(char *s, size_t count)
{
Assert( count >= 0 );
AssertValidStringPtr( s, count );
_AssertValidStringPtr( s, count );
char* pRet = s;
if ( !s )
@ -247,8 +249,8 @@ char *V_strnlwr(char *s, size_t count)
int V_strncasecmp (const char *s1, const char *s2, int n)
{
Assert( n >= 0 );
AssertValidStringPtr( s1 );
AssertValidStringPtr( s2 );
_AssertValidStringPtr( s1 );
_AssertValidStringPtr( s2 );
while ( n-- > 0 )
{
@ -273,8 +275,8 @@ int V_strncasecmp (const char *s1, const char *s2, int n)
int V_strcasecmp( const char *s1, const char *s2 )
{
AssertValidStringPtr( s1 );
AssertValidStringPtr( s2 );
_AssertValidStringPtr( s1 );
_AssertValidStringPtr( s2 );
return stricmp( s1, s2 );
}
@ -282,8 +284,8 @@ int V_strcasecmp( const char *s1, const char *s2 )
int V_strnicmp (const char *s1, const char *s2, int n)
{
Assert( n >= 0 );
AssertValidStringPtr(s1);
AssertValidStringPtr(s2);
_AssertValidStringPtr(s1);
_AssertValidStringPtr(s2);
return V_strncasecmp( s1, s2, n );
}
@ -291,8 +293,8 @@ int V_strnicmp (const char *s1, const char *s2, int n)
const char *StringAfterPrefix( const char *str, const char *prefix )
{
AssertValidStringPtr( str );
AssertValidStringPtr( prefix );
_AssertValidStringPtr( str );
_AssertValidStringPtr( prefix );
do
{
if ( !*prefix )
@ -304,8 +306,8 @@ const char *StringAfterPrefix( const char *str, const char *prefix )
const char *StringAfterPrefixCaseSensitive( const char *str, const char *prefix )
{
AssertValidStringPtr( str );
AssertValidStringPtr( prefix );
_AssertValidStringPtr( str );
_AssertValidStringPtr( prefix );
do
{
if ( !*prefix )
@ -318,7 +320,7 @@ const char *StringAfterPrefixCaseSensitive( const char *str, const char *prefix
int V_atoi (const char *str)
{
AssertValidStringPtr( str );
_AssertValidStringPtr( str );
int val;
int sign;
@ -380,7 +382,7 @@ int V_atoi (const char *str)
float V_atof (const char *str)
{
AssertValidStringPtr( str );
_AssertValidStringPtr( str );
double val;
int sign;
int c;
@ -489,8 +491,8 @@ void V_normalizeFloatString( char* pFloat )
//-----------------------------------------------------------------------------
char const* V_stristr( char const* pStr, char const* pSearch )
{
AssertValidStringPtr(pStr);
AssertValidStringPtr(pSearch);
_AssertValidStringPtr(pStr);
_AssertValidStringPtr(pSearch);
if (!pStr || !pSearch)
return 0;
@ -532,8 +534,8 @@ char const* V_stristr( char const* pStr, char const* pSearch )
char* V_stristr( char* pStr, char const* pSearch )
{
AssertValidStringPtr( pStr );
AssertValidStringPtr( pSearch );
_AssertValidStringPtr( pStr );
_AssertValidStringPtr( pSearch );
return (char*)V_stristr( (char const*)pStr, pSearch );
}
@ -543,8 +545,8 @@ char* V_stristr( char* pStr, char const* pSearch )
//-----------------------------------------------------------------------------
char const* V_strnistr( char const* pStr, char const* pSearch, int n )
{
AssertValidStringPtr(pStr);
AssertValidStringPtr(pSearch);
_AssertValidStringPtr(pStr);
_AssertValidStringPtr(pSearch);
if (!pStr || !pSearch)
return 0;
@ -613,7 +615,7 @@ void V_strncpy( char *pDest, char const *pSrc, int maxLen )
{
Assert( maxLen >= 0 );
AssertValidWritePtr( pDest, maxLen );
AssertValidStringPtr( pSrc );
_AssertValidStringPtr( pSrc );
strncpy( pDest, pSrc, maxLen );
if ( maxLen > 0 )
@ -672,7 +674,7 @@ int V_snprintf( char *pDest, int maxLen, char const *pFormat, ... )
{
Assert( maxLen >= 0 );
AssertValidWritePtr( pDest, maxLen );
AssertValidStringPtr( pFormat );
_AssertValidStringPtr( pFormat );
va_list marker;
@ -701,7 +703,7 @@ int V_vsnprintf( char *pDest, int maxLen, char const *pFormat, va_list params )
{
Assert( maxLen > 0 );
AssertValidWritePtr( pDest, maxLen );
AssertValidStringPtr( pFormat );
_AssertValidStringPtr( pFormat );
int len = _vsnprintf( pDest, maxLen, pFormat, params );
@ -730,8 +732,8 @@ char *V_strncat(char *pDest, const char *pSrc, size_t destBufferSize, int max_ch
size_t charstocopy = (size_t)0;
Assert( destBufferSize >= 0 );
AssertValidStringPtr( pDest);
AssertValidStringPtr( pSrc );
_AssertValidStringPtr( pDest);
_AssertValidStringPtr( pSrc );
size_t len = strlen(pDest);
size_t srclen = strlen( pSrc );
@ -888,21 +890,21 @@ char *V_pretifynum( int64 value )
if ( value >= 1000000000000LL )
{
char *pchRender = out + V_strlen( out );
V_snprintf( pchRender, 32, "%d,", value / 1000000000000LL );
V_snprintf( pchRender, 32, "%lld,", value / 1000000000000LL );
}
// Render trillions
if ( value >= 1000000000000LL )
{
char *pchRender = out + V_strlen( out );
V_snprintf( pchRender, 32, "%d,", value / 1000000000000LL );
V_snprintf( pchRender, 32, "%lld,", value / 1000000000000LL );
}
// Render billions
if ( value >= 1000000000 )
{
char *pchRender = out + V_strlen( out );
V_snprintf( pchRender, 32, "%d,", value / 1000000000 );
V_snprintf( pchRender, 32, "%lld,", value / 1000000000 );
}
// Render millions
@ -910,9 +912,9 @@ char *V_pretifynum( int64 value )
{
char *pchRender = out + V_strlen( out );
if ( value >= 1000000000 )
V_snprintf( pchRender, 32, "%03d,", ( value / 1000000 ) % 1000 );
V_snprintf( pchRender, 32, "%03d,", (unsigned int)(( value / 1000000 ) % 1000 ));
else
V_snprintf( pchRender, 32, "%d,", ( value / 1000000 ) % 1000 );
V_snprintf( pchRender, 32, "%d,", (unsigned int)(( value / 1000000 ) % 1000 ));
}
// Render thousands
@ -920,17 +922,17 @@ char *V_pretifynum( int64 value )
{
char *pchRender = out + V_strlen( out );
if ( value >= 1000000 )
V_snprintf( pchRender, 32, "%03d,", ( value / 1000 ) % 1000 );
V_snprintf( pchRender, 32, "%03d,", (unsigned int)(( value / 1000 ) % 1000 ));
else
V_snprintf( pchRender, 32, "%d,", ( value / 1000 ) % 1000 );
V_snprintf( pchRender, 32, "%d,", (unsigned int)(( value / 1000 ) % 1000 ));
}
// Render units
char *pchRender = out + V_strlen( out );
if ( value > 1000 )
V_snprintf( pchRender, 32, "%03d", value % 1000 );
V_snprintf( pchRender, 32, "%03d", (unsigned int)(value % 1000) );
else
V_snprintf( pchRender, 32, "%d", value % 1000 );
V_snprintf( pchRender, 32, "%d", (unsigned int)(value % 1000) );
return out;
}
@ -941,7 +943,7 @@ char *V_pretifynum( int64 value )
//-----------------------------------------------------------------------------
int V_UTF8ToUnicode( const char *pUTF8, wchar_t *pwchDest, int cubDestSizeInBytes )
{
AssertValidStringPtr(pUTF8);
_AssertValidStringPtr(pUTF8);
AssertValidWritePtr(pwchDest);
pwchDest[0] = 0;
@ -959,7 +961,7 @@ int V_UTF8ToUnicode( const char *pUTF8, wchar_t *pwchDest, int cubDestSizeInByte
//-----------------------------------------------------------------------------
int V_UnicodeToUTF8( const wchar_t *pUnicode, char *pUTF8, int cubDestSizeInBytes )
{
AssertValidStringPtr(pUTF8, cubDestSizeInBytes);
_AssertValidStringPtr(pUTF8, cubDestSizeInBytes);
AssertValidReadPtr(pUnicode);
pUTF8[0] = 0;

View File

@ -6,20 +6,7 @@
#include <tier1/tier1.h>
#include "tier0/dbg.h"
#include "vstdlib/iprocessutils.h"
#include "icvar.h"
//-----------------------------------------------------------------------------
// These tier1 libraries must be set by any users of this library.
// They can be set by calling ConnectTier1Libraries or InitDefaultFileSystem.
// It is hoped that setting this, and using this library will be the common mechanism for
// allowing link libraries to access tier1 library interfaces
//-----------------------------------------------------------------------------
ICvar *cvar = 0;
ICvar *g_pCVar = 0;
IProcessUtils *g_pProcessUtils = 0;
static bool s_bConnected = false;
#include "interfaces/interfaces.h"
// for utlsortvector.h
#ifndef _WIN32
@ -33,31 +20,10 @@ static bool s_bConnected = false;
//-----------------------------------------------------------------------------
void ConnectTier1Libraries( CreateInterfaceFn *pFactoryList, int nFactoryCount )
{
// Don't connect twice..
if ( s_bConnected )
return;
s_bConnected = true;
for ( int i = 0; i < nFactoryCount; ++i )
{
if ( !g_pCVar )
{
cvar = g_pCVar = ( ICvar * )pFactoryList[i]( CVAR_INTERFACE_VERSION, NULL );
}
if ( !g_pProcessUtils )
{
g_pProcessUtils = ( IProcessUtils * )pFactoryList[i]( PROCESS_UTILS_INTERFACE_VERSION, NULL );
}
}
ConnectInterfaces( pFactoryList, nFactoryCount);
}
void DisconnectTier1Libraries()
{
if ( !s_bConnected )
return;
g_pCVar = cvar = 0;
g_pProcessUtils = NULL;
s_bConnected = false;
DisconnectInterfaces();
}

20
tier1/tier1.sln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tier1", "tier1.vcxproj", "{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Debug|Win32.ActiveCfg = Debug|Win32
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Debug|Win32.Build.0 = Debug|Win32
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Release|Win32.ActiveCfg = Release|Win32
{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

254
tier1/tier1.vcxproj Normal file
View File

@ -0,0 +1,254 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>tier1</ProjectName>
<ProjectGuid>{E1DA8DB8-FB4C-4B14-91A6-98BCED6B9720}</ProjectGuid>
<RootNamespace>tier1</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\lib\public\</OutDir>
<PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PostBuildEventUseInBuild>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\lib\public\</OutDir>
<PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PostBuildEventUseInBuild>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\public;..\public\tier0;..\public\tier1;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32;VEL': value '0' doesn't match value '2' in core_metamod.obj;COMPILER_MSVC;COMPILER_MSVC32;_DEBUG;DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TIER1_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>
</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeader>
</PrecompiledHeader>
<ExpandAttributedSource>false</ExpandAttributedSource>
<AssemblerOutput>
</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
<BrowseInformation>
</BrowseInformation>
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
<CompileAs>CompileAsCpp</CompileAs>
<ErrorReporting>Prompt</ErrorReporting>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<PreLinkEvent>
<Command>
</Command>
</PreLinkEvent>
<Lib>
<UseUnicodeResponseFiles>false</UseUnicodeResponseFiles>
<AdditionalDependencies>Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Xdcmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Xdcmake>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(OutDir)tier1.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>..\public;..\public\tier0;..\public\tier1;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32;COMPILER_MSVC;COMPILER_MSVC32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TIER1_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeader>
</PrecompiledHeader>
<ExpandAttributedSource>false</ExpandAttributedSource>
<AssemblerOutput>
</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
<BrowseInformation>
</BrowseInformation>
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
<CompileAs>CompileAsCpp</CompileAs>
<ErrorReporting>Prompt</ErrorReporting>
<WarningLevel>Level3</WarningLevel>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
</ClCompile>
<PreLinkEvent>
<Command>
</Command>
</PreLinkEvent>
<Lib>
<UseUnicodeResponseFiles>false</UseUnicodeResponseFiles>
<AdditionalDependencies>Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
<Xdcmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Xdcmake>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(OutDir)tier1.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="bitbuf.cpp" />
<ClCompile Include="byteswap.cpp" />
<ClCompile Include="characterset.cpp" />
<ClCompile Include="checksum_crc.cpp" />
<ClCompile Include="checksum_md5.cpp" />
<ClCompile Include="commandbuffer.cpp" />
<ClCompile Include="convar.cpp" />
<ClCompile Include="datamanager.cpp" />
<ClCompile Include="diff.cpp" />
<ClCompile Include="generichash.cpp" />
<ClCompile Include="interface.cpp" />
<ClCompile Include="KeyValues.cpp" />
<ClCompile Include="mempool.cpp" />
<ClCompile Include="memstack.cpp" />
<ClCompile Include="NetAdr.cpp" />
<ClCompile Include="newbitbuf.cpp" />
<ClCompile Include="processor_detect.cpp">
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Sync</ExceptionHandling>
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Sync</ExceptionHandling>
</ClCompile>
<ClCompile Include="rangecheckedvar.cpp" />
<ClCompile Include="stringpool.cpp" />
<ClCompile Include="strtools.cpp" />
<ClCompile Include="tier1.cpp" />
<ClCompile Include="uniqueid.cpp" />
<ClCompile Include="utlbuffer.cpp" />
<ClCompile Include="utlbufferutil.cpp" />
<ClCompile Include="utlstring.cpp" />
<ClCompile Include="utlsymbol.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\public\tier1\bitbuf.h" />
<ClInclude Include="..\public\tier1\byteswap.h" />
<ClInclude Include="..\public\tier1\callqueue.h" />
<ClInclude Include="..\public\tier1\characterset.h" />
<ClInclude Include="..\public\tier1\checksum_crc.h" />
<ClInclude Include="..\public\tier1\checksum_md5.h" />
<ClInclude Include="..\public\tier1\CommandBuffer.h" />
<ClInclude Include="..\public\tier1\convar.h" />
<ClInclude Include="..\public\tier1\datamanager.h" />
<ClInclude Include="..\public\datamap.h" />
<ClInclude Include="..\public\tier1\delegates.h" />
<ClInclude Include="..\public\tier1\diff.h" />
<ClInclude Include="..\public\tier1\fmtstr.h" />
<ClInclude Include="..\public\tier1\functors.h" />
<ClInclude Include="..\public\tier1\generichash.h" />
<ClInclude Include="..\public\tier1\iconvar.h" />
<ClInclude Include="..\public\tier1\interface.h" />
<ClInclude Include="..\public\tier1\KeyValues.h" />
<ClInclude Include="..\public\tier1\lzmaDecoder.h" />
<ClInclude Include="..\public\tier1\lzss.h" />
<ClInclude Include="..\public\tier1\mempool.h" />
<ClInclude Include="..\public\tier1\memstack.h" />
<ClInclude Include="..\public\tier1\netadr.h" />
<ClInclude Include="..\public\tier1\processor_detect.h" />
<ClInclude Include="..\public\tier1\rangecheckedvar.h" />
<ClInclude Include="..\public\tier1\refcount.h" />
<ClInclude Include="..\public\tier1\smartptr.h" />
<ClInclude Include="..\public\tier1\stringpool.h" />
<ClInclude Include="..\public\tier1\strtools.h" />
<ClInclude Include="..\public\tier1\tier1.h" />
<ClInclude Include="..\public\tier1\uniqueid.h" />
<ClInclude Include="..\public\tier1\utlbidirectionalset.h" />
<ClInclude Include="..\public\tier1\utlblockmemory.h" />
<ClInclude Include="..\public\tier1\utlbuffer.h" />
<ClInclude Include="..\public\tier1\utlbufferutil.h" />
<ClInclude Include="..\public\tier1\utldict.h" />
<ClInclude Include="..\public\tier1\utlenvelope.h" />
<ClInclude Include="..\public\tier1\utlfixedmemory.h" />
<ClInclude Include="..\public\tier1\utlhandletable.h" />
<ClInclude Include="..\public\tier1\utlhash.h" />
<ClInclude Include="..\public\tier1\utllinkedlist.h" />
<ClInclude Include="..\public\tier1\utlmap.h" />
<ClInclude Include="..\public\tier1\utlmemory.h" />
<ClInclude Include="..\public\tier1\utlmultilist.h" />
<ClInclude Include="..\public\tier1\utlpriorityqueue.h" />
<ClInclude Include="..\public\tier1\utlqueue.h" />
<ClInclude Include="..\public\tier1\utlrbtree.h" />
<ClInclude Include="..\public\tier1\UtlSortVector.h" />
<ClInclude Include="..\public\tier1\utlstack.h" />
<ClInclude Include="..\public\tier1\utlstring.h" />
<ClInclude Include="..\public\tier1\UtlStringMap.h" />
<ClInclude Include="..\public\tier1\utlsymbol.h" />
<ClInclude Include="..\public\tier1\utlvector.h" />
<ClInclude Include="..\common\xbox\xboxstubs.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

257
tier1/tier1.vcxproj.filters Normal file
View File

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{aba1d919-d95c-4c3f-a495-be0375bab184}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{0295d938-2af6-4393-9785-4b7b122313c9}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="bitbuf.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="byteswap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="characterset.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="checksum_crc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="checksum_md5.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="commandbuffer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="convar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="datamanager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="diff.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="generichash.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="interface.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KeyValues.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mempool.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="memstack.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="NetAdr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="newbitbuf.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="processor_detect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="rangecheckedvar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="stringpool.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="strtools.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tier1.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="uniqueid.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="utlbuffer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="utlbufferutil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="utlstring.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="utlsymbol.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\public\tier1\bitbuf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\byteswap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\callqueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\characterset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\checksum_crc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\checksum_md5.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\CommandBuffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\convar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\datamanager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\datamap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\delegates.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\diff.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\fmtstr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\functors.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\generichash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\iconvar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\interface.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\KeyValues.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\lzmaDecoder.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\lzss.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\mempool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\memstack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\netadr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\processor_detect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\rangecheckedvar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\refcount.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\smartptr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\stringpool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\strtools.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\tier1.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\uniqueid.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlbidirectionalset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlblockmemory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlbuffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlbufferutil.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utldict.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlenvelope.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlfixedmemory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlhandletable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlhash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utllinkedlist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlmemory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlmultilist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlpriorityqueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlqueue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlrbtree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\UtlSortVector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlstack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlstring.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\UtlStringMap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlsymbol.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\public\tier1\utlvector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\common\xbox\xboxstubs.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>