diff options
Diffstat (limited to 'dxr3cpu.h')
-rw-r--r-- | dxr3cpu.h | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/dxr3cpu.h b/dxr3cpu.h deleted file mode 100644 index c5d73d2..0000000 --- a/dxr3cpu.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * dxr3cpu.h - * - * Copyright (C) 2004 Christian Gmeiner - * - * Taken (modifized) from Nesseia-Renderengine Copyright (C) 2003-2004 Christian Gmeiner - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifndef _DXR3_CPU_H_ -#define _DXR3_CPU_H_ - -#include <inttypes.h> -#include "dxr3singleton.h" - -// ================================== -//! all possible cabs -enum Cpu_cabs -{ - CC_MMX = 0x80000000, ///< Value for mmx - CC_3DNOW = 0x40000000, ///< Value for 3dnow - CC_MMXEXT = 0x20000000, ///< Value for mmx ext - CC_SSE = 0x10000000, ///< Value for sse - CC_SSE2 = 0x08000000 ///< Value for sse2 -}; - -// ================================== -//! easy and fast access to all infos -struct CPUInformation -{ - CPUInformation() - { - AMD = false; - INTEL = false; - MMX = false; - MMXEXT = false; - SSE = false; - SSE2 = false; - Now = false; - RDTSC = false; - HT = false; - AMD64Bit = false; - } - - char Vendor[16]; ///< vendorname - - bool AMD; ///< is it an AMD CPU? - bool INTEL; ///< is it an Intel CPU? - bool MMX; ///< is MMX-Technology supported? - bool MMXEXT; ///< are Extended MMX_MultimediaExtensions supported? - bool SSE; ///< is SSE-Technology supported? - bool SSE2; ///< is SSE2-Technology supported? - bool Now; ///< is 3DNow-Technology supported? - bool RDTSC; ///< is RDTSC-Technology supported? - bool HT; ///< is HyperThreading supported? - bool AMD64Bit; ///< is it a 64 bit machine? - - uint32_t caps; ///< all features represanted as caps -}; - -// ================================== -//! Grab some infos about the cpu(s) -/*! - If you want to know what the cpu of the - target machine can do, this class is for you :) - It is used intern for the math and memcpy part. -*/ -class cDxr3CPU : public Singleton<cDxr3CPU> -{ -public: - cDxr3CPU(); - ~cDxr3CPU() {} - - bool HasMMXSupport() const { return m_Info.MMX; } - bool HasSSESupport() const { return m_Info.SSE; } - bool HasSSE2Support() const { return m_Info.SSE2; } - bool Has3DNowSupport() const { return m_Info.Now; } - bool HasRDTSCSupport() const { return m_Info.RDTSC; } - bool HasHTSupport() const { return m_Info.HT; } - - inline CPUInformation GetInfos() const { return m_Info ;} - -private: - bool CheckCPUIDPresence(); - - // main function to get cpu(s) features - bool Cpuid(unsigned long function, unsigned long& out_eax, unsigned long& out_ebx, unsigned long& out_ecx, unsigned long& out_edx); - - CPUInformation m_Info; -}; - -#endif /*_DXR3_CPU_H_*/ - -// Local variables: -// mode: c++ -// c-file-style: "stroustrup" -// c-file-offsets: ((inline-open . 0)) -// indent-tabs-mode: t -// End: |