view src/audio/windx5/directx.h @ 4390:725e506f6243 SDL-1.2

Fixed bug #895 Markus Rothe 2009-12-07 09:32:46 PST Check if libspe2 is available Building on PowerPC64 results in: [...] In file included from ./src/video/ps3/SDL_ps3events_c.h:33, from ./src/video/ps3/SDL_ps3video.c:32: ./src/video/ps3/SDL_ps3video.h:34:21: error: libspe2.h: No such file or directory In file included from ./src/video/ps3/SDL_ps3events_c.h:33, from ./src/video/ps3/SDL_ps3video.c:32: ./src/video/ps3/SDL_ps3video.h:75: error: expected specifier-qualifier-list before 'spe_context_ptr_t' ./src/video/ps3/SDL_ps3video.c:78: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fb_writer_spu' ./src/video/ps3/SDL_ps3video.c: In function 'PS3_VideoInit': ./src/video/ps3/SDL_ps3video.c:167: error: 'spu_data_t' has no member named 'program' ./src/video/ps3/SDL_ps3video.c:167: error: 'fb_writer_spu' undeclared (first use in this function) [...] The problem is that the ps3 video driver is being build regardless if libspe2 is installed or not. The attached patch fixes this problem. [ Note: The other headers that are being checked for are coming from the linux headers package on powerpc64. As a result these are also available if you're on a generic powerpc64 machine and not a PS3 only. ]
author Sam Lantinga <slouken@libsdl.org>
date Fri, 11 Dec 2009 15:14:13 +0000
parents bb6839704ed6
children 782fd950bd46 eada7e321df6
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

#ifdef __GNUC__
#define NONAMELESSUNION
#endif
#include <ddraw.h>
#include <dsound.h>
#include <dinput.h>

#endif /* _directx_h */