view src/audio/windx5/directx.h @ 5029:5d7d48157be7

Greg Jandl to SDL I did some digging, and I think I've found a better solution. By including some additional .m4 macros in the acinclude directory (http://www.gnu.org/software/autoconf-archive/ax_check_compiler_flags.html, http://www.gnu.org/software/autoconf-archive/ax_gcc_archflag.html and http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_cpuid.html) then using the patch below (same as previous patch + one line change to configure.in), SDL will build correctly out of the box. The arch can then be overridden by --with-gcc-arch=<arch> (most will probably want to build with i686 there for general distribution) or --without-gcc-arch, to disable setting the arch all together. On my Atom netbook, I get -march=PentiumPro by default, which works great, as does --with-gcc-arch=i686.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 18 Jan 2011 22:40:45 -0800
parents 80277d92551b
children 327f181542f1
line wrap: on
line source


#ifndef _directx_h
#define _directx_h

/* Include all of the DirectX 5.0 headers and adds any necessary tweaks */

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <mmsystem.h>
#ifndef WIN32
#define WIN32
#endif
#undef  WINNT

/* Far pointers don't exist in 32-bit code */
#ifndef FAR
#define FAR
#endif

/* Error codes not yet included in Win32 API header files */
#ifndef MAKE_HRESULT
#define MAKE_HRESULT(sev,fac,code) \
	((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))))
#endif

#ifndef S_OK
#define S_OK		(HRESULT)0x00000000L
#endif

#ifndef SUCCEEDED
#define SUCCEEDED(x)	((HRESULT)(x) >= 0)
#endif
#ifndef FAILED
#define FAILED(x)	((HRESULT)(x)<0)
#endif

#ifndef E_FAIL
#define E_FAIL		(HRESULT)0x80000008L
#endif
#ifndef E_NOINTERFACE
#define E_NOINTERFACE	(HRESULT)0x80004002L
#endif
#ifndef E_OUTOFMEMORY
#define E_OUTOFMEMORY	(HRESULT)0x8007000EL
#endif
#ifndef E_INVALIDARG
#define E_INVALIDARG	(HRESULT)0x80070057L
#endif
#ifndef E_NOTIMPL
#define E_NOTIMPL	(HRESULT)0x80004001L
#endif
#ifndef REGDB_E_CLASSNOTREG
#define REGDB_E_CLASSNOTREG	(HRESULT)0x80040154L
#endif

/* Severity codes */
#ifndef SEVERITY_ERROR
#define SEVERITY_ERROR	1
#endif

/* Error facility codes */
#ifndef FACILITY_WIN32
#define FACILITY_WIN32	7
#endif

#ifndef FIELD_OFFSET
#define FIELD_OFFSET(type, field)    ((LONG)&(((type *)0)->field))
#endif

/* DirectX headers (if it isn't included, I haven't tested it yet)
 */
/* We need these defines to mark what version of DirectX API we use */
#define DIRECTDRAW_VERSION  0x0700
#define DIRECTSOUND_VERSION 0x0500
#define DIRECTINPUT_VERSION 0x0500

#include <ddraw.h>
#include <dsound.h>
#include <dinput.h>

#endif /* _directx_h */
/* vi: set ts=4 sw=4 expandtab: */