diff options
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/libWineStub')
13 files changed, 16738 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/Makefile.kup b/src/VBox/Devices/Graphics/shaderlib/libWineStub/Makefile.kup new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/Makefile.kup diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/debug.c b/src/VBox/Devices/Graphics/shaderlib/libWineStub/debug.c new file mode 100644 index 00000000..9735cf26 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/debug.c @@ -0,0 +1,534 @@ +/* + * Management of the debugging channels + * + * Copyright 2000 Alexandre Julliard + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#include "config.h" +#include "wine/port.h" + +#include "initguid.h" +#ifdef VBOX +# ifdef _MSC_VER +# include <iprt/win/objbase.h> +# else +# include <objbase.h> +# endif +# include <wine/wined3d.h> +# ifdef _MSC_VER +# include <iprt/win/windows.h> +# else +# include <windows.h> +# endif +#else +#include <objbase.h> +#include <wine/wined3d.h> +#include <windows.h> +#endif + +#include <stdlib.h> +#include <stdio.h> +#include <stdarg.h> +#include <string.h> +#include <ctype.h> + +#include "wine/debug.h" +//#include "wine/library.h" + +#ifdef VBOX_WITH_WDDM +# include <VBoxDispMpLogger.h> +# include <iprt/errcore.h> +#else +# include <iprt/log.h> +#endif +#include <iprt/asm.h> + +#if VBOX_WITH_VMSVGA +/* WINE defines this as inline in its headers, directly accessing a memory location */ +#ifndef RT_OS_WINDOWS +#define GetCurrentThreadId() (1) +#define GetCurrentProcessId() (1) +#endif +#endif + +static const char * const debug_classes[] = { "fixme", "err", "warn", "trace" }; + +#define MAX_DEBUG_OPTIONS 256 + +typedef DECLCALLBACKTYPE(void, FNVBOXWINELOGBACKDOOR,(char* pcszStr)); +typedef FNVBOXWINELOGBACKDOOR *PFNVBOXWINELOGBACKDOOR; +static PFNVBOXWINELOGBACKDOOR vbox_log_backdoor = NULL; +static unsigned char default_flags = (1 << __WINE_DBCL_ERR) | (1 << __WINE_DBCL_FIXME) | (1 << __WINE_DBCL_WARN); +static int nb_debug_options = -1; +static struct __wine_debug_channel debug_options[MAX_DEBUG_OPTIONS]; + +static struct __wine_debug_functions funcs; + +static void debug_init(void); + +static int cmp_name( const void *p1, const void *p2 ) +{ + const char *name = p1; + const struct __wine_debug_channel *chan = p2; + return strcmp( name, chan->name ); +} + +/* get the flags to use for a given channel, possibly setting them too in case of lazy init */ +unsigned char __wine_dbg_get_channel_flags( struct __wine_debug_channel *channel ) +{ + if (nb_debug_options == -1) debug_init(); + + if (nb_debug_options) + { + struct __wine_debug_channel *opt = bsearch( channel->name, debug_options, nb_debug_options, + sizeof(debug_options[0]), cmp_name ); + if (opt) return opt->flags; + } + /* no option for this channel */ + if (channel->flags & (1 << __WINE_DBCL_INIT)) channel->flags = default_flags; + return default_flags; +} + +/* set the flags to use for a given channel; return 0 if the channel is not available to set */ +int __wine_dbg_set_channel_flags( struct __wine_debug_channel *channel, + unsigned char set, unsigned char clear ) +{ + if (nb_debug_options == -1) debug_init(); + + if (nb_debug_options) + { + struct __wine_debug_channel *opt = bsearch( channel->name, debug_options, nb_debug_options, + sizeof(debug_options[0]), cmp_name ); + if (opt) + { + opt->flags = (opt->flags & ~clear) | set; + return 1; + } + } + return 0; +} + +/* add a new debug option at the end of the option list */ +static void add_option( const char *name, unsigned char set, unsigned char clear ) +{ + int min = 0, max = nb_debug_options - 1, pos, res; + + if (!name[0]) /* "all" option */ + { + default_flags = (default_flags & ~clear) | set; + return; + } + if (strlen(name) >= sizeof(debug_options[0].name)) return; + + while (min <= max) + { + pos = (min + max) / 2; + res = strcmp( name, debug_options[pos].name ); + if (!res) + { + debug_options[pos].flags = (debug_options[pos].flags & ~clear) | set; + return; + } + if (res < 0) max = pos - 1; + else min = pos + 1; + } + if (nb_debug_options >= MAX_DEBUG_OPTIONS) return; + + pos = min; + if (pos < nb_debug_options) memmove( &debug_options[pos + 1], &debug_options[pos], + (nb_debug_options - pos) * sizeof(debug_options[0]) ); + strcpy( debug_options[pos].name, name ); + debug_options[pos].flags = (default_flags & ~clear) | set; + nb_debug_options++; +} + +/* parse a set of debugging option specifications and add them to the option list */ +static void parse_options( const char *str ) +{ + char *opt, *next, *options; + unsigned int i; + + if (!(options = strdup(str))) return; + for (opt = options; opt; opt = next) + { + const char *p; + unsigned char set = 0, clear = 0; + + if ((next = strchr( opt, ',' ))) *next++ = 0; + + p = opt + strcspn( opt, "+-" ); + if (!p[0]) p = opt; /* assume it's a debug channel name */ + + if (p > opt) + { + for (i = 0; i < sizeof(debug_classes)/sizeof(debug_classes[0]); i++) + { + int len = (int)strlen(debug_classes[i]); + if (len != (p - opt)) continue; + if (!memcmp( opt, debug_classes[i], len )) /* found it */ + { + if (*p == '+') set |= 1 << i; + else clear |= 1 << i; + break; + } + } + if (i == sizeof(debug_classes)/sizeof(debug_classes[0])) /* bad class name, skip it */ + continue; + } + else + { + if (*p == '-') clear = ~0; + else set = ~0; + } + if (*p == '+' || *p == '-') p++; + if (!p[0]) continue; + + if (!strcmp( p, "all" )) + default_flags = (default_flags & ~clear) | set; + else + add_option( p, set, clear ); + } + free( options ); +} + + +/* print the usage message */ +static void debug_usage(void) +{ + static const char usage[] = + "Syntax of the WINEDEBUG variable:\n" + " WINEDEBUG=[class]+xxx,[class]-yyy,...\n\n" + "Example: WINEDEBUG=+all,warn-heap\n" + " turns on all messages except warning heap messages\n" + "Available message classes: err, warn, fixme, trace\n"; + int res = write( 2, usage, sizeof(usage) - 1 ); + NOREF(res); + exit(1); +} + +#ifndef VBOX_WITH_WDDM +static DECLCALLBACK(void) vbox_log_backdoor_rt(char* pcszStr) +{ + RTLogPrintf("%s", pcszStr); +} +#else +static DECLCALLBACK(void) vbox_log_backdoor_dispmp(char* pcszStr) +{ + VBoxDispMpLoggerLog(pcszStr); +} +#endif +static void vbox_log_v(const char *pszFormat, va_list args) +{ + if (vbox_log_backdoor) + { + static char buf[8092]; + int offset = sprintf(buf, "[0x%lx.0x%lx] Wine Debug: ", (unsigned long)GetCurrentProcessId(), (unsigned long)GetCurrentThreadId()); + vsprintf(buf + offset, pszFormat, args); + vbox_log_backdoor(buf); + } +} + +/* initialize all options at startup */ +static void debug_init(void) +{ + char *wine_debug; + + if (nb_debug_options != -1) return; /* already initialized */ + nb_debug_options = 0; + if ((wine_debug = getenv("WINEDEBUG"))) + { +#ifndef VBOX_WITH_VMSVGA + Assert(0); +#endif + if (!strcmp( wine_debug, "help" )) + debug_usage(); + else if (getenv("WINEDEBUG_BACKDOOR")) + { +#ifdef VBOX_WITH_WDDM + int rc = VBoxDispMpLoggerInit(); + if (RT_SUCCESS(rc)) + vbox_log_backdoor = vbox_log_backdoor_dispmp; +// else +#else + vbox_log_backdoor = vbox_log_backdoor_rt; +#endif + } + parse_options( wine_debug ); + } +} + +/* varargs wrapper for funcs.dbg_vprintf */ +int wine_dbg_printf( const char *format, ... ) +{ + int ret; + va_list valist; + + va_start(valist, format); + ret = funcs.dbg_vprintf( format, valist ); + va_end(valist); + return ret; +} + +/* printf with temp buffer allocation */ +const char *wine_dbg_sprintf( const char *format, ... ) +{ + static const int max_size = 200; + char *ret; + int len; + va_list valist; + + va_start(valist, format); + ret = funcs.get_temp_buffer( max_size ); + len = vsnprintf( ret, max_size, format, valist ); + if (len == -1 || len >= max_size) ret[max_size-1] = 0; + else funcs.release_temp_buffer( ret, len + 1 ); + va_end(valist); + return ret; +} + + +/* varargs wrapper for funcs.dbg_vlog */ +int wine_dbg_log( enum __wine_debug_class cls, struct __wine_debug_channel *channel, + const char *func, const char *format, ... ) +{ + int ret; + va_list valist; + + if (!(__wine_dbg_get_channel_flags( channel ) & (1 << cls))) return -1; + + va_start(valist, format); + ret = funcs.dbg_vlog( cls, channel, func, format, valist ); + va_end(valist); + return ret; +} + +#ifndef VBOX //!defined(VBOX_WITH_VMSVGA) || defined(RT_OS_WINDOWS) +int interlocked_xchg_add( int *dest, int incr ) +{ + return InterlockedExchangeAdd((LONG *)dest, incr); +} +#endif + +/* allocate some tmp string space */ +/* FIXME: this is not 100% thread-safe */ +static char *get_temp_buffer( size_t size ) +{ + static char *list[32]; + static int pos; + char *ret; + int idx; + +#ifndef VBOX + idx = interlocked_xchg_add( &pos, 1 ) % (sizeof(list)/sizeof(list[0])); +#else + idx = ASMAtomicIncS32(&pos) - 1; + idx %= RT_ELEMENTS(list); +#endif + if ((ret = realloc( list[idx], size ))) list[idx] = ret; + return ret; +} + + +/* release unused part of the buffer */ +static void release_temp_buffer( char *buffer, size_t size ) +{ + /* don't bother doing anything */ +} + + +/* default implementation of wine_dbgstr_an */ +static const char *default_dbgstr_an( const char *str, int n ) +{ + static const char hex[16+1] = "0123456789abcdef"; + char *dst, *res; + size_t size; + + if (!((ULONG_PTR)str >> 16)) + { + if (!str) return "(null)"; + res = funcs.get_temp_buffer( 6 ); + sprintf( res, "#%04x", LOWORD(str) ); + return res; + } + if (n == -1) n = (int)strlen(str); + if (n < 0) n = 0; + size = 10 + min( 300, n * 4 ); + dst = res = funcs.get_temp_buffer( size ); + *dst++ = '"'; + while (n-- > 0 && dst <= res + size - 9) + { + unsigned char c = *str++; + switch (c) + { + case '\n': *dst++ = '\\'; *dst++ = 'n'; break; + case '\r': *dst++ = '\\'; *dst++ = 'r'; break; + case '\t': *dst++ = '\\'; *dst++ = 't'; break; + case '"': *dst++ = '\\'; *dst++ = '"'; break; + case '\\': *dst++ = '\\'; *dst++ = '\\'; break; + default: + if (c >= ' ' && c <= 126) + *dst++ = c; + else + { + *dst++ = '\\'; + *dst++ = 'x'; + *dst++ = hex[(c >> 4) & 0x0f]; + *dst++ = hex[c & 0x0f]; + } + } + } + *dst++ = '"'; + if (n > 0) + { + *dst++ = '.'; + *dst++ = '.'; + *dst++ = '.'; + } + *dst++ = 0; + funcs.release_temp_buffer( res, dst - res ); + return res; +} + + +/* default implementation of wine_dbgstr_wn */ +static const char *default_dbgstr_wn( const WCHAR *str, int n ) +{ + char *dst, *res; + size_t size; + + if (!((ULONG_PTR)str >> 16)) + { + if (!str) return "(null)"; + res = funcs.get_temp_buffer( 6 ); + sprintf( res, "#%04x", LOWORD(str) ); + return res; + } + if (n == -1) + { + const WCHAR *end = str; + while (*end) end++; + n = end - str; + } + if (n < 0) n = 0; + size = 12 + min( 300, n * 5 ); + dst = res = funcs.get_temp_buffer( size ); + *dst++ = 'L'; + *dst++ = '"'; + while (n-- > 0 && dst <= res + size - 10) + { + WCHAR c = *str++; + switch (c) + { + case '\n': *dst++ = '\\'; *dst++ = 'n'; break; + case '\r': *dst++ = '\\'; *dst++ = 'r'; break; + case '\t': *dst++ = '\\'; *dst++ = 't'; break; + case '"': *dst++ = '\\'; *dst++ = '"'; break; + case '\\': *dst++ = '\\'; *dst++ = '\\'; break; + default: + if (c >= ' ' && c <= 126) + *dst++ = c; + else + { + *dst++ = '\\'; + sprintf(dst,"%04x",c); + dst+=4; + } + } + } + *dst++ = '"'; + if (n > 0) + { + *dst++ = '.'; + *dst++ = '.'; + *dst++ = '.'; + } + *dst++ = 0; + funcs.release_temp_buffer( res, dst - res ); + return res; +} + + +/* default implementation of wine_dbg_vprintf */ +static int default_dbg_vprintf( const char *format, va_list args ) +{ + vbox_log_v(format, args); +#ifdef DEBUG_leo + static FILE *output=NULL; + static int first_time = 1; + + if (first_time) + { + first_time = 0; + output = fopen( "winelog.txt", "w" ); + } + + if (output) vfprintf( output, format, args ); +#endif + return vfprintf( stdout, format, args ); +} + + +/* default implementation of wine_dbg_vlog */ +static int default_dbg_vlog( enum __wine_debug_class cls, struct __wine_debug_channel *channel, + const char *func, const char *format, va_list args ) +{ + int ret = 0; + + if (cls < sizeof(debug_classes)/sizeof(debug_classes[0])) + ret += wine_dbg_printf( "%s:[%#x]:%s:%s ", debug_classes[cls], GetCurrentThreadId(), channel->name, func ); + if (format) + ret += funcs.dbg_vprintf( format, args ); + return ret; +} + +/* wrappers to use the function pointers */ + +const char *wine_dbgstr_an( const char * s, int n ) +{ + return funcs.dbgstr_an(s, n); +} + +const char *wine_dbgstr_wn( const WCHAR *s, int n ) +{ + return funcs.dbgstr_wn(s, n); +} + +void __wine_dbg_set_functions( const struct __wine_debug_functions *new_funcs, + struct __wine_debug_functions *old_funcs, size_t size ) +{ + if (old_funcs) memcpy( old_funcs, &funcs, min(sizeof(funcs),size) ); + if (new_funcs) memcpy( &funcs, new_funcs, min(sizeof(funcs),size) ); +} + +static struct __wine_debug_functions funcs = +{ + get_temp_buffer, + release_temp_buffer, + default_dbgstr_an, + default_dbgstr_wn, + default_dbg_vprintf, + default_dbg_vlog +}; diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/config.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/config.h new file mode 100644 index 00000000..998c28bd --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/config.h @@ -0,0 +1,1282 @@ +/* include/config.h. Generated from config.h.in by configure. */ +/* include/config.h.in. Generated from configure.ac by autoheader. */ + +#include <stddef.h> + +#define __WINE_CONFIG_H + +/* Define to a function attribute for Microsoft hotpatch assembly prefix. */ +#define DECLSPEC_HOTPATCH /* */ + +/* Define to the file extension for executables. */ +#define EXEEXT ".exe" + +/* Define to 1 if you have the <alias.h> header file. */ +/* #undef HAVE_ALIAS_H */ + +/* Define if you have ALSA 1.x including devel headers */ +/* #undef HAVE_ALSA */ + +/* Define to 1 if you have the <alsa/asoundlib.h> header file. */ +/* #undef HAVE_ALSA_ASOUNDLIB_H */ + +/* Define to 1 if you have the <AL/al.h> header file. */ +/* #undef HAVE_AL_AL_H */ + +/* Define to 1 if you have the <arpa/inet.h> header file. */ +#define HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the <arpa/nameser.h> header file. */ +/* #undef HAVE_ARPA_NAMESER_H */ + +/* Define to 1 if you have the `asctime_r' function. */ +#define HAVE_ASCTIME_R 1 + +/* Define to 1 if you have the <asm/types.h> header file. */ +#define HAVE_ASM_TYPES_H 1 + +/* Define to 1 if you have the <AudioUnit/AudioUnit.h> header file. */ +/* #undef HAVE_AUDIOUNIT_AUDIOUNIT_H */ + +/* Define to 1 if you have the <audio/audiolib.h> header file. */ +/* #undef HAVE_AUDIO_AUDIOLIB_H */ + +/* Define to 1 if you have the <audio/soundlib.h> header file. */ +/* #undef HAVE_AUDIO_SOUNDLIB_H */ + +/* Define to 1 if you have the <capi20.h> header file. */ +/* #undef HAVE_CAPI20_H */ + +/* Define to 1 if you have the <Carbon/Carbon.h> header file. */ +/* #undef HAVE_CARBON_CARBON_H */ + +/* Define to 1 if you have the `chsize' function. */ +/* #undef HAVE_CHSIZE */ + +/* Define to 1 if you have the <CoreAudio/CoreAudio.h> header file. */ +/* #undef HAVE_COREAUDIO_COREAUDIO_H */ + +/* Define to 1 if you have the <cups/cups.h> header file. */ +/* #undef HAVE_CUPS_CUPS_H */ + +/* Define to 1 if you have the <curses.h> header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the daylight variable */ +/* #undef HAVE_DAYLIGHT*/ + +/* Define to 1 if you have the <dbus/dbus.h> header file. */ +/* #undef HAVE_DBUS_DBUS_H */ + +/* Define to 1 if you have the <direct.h> header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if you have the <dirent.h> header file. */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the <DiskArbitration/DiskArbitration.h> header + file. */ +/* #undef HAVE_DISKARBITRATION_DISKARBITRATION_H */ + +/* Define to 1 if you have the `dladdr' function. */ +/* #undef HAVE_DLADDR */ + +/* Define to 1 if you have the <dlfcn.h> header file. */ +/* #undef HAVE_DLFCN_H*/ + +/* Define to 1 if you have the `dlopen' function. */ +/* #undef HAVE_DLOPEN*/ + +/* Define to 1 if you have the <elf.h> header file. */ +/* #undef HAVE_ELF_H*/ + +/* Define to 1 if you have the `epoll_create' function. */ +/* #undef HAVE_EPOLL_CREATE */ + +/* Define if you have EsounD sound server */ +/* #undef HAVE_ESD */ + +/* Define to 1 if you have the `ffs' function. */ +#define HAVE_FFS 1 + +/* Define to 1 if you have the `finite' function. */ +#define HAVE_FINITE 1 + +/* Define to 1 if you have the <float.h> header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `fnmatch' function. */ +#define HAVE_FNMATCH 1 + +/* Define to 1 if you have the <fnmatch.h> header file. */ +#define HAVE_FNMATCH_H 1 + +/* Define to 1 if you have the <fontconfig/fontconfig.h> header file. */ +/* #undef HAVE_FONTCONFIG_FONTCONFIG_H */ + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fpclass' function. */ +/* #undef HAVE_FPCLASS */ + +/* Define if FreeType 2 is installed */ +/* #undef HAVE_FREETYPE */ + +/* Define to 1 if you have the <freetype/freetype.h> header file. */ +/* #undef HAVE_FREETYPE_FREETYPE_H */ + +/* Define to 1 if you have the <freetype/ftglyph.h> header file. */ +/* #undef HAVE_FREETYPE_FTGLYPH_H */ + +/* Define to 1 if you have the <freetype/ftlcdfil.h> header file. */ +/* #undef HAVE_FREETYPE_FTLCDFIL_H */ + +/* Define to 1 if you have the <freetype/ftmodapi.h> header file. */ +/* #undef HAVE_FREETYPE_FTMODAPI_H */ + +/* Define to 1 if you have the <freetype/ftoutln.h> header file. */ +/* #undef HAVE_FREETYPE_FTOUTLN_H */ + +/* Define to 1 if you have the <freetype/ftsnames.h> header file. */ +/* #undef HAVE_FREETYPE_FTSNAMES_H */ + +/* Define if you have the <freetype/fttrigon.h> header file. */ +/* #undef HAVE_FREETYPE_FTTRIGON_H */ + +/* Define to 1 if you have the <freetype/fttypes.h> header file. */ +/* #undef HAVE_FREETYPE_FTTYPES_H */ + +/* Define to 1 if you have the <freetype/ftwinfnt.h> header file. */ +/* #undef HAVE_FREETYPE_FTWINFNT_H */ + +/* Define to 1 if you have the <freetype/internal/sfnt.h> header file. */ +/* #undef HAVE_FREETYPE_INTERNAL_SFNT_H */ + +/* Define to 1 if you have the <freetype/ttnameid.h> header file. */ +/* #undef HAVE_FREETYPE_TTNAMEID_H */ + +/* Define to 1 if you have the <freetype/tttables.h> header file. */ +/* #undef HAVE_FREETYPE_TTTABLES_H */ + +/* Define to 1 if the system has the type `fsblkcnt_t'. */ +#define HAVE_FSBLKCNT_T 1 + +/* Define to 1 if the system has the type `fsfilcnt_t'. */ +#define HAVE_FSFILCNT_T 1 + +/* Define to 1 if you have the `fstatfs' function. */ +#define HAVE_FSTATFS 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define to 1 if you have the <ft2build.h> header file. */ +/* #undef HAVE_FT2BUILD_H */ + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `FT_Load_Sfnt_Table' function. */ +/* #undef HAVE_FT_LOAD_SFNT_TABLE */ + +/* Define to 1 if the system has the type `FT_TrueTypeEngineType'. */ +/* #undef HAVE_FT_TRUETYPEENGINETYPE */ + +/* Define to 1 if you have the `futimes' function. */ +#define HAVE_FUTIMES 1 + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `getaddrinfo' function. */ +/* #undef HAVE_GETADDRINFO */ + +/* Define to 1 if you have the `getdirentries' function. */ +/* #undef HAVE_GETDIRENTRIES */ + +/* Define to 1 if you have the `getnameinfo' function. */ +/* #undef HAVE_GETNAMEINFO */ + +/* Define to 1 if you have the `getnetbyname' function. */ +/* #undef HAVE_GETNETBYNAME */ + +/* Define to 1 if you have the <getopt.h> header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getopt_long' function. */ +#define HAVE_GETOPT_LONG 1 + +/* Define to 1 if you have the `getpagesize' function. */ +/* #undef HAVE_GETPAGESIZE */ + +/* Define to 1 if you have the `getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* Define to 1 if you have the `getprotobynumber' function. */ +#define HAVE_GETPROTOBYNUMBER 1 + +/* Define to 1 if you have the `getpwuid' function. */ +/* #undef HAVE_GETPWUID */ + +/* Define to 1 if you have the `getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `gettid' function. */ +/* #undef HAVE_GETTID */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `getuid' function. */ +/* #undef HAVE_GETUID */ + +/* Define to 1 if you have the <GL/glu.h> header file. */ +/* #undef HAVE_GL_GLU_H */ + +/* Define to 1 if you have the <GL/glx.h> header file. */ +/* #undef HAVE_GL_GLX_H */ + +/* Define to 1 if you have the <GL/gl.h> header file. */ +/* #undef HAVE_GL_GL_H */ + +/* Define if we have libgphoto2 development environment */ +/* #undef HAVE_GPHOTO2 */ + +/* Define to 1 if you have the <grp.h> header file. */ +/* #undef HAVE_GRP_H */ + +/* Define to 1 if you have the <gsm/gsm.h> header file. */ +/* #undef HAVE_GSM_GSM_H */ + +/* Define to 1 if you have the <gsm.h> header file. */ +/* #undef HAVE_GSM_H */ + +/* Define to 1 if you have the <hal/libhal.h> header file. */ +/* #undef HAVE_HAL_LIBHAL_H */ + +/* Define to 1 if you have the <ieeefp.h> header file. */ +#define HAVE_IEEEFP_H 1 + +/* Define to 1 if you have the <inet/mib2.h> header file. */ +/* #undef HAVE_INET_MIB2_H */ + +/* Define to 1 if you have the `inet_network' function. */ +#define HAVE_INET_NETWORK 1 + +/* Define to 1 if you have the `inet_ntop' function. */ +#define HAVE_INET_NTOP 1 + +/* Define to 1 if you have the `inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `IOHIDManagerCreate' function. */ +/* #undef HAVE_IOHIDMANAGERCREATE */ + +/* Define to 1 if you have the <IOKit/hid/IOHIDLib.h> header file. */ +/* #undef HAVE_IOKIT_HID_IOHIDLIB_H */ + +/* Define to 1 if you have the <IOKit/IOKitLib.h> header file. */ +/* #undef HAVE_IOKIT_IOKITLIB_H */ + +/* Define to 1 if you have the <io.h> header file. */ +#define HAVE_IO_H 1 + +/* Define to 1 if you have the `isinf' function. */ +/* #undef HAVE_ISINF */ + +/* Define to 1 if you have the `isnan' function. */ +/* #undef HAVE_ISNAN */ + +/* Define to 1 if you have the <jack/jack.h> header file. */ +/* #undef HAVE_JACK_JACK_H */ + +/* Define to 1 if you have the <jpeglib.h> header file. */ +/* #undef HAVE_JPEGLIB_H */ + +/* Define to 1 if you have the `kqueue' function. */ +/* #undef HAVE_KQUEUE */ + +/* Define to 1 if you have the <kstat.h> header file. */ +/* #undef HAVE_KSTAT_H */ + +/* Define to 1 if you have the <lber.h> header file. */ +/* #undef HAVE_LBER_H */ + +/* Define if you have the LittleCMS development environment */ +/* #undef HAVE_LCMS */ + +/* Define to 1 if you have the <lcms.h> header file. */ +/* #undef HAVE_LCMS_H */ + +/* Define to 1 if you have the <lcms/lcms.h> header file. */ +/* #undef HAVE_LCMS_LCMS_H */ + +/* Define if you have the OpenLDAP development environment */ +/* #undef HAVE_LDAP */ + +/* Define to 1 if you have the `ldap_count_references' function. */ +/* #undef HAVE_LDAP_COUNT_REFERENCES */ + +/* Define to 1 if you have the `ldap_first_reference' function. */ +/* #undef HAVE_LDAP_FIRST_REFERENCE */ + +/* Define to 1 if you have the <ldap.h> header file. */ +/* #undef HAVE_LDAP_H */ + +/* Define to 1 if you have the `ldap_next_reference' function. */ +/* #undef HAVE_LDAP_NEXT_REFERENCE */ + +/* Define to 1 if you have the `ldap_parse_reference' function. */ +/* #undef HAVE_LDAP_PARSE_REFERENCE */ + +/* Define to 1 if you have the `ldap_parse_sortresponse_control' function. */ +/* #undef HAVE_LDAP_PARSE_SORTRESPONSE_CONTROL */ + +/* Define to 1 if you have the `ldap_parse_sort_control' function. */ +/* #undef HAVE_LDAP_PARSE_SORT_CONTROL */ + +/* Define to 1 if you have the `ldap_parse_vlvresponse_control' function. */ +/* #undef HAVE_LDAP_PARSE_VLVRESPONSE_CONTROL */ + +/* Define to 1 if you have the `ldap_parse_vlv_control' function. */ +/* #undef HAVE_LDAP_PARSE_VLV_CONTROL */ + +/* Define if you have libaudioIO */ +/* #undef HAVE_LIBAUDIOIO */ + +/* Define to 1 if you have the <libaudioio.h> header file. */ +/* #undef HAVE_LIBAUDIOIO_H */ + +/* Define to 1 if you have the `i386' library (-li386). */ +/* #undef HAVE_LIBI386 */ + +/* Define to 1 if you have the `kstat' library (-lkstat). */ +/* #undef HAVE_LIBKSTAT */ + +/* Define to 1 if you have the `ossaudio' library (-lossaudio). */ +/* #undef HAVE_LIBOSSAUDIO */ + +/* Define if you have the libxml2 library */ +/* #undef HAVE_LIBXML2 */ + +/* Define to 1 if you have the <libxml/parser.h> header file. */ +/* #undef HAVE_LIBXML_PARSER_H */ + +/* Define if you have the X Shape extension */ +/* #undef HAVE_LIBXSHAPE */ + +/* Define to 1 if you have the <libxslt/pattern.h> header file. */ +/* #undef HAVE_LIBXSLT_PATTERN_H */ + +/* Define to 1 if you have the <libxslt/transform.h> header file. */ +/* #undef HAVE_LIBXSLT_TRANSFORM_H */ + +/* Define if you have the X Shm extension */ +/* #undef HAVE_LIBXXSHM */ + +/* Define to 1 if you have the <link.h> header file. */ +/* #undef HAVE_LINK_H */ + +/* Define if <linux/joystick.h> defines the Linux 2.2 joystick API */ +/* #undef HAVE_LINUX_22_JOYSTICK_API */ + +/* Define to 1 if you have the <linux/capi.h> header file. */ +/* #undef HAVE_LINUX_CAPI_H */ + +/* Define to 1 if you have the <linux/cdrom.h> header file. */ +/* #undef HAVE_LINUX_CDROM_H */ + +/* Define to 1 if you have the <linux/compiler.h> header file. */ +/* #undef HAVE_LINUX_COMPILER_H */ + +/* Define if Linux-style gethostbyname_r and gethostbyaddr_r are available */ +/* #undef HAVE_LINUX_GETHOSTBYNAME_R_6 */ + +/* Define to 1 if you have the <linux/hdreg.h> header file. */ +/* #undef HAVE_LINUX_HDREG_H */ + +/* Define to 1 if you have the <linux/input.h> header file. */ +/* #undef HAVE_LINUX_INPUT_H */ + +/* Define to 1 if you have the <linux/ioctl.h> header file. */ +/* #undef HAVE_LINUX_IOCTL_H */ + +/* Define to 1 if you have the <linux/ipx.h> header file. */ +/* #undef HAVE_LINUX_IPX_H */ + +/* Define to 1 if you have the <linux/irda.h> header file. */ +/* #undef HAVE_LINUX_IRDA_H */ + +/* Define to 1 if you have the <linux/joystick.h> header file. */ +/* #undef HAVE_LINUX_JOYSTICK_H */ + +/* Define to 1 if you have the <linux/major.h> header file. */ +/* #undef HAVE_LINUX_MAJOR_H */ + +/* Define to 1 if you have the <linux/param.h> header file. */ +/* #undef HAVE_LINUX_PARAM_H */ + +/* Define to 1 if you have the <linux/serial.h> header file. */ +/* #undef HAVE_LINUX_SERIAL_H */ + +/* Define to 1 if you have the <linux/types.h> header file. */ +/* #undef HAVE_LINUX_TYPES_H */ + +/* Define to 1 if you have the <linux/ucdrom.h> header file. */ +/* #undef HAVE_LINUX_UCDROM_H */ + +/* Define to 1 if you have the <linux/videodev.h> header file. */ +/* #undef HAVE_LINUX_VIDEODEV_H */ + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the `lstat' function. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the <machine/cpu.h> header file. */ +/* #undef HAVE_MACHINE_CPU_H */ + +/* Define to 1 if you have the <machine/limits.h> header file. */ +/* #undef HAVE_MACHINE_LIMITS_H */ + +/* Define to 1 if you have the <machine/soundcard.h> header file. */ +/* #undef HAVE_MACHINE_SOUNDCARD_H */ + +/* Define to 1 if you have the <mach/machine.h> header file. */ +/* #undef HAVE_MACH_MACHINE_H */ + +/* Define to 1 if you have the <mach/mach.h> header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define to 1 if you have the <mach-o/dyld_images.h> header file. */ +/* #undef HAVE_MACH_O_DYLD_IMAGES_H */ + +/* Define to 1 if you have the <mach-o/nlist.h> header file. */ +/* #undef HAVE_MACH_O_NLIST_H */ + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mmap' function. */ +/* #undef HAVE_MMAP */ + +/* Define to 1 if you have the <mntent.h> header file. */ +#define HAVE_MNTENT_H 1 + +/* Define to 1 if the system has the type `mode_t'. */ +#define HAVE_MODE_T 1 + +/* Define to 1 if you have the `mousemask' function. */ +/* #undef HAVE_MOUSEMASK */ + +/* Define to 1 if you have the <mpg123.h> header file. */ +/* #undef HAVE_MPG123_H */ + +/* Define if you have NAS including devel headers */ +/* #undef HAVE_NAS */ + +/* Define to 1 if you have the <ncurses.h> header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the <netdb.h> header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the <netinet/icmp_var.h> header file. */ +/* #undef HAVE_NETINET_ICMP_VAR_H */ + +/* Define to 1 if you have the <netinet/if_ether.h> header file. */ +/* #undef HAVE_NETINET_IF_ETHER_H */ + +/* Define to 1 if you have the <netinet/if_inarp.h> header file. */ +/* #undef HAVE_NETINET_IF_INARP_H */ + +/* Define to 1 if you have the <netinet/in.h> header file. */ +/* #undef HAVE_NETINET_IN_H */ + +/* Define to 1 if you have the <netinet/in_pcb.h> header file. */ +/* #undef HAVE_NETINET_IN_PCB_H */ + +/* Define to 1 if you have the <netinet/in_systm.h> header file. */ +/* #undef HAVE_NETINET_IN_SYSTM_H */ + +/* Define to 1 if you have the <netinet/ip.h> header file. */ +/* #undef HAVE_NETINET_IP_H */ + +/* Define to 1 if you have the <netinet/ip_icmp.h> header file. */ +/* #undef HAVE_NETINET_IP_ICMP_H */ + +/* Define to 1 if you have the <netinet/ip_var.h> header file. */ +/* #undef HAVE_NETINET_IP_VAR_H */ + +/* Define to 1 if you have the <netinet/tcp_fsm.h> header file. */ +/* #undef HAVE_NETINET_TCP_FSM_H */ + +/* Define to 1 if you have the <netinet/tcp.h> header file. */ +/* #undef HAVE_NETINET_TCP_H */ + +/* Define to 1 if you have the <netinet/tcp_timer.h> header file. */ +/* #undef HAVE_NETINET_TCP_TIMER_H */ + +/* Define to 1 if you have the <netinet/tcp_var.h> header file. */ +/* #undef HAVE_NETINET_TCP_VAR_H */ + +/* Define to 1 if you have the <netinet/udp.h> header file. */ +/* #undef HAVE_NETINET_UDP_H */ + +/* Define to 1 if you have the <netinet/udp_var.h> header file. */ +/* #undef HAVE_NETINET_UDP_VAR_H */ + +/* Define to 1 if you have the <netipx/ipx.h> header file. */ +/* #undef HAVE_NETIPX_IPX_H */ + +/* Define to 1 if you have the <net/if_arp.h> header file. */ +/* #undef HAVE_NET_IF_ARP_H */ + +/* Define to 1 if you have the <net/if_dl.h> header file. */ +/* #undef HAVE_NET_IF_DL_H */ + +/* Define to 1 if you have the <net/if.h> header file. */ +/* #undef HAVE_NET_IF_H */ + +/* Define to 1 if you have the <net/if_types.h> header file. */ +/* #undef HAVE_NET_IF_TYPES_H */ + +/* Define to 1 if you have the <net/route.h> header file. */ +/* #undef HAVE_NET_ROUTE_H */ + +/* Define to 1 if `_msg_ptr' is a member of `ns_msg'. */ +/* #undef HAVE_NS_MSG__MSG_PTR */ + +/* Define to 1 if the system has the type `off_t'. */ +#define HAVE_OFF_T 1 + +/* Define if mkdir takes only one argument */ +/* #undef HAVE_ONE_ARG_MKDIR */ + +/* Define to 1 if you have the <OpenAL/al.h> header file. */ +/* #undef HAVE_OPENAL_AL_H */ + +/* Define if OpenGL is present on the system */ +/* #undef HAVE_OPENGL */ + +/* Define to 1 if you have the <openssl/err.h> header file. */ +/* #undef HAVE_OPENSSL_ERR_H */ + +/* Define to 1 if you have the <openssl/ssl.h> header file. */ +/* #undef HAVE_OPENSSL_SSL_H */ + +/* Define to 1 if you have the `pclose' function. */ +#define HAVE_PCLOSE 1 + +/* Define to 1 if the system has the type `pid_t'. */ +/* #undef HAVE_PID_T */ + +/* Define to 1 if you have the `pipe2' function. */ +/* #undef HAVE_PIPE2 */ + +/* Define to 1 if you have the <png.h> header file. */ +/* #undef HAVE_PNG_H */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the <poll.h> header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `popen' function. */ +#define HAVE_POPEN 1 + +/* Define to 1 if you have the `port_create' function. */ +/* #undef HAVE_PORT_CREATE */ + +/* Define to 1 if you have the <port.h> header file. */ +/* #undef HAVE_PORT_H */ + +/* Define if we can use ppdev.h for parallel port access */ +/* #undef HAVE_PPDEV */ + +/* Define to 1 if you have the `prctl' function. */ +/* #undef HAVE_PRCTL */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the <process.h> header file. */ +#define HAVE_PROCESS_H 1 + +/* Define to 1 if you have the `pthread_attr_get_np' function. */ +/* #undef HAVE_PTHREAD_ATTR_GET_NP */ + +/* Define to 1 if you have the `pthread_getattr_np' function. */ +/* #undef HAVE_PTHREAD_GETATTR_NP */ + +/* Define to 1 if you have the `pthread_get_stackaddr_np' function. */ +/* #undef HAVE_PTHREAD_GET_STACKADDR_NP */ + +/* Define to 1 if you have the `pthread_get_stacksize_np' function. */ +/* #undef HAVE_PTHREAD_GET_STACKSIZE_NP */ + +/* Define to 1 if you have the <pthread.h> header file. */ +/* #undef HAVE_PTHREAD_H */ + +/* Define to 1 if you have the <pthread_np.h> header file. */ +/* #undef HAVE_PTHREAD_NP_H */ + +/* Define to 1 if you have the <pwd.h> header file. */ +/* #undef HAVE_PWD_H */ + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `readdir' function. */ +#define HAVE_READDIR 1 + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the <regex.h> header file. */ +#define HAVE_REGEX_H 1 + +/* Define to 1 if the system has the type `request_sense'. */ +/* #undef HAVE_REQUEST_SENSE */ + +/* Define if you have the resolver library and header */ +/* #undef HAVE_RESOLV */ + +/* Define to 1 if you have the <resolv.h> header file. */ +/* #undef HAVE_RESOLV_H */ + +/* Define to 1 if you have the <sched.h> header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if you have the `sched_yield' function. */ +#define HAVE_SCHED_YIELD 1 + +/* Define to 1 if `cmd' is a member of `scsireq_t'. */ +/* #undef HAVE_SCSIREQ_T_CMD */ + +/* Define to 1 if you have the <scsi/scsi.h> header file. */ +/* #undef HAVE_SCSI_SCSI_H */ + +/* Define to 1 if you have the <scsi/scsi_ioctl.h> header file. */ +/* #undef HAVE_SCSI_SCSI_IOCTL_H */ + +/* Define to 1 if you have the <scsi/sg.h> header file. */ +/* #undef HAVE_SCSI_SG_H */ + +/* Define to 1 if you have the `select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `sendmsg' function. */ +#define HAVE_SENDMSG 1 + +/* Define to 1 if you have the `setproctitle' function. */ +/* #undef HAVE_SETPROCTITLE */ + +/* Define to 1 if you have the `setrlimit' function. */ +/* #undef HAVE_SETRLIMIT */ + +/* Define to 1 if you have the `settimeofday' function. */ +#define HAVE_SETTIMEOFDAY 1 + +/* Define to 1 if `interface_id' is a member of `sg_io_hdr_t'. */ +/* #undef HAVE_SG_IO_HDR_T_INTERFACE_ID */ + +/* Define if sigaddset is supported */ +#define HAVE_SIGADDSET 1 + +/* Define to 1 if you have the `sigaltstack' function. */ +/* #undef HAVE_SIGALTSTACK */ + +/* Define to 1 if `si_fd' is a member of `siginfo_t'. */ +/* #undef HAVE_SIGINFO_T_SI_FD */ + +/* Define to 1 if you have the `sigprocmask' function. */ +#define HAVE_SIGPROCMASK 1 + +/* Define to 1 if the system has the type `sigset_t'. */ +#define HAVE_SIGSET_T 1 + +/* Define to 1 if the system has the type `size_t'. */ +#define HAVE_SIZE_T 1 + +/* Define to 1 if you have the `snprintf' function. */ +/* #undef HAVE_SNPRINTF */ +#include <iprt/cdefs.h> /* VBox: Manual edit */ +#if RT_MSC_PREREQ(RT_MSC_VER_VC140) /* VBox: Manual edit */ +# define HAVE_SNPRINTF 1 /* VBox: Manual edit */ +#endif /* VBox: Manual edit */ + +/* Define to 1 if you have the `socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if you have the <soundcard.h> header file. */ +/* #undef HAVE_SOUNDCARD_H */ + +/* Define to 1 if you have the `spawnvp' function. */ +#define HAVE_SPAWNVP 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statfs' function. */ +#define HAVE_STATFS 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define to 1 if you have the <stdbool.h> header file. */ +#define HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +/* #undef HAVE_STDINT_H */ + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the <stropts.h> header file. */ +/* #undef HAVE_STROPTS_H */ + +/* Define to 1 if you have the `strtold' function. */ +/* #undef HAVE_STRTOLD */ + +/* Define to 1 if you have the `strtoll' function. */ +#define HAVE_STRTOLL 1 + +/* Define to 1 if you have the `strtoull' function. */ +#define HAVE_STRTOULL 1 + +/* Define to 1 if `direction' is a member of `struct ff_effect'. */ +/* #undef HAVE_STRUCT_FF_EFFECT_DIRECTION */ + +/* Define to 1 if `icps_outhist' is a member of `struct icmpstat'. */ +/* #undef HAVE_STRUCT_ICMPSTAT_ICPS_OUTHIST */ + +/* Define to 1 if `msg_accrights' is a member of `struct msghdr'. */ +/* #undef HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS */ + +/* Define to 1 if `mt_blkno' is a member of `struct mtget'. */ +#define HAVE_STRUCT_MTGET_MT_BLKNO 1 + +/* Define to 1 if `mt_blksiz' is a member of `struct mtget'. */ +/* #undef HAVE_STRUCT_MTGET_MT_BLKSIZ */ + +/* Define to 1 if `mt_gstat' is a member of `struct mtget'. */ +#define HAVE_STRUCT_MTGET_MT_GSTAT 1 + +/* Define to 1 if `name' is a member of `struct option'. */ +#define HAVE_STRUCT_OPTION_NAME 1 + +/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */ +/* #undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID */ + +/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */ +/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */ + +/* Define to 1 if `sun_len' is a member of `struct sockaddr_un'. */ +/* #undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN */ + +/* Define to 1 if `f_bavail' is a member of `struct statfs'. */ +#define HAVE_STRUCT_STATFS_F_BAVAIL 1 + +/* Define to 1 if `f_bfree' is a member of `struct statfs'. */ +#define HAVE_STRUCT_STATFS_F_BFREE 1 + +/* Define to 1 if `f_favail' is a member of `struct statfs'. */ +/* #undef HAVE_STRUCT_STATFS_F_FAVAIL */ + +/* Define to 1 if `f_ffree' is a member of `struct statfs'. */ +#define HAVE_STRUCT_STATFS_F_FFREE 1 + +/* Define to 1 if `f_frsize' is a member of `struct statfs'. */ +/* #undef HAVE_STRUCT_STATFS_F_FRSIZE */ + +/* Define to 1 if `f_namelen' is a member of `struct statfs'. */ +#define HAVE_STRUCT_STATFS_F_NAMELEN 1 + +/* Define to 1 if `f_blocks' is a member of `struct statvfs'. */ +#define HAVE_STRUCT_STATVFS_F_BLOCKS 1 + +/* Define to 1 if `st_atim' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_ATIM 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_ctim' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_CTIM 1 + +/* Define to 1 if `st_mtim' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_MTIM 1 + +/* Define to 1 if the system has the type `struct xinpgen'. */ +/* #undef HAVE_STRUCT_XINPGEN */ + +/* Define to 1 if you have the `symlink' function. */ +/* #undef HAVE_SYMLINK */ + +/* Define to 1 if you have the <syscall.h> header file. */ +/* #undef HAVE_SYSCALL_H */ + +/* Define to 1 if you have the <sys/asoundlib.h> header file. */ +/* #undef HAVE_SYS_ASOUNDLIB_H */ + +/* Define to 1 if you have the <sys/cdio.h> header file. */ +/* #undef HAVE_SYS_CDIO_H */ + +/* Define to 1 if you have the <sys/elf32.h> header file. */ +#define HAVE_SYS_ELF32_H 1 + +/* Define to 1 if you have the <sys/epoll.h> header file. */ +/* #undef HAVE_SYS_EPOLL_H */ + +/* Define to 1 if you have the <sys/errno.h> header file. */ +#define HAVE_SYS_ERRNO_H 1 + +/* Define to 1 if you have the <sys/event.h> header file. */ +/* #undef HAVE_SYS_EVENT_H */ + +/* Define to 1 if you have the <sys/exec_elf.h> header file. */ +/* #undef HAVE_SYS_EXEC_ELF_H */ + +/* Define to 1 if you have the <sys/filio.h> header file. */ +/* #undef HAVE_SYS_FILIO_H */ + +/* Define to 1 if you have the <sys/inotify.h> header file. */ +/* #undef HAVE_SYS_INOTIFY_H */ + +/* Define to 1 if you have the <sys/ioctl.h> header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the <sys/ipc.h> header file. */ +#define HAVE_SYS_IPC_H 1 + +/* Define to 1 if you have the <sys/limits.h> header file. */ +/* #undef HAVE_SYS_LIMITS_H */ + +/* Define to 1 if you have the <sys/link.h> header file. */ +/* #undef HAVE_SYS_LINK_H */ + +/* Define to 1 if you have the <sys/mman.h> header file. */ +/* #undef HAVE_SYS_MMAN_H */ + +/* Define to 1 if you have the <sys/modem.h> header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the <sys/mount.h> header file. */ +#define HAVE_SYS_MOUNT_H 1 + +/* Define to 1 if you have the <sys/msg.h> header file. */ +#define HAVE_SYS_MSG_H 1 + +/* Define to 1 if you have the <sys/mtio.h> header file. */ +#define HAVE_SYS_MTIO_H 1 + +/* Define to 1 if you have the <sys/param.h> header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the <sys/poll.h> header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the <sys/prctl.h> header file. */ +/* #undef HAVE_SYS_PRCTL_H */ + +/* Define to 1 if you have the <sys/protosw.h> header file. */ +/* #undef HAVE_SYS_PROTOSW_H */ + +/* Define to 1 if you have the <sys/ptrace.h> header file. */ +/* #undef HAVE_SYS_PTRACE_H */ + +/* Define to 1 if you have the <sys/resource.h> header file. */ +/* #undef HAVE_SYS_RESOURCE_H */ + +/* Define to 1 if you have the <sys/scsiio.h> header file. */ +/* #undef HAVE_SYS_SCSIIO_H */ + +/* Define to 1 if you have the <sys/shm.h> header file. */ +/* #undef HAVE_SYS_SHM_H */ + +/* Define to 1 if you have the <sys/signal.h> header file. */ +/* #undef HAVE_SYS_SIGNAL_H */ + +/* Define to 1 if you have the <sys/socketvar.h> header file. */ +/* #undef HAVE_SYS_SOCKETVAR_H */ + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the <sys/sockio.h> header file. */ +/* #undef HAVE_SYS_SOCKIO_H */ + +/* Define to 1 if you have the <sys/soundcard.h> header file. */ +#define HAVE_SYS_SOUNDCARD_H 1 + +/* Define to 1 if you have the <sys/statfs.h> header file. */ +#define HAVE_SYS_STATFS_H 1 + +/* Define to 1 if you have the <sys/statvfs.h> header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/strtio.h> header file. */ +/* #undef HAVE_SYS_STRTIO_H */ + +/* Define to 1 if you have the <sys/syscall.h> header file. */ +/* #undef HAVE_SYS_SYSCALL_H */ + +/* Define to 1 if you have the <sys/sysctl.h> header file. */ +/* #undef HAVE_SYS_SYSCTL_H */ + +/* Define to 1 if you have the <sys/thr.h> header file. */ +/* #undef HAVE_SYS_THR_H */ + +/* Define to 1 if you have the <sys/tihdr.h> header file. */ +/* #undef HAVE_SYS_TIHDR_H */ + +/* Define to 1 if you have the <sys/timeout.h> header file. */ +/* #undef HAVE_SYS_TIMEOUT_H */ + +/* Define to 1 if you have the <sys/times.h> header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the <sys/time.h> header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <sys/uio.h> header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the <sys/un.h> header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the <sys/user.h> header file. */ +/* #undef HAVE_SYS_USER_H */ + +/* Define to 1 if you have the <sys/utsname.h> header file. */ +/* #undef HAVE_SYS_UTSNAME_H */ + +/* Define to 1 if you have the <sys/vfs.h> header file. */ +#define HAVE_SYS_VFS_H 1 + +/* Define to 1 if you have the <sys/vm86.h> header file. */ +/* #undef HAVE_SYS_VM86_H */ + +/* Define to 1 if you have the <sys/wait.h> header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the `tcgetattr' function. */ +#define HAVE_TCGETATTR 1 + +/* Define to 1 if you have the <termios.h> header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the `thr_kill2' function. */ +/* #undef HAVE_THR_KILL2 */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the timezone variable */ +#define HAVE_TIMEZONE 1 + +/* Define to 1 if you have the <ucontext.h> header file. */ +/* #undef HAVE_UCONTEXT_H */ + +/* Define to 1 if you have the <unistd.h> header file. */ +/* #undef HAVE_UNISTD_H */ + +/* Define to 1 if you have the `usleep' function. */ +#define HAVE_USLEEP 1 + +/* Define to 1 if you have the <utime.h> header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the <valgrind/memcheck.h> header file. */ +/* #undef HAVE_VALGRIND_MEMCHECK_H */ + +/* Define to 1 if you have the <valgrind/valgrind.h> header file. */ +/* #undef HAVE_VALGRIND_VALGRIND_H */ + +/* Define to 1 if you have the `vsnprintf' function. */ +/* #undef HAVE_VSNPRINTF */ +#if RT_MSC_PREREQ(RT_MSC_VER_VC140) /* VBox: Manual edit */ +# define HAVE_VSNPRINTF 1 /* VBox: Manual edit */ +#endif /* VBox: Manual edit */ + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define to 1 if you have the <X11/extensions/shape.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_SHAPE_H */ + +/* Define to 1 if you have the <X11/extensions/Xcomposite.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XCOMPOSITE_H */ + +/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XF86VMODE_H */ + +/* Define to 1 if you have the <X11/extensions/xf86vmproto.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XF86VMPROTO_H */ + +/* Define to 1 if you have the <X11/extensions/Xinerama.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XINERAMA_H */ + +/* Define to 1 if you have the <X11/extensions/XInput.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XINPUT_H */ + +/* Define to 1 if you have the <X11/extensions/Xrandr.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XRANDR_H */ + +/* Define to 1 if you have the <X11/extensions/Xrender.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XRENDER_H */ + +/* Define to 1 if you have the <X11/extensions/XShm.h> header file. */ +/* #undef HAVE_X11_EXTENSIONS_XSHM_H */ + +/* Define to 1 if you have the <X11/Xcursor/Xcursor.h> header file. */ +/* #undef HAVE_X11_XCURSOR_XCURSOR_H */ + +/* Define to 1 if you have the <X11/XKBlib.h> header file. */ +/* #undef HAVE_X11_XKBLIB_H */ + +/* Define to 1 if you have the <X11/Xlib.h> header file. */ +/* #undef HAVE_X11_XLIB_H */ + +/* Define to 1 if you have the <X11/Xutil.h> header file. */ +/* #undef HAVE_X11_XUTIL_H */ + +/* Define to 1 if `callback' is a member of `XICCallback'. */ +/* #undef HAVE_XICCALLBACK_CALLBACK */ + +/* Define if you have the XKB extension */ +/* #undef HAVE_XKB */ + +/* Define if libxml2 has the xmlNewDocPI function */ +/* #undef HAVE_XMLNEWDOCPI */ + +/* Define if libxml2 has the xmlReadMemory function */ +/* #undef HAVE_XMLREADMEMORY */ + +/* Define if Xrender has the XRenderSetPictureTransform function */ +/* #undef HAVE_XRENDERSETPICTURETRANSFORM */ + +/* Define to 1 if you have the `z' library (-lz). */ +#define HAVE_ZLIB 1 + +/* Define to 1 if you have the <zlib.h> header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_pclose' function. */ +#define HAVE__PCLOSE 1 + +/* Define to 1 if you have the `_popen' function. */ +#define HAVE__POPEN 1 + +/* Define to 1 if you have the `_snprintf' function. */ +#define HAVE__SNPRINTF 1 + +/* Define to 1 if you have the `_spawnvp' function. */ +#define HAVE__SPAWNVP 1 + +/* Define to 1 if you have the `_strdup' function. */ +#define HAVE__STRDUP 1 + +/* Define to 1 if you have the `_stricmp' function. */ +/* #undef HAVE__STRICMP */ + +/* Define to 1 if you have the `_strnicmp' function. */ +/* #undef HAVE__STRNICMP */ + +/* Define to 1 if you have the `_strtoi64' function. */ +/* #undef HAVE__STRTOI64 */ + +/* Define to 1 if you have the `_strtoui64' function. */ +/* #undef HAVE__STRTOUI64 */ + +/* Define to 1 if you have the `_vsnprintf' function. */ +#define HAVE__VSNPRINTF 1 + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "wine-devel@winehq.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "Wine" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "Wine 1.1.36" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "wine" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://www.winehq.org" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.1.36" + +/* Define to the soname of the libcapi20 library. */ +/* #undef SONAME_LIBCAPI20 */ + +/* Define to the soname of the libcrypto library. */ +/* #undef SONAME_LIBCRYPTO */ + +/* Define to the soname of the libcups library. */ +/* #undef SONAME_LIBCUPS */ + +/* Define to the soname of the libcurses library. */ +/* #undef SONAME_LIBCURSES */ + +/* Define to the soname of the libfontconfig library. */ +/* #undef SONAME_LIBFONTCONFIG */ + +/* Define to the soname of the libfreetype library. */ +/* #undef SONAME_LIBFREETYPE */ + +/* Define to the soname of the libGL library. */ +/* #undef SONAME_LIBGL */ + +/* Define to the soname of the libGLU library. */ +/* #undef SONAME_LIBGLU */ + +/* Define to the soname of the libgnutls library. */ +/* #undef SONAME_LIBGNUTLS */ + +/* Define to the soname of the libgsm library. */ +/* #undef SONAME_LIBGSM */ + +/* Define to the soname of the libhal library. */ +/* #undef SONAME_LIBHAL */ + +/* Define to the soname of the libjack library. */ +/* #undef SONAME_LIBJACK */ + +/* Define to the soname of the libjpeg library. */ +/* #undef SONAME_LIBJPEG */ + +/* Define to the soname of the libncurses library. */ +/* #undef SONAME_LIBNCURSES */ + +/* Define to the soname of the libodbc library. */ +#define SONAME_LIBODBC "libodbc.dll" + +/* Define to the soname of the libpng library. */ +/* #undef SONAME_LIBPNG */ + +/* Define to the soname of the libsane library. */ +/* #undef SONAME_LIBSANE */ + +/* Define to the soname of the libssl library. */ +/* #undef SONAME_LIBSSL */ + +/* Define to the soname of the libX11 library. */ +/* #undef SONAME_LIBX11 */ + +/* Define to the soname of the libXcomposite library. */ +/* #undef SONAME_LIBXCOMPOSITE */ + +/* Define to the soname of the libXcursor library. */ +/* #undef SONAME_LIBXCURSOR */ + +/* Define to the soname of the libXext library. */ +/* #undef SONAME_LIBXEXT */ + +/* Define to the soname of the libXi library. */ +/* #undef SONAME_LIBXI */ + +/* Define to the soname of the libXinerama library. */ +/* #undef SONAME_LIBXINERAMA */ + +/* Define to the soname of the libXrandr library. */ +/* #undef SONAME_LIBXRANDR */ + +/* Define to the soname of the libXrender library. */ +/* #undef SONAME_LIBXRENDER */ + +/* Define to the soname of the libxslt library. */ +/* #undef SONAME_LIBXSLT */ + +/* Define to the soname of the libXxf86vm library. */ +/* #undef SONAME_LIBXXF86VM */ + +/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if the X Window System is missing or not being used. */ +#define X_DISPLAY_MISSING 1 + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to a macro to output a .cfi assembly pseudo-op */ +#define __ASM_CFI(str) str + +/* Define to a macro to define an assembly function */ +#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl _" #name suffix "\n\t.def _" #name suffix "; .scl 2; .type 32; .endef\n_" #name suffix ":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc"); + +/* Define to a macro to generate an assembly function directive */ +#define __ASM_FUNC(name) ".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef" + +/* Define to a macro to generate an assembly function with C calling + convention */ +#define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,"",code) + +/* Define to a macro to generate an assembly name from a C symbol */ +#define __ASM_NAME(name) "_" name + +/* Define to a macro to generate an stdcall suffix */ +#define __ASM_STDCALL(args) "@" #args + +/* Define to a macro to generate an assembly function with stdcall calling + convention */ +#define __ASM_STDCALL_FUNC(name,args,code) __ASM_DEFINE_FUNC(name,__ASM_STDCALL(args),code) + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/d3d8.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/d3d8.h new file mode 100644 index 00000000..cf1eff37 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/d3d8.h @@ -0,0 +1,1154 @@ +/* + * Copyright (C) 2002 Jason Edmeades + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_D3D8_H +#define __WINE_D3D8_H + +#ifndef DIRECT3D_VERSION +#define DIRECT3D_VERSION 0x0800 +#endif + +#include <stdlib.h> + +#define COM_NO_WINDOWS_H +#include <objbase.h> + +#ifndef __WINESRC__ +# include <windows.h> +#endif + +#include <d3d8types.h> +#include <d3d8caps.h> + +/***************************************************************************** + * Behavior Flags for IDirect3D8::CreateDevice + */ +#define D3DCREATE_FPU_PRESERVE 0x00000002L +#define D3DCREATE_MULTITHREADED 0x00000004L +#define D3DCREATE_PUREDEVICE 0x00000010L +#define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L +#define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L +#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L + +/***************************************************************************** + * Flags for SetPrivateData + */ +#define D3DSPD_IUNKNOWN 0x00000001L + +/***************************************************************************** + * #defines and error codes + */ +#define D3D_SDK_VERSION 220 +#define D3DADAPTER_DEFAULT 0 +#define D3DENUM_NO_WHQL_LEVEL 2 + +#define _FACD3D 0x876 +#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code ) + +/* + * Direct3D Errors + */ +#define D3D_OK S_OK +#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072) +#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073) +#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074) +#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075) +#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076) +#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077) +#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078) +#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079) +#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081) +#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082) +#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086) +#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087) + +#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150) +#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151) +#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152) +#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153) +#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154) +#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380) +#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155) +#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156) +#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157) + +/***************************************************************************** + * Predeclare the interfaces + */ +DEFINE_GUID(IID_IDirect3D8, 0x1DD9E8DA,0x1C77,0x4D40,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12); +typedef struct IDirect3D8 *LPDIRECT3D8; + +DEFINE_GUID(IID_IDirect3DDevice8, 0x7385E5DF,0x8FE8,0x41D5,0x86,0xB6,0xD7,0xB4,0x85,0x47,0xB6,0xCF); +typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8; + +DEFINE_GUID(IID_IDirect3DResource8, 0x1B36BB7B,0x09B7,0x410A,0xB4,0x45,0x7D,0x14,0x30,0xD7,0xB3,0x3F); +typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8; + +DEFINE_GUID(IID_IDirect3DVertexBuffer8, 0x8AEEEAC7,0x05F9,0x44D4,0xB5,0x91,0x00,0x0B,0x0D,0xF1,0xCB,0x95); +typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8; + +DEFINE_GUID(IID_IDirect3DVolume8, 0xBD7349F5,0x14F1,0x42E4,0x9C,0x79,0x97,0x23,0x80,0xDB,0x40,0xC0); +typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8; + +DEFINE_GUID(IID_IDirect3DSwapChain8, 0x928C088B,0x76B9,0x4C6B,0xA5,0x36,0xA5,0x90,0x85,0x38,0x76,0xCD); +typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8; + +DEFINE_GUID(IID_IDirect3DSurface8, 0xB96EEBCA,0xB326,0x4EA5,0x88,0x2F,0x2F,0xF5,0xBA,0xE0,0x21,0xDD); +typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8; + +DEFINE_GUID(IID_IDirect3DIndexBuffer8, 0x0E689C9A,0x053D,0x44A0,0x9D,0x92,0xDB,0x0E,0x3D,0x75,0x0F,0x86); +typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8; + +DEFINE_GUID(IID_IDirect3DBaseTexture8, 0xB4211CFA,0x51B9,0x4A9F,0xAB,0x78,0xDB,0x99,0xB2,0xBB,0x67,0x8E); +typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8; + +DEFINE_GUID(IID_IDirect3DTexture8, 0xE4CDD575,0x2866,0x4F01,0xB1,0x2E,0x7E,0xEC,0xE1,0xEC,0x93,0x58); +typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8; + +DEFINE_GUID(IID_IDirect3DCubeTexture8, 0x3EE5B968,0x2ACA,0x4C34,0x8B,0xB5,0x7E,0x0C,0x3D,0x19,0xB7,0x50); +typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8; + +DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4B8AAAFA,0x140F,0x42BA,0x91,0x31,0x59,0x7E,0xAF,0xAA,0x2E,0xAD); +typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8; + +/***************************************************************************** + * IDirect3D8 interface + */ +#define INTERFACE IDirect3D8 +DECLARE_INTERFACE_(IDirect3D8,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3D8 methods ***/ + STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE; + STDMETHOD_(UINT,GetAdapterCount )(THIS) PURE; + STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE; + STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT Adapter) PURE; + STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, UINT Mode, D3DDISPLAYMODE * pMode) PURE; + STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE * pMode) PURE; + STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter, D3DDEVTYPE CheckType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL Windowed) PURE; + STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE; + STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType) PURE; + STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE; + STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS8 * pCaps) PURE; + STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT Adapter) PURE; + STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType,HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3D8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3D8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3D8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3D8 methods ***/ +#define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a) +#define IDirect3D8_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p) +#define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c) +#define IDirect3D8_GetAdapterModeCount(p,a) (p)->lpVtbl->GetAdapterModeCount(p,a) +#define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->lpVtbl->EnumAdapterModes(p,a,b,c) +#define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b) +#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e) +#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f) +#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e) +#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e) +#define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c) +#define IDirect3D8_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a) +#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f) +#else +/*** IUnknown methods ***/ +#define IDirect3D8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3D8_AddRef(p) (p)->AddRef() +#define IDirect3D8_Release(p) (p)->Release() +/*** IDirect3D8 methods ***/ +#define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a) +#define IDirect3D8_GetAdapterCount(p) (p)->GetAdapterCount() +#define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c) +#define IDirect3D8_GetAdapterModeCount(p,a) (p)->GetAdapterModeCount(a) +#define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->EnumAdapterModes(a,b,c) +#define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b) +#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e) +#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f) +#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->CheckDeviceMultiSampleType(a,b,c,d,e) +#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e) +#define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c) +#define IDirect3D8_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a) +#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f) +#endif + +/***************************************************************************** + * IDirect3DVolume8 interface + */ +#define INTERFACE IDirect3DVolume8 +DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DVolume8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE; + STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE; + STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD Flags) PURE; + STDMETHOD(UnlockBox)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVolume8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVolume8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVolume8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVolume8 methods ***/ +#define IDirect3DVolume8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DVolume8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DVolume8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b) +#define IDirect3DVolume8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#define IDirect3DVolume8_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c) +#define IDirect3DVolume8_UnlockBox(p) (p)->lpVtbl->UnlockBox(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DVolume8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVolume8_AddRef(p) (p)->AddRef() +#define IDirect3DVolume8_Release(p) (p)->Release() +/*** IDirect3DVolume8 methods ***/ +#define IDirect3DVolume8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DVolume8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DVolume8_GetContainer(p,a,b) (p)->GetContainer(a,b) +#define IDirect3DVolume8_GetDesc(p,a) (p)->GetDesc(a) +#define IDirect3DVolume8_LockBox(p,a,b,c) (p)->LockBox(a,b,c) +#define IDirect3DVolume8_UnlockBox(p) (p)->UnlockBox() +#endif + +/***************************************************************************** + * IDirect3DSwapChain8 interface + */ +#define INTERFACE IDirect3DSwapChain8 +DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DSwapChain8 methods ***/ + STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE; + STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DSwapChain8 methods ***/ +#define IDirect3DSwapChain8_Present(p,a,b,c) (p)->lpVtbl->Present(p,a,b,c) +#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c) +#else +/*** IUnknown methods ***/ +#define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DSwapChain8_AddRef(p) (p)->AddRef() +#define IDirect3DSwapChain8_Release(p) (p)->Release() +/*** IDirect3DSwapChain8 methods ***/ +#define IDirect3DSwapChain8_Present(p,a,b,c) (p)->Present(a,b,c) +#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c) +#endif + +/***************************************************************************** + * IDirect3DSurface8 interface + */ +#define INTERFACE IDirect3DSurface8 +DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DSurface8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void * pData,DWORD SizeOfData,DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData,DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE; + STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE; + STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD Flags) PURE; + STDMETHOD(UnlockRect)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DSurface8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DSurface8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DSurface8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DSurface8 methods ***/ +#define IDirect3DSurface8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DSurface8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DSurface8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b) +#define IDirect3DSurface8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#define IDirect3DSurface8_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c) +#define IDirect3DSurface8_UnlockRect(p) (p)->lpVtbl->UnlockRect(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DSurface8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DSurface8_AddRef(p) (p)->AddRef() +#define IDirect3DSurface8_Release(p) (p)->Release() +/*** IDirect3DSurface8 methods ***/ +#define IDirect3DSurface8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DSurface8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DSurface8_GetContainer(p,a,b) (p)->GetContainer(a,b) +#define IDirect3DSurface8_GetDesc(p,a) (p)->GetDesc(a) +#define IDirect3DSurface8_LockRect(p,a,b,c) (p)->LockRect(a,b,c) +#define IDirect3DSurface8_UnlockRect(p) (p)->UnlockRect() +#endif + +/***************************************************************************** + * IDirect3DResource8 interface + */ +#define INTERFACE IDirect3DResource8 +DECLARE_INTERFACE_(IDirect3DResource8,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DResource8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DResource8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DResource8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DResource8 methods ***/ +#define IDirect3DResource8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DResource8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DResource8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DResource8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DResource8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DResource8_GetType(p) (p)->lpVtbl->GetType(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DResource8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DResource8_AddRef(p) (p)->AddRef() +#define IDirect3DResource8_Release(p) (p)->Release() +/*** IDirect3DResource8 methods ***/ +#define IDirect3DResource8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DResource8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DResource8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DResource8_GetPriority(p) (p)->GetPriority() +#define IDirect3DResource8_PreLoad(p) (p)->PreLoad() +#define IDirect3DResource8_GetType(p) (p)->GetType() +#endif + +/***************************************************************************** + * IDirect3DVertexBuffer8 interface + */ +#define INTERFACE IDirect3DVertexBuffer8 +DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; + /*** IDirect3DVertexBuffer8 methods ***/ + STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE; + STDMETHOD(Unlock)(THIS) PURE; + STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC * pDesc) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVertexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVertexBuffer8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/ +#define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DVertexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DVertexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DVertexBuffer8_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DVertexBuffer8 methods ***/ +#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) +#define IDirect3DVertexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p) +#define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVertexBuffer8_AddRef(p) (p)->AddRef() +#define IDirect3DVertexBuffer8_Release(p) (p)->Release() +/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/ +#define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DVertexBuffer8_GetPriority(p) (p)->GetPriority() +#define IDirect3DVertexBuffer8_PreLoad(p) (p)->PreLoad() +#define IDirect3DVertexBuffer8_GetType(p) (p)->GetType() +/*** IDirect3DVertexBuffer8 methods ***/ +#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) +#define IDirect3DVertexBuffer8_Unlock(p) (p)->Unlock() +#define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->GetDesc(a) +#endif + +/***************************************************************************** + * IDirect3DIndexBuffer8 interface + */ +#define INTERFACE IDirect3DIndexBuffer8 +DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; + /*** IDirect3DIndexBuffer8 methods ***/ + STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE; + STDMETHOD(Unlock)(THIS) PURE; + STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DIndexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DIndexBuffer8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/ +#define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DIndexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DIndexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DIndexBuffer8_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DIndexBuffer8 methods ***/ +#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) +#define IDirect3DIndexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p) +#define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DIndexBuffer8_AddRef(p) (p)->AddRef() +#define IDirect3DIndexBuffer8_Release(p) (p)->Release() +/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/ +#define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DIndexBuffer8_GetPriority(p) (p)->GetPriority() +#define IDirect3DIndexBuffer8_PreLoad(p) (p)->PreLoad() +#define IDirect3DIndexBuffer8_GetType(p) (p)->GetType() +/*** IDirect3DIndexBuffer8 methods ***/ +#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) +#define IDirect3DIndexBuffer8_Unlock(p) (p)->Unlock() +#define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->GetDesc(a) +#endif + +/***************************************************************************** + * IDirect3DBaseTexture8 interface + */ +#define INTERFACE IDirect3DBaseTexture8 +DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; + /*** IDirect3DBaseTexture8 methods ***/ + STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD,GetLOD)(THIS) PURE; + STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DBaseTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DBaseTexture8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DBaseTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DBaseTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DBaseTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DBaseTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DBaseTexture8_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DBaseTexture8 methods ***/ +#define IDirect3DBaseTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DBaseTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DBaseTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DBaseTexture8_AddRef(p) (p)->AddRef() +#define IDirect3DBaseTexture8_Release(p) (p)->Release() +/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DBaseTexture8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DBaseTexture8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DBaseTexture8_GetPriority(p) (p)->GetPriority() +#define IDirect3DBaseTexture8_PreLoad(p) (p)->PreLoad() +#define IDirect3DBaseTexture8_GetType(p) (p)->GetType() +/*** IDirect3DBaseTexture8 methods ***/ +#define IDirect3DBaseTexture8_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DBaseTexture8_GetLOD(p) (p)->GetLOD() +#define IDirect3DBaseTexture8_GetLevelCount(p) (p)->GetLevelCount() +#endif + +/***************************************************************************** + * IDirect3DCubeTexture8 interface + */ +#define INTERFACE IDirect3DCubeTexture8 +DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; + /*** IDirect3DBaseTexture8 methods ***/ + STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD,GetLOD)(THIS) PURE; + STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE; + /*** IDirect3DCubeTexture8 methods ***/ + STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE; + STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE; + STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD Flags) PURE; + STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE; + STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType,CONST RECT * pDirtyRect) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DCubeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DCubeTexture8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DCubeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DCubeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DCubeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DCubeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DCubeTexture8_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/ +#define IDirect3DCubeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DCubeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DCubeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +/*** IDirect3DCubeTexture8 methods ***/ +#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) +#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c) +#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e) +#define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b) +#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DCubeTexture8_AddRef(p) (p)->AddRef() +#define IDirect3DCubeTexture8_Release(p) (p)->Release() +/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DCubeTexture8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DCubeTexture8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DCubeTexture8_GetPriority(p) (p)->GetPriority() +#define IDirect3DCubeTexture8_PreLoad(p) (p)->PreLoad() +#define IDirect3DCubeTexture8_GetType(p) (p)->GetType() +/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/ +#define IDirect3DCubeTexture8_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DCubeTexture8_GetLOD(p) (p)->GetLOD() +#define IDirect3DCubeTexture8_GetLevelCount(p) (p)->GetLevelCount() +/*** IDirect3DCubeTexture8 methods ***/ +#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) +#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c) +#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e) +#define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->UnlockRect(a,b) +#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b) +#endif + +/***************************************************************************** + * IDirect3DTexture8 interface + */ +#define INTERFACE IDirect3DTexture8 +DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; + /*** IDirect3DBaseTexture8 methods ***/ + STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD,GetLOD)(THIS) PURE; + STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE; + /*** IDirect3DTexture8 methods ***/ + STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE; + STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE; + STDMETHOD(LockRect)(THIS_ UINT Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD Flags) PURE; + STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE; + STDMETHOD(AddDirtyRect)(THIS_ CONST RECT * pDirtyRect) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DTexture8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DTexture8_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/ +#define IDirect3DTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +/*** IDirect3DTexture8 methods ***/ +#define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) +#define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b) +#define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d) +#define IDirect3DTexture8_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a) +#define IDirect3DTexture8_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DTexture8_AddRef(p) (p)->AddRef() +#define IDirect3DTexture8_Release(p) (p)->Release() +/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DTexture8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DTexture8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DTexture8_GetPriority(p) (p)->GetPriority() +#define IDirect3DTexture8_PreLoad(p) (p)->PreLoad() +#define IDirect3DTexture8_GetType(p) (p)->GetType() +/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/ +#define IDirect3DTexture8_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DTexture8_GetLOD(p) (p)->GetLOD() +#define IDirect3DTexture8_GetLevelCount(p) (p)->GetLevelCount() +/*** IDirect3DTexture8 methods ***/ +#define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) +#define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b) +#define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d) +#define IDirect3DTexture8_UnlockRect(p,a) (p)->UnlockRect(a) +#define IDirect3DTexture8_AddDirtyRect(p,a) (p)->AddDirtyRect(a) +#endif + +/***************************************************************************** + * IDirect3DVolumeTexture8 interface + */ +#define INTERFACE IDirect3DVolumeTexture8 +DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource8 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void * pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD,GetPriority)(THIS) PURE; + STDMETHOD_(void,PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE; + /*** IDirect3DBaseTexture8 methods ***/ + STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD,GetLOD)(THIS) PURE; + STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE; + /*** IDirect3DVolumeTexture8 methods ***/ + STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DVOLUME_DESC * pDesc) PURE; + STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,IDirect3DVolume8 ** ppVolumeLevel) PURE; + STDMETHOD(LockBox)(THIS_ UINT Level,D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox,DWORD Flags) PURE; + STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE; + STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX * pDirtyBox) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVolumeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVolumeTexture8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DVolumeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DVolumeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DVolumeTexture8_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/ +#define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DVolumeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +/*** IDirect3DVolumeTexture8 methods ***/ +#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) +#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b) +#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d) +#define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a) +#define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVolumeTexture8_AddRef(p) (p)->AddRef() +#define IDirect3DVolumeTexture8_Release(p) (p)->Release() +/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/ +#define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DVolumeTexture8_GetPriority(p) (p)->GetPriority() +#define IDirect3DVolumeTexture8_PreLoad(p) (p)->PreLoad() +#define IDirect3DVolumeTexture8_GetType(p) (p)->GetType() +/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/ +#define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DVolumeTexture8_GetLOD(p) (p)->GetLOD() +#define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->GetLevelCount() +/*** IDirect3DVolumeTexture8 methods ***/ +#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) +#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b) +#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d) +#define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->UnlockBox(a) +#define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->AddDirtyBox(a) +#endif + +/***************************************************************************** + * IDirect3DDevice8 interface + */ +#define INTERFACE IDirect3DDevice8 +DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DDevice8 methods ***/ + STDMETHOD(TestCooperativeLevel)(THIS) PURE; + STDMETHOD_(UINT,GetAvailableTextureMem)(THIS) PURE; + STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD Bytes) PURE; + STDMETHOD(GetDirect3D)(THIS_ IDirect3D8 ** ppD3D8) PURE; + STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS8 * pCaps) PURE; + STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE * pMode) PURE; + STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS * pParameters) PURE; + STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface8 * pCursorBitmap) PURE; + STDMETHOD_(void,SetCursorPosition)(THIS_ UINT XScreenSpace, UINT YScreenSpace,DWORD Flags) PURE; + STDMETHOD_(BOOL,ShowCursor)(THIS_ BOOL bShow) PURE; + STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE; + STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE; + STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect,CONST RECT * pDestRect,HWND hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE; + STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8 ** ppBackBuffer) PURE; + STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE; + STDMETHOD_(void,SetGammaRamp)(THIS_ DWORD Flags,CONST D3DGAMMARAMP * pRamp) PURE; + STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE; + STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture8 ** ppTexture) PURE; + STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE; + STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture8 ** ppCubeTexture) PURE; + STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer8 ** ppVertexBuffer) PURE; + STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer8 ** ppIndexBuffer) PURE; + STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,BOOL Lockable,IDirect3DSurface8 ** ppSurface) PURE; + STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,IDirect3DSurface8 ** ppSurface) PURE; + STDMETHOD(CreateImageSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,IDirect3DSurface8 ** ppSurface) PURE; + STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 * pSourceSurface,CONST RECT * pSourceRectsArray,UINT cRects,IDirect3DSurface8 * pDestinationSurface,CONST POINT * pDestPointsArray) PURE; + STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE; + STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE; + STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE; + STDMETHOD(GetRenderTarget)(THIS_ IDirect3DSurface8 ** ppRenderTarget) PURE; + STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE; + STDMETHOD(BeginScene)(THIS) PURE; + STDMETHOD(EndScene)(THIS) PURE; + STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3DRECT * pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) PURE; + STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX * pMatrix) PURE; + STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,D3DMATRIX * pMatrix) PURE; + STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX * pMatrix) PURE; + STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT8 * pViewport) PURE; + STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE; + STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL8 * pMaterial) PURE; + STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE; + STDMETHOD(SetLight)(THIS_ DWORD Index,CONST D3DLIGHT8 * pLight) PURE; + STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT8 * pLight) PURE; + STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable) PURE; + STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL * pEnable) PURE; + STDMETHOD(SetClipPlane)(THIS_ DWORD Index,CONST float * pPlane) PURE; + STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float * pPlane) PURE; + STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD Value) PURE; + STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD * pValue) PURE; + STDMETHOD(BeginStateBlock)(THIS) PURE; + STDMETHOD(EndStateBlock)(THIS_ DWORD * pToken) PURE; + STDMETHOD(ApplyStateBlock)(THIS_ DWORD Token) PURE; + STDMETHOD(CaptureStateBlock)(THIS_ DWORD Token) PURE; + STDMETHOD(DeleteStateBlock)(THIS_ DWORD Token) PURE; + STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,DWORD * pToken) PURE; + STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS8 * pClipStatus) PURE; + STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE; + STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 ** ppTexture) PURE; + STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 * pTexture) PURE; + STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD * pValue) PURE; + STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE; + STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE; + STDMETHOD(GetInfo)(THIS_ DWORD DevInfoID,void * pDevInfoStruct,DWORD DevInfoStructSize) PURE; + STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber,CONST PALETTEENTRY * pEntries) PURE; + STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY * pEntries) PURE; + STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE; + STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT * PaletteNumber) PURE; + STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE; + STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE; + STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void * pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE; + STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertexIndices,UINT PrimitiveCount,CONST void * pIndexData,D3DFORMAT IndexDataFormat,CONST void * pVertexStreamZeroData,UINT VertexStreamZeroStride) PURE; + STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD Flags) PURE; + STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD * pDeclaration,CONST DWORD * pFunction,DWORD * pHandle,DWORD Usage) PURE; + STDMETHOD(SetVertexShader)(THIS_ DWORD Handle) PURE; + STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE; + STDMETHOD(DeleteVertexShader)(THIS_ DWORD Handle) PURE; + STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD Register,CONST void * pConstantData,DWORD ConstantCount) PURE; + STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE; + STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE; + STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE; + STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 * pStreamData,UINT Stride) PURE; + STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE; + STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT BaseVertexIndex) PURE; + STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE; + STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD * pFunction,DWORD * pHandle) PURE; + STDMETHOD(SetPixelShader)(THIS_ DWORD Handle) PURE; + STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE; + STDMETHOD(DeletePixelShader)(THIS_ DWORD Handle) PURE; + STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD Register,CONST void * pConstantData,DWORD ConstantCount) PURE; + STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE; + STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE; + STDMETHOD(DrawRectPatch)(THIS_ UINT Handle,CONST float * pNumSegs,CONST D3DRECTPATCH_INFO * pRectPatchInfo) PURE; + STDMETHOD(DrawTriPatch)(THIS_ UINT Handle,CONST float * pNumSegs,CONST D3DTRIPATCH_INFO * pTriPatchInfo) PURE; + STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DDevice8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DDevice8_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DDevice8_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DDevice8 methods ***/ +#define IDirect3DDevice8_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) +#define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p) +#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->lpVtbl->ResourceManagerDiscardBytes(p,a) +#define IDirect3DDevice8_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) +#define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a) +#define IDirect3DDevice8_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a) +#define IDirect3DDevice8_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a) +#define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c) +#define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c) +#define IDirect3DDevice8_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a) +#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b) +#define IDirect3DDevice8_Reset(p,a) (p)->lpVtbl->Reset(p,a) +#define IDirect3DDevice8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d) +#define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c) +#define IDirect3DDevice8_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a) +#define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b) +#define IDirect3DDevice8_GetGammaRamp(p,a) (p)->lpVtbl->GetGammaRamp(p,a) +#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g) +#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f) +#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e) +#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e) +#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f) +#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e) +#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->lpVtbl->CreateImageSurface(p,a,b,c,d) +#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->lpVtbl->CopyRects(p,a,b,c,d,e) +#define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b) +#define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->lpVtbl->GetFrontBuffer(p,a) +#define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) +#define IDirect3DDevice8_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a) +#define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a) +#define IDirect3DDevice8_BeginScene(p) (p)->lpVtbl->BeginScene(p) +#define IDirect3DDevice8_EndScene(p) (p)->lpVtbl->EndScene(p) +#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f) +#define IDirect3DDevice8_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) +#define IDirect3DDevice8_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) +#define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) +#define IDirect3DDevice8_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) +#define IDirect3DDevice8_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) +#define IDirect3DDevice8_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) +#define IDirect3DDevice8_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) +#define IDirect3DDevice8_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b) +#define IDirect3DDevice8_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b) +#define IDirect3DDevice8_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b) +#define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b) +#define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b) +#define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b) +#define IDirect3DDevice8_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) +#define IDirect3DDevice8_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) +#define IDirect3DDevice8_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p) +#define IDirect3DDevice8_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a) +#define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a) +#define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a) +#define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a) +#define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b) +#define IDirect3DDevice8_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) +#define IDirect3DDevice8_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) +#define IDirect3DDevice8_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b) +#define IDirect3DDevice8_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b) +#define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c) +#define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c) +#define IDirect3DDevice8_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a) +#define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c) +#define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b) +#define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b) +#define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a) +#define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a) +#define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c) +#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e) +#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d) +#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->lpVtbl->processVertices(p,a,b,c,d,e) +#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->lpVtbl->CreateVertexShader(p,a,b,c,d) +#define IDirect3DDevice8_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a) +#define IDirect3DDevice8_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a) +#define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->lpVtbl->DeleteVertexShader(p,a) +#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c) +#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c) +#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c) +#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c) +#define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->lpVtbl->SetStreamSource(p,a,b,c) +#define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->lpVtbl->GetStreamSource(p,a,b,c) +#define IDirect3DDevice8_SetIndices(p,a,b) (p)->lpVtbl->SetIndices(p,a,b) +#define IDirect3DDevice8_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b) +#define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b) +#define IDirect3DDevice8_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a) +#define IDirect3DDevice8_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a) +#define IDirect3DDevice8_DeletePixelShader(p,a) (p)->lpVtbl->DeletePixelShader(p,a) +#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c) +#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c) +#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c) +#define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c) +#define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c) +#define IDirect3DDevice8_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DDevice8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DDevice8_AddRef(p) (p)->AddRef() +#define IDirect3DDevice8_Release(p) (p)->Release() +/*** IDirect3DDevice8 methods ***/ +#define IDirect3DDevice8_TestCooperativeLevel(p) (p)->TestCooperativeLevel() +#define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem() +#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->ResourceManagerDiscardBytes(a) +#define IDirect3DDevice8_GetDirect3D(p,a) (p)->GetDirect3D(a) +#define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a) +#define IDirect3DDevice8_GetDisplayMode(p,a) (p)->GetDisplayMode(a) +#define IDirect3DDevice8_GetCreationParameters(p,a) (p)->GetCreationParameters(a) +#define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c) +#define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c) +#define IDirect3DDevice8_ShowCursor(p,a) (p)->ShowCursor(a) +#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b) +#define IDirect3DDevice8_Reset(p,a) (p)->Reset(a) +#define IDirect3DDevice8_Present(p,a,b,c,d) (p)->Present(a,b,c,d) +#define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c) +#define IDirect3DDevice8_GetRasterStatus(p,a) (p)->GetRasterStatus(a) +#define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->SetGammaRamp(a,b) +#define IDirect3DDevice8_GetGammaRamp(p,a) (p)->GetGammaRamp(a) +#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->CreateTexture(a,b,c,d,e,f,g) +#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h) +#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->CreateCubeTexture(a,b,c,d,e,f) +#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->CreateVertexBuffer(a,b,c,d,e) +#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->CreateIndexBuffer(a,b,c,d,e) +#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->CreateRenderTarget(a,b,c,d,e,f) +#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->CreateDepthStencilSurface(a,b,c,d,e) +#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->CreateImageSurface(a,b,c,d) +#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->CopyRects(a,b,c,d,e) +#define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b) +#define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->GetFrontBuffer(a) +#define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) +#define IDirect3DDevice8_GetRenderTarget(p,a) (p)->GetRenderTarget(a) +#define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a) +#define IDirect3DDevice8_BeginScene(p) (p)->BeginScene() +#define IDirect3DDevice8_EndScene(p) (p)->EndScene() +#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f) +#define IDirect3DDevice8_SetTransform(p,a,b) (p)->SetTransform(a,b) +#define IDirect3DDevice8_GetTransform(p,a,b) (p)->GetTransform(a,b) +#define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) +#define IDirect3DDevice8_SetViewport(p,a) (p)->SetViewport(a) +#define IDirect3DDevice8_GetViewport(p,a) (p)->GetViewport(a) +#define IDirect3DDevice8_SetMaterial(p,a) (p)->SetMaterial(a) +#define IDirect3DDevice8_GetMaterial(p,a) (p)->GetMaterial(a) +#define IDirect3DDevice8_SetLight(p,a,b) (p)->SetLight(a,b) +#define IDirect3DDevice8_GetLight(p,a,b) (p)->GetLight(a,b) +#define IDirect3DDevice8_LightEnable(p,a,b) (p)->LightEnable(a,b) +#define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b) +#define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b) +#define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b) +#define IDirect3DDevice8_SetRenderState(p,a,b) (p)->SetRenderState(a,b) +#define IDirect3DDevice8_GetRenderState(p,a,b) (p)->GetRenderState(a,b) +#define IDirect3DDevice8_BeginStateBlock(p) (p)->BeginStateBlock() +#define IDirect3DDevice8_EndStateBlock(p,a) (p)->EndStateBlock(a) +#define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->ApplyStateBlock(a) +#define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->CaptureStateBlock(a) +#define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->DeleteStateBlock(a) +#define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b) +#define IDirect3DDevice8_SetClipStatus(p,a) (p)->SetClipStatus(a) +#define IDirect3DDevice8_GetClipStatus(p,a) (p)->GetClipStatus(a) +#define IDirect3DDevice8_GetTexture(p,a,b) (p)->GetTexture(a,b) +#define IDirect3DDevice8_SetTexture(p,a,b) (p)->SetTexture(a,b) +#define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c) +#define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c) +#define IDirect3DDevice8_ValidateDevice(p,a) (p)->ValidateDevice(a) +#define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->GetInfo(a,b,c) +#define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b) +#define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b) +#define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a) +#define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a) +#define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c) +#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->DrawIndexedPrimitive(a,b,c,d,e) +#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d) +#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h) +#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->processVertices(a,b,c,d,e) +#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->CreateVertexShader(a,b,c,d) +#define IDirect3DDevice8_SetVertexShader(p,a) (p)->SetVertexShader(a) +#define IDirect3DDevice8_GetVertexShader(p,a) (p)->GetVertexShader(a) +#define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->DeleteVertexShader(a) +#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->SetVertexShaderConstant(a,b,c) +#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->GetVertexShaderConstant(a,b,c) +#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->GetVertexShaderDeclaration(a,b,c) +#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->GetVertexShaderFunction(a,b,c) +#define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->SetStreamSource(a,b,c) +#define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->GetStreamSource(a,b,c) +#define IDirect3DDevice8_SetIndices(p,a,b) (p)->SetIndices(a,b) +#define IDirect3DDevice8_GetIndices(p,a,b) (p)->GetIndices(a,b) +#define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b) +#define IDirect3DDevice8_SetPixelShader(p,a) (p)->SetPixelShader(a) +#define IDirect3DDevice8_GetPixelShader(p,a) (p)->GetPixelShader(a) +#define IDirect3DDevice8_DeletePixelShader(p,a) (p)->DeletePixelShader(a) +#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->SetPixelShaderConstant(a,b,c) +#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->GetPixelShaderConstant(a,b,c) +#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->GetPixelShaderFunction(a,b,c) +#define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c) +#define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c) +#define IDirect3DDevice8_DeletePatch(p,a) (p)->DeletePatch(a) +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* defined(__cplusplus) */ + +/* Define the main entrypoint as well */ +IDirect3D8* WINAPI Direct3DCreate8(UINT SDKVersion); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* defined(__cplusplus) */ + +#endif /* __WINE_D3D8_H */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/d3d9.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/d3d9.h new file mode 100644 index 00000000..0e139478 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/d3d9.h @@ -0,0 +1,2047 @@ +/* + * Copyright (C) 2002-2003 Jason Edmeades + * Raphael Junqueira + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_D3D9_H +#define __WINE_D3D9_H + +#ifndef DIRECT3D_VERSION +#define DIRECT3D_VERSION 0x0900 +#endif + + + +#ifndef VBOX_WINE_WITHOUT_LIBWINE +#include <stdlib.h> + +#define COM_NO_WINDOWS_H +#include <objbase.h> + +# ifndef __WINESRC__ +# include <windows.h> +# endif +#endif +#include <d3d9types.h> +#include <d3d9caps.h> +#ifdef VBOX_WINE_WITHOUT_LIBWINE +# include <d3dhal.h> +# include <d3dtypes.h> +# include <d3dcaps.h> +#endif + +/***************************************************************************** + * Behavior Flags for IDirect3D8::CreateDevice + */ +#define D3DCREATE_FPU_PRESERVE 0x00000002L +#define D3DCREATE_MULTITHREADED 0x00000004L +#define D3DCREATE_PUREDEVICE 0x00000010L +#define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L +#define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L +#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L +#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100L +#define D3DCREATE_ADAPTERGROUP_DEVICE 0x00000200L + +/***************************************************************************** + * Flags for SetPrivateData + */ +#define D3DSPD_IUNKNOWN 0x00000001L + + +/***************************************************************************** + * #defines and error codes + */ +#define D3D_SDK_VERSION 32 +#define D3DADAPTER_DEFAULT 0 +#define D3DENUM_NO_WHQL_LEVEL 0x00000002L +#define D3DPRESENT_BACK_BUFFERS_MAX 3L +#define D3DSGR_NO_CALIBRATION 0x00000000L +#define D3DSGR_CALIBRATE 0x00000001L + +#define _FACD3D 0x876 +#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code ) +#define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code ) + +/***************************************************************************** + * Direct3D Errors + */ +#define D3D_OK S_OK +#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072) +#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073) +#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074) +#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075) +#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076) +#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077) +#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078) +#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079) +#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081) +#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082) +#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086) +#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087) +#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150) +#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151) +#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152) +#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153) +#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154) +#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380) +#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155) +#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156) +#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157) +#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540) +#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159) + + +/***************************************************************************** + * Predeclare the interfaces + */ +DEFINE_GUID(IID_IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C); +typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9; + +DEFINE_GUID(IID_IDirect3D9Ex, 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D); +typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX; + +DEFINE_GUID(IID_IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb); +typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9; + +DEFINE_GUID(IID_IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a); +typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX; + +DEFINE_GUID(IID_IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4); +typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9; + +DEFINE_GUID(IID_IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3); +typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9; + +DEFINE_GUID(IID_IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1); +typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9; + +DEFINE_GUID(IID_IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b); +typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9; + +DEFINE_GUID(IID_IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3); +typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX; + +DEFINE_GUID(IID_IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b); +typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9; + +DEFINE_GUID(IID_IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35); +typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9; + +DEFINE_GUID(IID_IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce); +typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9; + +DEFINE_GUID(IID_IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5); +typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9; + +DEFINE_GUID(IID_IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f); +typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9; + +DEFINE_GUID(IID_IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6); +typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9; + +DEFINE_GUID(IID_IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46); +typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9; + +DEFINE_GUID(IID_IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36); +typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9; + +DEFINE_GUID(IID_IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89); +typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9; + +DEFINE_GUID(IID_IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b); +typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9; + +DEFINE_GUID(IID_IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc); +typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9; + +/***************************************************************************** + * IDirect3D9 interface + */ +#define INTERFACE IDirect3D9 +DECLARE_INTERFACE_(IDirect3D9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3D9 methods ***/ + STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE; + STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE; + STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE; + STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE; + STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE; + STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE; + STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE; + STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE; + STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE; + STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE; + STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE; + STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3D9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3D9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3D9 methods ***/ +#define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a) +#define IDirect3D9_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p) +#define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c) +#define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b) +#define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d) +#define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b) +#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e) +#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f) +#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f) +#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e) +#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d) +#define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c) +#define IDirect3D9_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a) +#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f) +#else +/*** IUnknown methods ***/ +#define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3D9_AddRef(p) (p)->AddRef() +#define IDirect3D9_Release(p) (p)->Release() +/*** IDirect3D9 methods ***/ +#define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a) +#define IDirect3D9_GetAdapterCount(p) (p)->GetAdapterCount() +#define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c) +#define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b) +#define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d) +#define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b) +#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e) +#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f) +#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f) +#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e) +#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d) +#define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c) +#define IDirect3D9_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a) +#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f) +#endif + +/***************************************************************************** + * IDirect3D9Ex interface + */ +#define INTERFACE IDirect3D9Ex +DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3D9 methods ***/ + + /* Note: Microsoft's d3d9.h does not declare IDirect3D9Ex::RegisterSoftwareDevice . This would mean that + * the offsets of the other methods in the Vtable change too. This is wrong. In Microsoft's + * d3d9.dll, the offsets for the other functions are still compatible with IDirect3D9. + * This is probably because even in MS's header IDirect3D9Ex inherits from IDirect3D9, which makes the + * C++ inferface compatible, and nobody uses the C interface in Windows world. + */ + STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE; + + STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE; + STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE; + STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE; + STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE; + STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE; + STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE; + STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE; + STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE; + STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE; + STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE; + STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE; + /*** IDirect3D9Ex methods ***/ + STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter) PURE; + STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode) PURE; + STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation); + STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE; + STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3D9Ex_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3D9Ex_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3D9 methods ***/ +#define IDirect3D9Ex_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a) +#define IDirect3D9Ex_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p) +#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c) +#define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b) +#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d) +#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b) +#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e) +#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f) +#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f) +#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e) +#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d) +#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c) +#define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a) +#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f) +/*** IDirect3D9Ex methods ***/ +#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b) (p)->lpVtbl->GetAdapterModeCountEx(p,a,b) +#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModesEx(p,a,b,c,d) +#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetAdapterDisplayModeEx(p,a,b,c) +#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d,e,f,g) +#define IDirect3D9Ex_GetAdapterLUID(p,a,b) (p)->lpVtbl->GetAdapterLUID(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3D9Ex_AddRef(p) (p)->AddRef() +#define IDirect3D9Ex_Release(p) (p)->Release() +/*** IDirect3D9 methods ***/ +#define IDirect3D9Ex_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a) +#define IDirect3D9Ex_GetAdapterCount(p) (p)->GetAdapterCount() +#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c) +#define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b) +#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d) +#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b) +#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e) +#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f) +#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f) +#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e) +#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d) +#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c) +#define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a) +#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f) +#endif + +/***************************************************************************** + * IDirect3DVolume9 interface + */ +#define INTERFACE IDirect3DVolume9 +DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DVolume9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE; + STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE; + STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE; + STDMETHOD(UnlockBox)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVolume9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVolume9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVolume9 methods ***/ +#define IDirect3DVolume9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DVolume9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DVolume9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b) +#define IDirect3DVolume9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#define IDirect3DVolume9_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c) +#define IDirect3DVolume9_UnlockBox(p) (p)->lpVtbl->UnlockBox(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVolume9_AddRef(p) (p)->AddRef() +#define IDirect3DVolume9_Release(p) (p)->Release() +/*** IDirect3DVolume9 methods ***/ +#define IDirect3DVolume9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DVolume9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DVolume9_GetContainer(p,a,b) (p)->GetContainer(a,b) +#define IDirect3DVolume9_GetDesc(p,a) (p)->GetDesc(a) +#define IDirect3DVolume9_LockBox(p,a,b,c) (p)->LockBox(a,b,c) +#define IDirect3DVolume9_UnlockBox(p) (p)->UnlockBox() +#endif + +/***************************************************************************** + * IDirect3DSwapChain9 interface + */ +#define INTERFACE IDirect3DSwapChain9 +DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DSwapChain9 methods ***/ + STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion, DWORD dwFlags) PURE; + STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9* pDestSurface) PURE; + STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9** ppBackBuffer) PURE; + STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE; + STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DSwapChain9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DSwapChain9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DSwapChain9 methods ***/ +#define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e) +#define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a) +#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c) +#define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a) +#define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a) +#define IDirect3DSwapChain9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DSwapChain9_AddRef(p) (p)->AddRef() +#define IDirect3DSwapChain9_Release(p) (p)->Release() +/*** IDirect3DSwapChain9 methods ***/ +#define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e) +#define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a) +#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c) +#define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->GetRasterStatus(a) +#define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->GetDisplayMode(a) +#define IDirect3DSwapChain9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->GetPresentParameters(a) +#endif + +/***************************************************************************** + * IDirect3DResource9 interface + */ +#define INTERFACE IDirect3DResource9 +DECLARE_INTERFACE_(IDirect3DResource9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DResource9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DResource9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DResource9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DResource9 methods ***/ +#define IDirect3DResource9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DResource9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DResource9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DResource9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DResource9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DResource9_GetType(p) (p)->lpVtbl->GetType(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DResource9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DResource9_AddRef(p) (p)->AddRef() +#define IDirect3DResource9_Release(p) (p)->Release() +/*** IDirect3DResource9 methods ***/ +#define IDirect3DResource9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DResource9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DResource9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DResource9_GetPriority(p) (p)->GetPriority() +#define IDirect3DResource9_PreLoad(p) (p)->PreLoad() +#define IDirect3DResource9_GetType(p) (p)->GetType() +#endif + +/***************************************************************************** + * IDirect3DSurface9 interface + */ +#define INTERFACE IDirect3DSurface9 +DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DSurface9 methods ***/ + STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE; + STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE; + STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE; + STDMETHOD(UnlockRect)(THIS) PURE; + STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE; + STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DSurface9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DSurface9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/ +#define IDirect3DSurface9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DSurface9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DSurface9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DSurface9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DSurface9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DSurface9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DSurface9 methods ***/ +#define IDirect3DSurface9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b) +#define IDirect3DSurface9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#define IDirect3DSurface9_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c) +#define IDirect3DSurface9_UnlockRect(p) (p)->lpVtbl->UnlockRect(p) +#define IDirect3DSurface9_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) +#define IDirect3DSurface9_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DSurface9_AddRef(p) (p)->AddRef() +#define IDirect3DSurface9_Release(p) (p)->Release() +/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/ +#define IDirect3DSurface9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DSurface9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DSurface9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DSurface9_GetPriority(p) (p)->GetPriority() +#define IDirect3DSurface9_PreLoad(p) (p)->PreLoad() +#define IDirect3DSurface9_GetType(p) (p)->GetType() +/*** IDirect3DSurface9 methods ***/ +#define IDirect3DSurface9_GetContainer(p,a,b) (p)->GetContainer(a,b) +#define IDirect3DSurface9_GetDesc(p,a) (p)->GetDesc(a) +#define IDirect3DSurface9_LockRect(p,a,b,c) (p)->LockRect(a,b,c) +#define IDirect3DSurface9_UnlockRect(p) (p)->UnlockRect() +#define IDirect3DSurface9_GetDC(p,a) (p)->GetDC(a) +#define IDirect3DSurface9_ReleaseDC(p,a) (p)->ReleaseDC(a) +#endif + +/***************************************************************************** + * IDirect3DVertexBuffer9 interface + */ +#define INTERFACE IDirect3DVertexBuffer9 +DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DVertexBuffer9 methods ***/ + STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE; + STDMETHOD(Unlock)(THIS) PURE; + STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC* pDesc) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVertexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVertexBuffer9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/ +#define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DVertexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DVertexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DVertexBuffer9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DVertexBuffer9 methods ***/ +#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) +#define IDirect3DVertexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p) +#define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVertexBuffer9_AddRef(p) (p)->AddRef() +#define IDirect3DVertexBuffer9_Release(p) (p)->Release() +/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/ +#define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DVertexBuffer9_GetPriority(p) (p)->GetPriority() +#define IDirect3DVertexBuffer9_PreLoad(p) (p)->PreLoad() +#define IDirect3DVertexBuffer9_GetType(p) (p)->GetType() +/*** IDirect3DVertexBuffer9 methods ***/ +#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) +#define IDirect3DVertexBuffer9_Unlock(p) (p)->Unlock() +#define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->GetDesc(a) +#endif + +/***************************************************************************** + * IDirect3DIndexBuffer9 interface + */ +#define INTERFACE IDirect3DIndexBuffer9 +DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DIndexBuffer9 methods ***/ + STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE; + STDMETHOD(Unlock)(THIS) PURE; + STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC* pDesc) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DIndexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DIndexBuffer9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/ +#define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DIndexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DIndexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DIndexBuffer9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DIndexBuffer9 methods ***/ +#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) +#define IDirect3DIndexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p) +#define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DIndexBuffer9_AddRef(p) (p)->AddRef() +#define IDirect3DIndexBuffer9_Release(p) (p)->Release() +/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/ +#define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DIndexBuffer9_GetPriority(p) (p)->GetPriority() +#define IDirect3DIndexBuffer9_PreLoad(p) (p)->PreLoad() +#define IDirect3DIndexBuffer9_GetType(p) (p)->GetType() +/*** IDirect3DIndexBuffer9 methods ***/ +#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) +#define IDirect3DIndexBuffer9_Unlock(p) (p)->Unlock() +#define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->GetDesc(a) +#endif + +/***************************************************************************** + * IDirect3DBaseTexture9 interface + */ +#define INTERFACE IDirect3DBaseTexture9 +DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DBaseTexture9 methods ***/ + STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD, GetLOD)(THIS) PURE; + STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; + STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE; + STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE; + STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DBaseTexture9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DBaseTexture9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DBaseTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DBaseTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DBaseTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DBaseTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DBaseTexture9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DBaseTexture9 methods ***/ +#define IDirect3DBaseTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DBaseTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DBaseTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a) +#define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p) +#define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DBaseTexture9_AddRef(p) (p)->AddRef() +#define IDirect3DBaseTexture9_Release(p) (p)->Release() +/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DBaseTexture9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DBaseTexture9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DBaseTexture9_GetPriority(p) (p)->GetPriority() +#define IDirect3DBaseTexture9_PreLoad(p) (p)->PreLoad() +#define IDirect3DBaseTexture9_GetType(p) (p)->GetType() +/*** IDirect3DBaseTexture9 methods ***/ +#define IDirect3DBaseTexture9_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DBaseTexture9_GetLOD(p) (p)->GetLOD() +#define IDirect3DBaseTexture9_GetLevelCount(p) (p)->GetLevelCount() +#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a) +#define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType() +#define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels() +#endif + +/***************************************************************************** + * IDirect3DCubeTexture9 interface + */ +#define INTERFACE IDirect3DCubeTexture9 +DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DBaseTexture9 methods ***/ + STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD, GetLOD)(THIS) PURE; + STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; + STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE; + STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE; + STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE; + /*** IDirect3DCubeTexture9 methods ***/ + STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE; + STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE; + STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE; + STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE; + STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DCubeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DCubeTexture9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DCubeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DCubeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DCubeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DCubeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DCubeTexture9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/ +#define IDirect3DCubeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DCubeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DCubeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a) +#define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p) +#define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p) +/*** IDirect3DCubeTexture9 methods ***/ +#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) +#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c) +#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e) +#define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b) +#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DCubeTexture9_AddRef(p) (p)->AddRef() +#define IDirect3DCubeTexture9_Release(p) (p)->Release() +/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DCubeTexture9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DCubeTexture9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DCubeTexture9_GetPriority(p) (p)->GetPriority() +#define IDirect3DCubeTexture9_PreLoad(p) (p)->PreLoad() +#define IDirect3DCubeTexture9_GetType(p) (p)->GetType() +/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/ +#define IDirect3DCubeTexture9_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DCubeTexture9_GetLOD(p) (p)->GetLOD() +#define IDirect3DCubeTexture9_GetLevelCount(p) (p)->GetLevelCount() +#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a) +#define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType() +#define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels() +/*** IDirect3DCubeTexture9 methods ***/ +#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) +#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c) +#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e) +#define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->UnlockRect(a,b) +#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b) +#endif + +/***************************************************************************** + * IDirect3DTexture9 interface + */ +#define INTERFACE IDirect3DTexture9 +DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DBaseTexture9 methods ***/ + STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD, GetLOD)(THIS) PURE; + STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; + STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE; + STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE; + STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE; + /*** IDirect3DTexture9 methods ***/ + STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE; + STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE; + STDMETHOD(LockRect)(THIS_ UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE; + STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE; + STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DTexture9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DTexture9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DTexture9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/ +#define IDirect3DTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +#define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a) +#define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p) +#define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p) +/*** IDirect3DTexture9 methods ***/ +#define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) +#define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b) +#define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d) +#define IDirect3DTexture9_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a) +#define IDirect3DTexture9_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DTexture9_AddRef(p) (p)->AddRef() +#define IDirect3DTexture9_Release(p) (p)->Release() +/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DTexture9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DTexture9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DTexture9_GetPriority(p) (p)->GetPriority() +#define IDirect3DTexture9_PreLoad(p) (p)->PreLoad() +#define IDirect3DTexture9_GetType(p) (p)->GetType() +/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/ +#define IDirect3DTexture9_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DTexture9_GetLOD(p) (p)->GetLOD() +#define IDirect3DTexture9_GetLevelCount(p) (p)->GetLevelCount() +#define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a) +#define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType() +#define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels() +/*** IDirect3DTexture9 methods ***/ +#define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) +#define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b) +#define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d) +#define IDirect3DTexture9_UnlockRect(p,a) (p)->UnlockRect(a) +#define IDirect3DTexture9_AddDirtyRect(p,a) (p)->AddDirtyRect(a) +#endif + +/***************************************************************************** + * IDirect3DVolumeTexture9 interface + */ +#define INTERFACE IDirect3DVolumeTexture9 +DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DResource9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE; + STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE; + STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE; + STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE; + STDMETHOD_(DWORD, GetPriority)(THIS) PURE; + STDMETHOD_(void, PreLoad)(THIS) PURE; + STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE; + /*** IDirect3DBaseTexture9 methods ***/ + STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE; + STDMETHOD_(DWORD, GetLOD)(THIS) PURE; + STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE; + STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE; + STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE; + STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE; + /*** IDirect3DVolumeTexture9 methods ***/ + STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE; + STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE; + STDMETHOD(LockBox)(THIS_ UINT Level, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE; + STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE; + STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) +#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) +#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) +#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p) +#define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p) +#define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p) +/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/ +#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) +#define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p) +#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p) +#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a) +#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p) +#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p) +/*** IDirect3DVolumeTexture9 methods ***/ +#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b) +#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b) +#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d) +#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a) +#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a) +#else +/*** IUnknown methods ***/ +#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef() +#define IDirect3DVolumeTexture9_Release(p) (p)->Release() +/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/ +#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) +#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) +#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a) +#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a) +#define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority() +#define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad() +#define IDirect3DVolumeTexture9_GetType(p) (p)->GetType() +/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/ +#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a) +#define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD() +#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount() +#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a) +#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType() +#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels() +/*** IDirect3DVolumeTexture9 methods ***/ +#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b) +#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b) +#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d) +#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a) +#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a) +#endif + +/***************************************************************************** + * IDirect3DVertexDeclaration9 interface + */ +#define INTERFACE IDirect3DVertexDeclaration9 +DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DVertexDeclaration9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*, UINT* pNumElements) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVertexDeclaration9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVertexDeclaration9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVertexShader9 methods ***/ +#define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->lpVtbl->GetDeclaration(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVertexDeclaration9_AddRef(p) (p)->AddRef() +#define IDirect3DVertexDeclaration9_Release(p) (p)->Release() +/*** IDirect3DVertexShader9 methods ***/ +#define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->GetDeclaration(a,b) +#endif + +/***************************************************************************** + * IDirect3DVertexShader9 interface + */ +#define INTERFACE IDirect3DVertexShader9 +DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DVertexShader9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DVertexShader9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DVertexShader9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DVertexShader9 methods ***/ +#define IDirect3DVertexShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DVertexShader9_AddRef(p) (p)->AddRef() +#define IDirect3DVertexShader9_Release(p) (p)->Release() +/*** IDirect3DVertexShader9 methods ***/ +#define IDirect3DVertexShader9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->GetFunction(a,b) +#endif + +/***************************************************************************** + * IDirect3DPixelShader9 interface + */ +#define INTERFACE IDirect3DPixelShader9 +DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DPixelShader9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DPixelShader9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DPixelShader9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DPixelShader9 methods ***/ +#define IDirect3DPixelShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DPixelShader9_AddRef(p) (p)->AddRef() +#define IDirect3DPixelShader9_Release(p) (p)->Release() +/*** IDirect3DPixelShader9 methods ***/ +#define IDirect3DPixelShader9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->GetFunction(a,b) +#endif + +/***************************************************************************** + * IDirect3DStateBlock9 interface + */ +#define INTERFACE IDirect3DStateBlock9 +DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DStateBlock9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD(Capture)(THIS) PURE; + STDMETHOD(Apply)(THIS) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DStateBlock9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DStateBlock9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DStateBlock9 methods ***/ +#define IDirect3DStateBlock9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DStateBlock9_Capture(p) (p)->lpVtbl->Capture(p) +#define IDirect3DStateBlock9_Apply(p) (p)->lpVtbl->Apply(p) +#else +/*** IUnknown methods ***/ +#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DStateBlock9_AddRef(p) (p)->AddRef() +#define IDirect3DStateBlock9_Release(p) (p)->Release() +/*** IDirect3DStateBlock9 methods ***/ +#define IDirect3DStateBlock9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DStateBlock9_Capture(p) (p)->Capture() +#define IDirect3DStateBlock9_Apply(p) (p)->Apply() +#endif + +/***************************************************************************** + * IDirect3DQuery9 interface + */ +#define INTERFACE IDirect3DQuery9 +DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DQuery9 methods ***/ + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE; + STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE; + STDMETHOD_(DWORD, GetDataSize)(THIS) PURE; + STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE; + STDMETHOD(GetData)(THIS_ void* pData, DWORD dwSize, DWORD dwGetDataFlags) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DQuery9 ***/ +#define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a) +#define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p) +#define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p) +#define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a) +#define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c) +#else +/*** IUnknown methods ***/ +#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DQuery9_AddRef(p) (p)->AddRef() +#define IDirect3DQuery9_Release(p) (p)->Release() +/*** IDirect3DQuery9 ***/ +#define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a) +#define IDirect3DQuery9_GetType(p) (p)->GetType() +#define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize() +#define IDirect3DQuery9_Issue(p,a) (p)->Issue(a) +#define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c) +#endif + +/***************************************************************************** + * IDirect3DDevice9 interface + */ +#define INTERFACE IDirect3DDevice9 +DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DDevice9 methods ***/ + STDMETHOD(TestCooperativeLevel)(THIS) PURE; + STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE; + STDMETHOD(EvictManagedResources)(THIS) PURE; + STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE; + STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE; + STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE; + STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE; + STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE; + STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE; + STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE; + STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE; + STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE; + STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE; + STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE; + STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE; + STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE; + STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE; + STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE; + STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE; + STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE; + STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE; + STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE; + STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE; + STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE; + STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE; + STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE; + STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE; + STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE; + STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE; + STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE; + STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE; + STDMETHOD(BeginScene)(THIS) PURE; + STDMETHOD(EndScene)(THIS) PURE; + STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE; + STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE; + STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE; + STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE; + STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE; + STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE; + STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE; + STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE; + STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE; + STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE; + STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE; + STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE; + STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE; + STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE; + STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE; + STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE; + STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE; + STDMETHOD(BeginStateBlock)(THIS) PURE; + STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE; + STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE; + STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE; + STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE; + STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE; + STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE; + STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE; + STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE; + STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE; + STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE; + STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE; + STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE; + STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE; + STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE; + STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE; + STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE; + STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE; + STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE; + STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE; + STDMETHOD_(float, GetNPatchMode)(THIS) PURE; + STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE; + STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE; + STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE; + STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE; + STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE; + STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE; + STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE; + STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE; + STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE; + STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE; + STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE; + STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE; + STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE; + STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE; + STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE; + STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE; + STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE; + STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE; + STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE; + STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE; + STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE; + STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE; + STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE; + STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE; + STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE; + STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DDevice9_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DDevice9_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DDevice9 methods ***/ +#define IDirect3DDevice9_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) +#define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p) +#define IDirect3DDevice9_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p) +#define IDirect3DDevice9_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) +#define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a) +#define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b) +#define IDirect3DDevice9_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a) +#define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c) +#define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c) +#define IDirect3DDevice9_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a) +#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b) +#define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b) +#define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p) +#define IDirect3DDevice9_Reset(p,a) (p)->lpVtbl->Reset(p,a) +#define IDirect3DDevice9_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d) +#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d) +#define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b) +#define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a) +#define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c) +#define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b) +#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g) +#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f) +#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f) +#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d) +#define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b) +#define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b) +#define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b) +#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e) +#define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c) +#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f) +#define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) +#define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b) +#define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a) +#define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a) +#define IDirect3DDevice9_BeginScene(p) (p)->lpVtbl->BeginScene(p) +#define IDirect3DDevice9_EndScene(p) (p)->lpVtbl->EndScene(p) +#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f) +#define IDirect3DDevice9_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) +#define IDirect3DDevice9_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) +#define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) +#define IDirect3DDevice9_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) +#define IDirect3DDevice9_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) +#define IDirect3DDevice9_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) +#define IDirect3DDevice9_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) +#define IDirect3DDevice9_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b) +#define IDirect3DDevice9_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b) +#define IDirect3DDevice9_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b) +#define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b) +#define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b) +#define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b) +#define IDirect3DDevice9_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) +#define IDirect3DDevice9_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) +#define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b) +#define IDirect3DDevice9_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p) +#define IDirect3DDevice9_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a) +#define IDirect3DDevice9_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) +#define IDirect3DDevice9_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) +#define IDirect3DDevice9_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b) +#define IDirect3DDevice9_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b) +#define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c) +#define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c) +#define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c) +#define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c) +#define IDirect3DDevice9_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a) +#define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b) +#define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b) +#define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a) +#define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a) +#define IDirect3DDevice9_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a) +#define IDirect3DDevice9_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a) +#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a) +#define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p) +#define IDirect3DDevice9_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a) +#define IDirect3DDevice9_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p) +#define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c) +#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f) +#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d) +#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f) +#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b) +#define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a) +#define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a) +#define IDirect3DDevice9_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a) +#define IDirect3DDevice9_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a) +#define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b) +#define IDirect3DDevice9_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a) +#define IDirect3DDevice9_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a) +#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c) +#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c) +#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c) +#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c) +#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c) +#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c) +#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d) +#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d) +#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b) +#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b) +#define IDirect3DDevice9_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a) +#define IDirect3DDevice9_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a) +#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b) +#define IDirect3DDevice9_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a) +#define IDirect3DDevice9_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a) +#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c) +#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c) +#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c) +#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c) +#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c) +#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c) +#define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c) +#define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c) +#define IDirect3DDevice9_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a) +#define IDirect3DDevice9_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b) +#else +/*** IUnknown methods ***/ +#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DDevice9_AddRef(p) (p)->AddRef() +#define IDirect3DDevice9_Release(p) (p)->Release() +/*** IDirect3DDevice9 methods ***/ +#define IDirect3DDevice9_TestCooperativeLevel(p) (p)->TestCooperativeLevel() +#define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem() +#define IDirect3DDevice9_EvictManagedResources(p) (p)->EvictManagedResources() +#define IDirect3DDevice9_GetDirect3D(p,a) (p)->GetDirect3D(a) +#define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a) +#define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b) +#define IDirect3DDevice9_GetCreationParameters(p,a) (p)->GetCreationParameters(a) +#define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c) +#define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c) +#define IDirect3DDevice9_ShowCursor(p,a) (p)->ShowCursor(a) +#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b) +#define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b) +#define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains() +#define IDirect3DDevice9_Reset(p,a) (p)->Reset(a) +#define IDirect3DDevice9_Present(p,a,b,c,d) (p)->Present(a,b,c,d) +#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d) +#define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b) +#define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a) +#define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c) +#define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b) +#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g) +#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f) +#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f) +#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d) +#define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b) +#define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b) +#define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b) +#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e) +#define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c) +#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f) +#define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) +#define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b) +#define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a) +#define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a) +#define IDirect3DDevice9_BeginScene(p) (p)->BeginScene() +#define IDirect3DDevice9_EndScene(p) (p)->EndScene() +#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f) +#define IDirect3DDevice9_SetTransform(p,a,b) (p)->SetTransform(a,b) +#define IDirect3DDevice9_GetTransform(p,a,b) (p)->GetTransform(a,b) +#define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) +#define IDirect3DDevice9_SetViewport(p,a) (p)->SetViewport(a) +#define IDirect3DDevice9_GetViewport(p,a) (p)->GetViewport(a) +#define IDirect3DDevice9_SetMaterial(p,a) (p)->SetMaterial(a) +#define IDirect3DDevice9_GetMaterial(p,a) (p)->GetMaterial(a) +#define IDirect3DDevice9_SetLight(p,a,b) (p)->SetLight(a,b) +#define IDirect3DDevice9_GetLight(p,a,b) (p)->GetLight(a,b) +#define IDirect3DDevice9_LightEnable(p,a,b) (p)->LightEnable(a,b) +#define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b) +#define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b) +#define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b) +#define IDirect3DDevice9_SetRenderState(p,a,b) (p)->SetRenderState(a,b) +#define IDirect3DDevice9_GetRenderState(p,a,b) (p)->GetRenderState(a,b) +#define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b) +#define IDirect3DDevice9_BeginStateBlock(p) (p)->BeginStateBlock() +#define IDirect3DDevice9_EndStateBlock(p,a) (p)->EndStateBlock(a) +#define IDirect3DDevice9_SetClipStatus(p,a) (p)->SetClipStatus(a) +#define IDirect3DDevice9_GetClipStatus(p,a) (p)->GetClipStatus(a) +#define IDirect3DDevice9_GetTexture(p,a,b) (p)->GetTexture(a,b) +#define IDirect3DDevice9_SetTexture(p,a,b) (p)->SetTexture(a,b) +#define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c) +#define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c) +#define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c) +#define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c) +#define IDirect3DDevice9_ValidateDevice(p,a) (p)->ValidateDevice(a) +#define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b) +#define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b) +#define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a) +#define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a) +#define IDirect3DDevice9_SetScissorRect(p,a) (p)->SetScissorRect(a) +#define IDirect3DDevice9_GetScissorRect(p,a) (p)->GetScissorRect(a) +#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a) +#define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing() +#define IDirect3DDevice9_SetNPatchMode(p,a) (p)->SetNPatchMode(a) +#define IDirect3DDevice9_GetNPatchMode(p) (p)->GetNPatchMode() +#define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c) +#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f) +#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d) +#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f) +#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b) +#define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a) +#define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a) +#define IDirect3DDevice9_SetFVF(p,a) (p)->SetFVF(a) +#define IDirect3DDevice9_GetFVF(p,a) (p)->GetFVF(a) +#define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b) +#define IDirect3DDevice9_SetVertexShader(p,a) (p)->SetVertexShader(a) +#define IDirect3DDevice9_GetVertexShader(p,a) (p)->GetVertexShader(a) +#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c) +#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c) +#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c) +#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c) +#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c) +#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c) +#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d) +#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d) +#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b) +#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b) +#define IDirect3DDevice9_SetIndices(p,a) (p)->SetIndices(a) +#define IDirect3DDevice9_GetIndices(p,a) (p)->GetIndices(a) +#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b) +#define IDirect3DDevice9_SetPixelShader(p,a) (p)->SetPixelShader(a) +#define IDirect3DDevice9_GetPixelShader(p,a) (p)->GetPixelShader(a) +#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c) +#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c) +#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c) +#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c) +#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c) +#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c) +#define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c) +#define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c) +#define IDirect3DDevice9_DeletePatch(p,a) (p)->DeletePatch(a) +#define IDirect3DDevice9_CreateQuery(p,a,b) (p)->CreateQuery(a,b) +#endif + + +/***************************************************************************** + * IDirect3DDevice9Ex interface + */ +#define INTERFACE IDirect3DDevice9Ex +DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + /*** IDirect3DDevice9 methods ***/ + STDMETHOD(TestCooperativeLevel)(THIS) PURE; + STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE; + STDMETHOD(EvictManagedResources)(THIS) PURE; + STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE; + STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE; + STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE; + STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE; + STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE; + STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE; + STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE; + STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE; + STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE; + STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE; + STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE; + STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE; + STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE; + STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE; + STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE; + STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE; + STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE; + STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE; + STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE; + STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE; + STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE; + STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE; + STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE; + STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE; + STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE; + STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE; + STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE; + STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE; + STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE; + STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE; + STDMETHOD(BeginScene)(THIS) PURE; + STDMETHOD(EndScene)(THIS) PURE; + STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE; + STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE; + STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE; + STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE; + STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE; + STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE; + STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE; + STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE; + STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE; + STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE; + STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE; + STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE; + STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE; + STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE; + STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE; + STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE; + STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE; + STDMETHOD(BeginStateBlock)(THIS) PURE; + STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE; + STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE; + STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE; + STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE; + STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE; + STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE; + STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE; + STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE; + STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE; + STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE; + STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE; + STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE; + STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE; + STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE; + STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE; + STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE; + STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE; + STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE; + STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE; + STDMETHOD_(float, GetNPatchMode)(THIS) PURE; + STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE; + STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE; + STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE; + STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE; + STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE; + STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE; + STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE; + STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE; + STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE; + STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE; + STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE; + STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE; + STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE; + STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE; + STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE; + STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE; + STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE; + STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE; + STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE; + STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE; + STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE; + STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE; + STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE; + STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE; + STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE; + STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE; + STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE; + STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE; + STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE; + /* IDirect3DDevice9Ex methods */ + STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float *rows, float *columns) PURE; + STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface, + IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs, + D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE; + STDMETHOD(PresentEx)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE; + STDMETHOD(GetGPUThreadPriority)(THIS_ INT *pPriority) PURE; + STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE; + STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE; + STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9 **resources, UINT32 resource_count) PURE; + STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT MaxLatency) PURE; + STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT *pMaxLatenxy) PURE; + STDMETHOD(CheckDeviceState)(THIS_ HWND dst_window) PURE; + STDMETHOD(CreateRenderTargetEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultiSampleQuality, BOOL Lockable, IDirect3DSurface9 ** ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE; + STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9 **ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE; + STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT width, UINT height, D3DFORMAT format, + D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard, + IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE; + STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE; + STDMETHOD(GetDisplayModeEx)(THIS_ UINT iSwapChain, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirect3DDevice9Ex_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirect3DDevice9Ex_Release(p) (p)->lpVtbl->Release(p) +/*** IDirect3DDevice9 methods ***/ +#define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) +#define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p) +#define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p) +#define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a) +#define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a) +#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b) +#define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a) +#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c) +#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c) +#define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a) +#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b) +#define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b) +#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p) +#define IDirect3DDevice9Ex_Reset(p,a) (p)->lpVtbl->Reset(p,a) +#define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d) +#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d) +#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b) +#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a) +#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c) +#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b) +#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g) +#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f) +#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f) +#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d) +#define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b) +#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b) +#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b) +#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e) +#define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c) +#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f) +#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b) +#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b) +#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a) +#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a) +#define IDirect3DDevice9Ex_BeginScene(p) (p)->lpVtbl->BeginScene(p) +#define IDirect3DDevice9Ex_EndScene(p) (p)->lpVtbl->EndScene(p) +#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f) +#define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b) +#define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b) +#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b) +#define IDirect3DDevice9Ex_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a) +#define IDirect3DDevice9Ex_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a) +#define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a) +#define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a) +#define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b) +#define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b) +#define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b) +#define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b) +#define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b) +#define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b) +#define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b) +#define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b) +#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b) +#define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p) +#define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a) +#define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a) +#define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a) +#define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b) +#define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b) +#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c) +#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c) +#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c) +#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c) +#define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a) +#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b) +#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b) +#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a) +#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a) +#define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a) +#define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a) +#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a) +#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p) +#define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a) +#define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p) +#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c) +#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f) +#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d) +#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f) +#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b) +#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a) +#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a) +#define IDirect3DDevice9Ex_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a) +#define IDirect3DDevice9Ex_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a) +#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b) +#define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a) +#define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a) +#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c) +#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c) +#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c) +#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c) +#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c) +#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c) +#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d) +#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d) +#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b) +#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b) +#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a) +#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a) +#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b) +#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a) +#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a) +#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c) +#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c) +#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c) +#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c) +#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c) +#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c) +#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c) +#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c) +#define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a) +#define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b) +/* IDirect3DDevice9Ex */ +#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->lpVtbl->SetConvolutionMonoKernel(p,a,b,c,d) +#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ComposeRects(p,a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->lpVtbl->PresentEx(p,a,b,c,d,e) +#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->lpVtbl->GetGPUThreadPriority(p,a) +#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->lpVtbl->SetGPUThreadPriority(p,a) +#define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->lpVtbl->WaitForVBlank(p,a) +#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->lpVtbl->CheckResourceResidency(p,a,b) +#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->lpVtbl->SetMaximumFrameLatency(p,a) +#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->lpVtbl->GetMaximumFrameLatency(p,a) +#define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->lpVtbl->CheckDeviceState(p,a) +#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->lpVtbl->CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g) +#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->lpVtbl->CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->lpVtbl->ResetEx(p,a,b) +#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetDisplayModeEx(p,a,b,c) +#else +/*** IUnknown methods ***/ +#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b) +#define IDirect3DDevice9Ex_AddRef(p) (p)->AddRef() +#define IDirect3DDevice9Ex_Release(p) (p)->Release() +/*** IDirect3DDevice9 methods ***/ +#define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->TestCooperativeLevel() +#define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem() +#define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->EvictManagedResources() +#define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->GetDirect3D(a) +#define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a) +#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b) +#define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->GetCreationParameters(a) +#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c) +#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c) +#define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->ShowCursor(a) +#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b) +#define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b) +#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains() +#define IDirect3DDevice9Ex_Reset(p,a) (p)->Reset(a) +#define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->Present(a,b,c,d) +#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d) +#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b) +#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a) +#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c) +#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b) +#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g) +#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f) +#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f) +#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d) +#define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b) +#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b) +#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b) +#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e) +#define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c) +#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f) +#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b) +#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b) +#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a) +#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a) +#define IDirect3DDevice9Ex_BeginScene(p) (p)->BeginScene() +#define IDirect3DDevice9Ex_EndScene(p) (p)->EndScene() +#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f) +#define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->SetTransform(a,b) +#define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->GetTransform(a,b) +#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b) +#define IDirect3DDevice9Ex_SetViewport(p,a) (p)->SetViewport(a) +#define IDirect3DDevice9Ex_GetViewport(p,a) (p)->GetViewport(a) +#define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->SetMaterial(a) +#define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->GetMaterial(a) +#define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->SetLight(a,b) +#define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->GetLight(a,b) +#define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->LightEnable(a,b) +#define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b) +#define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b) +#define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b) +#define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->SetRenderState(a,b) +#define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->GetRenderState(a,b) +#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b) +#define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->BeginStateBlock() +#define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->EndStateBlock(a) +#define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->SetClipStatus(a) +#define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->GetClipStatus(a) +#define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->GetTexture(a,b) +#define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->SetTexture(a,b) +#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c) +#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c) +#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c) +#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c) +#define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->ValidateDevice(a) +#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b) +#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b) +#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a) +#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a) +#define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->SetScissorRect(a) +#define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->GetScissorRect(a) +#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a) +#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing() +#define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->SetNPatchMode(a) +#define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->GetNPatchMode() +#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c) +#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f) +#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d) +#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f) +#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b) +#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a) +#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a) +#define IDirect3DDevice9Ex_SetFVF(p,a) (p)->SetFVF(a) +#define IDirect3DDevice9Ex_GetFVF(p,a) (p)->GetFVF(a) +#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b) +#define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->SetVertexShader(a) +#define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->GetVertexShader(a) +#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c) +#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c) +#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c) +#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c) +#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c) +#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c) +#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d) +#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d) +#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b) +#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b) +#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->SetIndices(a) +#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->GetIndices(a) +#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b) +#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->SetPixelShader(a) +#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->GetPixelShader(a) +#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c) +#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c) +#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c) +#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c) +#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c) +#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c) +#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c) +#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c) +#define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->DeletePatch(a) +#define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->CreateQuery(a,b) +/* IDirect3DDevice9Ex */ +#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->SetConvolutionMonoKernel(a,b,c,d) +#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->ComposeRects(a,b,c,d,e,f,g,h) +#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->PresentEx(a,b,c,d,e) +#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->GetGPUThreadPriority(a) +#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->SetGPUThreadPriority(a) +#define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->WaitForVBlank(a) +#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->CheckResourceResidency(a,b) +#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->SetMaximumFrameLatency(a) +#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->GetMaximumFrameLatency(a) +#define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->CheckDeviceState(a) +#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->CreateRenderTargetEx(a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->CreateOffscreenPlainSurfaceEx(a,b,c,d,e,f,g) +#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->CreateDepthStencilSurfaceEx(a,b,c,d,e,f,g,h,i) +#define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->ResetEx(a,b) +#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->GetDisplayModeEx(a,b,c) +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* defined(__cplusplus) */ + +int WINAPI D3DPERF_BeginEvent(D3DCOLOR,LPCWSTR); +int WINAPI D3DPERF_EndEvent(void); +DWORD WINAPI D3DPERF_GetStatus(void); +BOOL WINAPI D3DPERF_QueryRepeatFrame(void); +void WINAPI D3DPERF_SetMarker(D3DCOLOR,LPCWSTR); +void WINAPI D3DPERF_SetOptions(DWORD); +void WINAPI D3DPERF_SetRegion(D3DCOLOR,LPCWSTR); + +/* Define the main entrypoint as well */ +IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* defined(__cplusplus) */ + + +#endif /* __WINE_D3D9_H */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/debug.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/debug.h new file mode 100644 index 00000000..4866a27b --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/debug.h @@ -0,0 +1,381 @@ +/* + * Wine debugging interface + * + * Copyright 1999 Patrik Stridvall + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_WINE_DEBUG_H +#define __WINE_WINE_DEBUG_H + +#include <windows.h> +#ifndef GUID_DEFINED +#include <guiddef.h> +#endif + +#ifdef __WINE_WINE_TEST_H +#error This file should not be used in Wine tests +#endif + +#ifdef VBOX_WINE_WITH_IPRT +# include <iprt/assert.h> +#else +# define AssertBreakpoint() do { } while (0) +# define Assert(_expr) do { } while (0) +# ifdef DEBUG_misha +# include <iprt/cdefs.h> +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct _GUID; + +//#ifdef DEBUG +//# define VBOX_WINE_DEBUG +//#endif + +#ifdef VBOX_WINE_DEBUG +# ifndef VBOX_WINE_DEBUG_DEFINES +extern DWORD g_VBoxVDbgBreakOnD3DErr; +# else +# ifdef DEBUG_misha +# define _ERR_BREAK_DEFAULT 1 +# else +# define _ERR_BREAK_DEFAULT 0 +# endif +DWORD g_VBoxVDbgBreakOnD3DErr = _ERR_BREAK_DEFAULT; +# endif + +# define _ERR_BREAK() Assert(0) +# define _ERR_ASSERT(_e) Assert((_e)) +# define _ERR_CHECK_BREAK(_t) do { \ + if (g_VBoxVDbgBreakOn##_t) { _ERR_BREAK(); } \ + } while (0) +# define _ERR_CHECK_ASSERT(_t, _e) do { \ + if (g_VBoxVDbgBreakOn##_t) { _ERR_ASSERT(_e); } \ + } while (0) + +# define ERR_D3D() _ERR_CHECK_BREAK(D3DErr) +# define ASSERT_D3D(_e) _ERR_CHECK_ASSERT(D3DErr, _e) +#else +# define ERR_D3D() ERR("Error!"); +# define ASSERT_D3D(_e) do { \ + if (!(_e)) \ + { \ + ERR("Error: Assertion failure expr (%s)", #_e); \ + } \ + } while (0) +#endif /* #ifdef VBOX_WINE_DEBUG */ + +#ifdef inline +#undef inline +#endif +#define inline __inline + +/* + * Internal definitions (do not use these directly) + */ + +enum __wine_debug_class +{ + __WINE_DBCL_FIXME, + __WINE_DBCL_ERR, + __WINE_DBCL_WARN, + __WINE_DBCL_TRACE, + + __WINE_DBCL_INIT = 7 /* lazy init flag */ +}; + +struct __wine_debug_channel +{ + unsigned char flags; + char name[15]; +}; + +#ifndef WINE_NO_TRACE_MSGS +# define __WINE_GET_DEBUGGING_TRACE(dbch) ((dbch)->flags & (1 << __WINE_DBCL_TRACE)) +#else +# define __WINE_GET_DEBUGGING_TRACE(dbch) 0 +#endif + +#ifndef WINE_NO_DEBUG_MSGS +# define __WINE_GET_DEBUGGING_WARN(dbch) ((dbch)->flags & (1 << __WINE_DBCL_WARN)) +# if 0// && defined(DEBUG_misha) +# define __WINE_GET_DEBUGGING_FIXME(dbch) (RT_BREAKPOINT(), ((dbch)->flags & (1 << __WINE_DBCL_FIXME))) +# else +# define __WINE_GET_DEBUGGING_FIXME(dbch) ((dbch)->flags & (1 << __WINE_DBCL_FIXME)) +# endif +#else +# define __WINE_GET_DEBUGGING_WARN(dbch) 0 +# if 0 && defined(DEBUG_misha) +# define __WINE_GET_DEBUGGING_FIXME(dbch) (RT_BREAKPOINT(), 0) +# else +# define __WINE_GET_DEBUGGING_FIXME(dbch) 0 +# endif +#endif + +/* define error macro regardless of what is configured */ +#if defined(DEBUG_misha) +#define __WINE_GET_DEBUGGING_ERR(dbch) (RT_BREAKPOINT(), ((dbch)->flags & (1 << __WINE_DBCL_ERR))) +#else +#define __WINE_GET_DEBUGGING_ERR(dbch) ((dbch)->flags & (1 << __WINE_DBCL_ERR)) +#endif + +#define __WINE_GET_DEBUGGING(dbcl,dbch) __WINE_GET_DEBUGGING##dbcl(dbch) + +#define __WINE_IS_DEBUG_ON(dbcl,dbch) \ + (__WINE_GET_DEBUGGING##dbcl(dbch) && (__wine_dbg_get_channel_flags(dbch) & (1 << __WINE_DBCL##dbcl))) + +#ifdef __GNUC__ + +#define __WINE_DPRINTF(dbcl,dbch) \ + do { if(__WINE_GET_DEBUGGING(dbcl,(dbch))) { \ + struct __wine_debug_channel * const __dbch = (dbch); \ + const enum __wine_debug_class __dbcl = __WINE_DBCL##dbcl; \ + __WINE_DBG_LOG + +#define __WINE_DBG_LOG(args...) \ + wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0) + +#define __WINE_PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args))) + + +#ifdef WINE_NO_TRACE_MSGS +#define WINE_TRACE(args...) do { } while(0) +#define WINE_TRACE_(ch) WINE_TRACE +#endif + +#ifdef WINE_NO_DEBUG_MSGS +#define WINE_WARN(args...) do { } while(0) +#define WINE_WARN_(ch) WINE_WARN +#define WINE_FIXME(args...) do { } while(0) +#define WINE_FIXME_(ch) WINE_FIXME +#endif + +#elif defined(__SUNPRO_C) + +#define __WINE_DPRINTF(dbcl,dbch) \ + do { if(__WINE_GET_DEBUGGING(dbcl,(dbch))) { \ + struct __wine_debug_channel * const __dbch = (dbch); \ + const enum __WINE_DEBUG_CLASS __dbcl = __WINE_DBCL##dbcl; \ + __WINE_DBG_LOG + +#define __WINE_DBG_LOG(...) \ + wine_dbg_log( __dbcl, __dbch, __func__, __VA_ARGS__); } } while(0) + +#define __WINE_PRINTF_ATTR(fmt,args) + +#ifdef WINE_NO_TRACE_MSGS +#define WINE_TRACE(...) do { } while(0) +#define WINE_TRACE_(ch) WINE_TRACE +#endif + +#ifdef WINE_NO_DEBUG_MSGS +#define WINE_WARN(...) do { } while(0) +#define WINE_WARN_(ch) WINE_WARN +#define WINE_FIXME(...) do { } while(0) +#define WINE_FIXME_(ch) WINE_FIXME +#endif + +#else /* !__GNUC__ && !__SUNPRO_C */ + +#define __WINE_DPRINTF(dbcl,dbch) \ + (!__WINE_GET_DEBUGGING(dbcl,(dbch)) || \ + (wine_dbg_log(__WINE_DBCL##dbcl,(dbch),__FILE__,"%d: ",__LINE__) == -1)) ? \ + (void)0 : (void)wine_dbg_printf + +#define __WINE_PRINTF_ATTR(fmt, args) + +#endif /* !__GNUC__ && !__SUNPRO_C */ + +struct __wine_debug_functions +{ + char * (*get_temp_buffer)( size_t n ); + void (*release_temp_buffer)( char *buffer, size_t n ); + const char * (*dbgstr_an)( const char * s, int n ); + const char * (*dbgstr_wn)( const WCHAR *s, int n ); + int (*dbg_vprintf)( const char *format, va_list args ); + int (*dbg_vlog)( enum __wine_debug_class cls, struct __wine_debug_channel *channel, + const char *function, const char *format, va_list args ); +}; + +extern unsigned char __wine_dbg_get_channel_flags( struct __wine_debug_channel *channel ); +extern int __wine_dbg_set_channel_flags( struct __wine_debug_channel *channel, + unsigned char set, unsigned char clear ); +extern void __wine_dbg_set_functions( const struct __wine_debug_functions *new_funcs, + struct __wine_debug_functions *old_funcs, size_t size ); + +/* + * Exported definitions and macros + */ + +/* These functions return a printable version of a string, including + quotes. The string will be valid for some time, but not indefinitely + as strings are re-used. */ +extern const char *wine_dbgstr_an( const char * s, int n ); +extern const char *wine_dbgstr_wn( const WCHAR *s, int n ); +extern const char *wine_dbg_sprintf( const char *format, ... ) __WINE_PRINTF_ATTR(1,2); + +extern int wine_dbg_printf( const char *format, ... ) __WINE_PRINTF_ATTR(1,2); +extern int wine_dbg_log( enum __wine_debug_class cls, struct __wine_debug_channel *ch, const char *func, + const char *format, ... ) __WINE_PRINTF_ATTR(4,5); + +static inline const char *wine_dbgstr_a( const char *s ) +{ + return wine_dbgstr_an( s, -1 ); +} + +static inline const char *wine_dbgstr_w( const WCHAR *s ) +{ + return wine_dbgstr_wn( s, -1 ); +} + +static inline const char *wine_dbgstr_guid( const GUID *id ) +{ + if (!id) return "(null)"; + if (!((ULONG_PTR)id >> 16)) return wine_dbg_sprintf( "<guid-0x%04hx>", (WORD)(ULONG_PTR)id ); + return wine_dbg_sprintf( "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", + id->Data1, id->Data2, id->Data3, + id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3], + id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7] ); +} + +static inline const char *wine_dbgstr_point( const POINT *pt ) +{ + if (!pt) return "(null)"; + return wine_dbg_sprintf( "(%d,%d)", pt->x, pt->y ); +} + +static inline const char *wine_dbgstr_size( const SIZE *size ) +{ + if (!size) return "(null)"; + return wine_dbg_sprintf( "(%d,%d)", size->cx, size->cy ); +} + +static inline const char *wine_dbgstr_rect( const RECT *rect ) +{ + if (!rect) return "(null)"; + return wine_dbg_sprintf( "(%d,%d)-(%d,%d)", rect->left, rect->top, + rect->right, rect->bottom ); +} + +static inline const char *wine_dbgstr_longlong( ULONGLONG ll ) +{ + if (sizeof(ll) > sizeof(unsigned long) && ll >> 32) + return wine_dbg_sprintf( "%lx%08lx", (unsigned long)(ll >> 32), (unsigned long)ll ); + else return wine_dbg_sprintf( "%lx", (unsigned long)ll ); +} + +#ifndef WINE_TRACE +#define WINE_TRACE __WINE_DPRINTF(_TRACE,__wine_dbch___default) +#define WINE_TRACE_(ch) __WINE_DPRINTF(_TRACE,&__wine_dbch_##ch) +#endif +#define WINE_TRACE_ON(ch) __WINE_IS_DEBUG_ON(_TRACE,&__wine_dbch_##ch) + +#ifndef WINE_WARN +#define WINE_WARN __WINE_DPRINTF(_WARN,__wine_dbch___default) +#define WINE_WARN_(ch) __WINE_DPRINTF(_WARN,&__wine_dbch_##ch) +#endif +#define WINE_WARN_ON(ch) __WINE_IS_DEBUG_ON(_WARN,&__wine_dbch_##ch) + +#ifndef WINE_FIXME +#define WINE_FIXME __WINE_DPRINTF(_FIXME,__wine_dbch___default) +#define WINE_FIXME_(ch) __WINE_DPRINTF(_FIXME,&__wine_dbch_##ch) +#endif +#define WINE_FIXME_ON(ch) __WINE_IS_DEBUG_ON(_FIXME,&__wine_dbch_##ch) + +#define WINE_ERR __WINE_DPRINTF(_ERR,__wine_dbch___default) +#define WINE_ERR_(ch) __WINE_DPRINTF(_ERR,&__wine_dbch_##ch) +#define WINE_ERR_ON(ch) __WINE_IS_DEBUG_ON(_ERR,&__wine_dbch_##ch) + +#define WINE_DECLARE_DEBUG_CHANNEL(ch) \ + static struct __wine_debug_channel __wine_dbch_##ch = { /* was: ~0, VBox:*/ UINT8_MAX, #ch } +#define WINE_DEFAULT_DEBUG_CHANNEL(ch) \ + static struct __wine_debug_channel __wine_dbch_##ch = { /* was: ~0, VBox:*/ UINT8_MAX, #ch }; \ + static struct __wine_debug_channel * const __wine_dbch___default = &__wine_dbch_##ch + +#define WINE_DPRINTF wine_dbg_printf +#define WINE_MESSAGE wine_dbg_printf + +#ifdef __WINESRC__ +/* Wine uses shorter names that are very likely to conflict with other software */ + +static inline const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); } +static inline const char *debugstr_wn( const WCHAR *s, int n ) { return wine_dbgstr_wn( s, n ); } +static inline const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); } +static inline const char *debugstr_a( const char *s ) { return wine_dbgstr_an( s, -1 ); } +static inline const char *debugstr_w( const WCHAR *s ) { return wine_dbgstr_wn( s, -1 ); } + +#define TRACE WINE_TRACE +#define TRACE_(ch) WINE_TRACE_(ch) +#define TRACE_ON(ch) WINE_TRACE_ON(ch) + +#define WARN WINE_WARN +#define WARN_(ch) WINE_WARN_(ch) +#define WARN_ON(ch) WINE_WARN_ON(ch) + +#define FIXME WINE_FIXME +#define FIXME_(ch) WINE_FIXME_(ch) +#define FIXME_ON(ch) WINE_FIXME_ON(ch) + +#undef ERR /* Solaris got an 'ERR' define in <sys/reg.h> */ +#define ERR WINE_ERR +#define ERR_(ch) WINE_ERR_(ch) +#define ERR_ON(ch) WINE_ERR_ON(ch) + +#define DPRINTF WINE_DPRINTF +#define MESSAGE WINE_MESSAGE + +#endif /* __WINESRC__ */ + +#ifdef __cplusplus +} +#endif + + +#if 0//def DEBUG_misha +# define VBOXWINEDBG_SHADERS +#endif + +#if defined(VBOXWINEDBG_SHADERS) || defined(VBOX_WINE_WITH_PROFILE) +#include <stdio.h> +#include <stdarg.h> + +void vboxWDbgPrintF(char * szString, ...); +#endif + +#ifdef VBOXWINEDBG_SHADERS +# define WDLOG(_m) do {\ + vboxWDbgPrintF _m ; \ + } while (0) +#else + +# define WDLOG(_m) do { } while (0) +#endif + +#endif /* __WINE_WINE_DEBUG_H */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/guiddef.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/guiddef.h new file mode 100644 index 00000000..466c406b --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/guiddef.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2000 Alexandre Julliard + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef GUID_DEFINED +#define GUID_DEFINED +typedef struct _GUID +{ +#ifdef _MSC_VER + unsigned long Data1; +#else + unsigned int Data1; +#endif + unsigned short Data2; + unsigned short Data3; + unsigned char Data4[ 8 ]; +} GUID; +#endif + +#undef DEFINE_GUID + +#ifdef INITGUID +#ifdef __cplusplus +#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + EXTERN_C const GUID name DECLSPEC_HIDDEN; \ + EXTERN_C const GUID name = \ + { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } +#else +#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + const GUID name DECLSPEC_HIDDEN; \ + const GUID name = \ + { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } +#endif +#else +#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + EXTERN_C const GUID name DECLSPEC_HIDDEN +#endif + +#define DEFINE_OLEGUID(name, l, w1, w2) \ + DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46) + +#ifndef _GUIDDEF_H_ +#define _GUIDDEF_H_ + +#ifndef __LPGUID_DEFINED__ +#define __LPGUID_DEFINED___ +typedef GUID *LPGUID; +#endif + +#ifndef __LPCGUID_DEFINED__ +#define __LPCGUID_DEFINED__ +typedef const GUID *LPCGUID; +#endif + +#ifndef __IID_DEFINED__ +#define __IID_DEFINED__ + +typedef GUID IID,*LPIID; +typedef GUID CLSID,*LPCLSID; +typedef GUID FMTID,*LPFMTID; +#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2) +#define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2) +#define IsEqualFMTID(rfmtid1, rfmtid2) IsEqualGUID(rfmtid1, rfmtid2) +#define IID_NULL GUID_NULL +#define CLSID_NULL GUID_NULL +#define FMTID_NULL GUID_NULL + +#ifdef __midl_proxy +#define __MIDL_CONST +#else +#define __MIDL_CONST const +#endif + +#endif /* ndef __IID_DEFINED__ */ + +#if defined(__cplusplus) && !defined(CINTERFACE) +#define REFGUID const GUID & +#define REFCLSID const CLSID & +#define REFIID const IID & +#define REFFMTID const FMTID & +#else /* !defined(__cplusplus) && !defined(CINTERFACE) */ +#define REFGUID const GUID* __MIDL_CONST +#define REFCLSID const CLSID* __MIDL_CONST +#define REFIID const IID* __MIDL_CONST +#define REFFMTID const FMTID* __MIDL_CONST +#endif /* !defined(__cplusplus) && !defined(CINTERFACE) */ + +#if defined(__cplusplus) && !defined(CINTERFACE) +#define IsEqualGUID(rguid1, rguid2) (!memcmp(&(rguid1), &(rguid2), sizeof(GUID))) +#else /* defined(__cplusplus) && !defined(CINTERFACE) */ +#define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID))) +#endif /* defined(__cplusplus) && !defined(CINTERFACE) */ + +#if defined(__cplusplus) && !defined(CINTERFACE) +#include <string.h> +inline bool operator==(const GUID& guidOne, const GUID& guidOther) +{ + return !memcmp(&guidOne,&guidOther,sizeof(GUID)); +} +inline bool operator!=(const GUID& guidOne, const GUID& guidOther) +{ + return !(guidOne == guidOther); +} +#endif + +extern const IID GUID_NULL; + +#endif /* _GUIDDEF_H_ */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/initguid.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/initguid.h new file mode 100644 index 00000000..33c7e1a1 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/initguid.h @@ -0,0 +1,35 @@ +/* + * Defines a minimum set of macros create GUID's to keep the size + * small + * + * This file should be included into "only GUID definition *.h" like + * shlguid.h + * + * Copyright (C) 1999 Juergen Schmied + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#define INITGUID +#include <guiddef.h> diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/list.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/list.h new file mode 100644 index 00000000..fbe38e86 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/list.h @@ -0,0 +1,246 @@ +/* + * Linked lists support + * + * Copyright (C) 2002 Alexandre Julliard + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_SERVER_LIST_H +#define __WINE_SERVER_LIST_H + +#ifdef inline +#undef inline +#endif +#define inline __inline + +struct list +{ + struct list *next; + struct list *prev; +}; + +/* Define a list like so: + * + * struct gadget + * { + * struct list entry; <-- doesn't have to be the first item in the struct + * int a, b; + * }; + * + * static struct list global_gadgets = LIST_INIT( global_gadgets ); + * + * or + * + * struct some_global_thing + * { + * struct list gadgets; + * }; + * + * list_init( &some_global_thing->gadgets ); + * + * Manipulate it like this: + * + * list_add_head( &global_gadgets, &new_gadget->entry ); + * list_remove( &new_gadget->entry ); + * list_add_after( &some_random_gadget->entry, &new_gadget->entry ); + * + * And to iterate over it: + * + * struct gadget *gadget; + * LIST_FOR_EACH_ENTRY( gadget, &global_gadgets, struct gadget, entry ) + * { + * ... + * } + * + */ + +/* add an element after the specified one */ +static inline void list_add_after( struct list *elem, struct list *to_add ) +{ + to_add->next = elem->next; + to_add->prev = elem; + elem->next->prev = to_add; + elem->next = to_add; +} + +/* add an element before the specified one */ +static inline void list_add_before( struct list *elem, struct list *to_add ) +{ + to_add->next = elem; + to_add->prev = elem->prev; + elem->prev->next = to_add; + elem->prev = to_add; +} + +/* add element at the head of the list */ +static inline void list_add_head( struct list *list, struct list *elem ) +{ + list_add_after( list, elem ); +} + +/* add element at the tail of the list */ +static inline void list_add_tail( struct list *list, struct list *elem ) +{ + list_add_before( list, elem ); +} + +/* remove an element from its list */ +static inline void list_remove( struct list *elem ) +{ + elem->next->prev = elem->prev; + elem->prev->next = elem->next; +} + +/* get the next element */ +static inline struct list *list_next( const struct list *list, const struct list *elem ) +{ + struct list *ret = elem->next; + if (elem->next == list) ret = NULL; + return ret; +} + +/* get the previous element */ +static inline struct list *list_prev( const struct list *list, const struct list *elem ) +{ + struct list *ret = elem->prev; + if (elem->prev == list) ret = NULL; + return ret; +} + +/* get the first element */ +static inline struct list *list_head( const struct list *list ) +{ + return list_next( list, list ); +} + +/* get the last element */ +static inline struct list *list_tail( const struct list *list ) +{ + return list_prev( list, list ); +} + +/* check if a list is empty */ +static inline int list_empty( const struct list *list ) +{ + return list->next == list; +} + +/* initialize a list */ +static inline void list_init( struct list *list ) +{ + list->next = list->prev = list; +} + +/* count the elements of a list */ +static inline unsigned int list_count( const struct list *list ) +{ + unsigned count = 0; + const struct list *ptr; + for (ptr = list->next; ptr != list; ptr = ptr->next) count++; + return count; +} + +/* move all elements from src to the tail of dst */ +static inline void list_move_tail( struct list *dst, struct list *src ) +{ + if (list_empty(src)) return; + + dst->prev->next = src->next; + src->next->prev = dst->prev; + dst->prev = src->prev; + src->prev->next = dst; + list_init(src); +} + +/* move all elements from src to the head of dst */ +static inline void list_move_head( struct list *dst, struct list *src ) +{ + if (list_empty(src)) return; + + dst->next->prev = src->prev; + src->prev->next = dst->next; + dst->next = src->next; + src->next->prev = dst; + list_init(src); +} + +/* iterate through the list */ +#define LIST_FOR_EACH(cursor,list) \ + for ((cursor) = (list)->next; (cursor) != (list); (cursor) = (cursor)->next) + +/* iterate through the list, with safety against removal */ +#define LIST_FOR_EACH_SAFE(cursor, cursor2, list) \ + for ((cursor) = (list)->next, (cursor2) = (cursor)->next; \ + (cursor) != (list); \ + (cursor) = (cursor2), (cursor2) = (cursor)->next) + +/* iterate through the list using a list entry */ +#define LIST_FOR_EACH_ENTRY(elem, list, type, field) \ + for ((elem) = LIST_ENTRY((list)->next, type, field); \ + &(elem)->field != (list); \ + (elem) = LIST_ENTRY((elem)->field.next, type, field)) + +/* iterate through the list using a list entry, with safety against removal */ +#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field) \ + for ((cursor) = LIST_ENTRY((list)->next, type, field), \ + (cursor2) = LIST_ENTRY((cursor)->field.next, type, field); \ + &(cursor)->field != (list); \ + (cursor) = (cursor2), \ + (cursor2) = LIST_ENTRY((cursor)->field.next, type, field)) + +/* iterate through the list in reverse order */ +#define LIST_FOR_EACH_REV(cursor,list) \ + for ((cursor) = (list)->prev; (cursor) != (list); (cursor) = (cursor)->prev) + +/* iterate through the list in reverse order, with safety against removal */ +#define LIST_FOR_EACH_SAFE_REV(cursor, cursor2, list) \ + for ((cursor) = (list)->prev, (cursor2) = (cursor)->prev; \ + (cursor) != (list); \ + (cursor) = (cursor2), (cursor2) = (cursor)->prev) + +/* iterate through the list in reverse order using a list entry */ +#define LIST_FOR_EACH_ENTRY_REV(elem, list, type, field) \ + for ((elem) = LIST_ENTRY((list)->prev, type, field); \ + &(elem)->field != (list); \ + (elem) = LIST_ENTRY((elem)->field.prev, type, field)) + +/* iterate through the list in reverse order using a list entry, with safety against removal */ +#define LIST_FOR_EACH_ENTRY_SAFE_REV(cursor, cursor2, list, type, field) \ + for ((cursor) = LIST_ENTRY((list)->prev, type, field), \ + (cursor2) = LIST_ENTRY((cursor)->field.prev, type, field); \ + &(cursor)->field != (list); \ + (cursor) = (cursor2), \ + (cursor2) = LIST_ENTRY((cursor)->field.prev, type, field)) + +/* macros for statically initialized lists */ +#undef LIST_INIT +#define LIST_INIT(list) { &(list), &(list) } + +/* get pointer to object containing list element */ +#undef LIST_ENTRY +#define LIST_ENTRY(elem, type, field) \ + ((type *)((char *)(elem) - (uintptr_t)(&((type *)0)->field))) + +#endif /* __WINE_SERVER_LIST_H */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/port.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/port.h new file mode 100644 index 00000000..f0dab581 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/port.h @@ -0,0 +1,491 @@ +/* + * Wine porting definitions + * + * Copyright 1996 Alexandre Julliard + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_WINE_PORT_H +#define __WINE_WINE_PORT_H + +#ifndef __WINE_CONFIG_H +# error You must include config.h to use this header +#endif + +#ifdef __WINE_BASETSD_H +# error You must include port.h before all other headers +#endif + +#define _GNU_SOURCE /* for pread/pwrite */ +#include <fcntl.h> +#include <math.h> +#include <sys/types.h> +#include <sys/stat.h> +#ifdef HAVE_DIRECT_H +# include <direct.h> +#endif +#ifdef HAVE_IO_H +# include <io.h> +#endif +#ifdef HAVE_PROCESS_H +# include <process.h> +#endif +#include <string.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif + +/* Can't use windef.h here, cause it'd cause problems with NONAMELESSUNION/STRUCT later */ +#ifndef inline +#define inline +#endif + +/**************************************************************** + * Type definitions + */ + +#if !defined(_MSC_VER) && !defined(__int64) +# if defined(__x86_64__) || defined(_WIN64) +# define __int64 long +# else +# define __int64 long long +# endif +#endif + +#ifndef HAVE_MODE_T +typedef int mode_t; +#endif +#ifndef HAVE_OFF_T +typedef long off_t; +#endif +#ifndef HAVE_PID_T +typedef int pid_t; +#endif +#ifndef HAVE_SIZE_T +typedef unsigned int size_t; +#endif +#ifndef HAVE_SSIZE_T +typedef int ssize_t; +#endif +#ifndef HAVE_FSBLKCNT_T +typedef unsigned long fsblkcnt_t; +#endif +#ifndef HAVE_FSFILCNT_T +typedef unsigned long fsfilcnt_t; +#endif + +#ifndef HAVE_STRUCT_STATVFS_F_BLOCKS +struct statvfs +{ + unsigned long f_bsize; + unsigned long f_frsize; + fsblkcnt_t f_blocks; + fsblkcnt_t f_bfree; + fsblkcnt_t f_bavail; + fsfilcnt_t f_files; + fsfilcnt_t f_ffree; + fsfilcnt_t f_favail; + unsigned long f_fsid; + unsigned long f_flag; + unsigned long f_namemax; +}; +#endif /* HAVE_STRUCT_STATVFS_F_BLOCKS */ + + +/**************************************************************** + * Macro definitions + */ + +#ifdef HAVE_DLFCN_H +#include <dlfcn.h> +#else +#define RTLD_LAZY 0x001 +#define RTLD_NOW 0x002 +#define RTLD_GLOBAL 0x100 +#endif + +#ifdef HAVE_ONE_ARG_MKDIR +#define mkdir(path,mode) mkdir(path) +#endif + +#if !defined(HAVE_FTRUNCATE) && defined(HAVE_CHSIZE) +#define ftruncate chsize +#endif + +#if !defined(HAVE_POPEN) && defined(HAVE__POPEN) +#define popen _popen +#endif + +#if !defined(HAVE_PCLOSE) && defined(HAVE__PCLOSE) +#define pclose _pclose +#endif + +#if !defined(HAVE_STRDUP) && defined(HAVE__STRDUP) +#define strdup _strdup +#endif + +#if !defined(HAVE_SNPRINTF) && defined(HAVE__SNPRINTF) +#define snprintf _snprintf +#endif + +#if !defined(HAVE_VSNPRINTF) && defined(HAVE__VSNPRINTF) +#define vsnprintf _vsnprintf +#endif + +#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64) +#define strtoll _strtoi64 +#endif + +#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64) +#define strtoull _strtoui64 +#endif + +#ifndef S_ISLNK +# define S_ISLNK(mod) (0) +#endif + +#ifndef S_ISSOCK +# define S_ISSOCK(mod) (0) +#endif + +#ifndef S_ISDIR +# define S_ISDIR(mod) (((mod) & _S_IFMT) == _S_IFDIR) +#endif + +#ifndef S_ISCHR +# define S_ISCHR(mod) (((mod) & _S_IFMT) == _S_IFCHR) +#endif + +#ifndef S_ISFIFO +# define S_ISFIFO(mod) (((mod) & _S_IFMT) == _S_IFIFO) +#endif + +#ifndef S_ISREG +# define S_ISREG(mod) (((mod) & _S_IFMT) == _S_IFREG) +#endif + +/* So we open files in 64 bit access mode on Linux */ +#ifndef O_LARGEFILE +# define O_LARGEFILE 0 +#endif + +#ifndef O_NONBLOCK +# define O_NONBLOCK 0 +#endif + +#ifndef O_BINARY +# define O_BINARY 0 +#endif + + +/**************************************************************** + * Constants + */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +#ifndef M_PI_2 +#define M_PI_2 1.570796326794896619 +#endif + + +/**************************************************************** + * Function definitions (only when using libwine_port) + */ + +#ifndef NO_LIBWINE_PORT + +#ifndef HAVE_FSTATVFS +int fstatvfs( int fd, struct statvfs *buf ); +#endif + +#ifndef HAVE_GETOPT_LONG +extern char *optarg; +extern int optind; +extern int opterr; +extern int optopt; +struct option; + +#ifndef HAVE_STRUCT_OPTION_NAME +struct option +{ + const char *name; + int has_arg; + int *flag; + int val; +}; +#endif + +extern int getopt_long (int ___argc, char *const *___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind); +extern int getopt_long_only (int ___argc, char *const *___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind); +#endif /* HAVE_GETOPT_LONG */ + +#ifndef HAVE_FFS +int ffs( int x ); +#endif + +#ifndef HAVE_FUTIMES +struct timeval; +int futimes(int fd, const struct timeval *tv); +#endif + +#ifndef HAVE_GETPAGESIZE +size_t getpagesize(void); +#endif /* HAVE_GETPAGESIZE */ + +#ifndef HAVE_GETTID +pid_t gettid(void); +#endif /* HAVE_GETTID */ + +#ifndef HAVE_ISINF +# undef isinf /* VBox: _MSC_VER >= RT_MSC_VER_VC120 has complicated macro implementation in math.h */ +int isinf(double x); +#endif + +#ifndef HAVE_ISNAN +# undef isnan /* VBox: _MSC_VER >= RT_MSC_VER_VC120 has complicated macro implementation in math.h */ +int isnan(double x); +#endif + +#ifndef HAVE_LSTAT +int lstat(const char *file_name, struct stat *buf); +#endif /* HAVE_LSTAT */ + +#ifndef HAVE_MEMMOVE +void *memmove(void *dest, const void *src, size_t len); +#endif /* !defined(HAVE_MEMMOVE) */ + +#ifndef HAVE_POLL +struct pollfd +{ + int fd; + short events; + short revents; +}; +#define POLLIN 0x01 +#define POLLPRI 0x02 +#define POLLOUT 0x04 +#define POLLERR 0x08 +#define POLLHUP 0x10 +#define POLLNVAL 0x20 +int poll( struct pollfd *fds, unsigned int count, int timeout ); +#endif /* HAVE_POLL */ + +#ifndef HAVE_PREAD +ssize_t pread( int fd, void *buf, size_t count, off_t offset ); +#endif /* HAVE_PREAD */ + +#ifndef HAVE_PWRITE +ssize_t pwrite( int fd, const void *buf, size_t count, off_t offset ); +#endif /* HAVE_PWRITE */ + +#ifndef HAVE_READLINK +int readlink( const char *path, char *buf, size_t size ); +#endif /* HAVE_READLINK */ + +#ifndef HAVE_STATVFS +int statvfs( const char *path, struct statvfs *buf ); +#endif + +#ifndef HAVE_STRNCASECMP +# ifndef HAVE__STRNICMP +int strncasecmp(const char *str1, const char *str2, size_t n); +# else +# define strncasecmp _strnicmp +# endif +#endif /* !defined(HAVE_STRNCASECMP) */ + +#ifndef HAVE_STRERROR +const char *strerror(int err); +#endif /* !defined(HAVE_STRERROR) */ + +#ifndef HAVE_STRCASECMP +# ifndef HAVE__STRICMP +int strcasecmp(const char *str1, const char *str2); +# else +# define strcasecmp _stricmp +# endif +#endif /* !defined(HAVE_STRCASECMP) */ + +#ifndef HAVE_SYMLINK +int symlink(const char *from, const char *to); +#endif + +#ifndef HAVE_USLEEP +int usleep (unsigned int useconds); +#endif /* !defined(HAVE_USLEEP) */ + +#ifdef __i386__ +static inline void *memcpy_unaligned( void *dst, const void *src, size_t size ) +{ + return memcpy( dst, src, size ); +} +#else +extern void *memcpy_unaligned( void *dst, const void *src, size_t size ); +#endif /* __i386__ */ + +extern int mkstemps(char *template, int suffix_len); + +/* Process creation flags */ +#ifndef _P_WAIT +# define _P_WAIT 0 +# define _P_NOWAIT 1 +# define _P_OVERLAY 2 +# define _P_NOWAITO 3 +# define _P_DETACH 4 +#endif +#ifndef HAVE_SPAWNVP +extern int spawnvp(int mode, const char *cmdname, const char * const argv[]); +#endif + +/* Interlocked functions */ + +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + +extern inline int interlocked_cmpxchg( int *dest, int xchg, int compare ); +extern inline void *interlocked_cmpxchg_ptr( void **dest, void *xchg, void *compare ); +extern __int64 interlocked_cmpxchg64( __int64 *dest, __int64 xchg, __int64 compare ); +extern inline int interlocked_xchg( int *dest, int val ); +extern inline void *interlocked_xchg_ptr( void **dest, void *val ); +extern inline int interlocked_xchg_add( int *dest, int incr ); + +extern inline int interlocked_cmpxchg( int *dest, int xchg, int compare ) +{ + int ret; + __asm__ __volatile__( "lock; cmpxchgl %2,(%1)" + : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" ); + return ret; +} + +extern inline void *interlocked_cmpxchg_ptr( void **dest, void *xchg, void *compare ) +{ + void *ret; +#ifdef __x86_64__ + __asm__ __volatile__( "lock; cmpxchgq %2,(%1)" + : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" ); +#else + __asm__ __volatile__( "lock; cmpxchgl %2,(%1)" + : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" ); +#endif + return ret; +} + +extern inline int interlocked_xchg( int *dest, int val ) +{ + int ret; + __asm__ __volatile__( "lock; xchgl %0,(%1)" + : "=r" (ret) : "r" (dest), "0" (val) : "memory" ); + return ret; +} + +extern inline void *interlocked_xchg_ptr( void **dest, void *val ) +{ + void *ret; +#ifdef __x86_64__ + __asm__ __volatile__( "lock; xchgq %0,(%1)" + : "=r" (ret) :"r" (dest), "0" (val) : "memory" ); +#else + __asm__ __volatile__( "lock; xchgl %0,(%1)" + : "=r" (ret) : "r" (dest), "0" (val) : "memory" ); +#endif + return ret; +} + +extern inline int interlocked_xchg_add( int *dest, int incr ) +{ + int ret; + __asm__ __volatile__( "lock; xaddl %0,(%1)" + : "=r" (ret) : "r" (dest), "0" (incr) : "memory" ); + return ret; +} + +#ifdef __x86_64__ +extern inline unsigned char interlocked_cmpxchg128( __int64 *dest, __int64 xchg_high, + __int64 xchg_low, __int64 *compare ); +extern inline unsigned char interlocked_cmpxchg128( __int64 *dest, __int64 xchg_high, + __int64 xchg_low, __int64 *compare ) +{ + unsigned char ret; + __asm__ __volatile__( "lock cmpxchg16b %0; setz %b2" + : "=m" (dest[0]), "=m" (dest[1]), "=r" (ret), + "=a" (compare[0]), "=d" (compare[1]) + : "m" (dest[0]), "m" (dest[1]), "3" (compare[0]), "4" (compare[1]), + "c" (xchg_high), "b" (xchg_low) ); + return ret; +} +#endif + +#else /* __GNUC__ */ + +extern int interlocked_cmpxchg( int *dest, int xchg, int compare ); +extern void *interlocked_cmpxchg_ptr( void **dest, void *xchg, void *compare ); +extern __int64 interlocked_cmpxchg64( __int64 *dest, __int64 xchg, __int64 compare ); +extern int interlocked_xchg( int *dest, int val ); +extern void *interlocked_xchg_ptr( void **dest, void *val ); +extern int interlocked_xchg_add( int *dest, int incr ); +#ifdef _WIN64 +extern unsigned char interlocked_cmpxchg128( __int64 *dest, __int64 xchg_high, + __int64 xchg_low, __int64 *compare ); +#endif + +#endif /* __GNUC__ */ + +#else /* NO_LIBWINE_PORT */ + +#define __WINE_NOT_PORTABLE(func) func##_is_not_portable func##_is_not_portable + +#define ffs __WINE_NOT_PORTABLE(ffs) +#define fstatvfs __WINE_NOT_PORTABLE(fstatvfs) +#define futimes __WINE_NOT_PORTABLE(futimes) +#define getopt_long __WINE_NOT_PORTABLE(getopt_long) +#define getopt_long_only __WINE_NOT_PORTABLE(getopt_long_only) +#define getpagesize __WINE_NOT_PORTABLE(getpagesize) +#define interlocked_cmpxchg __WINE_NOT_PORTABLE(interlocked_cmpxchg) +#define interlocked_cmpxchg_ptr __WINE_NOT_PORTABLE(interlocked_cmpxchg_ptr) +#define interlocked_xchg __WINE_NOT_PORTABLE(interlocked_xchg) +#define interlocked_xchg_ptr __WINE_NOT_PORTABLE(interlocked_xchg_ptr) +#define interlocked_xchg_add __WINE_NOT_PORTABLE(interlocked_xchg_add) +#define lstat __WINE_NOT_PORTABLE(lstat) +#define memcpy_unaligned __WINE_NOT_PORTABLE(memcpy_unaligned) +#undef memmove +#define memmove __WINE_NOT_PORTABLE(memmove) +#define pread __WINE_NOT_PORTABLE(pread) +#define pwrite __WINE_NOT_PORTABLE(pwrite) +#define spawnvp __WINE_NOT_PORTABLE(spawnvp) +#define statvfs __WINE_NOT_PORTABLE(statvfs) +#define strcasecmp __WINE_NOT_PORTABLE(strcasecmp) +#define strerror __WINE_NOT_PORTABLE(strerror) +#define strncasecmp __WINE_NOT_PORTABLE(strncasecmp) +#define usleep __WINE_NOT_PORTABLE(usleep) + +#endif /* NO_LIBWINE_PORT */ + +#endif /* !defined(__WINE_WINE_PORT_H) */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/rbtree.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/rbtree.h new file mode 100644 index 00000000..cda5fd4d --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/rbtree.h @@ -0,0 +1,357 @@ +/* + * Red-black search tree support + * + * Copyright 2009 Henri Verbeet + * Copyright 2009 Andrew Riedi + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_WINE_RBTREE_H +#define __WINE_WINE_RBTREE_H + +#ifdef inline +#undef inline +#endif +#define inline __inline + + +#define WINE_RB_ENTRY_VALUE(element, type, field) \ + ((type *)((char *)(element) - FIELD_OFFSET(type, field))) + +struct wine_rb_entry +{ + struct wine_rb_entry *left; + struct wine_rb_entry *right; + unsigned int flags; +}; + +struct wine_rb_stack +{ + struct wine_rb_entry ***entries; + size_t count; + size_t size; +}; + +struct wine_rb_functions +{ + void *(*alloc)(size_t size); + void *(*realloc)(void *ptr, size_t size); + void (*free)(void *ptr); + int (*compare)(const void *key, const struct wine_rb_entry *entry); +}; + +struct wine_rb_tree +{ + const struct wine_rb_functions *functions; + struct wine_rb_entry *root; + struct wine_rb_stack stack; +}; + +typedef void (wine_rb_traverse_func_t)(struct wine_rb_entry *entry, void *context); + +#define WINE_RB_FLAG_RED 0x1 +#define WINE_RB_FLAG_STOP 0x2 +#define WINE_RB_FLAG_TRAVERSED_LEFT 0x4 +#define WINE_RB_FLAG_TRAVERSED_RIGHT 0x8 + +static inline void wine_rb_stack_clear(struct wine_rb_stack *stack) +{ + stack->count = 0; +} + +static inline void wine_rb_stack_push(struct wine_rb_stack *stack, struct wine_rb_entry **entry) +{ + stack->entries[stack->count++] = entry; +} + +static inline int wine_rb_ensure_stack_size(struct wine_rb_tree *tree, size_t size) +{ + struct wine_rb_stack *stack = &tree->stack; + + if (size > stack->size) + { + size_t new_size = stack->size << 1; + struct wine_rb_entry ***new_entries = tree->functions->realloc(stack->entries, + new_size * sizeof(*stack->entries)); + + if (!new_entries) return -1; + + stack->entries = new_entries; + stack->size = new_size; + } + + return 0; +} + +static inline int wine_rb_is_red(struct wine_rb_entry *entry) +{ + return entry && (entry->flags & WINE_RB_FLAG_RED); +} + +static inline void wine_rb_rotate_left(struct wine_rb_entry **entry) +{ + struct wine_rb_entry *e = *entry; + struct wine_rb_entry *right = e->right; + + e->right = right->left; + right->left = e; + right->flags &= ~WINE_RB_FLAG_RED; + right->flags |= e->flags & WINE_RB_FLAG_RED; + e->flags |= WINE_RB_FLAG_RED; + *entry = right; +} + +static inline void wine_rb_rotate_right(struct wine_rb_entry **entry) +{ + struct wine_rb_entry *e = *entry; + struct wine_rb_entry *left = e->left; + + e->left = left->right; + left->right = e; + left->flags &= ~WINE_RB_FLAG_RED; + left->flags |= e->flags & WINE_RB_FLAG_RED; + e->flags |= WINE_RB_FLAG_RED; + *entry = left; +} + +static inline void wine_rb_flip_color(struct wine_rb_entry *entry) +{ + entry->flags ^= WINE_RB_FLAG_RED; + entry->left->flags ^= WINE_RB_FLAG_RED; + entry->right->flags ^= WINE_RB_FLAG_RED; +} + +static inline void wine_rb_fixup(struct wine_rb_stack *stack) +{ + while (stack->count) + { + struct wine_rb_entry **entry = stack->entries[stack->count - 1]; + + if ((*entry)->flags & WINE_RB_FLAG_STOP) + { + (*entry)->flags &= ~WINE_RB_FLAG_STOP; + return; + } + + if (wine_rb_is_red((*entry)->right) && !wine_rb_is_red((*entry)->left)) wine_rb_rotate_left(entry); + if (wine_rb_is_red((*entry)->left) && wine_rb_is_red((*entry)->left->left)) wine_rb_rotate_right(entry); + if (wine_rb_is_red((*entry)->left) && wine_rb_is_red((*entry)->right)) wine_rb_flip_color(*entry); + --stack->count; + } +} + +static inline void wine_rb_move_red_left(struct wine_rb_entry **entry) +{ + wine_rb_flip_color(*entry); + if (wine_rb_is_red((*entry)->right->left)) + { + wine_rb_rotate_right(&(*entry)->right); + wine_rb_rotate_left(entry); + wine_rb_flip_color(*entry); + } +} + +static inline void wine_rb_move_red_right(struct wine_rb_entry **entry) +{ + wine_rb_flip_color(*entry); + if (wine_rb_is_red((*entry)->left->left)) + { + wine_rb_rotate_right(entry); + wine_rb_flip_color(*entry); + } +} + +static inline void wine_rb_postorder(struct wine_rb_tree *tree, wine_rb_traverse_func_t *callback, void *context) +{ + struct wine_rb_entry **entry; + + if (!tree->root) return; + + for (entry = &tree->root;;) + { + struct wine_rb_entry *e = *entry; + + if (e->left && !(e->flags & WINE_RB_FLAG_TRAVERSED_LEFT)) + { + wine_rb_stack_push(&tree->stack, entry); + e->flags |= WINE_RB_FLAG_TRAVERSED_LEFT; + entry = &e->left; + continue; + } + + if (e->right && !(e->flags & WINE_RB_FLAG_TRAVERSED_RIGHT)) + { + wine_rb_stack_push(&tree->stack, entry); + e->flags |= WINE_RB_FLAG_TRAVERSED_RIGHT; + entry = &e->right; + continue; + } + + e->flags &= ~(WINE_RB_FLAG_TRAVERSED_LEFT | WINE_RB_FLAG_TRAVERSED_RIGHT); + callback(e, context); + + if (!tree->stack.count) break; + entry = tree->stack.entries[--tree->stack.count]; + } +} + +static inline int wine_rb_init(struct wine_rb_tree *tree, const struct wine_rb_functions *functions) +{ + tree->functions = functions; + tree->root = NULL; + + tree->stack.entries = functions->alloc(16 * sizeof(*tree->stack.entries)); + if (!tree->stack.entries) return -1; + tree->stack.size = 16; + tree->stack.count = 0; + + return 0; +} + +static inline void wine_rb_for_each_entry(struct wine_rb_tree *tree, wine_rb_traverse_func_t *callback, void *context) +{ + wine_rb_postorder(tree, callback, context); +} + +static inline void wine_rb_destroy(struct wine_rb_tree *tree, wine_rb_traverse_func_t *callback, void *context) +{ + /* Note that we use postorder here because the callback will likely free the entry. */ + if (callback) wine_rb_postorder(tree, callback, context); + + tree->root = NULL; + tree->functions->free(tree->stack.entries); +} + +static inline struct wine_rb_entry *wine_rb_get(const struct wine_rb_tree *tree, const void *key) +{ + struct wine_rb_entry *entry = tree->root; + while (entry) + { + int c = tree->functions->compare(key, entry); + if (!c) return entry; + entry = c < 0 ? entry->left : entry->right; + } + return NULL; +} + +static inline int wine_rb_put(struct wine_rb_tree *tree, const void *key, struct wine_rb_entry *entry) +{ + struct wine_rb_entry **parent = &tree->root; + size_t black_height = 1; + + while (*parent) + { + int c; + + if (!wine_rb_is_red(*parent)) ++black_height; + + wine_rb_stack_push(&tree->stack, parent); + + c = tree->functions->compare(key, *parent); + if (!c) + { + wine_rb_stack_clear(&tree->stack); + return -1; + } + else if (c < 0) parent = &(*parent)->left; + else parent = &(*parent)->right; + } + + /* After insertion, the path length to any node should be <= (black_height + 1) * 2. */ + if (wine_rb_ensure_stack_size(tree, black_height << 1) == -1) + { + wine_rb_stack_clear(&tree->stack); + return -1; + } + + entry->flags = WINE_RB_FLAG_RED; + entry->left = NULL; + entry->right = NULL; + *parent = entry; + + wine_rb_fixup(&tree->stack); + tree->root->flags &= ~WINE_RB_FLAG_RED; + + return 0; +} + +static inline void wine_rb_remove(struct wine_rb_tree *tree, const void *key) +{ + struct wine_rb_entry **entry = &tree->root; + + while (*entry) + { + if (tree->functions->compare(key, *entry) < 0) + { + wine_rb_stack_push(&tree->stack, entry); + if (!wine_rb_is_red((*entry)->left) && !wine_rb_is_red((*entry)->left->left)) wine_rb_move_red_left(entry); + entry = &(*entry)->left; + } + else + { + if (wine_rb_is_red((*entry)->left)) wine_rb_rotate_right(entry); + if (!tree->functions->compare(key, *entry) && !(*entry)->right) + { + *entry = NULL; + break; + } + if (!wine_rb_is_red((*entry)->right) && !wine_rb_is_red((*entry)->right->left)) + wine_rb_move_red_right(entry); + if (!tree->functions->compare(key, *entry)) + { + struct wine_rb_entry **e = &(*entry)->right; + struct wine_rb_entry *m = *e; + while (m->left) m = m->left; + + wine_rb_stack_push(&tree->stack, entry); + (*entry)->flags |= WINE_RB_FLAG_STOP; + + while ((*e)->left) + { + wine_rb_stack_push(&tree->stack, e); + if (!wine_rb_is_red((*e)->left) && !wine_rb_is_red((*e)->left->left)) wine_rb_move_red_left(e); + e = &(*e)->left; + } + *e = NULL; + wine_rb_fixup(&tree->stack); + + *m = **entry; + *entry = m; + + break; + } + else + { + wine_rb_stack_push(&tree->stack, entry); + entry = &(*entry)->right; + } + } + } + + wine_rb_fixup(&tree->stack); + if (tree->root) tree->root->flags &= ~WINE_RB_FLAG_RED; +} + +#endif /* __WINE_WINE_RBTREE_H */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/unicode.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/unicode.h new file mode 100644 index 00000000..9f3185cd --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/unicode.h @@ -0,0 +1,355 @@ +/* + * Wine internal Unicode definitions + * + * Copyright 2000 Alexandre Julliard + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef __WINE_WINE_UNICODE_H +#define __WINE_WINE_UNICODE_H + +#include <stdarg.h> + +#include <windef.h> +#include <winbase.h> +#include <winnls.h> + +#ifdef __WINE_WINE_TEST_H +#error This file should not be used in Wine tests +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef WINE_UNICODE_API +# if defined(_MSC_VER) || defined(__MINGW32__) +# define WINE_UNICODE_API DECLSPEC_IMPORT +# else +# define WINE_UNICODE_API +# endif +#endif + +/*#ifndef WINE_UNICODE_INLINE +#define WINE_UNICODE_INLINE extern inline +#endif*/ +#define WINE_UNICODE_INLINE static __inline + +/* code page info common to SBCS and DBCS */ +struct cp_info +{ + unsigned int codepage; /* codepage id */ + unsigned int char_size; /* char size (1 or 2 bytes) */ + WCHAR def_char; /* default char value (can be double-byte) */ + WCHAR def_unicode_char; /* default Unicode char value */ + const char *name; /* code page name */ +}; + +struct sbcs_table +{ + struct cp_info info; + const WCHAR *cp2uni; /* code page -> Unicode map */ + const WCHAR *cp2uni_glyphs; /* code page -> Unicode map with glyph chars */ + const unsigned char *uni2cp_low; /* Unicode -> code page map */ + const unsigned short *uni2cp_high; +}; + +struct dbcs_table +{ + struct cp_info info; + const WCHAR *cp2uni; /* code page -> Unicode map */ + const unsigned char *cp2uni_leadbytes; + const unsigned short *uni2cp_low; /* Unicode -> code page map */ + const unsigned short *uni2cp_high; + unsigned char lead_bytes[12]; /* lead bytes ranges */ +}; + +union cptable +{ + struct cp_info info; + struct sbcs_table sbcs; + struct dbcs_table dbcs; +}; + +extern const union cptable *wine_cp_get_table( unsigned int codepage ); +extern const union cptable *wine_cp_enum_table( unsigned int index ); + +extern int wine_cp_mbstowcs( const union cptable *table, int flags, + const char *src, int srclen, + WCHAR *dst, int dstlen ); +extern int wine_cp_wcstombs( const union cptable *table, int flags, + const WCHAR *src, int srclen, + char *dst, int dstlen, const char *defchar, int *used ); +extern int wine_cpsymbol_mbstowcs( const char *src, int srclen, WCHAR *dst, int dstlen ); +extern int wine_cpsymbol_wcstombs( const WCHAR *src, int srclen, char *dst, int dstlen ); +extern int wine_utf8_mbstowcs( int flags, const char *src, int srclen, WCHAR *dst, int dstlen ); +extern int wine_utf8_wcstombs( int flags, const WCHAR *src, int srclen, char *dst, int dstlen ); + +extern int wine_compare_string( int flags, const WCHAR *str1, int len1, const WCHAR *str2, int len2 ); +extern int wine_get_sortkey( int flags, const WCHAR *src, int srclen, char *dst, int dstlen ); +extern int wine_fold_string( int flags, const WCHAR *src, int srclen , WCHAR *dst, int dstlen ); + +extern int strcmpiW( const WCHAR *str1, const WCHAR *str2 ); +extern int strncmpiW( const WCHAR *str1, const WCHAR *str2, int n ); +extern int memicmpW( const WCHAR *str1, const WCHAR *str2, int n ); +extern WCHAR *strstrW( const WCHAR *str, const WCHAR *sub ); +extern long int strtolW( const WCHAR *nptr, WCHAR **endptr, int base ); +extern unsigned long int strtoulW( const WCHAR *nptr, WCHAR **endptr, int base ); +extern int sprintfW( WCHAR *str, const WCHAR *format, ... ); +extern int snprintfW( WCHAR *str, size_t len, const WCHAR *format, ... ); +extern int vsprintfW( WCHAR *str, const WCHAR *format, va_list valist ); +extern int vsnprintfW( WCHAR *str, size_t len, const WCHAR *format, va_list valist ); + +#ifdef WINE_UNICODE_INLINE + +WINE_UNICODE_INLINE int wine_is_dbcs_leadbyte( const union cptable *table, unsigned char ch ); +WINE_UNICODE_INLINE int wine_is_dbcs_leadbyte( const union cptable *table, unsigned char ch ) +{ + return (table->info.char_size == 2) && (table->dbcs.cp2uni_leadbytes[ch]); +} + +WINE_UNICODE_INLINE WCHAR tolowerW( WCHAR ch ); +WINE_UNICODE_INLINE WCHAR tolowerW( WCHAR ch ) +{ + extern WINE_UNICODE_API const WCHAR wine_casemap_lower[]; + return ch + wine_casemap_lower[wine_casemap_lower[ch >> 8] + (ch & 0xff)]; +} + +WINE_UNICODE_INLINE WCHAR toupperW( WCHAR ch ); +WINE_UNICODE_INLINE WCHAR toupperW( WCHAR ch ) +{ + extern WINE_UNICODE_API const WCHAR wine_casemap_upper[]; + return ch + wine_casemap_upper[wine_casemap_upper[ch >> 8] + (ch & 0xff)]; +} + +/* the character type contains the C1_* flags in the low 12 bits */ +/* and the C2_* type in the high 4 bits */ +WINE_UNICODE_INLINE unsigned short get_char_typeW( WCHAR ch ); +WINE_UNICODE_INLINE unsigned short get_char_typeW( WCHAR ch ) +{ + extern WINE_UNICODE_API const unsigned short wine_wctype_table[]; + return wine_wctype_table[wine_wctype_table[ch >> 8] + (ch & 0xff)]; +} + +WINE_UNICODE_INLINE int iscntrlW( WCHAR wc ); +WINE_UNICODE_INLINE int iscntrlW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_CNTRL; +} + +WINE_UNICODE_INLINE int ispunctW( WCHAR wc ); +WINE_UNICODE_INLINE int ispunctW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_PUNCT; +} + +WINE_UNICODE_INLINE int isspaceW( WCHAR wc ); +WINE_UNICODE_INLINE int isspaceW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_SPACE; +} + +WINE_UNICODE_INLINE int isdigitW( WCHAR wc ); +WINE_UNICODE_INLINE int isdigitW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_DIGIT; +} + +WINE_UNICODE_INLINE int isxdigitW( WCHAR wc ); +WINE_UNICODE_INLINE int isxdigitW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_XDIGIT; +} + +WINE_UNICODE_INLINE int islowerW( WCHAR wc ); +WINE_UNICODE_INLINE int islowerW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_LOWER; +} + +WINE_UNICODE_INLINE int isupperW( WCHAR wc ); +WINE_UNICODE_INLINE int isupperW( WCHAR wc ) +{ + return get_char_typeW(wc) & C1_UPPER; +} + +WINE_UNICODE_INLINE int isalnumW( WCHAR wc ); +WINE_UNICODE_INLINE int isalnumW( WCHAR wc ) +{ + return get_char_typeW(wc) & (C1_ALPHA|C1_DIGIT|C1_LOWER|C1_UPPER); +} + +WINE_UNICODE_INLINE int isalphaW( WCHAR wc ); +WINE_UNICODE_INLINE int isalphaW( WCHAR wc ) +{ + return get_char_typeW(wc) & (C1_ALPHA|C1_LOWER|C1_UPPER); +} + +WINE_UNICODE_INLINE int isgraphW( WCHAR wc ); +WINE_UNICODE_INLINE int isgraphW( WCHAR wc ) +{ + return get_char_typeW(wc) & (C1_ALPHA|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); +} + +WINE_UNICODE_INLINE int isprintW( WCHAR wc ); +WINE_UNICODE_INLINE int isprintW( WCHAR wc ) +{ + return get_char_typeW(wc) & (C1_ALPHA|C1_BLANK|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); +} + +/* some useful string manipulation routines */ + +WINE_UNICODE_INLINE unsigned int strlenW( const WCHAR *str ); +WINE_UNICODE_INLINE unsigned int strlenW( const WCHAR *str ) +{ + const WCHAR *s = str; + while (*s) s++; + return s - str; +} + +WINE_UNICODE_INLINE WCHAR *strcpyW( WCHAR *dst, const WCHAR *src ); +WINE_UNICODE_INLINE WCHAR *strcpyW( WCHAR *dst, const WCHAR *src ) +{ + WCHAR *p = dst; + while ((*p++ = *src++)); + return dst; +} + +/* strncpy doesn't do what you think, don't use it */ +#define strncpyW(d,s,n) error do_not_use_strncpyW_use_lstrcpynW_or_memcpy_instead + +WINE_UNICODE_INLINE int strcmpW( const WCHAR *str1, const WCHAR *str2 ); +WINE_UNICODE_INLINE int strcmpW( const WCHAR *str1, const WCHAR *str2 ) +{ + while (*str1 && (*str1 == *str2)) { str1++; str2++; } + return *str1 - *str2; +} + +WINE_UNICODE_INLINE int strncmpW( const WCHAR *str1, const WCHAR *str2, int n ); +WINE_UNICODE_INLINE int strncmpW( const WCHAR *str1, const WCHAR *str2, int n ) +{ + if (n <= 0) return 0; + while ((--n > 0) && *str1 && (*str1 == *str2)) { str1++; str2++; } + return *str1 - *str2; +} + +WINE_UNICODE_INLINE WCHAR *strcatW( WCHAR *dst, const WCHAR *src ); +WINE_UNICODE_INLINE WCHAR *strcatW( WCHAR *dst, const WCHAR *src ) +{ + strcpyW( dst + strlenW(dst), src ); + return dst; +} + +WINE_UNICODE_INLINE WCHAR *strchrW( const WCHAR *str, WCHAR ch ); +WINE_UNICODE_INLINE WCHAR *strchrW( const WCHAR *str, WCHAR ch ) +{ + do { if (*str == ch) return (WCHAR *)(ULONG_PTR)str; } while (*str++); + return NULL; +} + +WINE_UNICODE_INLINE WCHAR *strrchrW( const WCHAR *str, WCHAR ch ); +WINE_UNICODE_INLINE WCHAR *strrchrW( const WCHAR *str, WCHAR ch ) +{ + WCHAR *ret = NULL; + do { if (*str == ch) ret = (WCHAR *)(ULONG_PTR)str; } while (*str++); + return ret; +} + +WINE_UNICODE_INLINE WCHAR *strpbrkW( const WCHAR *str, const WCHAR *accept ); +WINE_UNICODE_INLINE WCHAR *strpbrkW( const WCHAR *str, const WCHAR *accept ) +{ + for ( ; *str; str++) if (strchrW( accept, *str )) return (WCHAR *)(ULONG_PTR)str; + return NULL; +} + +WINE_UNICODE_INLINE size_t strspnW( const WCHAR *str, const WCHAR *accept ); +WINE_UNICODE_INLINE size_t strspnW( const WCHAR *str, const WCHAR *accept ) +{ + const WCHAR *ptr; + for (ptr = str; *ptr; ptr++) if (!strchrW( accept, *ptr )) break; + return ptr - str; +} + +WINE_UNICODE_INLINE size_t strcspnW( const WCHAR *str, const WCHAR *reject ); +WINE_UNICODE_INLINE size_t strcspnW( const WCHAR *str, const WCHAR *reject ) +{ + const WCHAR *ptr; + for (ptr = str; *ptr; ptr++) if (strchrW( reject, *ptr )) break; + return ptr - str; +} + +WINE_UNICODE_INLINE WCHAR *strlwrW( WCHAR *str ); +WINE_UNICODE_INLINE WCHAR *strlwrW( WCHAR *str ) +{ + WCHAR *ret = str; + while ((*str = tolowerW(*str))) str++; + return ret; +} + +WINE_UNICODE_INLINE WCHAR *struprW( WCHAR *str ); +WINE_UNICODE_INLINE WCHAR *struprW( WCHAR *str ) +{ + WCHAR *ret = str; + while ((*str = toupperW(*str))) str++; + return ret; +} + +WINE_UNICODE_INLINE WCHAR *memchrW( const WCHAR *ptr, WCHAR ch, size_t n ); +WINE_UNICODE_INLINE WCHAR *memchrW( const WCHAR *ptr, WCHAR ch, size_t n ) +{ + const WCHAR *end; + for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) return (WCHAR *)(ULONG_PTR)ptr; + return NULL; +} + +WINE_UNICODE_INLINE WCHAR *memrchrW( const WCHAR *ptr, WCHAR ch, size_t n ); +WINE_UNICODE_INLINE WCHAR *memrchrW( const WCHAR *ptr, WCHAR ch, size_t n ) +{ + const WCHAR *end; + WCHAR *ret = NULL; + for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) ret = (WCHAR *)(ULONG_PTR)ptr; + return ret; +} + +WINE_UNICODE_INLINE long int atolW( const WCHAR *str ); +WINE_UNICODE_INLINE long int atolW( const WCHAR *str ) +{ + return strtolW( str, (WCHAR **)0, 10 ); +} + +WINE_UNICODE_INLINE int atoiW( const WCHAR *str ); +WINE_UNICODE_INLINE int atoiW( const WCHAR *str ) +{ + return (int)atolW( str ); +} +#endif //#ifdef WINE_UNICODE_INLINE + +#undef WINE_UNICODE_INLINE + +#ifdef __cplusplus +} +#endif + +#endif /* __WINE_WINE_UNICODE_H */ diff --git a/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/wined3d.h b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/wined3d.h new file mode 100644 index 00000000..5dbf7a46 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/libWineStub/include/wine/wined3d.h @@ -0,0 +1,9725 @@ +/*** Autogenerated by WIDL 1.1.43 from ../../include/wine/wined3d.idl - Do not edit ***/ + +#include <rpc.h> +#include <rpcndr.h> + +#ifndef __WIDL_WINED3D_H +#define __WIDL_WINED3D_H + +#ifdef VBOX_WITH_WDDM +#include "../../../vbox/VBoxWineEx.h" +#endif + +# define DECLSPEC_HIDDEN + +#ifdef __cplusplus +extern "C" { +#endif + +/* Headers for imported files */ + +#include <unknwn.h> + +/* Forward declarations */ + +#ifndef __IWineD3DDeviceParent_FWD_DEFINED__ +#define __IWineD3DDeviceParent_FWD_DEFINED__ +typedef interface IWineD3DDeviceParent IWineD3DDeviceParent; +#endif + +#ifndef __IWineD3DBase_FWD_DEFINED__ +#define __IWineD3DBase_FWD_DEFINED__ +typedef interface IWineD3DBase IWineD3DBase; +#endif + +#ifndef __IWineD3D_FWD_DEFINED__ +#define __IWineD3D_FWD_DEFINED__ +typedef interface IWineD3D IWineD3D; +#endif + +#ifndef __IWineD3DResource_FWD_DEFINED__ +#define __IWineD3DResource_FWD_DEFINED__ +typedef interface IWineD3DResource IWineD3DResource; +#endif + +#ifndef __IWineD3DRendertargetView_FWD_DEFINED__ +#define __IWineD3DRendertargetView_FWD_DEFINED__ +typedef interface IWineD3DRendertargetView IWineD3DRendertargetView; +#endif + +#ifndef __IWineD3DPalette_FWD_DEFINED__ +#define __IWineD3DPalette_FWD_DEFINED__ +typedef interface IWineD3DPalette IWineD3DPalette; +#endif + +#ifndef __IWineD3DClipper_FWD_DEFINED__ +#define __IWineD3DClipper_FWD_DEFINED__ +typedef interface IWineD3DClipper IWineD3DClipper; +#endif + +#ifndef __IWineD3DSurface_FWD_DEFINED__ +#define __IWineD3DSurface_FWD_DEFINED__ +typedef interface IWineD3DSurface IWineD3DSurface; +#endif + +#ifndef __IWineD3DVolume_FWD_DEFINED__ +#define __IWineD3DVolume_FWD_DEFINED__ +typedef interface IWineD3DVolume IWineD3DVolume; +#endif + +#ifndef __IWineD3DBaseTexture_FWD_DEFINED__ +#define __IWineD3DBaseTexture_FWD_DEFINED__ +typedef interface IWineD3DBaseTexture IWineD3DBaseTexture; +#endif + +#ifndef __IWineD3DTexture_FWD_DEFINED__ +#define __IWineD3DTexture_FWD_DEFINED__ +typedef interface IWineD3DTexture IWineD3DTexture; +#endif + +#ifndef __IWineD3DCubeTexture_FWD_DEFINED__ +#define __IWineD3DCubeTexture_FWD_DEFINED__ +typedef interface IWineD3DCubeTexture IWineD3DCubeTexture; +#endif + +#ifndef __IWineD3DVolumeTexture_FWD_DEFINED__ +#define __IWineD3DVolumeTexture_FWD_DEFINED__ +typedef interface IWineD3DVolumeTexture IWineD3DVolumeTexture; +#endif + +#ifndef __IWineD3DVertexDeclaration_FWD_DEFINED__ +#define __IWineD3DVertexDeclaration_FWD_DEFINED__ +typedef interface IWineD3DVertexDeclaration IWineD3DVertexDeclaration; +#endif + +#ifndef __IWineD3DStateBlock_FWD_DEFINED__ +#define __IWineD3DStateBlock_FWD_DEFINED__ +typedef interface IWineD3DStateBlock IWineD3DStateBlock; +#endif + +#ifndef __IWineD3DQuery_FWD_DEFINED__ +#define __IWineD3DQuery_FWD_DEFINED__ +typedef interface IWineD3DQuery IWineD3DQuery; +#endif + +#ifndef __IWineD3DSwapChain_FWD_DEFINED__ +#define __IWineD3DSwapChain_FWD_DEFINED__ +typedef interface IWineD3DSwapChain IWineD3DSwapChain; +#endif + +#ifndef __IWineD3DBuffer_FWD_DEFINED__ +#define __IWineD3DBuffer_FWD_DEFINED__ +typedef interface IWineD3DBuffer IWineD3DBuffer; +#endif + +#ifndef __IWineD3DBaseShader_FWD_DEFINED__ +#define __IWineD3DBaseShader_FWD_DEFINED__ +typedef interface IWineD3DBaseShader IWineD3DBaseShader; +#endif + +#ifndef __IWineD3DVertexShader_FWD_DEFINED__ +#define __IWineD3DVertexShader_FWD_DEFINED__ +typedef interface IWineD3DVertexShader IWineD3DVertexShader; +#endif + +#ifndef __IWineD3DGeometryShader_FWD_DEFINED__ +#define __IWineD3DGeometryShader_FWD_DEFINED__ +typedef interface IWineD3DGeometryShader IWineD3DGeometryShader; +#endif + +#ifndef __IWineD3DPixelShader_FWD_DEFINED__ +#define __IWineD3DPixelShader_FWD_DEFINED__ +typedef interface IWineD3DPixelShader IWineD3DPixelShader; +#endif + +#ifndef __IWineD3DDevice_FWD_DEFINED__ +#define __IWineD3DDevice_FWD_DEFINED__ +typedef interface IWineD3DDevice IWineD3DDevice; +#endif + + +#if 0 +typedef HANDLE HMONITOR; +typedef struct _RGNDATAHEADER { + DWORD dwSize; + DWORD iType; + DWORD nCount; + DWORD nRgnSize; + RECT rcBound; +} RGNDATAHEADER; +typedef struct _RGNDATA { + RGNDATAHEADER rdh; + char Buffer[1]; +} RGNDATA; +typedef struct _LUID { + DWORD LowPart; + LONG HighPart; +} LUID; +typedef struct _LUID *PLUID; +#endif +#define WINED3D_OK S_OK +#define _FACWINED3D (0x876) + +#define MAKE_WINED3DSTATUS(code) MAKE_HRESULT(0, _FACWINED3D, code) +#define WINED3DOK_NOAUTOGEN MAKE_WINED3DSTATUS(2159) +#define MAKE_WINED3DHRESULT(code) MAKE_HRESULT(1, _FACWINED3D, code) +#define WINED3DERR_WRONGTEXTUREFORMAT MAKE_WINED3DHRESULT(2072) +#define WINED3DERR_UNSUPPORTEDCOLOROPERATION MAKE_WINED3DHRESULT(2073) +#define WINED3DERR_UNSUPPORTEDCOLORARG MAKE_WINED3DHRESULT(2074) +#define WINED3DERR_UNSUPPORTEDALPHAOPERATION MAKE_WINED3DHRESULT(2075) +#define WINED3DERR_UNSUPPORTEDALPHAARG MAKE_WINED3DHRESULT(2076) +#define WINED3DERR_TOOMANYOPERATIONS MAKE_WINED3DHRESULT(2077) +#define WINED3DERR_CONFLICTINGTEXTUREFILTER MAKE_WINED3DHRESULT(2078) +#define WINED3DERR_UNSUPPORTEDFACTORVALUE MAKE_WINED3DHRESULT(2079) +#define WINED3DERR_CONFLICTINGRENDERSTATE MAKE_WINED3DHRESULT(2081) +#define WINED3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_WINED3DHRESULT(2082) +#define WINED3DERR_CONFLICTINGTEXTUREPALETTE MAKE_WINED3DHRESULT(2086) +#define WINED3DERR_DRIVERINTERNALERROR MAKE_WINED3DHRESULT(2087) +#define WINED3DERR_NOTFOUND MAKE_WINED3DHRESULT(2150) +#define WINED3DERR_MOREDATA MAKE_WINED3DHRESULT(2151) +#define WINED3DERR_DEVICELOST MAKE_WINED3DHRESULT(2152) +#define WINED3DERR_DEVICENOTRESET MAKE_WINED3DHRESULT(2153) +#define WINED3DERR_NOTAVAILABLE MAKE_WINED3DHRESULT(2154) +#define WINED3DERR_OUTOFVIDEOMEMORY MAKE_WINED3DHRESULT(380) +#define WINED3DERR_INVALIDDEVICE MAKE_WINED3DHRESULT(2155) +#define WINED3DERR_INVALIDCALL MAKE_WINED3DHRESULT(2156) +#define WINED3DERR_DRIVERINVALIDCALL MAKE_WINED3DHRESULT(2157) +#define WINED3DERR_WASSTILLDRAWING MAKE_WINED3DHRESULT(540) +#define WINEDDERR_NOTAOVERLAYSURFACE MAKE_WINED3DHRESULT(580) +#define WINEDDERR_NOTLOCKED MAKE_WINED3DHRESULT(584) +#define WINEDDERR_NODC MAKE_WINED3DHRESULT(586) +#define WINEDDERR_DCALREADYCREATED MAKE_WINED3DHRESULT(620) +#define WINEDDERR_NOTFLIPPABLE MAKE_WINED3DHRESULT(582) +#define WINEDDERR_SURFACEBUSY MAKE_WINED3DHRESULT(430) +#define WINEDDERR_INVALIDRECT MAKE_WINED3DHRESULT(150) +#define WINEDDERR_NOCLIPLIST MAKE_WINED3DHRESULT(205) +#define WINEDDERR_OVERLAYNOTVISIBLE MAKE_WINED3DHRESULT(577) +typedef DWORD WINED3DCOLOR; +typedef enum _WINED3DLIGHTTYPE { + WINED3DLIGHT_POINT = 1, + WINED3DLIGHT_SPOT = 2, + WINED3DLIGHT_DIRECTIONAL = 3, + WINED3DLIGHT_PARALLELPOINT = 4, + WINED3DLIGHT_GLSPOT = 5, + WINED3DLIGHT_FORCE_DWORD = 0x7fffffff +} WINED3DLIGHTTYPE; +typedef enum _WINED3DPRIMITIVETYPE { + WINED3DPT_UNDEFINED = 0, + WINED3DPT_POINTLIST = 1, + WINED3DPT_LINELIST = 2, + WINED3DPT_LINESTRIP = 3, + WINED3DPT_TRIANGLELIST = 4, + WINED3DPT_TRIANGLESTRIP = 5, + WINED3DPT_TRIANGLEFAN = 6, + WINED3DPT_LINELIST_ADJ = 10, + WINED3DPT_LINESTRIP_ADJ = 11, + WINED3DPT_TRIANGLELIST_ADJ = 12, + WINED3DPT_TRIANGLESTRIP_ADJ = 13, + WINED3DPT_FORCE_DWORD = 0x7fffffff +} WINED3DPRIMITIVETYPE; +typedef enum _WINED3DDEVTYPE { + WINED3DDEVTYPE_HAL = 1, + WINED3DDEVTYPE_REF = 2, + WINED3DDEVTYPE_SW = 3, + WINED3DDEVTYPE_NULLREF = 4, + WINED3DDEVTYPE_FORCE_DWORD = 0xffffffff +} WINED3DDEVTYPE; +typedef enum _WINED3DDEGREETYPE { + WINED3DDEGREE_LINEAR = 1, + WINED3DDEGREE_QUADRATIC = 2, + WINED3DDEGREE_CUBIC = 3, + WINED3DDEGREE_QUINTIC = 5, + WINED3DDEGREE_FORCE_DWORD = 0x7fffffff +} WINED3DDEGREETYPE; +typedef enum _WINED3DFORMAT { + WINED3DFMT_UNKNOWN = 0, + WINED3DFMT_B8G8R8_UNORM = 1, + WINED3DFMT_B5G5R5X1_UNORM = 2, + WINED3DFMT_B4G4R4A4_UNORM = 3, + WINED3DFMT_B2G3R3_UNORM = 4, + WINED3DFMT_B2G3R3A8_UNORM = 5, + WINED3DFMT_B4G4R4X4_UNORM = 6, + WINED3DFMT_R8G8B8X8_UNORM = 7, + WINED3DFMT_B10G10R10A2_UNORM = 8, + WINED3DFMT_P8_UINT_A8_UNORM = 9, + WINED3DFMT_P8_UINT = 10, + WINED3DFMT_L8_UNORM = 11, + WINED3DFMT_L8A8_UNORM = 12, + WINED3DFMT_L4A4_UNORM = 13, + WINED3DFMT_R5G5_SNORM_L6_UNORM = 14, + WINED3DFMT_R8G8_SNORM_L8X8_UNORM = 15, + WINED3DFMT_R10G11B11_SNORM = 16, + WINED3DFMT_R10G10B10_SNORM_A2_UNORM = 17, + WINED3DFMT_D16_LOCKABLE = 18, + WINED3DFMT_D32_UNORM = 19, + WINED3DFMT_S1_UINT_D15_UNORM = 20, + WINED3DFMT_X8D24_UNORM = 21, + WINED3DFMT_S4X4_UINT_D24_UNORM = 22, + WINED3DFMT_L16_UNORM = 23, + WINED3DFMT_S8_UINT_D24_FLOAT = 24, + WINED3DFMT_VERTEXDATA = 25, + WINED3DFMT_R8G8_SNORM_Cx = 26, + WINED3DFMT_R32G32B32A32_TYPELESS = 27, + WINED3DFMT_R32G32B32A32_FLOAT = 28, + WINED3DFMT_R32G32B32A32_UINT = 29, + WINED3DFMT_R32G32B32A32_SINT = 30, + WINED3DFMT_R32G32B32_TYPELESS = 31, + WINED3DFMT_R32G32B32_FLOAT = 32, + WINED3DFMT_R32G32B32_UINT = 33, + WINED3DFMT_R32G32B32_SINT = 34, + WINED3DFMT_R16G16B16A16_TYPELESS = 35, + WINED3DFMT_R16G16B16A16_FLOAT = 36, + WINED3DFMT_R16G16B16A16_UNORM = 37, + WINED3DFMT_R16G16B16A16_UINT = 38, + WINED3DFMT_R16G16B16A16_SNORM = 39, + WINED3DFMT_R16G16B16A16_SINT = 40, + WINED3DFMT_R32G32_TYPELESS = 41, + WINED3DFMT_R32G32_FLOAT = 42, + WINED3DFMT_R32G32_UINT = 43, + WINED3DFMT_R32G32_SINT = 44, + WINED3DFMT_R32G8X24_TYPELESS = 45, + WINED3DFMT_D32_FLOAT_S8X24_UINT = 46, + WINED3DFMT_R32_FLOAT_X8X24_TYPELESS = 47, + WINED3DFMT_X32_TYPELESS_G8X24_UINT = 48, + WINED3DFMT_R10G10B10A2_TYPELESS = 49, + WINED3DFMT_R10G10B10A2_UNORM = 50, + WINED3DFMT_R10G10B10A2_UINT = 51, + WINED3DFMT_R10G10B10A2_SNORM = 52, + WINED3DFMT_R11G11B10_FLOAT = 53, + WINED3DFMT_R8G8B8A8_TYPELESS = 54, + WINED3DFMT_R8G8B8A8_UNORM = 55, + WINED3DFMT_R8G8B8A8_UNORM_SRGB = 56, + WINED3DFMT_R8G8B8A8_UINT = 57, + WINED3DFMT_R8G8B8A8_SNORM = 58, + WINED3DFMT_R8G8B8A8_SINT = 59, + WINED3DFMT_R16G16_TYPELESS = 60, + WINED3DFMT_R16G16_FLOAT = 61, + WINED3DFMT_R16G16_UNORM = 62, + WINED3DFMT_R16G16_UINT = 63, + WINED3DFMT_R16G16_SNORM = 64, + WINED3DFMT_R16G16_SINT = 65, + WINED3DFMT_R32_TYPELESS = 66, + WINED3DFMT_D32_FLOAT = 67, + WINED3DFMT_R32_FLOAT = 68, + WINED3DFMT_R32_UINT = 69, + WINED3DFMT_R32_SINT = 70, + WINED3DFMT_R24G8_TYPELESS = 71, + WINED3DFMT_D24_UNORM_S8_UINT = 72, + WINED3DFMT_R24_UNORM_X8_TYPELESS = 73, + WINED3DFMT_X24_TYPELESS_G8_UINT = 74, + WINED3DFMT_R8G8_TYPELESS = 75, + WINED3DFMT_R8G8_UNORM = 76, + WINED3DFMT_R8G8_UINT = 77, + WINED3DFMT_R8G8_SNORM = 78, + WINED3DFMT_R8G8_SINT = 79, + WINED3DFMT_R16_TYPELESS = 80, + WINED3DFMT_R16_FLOAT = 81, + WINED3DFMT_D16_UNORM = 82, + WINED3DFMT_R16_UNORM = 83, + WINED3DFMT_R16_UINT = 84, + WINED3DFMT_R16_SNORM = 85, + WINED3DFMT_R16_SINT = 86, + WINED3DFMT_R8_TYPELESS = 87, + WINED3DFMT_R8_UNORM = 88, + WINED3DFMT_R8_UINT = 89, + WINED3DFMT_R8_SNORM = 90, + WINED3DFMT_R8_SINT = 91, + WINED3DFMT_A8_UNORM = 92, + WINED3DFMT_R1_UNORM = 93, + WINED3DFMT_R9G9B9E5_SHAREDEXP = 94, + WINED3DFMT_R8G8_B8G8_UNORM = 95, + WINED3DFMT_G8R8_G8B8_UNORM = 96, + WINED3DFMT_BC1_TYPELESS = 97, + WINED3DFMT_BC1_UNORM = 98, + WINED3DFMT_BC1_UNORM_SRGB = 99, + WINED3DFMT_BC2_TYPELESS = 100, + WINED3DFMT_BC2_UNORM = 101, + WINED3DFMT_BC2_UNORM_SRGB = 102, + WINED3DFMT_BC3_TYPELESS = 103, + WINED3DFMT_BC3_UNORM = 104, + WINED3DFMT_BC3_UNORM_SRGB = 105, + WINED3DFMT_BC4_TYPELESS = 106, + WINED3DFMT_BC4_UNORM = 107, + WINED3DFMT_BC4_SNORM = 108, + WINED3DFMT_BC5_TYPELESS = 109, + WINED3DFMT_BC5_UNORM = 110, + WINED3DFMT_BC5_SNORM = 111, + WINED3DFMT_B5G6R5_UNORM = 112, + WINED3DFMT_B5G5R5A1_UNORM = 113, + WINED3DFMT_B8G8R8A8_UNORM = 114, + WINED3DFMT_B8G8R8X8_UNORM = 115, + WINED3DFMT_UYVY = (((ULONG)(unsigned char)'U' | ((ULONG)(unsigned char)'Y' << 8)) | ((ULONG)(unsigned char)'V' << 16)) | ((ULONG)(unsigned char)'Y' << 24), + WINED3DFMT_YUY2 = (((ULONG)(unsigned char)'Y' | ((ULONG)(unsigned char)'U' << 8)) | ((ULONG)(unsigned char)'Y' << 16)) | ((ULONG)(unsigned char)'2' << 24), + WINED3DFMT_YV12 = (((ULONG)(unsigned char)'Y' | ((ULONG)(unsigned char)'V' << 8)) | ((ULONG)(unsigned char)'1' << 16)) | ((ULONG)(unsigned char)'2' << 24), + WINED3DFMT_DXT1 = (((ULONG)(unsigned char)'D' | ((ULONG)(unsigned char)'X' << 8)) | ((ULONG)(unsigned char)'T' << 16)) | ((ULONG)(unsigned char)'1' << 24), + WINED3DFMT_DXT2 = (((ULONG)(unsigned char)'D' | ((ULONG)(unsigned char)'X' << 8)) | ((ULONG)(unsigned char)'T' << 16)) | ((ULONG)(unsigned char)'2' << 24), + WINED3DFMT_DXT3 = (((ULONG)(unsigned char)'D' | ((ULONG)(unsigned char)'X' << 8)) | ((ULONG)(unsigned char)'T' << 16)) | ((ULONG)(unsigned char)'3' << 24), + WINED3DFMT_DXT4 = (((ULONG)(unsigned char)'D' | ((ULONG)(unsigned char)'X' << 8)) | ((ULONG)(unsigned char)'T' << 16)) | ((ULONG)(unsigned char)'4' << 24), + WINED3DFMT_DXT5 = (((ULONG)(unsigned char)'D' | ((ULONG)(unsigned char)'X' << 8)) | ((ULONG)(unsigned char)'T' << 16)) | ((ULONG)(unsigned char)'5' << 24), + WINED3DFMT_MULTI2_ARGB8 = (((ULONG)(unsigned char)'M' | ((ULONG)(unsigned char)'E' << 8)) | ((ULONG)(unsigned char)'T' << 16)) | ((ULONG)(unsigned char)'1' << 24), + WINED3DFMT_G8R8_G8B8 = (((ULONG)(unsigned char)'G' | ((ULONG)(unsigned char)'R' << 8)) | ((ULONG)(unsigned char)'G' << 16)) | ((ULONG)(unsigned char)'B' << 24), + WINED3DFMT_R8G8_B8G8 = (((ULONG)(unsigned char)'R' | ((ULONG)(unsigned char)'G' << 8)) | ((ULONG)(unsigned char)'B' << 16)) | ((ULONG)(unsigned char)'G' << 24), + WINED3DFMT_ATI2N = (((ULONG)(unsigned char)'A' | ((ULONG)(unsigned char)'T' << 8)) | ((ULONG)(unsigned char)'I' << 16)) | ((ULONG)(unsigned char)'2' << 24), + WINED3DFMT_INST = (((ULONG)(unsigned char)'I' | ((ULONG)(unsigned char)'N' << 8)) | ((ULONG)(unsigned char)'S' << 16)) | ((ULONG)(unsigned char)'T' << 24), + WINED3DFMT_NVHU = (((ULONG)(unsigned char)'N' | ((ULONG)(unsigned char)'V' << 8)) | ((ULONG)(unsigned char)'H' << 16)) | ((ULONG)(unsigned char)'U' << 24), + WINED3DFMT_NVHS = (((ULONG)(unsigned char)'N' | ((ULONG)(unsigned char)'V' << 8)) | ((ULONG)(unsigned char)'H' << 16)) | ((ULONG)(unsigned char)'S' << 24), + WINED3DFMT_FORCE_DWORD = 0xffffffff +} WINED3DFORMAT; +typedef enum _WINED3DRENDERSTATETYPE { + WINED3DRS_ANTIALIAS = 2, + WINED3DRS_TEXTUREPERSPECTIVE = 4, + WINED3DRS_WRAPU = 5, + WINED3DRS_WRAPV = 6, + WINED3DRS_ZENABLE = 7, + WINED3DRS_FILLMODE = 8, + WINED3DRS_SHADEMODE = 9, + WINED3DRS_LINEPATTERN = 10, + WINED3DRS_MONOENABLE = 11, + WINED3DRS_ROP2 = 12, + WINED3DRS_PLANEMASK = 13, + WINED3DRS_ZWRITEENABLE = 14, + WINED3DRS_ALPHATESTENABLE = 15, + WINED3DRS_LASTPIXEL = 16, + WINED3DRS_SRCBLEND = 19, + WINED3DRS_DESTBLEND = 20, + WINED3DRS_CULLMODE = 22, + WINED3DRS_ZFUNC = 23, + WINED3DRS_ALPHAREF = 24, + WINED3DRS_ALPHAFUNC = 25, + WINED3DRS_DITHERENABLE = 26, + WINED3DRS_ALPHABLENDENABLE = 27, + WINED3DRS_FOGENABLE = 28, + WINED3DRS_SPECULARENABLE = 29, + WINED3DRS_ZVISIBLE = 30, + WINED3DRS_SUBPIXEL = 31, + WINED3DRS_SUBPIXELX = 32, + WINED3DRS_STIPPLEDALPHA = 33, + WINED3DRS_FOGCOLOR = 34, + WINED3DRS_FOGTABLEMODE = 35, + WINED3DRS_FOGSTART = 36, + WINED3DRS_FOGEND = 37, + WINED3DRS_FOGDENSITY = 38, + WINED3DRS_STIPPLEENABLE = 39, + WINED3DRS_EDGEANTIALIAS = 40, + WINED3DRS_COLORKEYENABLE = 41, + WINED3DRS_MIPMAPLODBIAS = 46, + WINED3DRS_ZBIAS = 47, + WINED3DRS_RANGEFOGENABLE = 48, + WINED3DRS_ANISOTROPY = 49, + WINED3DRS_FLUSHBATCH = 50, + WINED3DRS_TRANSLUCENTSORTINDEPENDENT = 51, + WINED3DRS_STENCILENABLE = 52, + WINED3DRS_STENCILFAIL = 53, + WINED3DRS_STENCILZFAIL = 54, + WINED3DRS_STENCILPASS = 55, + WINED3DRS_STENCILFUNC = 56, + WINED3DRS_STENCILREF = 57, + WINED3DRS_STENCILMASK = 58, + WINED3DRS_STENCILWRITEMASK = 59, + WINED3DRS_TEXTUREFACTOR = 60, + WINED3DRS_WRAP0 = 128, + WINED3DRS_WRAP1 = 129, + WINED3DRS_WRAP2 = 130, + WINED3DRS_WRAP3 = 131, + WINED3DRS_WRAP4 = 132, + WINED3DRS_WRAP5 = 133, + WINED3DRS_WRAP6 = 134, + WINED3DRS_WRAP7 = 135, + WINED3DRS_CLIPPING = 136, + WINED3DRS_LIGHTING = 137, + WINED3DRS_EXTENTS = 138, + WINED3DRS_AMBIENT = 139, + WINED3DRS_FOGVERTEXMODE = 140, + WINED3DRS_COLORVERTEX = 141, + WINED3DRS_LOCALVIEWER = 142, + WINED3DRS_NORMALIZENORMALS = 143, + WINED3DRS_COLORKEYBLENDENABLE = 144, + WINED3DRS_DIFFUSEMATERIALSOURCE = 145, + WINED3DRS_SPECULARMATERIALSOURCE = 146, + WINED3DRS_AMBIENTMATERIALSOURCE = 147, + WINED3DRS_EMISSIVEMATERIALSOURCE = 148, + WINED3DRS_VERTEXBLEND = 151, + WINED3DRS_CLIPPLANEENABLE = 152, + WINED3DRS_SOFTWAREVERTEXPROCESSING = 153, + WINED3DRS_POINTSIZE = 154, + WINED3DRS_POINTSIZE_MIN = 155, + WINED3DRS_POINTSPRITEENABLE = 156, + WINED3DRS_POINTSCALEENABLE = 157, + WINED3DRS_POINTSCALE_A = 158, + WINED3DRS_POINTSCALE_B = 159, + WINED3DRS_POINTSCALE_C = 160, + WINED3DRS_MULTISAMPLEANTIALIAS = 161, + WINED3DRS_MULTISAMPLEMASK = 162, + WINED3DRS_PATCHEDGESTYLE = 163, + WINED3DRS_PATCHSEGMENTS = 164, + WINED3DRS_DEBUGMONITORTOKEN = 165, + WINED3DRS_POINTSIZE_MAX = 166, + WINED3DRS_INDEXEDVERTEXBLENDENABLE = 167, + WINED3DRS_COLORWRITEENABLE = 168, + WINED3DRS_TWEENFACTOR = 170, + WINED3DRS_BLENDOP = 171, + WINED3DRS_POSITIONDEGREE = 172, + WINED3DRS_NORMALDEGREE = 173, + WINED3DRS_SCISSORTESTENABLE = 174, + WINED3DRS_SLOPESCALEDEPTHBIAS = 175, + WINED3DRS_ANTIALIASEDLINEENABLE = 176, + WINED3DRS_MINTESSELLATIONLEVEL = 178, + WINED3DRS_MAXTESSELLATIONLEVEL = 179, + WINED3DRS_ADAPTIVETESS_X = 180, + WINED3DRS_ADAPTIVETESS_Y = 181, + WINED3DRS_ADAPTIVETESS_Z = 182, + WINED3DRS_ADAPTIVETESS_W = 183, + WINED3DRS_ENABLEADAPTIVETESSELLATION = 184, + WINED3DRS_TWOSIDEDSTENCILMODE = 185, + WINED3DRS_CCW_STENCILFAIL = 186, + WINED3DRS_CCW_STENCILZFAIL = 187, + WINED3DRS_CCW_STENCILPASS = 188, + WINED3DRS_CCW_STENCILFUNC = 189, + WINED3DRS_COLORWRITEENABLE1 = 190, + WINED3DRS_COLORWRITEENABLE2 = 191, + WINED3DRS_COLORWRITEENABLE3 = 192, + WINED3DRS_BLENDFACTOR = 193, + WINED3DRS_SRGBWRITEENABLE = 194, + WINED3DRS_DEPTHBIAS = 195, + WINED3DRS_WRAP8 = 198, + WINED3DRS_WRAP9 = 199, + WINED3DRS_WRAP10 = 200, + WINED3DRS_WRAP11 = 201, + WINED3DRS_WRAP12 = 202, + WINED3DRS_WRAP13 = 203, + WINED3DRS_WRAP14 = 204, + WINED3DRS_WRAP15 = 205, + WINED3DRS_SEPARATEALPHABLENDENABLE = 206, + WINED3DRS_SRCBLENDALPHA = 207, + WINED3DRS_DESTBLENDALPHA = 208, + WINED3DRS_BLENDOPALPHA = 209, + WINED3DRS_FORCE_DWORD = 0x7fffffff +} WINED3DRENDERSTATETYPE; +#define WINEHIGHEST_RENDER_STATE (WINED3DRS_BLENDOPALPHA) + +typedef enum _WINED3DBLEND { + WINED3DBLEND_ZERO = 1, + WINED3DBLEND_ONE = 2, + WINED3DBLEND_SRCCOLOR = 3, + WINED3DBLEND_INVSRCCOLOR = 4, + WINED3DBLEND_SRCALPHA = 5, + WINED3DBLEND_INVSRCALPHA = 6, + WINED3DBLEND_DESTALPHA = 7, + WINED3DBLEND_INVDESTALPHA = 8, + WINED3DBLEND_DESTCOLOR = 9, + WINED3DBLEND_INVDESTCOLOR = 10, + WINED3DBLEND_SRCALPHASAT = 11, + WINED3DBLEND_BOTHSRCALPHA = 12, + WINED3DBLEND_BOTHINVSRCALPHA = 13, + WINED3DBLEND_BLENDFACTOR = 14, + WINED3DBLEND_INVBLENDFACTOR = 15, + WINED3DBLEND_FORCE_DWORD = 0x7fffffff +} WINED3DBLEND; +typedef enum _WINED3DBLENDOP { + WINED3DBLENDOP_ADD = 1, + WINED3DBLENDOP_SUBTRACT = 2, + WINED3DBLENDOP_REVSUBTRACT = 3, + WINED3DBLENDOP_MIN = 4, + WINED3DBLENDOP_MAX = 5, + WINED3DBLENDOP_FORCE_DWORD = 0x7fffffff +} WINED3DBLENDOP; +typedef enum _WINED3DVERTEXBLENDFLAGS { + WINED3DVBF_DISABLE = 0, + WINED3DVBF_1WEIGHTS = 1, + WINED3DVBF_2WEIGHTS = 2, + WINED3DVBF_3WEIGHTS = 3, + WINED3DVBF_TWEENING = 255, + WINED3DVBF_0WEIGHTS = 256 +} WINED3DVERTEXBLENDFLAGS; +typedef enum _WINED3DCMPFUNC { + WINED3DCMP_NEVER = 1, + WINED3DCMP_LESS = 2, + WINED3DCMP_EQUAL = 3, + WINED3DCMP_LESSEQUAL = 4, + WINED3DCMP_GREATER = 5, + WINED3DCMP_NOTEQUAL = 6, + WINED3DCMP_GREATEREQUAL = 7, + WINED3DCMP_ALWAYS = 8, + WINED3DCMP_FORCE_DWORD = 0x7fffffff +} WINED3DCMPFUNC; +typedef enum _WINED3DZBUFFERTYPE { + WINED3DZB_FALSE = 0, + WINED3DZB_TRUE = 1, + WINED3DZB_USEW = 2, + WINED3DZB_FORCE_DWORD = 0x7fffffff +} WINED3DZBUFFERTYPE; +typedef enum _WINED3DFOGMODE { + WINED3DFOG_NONE = 0, + WINED3DFOG_EXP = 1, + WINED3DFOG_EXP2 = 2, + WINED3DFOG_LINEAR = 3, + WINED3DFOG_FORCE_DWORD = 0x7fffffff +} WINED3DFOGMODE; +typedef enum _WINED3DSHADEMODE { + WINED3DSHADE_FLAT = 1, + WINED3DSHADE_GOURAUD = 2, + WINED3DSHADE_PHONG = 3, + WINED3DSHADE_FORCE_DWORD = 0x7fffffff +} WINED3DSHADEMODE; +typedef enum _WINED3DFILLMODE { + WINED3DFILL_POINT = 1, + WINED3DFILL_WIREFRAME = 2, + WINED3DFILL_SOLID = 3, + WINED3DFILL_FORCE_DWORD = 0x7fffffff +} WINED3DFILLMODE; +typedef enum _WINED3DCULL { + WINED3DCULL_NONE = 1, + WINED3DCULL_CW = 2, + WINED3DCULL_CCW = 3, + WINED3DCULL_FORCE_DWORD = 0x7fffffff +} WINED3DCULL; +typedef enum _WINED3DSTENCILOP { + WINED3DSTENCILOP_KEEP = 1, + WINED3DSTENCILOP_ZERO = 2, + WINED3DSTENCILOP_REPLACE = 3, + WINED3DSTENCILOP_INCRSAT = 4, + WINED3DSTENCILOP_DECRSAT = 5, + WINED3DSTENCILOP_INVERT = 6, + WINED3DSTENCILOP_INCR = 7, + WINED3DSTENCILOP_DECR = 8, + WINED3DSTENCILOP_FORCE_DWORD = 0x7fffffff +} WINED3DSTENCILOP; +typedef enum _WINED3DMATERIALCOLORSOURCE { + WINED3DMCS_MATERIAL = 0, + WINED3DMCS_COLOR1 = 1, + WINED3DMCS_COLOR2 = 2, + WINED3DMCS_FORCE_DWORD = 0x7fffffff +} WINED3DMATERIALCOLORSOURCE; +typedef enum _WINED3DPATCHEDGESTYLE { + WINED3DPATCHEDGE_DISCRETE = 0, + WINED3DPATCHEDGE_CONTINUOUS = 1, + WINED3DPATCHEDGE_FORCE_DWORD = 0x7fffffff +} WINED3DPATCHEDGESTYLE; +typedef enum _WINED3DBACKBUFFER_TYPE { + WINED3DBACKBUFFER_TYPE_MONO = 0, + WINED3DBACKBUFFER_TYPE_LEFT = 1, + WINED3DBACKBUFFER_TYPE_RIGHT = 2, + WINED3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff +} WINED3DBACKBUFFER_TYPE; +typedef enum _WINED3DSWAPEFFECT { + WINED3DSWAPEFFECT_DISCARD = 1, + WINED3DSWAPEFFECT_FLIP = 2, + WINED3DSWAPEFFECT_COPY = 3, + WINED3DSWAPEFFECT_COPY_VSYNC = 4, + WINED3DSWAPEFFECT_FORCE_DWORD = 0xffffffff +} WINED3DSWAPEFFECT; +typedef enum _WINED3DSAMPLERSTATETYPE { + WINED3DSAMP_ADDRESSU = 1, + WINED3DSAMP_ADDRESSV = 2, + WINED3DSAMP_ADDRESSW = 3, + WINED3DSAMP_BORDERCOLOR = 4, + WINED3DSAMP_MAGFILTER = 5, + WINED3DSAMP_MINFILTER = 6, + WINED3DSAMP_MIPFILTER = 7, + WINED3DSAMP_MIPMAPLODBIAS = 8, + WINED3DSAMP_MAXMIPLEVEL = 9, + WINED3DSAMP_MAXANISOTROPY = 10, + WINED3DSAMP_SRGBTEXTURE = 11, + WINED3DSAMP_ELEMENTINDEX = 12, + WINED3DSAMP_DMAPOFFSET = 13, + WINED3DSAMP_FORCE_DWORD = 0x7fffffff +} WINED3DSAMPLERSTATETYPE; +#define WINED3D_HIGHEST_SAMPLER_STATE (WINED3DSAMP_DMAPOFFSET) + +typedef enum _WINED3DMULTISAMPLE_TYPE { + WINED3DMULTISAMPLE_NONE = 0, + WINED3DMULTISAMPLE_NONMASKABLE = 1, + WINED3DMULTISAMPLE_2_SAMPLES = 2, + WINED3DMULTISAMPLE_3_SAMPLES = 3, + WINED3DMULTISAMPLE_4_SAMPLES = 4, + WINED3DMULTISAMPLE_5_SAMPLES = 5, + WINED3DMULTISAMPLE_6_SAMPLES = 6, + WINED3DMULTISAMPLE_7_SAMPLES = 7, + WINED3DMULTISAMPLE_8_SAMPLES = 8, + WINED3DMULTISAMPLE_9_SAMPLES = 9, + WINED3DMULTISAMPLE_10_SAMPLES = 10, + WINED3DMULTISAMPLE_11_SAMPLES = 11, + WINED3DMULTISAMPLE_12_SAMPLES = 12, + WINED3DMULTISAMPLE_13_SAMPLES = 13, + WINED3DMULTISAMPLE_14_SAMPLES = 14, + WINED3DMULTISAMPLE_15_SAMPLES = 15, + WINED3DMULTISAMPLE_16_SAMPLES = 16, + WINED3DMULTISAMPLE_FORCE_DWORD = 0xffffffff +} WINED3DMULTISAMPLE_TYPE; +typedef enum _WINED3DTEXTURESTAGESTATETYPE { + WINED3DTSS_COLOROP = 0, + WINED3DTSS_COLORARG1 = 1, + WINED3DTSS_COLORARG2 = 2, + WINED3DTSS_ALPHAOP = 3, + WINED3DTSS_ALPHAARG1 = 4, + WINED3DTSS_ALPHAARG2 = 5, + WINED3DTSS_BUMPENVMAT00 = 6, + WINED3DTSS_BUMPENVMAT01 = 7, + WINED3DTSS_BUMPENVMAT10 = 8, + WINED3DTSS_BUMPENVMAT11 = 9, + WINED3DTSS_TEXCOORDINDEX = 10, + WINED3DTSS_BUMPENVLSCALE = 11, + WINED3DTSS_BUMPENVLOFFSET = 12, + WINED3DTSS_TEXTURETRANSFORMFLAGS = 13, + WINED3DTSS_COLORARG0 = 14, + WINED3DTSS_ALPHAARG0 = 15, + WINED3DTSS_RESULTARG = 16, + WINED3DTSS_CONSTANT = 17, + WINED3DTSS_FORCE_DWORD = 0x7fffffff +} WINED3DTEXTURESTAGESTATETYPE; +#define WINED3D_HIGHEST_TEXTURE_STATE (WINED3DTSS_CONSTANT) + +typedef enum _WINED3DTEXTURETRANSFORMFLAGS { + WINED3DTTFF_DISABLE = 0, + WINED3DTTFF_COUNT1 = 1, + WINED3DTTFF_COUNT2 = 2, + WINED3DTTFF_COUNT3 = 3, + WINED3DTTFF_COUNT4 = 4, + WINED3DTTFF_PROJECTED = 256, + WINED3DTTFF_FORCE_DWORD = 0x7fffffff +} WINED3DTEXTURETRANSFORMFLAGS; +typedef enum _WINED3DTEXTUREOP { + WINED3DTOP_DISABLE = 1, + WINED3DTOP_SELECTARG1 = 2, + WINED3DTOP_SELECTARG2 = 3, + WINED3DTOP_MODULATE = 4, + WINED3DTOP_MODULATE2X = 5, + WINED3DTOP_MODULATE4X = 6, + WINED3DTOP_ADD = 7, + WINED3DTOP_ADDSIGNED = 8, + WINED3DTOP_ADDSIGNED2X = 9, + WINED3DTOP_SUBTRACT = 10, + WINED3DTOP_ADDSMOOTH = 11, + WINED3DTOP_BLENDDIFFUSEALPHA = 12, + WINED3DTOP_BLENDTEXTUREALPHA = 13, + WINED3DTOP_BLENDFACTORALPHA = 14, + WINED3DTOP_BLENDTEXTUREALPHAPM = 15, + WINED3DTOP_BLENDCURRENTALPHA = 16, + WINED3DTOP_PREMODULATE = 17, + WINED3DTOP_MODULATEALPHA_ADDCOLOR = 18, + WINED3DTOP_MODULATECOLOR_ADDALPHA = 19, + WINED3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, + WINED3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, + WINED3DTOP_BUMPENVMAP = 22, + WINED3DTOP_BUMPENVMAPLUMINANCE = 23, + WINED3DTOP_DOTPRODUCT3 = 24, + WINED3DTOP_MULTIPLYADD = 25, + WINED3DTOP_LERP = 26, + WINED3DTOP_FORCE_DWORD = 0x7fffffff +} WINED3DTEXTUREOP; +typedef enum _WINED3DTEXTUREADDRESS { + WINED3DTADDRESS_WRAP = 1, + WINED3DTADDRESS_MIRROR = 2, + WINED3DTADDRESS_CLAMP = 3, + WINED3DTADDRESS_BORDER = 4, + WINED3DTADDRESS_MIRRORONCE = 5, + WINED3DTADDRESS_FORCE_DWORD = 0x7fffffff +} WINED3DTEXTUREADDRESS; +typedef enum _WINED3DTRANSFORMSTATETYPE { + WINED3DTS_VIEW = 2, + WINED3DTS_PROJECTION = 3, + WINED3DTS_TEXTURE0 = 16, + WINED3DTS_TEXTURE1 = 17, + WINED3DTS_TEXTURE2 = 18, + WINED3DTS_TEXTURE3 = 19, + WINED3DTS_TEXTURE4 = 20, + WINED3DTS_TEXTURE5 = 21, + WINED3DTS_TEXTURE6 = 22, + WINED3DTS_TEXTURE7 = 23, + WINED3DTS_WORLD = 256, + WINED3DTS_WORLD1 = 257, + WINED3DTS_WORLD2 = 258, + WINED3DTS_WORLD3 = 259, + WINED3DTS_FORCE_DWORD = 0x7fffffff +} WINED3DTRANSFORMSTATETYPE; +#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256) +typedef enum _WINED3DBASISTYPE { + WINED3DBASIS_BEZIER = 0, + WINED3DBASIS_BSPLINE = 1, + WINED3DBASIS_INTERPOLATE = 2, + WINED3DBASIS_FORCE_DWORD = 0x7fffffff +} WINED3DBASISTYPE; +typedef enum _WINED3DCUBEMAP_FACES { + WINED3DCUBEMAP_FACE_POSITIVE_X = 0, + WINED3DCUBEMAP_FACE_NEGATIVE_X = 1, + WINED3DCUBEMAP_FACE_POSITIVE_Y = 2, + WINED3DCUBEMAP_FACE_NEGATIVE_Y = 3, + WINED3DCUBEMAP_FACE_POSITIVE_Z = 4, + WINED3DCUBEMAP_FACE_NEGATIVE_Z = 5, + WINED3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff +} WINED3DCUBEMAP_FACES; +typedef enum _WINED3DTEXTUREFILTERTYPE { + WINED3DTEXF_NONE = 0, + WINED3DTEXF_POINT = 1, + WINED3DTEXF_LINEAR = 2, + WINED3DTEXF_ANISOTROPIC = 3, + WINED3DTEXF_FLATCUBIC = 4, + WINED3DTEXF_GAUSSIANCUBIC = 5, + WINED3DTEXF_PYRAMIDALQUAD = 6, + WINED3DTEXF_GAUSSIANQUAD = 7, + WINED3DTEXF_FORCE_DWORD = 0x7fffffff +} WINED3DTEXTUREFILTERTYPE; +typedef enum _WINED3DRESOURCETYPE { + WINED3DRTYPE_SURFACE = 1, + WINED3DRTYPE_VOLUME = 2, + WINED3DRTYPE_TEXTURE = 3, + WINED3DRTYPE_VOLUMETEXTURE = 4, + WINED3DRTYPE_CUBETEXTURE = 5, + WINED3DRTYPE_BUFFER = 6, + WINED3DRTYPE_FORCE_DWORD = 0x7fffffff +} WINED3DRESOURCETYPE; +#define WINED3DRTYPECOUNT (WINED3DRTYPE_BUFFER + 1) + +typedef enum _WINED3DPOOL { + WINED3DPOOL_DEFAULT = 0, + WINED3DPOOL_MANAGED = 1, + WINED3DPOOL_SYSTEMMEM = 2, + WINED3DPOOL_SCRATCH = 3, + WINED3DPOOL_FORCE_DWORD = 0x7fffffff +} WINED3DPOOL; +typedef enum _WINED3DQUERYTYPE { + WINED3DQUERYTYPE_VCACHE = 4, + WINED3DQUERYTYPE_RESOURCEMANAGER = 5, + WINED3DQUERYTYPE_VERTEXSTATS = 6, + WINED3DQUERYTYPE_EVENT = 8, + WINED3DQUERYTYPE_OCCLUSION = 9, + WINED3DQUERYTYPE_TIMESTAMP = 10, + WINED3DQUERYTYPE_TIMESTAMPDISJOINT = 11, + WINED3DQUERYTYPE_TIMESTAMPFREQ = 12, + WINED3DQUERYTYPE_PIPELINETIMINGS = 13, + WINED3DQUERYTYPE_INTERFACETIMINGS = 14, + WINED3DQUERYTYPE_VERTEXTIMINGS = 15, + WINED3DQUERYTYPE_PIXELTIMINGS = 16, + WINED3DQUERYTYPE_BANDWIDTHTIMINGS = 17, + WINED3DQUERYTYPE_CACHEUTILIZATION = 18 +} WINED3DQUERYTYPE; +#define WINED3DISSUE_BEGIN (1 << 1) + +#define WINED3DISSUE_END (1 << 0) + +#define WINED3DGETDATA_FLUSH (1 << 0) + +typedef enum _WINED3DSTATEBLOCKTYPE { + WINED3DSBT_INIT = 0, + WINED3DSBT_ALL = 1, + WINED3DSBT_PIXELSTATE = 2, + WINED3DSBT_VERTEXSTATE = 3, + WINED3DSBT_RECORDED = 4, + WINED3DSBT_FORCE_DWORD = 0xffffffff +} WINED3DSTATEBLOCKTYPE; +typedef enum _WINED3DDECLMETHOD { + WINED3DDECLMETHOD_DEFAULT = 0, + WINED3DDECLMETHOD_PARTIALU = 1, + WINED3DDECLMETHOD_PARTIALV = 2, + WINED3DDECLMETHOD_CROSSUV = 3, + WINED3DDECLMETHOD_UV = 4, + WINED3DDECLMETHOD_LOOKUP = 5, + WINED3DDECLMETHOD_LOOKUPPRESAMPLED = 6 +} WINED3DDECLMETHOD; +typedef enum _WINED3DDECLUSAGE { + WINED3DDECLUSAGE_POSITION = 0, + WINED3DDECLUSAGE_BLENDWEIGHT = 1, + WINED3DDECLUSAGE_BLENDINDICES = 2, + WINED3DDECLUSAGE_NORMAL = 3, + WINED3DDECLUSAGE_PSIZE = 4, + WINED3DDECLUSAGE_TEXCOORD = 5, + WINED3DDECLUSAGE_TANGENT = 6, + WINED3DDECLUSAGE_BINORMAL = 7, + WINED3DDECLUSAGE_TESSFACTOR = 8, + WINED3DDECLUSAGE_POSITIONT = 9, + WINED3DDECLUSAGE_COLOR = 10, + WINED3DDECLUSAGE_FOG = 11, + WINED3DDECLUSAGE_DEPTH = 12, + WINED3DDECLUSAGE_SAMPLE = 13 +} WINED3DDECLUSAGE; +typedef enum _WINED3DSURFTYPE { + SURFACE_UNKNOWN = 0, + SURFACE_OPENGL = 1, + SURFACE_GDI = 2 +} WINED3DSURFTYPE; +enum wined3d_sysval_semantic { + WINED3D_SV_DEPTH = 0xffffffff, + WINED3D_SV_TARGET0 = 0, + WINED3D_SV_TARGET1 = 1, + WINED3D_SV_TARGET2 = 2, + WINED3D_SV_TARGET3 = 3, + WINED3D_SV_TARGET4 = 4, + WINED3D_SV_TARGET5 = 5, + WINED3D_SV_TARGET6 = 6, + WINED3D_SV_TARGET7 = 7 +}; + +#define WINED3DCOLORWRITEENABLE_RED (1 << 0) + +#define WINED3DCOLORWRITEENABLE_GREEN (1 << 1) + +#define WINED3DCOLORWRITEENABLE_BLUE (1 << 2) + +#define WINED3DCOLORWRITEENABLE_ALPHA (1 << 3) + +#define WINED3DADAPTER_DEFAULT (0) + +#define WINED3DENUM_NO_WHQL_LEVEL (2) + +#define WINED3DPRESENT_BACK_BUFFER_MAX (3) + +#define WINED3DTSS_TCI_PASSTHRU (0x0) + +#define WINED3DTSS_TCI_CAMERASPACENORMAL (0x10000) + +#define WINED3DTSS_TCI_CAMERASPACEPOSITION (0x20000) + +#define WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR (0x30000) + +#define WINED3DTSS_TCI_SPHEREMAP (0x40000) + +#define WINED3DTA_SELECTMASK (0xf) + +#define WINED3DTA_DIFFUSE (0x0) + +#define WINED3DTA_CURRENT (0x1) + +#define WINED3DTA_TEXTURE (0x2) + +#define WINED3DTA_TFACTOR (0x3) + +#define WINED3DTA_SPECULAR (0x4) + +#define WINED3DTA_TEMP (0x5) + +#define WINED3DTA_CONSTANT (0x6) + +#define WINED3DTA_COMPLEMENT (0x10) + +#define WINED3DTA_ALPHAREPLICATE (0x20) + +#define WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER (0x1) + +#define WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL (0x2) + +#define WINED3DPRESENTFLAG_DEVICECLIP (0x4) + +#define WINED3DPRESENTFLAG_VIDEO (0x10) + +#define WINED3DPRESENTFLAG_NOAUTOROTATE (0x20) + +#define WINED3DPRESENTFLAG_UNPRUNEDMODE (0x40) + +#define WINED3DDP_MAXTEXCOORD (8) + +#define WINED3DUSAGE_RENDERTARGET (0x1) + +#define WINED3DUSAGE_DEPTHSTENCIL (0x2) + +#define WINED3DUSAGE_WRITEONLY (0x8) + +#define WINED3DUSAGE_SOFTWAREPROCESSING (0x10) + +#define WINED3DUSAGE_DONOTCLIP (0x20) + +#define WINED3DUSAGE_POINTS (0x40) + +#define WINED3DUSAGE_RTPATCHES (0x80) + +#define WINED3DUSAGE_NPATCHES (0x100) + +#define WINED3DUSAGE_DYNAMIC (0x200) + +#define WINED3DUSAGE_AUTOGENMIPMAP (0x400) + +#define WINED3DUSAGE_DMAP (0x4000) + +#define WINED3DUSAGE_MASK (0x4fff) + +#define WINED3DUSAGE_STATICDECL (0x40000000) + +#define WINED3DUSAGE_OVERLAY (0x80000000) + +#define WINED3DUSAGE_QUERY_LEGACYBUMPMAP (0x8000) + +#define WINED3DUSAGE_QUERY_FILTER (0x20000) + +#define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING (0x80000) + +#define WINED3DUSAGE_QUERY_SRGBREAD (0x10000) + +#define WINED3DUSAGE_QUERY_SRGBWRITE (0x40000) + +#define WINED3DUSAGE_QUERY_VERTEXTEXTURE (0x100000) + +#define WINED3DUSAGE_QUERY_WRAPANDMIP (0x200000) + +#define WINED3DUSAGE_QUERY_MASK (0x3f8000) + +#define WINED3DLOCK_READONLY (0x10) + +#define WINED3DLOCK_NOSYSLOCK (0x800) + +#define WINED3DLOCK_NOOVERWRITE (0x1000) + +#define WINED3DLOCK_DISCARD (0x2000) + +#define WINED3DLOCK_DONOTWAIT (0x4000) + +#define WINED3DLOCK_NO_DIRTY_UPDATE (0x8000) + +#define WINED3DPRESENT_RATE_DEFAULT (0x0) + +#define WINED3DPRESENT_INTERVAL_DEFAULT (0x0) + +#define WINED3DPRESENT_INTERVAL_ONE (0x1) + +#define WINED3DPRESENT_INTERVAL_TWO (0x2) + +#define WINED3DPRESENT_INTERVAL_THREE (0x4) + +#define WINED3DPRESENT_INTERVAL_FOUR (0x8) + +#define WINED3DPRESENT_INTERVAL_IMMEDIATE (0x80000000) + +#define WINED3DMAXUSERCLIPPLANES (32) + +#define WINED3DCLIPPLANE0 (1 << 0) + +#define WINED3DCLIPPLANE1 (1 << 1) + +#define WINED3DCLIPPLANE2 (1 << 2) + +#define WINED3DCLIPPLANE3 (1 << 3) + +#define WINED3DCLIPPLANE4 (1 << 4) + +#define WINED3DCLIPPLANE5 (1 << 5) + +#define WINED3DFVF_RESERVED0 (0x1) + +#define WINED3DFVF_POSITION_MASK (0x400e) + +#define WINED3DFVF_XYZ (0x2) + +#define WINED3DFVF_XYZRHW (0x4) + +#define WINED3DFVF_XYZB1 (0x6) + +#define WINED3DFVF_XYZB2 (0x8) + +#define WINED3DFVF_XYZB3 (0xa) + +#define WINED3DFVF_XYZB4 (0xc) + +#define WINED3DFVF_XYZB5 (0xe) + +#define WINED3DFVF_XYZW (0x4002) + +#define WINED3DFVF_NORMAL (0x10) + +#define WINED3DFVF_PSIZE (0x20) + +#define WINED3DFVF_DIFFUSE (0x40) + +#define WINED3DFVF_SPECULAR (0x80) + +#define WINED3DFVF_TEXCOUNT_MASK (0xf00) + +#define WINED3DFVF_TEXCOUNT_SHIFT (8) + +#define WINED3DFVF_TEX0 (0x0) + +#define WINED3DFVF_TEX1 (0x100) + +#define WINED3DFVF_TEX2 (0x200) + +#define WINED3DFVF_TEX3 (0x300) + +#define WINED3DFVF_TEX4 (0x400) + +#define WINED3DFVF_TEX5 (0x500) + +#define WINED3DFVF_TEX6 (0x600) + +#define WINED3DFVF_TEX7 (0x700) + +#define WINED3DFVF_TEX8 (0x800) + +#define WINED3DFVF_LASTBETA_UBYTE4 (0x1000) + +#define WINED3DFVF_LASTBETA_D3DCOLOR (0x8000) + +#define WINED3DFVF_RESERVED2 (0x6000) + +#define WINED3DFVF_TEXTUREFORMAT1 (3) + +#define WINED3DFVF_TEXTUREFORMAT2 (0) + +#define WINED3DFVF_TEXTUREFORMAT3 (1) + +#define WINED3DFVF_TEXTUREFORMAT4 (2) + +#define WINED3DFVF_TEXCOORDSIZE1(CoordIndex) (WINED3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16)) +#define WINED3DFVF_TEXCOORDSIZE2(CoordIndex) (WINED3DFVF_TEXTUREFORMAT2) +#define WINED3DFVF_TEXCOORDSIZE3(CoordIndex) (WINED3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16)) +#define WINED3DFVF_TEXCOORDSIZE4(CoordIndex) (WINED3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16)) +#define WINED3DCLEAR_TARGET (0x1) + +#define WINED3DCLEAR_ZBUFFER (0x2) + +#define WINED3DCLEAR_STENCIL (0x4) + +#define WINED3DSTREAMSOURCE_INDEXEDDATA (1 << 30) + +#define WINED3DSTREAMSOURCE_INSTANCEDATA (2 << 30) + +#define WINED3DSPD_IUNKNOWN (0x1) + +#define WINED3DCREATE_FPU_PRESERVE (0x2) + +#define WINED3DCREATE_PUREDEVICE (0x10) + +#define WINED3DCREATE_SOFTWARE_VERTEXPROCESSING (0x20) + +#define WINED3DCREATE_HARDWARE_VERTEXPROCESSING (0x40) + +#define WINED3DCREATE_MIXED_VERTEXPROCESSING (0x80) + +#define WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT (0x100) + +#define WINED3DCREATE_ADAPTERGROUP_DEVICE (0x200) + +#define WINED3DDMAPSAMPLER (0x100) + +#define WINED3DVERTEXTEXTURESAMPLER0 (WINED3DDMAPSAMPLER + 1) + +#define WINED3DVERTEXTEXTURESAMPLER1 (WINED3DDMAPSAMPLER + 2) + +#define WINED3DVERTEXTEXTURESAMPLER2 (WINED3DDMAPSAMPLER + 3) + +#define WINED3DVERTEXTEXTURESAMPLER3 (WINED3DDMAPSAMPLER + 4) + +#define WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD (0x20) + +#define WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (0x80) + +#define WINED3DCAPS3_COPY_TO_VIDMEM (0x100) + +#define WINED3DCAPS3_COPY_TO_SYSTEMMEM (0x200) + +#define WINED3DCAPS3_RESERVED (0x8000001f) + +#define WINED3DDEVCAPS2_STREAMOFFSET (0x1) + +#define WINED3DDEVCAPS2_DMAPNPATCH (0x2) + +#define WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH (0x4) + +#define WINED3DDEVCAPS2_ADAPTIVETESSNPATCH (0x8) + +#define WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES (0x10) + +#define WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH (0x20) + +#define WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET (0x40) + +#define WINED3DDTCAPS_UBYTE4 (0x1) + +#define WINED3DDTCAPS_UBYTE4N (0x2) + +#define WINED3DDTCAPS_SHORT2N (0x4) + +#define WINED3DDTCAPS_SHORT4N (0x8) + +#define WINED3DDTCAPS_USHORT2N (0x10) + +#define WINED3DDTCAPS_USHORT4N (0x20) + +#define WINED3DDTCAPS_UDEC3 (0x40) + +#define WINED3DDTCAPS_DEC3N (0x80) + +#define WINED3DDTCAPS_FLOAT16_2 (0x100) + +#define WINED3DDTCAPS_FLOAT16_4 (0x200) + +#define WINED3DFVFCAPS_TEXCOORDCOUNTMASK (0xffff) + +#define WINED3DFVFCAPS_DONOTSTRIPELEMENTS (0x80000) + +#define WINED3DFVFCAPS_PSIZE (0x100000) + +#define WINED3DLINECAPS_TEXTURE (0x1) + +#define WINED3DLINECAPS_ZTEST (0x2) + +#define WINED3DLINECAPS_BLEND (0x4) + +#define WINED3DLINECAPS_ALPHACMP (0x8) + +#define WINED3DLINECAPS_FOG (0x10) + +#define WINED3DLINECAPS_ANTIALIAS (0x20) + +#define WINED3DMAX30SHADERINSTRUCTIONS (32768) + +#define WINED3DMIN30SHADERINSTRUCTIONS (512) + +#define WINED3DPBLENDCAPS_ZERO (0x1) + +#define WINED3DPBLENDCAPS_ONE (0x2) + +#define WINED3DPBLENDCAPS_SRCCOLOR (0x4) + +#define WINED3DPBLENDCAPS_INVSRCCOLOR (0x8) + +#define WINED3DPBLENDCAPS_SRCALPHA (0x10) + +#define WINED3DPBLENDCAPS_INVSRCALPHA (0x20) + +#define WINED3DPBLENDCAPS_DESTALPHA (0x40) + +#define WINED3DPBLENDCAPS_INVDESTALPHA (0x80) + +#define WINED3DPBLENDCAPS_DESTCOLOR (0x100) + +#define WINED3DPBLENDCAPS_INVDESTCOLOR (0x200) + +#define WINED3DPBLENDCAPS_SRCALPHASAT (0x400) + +#define WINED3DPBLENDCAPS_BOTHSRCALPHA (0x800) + +#define WINED3DPBLENDCAPS_BOTHINVSRCALPHA (0x1000) + +#define WINED3DPBLENDCAPS_BLENDFACTOR (0x2000) + +#define WINED3DPCMPCAPS_NEVER (0x1) + +#define WINED3DPCMPCAPS_LESS (0x2) + +#define WINED3DPCMPCAPS_EQUAL (0x4) + +#define WINED3DPCMPCAPS_LESSEQUAL (0x8) + +#define WINED3DPCMPCAPS_GREATER (0x10) + +#define WINED3DPCMPCAPS_NOTEQUAL (0x20) + +#define WINED3DPCMPCAPS_GREATEREQUAL (0x40) + +#define WINED3DPCMPCAPS_ALWAYS (0x80) + +#define WINED3DPMISCCAPS_MASKZ (0x2) + +#define WINED3DPMISCCAPS_LINEPATTERNREP (0x4) + +#define WINED3DPMISCCAPS_CULLNONE (0x10) + +#define WINED3DPMISCCAPS_CULLCW (0x20) + +#define WINED3DPMISCCAPS_CULLCCW (0x40) + +#define WINED3DPMISCCAPS_COLORWRITEENABLE (0x80) + +#define WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS (0x100) + +#define WINED3DPMISCCAPS_CLIPTLVERTS (0x200) + +#define WINED3DPMISCCAPS_TSSARGTEMP (0x400) + +#define WINED3DPMISCCAPS_BLENDOP (0x800) + +#define WINED3DPMISCCAPS_NULLREFERENCE (0x1000) + +#define WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS (0x4000) + +#define WINED3DPMISCCAPS_PERSTAGECONSTANT (0x8000) + +#define WINED3DPMISCCAPS_FOGANDSPECULARALPHA (0x10000) + +#define WINED3DPMISCCAPS_SEPARATEALPHABLEND (0x20000) + +#define WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS (0x40000) + +#define WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING (0x80000) + +#define WINED3DPMISCCAPS_FOGVERTEXCLAMPED (0x100000) + +#define WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH (24) + +#define WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH (0) + +#define WINED3DPS20_MAX_NUMTEMPS (32) + +#define WINED3DPS20_MIN_NUMTEMPS (12) + +#define WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH (4) + +#define WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH (0) + +#define WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS (512) + +#define WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS (96) + +#define WINED3DPS20CAPS_ARBITRARYSWIZZLE (0x1) + +#define WINED3DPS20CAPS_GRADIENTINSTRUCTIONS (0x2) + +#define WINED3DPS20CAPS_PREDICATION (0x4) + +#define WINED3DPS20CAPS_NODEPENDENTREADLIMIT (0x8) + +#define WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT (0x10) + +#define WINED3DPTADDRESSCAPS_WRAP (0x1) + +#define WINED3DPTADDRESSCAPS_MIRROR (0x2) + +#define WINED3DPTADDRESSCAPS_CLAMP (0x4) + +#define WINED3DPTADDRESSCAPS_BORDER (0x8) + +#define WINED3DPTADDRESSCAPS_INDEPENDENTUV (0x10) + +#define WINED3DPTADDRESSCAPS_MIRRORONCE (0x20) + +#define WINED3DSTENCILCAPS_KEEP (0x1) + +#define WINED3DSTENCILCAPS_ZERO (0x2) + +#define WINED3DSTENCILCAPS_REPLACE (0x4) + +#define WINED3DSTENCILCAPS_INCRSAT (0x8) + +#define WINED3DSTENCILCAPS_DECRSAT (0x10) + +#define WINED3DSTENCILCAPS_INVERT (0x20) + +#define WINED3DSTENCILCAPS_INCR (0x40) + +#define WINED3DSTENCILCAPS_DECR (0x80) + +#define WINED3DSTENCILCAPS_TWOSIDED (0x100) + +#define WINED3DTEXOPCAPS_DISABLE (0x1) + +#define WINED3DTEXOPCAPS_SELECTARG1 (0x2) + +#define WINED3DTEXOPCAPS_SELECTARG2 (0x4) + +#define WINED3DTEXOPCAPS_MODULATE (0x8) + +#define WINED3DTEXOPCAPS_MODULATE2X (0x10) + +#define WINED3DTEXOPCAPS_MODULATE4X (0x20) + +#define WINED3DTEXOPCAPS_ADD (0x40) + +#define WINED3DTEXOPCAPS_ADDSIGNED (0x80) + +#define WINED3DTEXOPCAPS_ADDSIGNED2X (0x100) + +#define WINED3DTEXOPCAPS_SUBTRACT (0x200) + +#define WINED3DTEXOPCAPS_ADDSMOOTH (0x400) + +#define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA (0x800) + +#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA (0x1000) + +#define WINED3DTEXOPCAPS_BLENDFACTORALPHA (0x2000) + +#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM (0x4000) + +#define WINED3DTEXOPCAPS_BLENDCURRENTALPHA (0x8000) + +#define WINED3DTEXOPCAPS_PREMODULATE (0x10000) + +#define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR (0x20000) + +#define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA (0x40000) + +#define WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR (0x80000) + +#define WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA (0x100000) + +#define WINED3DTEXOPCAPS_BUMPENVMAP (0x200000) + +#define WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE (0x400000) + +#define WINED3DTEXOPCAPS_DOTPRODUCT3 (0x800000) + +#define WINED3DTEXOPCAPS_MULTIPLYADD (0x1000000) + +#define WINED3DTEXOPCAPS_LERP (0x2000000) + +#define WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH (24) + +#define WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH (0) + +#define WINED3DVS20_MAX_NUMTEMPS (32) + +#define WINED3DVS20_MIN_NUMTEMPS (12) + +#define WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH (4) + +#define WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH (1) + +#define WINED3DVS20CAPS_PREDICATION (0x1) + +#define WINED3DCAPS2_NO2DDURING3DSCENE (0x2) + +#define WINED3DCAPS2_FULLSCREENGAMMA (0x20000) + +#define WINED3DCAPS2_CANRENDERWINDOWED (0x80000) + +#define WINED3DCAPS2_CANCALIBRATEGAMMA (0x100000) + +#define WINED3DCAPS2_RESERVED (0x2000000) + +#define WINED3DCAPS2_CANMANAGERESOURCE (0x10000000) + +#define WINED3DCAPS2_DYNAMICTEXTURES (0x20000000) + +#define WINED3DCAPS2_CANAUTOGENMIPMAP (0x40000000) + +#define WINED3DPRASTERCAPS_DITHER (0x1) + +#define WINED3DPRASTERCAPS_ROP2 (0x2) + +#define WINED3DPRASTERCAPS_XOR (0x4) + +#define WINED3DPRASTERCAPS_PAT (0x8) + +#define WINED3DPRASTERCAPS_ZTEST (0x10) + +#define WINED3DPRASTERCAPS_SUBPIXEL (0x20) + +#define WINED3DPRASTERCAPS_SUBPIXELX (0x40) + +#define WINED3DPRASTERCAPS_FOGVERTEX (0x80) + +#define WINED3DPRASTERCAPS_FOGTABLE (0x100) + +#define WINED3DPRASTERCAPS_STIPPLE (0x200) + +#define WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT (0x400) + +#define WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT (0x800) + +#define WINED3DPRASTERCAPS_ANTIALIASEDGES (0x1000) + +#define WINED3DPRASTERCAPS_MIPMAPLODBIAS (0x2000) + +#define WINED3DPRASTERCAPS_ZBIAS (0x4000) + +#define WINED3DPRASTERCAPS_ZBUFFERLESSHSR (0x8000) + +#define WINED3DPRASTERCAPS_FOGRANGE (0x10000) + +#define WINED3DPRASTERCAPS_ANISOTROPY (0x20000) + +#define WINED3DPRASTERCAPS_WBUFFER (0x40000) + +#define WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT (0x80000) + +#define WINED3DPRASTERCAPS_WFOG (0x100000) + +#define WINED3DPRASTERCAPS_ZFOG (0x200000) + +#define WINED3DPRASTERCAPS_COLORPERSPECTIVE (0x400000) + +#define WINED3DPRASTERCAPS_SCISSORTEST (0x1000000) + +#define WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS (0x2000000) + +#define WINED3DPRASTERCAPS_DEPTHBIAS (0x4000000) + +#define WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE (0x8000000) + +#define WINED3DPSHADECAPS_COLORFLATMONO (0x1) + +#define WINED3DPSHADECAPS_COLORFLATRGB (0x2) + +#define WINED3DPSHADECAPS_COLORGOURAUDMONO (0x4) + +#define WINED3DPSHADECAPS_COLORGOURAUDRGB (0x8) + +#define WINED3DPSHADECAPS_COLORPHONGMONO (0x10) + +#define WINED3DPSHADECAPS_COLORPHONGRGB (0x20) + +#define WINED3DPSHADECAPS_SPECULARFLATMONO (0x40) + +#define WINED3DPSHADECAPS_SPECULARFLATRGB (0x80) + +#define WINED3DPSHADECAPS_SPECULARGOURAUDMONO (0x100) + +#define WINED3DPSHADECAPS_SPECULARGOURAUDRGB (0x200) + +#define WINED3DPSHADECAPS_SPECULARPHONGMONO (0x400) + +#define WINED3DPSHADECAPS_SPECULARPHONGRGB (0x800) + +#define WINED3DPSHADECAPS_ALPHAFLATBLEND (0x1000) + +#define WINED3DPSHADECAPS_ALPHAFLATSTIPPLED (0x2000) + +#define WINED3DPSHADECAPS_ALPHAGOURAUDBLEND (0x4000) + +#define WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED (0x8000) + +#define WINED3DPSHADECAPS_ALPHAPHONGBLEND (0x10000) + +#define WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED (0x20000) + +#define WINED3DPSHADECAPS_FOGFLAT (0x40000) + +#define WINED3DPSHADECAPS_FOGGOURAUD (0x80000) + +#define WINED3DPSHADECAPS_FOGPHONG (0x100000) + +#define WINED3DPTEXTURECAPS_PERSPECTIVE (0x1) + +#define WINED3DPTEXTURECAPS_POW2 (0x2) + +#define WINED3DPTEXTURECAPS_ALPHA (0x4) + +#define WINED3DPTEXTURECAPS_TRANSPARENCY (0x8) + +#define WINED3DPTEXTURECAPS_BORDER (0x10) + +#define WINED3DPTEXTURECAPS_SQUAREONLY (0x20) + +#define WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE (0x40) + +#define WINED3DPTEXTURECAPS_ALPHAPALETTE (0x80) + +#define WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL (0x100) + +#define WINED3DPTEXTURECAPS_PROJECTED (0x400) + +#define WINED3DPTEXTURECAPS_CUBEMAP (0x800) + +#define WINED3DPTEXTURECAPS_COLORKEYBLEND (0x1000) + +#define WINED3DPTEXTURECAPS_VOLUMEMAP (0x2000) + +#define WINED3DPTEXTURECAPS_MIPMAP (0x4000) + +#define WINED3DPTEXTURECAPS_MIPVOLUMEMAP (0x8000) + +#define WINED3DPTEXTURECAPS_MIPCUBEMAP (0x10000) + +#define WINED3DPTEXTURECAPS_CUBEMAP_POW2 (0x20000) + +#define WINED3DPTEXTURECAPS_VOLUMEMAP_POW2 (0x40000) + +#define WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV (0x200000) + +#define WINED3DPTFILTERCAPS_NEAREST (0x1) + +#define WINED3DPTFILTERCAPS_LINEAR (0x2) + +#define WINED3DPTFILTERCAPS_MIPNEAREST (0x4) + +#define WINED3DPTFILTERCAPS_MIPLINEAR (0x8) + +#define WINED3DPTFILTERCAPS_LINEARMIPNEAREST (0x10) + +#define WINED3DPTFILTERCAPS_LINEARMIPLINEAR (0x20) + +#define WINED3DPTFILTERCAPS_MINFPOINT (0x100) + +#define WINED3DPTFILTERCAPS_MINFLINEAR (0x200) + +#define WINED3DPTFILTERCAPS_MINFANISOTROPIC (0x400) + +#define WINED3DPTFILTERCAPS_MIPFPOINT (0x10000) + +#define WINED3DPTFILTERCAPS_MIPFLINEAR (0x20000) + +#define WINED3DPTFILTERCAPS_MAGFPOINT (0x1000000) + +#define WINED3DPTFILTERCAPS_MAGFLINEAR (0x2000000) + +#define WINED3DPTFILTERCAPS_MAGFANISOTROPIC (0x4000000) + +#define WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD (0x8000000) + +#define WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD (0x10000000) + +#define WINED3DVTXPCAPS_TEXGEN (0x1) + +#define WINED3DVTXPCAPS_MATERIALSOURCE7 (0x2) + +#define WINED3DVTXPCAPS_VERTEXFOG (0x4) + +#define WINED3DVTXPCAPS_DIRECTIONALLIGHTS (0x8) + +#define WINED3DVTXPCAPS_POSITIONALLIGHTS (0x10) + +#define WINED3DVTXPCAPS_LOCALVIEWER (0x20) + +#define WINED3DVTXPCAPS_TWEENING (0x40) + +#define WINED3DVTXPCAPS_TEXGEN_SPHEREMAP (0x100) + +#define WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER (0x200) + +#define WINED3DCURSORCAPS_COLOR (0x1) + +#define WINED3DCURSORCAPS_LOWRES (0x2) + +#define WINED3DDEVCAPS_FLOATTLVERTEX (0x1) + +#define WINED3DDEVCAPS_SORTINCREASINGZ (0x2) + +#define WINED3DDEVCAPS_SORTDECREASINGZ (0x4) + +#define WINED3DDEVCAPS_SORTEXACT (0x8) + +#define WINED3DDEVCAPS_EXECUTESYSTEMMEMORY (0x10) + +#define WINED3DDEVCAPS_EXECUTEVIDEOMEMORY (0x20) + +#define WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY (0x40) + +#define WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY (0x80) + +#define WINED3DDEVCAPS_TEXTURESYSTEMMEMORY (0x100) + +#define WINED3DDEVCAPS_TEXTUREVIDEOMEMORY (0x200) + +#define WINED3DDEVCAPS_DRAWPRIMTLVERTEX (0x400) + +#define WINED3DDEVCAPS_CANRENDERAFTERFLIP (0x800) + +#define WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM (0x1000) + +#define WINED3DDEVCAPS_DRAWPRIMITIVES2 (0x2000) + +#define WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES (0x4000) + +#define WINED3DDEVCAPS_DRAWPRIMITIVES2EX (0x8000) + +#define WINED3DDEVCAPS_HWTRANSFORMANDLIGHT (0x10000) + +#define WINED3DDEVCAPS_CANBLTSYSTONONLOCAL (0x20000) + +#define WINED3DDEVCAPS_HWRASTERIZATION (0x80000) + +#define WINED3DDEVCAPS_PUREDEVICE (0x100000) + +#define WINED3DDEVCAPS_QUINTICRTPATCHES (0x200000) + +#define WINED3DDEVCAPS_RTPATCHES (0x400000) + +#define WINED3DDEVCAPS_RTPATCHHANDLEZERO (0x800000) + +#define WINED3DDEVCAPS_NPATCHES (0x1000000) + +#define WINEDDBLTFX_ARITHSTRETCHY (0x1) + +#define WINEDDBLTFX_MIRRORLEFTRIGHT (0x2) + +#define WINEDDBLTFX_MIRRORUPDOWN (0x4) + +#define WINEDDBLTFX_NOTEARING (0x8) + +#define WINEDDBLTFX_ROTATE180 (0x10) + +#define WINEDDBLTFX_ROTATE270 (0x20) + +#define WINEDDBLTFX_ROTATE90 (0x40) + +#define WINEDDBLTFX_ZBUFFERRANGE (0x80) + +#define WINEDDBLTFX_ZBUFFERBASEDEST (0x100) + +#define WINEDDBLT_ALPHADEST (0x1) + +#define WINEDDBLT_ALPHADESTCONSTOVERRIDE (0x2) + +#define WINEDDBLT_ALPHADESTNEG (0x4) + +#define WINEDDBLT_ALPHADESTSURFACEOVERRIDE (0x8) + +#define WINEDDBLT_ALPHAEDGEBLEND (0x10) + +#define WINEDDBLT_ALPHASRC (0x20) + +#define WINEDDBLT_ALPHASRCCONSTOVERRIDE (0x40) + +#define WINEDDBLT_ALPHASRCNEG (0x80) + +#define WINEDDBLT_ALPHASRCSURFACEOVERRIDE (0x100) + +#define WINEDDBLT_ASYNC (0x200) + +#define WINEDDBLT_COLORFILL (0x400) + +#define WINEDDBLT_DDFX (0x800) + +#define WINEDDBLT_DDROPS (0x1000) + +#define WINEDDBLT_KEYDEST (0x2000) + +#define WINEDDBLT_KEYDESTOVERRIDE (0x4000) + +#define WINEDDBLT_KEYSRC (0x8000) + +#define WINEDDBLT_KEYSRCOVERRIDE (0x10000) + +#define WINEDDBLT_ROP (0x20000) + +#define WINEDDBLT_ROTATIONANGLE (0x40000) + +#define WINEDDBLT_ZBUFFER (0x80000) + +#define WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE (0x100000) + +#define WINEDDBLT_ZBUFFERDESTOVERRIDE (0x200000) + +#define WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE (0x400000) + +#define WINEDDBLT_ZBUFFERSRCOVERRIDE (0x800000) + +#define WINEDDBLT_WAIT (0x1000000) + +#define WINEDDBLT_DEPTHFILL (0x2000000) + +#define WINEDDBLT_DONOTWAIT (0x8000000) + +#define WINEDDBLTFAST_NOCOLORKEY (0x0) + +#define WINEDDBLTFAST_SRCCOLORKEY (0x1) + +#define WINEDDBLTFAST_DESTCOLORKEY (0x2) + +#define WINEDDBLTFAST_WAIT (0x10) + +#define WINEDDBLTFAST_DONOTWAIT (0x20) + +#define WINEDDSD_CAPS (0x1) + +#define WINEDDSD_HEIGHT (0x2) + +#define WINEDDSD_WIDTH (0x4) + +#define WINEDDSD_PITCH (0x8) + +#define WINEDDSD_BACKBUFFERCOUNT (0x20) + +#define WINEDDSD_ZBUFFERBITDEPTH (0x40) + +#define WINEDDSD_ALPHABITDEPTH (0x80) + +#define WINEDDSD_LPSURFACE (0x800) + +#define WINEDDSD_PIXELFORMAT (0x1000) + +#define WINEDDSD_CKDESTOVERLAY (0x2000) + +#define WINEDDSD_CKDESTBLT (0x4000) + +#define WINEDDSD_CKSRCOVERLAY (0x8000) + +#define WINEDDSD_CKSRCBLT (0x10000) + +#define WINEDDSD_MIPMAPCOUNT (0x20000) + +#define WINEDDSD_REFRESHRATE (0x40000) + +#define WINEDDSD_LINEARSIZE (0x80000) + +#define WINEDDSD_TEXTURESTAGE (0x100000) + +#define WINEDDSD_FVF (0x200000) + +#define WINEDDSD_SRCVBHANDLE (0x400000) + +#define WINEDDSD_ALL (0x7ff9ee) + +#define WINEDDCKEY_COLORSPACE (0x1) + +#define WINEDDCKEY_DESTBLT (0x2) + +#define WINEDDCKEY_DESTOVERLAY (0x4) + +#define WINEDDCKEY_SRCBLT (0x8) + +#define WINEDDCKEY_SRCOVERLAY (0x10) + +#define WINEDDGBS_CANBLT (0x1) + +#define WINEDDGBS_ISBLTDONE (0x2) + +#define WINEDDGFS_CANFLIP (0x1) + +#define WINEDDGFS_ISFLIPDONE (0x2) + +#define WINEDDFLIP_WAIT (0x1) + +#define WINEDDFLIP_EVEN (0x2) + +#define WINEDDFLIP_ODD (0x4) + +#define WINEDDFLIP_NOVSYNC (0x8) + +#define WINEDDFLIP_STEREO (0x10) + +#define WINEDDFLIP_DONOTWAIT (0x20) + +#define WINEDDFLIP_INTERVAL2 (0x2000000) + +#define WINEDDFLIP_INTERVAL3 (0x3000000) + +#define WINEDDFLIP_INTERVAL4 (0x4000000) + +#define WINEDDOVER_ALPHADEST (0x1) + +#define WINEDDOVER_ALPHADESTCONSTOVERRIDE (0x2) + +#define WINEDDOVER_ALPHADESTNEG (0x4) + +#define WINEDDOVER_ALPHADESTSURFACEOVERRIDE (0x8) + +#define WINEDDOVER_ALPHAEDGEBLEND (0x10) + +#define WINEDDOVER_ALPHASRC (0x20) + +#define WINEDDOVER_ALPHASRCCONSTOVERRIDE (0x40) + +#define WINEDDOVER_ALPHASRCNEG (0x80) + +#define WINEDDOVER_ALPHASRCSURFACEOVERRIDE (0x100) + +#define WINEDDOVER_HIDE (0x200) + +#define WINEDDOVER_KEYDEST (0x400) + +#define WINEDDOVER_KEYDESTOVERRIDE (0x800) + +#define WINEDDOVER_KEYSRC (0x1000) + +#define WINEDDOVER_KEYSRCOVERRIDE (0x2000) + +#define WINEDDOVER_SHOW (0x4000) + +#define WINEDDOVER_ADDDIRTYRECT (0x8000) + +#define WINEDDOVER_REFRESHDIRTYRECTS (0x10000) + +#define WINEDDOVER_REFRESHALL (0x20000) + +#define WINEDDOVER_DDFX (0x80000) + +#define WINEDDOVER_AUTOFLIP (0x100000) + +#define WINEDDOVER_BOB (0x200000) + +#define WINEDDOVER_OVERRIDEBOBWEAVE (0x400000) + +#define WINEDDOVER_INTERLEAVED (0x800000) + +#define WINEDDSCAPS_RESERVED1 (0x1) + +#define WINEDDSCAPS_ALPHA (0x2) + +#define WINEDDSCAPS_BACKBUFFER (0x4) + +#define WINEDDSCAPS_COMPLEX (0x8) + +#define WINEDDSCAPS_FLIP (0x10) + +#define WINEDDSCAPS_FRONTBUFFER (0x20) + +#define WINEDDSCAPS_OFFSCREENPLAIN (0x40) + +#define WINEDDSCAPS_OVERLAY (0x80) + +#define WINEDDSCAPS_PALETTE (0x100) + +#define WINEDDSCAPS_PRIMARYSURFACE (0x200) + +#define WINEDDSCAPS_PRIMARYSURFACELEFT (0x400) + +#define WINEDDSCAPS_SYSTEMMEMORY (0x800) + +#define WINEDDSCAPS_TEXTURE (0x1000) + +#define WINEDDSCAPS_3DDEVICE (0x2000) + +#define WINEDDSCAPS_VIDEOMEMORY (0x4000) + +#define WINEDDSCAPS_VISIBLE (0x8000) + +#define WINEDDSCAPS_WRITEONLY (0x10000) + +#define WINEDDSCAPS_ZBUFFER (0x20000) + +#define WINEDDSCAPS_OWNDC (0x40000) + +#define WINEDDSCAPS_LIVEVIDEO (0x80000) + +#define WINEDDSCAPS_HWCODEC (0x100000) + +#define WINEDDSCAPS_MODEX (0x200000) + +#define WINEDDSCAPS_MIPMAP (0x400000) + +#define WINEDDSCAPS_RESERVED2 (0x800000) + +#define WINEDDSCAPS_ALLOCONLOAD (0x4000000) + +#define WINEDDSCAPS_VIDEOPORT (0x8000000) + +#define WINEDDSCAPS_LOCALVIDMEM (0x10000000) + +#define WINEDDSCAPS_NONLOCALVIDMEM (0x20000000) + +#define WINEDDSCAPS_STANDARDVGAMODE (0x40000000) + +#define WINEDDSCAPS_OPTIMIZED (0x80000000) + +#define WINEDDCKEYCAPS_DESTBLT (0x1) + +#define WINEDDCKEYCAPS_DESTBLTCLRSPACE (0x2) + +#define WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV (0x4) + +#define WINEDDCKEYCAPS_DESTBLTYUV (0x8) + +#define WINEDDCKEYCAPS_DESTOVERLAY (0x10) + +#define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE (0x20) + +#define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV (0x40) + +#define WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE (0x80) + +#define WINEDDCKEYCAPS_DESTOVERLAYYUV (0x100) + +#define WINEDDCKEYCAPS_SRCBLT (0x200) + +#define WINEDDCKEYCAPS_SRCBLTCLRSPACE (0x400) + +#define WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV (0x800) + +#define WINEDDCKEYCAPS_SRCBLTYUV (0x1000) + +#define WINEDDCKEYCAPS_SRCOVERLAY (0x2000) + +#define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE (0x4000) + +#define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV (0x8000) + +#define WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE (0x10000) + +#define WINEDDCKEYCAPS_SRCOVERLAYYUV (0x20000) + +#define WINEDDCKEYCAPS_NOCOSTOVERLAY (0x40000) + +#define WINEDDFXCAPS_BLTALPHA (0x1) + +#define WINEDDFXCAPS_OVERLAYALPHA (0x4) + +#define WINEDDFXCAPS_BLTARITHSTRETCHYN (0x10) + +#define WINEDDFXCAPS_BLTARITHSTRETCHY (0x20) + +#define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT (0x40) + +#define WINEDDFXCAPS_BLTMIRRORUPDOWN (0x80) + +#define WINEDDFXCAPS_BLTROTATION (0x100) + +#define WINEDDFXCAPS_BLTROTATION90 (0x200) + +#define WINEDDFXCAPS_BLTSHRINKX (0x400) + +#define WINEDDFXCAPS_BLTSHRINKXN (0x800) + +#define WINEDDFXCAPS_BLTSHRINKY (0x1000) + +#define WINEDDFXCAPS_BLTSHRINKYN (0x2000) + +#define WINEDDFXCAPS_BLTSTRETCHX (0x4000) + +#define WINEDDFXCAPS_BLTSTRETCHXN (0x8000) + +#define WINEDDFXCAPS_BLTSTRETCHY (0x10000) + +#define WINEDDFXCAPS_BLTSTRETCHYN (0x20000) + +#define WINEDDFXCAPS_OVERLAYARITHSTRETCHY (0x40000) + +#define WINEDDFXCAPS_OVERLAYARITHSTRETCHYN (0x8) + +#define WINEDDFXCAPS_OVERLAYSHRINKX (0x80000) + +#define WINEDDFXCAPS_OVERLAYSHRINKXN (0x100000) + +#define WINEDDFXCAPS_OVERLAYSHRINKY (0x200000) + +#define WINEDDFXCAPS_OVERLAYSHRINKYN (0x400000) + +#define WINEDDFXCAPS_OVERLAYSTRETCHX (0x800000) + +#define WINEDDFXCAPS_OVERLAYSTRETCHXN (0x1000000) + +#define WINEDDFXCAPS_OVERLAYSTRETCHY (0x2000000) + +#define WINEDDFXCAPS_OVERLAYSTRETCHYN (0x4000000) + +#define WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT (0x8000000) + +#define WINEDDFXCAPS_OVERLAYMIRRORUPDOWN (0x10000000) + +#define WINEDDCAPS_3D (0x1) + +#define WINEDDCAPS_ALIGNBOUNDARYDEST (0x2) + +#define WINEDDCAPS_ALIGNSIZEDEST (0x4) + +#define WINEDDCAPS_ALIGNBOUNDARYSRC (0x8) + +#define WINEDDCAPS_ALIGNSIZESRC (0x10) + +#define WINEDDCAPS_ALIGNSTRIDE (0x20) + +#define WINEDDCAPS_BLT (0x40) + +#define WINEDDCAPS_BLTQUEUE (0x80) + +#define WINEDDCAPS_BLTFOURCC (0x100) + +#define WINEDDCAPS_BLTSTRETCH (0x200) + +#define WINEDDCAPS_GDI (0x400) + +#define WINEDDCAPS_OVERLAY (0x800) + +#define WINEDDCAPS_OVERLAYCANTCLIP (0x1000) + +#define WINEDDCAPS_OVERLAYFOURCC (0x2000) + +#define WINEDDCAPS_OVERLAYSTRETCH (0x4000) + +#define WINEDDCAPS_PALETTE (0x8000) + +#define WINEDDCAPS_PALETTEVSYNC (0x10000) + +#define WINEDDCAPS_READSCANLINE (0x20000) + +#define WINEDDCAPS_STEREOVIEW (0x40000) + +#define WINEDDCAPS_VBI (0x80000) + +#define WINEDDCAPS_ZBLTS (0x100000) + +#define WINEDDCAPS_ZOVERLAYS (0x200000) + +#define WINEDDCAPS_COLORKEY (0x400000) + +#define WINEDDCAPS_ALPHA (0x800000) + +#define WINEDDCAPS_COLORKEYHWASSIST (0x1000000) + +#define WINEDDCAPS_NOHARDWARE (0x2000000) + +#define WINEDDCAPS_BLTCOLORFILL (0x4000000) + +#define WINEDDCAPS_BANKSWITCHED (0x8000000) + +#define WINEDDCAPS_BLTDEPTHFILL (0x10000000) + +#define WINEDDCAPS_CANCLIP (0x20000000) + +#define WINEDDCAPS_CANCLIPSTRETCHED (0x40000000) + +#define WINEDDCAPS_CANBLTSYSMEM (0x80000000) + +#define WINEDDCAPS2_CERTIFIED (0x1) + +#define WINEDDCAPS2_NO2DDURING3DSCENE (0x2) + +#define WINEDDCAPS2_VIDEOPORT (0x4) + +#define WINEDDCAPS2_AUTOFLIPOVERLAY (0x8) + +#define WINEDDCAPS2_CANBOBINTERLEAVED (0x10) + +#define WINEDDCAPS2_CANBOBNONINTERLEAVED (0x20) + +#define WINEDDCAPS2_COLORCONTROLOVERLAY (0x40) + +#define WINEDDCAPS2_COLORCONTROLPRIMARY (0x80) + +#define WINEDDCAPS2_CANDROPZ16BIT (0x100) + +#define WINEDDCAPS2_NONLOCALVIDMEM (0x200) + +#define WINEDDCAPS2_NONLOCALVIDMEMCAPS (0x400) + +#define WINEDDCAPS2_NOPAGELOCKREQUIRED (0x800) + +#define WINEDDCAPS2_WIDESURFACES (0x1000) + +#define WINEDDCAPS2_CANFLIPODDEVEN (0x2000) + +#define WINEDDCAPS2_CANBOBHARDWARE (0x4000) + +#define WINEDDCAPS2_COPYFOURCC (0x8000) + +#define WINEDDCAPS2_PRIMARYGAMMA (0x20000) + +#define WINEDDCAPS2_CANRENDERWINDOWED (0x80000) + +#define WINEDDCAPS2_CANCALIBRATEGAMMA (0x100000) + +#define WINEDDCAPS2_FLIPINTERVAL (0x200000) + +#define WINEDDCAPS2_FLIPNOVSYNC (0x400000) + +#define WINEDDCAPS2_CANMANAGETEXTURE (0x800000) + +#define WINEDDCAPS2_TEXMANINNONLOCALVIDMEM (0x1000000) + +#define WINEDDCAPS2_STEREO (0x2000000) + +#define WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL (0x4000000) + +#define WINEDDPCAPS_4BIT (0x1) + +#define WINEDDPCAPS_8BITENTRIES (0x2) + +#define WINEDDPCAPS_8BIT (0x4) + +#define WINEDDPCAPS_INITIALIZE (0x8) + +#define WINEDDPCAPS_PRIMARYSURFACE (0x10) + +#define WINEDDPCAPS_PRIMARYSURFACELEFT (0x20) + +#define WINEDDPCAPS_ALLOW256 (0x40) + +#define WINEDDPCAPS_VSYNC (0x80) + +#define WINEDDPCAPS_1BIT (0x100) + +#define WINEDDPCAPS_2BIT (0x200) + +#define WINEDDPCAPS_ALPHA (0x400) + +typedef struct _WINED3DDISPLAYMODE { + UINT Width; + UINT Height; + UINT RefreshRate; + WINED3DFORMAT Format; +} WINED3DDISPLAYMODE; +typedef enum _WINED3DSCANLINEORDERING { + WINED3DSCANLINEORDERING_UNKNOWN = 0, + WINED3DSCANLINEORDERING_PROGRESSIVE = 1, + WINED3DSCANLINEORDERING_INTERLACED = 2 +} WINED3DSCANLINEORDERING; +typedef struct _WINED3DDISPLAYMODEEX { + UINT Size; + UINT Width; + UINT Height; + UINT RefreshRate; + WINED3DFORMAT Format; + WINED3DSCANLINEORDERING ScanLineOrdering; +} WINED3DDISPLAYMODEEX; +typedef enum _WINED3DDISPLAYROTATION { + WINED3DDISPLAYROTATION_IDENTITY = 1, + WINED3DDISPLAYROTATION_90 = 2, + WINED3DDISPLAYROTATION_180 = 3, + WINED3DDISPLAYROTATION_270 = 4 +} WINED3DDISPLAYROTATION; +typedef struct _WINED3DCOLORVALUE { + float r; + float g; + float b; + float a; +} WINED3DCOLORVALUE; +typedef struct _WINED3DVECTOR { + float x; + float y; + float z; +} WINED3DVECTOR; +typedef struct _WINED3DMATRIX { + union { + struct { + float _11; + float _12; + float _13; + float _14; + float _21; + float _22; + float _23; + float _24; + float _31; + float _32; + float _33; + float _34; + float _41; + float _42; + float _43; + float _44; + } s; + float m[4][4]; + } u; +} WINED3DMATRIX; +typedef struct _WINED3DRECT { + LONG x1; + LONG y1; + LONG x2; + LONG y2; +} WINED3DRECT; +typedef struct _WINED3DLIGHT { + WINED3DLIGHTTYPE Type; + WINED3DCOLORVALUE Diffuse; + WINED3DCOLORVALUE Specular; + WINED3DCOLORVALUE Ambient; + WINED3DVECTOR Position; + WINED3DVECTOR Direction; + float Range; + float Falloff; + float Attenuation0; + float Attenuation1; + float Attenuation2; + float Theta; + float Phi; +} WINED3DLIGHT; +typedef struct _WINED3DMATERIAL { + WINED3DCOLORVALUE Diffuse; + WINED3DCOLORVALUE Ambient; + WINED3DCOLORVALUE Specular; + WINED3DCOLORVALUE Emissive; + float Power; +} WINED3DMATERIAL; +typedef struct _WINED3DVIEWPORT { + DWORD X; + DWORD Y; + DWORD Width; + DWORD Height; + float MinZ; + float MaxZ; +} WINED3DVIEWPORT; +typedef struct _WINED3DGAMMARAMP { + WORD red[256]; + WORD green[256]; + WORD blue[256]; +} WINED3DGAMMARAMP; +typedef struct _WINED3DLINEPATTERN { + WORD wRepeatFactor; + WORD wLinePattern; +} WINED3DLINEPATTERN; +typedef struct _WINEDD3DRECTPATCH_INFO { + UINT StartVertexOffsetWidth; + UINT StartVertexOffsetHeight; + UINT Width; + UINT Height; + UINT Stride; + WINED3DBASISTYPE Basis; + WINED3DDEGREETYPE Degree; +} WINED3DRECTPATCH_INFO; +typedef struct _WINED3DTRIPATCH_INFO { + UINT StartVertexOffset; + UINT NumVertices; + WINED3DBASISTYPE Basis; + WINED3DDEGREETYPE Degree; +} WINED3DTRIPATCH_INFO; +typedef struct _WINED3DADAPTER_IDENTIFIER { + char *driver; + UINT driver_size; + char *description; + UINT description_size; + char *device_name; + UINT device_name_size; + LARGE_INTEGER driver_version; + DWORD vendor_id; + DWORD device_id; + DWORD subsystem_id; + DWORD revision; + GUID device_identifier; + DWORD whql_level; + LUID adapter_luid; + SIZE_T video_memory; +} WINED3DADAPTER_IDENTIFIER; +typedef struct _WINED3DPRESENT_PARAMETERS { + UINT BackBufferWidth; + UINT BackBufferHeight; + WINED3DFORMAT BackBufferFormat; + UINT BackBufferCount; + WINED3DMULTISAMPLE_TYPE MultiSampleType; + DWORD MultiSampleQuality; + WINED3DSWAPEFFECT SwapEffect; + HWND hDeviceWindow; + BOOL Windowed; + BOOL EnableAutoDepthStencil; + WINED3DFORMAT AutoDepthStencilFormat; + DWORD Flags; + UINT FullScreen_RefreshRateInHz; + UINT PresentationInterval; + BOOL AutoRestoreDisplayMode; +#ifdef VBOX_WITH_WDDM + struct VBOXUHGSMI *pHgsmi; +#endif +} WINED3DPRESENT_PARAMETERS; +typedef struct _WINED3DSURFACE_DESC { + WINED3DFORMAT format; + WINED3DRESOURCETYPE resource_type; + DWORD usage; + WINED3DPOOL pool; + UINT size; + WINED3DMULTISAMPLE_TYPE multisample_type; + DWORD multisample_quality; + UINT width; + UINT height; +} WINED3DSURFACE_DESC; +typedef struct _WINED3DVOLUME_DESC { + WINED3DFORMAT Format; + WINED3DRESOURCETYPE Type; + DWORD Usage; + WINED3DPOOL Pool; + UINT Size; + UINT Width; + UINT Height; + UINT Depth; +} WINED3DVOLUME_DESC; +typedef struct _WINED3DCLIPSTATUS { + DWORD ClipUnion; + DWORD ClipIntersection; +} WINED3DCLIPSTATUS; +typedef struct _WINED3DVERTEXELEMENT { + WINED3DFORMAT format; + WORD input_slot; + WORD offset; + UINT output_slot; + BYTE method; + BYTE usage; + BYTE usage_idx; +} WINED3DVERTEXELEMENT; +typedef struct _WINED3DDEVICE_CREATION_PARAMETERS { + UINT AdapterOrdinal; + WINED3DDEVTYPE DeviceType; + HWND hFocusWindow; + DWORD BehaviorFlags; +} WINED3DDEVICE_CREATION_PARAMETERS; +typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS { + float MaxBandwidthUtilized; + float FrontEndUploadMemoryUtilizedPercent; + float VertexRateUtilizedPercent; + float TriangleSetupRateUtilizedPercent; + float FillRateUtilizedPercent; +} WINED3DDEVINFO_BANDWIDTHTIMINGS; +typedef struct _WINED3DDEVINFO_CACHEUTILIZATION { + float TextureCacheHitRate; + float PostTransformVertexCacheHitRate; +} WINED3DDEVINFO_CACHEUTILIZATION; +typedef struct _WINED3DDEVINFO_INTERFACETIMINGS { + float WaitingForGPUToUseApplicationResourceTimePercent; + float WaitingForGPUToAcceptMoreCommandsTimePercent; + float WaitingForGPUToStayWithinLatencyTimePercent; + float WaitingForGPUExclusiveResourceTimePercent; + float WaitingForGPUOtherTimePercent; +} WINED3DDEVINFO_INTERFACETIMINGS; +typedef struct _WINED3DDEVINFO_PIPELINETIMINGS { + float VertexProcessingTimePercent; + float PixelProcessingTimePercent; + float OtherGPUProcessingTimePercent; + float GPUIdleTimePercent; +} WINED3DDEVINFO_PIPELINETIMINGS; +typedef struct _WINED3DDEVINFO_STAGETIMINGS { + float MemoryProcessingPercent; + float ComputationProcessingPercent; +} WINED3DDEVINFO_STAGETIMINGS; +typedef struct _WINED3DRASTER_STATUS { + BOOL InVBlank; + UINT ScanLine; +} WINED3DRASTER_STATUS; +typedef struct WINED3DRESOURCESTATS { + BOOL bThrashing; + DWORD ApproxBytesDownloaded; + DWORD NumEvicts; + DWORD NumVidCreates; + DWORD LastPri; + DWORD NumUsed; + DWORD NumUsedInVidMem; + DWORD WorkingSet; + DWORD WorkingSetBytes; + DWORD TotalManaged; + DWORD TotalBytes; +} WINED3DRESOURCESTATS; +typedef struct _WINED3DDEVINFO_RESOURCEMANAGER { + WINED3DRESOURCESTATS stats[7]; +} WINED3DDEVINFO_RESOURCEMANAGER; +typedef struct _WINED3DDEVINFO_VERTEXSTATS { + DWORD NumRenderedTriangles; + DWORD NumExtraClippingTriangles; +} WINED3DDEVINFO_VERTEXSTATS; +typedef struct _WINED3DLOCKED_RECT { + INT Pitch; + void *pBits; +} WINED3DLOCKED_RECT; +typedef struct _WINED3DLOCKED_BOX { + INT RowPitch; + INT SlicePitch; + void *pBits; +} WINED3DLOCKED_BOX; +typedef struct _WINED3DBOX { + UINT Left; + UINT Top; + UINT Right; + UINT Bottom; + UINT Front; + UINT Back; +} WINED3DBOX; +typedef struct WINED3DDEVINFO_VCACHE { + DWORD Pattern; + DWORD OptMethod; + DWORD CacheSize; + DWORD MagicNumber; +} WINED3DDEVINFO_VCACHE; +typedef struct _WINED3DBUFFER_DESC { + WINED3DRESOURCETYPE Type; + DWORD Usage; + WINED3DPOOL Pool; + UINT Size; +} WINED3DBUFFER_DESC; +typedef struct WineDirect3DStridedData { + WINED3DFORMAT format; + const BYTE *lpData; + DWORD dwStride; +} WineDirect3DStridedData; +typedef struct WineDirect3DVertexStridedData { + WineDirect3DStridedData position; + WineDirect3DStridedData normal; + WineDirect3DStridedData diffuse; + WineDirect3DStridedData specular; + WineDirect3DStridedData texCoords[8]; + BOOL position_transformed; +} WineDirect3DVertexStridedData; +typedef struct _WINED3DVSHADERCAPS2_0 { + DWORD Caps; + INT DynamicFlowControlDepth; + INT NumTemps; + INT StaticFlowControlDepth; +} WINED3DVSHADERCAPS2_0; +typedef struct _WINED3DPSHADERCAPS2_0 { + DWORD Caps; + INT DynamicFlowControlDepth; + INT NumTemps; + INT StaticFlowControlDepth; + INT NumInstructionSlots; +} WINED3DPSHADERCAPS2_0; +typedef struct _WINEDDCAPS { + DWORD Caps; + DWORD Caps2; + DWORD CKeyCaps; + DWORD FXCaps; + DWORD FXAlphaCaps; + DWORD PalCaps; + DWORD SVCaps; + DWORD SVBCaps; + DWORD SVBCKeyCaps; + DWORD SVBFXCaps; + DWORD VSBCaps; + DWORD VSBCKeyCaps; + DWORD VSBFXCaps; + DWORD SSBCaps; + DWORD SSBCKeyCaps; + DWORD SSBFXCaps; + DWORD ddsCaps; + DWORD StrideAlign; +} WINEDDCAPS; +typedef struct _WINED3DCAPS { + WINED3DDEVTYPE DeviceType; + UINT AdapterOrdinal; + DWORD Caps; + DWORD Caps2; + DWORD Caps3; + DWORD PresentationIntervals; + DWORD CursorCaps; + DWORD DevCaps; + DWORD PrimitiveMiscCaps; + DWORD RasterCaps; + DWORD ZCmpCaps; + DWORD SrcBlendCaps; + DWORD DestBlendCaps; + DWORD AlphaCmpCaps; + DWORD ShadeCaps; + DWORD TextureCaps; + DWORD TextureFilterCaps; + DWORD CubeTextureFilterCaps; + DWORD VolumeTextureFilterCaps; + DWORD TextureAddressCaps; + DWORD VolumeTextureAddressCaps; + DWORD LineCaps; + DWORD MaxTextureWidth; + DWORD MaxTextureHeight; + DWORD MaxVolumeExtent; + DWORD MaxTextureRepeat; + DWORD MaxTextureAspectRatio; + DWORD MaxAnisotropy; + float MaxVertexW; + float GuardBandLeft; + float GuardBandTop; + float GuardBandRight; + float GuardBandBottom; + float ExtentsAdjust; + DWORD StencilCaps; + DWORD FVFCaps; + DWORD TextureOpCaps; + DWORD MaxTextureBlendStages; + DWORD MaxSimultaneousTextures; + DWORD VertexProcessingCaps; + DWORD MaxActiveLights; + DWORD MaxUserClipPlanes; + DWORD MaxVertexBlendMatrices; + DWORD MaxVertexBlendMatrixIndex; + float MaxPointSize; + DWORD MaxPrimitiveCount; + DWORD MaxVertexIndex; + DWORD MaxStreams; + DWORD MaxStreamStride; + DWORD VertexShaderVersion; + DWORD MaxVertexShaderConst; + DWORD PixelShaderVersion; + float PixelShader1xMaxValue; + DWORD DevCaps2; + float MaxNpatchTessellationLevel; + DWORD Reserved5; + UINT MasterAdapterOrdinal; + UINT AdapterOrdinalInGroup; + UINT NumberOfAdaptersInGroup; + DWORD DeclTypes; + DWORD NumSimultaneousRTs; + DWORD StretchRectFilterCaps; + WINED3DVSHADERCAPS2_0 VS20Caps; + WINED3DPSHADERCAPS2_0 PS20Caps; + DWORD VertexTextureFilterCaps; + DWORD MaxVShaderInstructionsExecuted; + DWORD MaxPShaderInstructionsExecuted; + DWORD MaxVertexShader30InstructionSlots; + DWORD MaxPixelShader30InstructionSlots; + DWORD Reserved2; + DWORD Reserved3; + WINEDDCAPS DirectDrawCaps; +} WINED3DCAPS; +typedef struct _WINEDDCOLORKEY { + DWORD dwColorSpaceLowValue; + DWORD dwColorSpaceHighValue; +} WINEDDCOLORKEY; +typedef struct _WINEDDCOLORKEY *LPWINEDDCOLORKEY; +typedef struct _WINEDDBLTFX { + DWORD dwSize; + DWORD dwDDFX; + DWORD dwROP; + DWORD dwDDROP; + DWORD dwRotationAngle; + DWORD dwZBufferOpCode; + DWORD dwZBufferLow; + DWORD dwZBufferHigh; + DWORD dwZBufferBaseDest; + DWORD dwZDestConstBitDepth; + union { + DWORD dwZDestConst; + struct IWineD3DSurface *lpDDSZBufferDest; + } DUMMYUNIONNAME1; + DWORD dwZSrcConstBitDepth; + union { + DWORD dwZSrcConst; + struct IWineD3DSurface *lpDDSZBufferSrc; + } DUMMYUNIONNAME2; + DWORD dwAlphaEdgeBlendBitDepth; + DWORD dwAlphaEdgeBlend; + DWORD dwReserved; + DWORD dwAlphaDestConstBitDepth; + union { + DWORD dwAlphaDestConst; + struct IWineD3DSurface *lpDDSAlphaDest; + } DUMMYUNIONNAME3; + DWORD dwAlphaSrcConstBitDepth; + union { + DWORD dwAlphaSrcConst; + struct IWineD3DSurface *lpDDSAlphaSrc; + } DUMMYUNIONNAME4; + union { + DWORD dwFillColor; + DWORD dwFillDepth; + DWORD dwFillPixel; + struct IWineD3DSurface *lpDDSPattern; + } DUMMYUNIONNAME5; + WINEDDCOLORKEY ddckDestColorkey; + WINEDDCOLORKEY ddckSrcColorkey; +} WINEDDBLTFX; +typedef struct _WINEDDBLTFX *LPWINEDDBLTFX; +typedef struct _WINEDDOVERLAYFX { + DWORD dwSize; + DWORD dwAlphaEdgeBlendBitDepth; + DWORD dwAlphaEdgeBlend; + DWORD dwReserved; + DWORD dwAlphaDestConstBitDepth; + union { + DWORD dwAlphaDestConst; + struct IWineD3DSurface *lpDDSAlphaDest; + } DUMMYUNIONNAME1; + DWORD dwAlphaSrcConstBitDepth; + union { + DWORD dwAlphaSrcConst; + struct IWineD3DSurface *lpDDSAlphaSrc; + } DUMMYUNIONNAME2; + WINEDDCOLORKEY dckDestColorkey; + WINEDDCOLORKEY dckSrcColorkey; + DWORD dwDDFX; + DWORD dwFlags; +} WINEDDOVERLAYFX; +struct wined3d_buffer_desc { + UINT byte_width; + DWORD usage; + UINT bind_flags; + UINT cpu_access_flags; + UINT misc_flags; +}; + +struct wined3d_shader_signature_element { + const char *semantic_name; + UINT semantic_idx; + enum wined3d_sysval_semantic sysval_semantic; + DWORD component_type; + UINT register_idx; + DWORD mask; +}; + +struct wined3d_shader_signature { + UINT element_count; + struct wined3d_shader_signature_element *elements; + char *string_data; +}; + +struct wined3d_parent_ops { + void (STDMETHODCALLTYPE *wined3d_object_destroyed)(void *parent); +}; + +#ifndef __IWineD3DResource_FWD_DEFINED__ +#define __IWineD3DResource_FWD_DEFINED__ +typedef interface IWineD3DResource IWineD3DResource; +#endif + +#ifndef __IWineD3DSurface_FWD_DEFINED__ +#define __IWineD3DSurface_FWD_DEFINED__ +typedef interface IWineD3DSurface IWineD3DSurface; +#endif + +#ifndef __IWineD3DVolume_FWD_DEFINED__ +#define __IWineD3DVolume_FWD_DEFINED__ +typedef interface IWineD3DVolume IWineD3DVolume; +#endif + +#ifndef __IWineD3DSwapChain_FWD_DEFINED__ +#define __IWineD3DSwapChain_FWD_DEFINED__ +typedef interface IWineD3DSwapChain IWineD3DSwapChain; +#endif + +#ifndef __IWineD3DDevice_FWD_DEFINED__ +#define __IWineD3DDevice_FWD_DEFINED__ +typedef interface IWineD3DDevice IWineD3DDevice; +#endif + +/***************************************************************************** + * IWineD3DDeviceParent interface + */ +#ifndef __IWineD3DDeviceParent_INTERFACE_DEFINED__ +#define __IWineD3DDeviceParent_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DDeviceParent, 0xaeb62dfc, 0xbdcb, 0x4f02, 0x95,0x19, 0x1e,0xee,0xa0,0x0c,0x15,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DDeviceParent : public IUnknown +{ + virtual void STDMETHODCALLTYPE WineD3DDeviceCreated( + IWineD3DDevice *device) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateSurface( + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + DWORD usage, + WINED3DPOOL pool, + UINT level, + WINED3DCUBEMAP_FACES face, + IWineD3DSurface **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateRenderTarget( + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + BOOL lockable, + IWineD3DSurface **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilSurface( + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + BOOL discard, + IWineD3DSurface **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVolume( + IUnknown *superior, + UINT width, + UINT height, + UINT depth, + WINED3DFORMAT format, + WINED3DPOOL pool, + DWORD usage, + IWineD3DVolume **volume +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pvClientMem +#endif + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateSwapChain( + WINED3DPRESENT_PARAMETERS *present_parameters, + IWineD3DSwapChain **swapchain) = 0; + +}; +#else +typedef struct IWineD3DDeviceParentVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DDeviceParent* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DDeviceParent* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DDeviceParent* This); + + /*** IWineD3DDeviceParent methods ***/ + void (STDMETHODCALLTYPE *WineD3DDeviceCreated)( + IWineD3DDeviceParent* This, + IWineD3DDevice *device); + + HRESULT (STDMETHODCALLTYPE *CreateSurface)( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + DWORD usage, + WINED3DPOOL pool, + UINT level, + WINED3DCUBEMAP_FACES face, + IWineD3DSurface **surface +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pvClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateRenderTarget)( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + BOOL lockable, + IWineD3DSurface **surface); + + HRESULT (STDMETHODCALLTYPE *CreateDepthStencilSurface)( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + BOOL discard, + IWineD3DSurface **surface); + + HRESULT (STDMETHODCALLTYPE *CreateVolume)( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + UINT depth, + WINED3DFORMAT format, + WINED3DPOOL pool, + DWORD usage, + IWineD3DVolume **volume +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pvClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( + IWineD3DDeviceParent* This, + WINED3DPRESENT_PARAMETERS *present_parameters, + IWineD3DSwapChain **swapchain); + + END_INTERFACE +} IWineD3DDeviceParentVtbl; +interface IWineD3DDeviceParent { + CONST_VTBL IWineD3DDeviceParentVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DDeviceParent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DDeviceParent_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DDeviceParent_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DDeviceParent methods ***/ +#define IWineD3DDeviceParent_WineD3DDeviceCreated(This,device) (This)->lpVtbl->WineD3DDeviceCreated(This,device) +#ifdef VBOX_WITH_WDDM +#define IWineD3DDeviceParent_CreateSurface(This,superior,width,height,format,usage,pool,level,face,surface,shared_handle,pvClientMem) (This)->lpVtbl->CreateSurface(This,superior,width,height,format,usage,pool,level,face,surface,shared_handle,pvClientMem) +#else +#define IWineD3DDeviceParent_CreateSurface(This,superior,width,height,format,usage,pool,level,face,surface) (This)->lpVtbl->CreateSurface(This,superior,width,height,format,usage,pool,level,face,surface) +#endif +#define IWineD3DDeviceParent_CreateRenderTarget(This,superior,width,height,format,multisample_type,multisample_quality,lockable,surface) (This)->lpVtbl->CreateRenderTarget(This,superior,width,height,format,multisample_type,multisample_quality,lockable,surface) +#define IWineD3DDeviceParent_CreateDepthStencilSurface(This,superior,width,height,format,multisample_type,multisample_quality,discard,surface) (This)->lpVtbl->CreateDepthStencilSurface(This,superior,width,height,format,multisample_type,multisample_quality,discard,surface) +#ifdef VBOX_WITH_WDDM +#define IWineD3DDeviceParent_CreateVolume(This,superior,width,height,depth,format,pool,usage,volume,shared_handle,pvClientMem) (This)->lpVtbl->CreateVolume(This,superior,width,height,depth,format,pool,usage,volume,shared_handle,pvClientMem) +#else +#define IWineD3DDeviceParent_CreateVolume(This,superior,width,height,depth,format,pool,usage,volume) (This)->lpVtbl->CreateVolume(This,superior,width,height,depth,format,pool,usage,volume) +#endif +#define IWineD3DDeviceParent_CreateSwapChain(This,present_parameters,swapchain) (This)->lpVtbl->CreateSwapChain(This,present_parameters,swapchain) +#endif + +#endif + +void STDMETHODCALLTYPE IWineD3DDeviceParent_WineD3DDeviceCreated_Proxy( + IWineD3DDeviceParent* This, + IWineD3DDevice *device); +void __RPC_STUB IWineD3DDeviceParent_WineD3DDeviceCreated_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDeviceParent_CreateSurface_Proxy( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + DWORD usage, + WINED3DPOOL pool, + UINT level, + WINED3DCUBEMAP_FACES face, + IWineD3DSurface **surface); +void __RPC_STUB IWineD3DDeviceParent_CreateSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDeviceParent_CreateRenderTarget_Proxy( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + BOOL lockable, + IWineD3DSurface **surface); +void __RPC_STUB IWineD3DDeviceParent_CreateRenderTarget_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDeviceParent_CreateDepthStencilSurface_Proxy( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + WINED3DFORMAT format, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + BOOL discard, + IWineD3DSurface **surface); +void __RPC_STUB IWineD3DDeviceParent_CreateDepthStencilSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDeviceParent_CreateVolume_Proxy( + IWineD3DDeviceParent* This, + IUnknown *superior, + UINT width, + UINT height, + UINT depth, + WINED3DFORMAT format, + WINED3DPOOL pool, + DWORD usage, + IWineD3DVolume **volume); +void __RPC_STUB IWineD3DDeviceParent_CreateVolume_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDeviceParent_CreateSwapChain_Proxy( + IWineD3DDeviceParent* This, + WINED3DPRESENT_PARAMETERS *present_parameters, + IWineD3DSwapChain **swapchain); +void __RPC_STUB IWineD3DDeviceParent_CreateSwapChain_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DDeviceParent_INTERFACE_DEFINED__ */ + +typedef ULONG (STDMETHODCALLTYPE *D3DCB_DESTROYSWAPCHAINFN)(IWineD3DSwapChain *pSwapChain); +typedef HRESULT (STDMETHODCALLTYPE *D3DCB_ENUMRESOURCES)(IWineD3DResource *resource,void *pData); +/***************************************************************************** + * IWineD3DBase interface + */ +#ifndef __IWineD3DBase_INTERFACE_DEFINED__ +#define __IWineD3DBase_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DBase, 0x46799311, 0x8e0e, 0x40ce, 0xb2,0xec, 0xdd,0xb9,0x9f,0x18,0xfc,0xb4); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DBase : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetParent( + IUnknown **parent) = 0; + +}; +#else +typedef struct IWineD3DBaseVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DBase* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DBase* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DBase* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DBase* This, + IUnknown **parent); + + END_INTERFACE +} IWineD3DBaseVtbl; +interface IWineD3DBase { + CONST_VTBL IWineD3DBaseVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DBase_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DBase_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DBase_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DBase_GetParent_Proxy( + IWineD3DBase* This, + IUnknown **parent); +void __RPC_STUB IWineD3DBase_GetParent_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DBase_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3D interface + */ +#ifndef __IWineD3D_INTERFACE_DEFINED__ +#define __IWineD3D_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3D, 0x108f9c44, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3D : public IWineD3DBase +{ + virtual UINT STDMETHODCALLTYPE GetAdapterCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterSoftwareDevice( + void *pInitializeFunction) = 0; + + virtual HMONITOR STDMETHODCALLTYPE GetAdapterMonitor( + UINT adapter_idx) = 0; + + virtual UINT STDMETHODCALLTYPE GetAdapterModeCount( + UINT adapter_idx, + WINED3DFORMAT format) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumAdapterModes( + UINT adapter_idx, + WINED3DFORMAT format, + UINT mode_idx, + WINED3DDISPLAYMODE *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAdapterDisplayMode( + UINT adapter_idx, + WINED3DDISPLAYMODE *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAdapterDisplayModeEx( + UINT adapter_idx, + WINED3DDISPLAYMODEEX *mode, + WINED3DDISPLAYROTATION *rotation) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAdapterIdentifier( + UINT adapter_idx, + DWORD flags, + WINED3DADAPTER_IDENTIFIER *identifier) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckDeviceMultiSampleType( + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT surface_format, + BOOL windowed, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD *quality_levels) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckDepthStencilMatch( + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT adapter_format, + WINED3DFORMAT render_target_format, + WINED3DFORMAT depth_stencil_format) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckDeviceType( + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT display_format, + WINED3DFORMAT backbuffer_format, + BOOL windowed) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckDeviceFormat( + UINT adaper_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT adapter_format, + DWORD usage, + WINED3DRESOURCETYPE resource_type, + WINED3DFORMAT check_format, + WINED3DSURFTYPE surface_type) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckDeviceFormatConversion( + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT source_format, + WINED3DFORMAT target_format) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceCaps( + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DCAPS *caps) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateDevice( + UINT adapter_idx, + WINED3DDEVTYPE device_type, + HWND focus_window, + DWORD behaviour_flags, + IUnknown *parent, + IWineD3DDeviceParent *device_parent, + IWineD3DDevice **device) = 0; + +}; +#else +typedef struct IWineD3DVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3D* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3D* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3D* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3D* This, + IUnknown **parent); + + /*** IWineD3D methods ***/ + UINT (STDMETHODCALLTYPE *GetAdapterCount)( + IWineD3D* This); + + HRESULT (STDMETHODCALLTYPE *RegisterSoftwareDevice)( + IWineD3D* This, + void *pInitializeFunction); + + HMONITOR (STDMETHODCALLTYPE *GetAdapterMonitor)( + IWineD3D* This, + UINT adapter_idx); + + UINT (STDMETHODCALLTYPE *GetAdapterModeCount)( + IWineD3D* This, + UINT adapter_idx, + WINED3DFORMAT format); + + HRESULT (STDMETHODCALLTYPE *EnumAdapterModes)( + IWineD3D* This, + UINT adapter_idx, + WINED3DFORMAT format, + UINT mode_idx, + WINED3DDISPLAYMODE *mode); + + HRESULT (STDMETHODCALLTYPE *GetAdapterDisplayMode)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDISPLAYMODE *mode); + + HRESULT (STDMETHODCALLTYPE *GetAdapterDisplayModeEx)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDISPLAYMODEEX *mode, + WINED3DDISPLAYROTATION *rotation); + + HRESULT (STDMETHODCALLTYPE *GetAdapterIdentifier)( + IWineD3D* This, + UINT adapter_idx, + DWORD flags, + WINED3DADAPTER_IDENTIFIER *identifier); + + HRESULT (STDMETHODCALLTYPE *CheckDeviceMultiSampleType)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT surface_format, + BOOL windowed, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD *quality_levels); + + HRESULT (STDMETHODCALLTYPE *CheckDepthStencilMatch)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT adapter_format, + WINED3DFORMAT render_target_format, + WINED3DFORMAT depth_stencil_format); + + HRESULT (STDMETHODCALLTYPE *CheckDeviceType)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT display_format, + WINED3DFORMAT backbuffer_format, + BOOL windowed); + + HRESULT (STDMETHODCALLTYPE *CheckDeviceFormat)( + IWineD3D* This, + UINT adaper_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT adapter_format, + DWORD usage, + WINED3DRESOURCETYPE resource_type, + WINED3DFORMAT check_format, + WINED3DSURFTYPE surface_type); + + HRESULT (STDMETHODCALLTYPE *CheckDeviceFormatConversion)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT source_format, + WINED3DFORMAT target_format); + + HRESULT (STDMETHODCALLTYPE *GetDeviceCaps)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DCAPS *caps); + + HRESULT (STDMETHODCALLTYPE *CreateDevice)( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + HWND focus_window, + DWORD behaviour_flags, + IUnknown *parent, + IWineD3DDeviceParent *device_parent, + IWineD3DDevice **device); + + END_INTERFACE +} IWineD3DVtbl; +interface IWineD3D { + CONST_VTBL IWineD3DVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3D_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3D_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3D_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3D methods ***/ +#define IWineD3D_GetAdapterCount(This) (This)->lpVtbl->GetAdapterCount(This) +#define IWineD3D_RegisterSoftwareDevice(This,pInitializeFunction) (This)->lpVtbl->RegisterSoftwareDevice(This,pInitializeFunction) +#define IWineD3D_GetAdapterMonitor(This,adapter_idx) (This)->lpVtbl->GetAdapterMonitor(This,adapter_idx) +#define IWineD3D_GetAdapterModeCount(This,adapter_idx,format) (This)->lpVtbl->GetAdapterModeCount(This,adapter_idx,format) +#define IWineD3D_EnumAdapterModes(This,adapter_idx,format,mode_idx,mode) (This)->lpVtbl->EnumAdapterModes(This,adapter_idx,format,mode_idx,mode) +#define IWineD3D_GetAdapterDisplayMode(This,adapter_idx,mode) (This)->lpVtbl->GetAdapterDisplayMode(This,adapter_idx,mode) +#define IWineD3D_GetAdapterDisplayModeEx(This,adapter_idx,mode,rotation) (This)->lpVtbl->GetAdapterDisplayModeEx(This,adapter_idx,mode,rotation) +#define IWineD3D_GetAdapterIdentifier(This,adapter_idx,flags,identifier) (This)->lpVtbl->GetAdapterIdentifier(This,adapter_idx,flags,identifier) +#define IWineD3D_CheckDeviceMultiSampleType(This,adapter_idx,device_type,surface_format,windowed,multisample_type,quality_levels) (This)->lpVtbl->CheckDeviceMultiSampleType(This,adapter_idx,device_type,surface_format,windowed,multisample_type,quality_levels) +#define IWineD3D_CheckDepthStencilMatch(This,adapter_idx,device_type,adapter_format,render_target_format,depth_stencil_format) (This)->lpVtbl->CheckDepthStencilMatch(This,adapter_idx,device_type,adapter_format,render_target_format,depth_stencil_format) +#define IWineD3D_CheckDeviceType(This,adapter_idx,device_type,display_format,backbuffer_format,windowed) (This)->lpVtbl->CheckDeviceType(This,adapter_idx,device_type,display_format,backbuffer_format,windowed) +#define IWineD3D_CheckDeviceFormat(This,adaper_idx,device_type,adapter_format,usage,resource_type,check_format,surface_type) (This)->lpVtbl->CheckDeviceFormat(This,adaper_idx,device_type,adapter_format,usage,resource_type,check_format,surface_type) +#define IWineD3D_CheckDeviceFormatConversion(This,adapter_idx,device_type,source_format,target_format) (This)->lpVtbl->CheckDeviceFormatConversion(This,adapter_idx,device_type,source_format,target_format) +#define IWineD3D_GetDeviceCaps(This,adapter_idx,device_type,caps) (This)->lpVtbl->GetDeviceCaps(This,adapter_idx,device_type,caps) +#define IWineD3D_CreateDevice(This,adapter_idx,device_type,focus_window,behaviour_flags,parent,device_parent,device) (This)->lpVtbl->CreateDevice(This,adapter_idx,device_type,focus_window,behaviour_flags,parent,device_parent,device) +#endif + +#endif + +UINT STDMETHODCALLTYPE IWineD3D_GetAdapterCount_Proxy( + IWineD3D* This); +void __RPC_STUB IWineD3D_GetAdapterCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_RegisterSoftwareDevice_Proxy( + IWineD3D* This, + void *pInitializeFunction); +void __RPC_STUB IWineD3D_RegisterSoftwareDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HMONITOR STDMETHODCALLTYPE IWineD3D_GetAdapterMonitor_Proxy( + IWineD3D* This, + UINT adapter_idx); +void __RPC_STUB IWineD3D_GetAdapterMonitor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +UINT STDMETHODCALLTYPE IWineD3D_GetAdapterModeCount_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DFORMAT format); +void __RPC_STUB IWineD3D_GetAdapterModeCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_EnumAdapterModes_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DFORMAT format, + UINT mode_idx, + WINED3DDISPLAYMODE *mode); +void __RPC_STUB IWineD3D_EnumAdapterModes_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_GetAdapterDisplayMode_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDISPLAYMODE *mode); +void __RPC_STUB IWineD3D_GetAdapterDisplayMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_GetAdapterDisplayModeEx_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDISPLAYMODEEX *mode, + WINED3DDISPLAYROTATION *rotation); +void __RPC_STUB IWineD3D_GetAdapterDisplayModeEx_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_GetAdapterIdentifier_Proxy( + IWineD3D* This, + UINT adapter_idx, + DWORD flags, + WINED3DADAPTER_IDENTIFIER *identifier); +void __RPC_STUB IWineD3D_GetAdapterIdentifier_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_CheckDeviceMultiSampleType_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT surface_format, + BOOL windowed, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD *quality_levels); +void __RPC_STUB IWineD3D_CheckDeviceMultiSampleType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_CheckDepthStencilMatch_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT adapter_format, + WINED3DFORMAT render_target_format, + WINED3DFORMAT depth_stencil_format); +void __RPC_STUB IWineD3D_CheckDepthStencilMatch_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_CheckDeviceType_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT display_format, + WINED3DFORMAT backbuffer_format, + BOOL windowed); +void __RPC_STUB IWineD3D_CheckDeviceType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_CheckDeviceFormat_Proxy( + IWineD3D* This, + UINT adaper_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT adapter_format, + DWORD usage, + WINED3DRESOURCETYPE resource_type, + WINED3DFORMAT check_format, + WINED3DSURFTYPE surface_type); +void __RPC_STUB IWineD3D_CheckDeviceFormat_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_CheckDeviceFormatConversion_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DFORMAT source_format, + WINED3DFORMAT target_format); +void __RPC_STUB IWineD3D_CheckDeviceFormatConversion_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_GetDeviceCaps_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + WINED3DCAPS *caps); +void __RPC_STUB IWineD3D_GetDeviceCaps_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3D_CreateDevice_Proxy( + IWineD3D* This, + UINT adapter_idx, + WINED3DDEVTYPE device_type, + HWND focus_window, + DWORD behaviour_flags, + IUnknown *parent, + IWineD3DDeviceParent *device_parent, + IWineD3DDevice **device); +void __RPC_STUB IWineD3D_CreateDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3D_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DResource interface + */ +#ifndef __IWineD3DResource_INTERFACE_DEFINED__ +#define __IWineD3DResource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DResource, 0x1f3bfb34, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DResource : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE SetPrivateData( + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPrivateData( + REFGUID guid, + void *data, + DWORD *data_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE FreePrivateData( + REFGUID guid) = 0; + + virtual DWORD STDMETHODCALLTYPE SetPriority( + DWORD new_priority) = 0; + + virtual DWORD STDMETHODCALLTYPE GetPriority( + ) = 0; + + virtual void STDMETHODCALLTYPE PreLoad( + ) = 0; + + virtual void STDMETHODCALLTYPE UnLoad( + ) = 0; + + virtual WINED3DRESOURCETYPE STDMETHODCALLTYPE GetType( + ) = 0; + +}; +#else +typedef struct IWineD3DResourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DResource* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DResource* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DResource* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DResource* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DResource* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DResource* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DResource* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DResource* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DResource* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DResource* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DResource* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DResource* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + END_INTERFACE +} IWineD3DResourceVtbl; +interface IWineD3DResource { + CONST_VTBL IWineD3DResourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DResource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DResource_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DResource_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DResource_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DResource_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DResource_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DResource_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DResource_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DResource_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DResource_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DResource_GetType(This) (This)->lpVtbl->GetType(This) +# ifdef VBOX_WITH_WDDM +# define IWineD3DResource_SetShRcState(This, enmState) (This)->lpVtbl->SetShRcState(This, enmState) +# endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DResource_SetPrivateData_Proxy( + IWineD3DResource* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); +void __RPC_STUB IWineD3DResource_SetPrivateData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DResource_GetPrivateData_Proxy( + IWineD3DResource* This, + REFGUID guid, + void *data, + DWORD *data_size); +void __RPC_STUB IWineD3DResource_GetPrivateData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DResource_FreePrivateData_Proxy( + IWineD3DResource* This, + REFGUID guid); +void __RPC_STUB IWineD3DResource_FreePrivateData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +DWORD STDMETHODCALLTYPE IWineD3DResource_SetPriority_Proxy( + IWineD3DResource* This, + DWORD new_priority); +void __RPC_STUB IWineD3DResource_SetPriority_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +DWORD STDMETHODCALLTYPE IWineD3DResource_GetPriority_Proxy( + IWineD3DResource* This); +void __RPC_STUB IWineD3DResource_GetPriority_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DResource_PreLoad_Proxy( + IWineD3DResource* This); +void __RPC_STUB IWineD3DResource_PreLoad_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DResource_UnLoad_Proxy( + IWineD3DResource* This); +void __RPC_STUB IWineD3DResource_UnLoad_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +WINED3DRESOURCETYPE STDMETHODCALLTYPE IWineD3DResource_GetType_Proxy( + IWineD3DResource* This); +void __RPC_STUB IWineD3DResource_GetType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DResource_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DRendertargetView interface + */ +#ifndef __IWineD3DRendertargetView_INTERFACE_DEFINED__ +#define __IWineD3DRendertargetView_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DRendertargetView, 0xf7d8abf4, 0xfb93, 0x43e4, 0x9c,0x96, 0x46,0x18,0xcf,0x9b,0x3c,0xbc); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DRendertargetView : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE GetResource( + IWineD3DResource **resource) = 0; + +}; +#else +typedef struct IWineD3DRendertargetViewVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DRendertargetView* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DRendertargetView* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DRendertargetView* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DRendertargetView* This, + IUnknown **parent); + + /*** IWineD3DRendertargetView methods ***/ + HRESULT (STDMETHODCALLTYPE *GetResource)( + IWineD3DRendertargetView* This, + IWineD3DResource **resource); + + END_INTERFACE +} IWineD3DRendertargetViewVtbl; +interface IWineD3DRendertargetView { + CONST_VTBL IWineD3DRendertargetViewVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DRendertargetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DRendertargetView_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DRendertargetView_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DRendertargetView_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DRendertargetView methods ***/ +#define IWineD3DRendertargetView_GetResource(This,resource) (This)->lpVtbl->GetResource(This,resource) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DRendertargetView_GetResource_Proxy( + IWineD3DRendertargetView* This, + IWineD3DResource **resource); +void __RPC_STUB IWineD3DRendertargetView_GetResource_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DRendertargetView_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DPalette interface + */ +#ifndef __IWineD3DPalette_INTERFACE_DEFINED__ +#define __IWineD3DPalette_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DPalette, 0xf756720c, 0x32b9, 0x4439, 0xb5,0xa3, 0x1d,0x6c,0x97,0x03,0x7d,0x9e); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DPalette : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE GetEntries( + DWORD flags, + DWORD start, + DWORD count, + PALETTEENTRY *entries) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaps( + DWORD *caps) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetEntries( + DWORD flags, + DWORD start, + DWORD count, + const PALETTEENTRY *entries) = 0; + +}; +#else +typedef struct IWineD3DPaletteVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DPalette* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DPalette* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DPalette* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DPalette* This, + IUnknown **parent); + + /*** IWineD3DPalette methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEntries)( + IWineD3DPalette* This, + DWORD flags, + DWORD start, + DWORD count, + PALETTEENTRY *entries); + + HRESULT (STDMETHODCALLTYPE *GetCaps)( + IWineD3DPalette* This, + DWORD *caps); + + HRESULT (STDMETHODCALLTYPE *SetEntries)( + IWineD3DPalette* This, + DWORD flags, + DWORD start, + DWORD count, + const PALETTEENTRY *entries); + + END_INTERFACE +} IWineD3DPaletteVtbl; +interface IWineD3DPalette { + CONST_VTBL IWineD3DPaletteVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DPalette_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DPalette_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DPalette_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DPalette_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DPalette methods ***/ +#define IWineD3DPalette_GetEntries(This,flags,start,count,entries) (This)->lpVtbl->GetEntries(This,flags,start,count,entries) +#define IWineD3DPalette_GetCaps(This,caps) (This)->lpVtbl->GetCaps(This,caps) +#define IWineD3DPalette_SetEntries(This,flags,start,count,entries) (This)->lpVtbl->SetEntries(This,flags,start,count,entries) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DPalette_GetEntries_Proxy( + IWineD3DPalette* This, + DWORD flags, + DWORD start, + DWORD count, + PALETTEENTRY *entries); +void __RPC_STUB IWineD3DPalette_GetEntries_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DPalette_GetCaps_Proxy( + IWineD3DPalette* This, + DWORD *caps); +void __RPC_STUB IWineD3DPalette_GetCaps_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DPalette_SetEntries_Proxy( + IWineD3DPalette* This, + DWORD flags, + DWORD start, + DWORD count, + const PALETTEENTRY *entries); +void __RPC_STUB IWineD3DPalette_SetEntries_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DPalette_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DClipper interface + */ +#ifndef __IWineD3DClipper_INTERFACE_DEFINED__ +#define __IWineD3DClipper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DClipper, 0x8f2bceb1, 0xd338, 0x488c, 0xab,0x7f, 0x0e,0xc9,0x80,0xbf,0x5d,0x2d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DClipper : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE GetClipList( + const RECT *rect, + RGNDATA *clip_list, + DWORD *clip_list_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHWnd( + HWND *hwnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsClipListChanged( + BOOL *changed) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetClipList( + const RGNDATA *clip_list, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetHWnd( + DWORD flags, + HWND hwnd) = 0; + +}; +#else +typedef struct IWineD3DClipperVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DClipper* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DClipper* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DClipper* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DClipper* This, + IUnknown **parent); + + /*** IWineD3DClipper methods ***/ + HRESULT (STDMETHODCALLTYPE *GetClipList)( + IWineD3DClipper* This, + const RECT *rect, + RGNDATA *clip_list, + DWORD *clip_list_size); + + HRESULT (STDMETHODCALLTYPE *GetHWnd)( + IWineD3DClipper* This, + HWND *hwnd); + + HRESULT (STDMETHODCALLTYPE *IsClipListChanged)( + IWineD3DClipper* This, + BOOL *changed); + + HRESULT (STDMETHODCALLTYPE *SetClipList)( + IWineD3DClipper* This, + const RGNDATA *clip_list, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *SetHWnd)( + IWineD3DClipper* This, + DWORD flags, + HWND hwnd); + + END_INTERFACE +} IWineD3DClipperVtbl; +interface IWineD3DClipper { + CONST_VTBL IWineD3DClipperVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DClipper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DClipper_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DClipper_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DClipper_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DClipper methods ***/ +#define IWineD3DClipper_GetClipList(This,rect,clip_list,clip_list_size) (This)->lpVtbl->GetClipList(This,rect,clip_list,clip_list_size) +#define IWineD3DClipper_GetHWnd(This,hwnd) (This)->lpVtbl->GetHWnd(This,hwnd) +#define IWineD3DClipper_IsClipListChanged(This,changed) (This)->lpVtbl->IsClipListChanged(This,changed) +#define IWineD3DClipper_SetClipList(This,clip_list,flags) (This)->lpVtbl->SetClipList(This,clip_list,flags) +#define IWineD3DClipper_SetHWnd(This,flags,hwnd) (This)->lpVtbl->SetHWnd(This,flags,hwnd) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DClipper_GetClipList_Proxy( + IWineD3DClipper* This, + const RECT *rect, + RGNDATA *clip_list, + DWORD *clip_list_size); +void __RPC_STUB IWineD3DClipper_GetClipList_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DClipper_GetHWnd_Proxy( + IWineD3DClipper* This, + HWND *hwnd); +void __RPC_STUB IWineD3DClipper_GetHWnd_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DClipper_IsClipListChanged_Proxy( + IWineD3DClipper* This, + BOOL *changed); +void __RPC_STUB IWineD3DClipper_IsClipListChanged_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DClipper_SetClipList_Proxy( + IWineD3DClipper* This, + const RGNDATA *clip_list, + DWORD flags); +void __RPC_STUB IWineD3DClipper_SetClipList_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DClipper_SetHWnd_Proxy( + IWineD3DClipper* This, + DWORD flags, + HWND hwnd); +void __RPC_STUB IWineD3DClipper_SetHWnd_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DClipper_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DSurface interface + */ +#ifndef __IWineD3DSurface_INTERFACE_DEFINED__ +#define __IWineD3DSurface_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DSurface, 0x37cd5526, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DSurface : public IWineD3DResource +{ + virtual HRESULT STDMETHODCALLTYPE GetContainer( + REFIID riid, + void **container) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDesc( + WINED3DSURFACE_DESC *desc) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockRect( + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnlockRect( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDC( + HDC *dc) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReleaseDC( + HDC dc) = 0; + + virtual HRESULT STDMETHODCALLTYPE Flip( + IWineD3DSurface *override, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Blt( + const RECT *dst_rect, + IWineD3DSurface *src_surface, + const RECT *src_rect, + DWORD flags, + const WINEDDBLTFX *blt_fx, + WINED3DTEXTUREFILTERTYPE filter) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBltStatus( + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlipStatus( + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsLost( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Restore( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE BltFast( + DWORD dst_x, + DWORD dst_y, + IWineD3DSurface *src_surface, + const RECT *src_rect, + DWORD trans) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPalette( + IWineD3DPalette **palette) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPalette( + IWineD3DPalette *palette) = 0; + + virtual HRESULT STDMETHODCALLTYPE RealizePalette( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetColorKey( + DWORD flags, + const WINEDDCOLORKEY *color_key) = 0; + + virtual DWORD STDMETHODCALLTYPE GetPitch( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMem( + void *mem) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOverlayPosition( + LONG x, + LONG y) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOverlayPosition( + LONG *x, + LONG *y) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateOverlayZOrder( + DWORD flags, + IWineD3DSurface *ref) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateOverlay( + const RECT *src_rect, + IWineD3DSurface *dst_surface, + const RECT *dst_rect, + DWORD flags, + const WINEDDOVERLAYFX *fx) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetClipper( + IWineD3DClipper *clipper) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClipper( + IWineD3DClipper **clipper) = 0; + + virtual HRESULT STDMETHODCALLTYPE LoadTexture( + BOOL srgb_mode) = 0; + + virtual void STDMETHODCALLTYPE BindTexture( + BOOL srgb) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveSnapshot( + const char *filename) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetContainer( + IWineD3DBase *container) = 0; + + virtual const void * STDMETHODCALLTYPE GetData( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFormat( + WINED3DFORMAT format) = 0; + + virtual HRESULT STDMETHODCALLTYPE PrivateSetup( + ) = 0; + + virtual void STDMETHODCALLTYPE ModifyLocation( + DWORD location, + BOOL persistent) = 0; + + virtual HRESULT STDMETHODCALLTYPE LoadLocation( + DWORD location, + const RECT *rect) = 0; + + virtual WINED3DSURFTYPE STDMETHODCALLTYPE GetImplType( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawOverlay( + ) = 0; + +}; +#else +typedef struct IWineD3DSurfaceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DSurface* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DSurface* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DSurface* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DSurface* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DSurface* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DSurface* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DSurface* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DSurface* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DSurface* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DSurface* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DSurface* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DSurface* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DSurface methods ***/ + HRESULT (STDMETHODCALLTYPE *GetContainer)( + IWineD3DSurface* This, + REFIID riid, + void **container); + + HRESULT (STDMETHODCALLTYPE *GetDesc)( + IWineD3DSurface* This, + WINED3DSURFACE_DESC *desc); + + HRESULT (STDMETHODCALLTYPE *LockRect)( + IWineD3DSurface* This, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *UnlockRect)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *GetDC)( + IWineD3DSurface* This, + HDC *dc); + + HRESULT (STDMETHODCALLTYPE *ReleaseDC)( + IWineD3DSurface* This, + HDC dc); + + HRESULT (STDMETHODCALLTYPE *Flip)( + IWineD3DSurface* This, + IWineD3DSurface *override, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *Blt)( + IWineD3DSurface* This, + const RECT *dst_rect, + IWineD3DSurface *src_surface, + const RECT *src_rect, + DWORD flags, + const WINEDDBLTFX *blt_fx, + WINED3DTEXTUREFILTERTYPE filter); + + HRESULT (STDMETHODCALLTYPE *GetBltStatus)( + IWineD3DSurface* This, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetFlipStatus)( + IWineD3DSurface* This, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *IsLost)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *Restore)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *BltFast)( + IWineD3DSurface* This, + DWORD dst_x, + DWORD dst_y, + IWineD3DSurface *src_surface, + const RECT *src_rect, + DWORD trans); + + HRESULT (STDMETHODCALLTYPE *GetPalette)( + IWineD3DSurface* This, + IWineD3DPalette **palette); + + HRESULT (STDMETHODCALLTYPE *SetPalette)( + IWineD3DSurface* This, + IWineD3DPalette *palette); + + HRESULT (STDMETHODCALLTYPE *RealizePalette)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *SetColorKey)( + IWineD3DSurface* This, + DWORD flags, + const WINEDDCOLORKEY *color_key); + + DWORD (STDMETHODCALLTYPE *GetPitch)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *SetMem)( + IWineD3DSurface* This, + void *mem); + + HRESULT (STDMETHODCALLTYPE *SetOverlayPosition)( + IWineD3DSurface* This, + LONG x, + LONG y); + + HRESULT (STDMETHODCALLTYPE *GetOverlayPosition)( + IWineD3DSurface* This, + LONG *x, + LONG *y); + + HRESULT (STDMETHODCALLTYPE *UpdateOverlayZOrder)( + IWineD3DSurface* This, + DWORD flags, + IWineD3DSurface *ref); + + HRESULT (STDMETHODCALLTYPE *UpdateOverlay)( + IWineD3DSurface* This, + const RECT *src_rect, + IWineD3DSurface *dst_surface, + const RECT *dst_rect, + DWORD flags, + const WINEDDOVERLAYFX *fx); + + HRESULT (STDMETHODCALLTYPE *SetClipper)( + IWineD3DSurface* This, + IWineD3DClipper *clipper); + + HRESULT (STDMETHODCALLTYPE *GetClipper)( + IWineD3DSurface* This, + IWineD3DClipper **clipper); + + HRESULT (STDMETHODCALLTYPE *LoadTexture)( + IWineD3DSurface* This, + BOOL srgb_mode); + + void (STDMETHODCALLTYPE *BindTexture)( + IWineD3DSurface* This, + BOOL srgb); + + HRESULT (STDMETHODCALLTYPE *SaveSnapshot)( + IWineD3DSurface* This, + const char *filename); + + HRESULT (STDMETHODCALLTYPE *SetContainer)( + IWineD3DSurface* This, + IWineD3DBase *container); + + const void * (STDMETHODCALLTYPE *GetData)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *SetFormat)( + IWineD3DSurface* This, + WINED3DFORMAT format); + + HRESULT (STDMETHODCALLTYPE *PrivateSetup)( + IWineD3DSurface* This); + + void (STDMETHODCALLTYPE *ModifyLocation)( + IWineD3DSurface* This, + DWORD location, + BOOL persistent); + + HRESULT (STDMETHODCALLTYPE *LoadLocation)( + IWineD3DSurface* This, + DWORD location, + const RECT *rect); + + WINED3DSURFTYPE (STDMETHODCALLTYPE *GetImplType)( + IWineD3DSurface* This); + + HRESULT (STDMETHODCALLTYPE *DrawOverlay)( + IWineD3DSurface* This); + + END_INTERFACE +} IWineD3DSurfaceVtbl; +interface IWineD3DSurface { + CONST_VTBL IWineD3DSurfaceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DSurface_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DSurface_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DSurface_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DSurface_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DSurface_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DSurface_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DSurface_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DSurface_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DSurface_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DSurface_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DSurface_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DSurface methods ***/ +#define IWineD3DSurface_GetContainer(This,riid,container) (This)->lpVtbl->GetContainer(This,riid,container) +#define IWineD3DSurface_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) +#define IWineD3DSurface_LockRect(This,locked_rect,rect,flags) (This)->lpVtbl->LockRect(This,locked_rect,rect,flags) +#define IWineD3DSurface_UnlockRect(This) (This)->lpVtbl->UnlockRect(This) +#define IWineD3DSurface_GetDC(This,dc) (This)->lpVtbl->GetDC(This,dc) +#define IWineD3DSurface_ReleaseDC(This,dc) (This)->lpVtbl->ReleaseDC(This,dc) +#define IWineD3DSurface_Flip(This,override,flags) (This)->lpVtbl->Flip(This,override,flags) +#define IWineD3DSurface_Blt(This,dst_rect,src_surface,src_rect,flags,blt_fx,filter) (This)->lpVtbl->Blt(This,dst_rect,src_surface,src_rect,flags,blt_fx,filter) +#define IWineD3DSurface_GetBltStatus(This,flags) (This)->lpVtbl->GetBltStatus(This,flags) +#define IWineD3DSurface_GetFlipStatus(This,flags) (This)->lpVtbl->GetFlipStatus(This,flags) +#define IWineD3DSurface_IsLost(This) (This)->lpVtbl->IsLost(This) +#define IWineD3DSurface_Restore(This) (This)->lpVtbl->Restore(This) +#define IWineD3DSurface_BltFast(This,dst_x,dst_y,src_surface,src_rect,trans) (This)->lpVtbl->BltFast(This,dst_x,dst_y,src_surface,src_rect,trans) +#define IWineD3DSurface_GetPalette(This,palette) (This)->lpVtbl->GetPalette(This,palette) +#define IWineD3DSurface_SetPalette(This,palette) (This)->lpVtbl->SetPalette(This,palette) +#define IWineD3DSurface_RealizePalette(This) (This)->lpVtbl->RealizePalette(This) +#define IWineD3DSurface_SetColorKey(This,flags,color_key) (This)->lpVtbl->SetColorKey(This,flags,color_key) +#define IWineD3DSurface_GetPitch(This) (This)->lpVtbl->GetPitch(This) +#define IWineD3DSurface_SetMem(This,mem) (This)->lpVtbl->SetMem(This,mem) +#define IWineD3DSurface_SetOverlayPosition(This,x,y) (This)->lpVtbl->SetOverlayPosition(This,x,y) +#define IWineD3DSurface_GetOverlayPosition(This,x,y) (This)->lpVtbl->GetOverlayPosition(This,x,y) +#define IWineD3DSurface_UpdateOverlayZOrder(This,flags,ref) (This)->lpVtbl->UpdateOverlayZOrder(This,flags,ref) +#define IWineD3DSurface_UpdateOverlay(This,src_rect,dst_surface,dst_rect,flags,fx) (This)->lpVtbl->UpdateOverlay(This,src_rect,dst_surface,dst_rect,flags,fx) +#define IWineD3DSurface_SetClipper(This,clipper) (This)->lpVtbl->SetClipper(This,clipper) +#define IWineD3DSurface_GetClipper(This,clipper) (This)->lpVtbl->GetClipper(This,clipper) +#define IWineD3DSurface_LoadTexture(This,srgb_mode) (This)->lpVtbl->LoadTexture(This,srgb_mode) +#define IWineD3DSurface_BindTexture(This,srgb) (This)->lpVtbl->BindTexture(This,srgb) +#define IWineD3DSurface_SaveSnapshot(This,filename) (This)->lpVtbl->SaveSnapshot(This,filename) +#define IWineD3DSurface_SetContainer(This,container) (This)->lpVtbl->SetContainer(This,container) +#define IWineD3DSurface_GetData(This) (This)->lpVtbl->GetData(This) +#define IWineD3DSurface_SetFormat(This,format) (This)->lpVtbl->SetFormat(This,format) +#define IWineD3DSurface_PrivateSetup(This) (This)->lpVtbl->PrivateSetup(This) +#define IWineD3DSurface_ModifyLocation(This,location,persistent) (This)->lpVtbl->ModifyLocation(This,location,persistent) +#define IWineD3DSurface_LoadLocation(This,location,rect) (This)->lpVtbl->LoadLocation(This,location,rect) +#define IWineD3DSurface_GetImplType(This) (This)->lpVtbl->GetImplType(This) +#define IWineD3DSurface_DrawOverlay(This) (This)->lpVtbl->DrawOverlay(This) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetContainer_Proxy( + IWineD3DSurface* This, + REFIID riid, + void **container); +void __RPC_STUB IWineD3DSurface_GetContainer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetDesc_Proxy( + IWineD3DSurface* This, + WINED3DSURFACE_DESC *desc); +void __RPC_STUB IWineD3DSurface_GetDesc_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_LockRect_Proxy( + IWineD3DSurface* This, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags); +void __RPC_STUB IWineD3DSurface_LockRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_UnlockRect_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_UnlockRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetDC_Proxy( + IWineD3DSurface* This, + HDC *dc); +void __RPC_STUB IWineD3DSurface_GetDC_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_ReleaseDC_Proxy( + IWineD3DSurface* This, + HDC dc); +void __RPC_STUB IWineD3DSurface_ReleaseDC_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_Flip_Proxy( + IWineD3DSurface* This, + IWineD3DSurface *override, + DWORD flags); +void __RPC_STUB IWineD3DSurface_Flip_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_Blt_Proxy( + IWineD3DSurface* This, + const RECT *dst_rect, + IWineD3DSurface *src_surface, + const RECT *src_rect, + DWORD flags, + const WINEDDBLTFX *blt_fx, + WINED3DTEXTUREFILTERTYPE filter); +void __RPC_STUB IWineD3DSurface_Blt_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetBltStatus_Proxy( + IWineD3DSurface* This, + DWORD flags); +void __RPC_STUB IWineD3DSurface_GetBltStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetFlipStatus_Proxy( + IWineD3DSurface* This, + DWORD flags); +void __RPC_STUB IWineD3DSurface_GetFlipStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_IsLost_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_IsLost_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_Restore_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_Restore_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_BltFast_Proxy( + IWineD3DSurface* This, + DWORD dst_x, + DWORD dst_y, + IWineD3DSurface *src_surface, + const RECT *src_rect, + DWORD trans); +void __RPC_STUB IWineD3DSurface_BltFast_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetPalette_Proxy( + IWineD3DSurface* This, + IWineD3DPalette **palette); +void __RPC_STUB IWineD3DSurface_GetPalette_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetPalette_Proxy( + IWineD3DSurface* This, + IWineD3DPalette *palette); +void __RPC_STUB IWineD3DSurface_SetPalette_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_RealizePalette_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_RealizePalette_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetColorKey_Proxy( + IWineD3DSurface* This, + DWORD flags, + const WINEDDCOLORKEY *color_key); +void __RPC_STUB IWineD3DSurface_SetColorKey_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +DWORD STDMETHODCALLTYPE IWineD3DSurface_GetPitch_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_GetPitch_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetMem_Proxy( + IWineD3DSurface* This, + void *mem); +void __RPC_STUB IWineD3DSurface_SetMem_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetOverlayPosition_Proxy( + IWineD3DSurface* This, + LONG x, + LONG y); +void __RPC_STUB IWineD3DSurface_SetOverlayPosition_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetOverlayPosition_Proxy( + IWineD3DSurface* This, + LONG *x, + LONG *y); +void __RPC_STUB IWineD3DSurface_GetOverlayPosition_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_UpdateOverlayZOrder_Proxy( + IWineD3DSurface* This, + DWORD flags, + IWineD3DSurface *ref); +void __RPC_STUB IWineD3DSurface_UpdateOverlayZOrder_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_UpdateOverlay_Proxy( + IWineD3DSurface* This, + const RECT *src_rect, + IWineD3DSurface *dst_surface, + const RECT *dst_rect, + DWORD flags, + const WINEDDOVERLAYFX *fx); +void __RPC_STUB IWineD3DSurface_UpdateOverlay_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetClipper_Proxy( + IWineD3DSurface* This, + IWineD3DClipper *clipper); +void __RPC_STUB IWineD3DSurface_SetClipper_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_GetClipper_Proxy( + IWineD3DSurface* This, + IWineD3DClipper **clipper); +void __RPC_STUB IWineD3DSurface_GetClipper_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_LoadTexture_Proxy( + IWineD3DSurface* This, + BOOL srgb_mode); +void __RPC_STUB IWineD3DSurface_LoadTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DSurface_BindTexture_Proxy( + IWineD3DSurface* This, + BOOL srgb); +void __RPC_STUB IWineD3DSurface_BindTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SaveSnapshot_Proxy( + IWineD3DSurface* This, + const char *filename); +void __RPC_STUB IWineD3DSurface_SaveSnapshot_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetContainer_Proxy( + IWineD3DSurface* This, + IWineD3DBase *container); +void __RPC_STUB IWineD3DSurface_SetContainer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +const void * STDMETHODCALLTYPE IWineD3DSurface_GetData_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_GetData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_SetFormat_Proxy( + IWineD3DSurface* This, + WINED3DFORMAT format); +void __RPC_STUB IWineD3DSurface_SetFormat_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_PrivateSetup_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_PrivateSetup_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DSurface_ModifyLocation_Proxy( + IWineD3DSurface* This, + DWORD location, + BOOL persistent); +void __RPC_STUB IWineD3DSurface_ModifyLocation_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_LoadLocation_Proxy( + IWineD3DSurface* This, + DWORD location, + const RECT *rect); +void __RPC_STUB IWineD3DSurface_LoadLocation_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +WINED3DSURFTYPE STDMETHODCALLTYPE IWineD3DSurface_GetImplType_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_GetImplType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSurface_DrawOverlay_Proxy( + IWineD3DSurface* This); +void __RPC_STUB IWineD3DSurface_DrawOverlay_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DSurface_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DVolume interface + */ +#ifndef __IWineD3DVolume_INTERFACE_DEFINED__ +#define __IWineD3DVolume_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DVolume, 0x24769ed8, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DVolume : public IWineD3DResource +{ + virtual HRESULT STDMETHODCALLTYPE GetContainer( + REFIID riid, + void **container) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDesc( + WINED3DVOLUME_DESC *desc) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockBox( + WINED3DLOCKED_BOX *locked_box, + const WINED3DBOX *box, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnlockBox( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE LoadTexture( + int gl_level, + BOOL srgb_mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetContainer( + IWineD3DBase *container) = 0; + +}; +#else +typedef struct IWineD3DVolumeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DVolume* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DVolume* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DVolume* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DVolume* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DVolume* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DVolume* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DVolume* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DVolume* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DVolume* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DVolume* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DVolume* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DVolume* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DVolume methods ***/ + HRESULT (STDMETHODCALLTYPE *GetContainer)( + IWineD3DVolume* This, + REFIID riid, + void **container); + + HRESULT (STDMETHODCALLTYPE *GetDesc)( + IWineD3DVolume* This, + WINED3DVOLUME_DESC *desc); + + HRESULT (STDMETHODCALLTYPE *LockBox)( + IWineD3DVolume* This, + WINED3DLOCKED_BOX *locked_box, + const WINED3DBOX *box, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *UnlockBox)( + IWineD3DVolume* This); + + HRESULT (STDMETHODCALLTYPE *LoadTexture)( + IWineD3DVolume* This, + int gl_level, + BOOL srgb_mode); + + HRESULT (STDMETHODCALLTYPE *SetContainer)( + IWineD3DVolume* This, + IWineD3DBase *container); + + END_INTERFACE +} IWineD3DVolumeVtbl; +interface IWineD3DVolume { + CONST_VTBL IWineD3DVolumeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DVolume_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DVolume_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DVolume_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DVolume_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DVolume_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DVolume_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DVolume_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DVolume_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DVolume_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DVolume_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DVolume_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DVolume methods ***/ +#define IWineD3DVolume_GetContainer(This,riid,container) (This)->lpVtbl->GetContainer(This,riid,container) +#define IWineD3DVolume_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) +#define IWineD3DVolume_LockBox(This,locked_box,box,flags) (This)->lpVtbl->LockBox(This,locked_box,box,flags) +#define IWineD3DVolume_UnlockBox(This) (This)->lpVtbl->UnlockBox(This) +#define IWineD3DVolume_LoadTexture(This,gl_level,srgb_mode) (This)->lpVtbl->LoadTexture(This,gl_level,srgb_mode) +#define IWineD3DVolume_SetContainer(This,container) (This)->lpVtbl->SetContainer(This,container) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DVolume_GetContainer_Proxy( + IWineD3DVolume* This, + REFIID riid, + void **container); +void __RPC_STUB IWineD3DVolume_GetContainer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolume_GetDesc_Proxy( + IWineD3DVolume* This, + WINED3DVOLUME_DESC *desc); +void __RPC_STUB IWineD3DVolume_GetDesc_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolume_LockBox_Proxy( + IWineD3DVolume* This, + WINED3DLOCKED_BOX *locked_box, + const WINED3DBOX *box, + DWORD flags); +void __RPC_STUB IWineD3DVolume_LockBox_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolume_UnlockBox_Proxy( + IWineD3DVolume* This); +void __RPC_STUB IWineD3DVolume_UnlockBox_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolume_LoadTexture_Proxy( + IWineD3DVolume* This, + int gl_level, + BOOL srgb_mode); +void __RPC_STUB IWineD3DVolume_LoadTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolume_SetContainer_Proxy( + IWineD3DVolume* This, + IWineD3DBase *container); +void __RPC_STUB IWineD3DVolume_SetContainer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DVolume_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DBaseTexture interface + */ +#ifndef __IWineD3DBaseTexture_INTERFACE_DEFINED__ +#define __IWineD3DBaseTexture_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DBaseTexture, 0x3c2aebf6, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DBaseTexture : public IWineD3DResource +{ + virtual DWORD STDMETHODCALLTYPE SetLOD( + DWORD new_lod) = 0; + + virtual DWORD STDMETHODCALLTYPE GetLOD( + ) = 0; + + virtual DWORD STDMETHODCALLTYPE GetLevelCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAutoGenFilterType( + WINED3DTEXTUREFILTERTYPE filter_type) = 0; + + virtual WINED3DTEXTUREFILTERTYPE STDMETHODCALLTYPE GetAutoGenFilterType( + ) = 0; + + virtual void STDMETHODCALLTYPE GenerateMipSubLevels( + ) = 0; + + virtual BOOL STDMETHODCALLTYPE SetDirty( + BOOL dirty) = 0; + + virtual BOOL STDMETHODCALLTYPE GetDirty( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE BindTexture( + BOOL srgb) = 0; + + virtual UINT STDMETHODCALLTYPE GetTextureDimensions( + ) = 0; + + virtual BOOL STDMETHODCALLTYPE IsCondNP2( + ) = 0; + +}; +#else +typedef struct IWineD3DBaseTextureVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DBaseTexture* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DBaseTexture* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DBaseTexture* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DBaseTexture* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DBaseTexture* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DBaseTexture* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DBaseTexture* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DBaseTexture* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DBaseTexture* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DBaseTexture* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DBaseTexture* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DBaseTexture* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DBaseTexture methods ***/ + DWORD (STDMETHODCALLTYPE *SetLOD)( + IWineD3DBaseTexture* This, + DWORD new_lod); + + DWORD (STDMETHODCALLTYPE *GetLOD)( + IWineD3DBaseTexture* This); + + DWORD (STDMETHODCALLTYPE *GetLevelCount)( + IWineD3DBaseTexture* This); + + HRESULT (STDMETHODCALLTYPE *SetAutoGenFilterType)( + IWineD3DBaseTexture* This, + WINED3DTEXTUREFILTERTYPE filter_type); + + WINED3DTEXTUREFILTERTYPE (STDMETHODCALLTYPE *GetAutoGenFilterType)( + IWineD3DBaseTexture* This); + + void (STDMETHODCALLTYPE *GenerateMipSubLevels)( + IWineD3DBaseTexture* This); + + BOOL (STDMETHODCALLTYPE *SetDirty)( + IWineD3DBaseTexture* This, + BOOL dirty); + + BOOL (STDMETHODCALLTYPE *GetDirty)( + IWineD3DBaseTexture* This); + + HRESULT (STDMETHODCALLTYPE *BindTexture)( + IWineD3DBaseTexture* This, + BOOL srgb); + + UINT (STDMETHODCALLTYPE *GetTextureDimensions)( + IWineD3DBaseTexture* This); + + BOOL (STDMETHODCALLTYPE *IsCondNP2)( + IWineD3DBaseTexture* This); + + END_INTERFACE +} IWineD3DBaseTextureVtbl; +interface IWineD3DBaseTexture { + CONST_VTBL IWineD3DBaseTextureVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DBaseTexture_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DBaseTexture_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DBaseTexture_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DBaseTexture_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DBaseTexture_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DBaseTexture_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DBaseTexture_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DBaseTexture_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DBaseTexture_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DBaseTexture_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DBaseTexture_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DBaseTexture_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DBaseTexture methods ***/ +#define IWineD3DBaseTexture_SetLOD(This,new_lod) (This)->lpVtbl->SetLOD(This,new_lod) +#define IWineD3DBaseTexture_GetLOD(This) (This)->lpVtbl->GetLOD(This) +#define IWineD3DBaseTexture_GetLevelCount(This) (This)->lpVtbl->GetLevelCount(This) +#define IWineD3DBaseTexture_SetAutoGenFilterType(This,filter_type) (This)->lpVtbl->SetAutoGenFilterType(This,filter_type) +#define IWineD3DBaseTexture_GetAutoGenFilterType(This) (This)->lpVtbl->GetAutoGenFilterType(This) +#define IWineD3DBaseTexture_GenerateMipSubLevels(This) (This)->lpVtbl->GenerateMipSubLevels(This) +#define IWineD3DBaseTexture_SetDirty(This,dirty) (This)->lpVtbl->SetDirty(This,dirty) +#define IWineD3DBaseTexture_GetDirty(This) (This)->lpVtbl->GetDirty(This) +#define IWineD3DBaseTexture_BindTexture(This,srgb) (This)->lpVtbl->BindTexture(This,srgb) +#define IWineD3DBaseTexture_GetTextureDimensions(This) (This)->lpVtbl->GetTextureDimensions(This) +#define IWineD3DBaseTexture_IsCondNP2(This) (This)->lpVtbl->IsCondNP2(This) +#endif + +#endif + +DWORD STDMETHODCALLTYPE IWineD3DBaseTexture_SetLOD_Proxy( + IWineD3DBaseTexture* This, + DWORD new_lod); +void __RPC_STUB IWineD3DBaseTexture_SetLOD_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +DWORD STDMETHODCALLTYPE IWineD3DBaseTexture_GetLOD_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_GetLOD_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +DWORD STDMETHODCALLTYPE IWineD3DBaseTexture_GetLevelCount_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_GetLevelCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DBaseTexture_SetAutoGenFilterType_Proxy( + IWineD3DBaseTexture* This, + WINED3DTEXTUREFILTERTYPE filter_type); +void __RPC_STUB IWineD3DBaseTexture_SetAutoGenFilterType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +WINED3DTEXTUREFILTERTYPE STDMETHODCALLTYPE IWineD3DBaseTexture_GetAutoGenFilterType_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_GetAutoGenFilterType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DBaseTexture_GenerateMipSubLevels_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_GenerateMipSubLevels_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +BOOL STDMETHODCALLTYPE IWineD3DBaseTexture_SetDirty_Proxy( + IWineD3DBaseTexture* This, + BOOL dirty); +void __RPC_STUB IWineD3DBaseTexture_SetDirty_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +BOOL STDMETHODCALLTYPE IWineD3DBaseTexture_GetDirty_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_GetDirty_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DBaseTexture_BindTexture_Proxy( + IWineD3DBaseTexture* This, + BOOL srgb); +void __RPC_STUB IWineD3DBaseTexture_BindTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +UINT STDMETHODCALLTYPE IWineD3DBaseTexture_GetTextureDimensions_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_GetTextureDimensions_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +BOOL STDMETHODCALLTYPE IWineD3DBaseTexture_IsCondNP2_Proxy( + IWineD3DBaseTexture* This); +void __RPC_STUB IWineD3DBaseTexture_IsCondNP2_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DBaseTexture_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DTexture interface + */ +#ifndef __IWineD3DTexture_INTERFACE_DEFINED__ +#define __IWineD3DTexture_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DTexture, 0x3e72cc1c, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DTexture : public IWineD3DBaseTexture +{ + virtual HRESULT STDMETHODCALLTYPE GetLevelDesc( + UINT level, + WINED3DSURFACE_DESC *desc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSurfaceLevel( + UINT level, + IWineD3DSurface **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockRect( + UINT level, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnlockRect( + UINT level) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDirtyRect( + const RECT *dirty_rect) = 0; + +}; +#else +typedef struct IWineD3DTextureVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DTexture* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DTexture* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DTexture* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DTexture* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DTexture* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DTexture* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DTexture* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DTexture* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DTexture* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DTexture* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DTexture* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DTexture* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DBaseTexture methods ***/ + DWORD (STDMETHODCALLTYPE *SetLOD)( + IWineD3DTexture* This, + DWORD new_lod); + + DWORD (STDMETHODCALLTYPE *GetLOD)( + IWineD3DTexture* This); + + DWORD (STDMETHODCALLTYPE *GetLevelCount)( + IWineD3DTexture* This); + + HRESULT (STDMETHODCALLTYPE *SetAutoGenFilterType)( + IWineD3DTexture* This, + WINED3DTEXTUREFILTERTYPE filter_type); + + WINED3DTEXTUREFILTERTYPE (STDMETHODCALLTYPE *GetAutoGenFilterType)( + IWineD3DTexture* This); + + void (STDMETHODCALLTYPE *GenerateMipSubLevels)( + IWineD3DTexture* This); + + BOOL (STDMETHODCALLTYPE *SetDirty)( + IWineD3DTexture* This, + BOOL dirty); + + BOOL (STDMETHODCALLTYPE *GetDirty)( + IWineD3DTexture* This); + + HRESULT (STDMETHODCALLTYPE *BindTexture)( + IWineD3DTexture* This, + BOOL srgb); + + UINT (STDMETHODCALLTYPE *GetTextureDimensions)( + IWineD3DTexture* This); + + BOOL (STDMETHODCALLTYPE *IsCondNP2)( + IWineD3DTexture* This); + + /*** IWineD3DTexture methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLevelDesc)( + IWineD3DTexture* This, + UINT level, + WINED3DSURFACE_DESC *desc); + + HRESULT (STDMETHODCALLTYPE *GetSurfaceLevel)( + IWineD3DTexture* This, + UINT level, + IWineD3DSurface **surface); + + HRESULT (STDMETHODCALLTYPE *LockRect)( + IWineD3DTexture* This, + UINT level, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *UnlockRect)( + IWineD3DTexture* This, + UINT level); + + HRESULT (STDMETHODCALLTYPE *AddDirtyRect)( + IWineD3DTexture* This, + const RECT *dirty_rect); + + END_INTERFACE +} IWineD3DTextureVtbl; +interface IWineD3DTexture { + CONST_VTBL IWineD3DTextureVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DTexture_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DTexture_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DTexture_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DTexture_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DTexture_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DTexture_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DTexture_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DTexture_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DTexture_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DTexture_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DTexture_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DTexture_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DBaseTexture methods ***/ +#define IWineD3DTexture_SetLOD(This,new_lod) (This)->lpVtbl->SetLOD(This,new_lod) +#define IWineD3DTexture_GetLOD(This) (This)->lpVtbl->GetLOD(This) +#define IWineD3DTexture_GetLevelCount(This) (This)->lpVtbl->GetLevelCount(This) +#define IWineD3DTexture_SetAutoGenFilterType(This,filter_type) (This)->lpVtbl->SetAutoGenFilterType(This,filter_type) +#define IWineD3DTexture_GetAutoGenFilterType(This) (This)->lpVtbl->GetAutoGenFilterType(This) +#define IWineD3DTexture_GenerateMipSubLevels(This) (This)->lpVtbl->GenerateMipSubLevels(This) +#define IWineD3DTexture_SetDirty(This,dirty) (This)->lpVtbl->SetDirty(This,dirty) +#define IWineD3DTexture_GetDirty(This) (This)->lpVtbl->GetDirty(This) +#define IWineD3DTexture_BindTexture(This,srgb) (This)->lpVtbl->BindTexture(This,srgb) +#define IWineD3DTexture_GetTextureDimensions(This) (This)->lpVtbl->GetTextureDimensions(This) +#define IWineD3DTexture_IsCondNP2(This) (This)->lpVtbl->IsCondNP2(This) +/*** IWineD3DTexture methods ***/ +#define IWineD3DTexture_GetLevelDesc(This,level,desc) (This)->lpVtbl->GetLevelDesc(This,level,desc) +#define IWineD3DTexture_GetSurfaceLevel(This,level,surface) (This)->lpVtbl->GetSurfaceLevel(This,level,surface) +#define IWineD3DTexture_LockRect(This,level,locked_rect,rect,flags) (This)->lpVtbl->LockRect(This,level,locked_rect,rect,flags) +#define IWineD3DTexture_UnlockRect(This,level) (This)->lpVtbl->UnlockRect(This,level) +#define IWineD3DTexture_AddDirtyRect(This,dirty_rect) (This)->lpVtbl->AddDirtyRect(This,dirty_rect) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DTexture_GetLevelDesc_Proxy( + IWineD3DTexture* This, + UINT level, + WINED3DSURFACE_DESC *desc); +void __RPC_STUB IWineD3DTexture_GetLevelDesc_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DTexture_GetSurfaceLevel_Proxy( + IWineD3DTexture* This, + UINT level, + IWineD3DSurface **surface); +void __RPC_STUB IWineD3DTexture_GetSurfaceLevel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DTexture_LockRect_Proxy( + IWineD3DTexture* This, + UINT level, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags); +void __RPC_STUB IWineD3DTexture_LockRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DTexture_UnlockRect_Proxy( + IWineD3DTexture* This, + UINT level); +void __RPC_STUB IWineD3DTexture_UnlockRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DTexture_AddDirtyRect_Proxy( + IWineD3DTexture* This, + const RECT *dirty_rect); +void __RPC_STUB IWineD3DTexture_AddDirtyRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DTexture_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DCubeTexture interface + */ +#ifndef __IWineD3DCubeTexture_INTERFACE_DEFINED__ +#define __IWineD3DCubeTexture_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DCubeTexture, 0x41752900, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DCubeTexture : public IWineD3DBaseTexture +{ + virtual HRESULT STDMETHODCALLTYPE GetLevelDesc( + UINT level, + WINED3DSURFACE_DESC *desc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCubeMapSurface( + WINED3DCUBEMAP_FACES face, + UINT level, + IWineD3DSurface **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockRect( + WINED3DCUBEMAP_FACES face, + UINT level, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnlockRect( + WINED3DCUBEMAP_FACES face, + UINT level) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDirtyRect( + WINED3DCUBEMAP_FACES face, + const RECT *dirty_rect) = 0; + +}; +#else +typedef struct IWineD3DCubeTextureVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DCubeTexture* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DCubeTexture* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DCubeTexture* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DCubeTexture* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DCubeTexture* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DCubeTexture* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DCubeTexture* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DCubeTexture* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DCubeTexture* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DCubeTexture* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DCubeTexture* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DCubeTexture* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DBaseTexture methods ***/ + DWORD (STDMETHODCALLTYPE *SetLOD)( + IWineD3DCubeTexture* This, + DWORD new_lod); + + DWORD (STDMETHODCALLTYPE *GetLOD)( + IWineD3DCubeTexture* This); + + DWORD (STDMETHODCALLTYPE *GetLevelCount)( + IWineD3DCubeTexture* This); + + HRESULT (STDMETHODCALLTYPE *SetAutoGenFilterType)( + IWineD3DCubeTexture* This, + WINED3DTEXTUREFILTERTYPE filter_type); + + WINED3DTEXTUREFILTERTYPE (STDMETHODCALLTYPE *GetAutoGenFilterType)( + IWineD3DCubeTexture* This); + + void (STDMETHODCALLTYPE *GenerateMipSubLevels)( + IWineD3DCubeTexture* This); + + BOOL (STDMETHODCALLTYPE *SetDirty)( + IWineD3DCubeTexture* This, + BOOL dirty); + + BOOL (STDMETHODCALLTYPE *GetDirty)( + IWineD3DCubeTexture* This); + + HRESULT (STDMETHODCALLTYPE *BindTexture)( + IWineD3DCubeTexture* This, + BOOL srgb); + + UINT (STDMETHODCALLTYPE *GetTextureDimensions)( + IWineD3DCubeTexture* This); + + BOOL (STDMETHODCALLTYPE *IsCondNP2)( + IWineD3DCubeTexture* This); + + /*** IWineD3DCubeTexture methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLevelDesc)( + IWineD3DCubeTexture* This, + UINT level, + WINED3DSURFACE_DESC *desc); + + HRESULT (STDMETHODCALLTYPE *GetCubeMapSurface)( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + UINT level, + IWineD3DSurface **surface); + + HRESULT (STDMETHODCALLTYPE *LockRect)( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + UINT level, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *UnlockRect)( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + UINT level); + + HRESULT (STDMETHODCALLTYPE *AddDirtyRect)( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + const RECT *dirty_rect); + + END_INTERFACE +} IWineD3DCubeTextureVtbl; +interface IWineD3DCubeTexture { + CONST_VTBL IWineD3DCubeTextureVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DCubeTexture_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DCubeTexture_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DCubeTexture_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DCubeTexture_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DCubeTexture_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DCubeTexture_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DCubeTexture_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DCubeTexture_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DCubeTexture_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DCubeTexture_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DCubeTexture_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DCubeTexture_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DBaseTexture methods ***/ +#define IWineD3DCubeTexture_SetLOD(This,new_lod) (This)->lpVtbl->SetLOD(This,new_lod) +#define IWineD3DCubeTexture_GetLOD(This) (This)->lpVtbl->GetLOD(This) +#define IWineD3DCubeTexture_GetLevelCount(This) (This)->lpVtbl->GetLevelCount(This) +#define IWineD3DCubeTexture_SetAutoGenFilterType(This,filter_type) (This)->lpVtbl->SetAutoGenFilterType(This,filter_type) +#define IWineD3DCubeTexture_GetAutoGenFilterType(This) (This)->lpVtbl->GetAutoGenFilterType(This) +#define IWineD3DCubeTexture_GenerateMipSubLevels(This) (This)->lpVtbl->GenerateMipSubLevels(This) +#define IWineD3DCubeTexture_SetDirty(This,dirty) (This)->lpVtbl->SetDirty(This,dirty) +#define IWineD3DCubeTexture_GetDirty(This) (This)->lpVtbl->GetDirty(This) +#define IWineD3DCubeTexture_BindTexture(This,srgb) (This)->lpVtbl->BindTexture(This,srgb) +#define IWineD3DCubeTexture_GetTextureDimensions(This) (This)->lpVtbl->GetTextureDimensions(This) +#define IWineD3DCubeTexture_IsCondNP2(This) (This)->lpVtbl->IsCondNP2(This) +/*** IWineD3DCubeTexture methods ***/ +#define IWineD3DCubeTexture_GetLevelDesc(This,level,desc) (This)->lpVtbl->GetLevelDesc(This,level,desc) +#define IWineD3DCubeTexture_GetCubeMapSurface(This,face,level,surface) (This)->lpVtbl->GetCubeMapSurface(This,face,level,surface) +#define IWineD3DCubeTexture_LockRect(This,face,level,locked_rect,rect,flags) (This)->lpVtbl->LockRect(This,face,level,locked_rect,rect,flags) +#define IWineD3DCubeTexture_UnlockRect(This,face,level) (This)->lpVtbl->UnlockRect(This,face,level) +#define IWineD3DCubeTexture_AddDirtyRect(This,face,dirty_rect) (This)->lpVtbl->AddDirtyRect(This,face,dirty_rect) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DCubeTexture_GetLevelDesc_Proxy( + IWineD3DCubeTexture* This, + UINT level, + WINED3DSURFACE_DESC *desc); +void __RPC_STUB IWineD3DCubeTexture_GetLevelDesc_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DCubeTexture_GetCubeMapSurface_Proxy( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + UINT level, + IWineD3DSurface **surface); +void __RPC_STUB IWineD3DCubeTexture_GetCubeMapSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DCubeTexture_LockRect_Proxy( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + UINT level, + WINED3DLOCKED_RECT *locked_rect, + const RECT *rect, + DWORD flags); +void __RPC_STUB IWineD3DCubeTexture_LockRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DCubeTexture_UnlockRect_Proxy( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + UINT level); +void __RPC_STUB IWineD3DCubeTexture_UnlockRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DCubeTexture_AddDirtyRect_Proxy( + IWineD3DCubeTexture* This, + WINED3DCUBEMAP_FACES face, + const RECT *dirty_rect); +void __RPC_STUB IWineD3DCubeTexture_AddDirtyRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DCubeTexture_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DVolumeTexture interface + */ +#ifndef __IWineD3DVolumeTexture_INTERFACE_DEFINED__ +#define __IWineD3DVolumeTexture_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DVolumeTexture, 0x7b39470c, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DVolumeTexture : public IWineD3DBaseTexture +{ + virtual HRESULT STDMETHODCALLTYPE GetLevelDesc( + UINT level, + WINED3DVOLUME_DESC *desc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel( + UINT level, + IWineD3DVolume **volume) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockBox( + UINT level, + WINED3DLOCKED_BOX *locked_box, + const WINED3DBOX *box, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnlockBox( + UINT level) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDirtyBox( + const WINED3DBOX *dirty_box) = 0; + +}; +#else +typedef struct IWineD3DVolumeTextureVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DVolumeTexture* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DVolumeTexture* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DVolumeTexture* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DVolumeTexture* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DVolumeTexture* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DVolumeTexture* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DVolumeTexture* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DVolumeTexture* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DVolumeTexture* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DVolumeTexture* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DVolumeTexture* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DVolumeTexture* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DBaseTexture methods ***/ + DWORD (STDMETHODCALLTYPE *SetLOD)( + IWineD3DVolumeTexture* This, + DWORD new_lod); + + DWORD (STDMETHODCALLTYPE *GetLOD)( + IWineD3DVolumeTexture* This); + + DWORD (STDMETHODCALLTYPE *GetLevelCount)( + IWineD3DVolumeTexture* This); + + HRESULT (STDMETHODCALLTYPE *SetAutoGenFilterType)( + IWineD3DVolumeTexture* This, + WINED3DTEXTUREFILTERTYPE filter_type); + + WINED3DTEXTUREFILTERTYPE (STDMETHODCALLTYPE *GetAutoGenFilterType)( + IWineD3DVolumeTexture* This); + + void (STDMETHODCALLTYPE *GenerateMipSubLevels)( + IWineD3DVolumeTexture* This); + + BOOL (STDMETHODCALLTYPE *SetDirty)( + IWineD3DVolumeTexture* This, + BOOL dirty); + + BOOL (STDMETHODCALLTYPE *GetDirty)( + IWineD3DVolumeTexture* This); + + HRESULT (STDMETHODCALLTYPE *BindTexture)( + IWineD3DVolumeTexture* This, + BOOL srgb); + + UINT (STDMETHODCALLTYPE *GetTextureDimensions)( + IWineD3DVolumeTexture* This); + + BOOL (STDMETHODCALLTYPE *IsCondNP2)( + IWineD3DVolumeTexture* This); + + /*** IWineD3DVolumeTexture methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLevelDesc)( + IWineD3DVolumeTexture* This, + UINT level, + WINED3DVOLUME_DESC *desc); + + HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)( + IWineD3DVolumeTexture* This, + UINT level, + IWineD3DVolume **volume); + + HRESULT (STDMETHODCALLTYPE *LockBox)( + IWineD3DVolumeTexture* This, + UINT level, + WINED3DLOCKED_BOX *locked_box, + const WINED3DBOX *box, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *UnlockBox)( + IWineD3DVolumeTexture* This, + UINT level); + + HRESULT (STDMETHODCALLTYPE *AddDirtyBox)( + IWineD3DVolumeTexture* This, + const WINED3DBOX *dirty_box); + + END_INTERFACE +} IWineD3DVolumeTextureVtbl; +interface IWineD3DVolumeTexture { + CONST_VTBL IWineD3DVolumeTextureVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DVolumeTexture_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DVolumeTexture_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DVolumeTexture_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DVolumeTexture_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DVolumeTexture_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DVolumeTexture_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DVolumeTexture_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DVolumeTexture_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DVolumeTexture_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DVolumeTexture_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DVolumeTexture_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DVolumeTexture_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DBaseTexture methods ***/ +#define IWineD3DVolumeTexture_SetLOD(This,new_lod) (This)->lpVtbl->SetLOD(This,new_lod) +#define IWineD3DVolumeTexture_GetLOD(This) (This)->lpVtbl->GetLOD(This) +#define IWineD3DVolumeTexture_GetLevelCount(This) (This)->lpVtbl->GetLevelCount(This) +#define IWineD3DVolumeTexture_SetAutoGenFilterType(This,filter_type) (This)->lpVtbl->SetAutoGenFilterType(This,filter_type) +#define IWineD3DVolumeTexture_GetAutoGenFilterType(This) (This)->lpVtbl->GetAutoGenFilterType(This) +#define IWineD3DVolumeTexture_GenerateMipSubLevels(This) (This)->lpVtbl->GenerateMipSubLevels(This) +#define IWineD3DVolumeTexture_SetDirty(This,dirty) (This)->lpVtbl->SetDirty(This,dirty) +#define IWineD3DVolumeTexture_GetDirty(This) (This)->lpVtbl->GetDirty(This) +#define IWineD3DVolumeTexture_BindTexture(This,srgb) (This)->lpVtbl->BindTexture(This,srgb) +#define IWineD3DVolumeTexture_GetTextureDimensions(This) (This)->lpVtbl->GetTextureDimensions(This) +#define IWineD3DVolumeTexture_IsCondNP2(This) (This)->lpVtbl->IsCondNP2(This) +/*** IWineD3DVolumeTexture methods ***/ +#define IWineD3DVolumeTexture_GetLevelDesc(This,level,desc) (This)->lpVtbl->GetLevelDesc(This,level,desc) +#define IWineD3DVolumeTexture_GetVolumeLevel(This,level,volume) (This)->lpVtbl->GetVolumeLevel(This,level,volume) +#define IWineD3DVolumeTexture_LockBox(This,level,locked_box,box,flags) (This)->lpVtbl->LockBox(This,level,locked_box,box,flags) +#define IWineD3DVolumeTexture_UnlockBox(This,level) (This)->lpVtbl->UnlockBox(This,level) +#define IWineD3DVolumeTexture_AddDirtyBox(This,dirty_box) (This)->lpVtbl->AddDirtyBox(This,dirty_box) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DVolumeTexture_GetLevelDesc_Proxy( + IWineD3DVolumeTexture* This, + UINT level, + WINED3DVOLUME_DESC *desc); +void __RPC_STUB IWineD3DVolumeTexture_GetLevelDesc_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolumeTexture_GetVolumeLevel_Proxy( + IWineD3DVolumeTexture* This, + UINT level, + IWineD3DVolume **volume); +void __RPC_STUB IWineD3DVolumeTexture_GetVolumeLevel_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolumeTexture_LockBox_Proxy( + IWineD3DVolumeTexture* This, + UINT level, + WINED3DLOCKED_BOX *locked_box, + const WINED3DBOX *box, + DWORD flags); +void __RPC_STUB IWineD3DVolumeTexture_LockBox_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolumeTexture_UnlockBox_Proxy( + IWineD3DVolumeTexture* This, + UINT level); +void __RPC_STUB IWineD3DVolumeTexture_UnlockBox_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DVolumeTexture_AddDirtyBox_Proxy( + IWineD3DVolumeTexture* This, + const WINED3DBOX *dirty_box); +void __RPC_STUB IWineD3DVolumeTexture_AddDirtyBox_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DVolumeTexture_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DVertexDeclaration interface + */ +#ifndef __IWineD3DVertexDeclaration_INTERFACE_DEFINED__ +#define __IWineD3DVertexDeclaration_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DVertexDeclaration, 0x7cd55be6, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DVertexDeclaration : public IWineD3DBase +{ +}; +#else +typedef struct IWineD3DVertexDeclarationVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DVertexDeclaration* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DVertexDeclaration* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DVertexDeclaration* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DVertexDeclaration* This, + IUnknown **parent); + + END_INTERFACE +} IWineD3DVertexDeclarationVtbl; +interface IWineD3DVertexDeclaration { + CONST_VTBL IWineD3DVertexDeclarationVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DVertexDeclaration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DVertexDeclaration_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DVertexDeclaration_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DVertexDeclaration_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +#endif + +#endif + + +#endif /* __IWineD3DVertexDeclaration_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DStateBlock interface + */ +#ifndef __IWineD3DStateBlock_INTERFACE_DEFINED__ +#define __IWineD3DStateBlock_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DStateBlock, 0x83b073ce, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DStateBlock : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Capture( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Apply( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE InitStartupStateBlock( + ) = 0; + +}; +#else +typedef struct IWineD3DStateBlockVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DStateBlock* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DStateBlock* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DStateBlock* This); + + /*** IWineD3DStateBlock methods ***/ + HRESULT (STDMETHODCALLTYPE *Capture)( + IWineD3DStateBlock* This); + + HRESULT (STDMETHODCALLTYPE *Apply)( + IWineD3DStateBlock* This); + + HRESULT (STDMETHODCALLTYPE *InitStartupStateBlock)( + IWineD3DStateBlock* This); + + END_INTERFACE +} IWineD3DStateBlockVtbl; +interface IWineD3DStateBlock { + CONST_VTBL IWineD3DStateBlockVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DStateBlock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DStateBlock_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DStateBlock_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DStateBlock methods ***/ +#define IWineD3DStateBlock_Capture(This) (This)->lpVtbl->Capture(This) +#define IWineD3DStateBlock_Apply(This) (This)->lpVtbl->Apply(This) +#define IWineD3DStateBlock_InitStartupStateBlock(This) (This)->lpVtbl->InitStartupStateBlock(This) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DStateBlock_Capture_Proxy( + IWineD3DStateBlock* This); +void __RPC_STUB IWineD3DStateBlock_Capture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DStateBlock_Apply_Proxy( + IWineD3DStateBlock* This); +void __RPC_STUB IWineD3DStateBlock_Apply_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DStateBlock_InitStartupStateBlock_Proxy( + IWineD3DStateBlock* This); +void __RPC_STUB IWineD3DStateBlock_InitStartupStateBlock_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DStateBlock_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DQuery interface + */ +#ifndef __IWineD3DQuery_INTERFACE_DEFINED__ +#define __IWineD3DQuery_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DQuery, 0x905ddbac, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DQuery : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE GetData( + void *data, + DWORD data_size, + DWORD flags) = 0; + + virtual DWORD STDMETHODCALLTYPE GetDataSize( + ) = 0; + + virtual WINED3DQUERYTYPE STDMETHODCALLTYPE GetType( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Issue( + DWORD flags) = 0; + +}; +#else +typedef struct IWineD3DQueryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DQuery* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DQuery* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DQuery* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DQuery* This, + IUnknown **parent); + + /*** IWineD3DQuery methods ***/ + HRESULT (STDMETHODCALLTYPE *GetData)( + IWineD3DQuery* This, + void *data, + DWORD data_size, + DWORD flags); + + DWORD (STDMETHODCALLTYPE *GetDataSize)( + IWineD3DQuery* This); + + WINED3DQUERYTYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DQuery* This); + + HRESULT (STDMETHODCALLTYPE *Issue)( + IWineD3DQuery* This, + DWORD flags); + + END_INTERFACE +} IWineD3DQueryVtbl; +interface IWineD3DQuery { + CONST_VTBL IWineD3DQueryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DQuery_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DQuery_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DQuery_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DQuery_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DQuery methods ***/ +#define IWineD3DQuery_GetData(This,data,data_size,flags) (This)->lpVtbl->GetData(This,data,data_size,flags) +#define IWineD3DQuery_GetDataSize(This) (This)->lpVtbl->GetDataSize(This) +#define IWineD3DQuery_GetType(This) (This)->lpVtbl->GetType(This) +#define IWineD3DQuery_Issue(This,flags) (This)->lpVtbl->Issue(This,flags) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DQuery_GetData_Proxy( + IWineD3DQuery* This, + void *data, + DWORD data_size, + DWORD flags); +void __RPC_STUB IWineD3DQuery_GetData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +DWORD STDMETHODCALLTYPE IWineD3DQuery_GetDataSize_Proxy( + IWineD3DQuery* This); +void __RPC_STUB IWineD3DQuery_GetDataSize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +WINED3DQUERYTYPE STDMETHODCALLTYPE IWineD3DQuery_GetType_Proxy( + IWineD3DQuery* This); +void __RPC_STUB IWineD3DQuery_GetType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DQuery_Issue_Proxy( + IWineD3DQuery* This, + DWORD flags); +void __RPC_STUB IWineD3DQuery_Issue_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DQuery_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DSwapChain interface + */ +#ifndef __IWineD3DSwapChain_INTERFACE_DEFINED__ +#define __IWineD3DSwapChain_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DSwapChain, 0x34d01b10, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DSwapChain : public IWineD3DBase +{ + virtual void STDMETHODCALLTYPE Destroy( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDevice( + IWineD3DDevice **device) = 0; + + virtual HRESULT STDMETHODCALLTYPE Present( + const RECT *src_rect, + const RECT *dst_rect, + HWND dst_window_override, + const RGNDATA *dirty_region, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDestWindowOverride( + HWND window) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrontBufferData( + IWineD3DSurface *dst_surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackBuffer( + UINT backbuffer_idx, + WINED3DBACKBUFFER_TYPE backbuffer_type, + IWineD3DSurface **backbuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRasterStatus( + WINED3DRASTER_STATUS *raster_status) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( + WINED3DDISPLAYMODE *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPresentParameters( + WINED3DPRESENT_PARAMETERS *present_parameters) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetGammaRamp( + DWORD flags, + const WINED3DGAMMARAMP *ramp) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGammaRamp( + WINED3DGAMMARAMP *ramp) = 0; + +}; +#else +typedef struct IWineD3DSwapChainVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DSwapChain* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DSwapChain* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DSwapChain* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DSwapChain* This, + IUnknown **parent); + + /*** IWineD3DSwapChain methods ***/ + void (STDMETHODCALLTYPE *Destroy)( + IWineD3DSwapChain* This); + + HRESULT (STDMETHODCALLTYPE *GetDevice)( + IWineD3DSwapChain* This, + IWineD3DDevice **device); + + HRESULT (STDMETHODCALLTYPE *Present)( + IWineD3DSwapChain* This, + const RECT *src_rect, + const RECT *dst_rect, + HWND dst_window_override, + const RGNDATA *dirty_region, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *SetDestWindowOverride)( + IWineD3DSwapChain* This, + HWND window); + + HRESULT (STDMETHODCALLTYPE *GetFrontBufferData)( + IWineD3DSwapChain* This, + IWineD3DSurface *dst_surface); + + HRESULT (STDMETHODCALLTYPE *GetBackBuffer)( + IWineD3DSwapChain* This, + UINT backbuffer_idx, + WINED3DBACKBUFFER_TYPE backbuffer_type, + IWineD3DSurface **backbuffer); + + HRESULT (STDMETHODCALLTYPE *GetRasterStatus)( + IWineD3DSwapChain* This, + WINED3DRASTER_STATUS *raster_status); + + HRESULT (STDMETHODCALLTYPE *GetDisplayMode)( + IWineD3DSwapChain* This, + WINED3DDISPLAYMODE *mode); + + HRESULT (STDMETHODCALLTYPE *GetPresentParameters)( + IWineD3DSwapChain* This, + WINED3DPRESENT_PARAMETERS *present_parameters); + + HRESULT (STDMETHODCALLTYPE *SetGammaRamp)( + IWineD3DSwapChain* This, + DWORD flags, + const WINED3DGAMMARAMP *ramp); + + HRESULT (STDMETHODCALLTYPE *GetGammaRamp)( + IWineD3DSwapChain* This, + WINED3DGAMMARAMP *ramp); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *Flush)( + IWineD3DSwapChain* This); + + HRESULT (STDMETHODCALLTYPE *PresentRt)( + IWineD3DSwapChain* This, + IWineD3DSurface* surf); +#endif + END_INTERFACE +} IWineD3DSwapChainVtbl; +interface IWineD3DSwapChain { + CONST_VTBL IWineD3DSwapChainVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DSwapChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DSwapChain_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DSwapChain_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DSwapChain_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DSwapChain methods ***/ +#define IWineD3DSwapChain_Destroy(This) (This)->lpVtbl->Destroy(This) +#define IWineD3DSwapChain_GetDevice(This,device) (This)->lpVtbl->GetDevice(This,device) +#define IWineD3DSwapChain_Present(This,src_rect,dst_rect,dst_window_override,dirty_region,flags) (This)->lpVtbl->Present(This,src_rect,dst_rect,dst_window_override,dirty_region,flags) +#define IWineD3DSwapChain_SetDestWindowOverride(This,window) (This)->lpVtbl->SetDestWindowOverride(This,window) +#define IWineD3DSwapChain_GetFrontBufferData(This,dst_surface) (This)->lpVtbl->GetFrontBufferData(This,dst_surface) +#define IWineD3DSwapChain_GetBackBuffer(This,backbuffer_idx,backbuffer_type,backbuffer) (This)->lpVtbl->GetBackBuffer(This,backbuffer_idx,backbuffer_type,backbuffer) +#define IWineD3DSwapChain_GetRasterStatus(This,raster_status) (This)->lpVtbl->GetRasterStatus(This,raster_status) +#define IWineD3DSwapChain_GetDisplayMode(This,mode) (This)->lpVtbl->GetDisplayMode(This,mode) +#define IWineD3DSwapChain_GetPresentParameters(This,present_parameters) (This)->lpVtbl->GetPresentParameters(This,present_parameters) +#define IWineD3DSwapChain_SetGammaRamp(This,flags,ramp) (This)->lpVtbl->SetGammaRamp(This,flags,ramp) +#define IWineD3DSwapChain_GetGammaRamp(This,ramp) (This)->lpVtbl->GetGammaRamp(This,ramp) +#ifdef VBOX_WITH_WDDM +#define IWineD3DSwapChain_Flush(This) (This)->lpVtbl->Flush(This) +#define IWineD3DSwapChain_PresentRt(This,surf) (This)->lpVtbl->PresentRt(This,surf) +#endif +#endif + +#endif + +void STDMETHODCALLTYPE IWineD3DSwapChain_Destroy_Proxy( + IWineD3DSwapChain* This); +void __RPC_STUB IWineD3DSwapChain_Destroy_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetDevice_Proxy( + IWineD3DSwapChain* This, + IWineD3DDevice **device); +void __RPC_STUB IWineD3DSwapChain_GetDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_Present_Proxy( + IWineD3DSwapChain* This, + const RECT *src_rect, + const RECT *dst_rect, + HWND dst_window_override, + const RGNDATA *dirty_region, + DWORD flags); +void __RPC_STUB IWineD3DSwapChain_Present_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_SetDestWindowOverride_Proxy( + IWineD3DSwapChain* This, + HWND window); +void __RPC_STUB IWineD3DSwapChain_SetDestWindowOverride_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetFrontBufferData_Proxy( + IWineD3DSwapChain* This, + IWineD3DSurface *dst_surface); +void __RPC_STUB IWineD3DSwapChain_GetFrontBufferData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetBackBuffer_Proxy( + IWineD3DSwapChain* This, + UINT backbuffer_idx, + WINED3DBACKBUFFER_TYPE backbuffer_type, + IWineD3DSurface **backbuffer); +void __RPC_STUB IWineD3DSwapChain_GetBackBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetRasterStatus_Proxy( + IWineD3DSwapChain* This, + WINED3DRASTER_STATUS *raster_status); +void __RPC_STUB IWineD3DSwapChain_GetRasterStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetDisplayMode_Proxy( + IWineD3DSwapChain* This, + WINED3DDISPLAYMODE *mode); +void __RPC_STUB IWineD3DSwapChain_GetDisplayMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetPresentParameters_Proxy( + IWineD3DSwapChain* This, + WINED3DPRESENT_PARAMETERS *present_parameters); +void __RPC_STUB IWineD3DSwapChain_GetPresentParameters_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_SetGammaRamp_Proxy( + IWineD3DSwapChain* This, + DWORD flags, + const WINED3DGAMMARAMP *ramp); +void __RPC_STUB IWineD3DSwapChain_SetGammaRamp_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DSwapChain_GetGammaRamp_Proxy( + IWineD3DSwapChain* This, + WINED3DGAMMARAMP *ramp); +void __RPC_STUB IWineD3DSwapChain_GetGammaRamp_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DSwapChain_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DBuffer interface + */ +#ifndef __IWineD3DBuffer_INTERFACE_DEFINED__ +#define __IWineD3DBuffer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DBuffer, 0xb3f028e8, 0x1a40, 0x4ab3, 0x92,0x92, 0x5b,0xf6,0xcf,0xd8,0x02,0x09); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DBuffer : public IWineD3DResource +{ + virtual HRESULT STDMETHODCALLTYPE Map( + UINT offset, + UINT size, + BYTE **data, + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Unmap( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDesc( + WINED3DBUFFER_DESC *desc) = 0; + +}; +#else +typedef struct IWineD3DBufferVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DBuffer* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DBuffer* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DBuffer* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DBuffer* This, + IUnknown **parent); + + /*** IWineD3DResource methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( + IWineD3DBuffer* This, + REFGUID guid, + const void *data, + DWORD data_size, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( + IWineD3DBuffer* This, + REFGUID guid, + void *data, + DWORD *data_size); + + HRESULT (STDMETHODCALLTYPE *FreePrivateData)( + IWineD3DBuffer* This, + REFGUID guid); + + DWORD (STDMETHODCALLTYPE *SetPriority)( + IWineD3DBuffer* This, + DWORD new_priority); + + DWORD (STDMETHODCALLTYPE *GetPriority)( + IWineD3DBuffer* This); + + void (STDMETHODCALLTYPE *PreLoad)( + IWineD3DBuffer* This); + + void (STDMETHODCALLTYPE *UnLoad)( + IWineD3DBuffer* This); + + WINED3DRESOURCETYPE (STDMETHODCALLTYPE *GetType)( + IWineD3DBuffer* This); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *SetShRcState)( + IWineD3DResource* This, + VBOXWINEEX_SHRC_STATE enmState); +#endif + + /*** IWineD3DBuffer methods ***/ + HRESULT (STDMETHODCALLTYPE *Map)( + IWineD3DBuffer* This, + UINT offset, + UINT size, + BYTE **data, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *Unmap)( + IWineD3DBuffer* This); + + HRESULT (STDMETHODCALLTYPE *GetDesc)( + IWineD3DBuffer* This, + WINED3DBUFFER_DESC *desc); + + END_INTERFACE +} IWineD3DBufferVtbl; +interface IWineD3DBuffer { + CONST_VTBL IWineD3DBufferVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DBuffer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DBuffer_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DBuffer_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DResource methods ***/ +#define IWineD3DBuffer_SetPrivateData(This,guid,data,data_size,flags) (This)->lpVtbl->SetPrivateData(This,guid,data,data_size,flags) +#define IWineD3DBuffer_GetPrivateData(This,guid,data,data_size) (This)->lpVtbl->GetPrivateData(This,guid,data,data_size) +#define IWineD3DBuffer_FreePrivateData(This,guid) (This)->lpVtbl->FreePrivateData(This,guid) +#define IWineD3DBuffer_SetPriority(This,new_priority) (This)->lpVtbl->SetPriority(This,new_priority) +#define IWineD3DBuffer_GetPriority(This) (This)->lpVtbl->GetPriority(This) +#define IWineD3DBuffer_PreLoad(This) (This)->lpVtbl->PreLoad(This) +#define IWineD3DBuffer_UnLoad(This) (This)->lpVtbl->UnLoad(This) +#define IWineD3DBuffer_GetType(This) (This)->lpVtbl->GetType(This) +/*** IWineD3DBuffer methods ***/ +#define IWineD3DBuffer_Map(This,offset,size,data,flags) (This)->lpVtbl->Map(This,offset,size,data,flags) +#define IWineD3DBuffer_Unmap(This) (This)->lpVtbl->Unmap(This) +#define IWineD3DBuffer_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DBuffer_Map_Proxy( + IWineD3DBuffer* This, + UINT offset, + UINT size, + BYTE **data, + DWORD flags); +void __RPC_STUB IWineD3DBuffer_Map_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DBuffer_Unmap_Proxy( + IWineD3DBuffer* This); +void __RPC_STUB IWineD3DBuffer_Unmap_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DBuffer_GetDesc_Proxy( + IWineD3DBuffer* This, + WINED3DBUFFER_DESC *desc); +void __RPC_STUB IWineD3DBuffer_GetDesc_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DBuffer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DBaseShader interface + */ +#ifndef __IWineD3DBaseShader_INTERFACE_DEFINED__ +#define __IWineD3DBaseShader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DBaseShader, 0xeac93065, 0xa4df, 0x446f, 0x86,0xa1, 0x9e,0xf2,0xbc,0xa4,0x0a,0x3c); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DBaseShader : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE GetFunction( + void *data, + UINT *data_size) = 0; + +}; +#else +typedef struct IWineD3DBaseShaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DBaseShader* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DBaseShader* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DBaseShader* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DBaseShader* This, + IUnknown **parent); + + /*** IWineD3DBaseShader methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFunction)( + IWineD3DBaseShader* This, + void *data, + UINT *data_size); + + END_INTERFACE +} IWineD3DBaseShaderVtbl; +interface IWineD3DBaseShader { + CONST_VTBL IWineD3DBaseShaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DBaseShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DBaseShader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DBaseShader_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DBaseShader_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DBaseShader methods ***/ +#define IWineD3DBaseShader_GetFunction(This,data,data_size) (This)->lpVtbl->GetFunction(This,data,data_size) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DBaseShader_GetFunction_Proxy( + IWineD3DBaseShader* This, + void *data, + UINT *data_size); +void __RPC_STUB IWineD3DBaseShader_GetFunction_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DBaseShader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DVertexShader interface + */ +#ifndef __IWineD3DVertexShader_INTERFACE_DEFINED__ +#define __IWineD3DVertexShader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DVertexShader, 0x7f7a2b60, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DVertexShader : public IWineD3DBaseShader +{ + virtual HRESULT STDMETHODCALLTYPE SetLocalConstantsF( + UINT start_idx, + const float *src_data, + UINT vector4f_count) = 0; + +}; +#else +typedef struct IWineD3DVertexShaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DVertexShader* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DVertexShader* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DVertexShader* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DVertexShader* This, + IUnknown **parent); + + /*** IWineD3DBaseShader methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFunction)( + IWineD3DVertexShader* This, + void *data, + UINT *data_size); + + /*** IWineD3DVertexShader methods ***/ + HRESULT (STDMETHODCALLTYPE *SetLocalConstantsF)( + IWineD3DVertexShader* This, + UINT start_idx, + const float *src_data, + UINT vector4f_count); + + END_INTERFACE +} IWineD3DVertexShaderVtbl; +interface IWineD3DVertexShader { + CONST_VTBL IWineD3DVertexShaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DVertexShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DVertexShader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DVertexShader_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DVertexShader_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DBaseShader methods ***/ +#define IWineD3DVertexShader_GetFunction(This,data,data_size) (This)->lpVtbl->GetFunction(This,data,data_size) +/*** IWineD3DVertexShader methods ***/ +#define IWineD3DVertexShader_SetLocalConstantsF(This,start_idx,src_data,vector4f_count) (This)->lpVtbl->SetLocalConstantsF(This,start_idx,src_data,vector4f_count) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DVertexShader_SetLocalConstantsF_Proxy( + IWineD3DVertexShader* This, + UINT start_idx, + const float *src_data, + UINT vector4f_count); +void __RPC_STUB IWineD3DVertexShader_SetLocalConstantsF_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DVertexShader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DGeometryShader interface + */ +#ifndef __IWineD3DGeometryShader_INTERFACE_DEFINED__ +#define __IWineD3DGeometryShader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DGeometryShader, 0x8276c113, 0x388b, 0x49d1, 0xad,0x8b, 0xc9,0xdd,0x8b,0xcb,0xab,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DGeometryShader : public IWineD3DBaseShader +{ +}; +#else +typedef struct IWineD3DGeometryShaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DGeometryShader* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DGeometryShader* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DGeometryShader* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DGeometryShader* This, + IUnknown **parent); + + /*** IWineD3DBaseShader methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFunction)( + IWineD3DGeometryShader* This, + void *data, + UINT *data_size); + + END_INTERFACE +} IWineD3DGeometryShaderVtbl; +interface IWineD3DGeometryShader { + CONST_VTBL IWineD3DGeometryShaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DGeometryShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DGeometryShader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DGeometryShader_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DGeometryShader_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DBaseShader methods ***/ +#define IWineD3DGeometryShader_GetFunction(This,data,data_size) (This)->lpVtbl->GetFunction(This,data,data_size) +#endif + +#endif + + +#endif /* __IWineD3DGeometryShader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DPixelShader interface + */ +#ifndef __IWineD3DPixelShader_INTERFACE_DEFINED__ +#define __IWineD3DPixelShader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DPixelShader, 0x818503da, 0x6f30, 0x11d9, 0xc6,0x87, 0x00,0x04,0x61,0x42,0xc1,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DPixelShader : public IWineD3DBaseShader +{ +}; +#else +typedef struct IWineD3DPixelShaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DPixelShader* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DPixelShader* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DPixelShader* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DPixelShader* This, + IUnknown **parent); + + /*** IWineD3DBaseShader methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFunction)( + IWineD3DPixelShader* This, + void *data, + UINT *data_size); + + END_INTERFACE +} IWineD3DPixelShaderVtbl; +interface IWineD3DPixelShader { + CONST_VTBL IWineD3DPixelShaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DPixelShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DPixelShader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DPixelShader_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DPixelShader_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DBaseShader methods ***/ +#define IWineD3DPixelShader_GetFunction(This,data,data_size) (This)->lpVtbl->GetFunction(This,data,data_size) +#endif + +#endif + + +#endif /* __IWineD3DPixelShader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWineD3DDevice interface + */ +#ifndef __IWineD3DDevice_INTERFACE_DEFINED__ +#define __IWineD3DDevice_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWineD3DDevice, 0x6d10a2ce, 0x09d0, 0x4a53, 0xa4,0x27, 0x11,0x38,0x8f,0x9f,0x8c,0xa5); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IWineD3DDevice : public IWineD3DBase +{ + virtual HRESULT STDMETHODCALLTYPE CreateBuffer( + struct wined3d_buffer_desc *desc, + const void *data, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + IWineD3DBuffer **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVertexBuffer( + UINT length, + DWORD usage, + WINED3DPOOL pool, + IWineD3DBuffer **vertex_buffer, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateIndexBuffer( + UINT length, + DWORD usage, + WINED3DPOOL pool, + IWineD3DBuffer **index_buffer, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateStateBlock( + WINED3DSTATEBLOCKTYPE type, + IWineD3DStateBlock **stateblock, + IUnknown *parent) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateSurface( + UINT width, + UINT height, + WINED3DFORMAT format, + BOOL lockable, + BOOL discard, + UINT level, + IWineD3DSurface **surface, + DWORD usage, + WINED3DPOOL pool, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + WINED3DSURFTYPE surface_type, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateRendertargetView( + IWineD3DResource *resource, + IUnknown *parent, + IWineD3DRendertargetView **rendertarget_view) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTexture( + UINT width, + UINT height, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVolumeTexture( + UINT width, + UINT height, + UINT depth, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DVolumeTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pavClientMem +#endif + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVolume( + UINT width, + UINT height, + UINT depth, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DVolume **volume, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pvClientMem +#endif + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCubeTexture( + UINT edge_length, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DCubeTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateQuery( + WINED3DQUERYTYPE type, + IWineD3DQuery **query, + IUnknown *parent) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateSwapChain( + WINED3DPRESENT_PARAMETERS *present_parameters, + IWineD3DSwapChain **swapchain, + IUnknown *parent, + WINED3DSURFTYPE surface_type) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVertexDeclaration( + IWineD3DVertexDeclaration **declaration, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + const WINED3DVERTEXELEMENT *elements, + UINT element_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVertexDeclarationFromFVF( + IWineD3DVertexDeclaration **declaration, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + DWORD fvf) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVertexShader( + const DWORD *function, + const struct wined3d_shader_signature *output_signature, + IWineD3DVertexShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader( + const DWORD *byte_code, + const struct wined3d_shader_signature *output_signature, + IWineD3DGeometryShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreatePixelShader( + const DWORD *function, + const struct wined3d_shader_signature *output_signature, + IWineD3DPixelShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreatePalette( + DWORD flags, + const PALETTEENTRY *palette_entry, + IWineD3DPalette **palette, + IUnknown *parent) = 0; + + virtual HRESULT STDMETHODCALLTYPE Init3D( + WINED3DPRESENT_PARAMETERS *present_parameters) = 0; + + virtual HRESULT STDMETHODCALLTYPE InitGDI( + WINED3DPRESENT_PARAMETERS *present_parameters) = 0; + + virtual HRESULT STDMETHODCALLTYPE Uninit3D( + ULONG (STDMETHODCALLTYPE * destroy_swapchain_callback)(IWineD3DSwapChain *pSwapChain)) = 0; + + virtual HRESULT STDMETHODCALLTYPE UninitGDI( + ULONG (STDMETHODCALLTYPE * destroy_swapchain_callback)(IWineD3DSwapChain *pSwapChain)) = 0; + + virtual void STDMETHODCALLTYPE SetMultithreaded( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EvictManagedResources( + ) = 0; + + virtual UINT STDMETHODCALLTYPE GetAvailableTextureMem( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackBuffer( + UINT swapchain_idx, + UINT backbuffer_idx, + WINED3DBACKBUFFER_TYPE backbuffer_type, + IWineD3DSurface **backbuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCreationParameters( + WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceCaps( + WINED3DCAPS *caps) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDirect3D( + IWineD3D **d3d) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( + UINT swapchain_idx, + WINED3DDISPLAYMODE *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDisplayMode( + UINT swapchain_idx, + const WINED3DDISPLAYMODE *mode) = 0; + + virtual UINT STDMETHODCALLTYPE GetNumberOfSwapChains( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRasterStatus( + UINT swapchain_idx, + WINED3DRASTER_STATUS *raster_status) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSwapChain( + UINT swapchain_idx, + IWineD3DSwapChain **swapchain) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + WINED3DPRESENT_PARAMETERS *present_parameters) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDialogBoxMode( + BOOL enable_dialogs) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCursorProperties( + UINT x_hotspot, + UINT y_hotspot, + IWineD3DSurface *cursor_surface) = 0; + + virtual void STDMETHODCALLTYPE SetCursorPosition( + int x_screen_space, + int y_screen_space, + DWORD flags) = 0; + + virtual BOOL STDMETHODCALLTYPE ShowCursor( + BOOL show) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetClipPlane( + DWORD plane_idx, + const float *plane) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClipPlane( + DWORD plane_idx, + float *plane) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetClipStatus( + const WINED3DCLIPSTATUS *clip_status) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClipStatus( + WINED3DCLIPSTATUS *clip_status) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCurrentTexturePalette( + UINT palette_number) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentTexturePalette( + UINT *palette_number) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDepthStencilSurface( + IWineD3DSurface *depth_stencil) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDepthStencilSurface( + IWineD3DSurface **depth_stencil) = 0; + + virtual void STDMETHODCALLTYPE SetGammaRamp( + UINT swapchain_idx, + DWORD flags, + const WINED3DGAMMARAMP *ramp) = 0; + + virtual void STDMETHODCALLTYPE GetGammaRamp( + UINT swapchain_idx, + WINED3DGAMMARAMP *ramp) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIndexBuffer( + IWineD3DBuffer *index_buffer, + WINED3DFORMAT format) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIndexBuffer( + IWineD3DBuffer **index_buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBaseVertexIndex( + INT base_index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBaseVertexIndex( + INT *base_index) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLight( + DWORD light_idx, + const WINED3DLIGHT *light) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLight( + DWORD light_idx, + WINED3DLIGHT *light) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLightEnable( + DWORD light_idx, + BOOL enable) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLightEnable( + DWORD light_idx, + BOOL *enable) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMaterial( + const WINED3DMATERIAL *material) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMaterial( + WINED3DMATERIAL *material) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNPatchMode( + float segments) = 0; + + virtual float STDMETHODCALLTYPE GetNPatchMode( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPaletteEntries( + UINT palette_number, + const PALETTEENTRY *entries) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( + UINT palette_number, + PALETTEENTRY *entries) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPixelShader( + IWineD3DPixelShader *shader) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPixelShader( + IWineD3DPixelShader **shader) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPixelShaderConstantB( + UINT start_register, + const BOOL *constants, + UINT bool_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPixelShaderConstantB( + UINT start_register, + BOOL *constants, + UINT bool_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPixelShaderConstantI( + UINT start_register, + const int *constants, + UINT vector4i_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPixelShaderConstantI( + UINT start_register, + int *constants, + UINT vector4i_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPixelShaderConstantF( + UINT start_register, + const float *constants, + UINT vector4f_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPixelShaderConstantF( + UINT start_register, + float *constants, + UINT vector4f_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRenderState( + WINED3DRENDERSTATETYPE state, + DWORD value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRenderState( + WINED3DRENDERSTATETYPE state, + DWORD *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRenderTarget( + DWORD render_target_idx, + IWineD3DSurface *render_target, + BOOL set_viewport) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRenderTarget( + DWORD render_target_idx, + IWineD3DSurface **render_target) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFrontBackBuffers( + IWineD3DSurface *front, + IWineD3DSurface *back) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSamplerState( + DWORD sampler_idx, + WINED3DSAMPLERSTATETYPE state, + DWORD value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSamplerState( + DWORD sampler_idx, + WINED3DSAMPLERSTATETYPE state, + DWORD *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScissorRect( + const RECT *rect) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetScissorRect( + RECT *rect) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSoftwareVertexProcessing( + BOOL software) = 0; + + virtual BOOL STDMETHODCALLTYPE GetSoftwareVertexProcessing( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStreamSource( + UINT stream_idx, + IWineD3DBuffer *buffer, + UINT offset, + UINT stride) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamSource( + UINT stream_idx, + IWineD3DBuffer **buffer, + UINT *offset, + UINT *stride) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStreamSourceFreq( + UINT stream_idx, + UINT divider) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamSourceFreq( + UINT stream_idx, + UINT *divider) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTexture( + DWORD stage, + IWineD3DBaseTexture *texture) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTexture( + DWORD stage, + IWineD3DBaseTexture **texture) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTextureStageState( + DWORD stage, + WINED3DTEXTURESTAGESTATETYPE state, + DWORD value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTextureStageState( + DWORD stage, + WINED3DTEXTURESTAGESTATETYPE state, + DWORD *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTransform( + WINED3DTRANSFORMSTATETYPE state, + const WINED3DMATRIX *matrix) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTransform( + WINED3DTRANSFORMSTATETYPE state, + WINED3DMATRIX *matrix) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVertexDeclaration( + IWineD3DVertexDeclaration *declaration) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVertexDeclaration( + IWineD3DVertexDeclaration **declaration) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVertexShader( + IWineD3DVertexShader *shader) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVertexShader( + IWineD3DVertexShader **shader) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVertexShaderConstantB( + UINT start_register, + const BOOL *constants, + UINT bool_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVertexShaderConstantB( + UINT start_register, + BOOL *constants, + UINT bool_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVertexShaderConstantI( + UINT start_register, + const int *constants, + UINT vector4i_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVertexShaderConstantI( + UINT start_register, + int *constants, + UINT vector4i_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVertexShaderConstantF( + UINT start_register, + const float *constants, + UINT vector4f_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVertexShaderConstantF( + UINT start_register, + float *constants, + UINT vector4f_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetViewport( + const WINED3DVIEWPORT *viewport) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetViewport( + WINED3DVIEWPORT *viewport) = 0; + + virtual HRESULT STDMETHODCALLTYPE MultiplyTransform( + WINED3DTRANSFORMSTATETYPE state, + const WINED3DMATRIX *matrix) = 0; + + virtual HRESULT STDMETHODCALLTYPE ValidateDevice( + DWORD *num_passes) = 0; + + virtual HRESULT STDMETHODCALLTYPE ProcessVertices( + UINT src_start_idx, + UINT dst_idx, + UINT vertex_count, + IWineD3DBuffer *dest_buffer, + IWineD3DVertexDeclaration *declaration, + DWORD flags, + DWORD DestFVF) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginStateBlock( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndStateBlock( + IWineD3DStateBlock **stateblock) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginScene( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndScene( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Present( + const RECT *src_rect, + const RECT *dst_rect, + HWND dst_window_override, + const RGNDATA *dirty_region) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clear( + DWORD rect_count, + const WINED3DRECT *rects, + DWORD flags, + WINED3DCOLOR color, + float z, + DWORD stencil) = 0; + + virtual void STDMETHODCALLTYPE ClearRendertargetView( + IWineD3DRendertargetView *rendertarget_view, + const float color[4]) = 0; + + virtual void STDMETHODCALLTYPE SetPrimitiveType( + WINED3DPRIMITIVETYPE primitive_topology) = 0; + + virtual void STDMETHODCALLTYPE GetPrimitiveType( + WINED3DPRIMITIVETYPE *primitive_topology) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawPrimitive( + UINT start_vertex, + UINT vertex_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawIndexedPrimitive( + UINT start_idx, + UINT index_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawPrimitiveUP( + UINT vertex_count, + const void *stream_data, + UINT stream_stride) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawIndexedPrimitiveUP( + UINT index_count, + const void *index_data, + WINED3DFORMAT index_data_format, + const void *stream_data, + UINT stream_stride) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawPrimitiveStrided( + UINT vertex_count, + const WineDirect3DVertexStridedData *strided_data) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawIndexedPrimitiveStrided( + UINT index_count, + const WineDirect3DVertexStridedData *strided_data, + UINT vertex_count, + const void *index_data, + WINED3DFORMAT index_data_format) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawRectPatch( + UINT handle, + const float *num_segs, + const WINED3DRECTPATCH_INFO *rect_patch_info) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawTriPatch( + UINT handle, + const float *num_segs, + const WINED3DTRIPATCH_INFO *tri_patch_info) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeletePatch( + UINT handle) = 0; + + virtual HRESULT STDMETHODCALLTYPE ColorFill( + IWineD3DSurface *surface, + const WINED3DRECT *rect, + WINED3DCOLOR color) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateTexture( + IWineD3DBaseTexture *src_texture, + IWineD3DBaseTexture *dst_texture) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateSurface( + IWineD3DSurface *src_surface, + const RECT *src_rect, + IWineD3DSurface *dst_surface, + const POINT *dst_point) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrontBufferData( + UINT swapchain_idx, + IWineD3DSurface *dst_surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumResources( + HRESULT (STDMETHODCALLTYPE * callback)(IWineD3DResource *resource,void *pData), + void *data) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSurfaceFromDC( + HDC dc, + IWineD3DSurface **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE AcquireFocusWindow( + HWND window) = 0; + + virtual void STDMETHODCALLTYPE ReleaseFocusWindow( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddSwapChain( + IWineD3DSwapChain *swapchain) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveSwapChain( + IWineD3DSwapChain *swapchain) = 0; + +#ifdef VBOX_WITH_WDDM + virtual HRESULT STDMETHODCALLTYPE Flush( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE VolBlt(IWineD3DDevice *iface, + IWineD3DVolume *pSourceVolume, IWineD3DVolume *pDestinationVolume, + const WINED3DBOX *pSrcBoxArg, + const VBOXPOINT3D *pDstPoin3D + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE VolTexBlt(IWineD3DDevice *iface, + IWineD3DVolumeTexture *pSourceTexture, IWineD3DVolumeTexture *pDestinationTexture, + const WINED3DBOX *pSrcBoxArg, + const VBOXPOINT3D *pDstPoin3D + ) = 0; +#endif +}; +#else +typedef struct IWineD3DDeviceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWineD3DDevice* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWineD3DDevice* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWineD3DDevice* This); + + /*** IWineD3DBase methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParent)( + IWineD3DDevice* This, + IUnknown **parent); + + /*** IWineD3DDevice methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateBuffer)( + IWineD3DDevice* This, + struct wined3d_buffer_desc *desc, + const void *data, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + IWineD3DBuffer **buffer); + + HRESULT (STDMETHODCALLTYPE *CreateVertexBuffer)( + IWineD3DDevice* This, + UINT length, + DWORD usage, + WINED3DPOOL pool, + IWineD3DBuffer **vertex_buffer, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); + + HRESULT (STDMETHODCALLTYPE *CreateIndexBuffer)( + IWineD3DDevice* This, + UINT length, + DWORD usage, + WINED3DPOOL pool, + IWineD3DBuffer **index_buffer, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); + + HRESULT (STDMETHODCALLTYPE *CreateStateBlock)( + IWineD3DDevice* This, + WINED3DSTATEBLOCKTYPE type, + IWineD3DStateBlock **stateblock, + IUnknown *parent); + + HRESULT (STDMETHODCALLTYPE *CreateSurface)( + IWineD3DDevice* This, + UINT width, + UINT height, + WINED3DFORMAT format, + BOOL lockable, + BOOL discard, + UINT level, + IWineD3DSurface **surface, + DWORD usage, + WINED3DPOOL pool, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + WINED3DSURFTYPE surface_type, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pvClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateRendertargetView)( + IWineD3DDevice* This, + IWineD3DResource *resource, + IUnknown *parent, + IWineD3DRendertargetView **rendertarget_view); + + HRESULT (STDMETHODCALLTYPE *CreateTexture)( + IWineD3DDevice* This, + UINT width, + UINT height, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void **pavClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateVolumeTexture)( + IWineD3DDevice* This, + UINT width, + UINT height, + UINT depth, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DVolumeTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void **pavClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateVolume)( + IWineD3DDevice* This, + UINT width, + UINT height, + UINT depth, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DVolume **volume, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void *pvClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateCubeTexture)( + IWineD3DDevice* This, + UINT edge_length, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DCubeTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops +#ifdef VBOX_WITH_WDDM + , HANDLE *shared_handle + , void **pavClientMem +#endif + ); + + HRESULT (STDMETHODCALLTYPE *CreateQuery)( + IWineD3DDevice* This, + WINED3DQUERYTYPE type, + IWineD3DQuery **query, + IUnknown *parent); + + HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters, + IWineD3DSwapChain **swapchain, + IUnknown *parent, + WINED3DSURFTYPE surface_type); + + HRESULT (STDMETHODCALLTYPE *CreateVertexDeclaration)( + IWineD3DDevice* This, + IWineD3DVertexDeclaration **declaration, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + const WINED3DVERTEXELEMENT *elements, + UINT element_count); + + HRESULT (STDMETHODCALLTYPE *CreateVertexDeclarationFromFVF)( + IWineD3DDevice* This, + IWineD3DVertexDeclaration **declaration, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + DWORD fvf); + + HRESULT (STDMETHODCALLTYPE *CreateVertexShader)( + IWineD3DDevice* This, + const DWORD *function, + const struct wined3d_shader_signature *output_signature, + IWineD3DVertexShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); + + HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)( + IWineD3DDevice* This, + const DWORD *byte_code, + const struct wined3d_shader_signature *output_signature, + IWineD3DGeometryShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); + + HRESULT (STDMETHODCALLTYPE *CreatePixelShader)( + IWineD3DDevice* This, + const DWORD *function, + const struct wined3d_shader_signature *output_signature, + IWineD3DPixelShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); + + HRESULT (STDMETHODCALLTYPE *CreatePalette)( + IWineD3DDevice* This, + DWORD flags, + const PALETTEENTRY *palette_entry, + IWineD3DPalette **palette, + IUnknown *parent); + + HRESULT (STDMETHODCALLTYPE *Init3D)( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters); + + HRESULT (STDMETHODCALLTYPE *InitGDI)( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters); + + HRESULT (STDMETHODCALLTYPE *Uninit3D)( + IWineD3DDevice* This, + ULONG (STDMETHODCALLTYPE * destroy_swapchain_callback)(IWineD3DSwapChain *pSwapChain)); + + HRESULT (STDMETHODCALLTYPE *UninitGDI)( + IWineD3DDevice* This, + ULONG (STDMETHODCALLTYPE * destroy_swapchain_callback)(IWineD3DSwapChain *pSwapChain)); + + void (STDMETHODCALLTYPE *SetMultithreaded)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *EvictManagedResources)( + IWineD3DDevice* This); + + UINT (STDMETHODCALLTYPE *GetAvailableTextureMem)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *GetBackBuffer)( + IWineD3DDevice* This, + UINT swapchain_idx, + UINT backbuffer_idx, + WINED3DBACKBUFFER_TYPE backbuffer_type, + IWineD3DSurface **backbuffer); + + HRESULT (STDMETHODCALLTYPE *GetCreationParameters)( + IWineD3DDevice* This, + WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters); + + HRESULT (STDMETHODCALLTYPE *GetDeviceCaps)( + IWineD3DDevice* This, + WINED3DCAPS *caps); + + HRESULT (STDMETHODCALLTYPE *GetDirect3D)( + IWineD3DDevice* This, + IWineD3D **d3d); + + HRESULT (STDMETHODCALLTYPE *GetDisplayMode)( + IWineD3DDevice* This, + UINT swapchain_idx, + WINED3DDISPLAYMODE *mode); + + HRESULT (STDMETHODCALLTYPE *SetDisplayMode)( + IWineD3DDevice* This, + UINT swapchain_idx, + const WINED3DDISPLAYMODE *mode); + + UINT (STDMETHODCALLTYPE *GetNumberOfSwapChains)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *GetRasterStatus)( + IWineD3DDevice* This, + UINT swapchain_idx, + WINED3DRASTER_STATUS *raster_status); + + HRESULT (STDMETHODCALLTYPE *GetSwapChain)( + IWineD3DDevice* This, + UINT swapchain_idx, + IWineD3DSwapChain **swapchain); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters); + + HRESULT (STDMETHODCALLTYPE *SetDialogBoxMode)( + IWineD3DDevice* This, + BOOL enable_dialogs); + + HRESULT (STDMETHODCALLTYPE *SetCursorProperties)( + IWineD3DDevice* This, + UINT x_hotspot, + UINT y_hotspot, + IWineD3DSurface *cursor_surface); + + void (STDMETHODCALLTYPE *SetCursorPosition)( + IWineD3DDevice* This, + int x_screen_space, + int y_screen_space, + DWORD flags); + + BOOL (STDMETHODCALLTYPE *ShowCursor)( + IWineD3DDevice* This, + BOOL show); + + HRESULT (STDMETHODCALLTYPE *SetClipPlane)( + IWineD3DDevice* This, + DWORD plane_idx, + const float *plane); + + HRESULT (STDMETHODCALLTYPE *GetClipPlane)( + IWineD3DDevice* This, + DWORD plane_idx, + float *plane); + + HRESULT (STDMETHODCALLTYPE *SetClipStatus)( + IWineD3DDevice* This, + const WINED3DCLIPSTATUS *clip_status); + + HRESULT (STDMETHODCALLTYPE *GetClipStatus)( + IWineD3DDevice* This, + WINED3DCLIPSTATUS *clip_status); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTexturePalette)( + IWineD3DDevice* This, + UINT palette_number); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTexturePalette)( + IWineD3DDevice* This, + UINT *palette_number); + + HRESULT (STDMETHODCALLTYPE *SetDepthStencilSurface)( + IWineD3DDevice* This, + IWineD3DSurface *depth_stencil); + + HRESULT (STDMETHODCALLTYPE *GetDepthStencilSurface)( + IWineD3DDevice* This, + IWineD3DSurface **depth_stencil); + + void (STDMETHODCALLTYPE *SetGammaRamp)( + IWineD3DDevice* This, + UINT swapchain_idx, + DWORD flags, + const WINED3DGAMMARAMP *ramp); + + void (STDMETHODCALLTYPE *GetGammaRamp)( + IWineD3DDevice* This, + UINT swapchain_idx, + WINED3DGAMMARAMP *ramp); + + HRESULT (STDMETHODCALLTYPE *SetIndexBuffer)( + IWineD3DDevice* This, + IWineD3DBuffer *index_buffer, + WINED3DFORMAT format); + + HRESULT (STDMETHODCALLTYPE *GetIndexBuffer)( + IWineD3DDevice* This, + IWineD3DBuffer **index_buffer); + + HRESULT (STDMETHODCALLTYPE *SetBaseVertexIndex)( + IWineD3DDevice* This, + INT base_index); + + HRESULT (STDMETHODCALLTYPE *GetBaseVertexIndex)( + IWineD3DDevice* This, + INT *base_index); + + HRESULT (STDMETHODCALLTYPE *SetLight)( + IWineD3DDevice* This, + DWORD light_idx, + const WINED3DLIGHT *light); + + HRESULT (STDMETHODCALLTYPE *GetLight)( + IWineD3DDevice* This, + DWORD light_idx, + WINED3DLIGHT *light); + + HRESULT (STDMETHODCALLTYPE *SetLightEnable)( + IWineD3DDevice* This, + DWORD light_idx, + BOOL enable); + + HRESULT (STDMETHODCALLTYPE *GetLightEnable)( + IWineD3DDevice* This, + DWORD light_idx, + BOOL *enable); + + HRESULT (STDMETHODCALLTYPE *SetMaterial)( + IWineD3DDevice* This, + const WINED3DMATERIAL *material); + + HRESULT (STDMETHODCALLTYPE *GetMaterial)( + IWineD3DDevice* This, + WINED3DMATERIAL *material); + + HRESULT (STDMETHODCALLTYPE *SetNPatchMode)( + IWineD3DDevice* This, + float segments); + + float (STDMETHODCALLTYPE *GetNPatchMode)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *SetPaletteEntries)( + IWineD3DDevice* This, + UINT palette_number, + const PALETTEENTRY *entries); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IWineD3DDevice* This, + UINT palette_number, + PALETTEENTRY *entries); + + HRESULT (STDMETHODCALLTYPE *SetPixelShader)( + IWineD3DDevice* This, + IWineD3DPixelShader *shader); + + HRESULT (STDMETHODCALLTYPE *GetPixelShader)( + IWineD3DDevice* This, + IWineD3DPixelShader **shader); + + HRESULT (STDMETHODCALLTYPE *SetPixelShaderConstantB)( + IWineD3DDevice* This, + UINT start_register, + const BOOL *constants, + UINT bool_count); + + HRESULT (STDMETHODCALLTYPE *GetPixelShaderConstantB)( + IWineD3DDevice* This, + UINT start_register, + BOOL *constants, + UINT bool_count); + + HRESULT (STDMETHODCALLTYPE *SetPixelShaderConstantI)( + IWineD3DDevice* This, + UINT start_register, + const int *constants, + UINT vector4i_count); + + HRESULT (STDMETHODCALLTYPE *GetPixelShaderConstantI)( + IWineD3DDevice* This, + UINT start_register, + int *constants, + UINT vector4i_count); + + HRESULT (STDMETHODCALLTYPE *SetPixelShaderConstantF)( + IWineD3DDevice* This, + UINT start_register, + const float *constants, + UINT vector4f_count); + + HRESULT (STDMETHODCALLTYPE *GetPixelShaderConstantF)( + IWineD3DDevice* This, + UINT start_register, + float *constants, + UINT vector4f_count); + + HRESULT (STDMETHODCALLTYPE *SetRenderState)( + IWineD3DDevice* This, + WINED3DRENDERSTATETYPE state, + DWORD value); + + HRESULT (STDMETHODCALLTYPE *GetRenderState)( + IWineD3DDevice* This, + WINED3DRENDERSTATETYPE state, + DWORD *value); + + HRESULT (STDMETHODCALLTYPE *SetRenderTarget)( + IWineD3DDevice* This, + DWORD render_target_idx, + IWineD3DSurface *render_target, + BOOL set_viewport); + + HRESULT (STDMETHODCALLTYPE *GetRenderTarget)( + IWineD3DDevice* This, + DWORD render_target_idx, + IWineD3DSurface **render_target); + + HRESULT (STDMETHODCALLTYPE *SetFrontBackBuffers)( + IWineD3DDevice* This, + IWineD3DSurface *front, + IWineD3DSurface *back); + + HRESULT (STDMETHODCALLTYPE *SetSamplerState)( + IWineD3DDevice* This, + DWORD sampler_idx, + WINED3DSAMPLERSTATETYPE state, + DWORD value); + + HRESULT (STDMETHODCALLTYPE *GetSamplerState)( + IWineD3DDevice* This, + DWORD sampler_idx, + WINED3DSAMPLERSTATETYPE state, + DWORD *value); + + HRESULT (STDMETHODCALLTYPE *SetScissorRect)( + IWineD3DDevice* This, + const RECT *rect); + + HRESULT (STDMETHODCALLTYPE *GetScissorRect)( + IWineD3DDevice* This, + RECT *rect); + + HRESULT (STDMETHODCALLTYPE *SetSoftwareVertexProcessing)( + IWineD3DDevice* This, + BOOL software); + + BOOL (STDMETHODCALLTYPE *GetSoftwareVertexProcessing)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *SetStreamSource)( + IWineD3DDevice* This, + UINT stream_idx, + IWineD3DBuffer *buffer, + UINT offset, + UINT stride); + + HRESULT (STDMETHODCALLTYPE *GetStreamSource)( + IWineD3DDevice* This, + UINT stream_idx, + IWineD3DBuffer **buffer, + UINT *offset, + UINT *stride); + + HRESULT (STDMETHODCALLTYPE *SetStreamSourceFreq)( + IWineD3DDevice* This, + UINT stream_idx, + UINT divider); + + HRESULT (STDMETHODCALLTYPE *GetStreamSourceFreq)( + IWineD3DDevice* This, + UINT stream_idx, + UINT *divider); + + HRESULT (STDMETHODCALLTYPE *SetTexture)( + IWineD3DDevice* This, + DWORD stage, + IWineD3DBaseTexture *texture); + + HRESULT (STDMETHODCALLTYPE *GetTexture)( + IWineD3DDevice* This, + DWORD stage, + IWineD3DBaseTexture **texture); + + HRESULT (STDMETHODCALLTYPE *SetTextureStageState)( + IWineD3DDevice* This, + DWORD stage, + WINED3DTEXTURESTAGESTATETYPE state, + DWORD value); + + HRESULT (STDMETHODCALLTYPE *GetTextureStageState)( + IWineD3DDevice* This, + DWORD stage, + WINED3DTEXTURESTAGESTATETYPE state, + DWORD *value); + + HRESULT (STDMETHODCALLTYPE *SetTransform)( + IWineD3DDevice* This, + WINED3DTRANSFORMSTATETYPE state, + const WINED3DMATRIX *matrix); + + HRESULT (STDMETHODCALLTYPE *GetTransform)( + IWineD3DDevice* This, + WINED3DTRANSFORMSTATETYPE state, + WINED3DMATRIX *matrix); + + HRESULT (STDMETHODCALLTYPE *SetVertexDeclaration)( + IWineD3DDevice* This, + IWineD3DVertexDeclaration *declaration); + + HRESULT (STDMETHODCALLTYPE *GetVertexDeclaration)( + IWineD3DDevice* This, + IWineD3DVertexDeclaration **declaration); + + HRESULT (STDMETHODCALLTYPE *SetVertexShader)( + IWineD3DDevice* This, + IWineD3DVertexShader *shader); + + HRESULT (STDMETHODCALLTYPE *GetVertexShader)( + IWineD3DDevice* This, + IWineD3DVertexShader **shader); + + HRESULT (STDMETHODCALLTYPE *SetVertexShaderConstantB)( + IWineD3DDevice* This, + UINT start_register, + const BOOL *constants, + UINT bool_count); + + HRESULT (STDMETHODCALLTYPE *GetVertexShaderConstantB)( + IWineD3DDevice* This, + UINT start_register, + BOOL *constants, + UINT bool_count); + + HRESULT (STDMETHODCALLTYPE *SetVertexShaderConstantI)( + IWineD3DDevice* This, + UINT start_register, + const int *constants, + UINT vector4i_count); + + HRESULT (STDMETHODCALLTYPE *GetVertexShaderConstantI)( + IWineD3DDevice* This, + UINT start_register, + int *constants, + UINT vector4i_count); + + HRESULT (STDMETHODCALLTYPE *SetVertexShaderConstantF)( + IWineD3DDevice* This, + UINT start_register, + const float *constants, + UINT vector4f_count); + + HRESULT (STDMETHODCALLTYPE *GetVertexShaderConstantF)( + IWineD3DDevice* This, + UINT start_register, + float *constants, + UINT vector4f_count); + + HRESULT (STDMETHODCALLTYPE *SetViewport)( + IWineD3DDevice* This, + const WINED3DVIEWPORT *viewport); + + HRESULT (STDMETHODCALLTYPE *GetViewport)( + IWineD3DDevice* This, + WINED3DVIEWPORT *viewport); + + HRESULT (STDMETHODCALLTYPE *MultiplyTransform)( + IWineD3DDevice* This, + WINED3DTRANSFORMSTATETYPE state, + const WINED3DMATRIX *matrix); + + HRESULT (STDMETHODCALLTYPE *ValidateDevice)( + IWineD3DDevice* This, + DWORD *num_passes); + + HRESULT (STDMETHODCALLTYPE *ProcessVertices)( + IWineD3DDevice* This, + UINT src_start_idx, + UINT dst_idx, + UINT vertex_count, + IWineD3DBuffer *dest_buffer, + IWineD3DVertexDeclaration *declaration, + DWORD flags, + DWORD DestFVF); + + HRESULT (STDMETHODCALLTYPE *BeginStateBlock)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *EndStateBlock)( + IWineD3DDevice* This, + IWineD3DStateBlock **stateblock); + + HRESULT (STDMETHODCALLTYPE *BeginScene)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *EndScene)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *Present)( + IWineD3DDevice* This, + const RECT *src_rect, + const RECT *dst_rect, + HWND dst_window_override, + const RGNDATA *dirty_region); + + HRESULT (STDMETHODCALLTYPE *Clear)( + IWineD3DDevice* This, + DWORD rect_count, + const WINED3DRECT *rects, + DWORD flags, + WINED3DCOLOR color, + float z, + DWORD stencil); + + void (STDMETHODCALLTYPE *ClearRendertargetView)( + IWineD3DDevice* This, + IWineD3DRendertargetView *rendertarget_view, + const float color[4]); + + void (STDMETHODCALLTYPE *SetPrimitiveType)( + IWineD3DDevice* This, + WINED3DPRIMITIVETYPE primitive_topology); + + void (STDMETHODCALLTYPE *GetPrimitiveType)( + IWineD3DDevice* This, + WINED3DPRIMITIVETYPE *primitive_topology); + + HRESULT (STDMETHODCALLTYPE *DrawPrimitive)( + IWineD3DDevice* This, + UINT start_vertex, + UINT vertex_count); + + HRESULT (STDMETHODCALLTYPE *DrawIndexedPrimitive)( + IWineD3DDevice* This, + UINT start_idx, + UINT index_count); + + HRESULT (STDMETHODCALLTYPE *DrawPrimitiveUP)( + IWineD3DDevice* This, + UINT vertex_count, + const void *stream_data, + UINT stream_stride); + + HRESULT (STDMETHODCALLTYPE *DrawIndexedPrimitiveUP)( + IWineD3DDevice* This, + UINT index_count, + const void *index_data, + WINED3DFORMAT index_data_format, + const void *stream_data, + UINT stream_stride); + + HRESULT (STDMETHODCALLTYPE *DrawPrimitiveStrided)( + IWineD3DDevice* This, + UINT vertex_count, + const WineDirect3DVertexStridedData *strided_data); + + HRESULT (STDMETHODCALLTYPE *DrawIndexedPrimitiveStrided)( + IWineD3DDevice* This, + UINT index_count, + const WineDirect3DVertexStridedData *strided_data, + UINT vertex_count, + const void *index_data, + WINED3DFORMAT index_data_format); + + HRESULT (STDMETHODCALLTYPE *DrawRectPatch)( + IWineD3DDevice* This, + UINT handle, + const float *num_segs, + const WINED3DRECTPATCH_INFO *rect_patch_info); + + HRESULT (STDMETHODCALLTYPE *DrawTriPatch)( + IWineD3DDevice* This, + UINT handle, + const float *num_segs, + const WINED3DTRIPATCH_INFO *tri_patch_info); + + HRESULT (STDMETHODCALLTYPE *DeletePatch)( + IWineD3DDevice* This, + UINT handle); + + HRESULT (STDMETHODCALLTYPE *ColorFill)( + IWineD3DDevice* This, + IWineD3DSurface *surface, + const WINED3DRECT *rect, + WINED3DCOLOR color); + + HRESULT (STDMETHODCALLTYPE *UpdateTexture)( + IWineD3DDevice* This, + IWineD3DBaseTexture *src_texture, + IWineD3DBaseTexture *dst_texture); + + HRESULT (STDMETHODCALLTYPE *UpdateSurface)( + IWineD3DDevice* This, + IWineD3DSurface *src_surface, + const RECT *src_rect, + IWineD3DSurface *dst_surface, + const POINT *dst_point); + + HRESULT (STDMETHODCALLTYPE *GetFrontBufferData)( + IWineD3DDevice* This, + UINT swapchain_idx, + IWineD3DSurface *dst_surface); + + HRESULT (STDMETHODCALLTYPE *EnumResources)( + IWineD3DDevice* This, + HRESULT (STDMETHODCALLTYPE * callback)(IWineD3DResource *resource,void *pData), + void *data); + + HRESULT (STDMETHODCALLTYPE *GetSurfaceFromDC)( + IWineD3DDevice* This, + HDC dc, + IWineD3DSurface **surface); + + HRESULT (STDMETHODCALLTYPE *AcquireFocusWindow)( + IWineD3DDevice* This, + HWND window); + + void (STDMETHODCALLTYPE *ReleaseFocusWindow)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *AddSwapChain)( + IWineD3DDevice* This, + IWineD3DSwapChain *swapchain); + + HRESULT (STDMETHODCALLTYPE *RemoveSwapChain)( + IWineD3DDevice* This, + IWineD3DSwapChain *swapchain); + +#ifdef VBOX_WITH_WDDM + HRESULT (STDMETHODCALLTYPE *Flush)( + IWineD3DDevice* This); + + HRESULT (STDMETHODCALLTYPE *VolBlt)(IWineD3DDevice *iface, + IWineD3DVolume *pSourceVolume, IWineD3DVolume *pDestinationVolume, + const WINED3DBOX *pSrcBoxArg, + const struct VBOXPOINT3D *pDstPoin3D + ); + + HRESULT (STDMETHODCALLTYPE *VolTexBlt)(IWineD3DDevice *iface, + IWineD3DVolumeTexture *pSourceTexture, IWineD3DVolumeTexture *pDestinationTexture, + const WINED3DBOX *pSrcBoxArg, + const struct VBOXPOINT3D *pDstPoin3D + ); + + HRESULT (STDMETHODCALLTYPE *FlushToHost)( + IWineD3DDevice *iface); + + HRESULT (STDMETHODCALLTYPE *Finish)( + IWineD3DDevice* This); +#endif + + END_INTERFACE +} IWineD3DDeviceVtbl; +interface IWineD3DDevice { + CONST_VTBL IWineD3DDeviceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWineD3DDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWineD3DDevice_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWineD3DDevice_Release(This) (This)->lpVtbl->Release(This) +/*** IWineD3DBase methods ***/ +#define IWineD3DDevice_GetParent(This,parent) (This)->lpVtbl->GetParent(This,parent) +/*** IWineD3DDevice methods ***/ +#define IWineD3DDevice_CreateBuffer(This,desc,data,parent,parent_ops,buffer) (This)->lpVtbl->CreateBuffer(This,desc,data,parent,parent_ops,buffer) +#define IWineD3DDevice_CreateVertexBuffer(This,length,usage,pool,vertex_buffer,parent,parent_ops) (This)->lpVtbl->CreateVertexBuffer(This,length,usage,pool,vertex_buffer,parent,parent_ops) +#define IWineD3DDevice_CreateIndexBuffer(This,length,usage,pool,index_buffer,parent,parent_ops) (This)->lpVtbl->CreateIndexBuffer(This,length,usage,pool,index_buffer,parent,parent_ops) +#define IWineD3DDevice_CreateStateBlock(This,type,stateblock,parent) (This)->lpVtbl->CreateStateBlock(This,type,stateblock,parent) +#ifdef VBOX_WITH_WDDM +#define IWineD3DDevice_CreateSurface(This,width,height,format,lockable,discard,level,surface,usage,pool,multisample_type,multisample_quality,surface_type,parent,parent_ops,shared_handle,pvClientMem) (This)->lpVtbl->CreateSurface(This,width,height,format,lockable,discard,level,surface,usage,pool,multisample_type,multisample_quality,surface_type,parent,parent_ops,shared_handle,pvClientMem) +#else +#define IWineD3DDevice_CreateSurface(This,width,height,format,lockable,discard,level,surface,usage,pool,multisample_type,multisample_quality,surface_type,parent,parent_ops) (This)->lpVtbl->CreateSurface(This,width,height,format,lockable,discard,level,surface,usage,pool,multisample_type,multisample_quality,surface_type,parent,parent_ops) +#endif +#define IWineD3DDevice_CreateRendertargetView(This,resource,parent,rendertarget_view) (This)->lpVtbl->CreateRendertargetView(This,resource,parent,rendertarget_view) +#ifdef VBOX_WITH_WDDM +#define IWineD3DDevice_CreateTexture(This,width,height,levels,usage,format,pool,texture,parent,parent_ops,shared_handle,pavClientMem) (This)->lpVtbl->CreateTexture(This,width,height,levels,usage,format,pool,texture,parent,parent_ops,shared_handle,pavClientMem) +#else +#define IWineD3DDevice_CreateTexture(This,width,height,levels,usage,format,pool,texture,parent,parent_ops) (This)->lpVtbl->CreateTexture(This,width,height,levels,usage,format,pool,texture,parent,parent_ops) +#endif +#ifdef VBOX_WITH_WDDM +#define IWineD3DDevice_CreateVolumeTexture(This,width,height,depth,levels,usage,format,pool,texture,parent,parent_ops,shared_handle,pavClientMem) (This)->lpVtbl->CreateVolumeTexture(This,width,height,depth,levels,usage,format,pool,texture,parent,parent_ops,shared_handle,pavClientMem) +#else +#define IWineD3DDevice_CreateVolumeTexture(This,width,height,depth,levels,usage,format,pool,texture,parent,parent_ops) (This)->lpVtbl->CreateVolumeTexture(This,width,height,depth,levels,usage,format,pool,texture,parent,parent_ops) +#endif +#ifdef VBOX_WITH_WDDM +#define IWineD3DDevice_CreateVolume(This,width,height,depth,usage,format,pool,volume,parent,parent_ops,shared_handle,pvClientMem) (This)->lpVtbl->CreateVolume(This,width,height,depth,usage,format,pool,volume,parent,parent_ops,shared_handle,pvClientMem) +#else +#define IWineD3DDevice_CreateVolume(This,width,height,depth,usage,format,pool,volume,parent,parent_ops) (This)->lpVtbl->CreateVolume(This,width,height,depth,usage,format,pool,volume,parent,parent_ops) +#endif +#ifdef VBOX_WITH_WDDM +#define IWineD3DDevice_CreateCubeTexture(This,edge_length,levels,usage,format,pool,texture,parent,parent_ops,shared_handle,pavClientMem) (This)->lpVtbl->CreateCubeTexture(This,edge_length,levels,usage,format,pool,texture,parent,parent_ops,shared_handle,pavClientMem) +#else +#define IWineD3DDevice_CreateCubeTexture(This,edge_length,levels,usage,format,pool,texture,parent,parent_ops) (This)->lpVtbl->CreateCubeTexture(This,edge_length,levels,usage,format,pool,texture,parent,parent_ops) +#endif +#define IWineD3DDevice_CreateQuery(This,type,query,parent) (This)->lpVtbl->CreateQuery(This,type,query,parent) +#define IWineD3DDevice_CreateSwapChain(This,present_parameters,swapchain,parent,surface_type) (This)->lpVtbl->CreateSwapChain(This,present_parameters,swapchain,parent,surface_type) +#define IWineD3DDevice_CreateVertexDeclaration(This,declaration,parent,parent_ops,elements,element_count) (This)->lpVtbl->CreateVertexDeclaration(This,declaration,parent,parent_ops,elements,element_count) +#define IWineD3DDevice_CreateVertexDeclarationFromFVF(This,declaration,parent,parent_ops,fvf) (This)->lpVtbl->CreateVertexDeclarationFromFVF(This,declaration,parent,parent_ops,fvf) +#define IWineD3DDevice_CreateVertexShader(This,function,output_signature,shader,parent,parent_ops) (This)->lpVtbl->CreateVertexShader(This,function,output_signature,shader,parent,parent_ops) +#define IWineD3DDevice_CreateGeometryShader(This,byte_code,output_signature,shader,parent,parent_ops) (This)->lpVtbl->CreateGeometryShader(This,byte_code,output_signature,shader,parent,parent_ops) +#define IWineD3DDevice_CreatePixelShader(This,function,output_signature,shader,parent,parent_ops) (This)->lpVtbl->CreatePixelShader(This,function,output_signature,shader,parent,parent_ops) +#define IWineD3DDevice_CreatePalette(This,flags,palette_entry,palette,parent) (This)->lpVtbl->CreatePalette(This,flags,palette_entry,palette,parent) +#define IWineD3DDevice_Init3D(This,present_parameters) (This)->lpVtbl->Init3D(This,present_parameters) +#define IWineD3DDevice_InitGDI(This,present_parameters) (This)->lpVtbl->InitGDI(This,present_parameters) +#define IWineD3DDevice_Uninit3D(This,destroy_swapchain_callback) (This)->lpVtbl->Uninit3D(This,destroy_swapchain_callback) +#define IWineD3DDevice_UninitGDI(This,destroy_swapchain_callback) (This)->lpVtbl->UninitGDI(This,destroy_swapchain_callback) +#define IWineD3DDevice_SetMultithreaded(This) (This)->lpVtbl->SetMultithreaded(This) +#define IWineD3DDevice_EvictManagedResources(This) (This)->lpVtbl->EvictManagedResources(This) +#define IWineD3DDevice_GetAvailableTextureMem(This) (This)->lpVtbl->GetAvailableTextureMem(This) +#define IWineD3DDevice_GetBackBuffer(This,swapchain_idx,backbuffer_idx,backbuffer_type,backbuffer) (This)->lpVtbl->GetBackBuffer(This,swapchain_idx,backbuffer_idx,backbuffer_type,backbuffer) +#define IWineD3DDevice_GetCreationParameters(This,creation_parameters) (This)->lpVtbl->GetCreationParameters(This,creation_parameters) +#define IWineD3DDevice_GetDeviceCaps(This,caps) (This)->lpVtbl->GetDeviceCaps(This,caps) +#define IWineD3DDevice_GetDirect3D(This,d3d) (This)->lpVtbl->GetDirect3D(This,d3d) +#define IWineD3DDevice_GetDisplayMode(This,swapchain_idx,mode) (This)->lpVtbl->GetDisplayMode(This,swapchain_idx,mode) +#define IWineD3DDevice_SetDisplayMode(This,swapchain_idx,mode) (This)->lpVtbl->SetDisplayMode(This,swapchain_idx,mode) +#define IWineD3DDevice_GetNumberOfSwapChains(This) (This)->lpVtbl->GetNumberOfSwapChains(This) +#define IWineD3DDevice_GetRasterStatus(This,swapchain_idx,raster_status) (This)->lpVtbl->GetRasterStatus(This,swapchain_idx,raster_status) +#define IWineD3DDevice_GetSwapChain(This,swapchain_idx,swapchain) (This)->lpVtbl->GetSwapChain(This,swapchain_idx,swapchain) +#define IWineD3DDevice_Reset(This,present_parameters) (This)->lpVtbl->Reset(This,present_parameters) +#define IWineD3DDevice_SetDialogBoxMode(This,enable_dialogs) (This)->lpVtbl->SetDialogBoxMode(This,enable_dialogs) +#define IWineD3DDevice_SetCursorProperties(This,x_hotspot,y_hotspot,cursor_surface) (This)->lpVtbl->SetCursorProperties(This,x_hotspot,y_hotspot,cursor_surface) +#define IWineD3DDevice_SetCursorPosition(This,x_screen_space,y_screen_space,flags) (This)->lpVtbl->SetCursorPosition(This,x_screen_space,y_screen_space,flags) +#define IWineD3DDevice_ShowCursor(This,show) (This)->lpVtbl->ShowCursor(This,show) +#define IWineD3DDevice_SetClipPlane(This,plane_idx,plane) (This)->lpVtbl->SetClipPlane(This,plane_idx,plane) +#define IWineD3DDevice_GetClipPlane(This,plane_idx,plane) (This)->lpVtbl->GetClipPlane(This,plane_idx,plane) +#define IWineD3DDevice_SetClipStatus(This,clip_status) (This)->lpVtbl->SetClipStatus(This,clip_status) +#define IWineD3DDevice_GetClipStatus(This,clip_status) (This)->lpVtbl->GetClipStatus(This,clip_status) +#define IWineD3DDevice_SetCurrentTexturePalette(This,palette_number) (This)->lpVtbl->SetCurrentTexturePalette(This,palette_number) +#define IWineD3DDevice_GetCurrentTexturePalette(This,palette_number) (This)->lpVtbl->GetCurrentTexturePalette(This,palette_number) +#define IWineD3DDevice_SetDepthStencilSurface(This,depth_stencil) (This)->lpVtbl->SetDepthStencilSurface(This,depth_stencil) +#define IWineD3DDevice_GetDepthStencilSurface(This,depth_stencil) (This)->lpVtbl->GetDepthStencilSurface(This,depth_stencil) +#define IWineD3DDevice_SetGammaRamp(This,swapchain_idx,flags,ramp) (This)->lpVtbl->SetGammaRamp(This,swapchain_idx,flags,ramp) +#define IWineD3DDevice_GetGammaRamp(This,swapchain_idx,ramp) (This)->lpVtbl->GetGammaRamp(This,swapchain_idx,ramp) +#define IWineD3DDevice_SetIndexBuffer(This,index_buffer,format) (This)->lpVtbl->SetIndexBuffer(This,index_buffer,format) +#define IWineD3DDevice_GetIndexBuffer(This,index_buffer) (This)->lpVtbl->GetIndexBuffer(This,index_buffer) +#define IWineD3DDevice_SetBaseVertexIndex(This,base_index) (This)->lpVtbl->SetBaseVertexIndex(This,base_index) +#define IWineD3DDevice_GetBaseVertexIndex(This,base_index) (This)->lpVtbl->GetBaseVertexIndex(This,base_index) +#define IWineD3DDevice_SetLight(This,light_idx,light) (This)->lpVtbl->SetLight(This,light_idx,light) +#define IWineD3DDevice_GetLight(This,light_idx,light) (This)->lpVtbl->GetLight(This,light_idx,light) +#define IWineD3DDevice_SetLightEnable(This,light_idx,enable) (This)->lpVtbl->SetLightEnable(This,light_idx,enable) +#define IWineD3DDevice_GetLightEnable(This,light_idx,enable) (This)->lpVtbl->GetLightEnable(This,light_idx,enable) +#define IWineD3DDevice_SetMaterial(This,material) (This)->lpVtbl->SetMaterial(This,material) +#define IWineD3DDevice_GetMaterial(This,material) (This)->lpVtbl->GetMaterial(This,material) +#define IWineD3DDevice_SetNPatchMode(This,segments) (This)->lpVtbl->SetNPatchMode(This,segments) +#define IWineD3DDevice_GetNPatchMode(This) (This)->lpVtbl->GetNPatchMode(This) +#define IWineD3DDevice_SetPaletteEntries(This,palette_number,entries) (This)->lpVtbl->SetPaletteEntries(This,palette_number,entries) +#define IWineD3DDevice_GetPaletteEntries(This,palette_number,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_number,entries) +#define IWineD3DDevice_SetPixelShader(This,shader) (This)->lpVtbl->SetPixelShader(This,shader) +#define IWineD3DDevice_GetPixelShader(This,shader) (This)->lpVtbl->GetPixelShader(This,shader) +#define IWineD3DDevice_SetPixelShaderConstantB(This,start_register,constants,bool_count) (This)->lpVtbl->SetPixelShaderConstantB(This,start_register,constants,bool_count) +#define IWineD3DDevice_GetPixelShaderConstantB(This,start_register,constants,bool_count) (This)->lpVtbl->GetPixelShaderConstantB(This,start_register,constants,bool_count) +#define IWineD3DDevice_SetPixelShaderConstantI(This,start_register,constants,vector4i_count) (This)->lpVtbl->SetPixelShaderConstantI(This,start_register,constants,vector4i_count) +#define IWineD3DDevice_GetPixelShaderConstantI(This,start_register,constants,vector4i_count) (This)->lpVtbl->GetPixelShaderConstantI(This,start_register,constants,vector4i_count) +#define IWineD3DDevice_SetPixelShaderConstantF(This,start_register,constants,vector4f_count) (This)->lpVtbl->SetPixelShaderConstantF(This,start_register,constants,vector4f_count) +#define IWineD3DDevice_GetPixelShaderConstantF(This,start_register,constants,vector4f_count) (This)->lpVtbl->GetPixelShaderConstantF(This,start_register,constants,vector4f_count) +#define IWineD3DDevice_SetRenderState(This,state,value) (This)->lpVtbl->SetRenderState(This,state,value) +#define IWineD3DDevice_GetRenderState(This,state,value) (This)->lpVtbl->GetRenderState(This,state,value) +#define IWineD3DDevice_SetRenderTarget(This,render_target_idx,render_target,set_viewport) (This)->lpVtbl->SetRenderTarget(This,render_target_idx,render_target,set_viewport) +#define IWineD3DDevice_GetRenderTarget(This,render_target_idx,render_target) (This)->lpVtbl->GetRenderTarget(This,render_target_idx,render_target) +#define IWineD3DDevice_SetFrontBackBuffers(This,front,back) (This)->lpVtbl->SetFrontBackBuffers(This,front,back) +#define IWineD3DDevice_SetSamplerState(This,sampler_idx,state,value) (This)->lpVtbl->SetSamplerState(This,sampler_idx,state,value) +#define IWineD3DDevice_GetSamplerState(This,sampler_idx,state,value) (This)->lpVtbl->GetSamplerState(This,sampler_idx,state,value) +#define IWineD3DDevice_SetScissorRect(This,rect) (This)->lpVtbl->SetScissorRect(This,rect) +#define IWineD3DDevice_GetScissorRect(This,rect) (This)->lpVtbl->GetScissorRect(This,rect) +#define IWineD3DDevice_SetSoftwareVertexProcessing(This,software) (This)->lpVtbl->SetSoftwareVertexProcessing(This,software) +#define IWineD3DDevice_GetSoftwareVertexProcessing(This) (This)->lpVtbl->GetSoftwareVertexProcessing(This) +#define IWineD3DDevice_SetStreamSource(This,stream_idx,buffer,offset,stride) (This)->lpVtbl->SetStreamSource(This,stream_idx,buffer,offset,stride) +#define IWineD3DDevice_GetStreamSource(This,stream_idx,buffer,offset,stride) (This)->lpVtbl->GetStreamSource(This,stream_idx,buffer,offset,stride) +#define IWineD3DDevice_SetStreamSourceFreq(This,stream_idx,divider) (This)->lpVtbl->SetStreamSourceFreq(This,stream_idx,divider) +#define IWineD3DDevice_GetStreamSourceFreq(This,stream_idx,divider) (This)->lpVtbl->GetStreamSourceFreq(This,stream_idx,divider) +#define IWineD3DDevice_SetTexture(This,stage,texture) (This)->lpVtbl->SetTexture(This,stage,texture) +#define IWineD3DDevice_GetTexture(This,stage,texture) (This)->lpVtbl->GetTexture(This,stage,texture) +#define IWineD3DDevice_SetTextureStageState(This,stage,state,value) (This)->lpVtbl->SetTextureStageState(This,stage,state,value) +#define IWineD3DDevice_GetTextureStageState(This,stage,state,value) (This)->lpVtbl->GetTextureStageState(This,stage,state,value) +#define IWineD3DDevice_SetTransform(This,state,matrix) (This)->lpVtbl->SetTransform(This,state,matrix) +#define IWineD3DDevice_GetTransform(This,state,matrix) (This)->lpVtbl->GetTransform(This,state,matrix) +#define IWineD3DDevice_SetVertexDeclaration(This,declaration) (This)->lpVtbl->SetVertexDeclaration(This,declaration) +#define IWineD3DDevice_GetVertexDeclaration(This,declaration) (This)->lpVtbl->GetVertexDeclaration(This,declaration) +#define IWineD3DDevice_SetVertexShader(This,shader) (This)->lpVtbl->SetVertexShader(This,shader) +#define IWineD3DDevice_GetVertexShader(This,shader) (This)->lpVtbl->GetVertexShader(This,shader) +#define IWineD3DDevice_SetVertexShaderConstantB(This,start_register,constants,bool_count) (This)->lpVtbl->SetVertexShaderConstantB(This,start_register,constants,bool_count) +#define IWineD3DDevice_GetVertexShaderConstantB(This,start_register,constants,bool_count) (This)->lpVtbl->GetVertexShaderConstantB(This,start_register,constants,bool_count) +#define IWineD3DDevice_SetVertexShaderConstantI(This,start_register,constants,vector4i_count) (This)->lpVtbl->SetVertexShaderConstantI(This,start_register,constants,vector4i_count) +#define IWineD3DDevice_GetVertexShaderConstantI(This,start_register,constants,vector4i_count) (This)->lpVtbl->GetVertexShaderConstantI(This,start_register,constants,vector4i_count) +#define IWineD3DDevice_SetVertexShaderConstantF(This,start_register,constants,vector4f_count) (This)->lpVtbl->SetVertexShaderConstantF(This,start_register,constants,vector4f_count) +#define IWineD3DDevice_GetVertexShaderConstantF(This,start_register,constants,vector4f_count) (This)->lpVtbl->GetVertexShaderConstantF(This,start_register,constants,vector4f_count) +#define IWineD3DDevice_SetViewport(This,viewport) (This)->lpVtbl->SetViewport(This,viewport) +#define IWineD3DDevice_GetViewport(This,viewport) (This)->lpVtbl->GetViewport(This,viewport) +#define IWineD3DDevice_MultiplyTransform(This,state,matrix) (This)->lpVtbl->MultiplyTransform(This,state,matrix) +#define IWineD3DDevice_ValidateDevice(This,num_passes) (This)->lpVtbl->ValidateDevice(This,num_passes) +#define IWineD3DDevice_ProcessVertices(This,src_start_idx,dst_idx,vertex_count,dest_buffer,declaration,flags,DestFVF) (This)->lpVtbl->ProcessVertices(This,src_start_idx,dst_idx,vertex_count,dest_buffer,declaration,flags,DestFVF) +#define IWineD3DDevice_BeginStateBlock(This) (This)->lpVtbl->BeginStateBlock(This) +#define IWineD3DDevice_EndStateBlock(This,stateblock) (This)->lpVtbl->EndStateBlock(This,stateblock) +#define IWineD3DDevice_BeginScene(This) (This)->lpVtbl->BeginScene(This) +#define IWineD3DDevice_EndScene(This) (This)->lpVtbl->EndScene(This) +#define IWineD3DDevice_Present(This,src_rect,dst_rect,dst_window_override,dirty_region) (This)->lpVtbl->Present(This,src_rect,dst_rect,dst_window_override,dirty_region) +#define IWineD3DDevice_Clear(This,rect_count,rects,flags,color,z,stencil) (This)->lpVtbl->Clear(This,rect_count,rects,flags,color,z,stencil) +#define IWineD3DDevice_ClearRendertargetView(This,rendertarget_view,color) (This)->lpVtbl->ClearRendertargetView(This,rendertarget_view,color) +#define IWineD3DDevice_SetPrimitiveType(This,primitive_topology) (This)->lpVtbl->SetPrimitiveType(This,primitive_topology) +#define IWineD3DDevice_GetPrimitiveType(This,primitive_topology) (This)->lpVtbl->GetPrimitiveType(This,primitive_topology) +#define IWineD3DDevice_DrawPrimitive(This,start_vertex,vertex_count) (This)->lpVtbl->DrawPrimitive(This,start_vertex,vertex_count) +#define IWineD3DDevice_DrawIndexedPrimitive(This,start_idx,index_count) (This)->lpVtbl->DrawIndexedPrimitive(This,start_idx,index_count) +#define IWineD3DDevice_DrawPrimitiveUP(This,vertex_count,stream_data,stream_stride) (This)->lpVtbl->DrawPrimitiveUP(This,vertex_count,stream_data,stream_stride) +#define IWineD3DDevice_DrawIndexedPrimitiveUP(This,index_count,index_data,index_data_format,stream_data,stream_stride) (This)->lpVtbl->DrawIndexedPrimitiveUP(This,index_count,index_data,index_data_format,stream_data,stream_stride) +#define IWineD3DDevice_DrawPrimitiveStrided(This,vertex_count,strided_data) (This)->lpVtbl->DrawPrimitiveStrided(This,vertex_count,strided_data) +#define IWineD3DDevice_DrawIndexedPrimitiveStrided(This,index_count,strided_data,vertex_count,index_data,index_data_format) (This)->lpVtbl->DrawIndexedPrimitiveStrided(This,index_count,strided_data,vertex_count,index_data,index_data_format) +#define IWineD3DDevice_DrawRectPatch(This,handle,num_segs,rect_patch_info) (This)->lpVtbl->DrawRectPatch(This,handle,num_segs,rect_patch_info) +#define IWineD3DDevice_DrawTriPatch(This,handle,num_segs,tri_patch_info) (This)->lpVtbl->DrawTriPatch(This,handle,num_segs,tri_patch_info) +#define IWineD3DDevice_DeletePatch(This,handle) (This)->lpVtbl->DeletePatch(This,handle) +#define IWineD3DDevice_ColorFill(This,surface,rect,color) (This)->lpVtbl->ColorFill(This,surface,rect,color) +#define IWineD3DDevice_UpdateTexture(This,src_texture,dst_texture) (This)->lpVtbl->UpdateTexture(This,src_texture,dst_texture) +#define IWineD3DDevice_UpdateSurface(This,src_surface,src_rect,dst_surface,dst_point) (This)->lpVtbl->UpdateSurface(This,src_surface,src_rect,dst_surface,dst_point) +#define IWineD3DDevice_GetFrontBufferData(This,swapchain_idx,dst_surface) (This)->lpVtbl->GetFrontBufferData(This,swapchain_idx,dst_surface) +#define IWineD3DDevice_EnumResources(This,callback,data) (This)->lpVtbl->EnumResources(This,callback,data) +#define IWineD3DDevice_GetSurfaceFromDC(This,dc,surface) (This)->lpVtbl->GetSurfaceFromDC(This,dc,surface) +#define IWineD3DDevice_AcquireFocusWindow(This,window) (This)->lpVtbl->AcquireFocusWindow(This,window) +#define IWineD3DDevice_ReleaseFocusWindow(This) (This)->lpVtbl->ReleaseFocusWindow(This) +#define IWineD3DDevice_AddSwapChain(This,swapchain) (This)->lpVtbl->AddSwapChain(This,swapchain) +#define IWineD3DDevice_RemoveSwapChain(This,swapchain) (This)->lpVtbl->RemoveSwapChain(This,swapchain) +#ifdef VBOX_WITH_WDDM +#define IWineD3DDevice_Flush(This) (This)->lpVtbl->Flush(This) +#define IWineD3DDevice_VolBlt(This, pSourceVolume, pDestinationVolume, pSrcBoxArg, pDstPoin3D) (This)->lpVtbl->VolBlt(This, pSourceVolume, pDestinationVolume, pSrcBoxArg, pDstPoin3D) +#define IWineD3DDevice_VolTexBlt(This, pSourceTexture, pDestinationTexture, pSrcBoxArg, pDstPoin3D) (This)->lpVtbl->VolTexBlt(This, pSourceTexture, pDestinationTexture, pSrcBoxArg, pDstPoin3D) +#define IWineD3DDevice_FlushToHost(This) (This)->lpVtbl->FlushToHost(This) +#define IWineD3DDevice_Finish(This) (This)->lpVtbl->Finish(This) +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateBuffer_Proxy( + IWineD3DDevice* This, + struct wined3d_buffer_desc *desc, + const void *data, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + IWineD3DBuffer **buffer); +void __RPC_STUB IWineD3DDevice_CreateBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateVertexBuffer_Proxy( + IWineD3DDevice* This, + UINT length, + DWORD usage, + WINED3DPOOL pool, + IWineD3DBuffer **vertex_buffer, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateVertexBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateIndexBuffer_Proxy( + IWineD3DDevice* This, + UINT length, + DWORD usage, + WINED3DPOOL pool, + IWineD3DBuffer **index_buffer, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateIndexBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateStateBlock_Proxy( + IWineD3DDevice* This, + WINED3DSTATEBLOCKTYPE type, + IWineD3DStateBlock **stateblock, + IUnknown *parent); +void __RPC_STUB IWineD3DDevice_CreateStateBlock_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateSurface_Proxy( + IWineD3DDevice* This, + UINT width, + UINT height, + WINED3DFORMAT format, + BOOL lockable, + BOOL discard, + UINT level, + IWineD3DSurface **surface, + DWORD usage, + WINED3DPOOL pool, + WINED3DMULTISAMPLE_TYPE multisample_type, + DWORD multisample_quality, + WINED3DSURFTYPE surface_type, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateRendertargetView_Proxy( + IWineD3DDevice* This, + IWineD3DResource *resource, + IUnknown *parent, + IWineD3DRendertargetView **rendertarget_view); +void __RPC_STUB IWineD3DDevice_CreateRendertargetView_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateTexture_Proxy( + IWineD3DDevice* This, + UINT width, + UINT height, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateVolumeTexture_Proxy( + IWineD3DDevice* This, + UINT width, + UINT height, + UINT depth, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DVolumeTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateVolumeTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateVolume_Proxy( + IWineD3DDevice* This, + UINT width, + UINT height, + UINT depth, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DVolume **volume, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateVolume_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateCubeTexture_Proxy( + IWineD3DDevice* This, + UINT edge_length, + UINT levels, + DWORD usage, + WINED3DFORMAT format, + WINED3DPOOL pool, + IWineD3DCubeTexture **texture, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateCubeTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateQuery_Proxy( + IWineD3DDevice* This, + WINED3DQUERYTYPE type, + IWineD3DQuery **query, + IUnknown *parent); +void __RPC_STUB IWineD3DDevice_CreateQuery_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateSwapChain_Proxy( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters, + IWineD3DSwapChain **swapchain, + IUnknown *parent, + WINED3DSURFTYPE surface_type); +void __RPC_STUB IWineD3DDevice_CreateSwapChain_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateVertexDeclaration_Proxy( + IWineD3DDevice* This, + IWineD3DVertexDeclaration **declaration, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + const WINED3DVERTEXELEMENT *elements, + UINT element_count); +void __RPC_STUB IWineD3DDevice_CreateVertexDeclaration_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateVertexDeclarationFromFVF_Proxy( + IWineD3DDevice* This, + IWineD3DVertexDeclaration **declaration, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops, + DWORD fvf); +void __RPC_STUB IWineD3DDevice_CreateVertexDeclarationFromFVF_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateVertexShader_Proxy( + IWineD3DDevice* This, + const DWORD *function, + const struct wined3d_shader_signature *output_signature, + IWineD3DVertexShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateVertexShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreateGeometryShader_Proxy( + IWineD3DDevice* This, + const DWORD *byte_code, + const struct wined3d_shader_signature *output_signature, + IWineD3DGeometryShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreateGeometryShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreatePixelShader_Proxy( + IWineD3DDevice* This, + const DWORD *function, + const struct wined3d_shader_signature *output_signature, + IWineD3DPixelShader **shader, + IUnknown *parent, + const struct wined3d_parent_ops *parent_ops); +void __RPC_STUB IWineD3DDevice_CreatePixelShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_CreatePalette_Proxy( + IWineD3DDevice* This, + DWORD flags, + const PALETTEENTRY *palette_entry, + IWineD3DPalette **palette, + IUnknown *parent); +void __RPC_STUB IWineD3DDevice_CreatePalette_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_Init3D_Proxy( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters); +void __RPC_STUB IWineD3DDevice_Init3D_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_InitGDI_Proxy( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters); +void __RPC_STUB IWineD3DDevice_InitGDI_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_Uninit3D_Proxy( + IWineD3DDevice* This, + ULONG (STDMETHODCALLTYPE * destroy_swapchain_callback)(IWineD3DSwapChain *pSwapChain)); +void __RPC_STUB IWineD3DDevice_Uninit3D_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_UninitGDI_Proxy( + IWineD3DDevice* This, + ULONG (STDMETHODCALLTYPE * destroy_swapchain_callback)(IWineD3DSwapChain *pSwapChain)); +void __RPC_STUB IWineD3DDevice_UninitGDI_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_SetMultithreaded_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_SetMultithreaded_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_EvictManagedResources_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_EvictManagedResources_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +UINT STDMETHODCALLTYPE IWineD3DDevice_GetAvailableTextureMem_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_GetAvailableTextureMem_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetBackBuffer_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + UINT backbuffer_idx, + WINED3DBACKBUFFER_TYPE backbuffer_type, + IWineD3DSurface **backbuffer); +void __RPC_STUB IWineD3DDevice_GetBackBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetCreationParameters_Proxy( + IWineD3DDevice* This, + WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters); +void __RPC_STUB IWineD3DDevice_GetCreationParameters_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetDeviceCaps_Proxy( + IWineD3DDevice* This, + WINED3DCAPS *caps); +void __RPC_STUB IWineD3DDevice_GetDeviceCaps_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetDirect3D_Proxy( + IWineD3DDevice* This, + IWineD3D **d3d); +void __RPC_STUB IWineD3DDevice_GetDirect3D_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetDisplayMode_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + WINED3DDISPLAYMODE *mode); +void __RPC_STUB IWineD3DDevice_GetDisplayMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetDisplayMode_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + const WINED3DDISPLAYMODE *mode); +void __RPC_STUB IWineD3DDevice_SetDisplayMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +UINT STDMETHODCALLTYPE IWineD3DDevice_GetNumberOfSwapChains_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_GetNumberOfSwapChains_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetRasterStatus_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + WINED3DRASTER_STATUS *raster_status); +void __RPC_STUB IWineD3DDevice_GetRasterStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetSwapChain_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + IWineD3DSwapChain **swapchain); +void __RPC_STUB IWineD3DDevice_GetSwapChain_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_Reset_Proxy( + IWineD3DDevice* This, + WINED3DPRESENT_PARAMETERS *present_parameters); +void __RPC_STUB IWineD3DDevice_Reset_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetDialogBoxMode_Proxy( + IWineD3DDevice* This, + BOOL enable_dialogs); +void __RPC_STUB IWineD3DDevice_SetDialogBoxMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetCursorProperties_Proxy( + IWineD3DDevice* This, + UINT x_hotspot, + UINT y_hotspot, + IWineD3DSurface *cursor_surface); +void __RPC_STUB IWineD3DDevice_SetCursorProperties_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_SetCursorPosition_Proxy( + IWineD3DDevice* This, + int x_screen_space, + int y_screen_space, + DWORD flags); +void __RPC_STUB IWineD3DDevice_SetCursorPosition_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +BOOL STDMETHODCALLTYPE IWineD3DDevice_ShowCursor_Proxy( + IWineD3DDevice* This, + BOOL show); +void __RPC_STUB IWineD3DDevice_ShowCursor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetClipPlane_Proxy( + IWineD3DDevice* This, + DWORD plane_idx, + const float *plane); +void __RPC_STUB IWineD3DDevice_SetClipPlane_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetClipPlane_Proxy( + IWineD3DDevice* This, + DWORD plane_idx, + float *plane); +void __RPC_STUB IWineD3DDevice_GetClipPlane_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetClipStatus_Proxy( + IWineD3DDevice* This, + const WINED3DCLIPSTATUS *clip_status); +void __RPC_STUB IWineD3DDevice_SetClipStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetClipStatus_Proxy( + IWineD3DDevice* This, + WINED3DCLIPSTATUS *clip_status); +void __RPC_STUB IWineD3DDevice_GetClipStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetCurrentTexturePalette_Proxy( + IWineD3DDevice* This, + UINT palette_number); +void __RPC_STUB IWineD3DDevice_SetCurrentTexturePalette_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetCurrentTexturePalette_Proxy( + IWineD3DDevice* This, + UINT *palette_number); +void __RPC_STUB IWineD3DDevice_GetCurrentTexturePalette_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetDepthStencilSurface_Proxy( + IWineD3DDevice* This, + IWineD3DSurface *depth_stencil); +void __RPC_STUB IWineD3DDevice_SetDepthStencilSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetDepthStencilSurface_Proxy( + IWineD3DDevice* This, + IWineD3DSurface **depth_stencil); +void __RPC_STUB IWineD3DDevice_GetDepthStencilSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_SetGammaRamp_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + DWORD flags, + const WINED3DGAMMARAMP *ramp); +void __RPC_STUB IWineD3DDevice_SetGammaRamp_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_GetGammaRamp_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + WINED3DGAMMARAMP *ramp); +void __RPC_STUB IWineD3DDevice_GetGammaRamp_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetIndexBuffer_Proxy( + IWineD3DDevice* This, + IWineD3DBuffer *index_buffer, + WINED3DFORMAT format); +void __RPC_STUB IWineD3DDevice_SetIndexBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetIndexBuffer_Proxy( + IWineD3DDevice* This, + IWineD3DBuffer **index_buffer); +void __RPC_STUB IWineD3DDevice_GetIndexBuffer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetBaseVertexIndex_Proxy( + IWineD3DDevice* This, + INT base_index); +void __RPC_STUB IWineD3DDevice_SetBaseVertexIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetBaseVertexIndex_Proxy( + IWineD3DDevice* This, + INT *base_index); +void __RPC_STUB IWineD3DDevice_GetBaseVertexIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetLight_Proxy( + IWineD3DDevice* This, + DWORD light_idx, + const WINED3DLIGHT *light); +void __RPC_STUB IWineD3DDevice_SetLight_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetLight_Proxy( + IWineD3DDevice* This, + DWORD light_idx, + WINED3DLIGHT *light); +void __RPC_STUB IWineD3DDevice_GetLight_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetLightEnable_Proxy( + IWineD3DDevice* This, + DWORD light_idx, + BOOL enable); +void __RPC_STUB IWineD3DDevice_SetLightEnable_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetLightEnable_Proxy( + IWineD3DDevice* This, + DWORD light_idx, + BOOL *enable); +void __RPC_STUB IWineD3DDevice_GetLightEnable_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetMaterial_Proxy( + IWineD3DDevice* This, + const WINED3DMATERIAL *material); +void __RPC_STUB IWineD3DDevice_SetMaterial_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetMaterial_Proxy( + IWineD3DDevice* This, + WINED3DMATERIAL *material); +void __RPC_STUB IWineD3DDevice_GetMaterial_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetNPatchMode_Proxy( + IWineD3DDevice* This, + float segments); +void __RPC_STUB IWineD3DDevice_SetNPatchMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +float STDMETHODCALLTYPE IWineD3DDevice_GetNPatchMode_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_GetNPatchMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetPaletteEntries_Proxy( + IWineD3DDevice* This, + UINT palette_number, + const PALETTEENTRY *entries); +void __RPC_STUB IWineD3DDevice_SetPaletteEntries_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetPaletteEntries_Proxy( + IWineD3DDevice* This, + UINT palette_number, + PALETTEENTRY *entries); +void __RPC_STUB IWineD3DDevice_GetPaletteEntries_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetPixelShader_Proxy( + IWineD3DDevice* This, + IWineD3DPixelShader *shader); +void __RPC_STUB IWineD3DDevice_SetPixelShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetPixelShader_Proxy( + IWineD3DDevice* This, + IWineD3DPixelShader **shader); +void __RPC_STUB IWineD3DDevice_GetPixelShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetPixelShaderConstantB_Proxy( + IWineD3DDevice* This, + UINT start_register, + const BOOL *constants, + UINT bool_count); +void __RPC_STUB IWineD3DDevice_SetPixelShaderConstantB_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetPixelShaderConstantB_Proxy( + IWineD3DDevice* This, + UINT start_register, + BOOL *constants, + UINT bool_count); +void __RPC_STUB IWineD3DDevice_GetPixelShaderConstantB_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetPixelShaderConstantI_Proxy( + IWineD3DDevice* This, + UINT start_register, + const int *constants, + UINT vector4i_count); +void __RPC_STUB IWineD3DDevice_SetPixelShaderConstantI_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetPixelShaderConstantI_Proxy( + IWineD3DDevice* This, + UINT start_register, + int *constants, + UINT vector4i_count); +void __RPC_STUB IWineD3DDevice_GetPixelShaderConstantI_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetPixelShaderConstantF_Proxy( + IWineD3DDevice* This, + UINT start_register, + const float *constants, + UINT vector4f_count); +void __RPC_STUB IWineD3DDevice_SetPixelShaderConstantF_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetPixelShaderConstantF_Proxy( + IWineD3DDevice* This, + UINT start_register, + float *constants, + UINT vector4f_count); +void __RPC_STUB IWineD3DDevice_GetPixelShaderConstantF_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetRenderState_Proxy( + IWineD3DDevice* This, + WINED3DRENDERSTATETYPE state, + DWORD value); +void __RPC_STUB IWineD3DDevice_SetRenderState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetRenderState_Proxy( + IWineD3DDevice* This, + WINED3DRENDERSTATETYPE state, + DWORD *value); +void __RPC_STUB IWineD3DDevice_GetRenderState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetRenderTarget_Proxy( + IWineD3DDevice* This, + DWORD render_target_idx, + IWineD3DSurface *render_target, + BOOL set_viewport); +void __RPC_STUB IWineD3DDevice_SetRenderTarget_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetRenderTarget_Proxy( + IWineD3DDevice* This, + DWORD render_target_idx, + IWineD3DSurface **render_target); +void __RPC_STUB IWineD3DDevice_GetRenderTarget_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetFrontBackBuffers_Proxy( + IWineD3DDevice* This, + IWineD3DSurface *front, + IWineD3DSurface *back); +void __RPC_STUB IWineD3DDevice_SetFrontBackBuffers_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetSamplerState_Proxy( + IWineD3DDevice* This, + DWORD sampler_idx, + WINED3DSAMPLERSTATETYPE state, + DWORD value); +void __RPC_STUB IWineD3DDevice_SetSamplerState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetSamplerState_Proxy( + IWineD3DDevice* This, + DWORD sampler_idx, + WINED3DSAMPLERSTATETYPE state, + DWORD *value); +void __RPC_STUB IWineD3DDevice_GetSamplerState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetScissorRect_Proxy( + IWineD3DDevice* This, + const RECT *rect); +void __RPC_STUB IWineD3DDevice_SetScissorRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetScissorRect_Proxy( + IWineD3DDevice* This, + RECT *rect); +void __RPC_STUB IWineD3DDevice_GetScissorRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetSoftwareVertexProcessing_Proxy( + IWineD3DDevice* This, + BOOL software); +void __RPC_STUB IWineD3DDevice_SetSoftwareVertexProcessing_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +BOOL STDMETHODCALLTYPE IWineD3DDevice_GetSoftwareVertexProcessing_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_GetSoftwareVertexProcessing_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetStreamSource_Proxy( + IWineD3DDevice* This, + UINT stream_idx, + IWineD3DBuffer *buffer, + UINT offset, + UINT stride); +void __RPC_STUB IWineD3DDevice_SetStreamSource_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetStreamSource_Proxy( + IWineD3DDevice* This, + UINT stream_idx, + IWineD3DBuffer **buffer, + UINT *offset, + UINT *stride); +void __RPC_STUB IWineD3DDevice_GetStreamSource_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetStreamSourceFreq_Proxy( + IWineD3DDevice* This, + UINT stream_idx, + UINT divider); +void __RPC_STUB IWineD3DDevice_SetStreamSourceFreq_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetStreamSourceFreq_Proxy( + IWineD3DDevice* This, + UINT stream_idx, + UINT *divider); +void __RPC_STUB IWineD3DDevice_GetStreamSourceFreq_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetTexture_Proxy( + IWineD3DDevice* This, + DWORD stage, + IWineD3DBaseTexture *texture); +void __RPC_STUB IWineD3DDevice_SetTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetTexture_Proxy( + IWineD3DDevice* This, + DWORD stage, + IWineD3DBaseTexture **texture); +void __RPC_STUB IWineD3DDevice_GetTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetTextureStageState_Proxy( + IWineD3DDevice* This, + DWORD stage, + WINED3DTEXTURESTAGESTATETYPE state, + DWORD value); +void __RPC_STUB IWineD3DDevice_SetTextureStageState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetTextureStageState_Proxy( + IWineD3DDevice* This, + DWORD stage, + WINED3DTEXTURESTAGESTATETYPE state, + DWORD *value); +void __RPC_STUB IWineD3DDevice_GetTextureStageState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetTransform_Proxy( + IWineD3DDevice* This, + WINED3DTRANSFORMSTATETYPE state, + const WINED3DMATRIX *matrix); +void __RPC_STUB IWineD3DDevice_SetTransform_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetTransform_Proxy( + IWineD3DDevice* This, + WINED3DTRANSFORMSTATETYPE state, + WINED3DMATRIX *matrix); +void __RPC_STUB IWineD3DDevice_GetTransform_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetVertexDeclaration_Proxy( + IWineD3DDevice* This, + IWineD3DVertexDeclaration *declaration); +void __RPC_STUB IWineD3DDevice_SetVertexDeclaration_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetVertexDeclaration_Proxy( + IWineD3DDevice* This, + IWineD3DVertexDeclaration **declaration); +void __RPC_STUB IWineD3DDevice_GetVertexDeclaration_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetVertexShader_Proxy( + IWineD3DDevice* This, + IWineD3DVertexShader *shader); +void __RPC_STUB IWineD3DDevice_SetVertexShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetVertexShader_Proxy( + IWineD3DDevice* This, + IWineD3DVertexShader **shader); +void __RPC_STUB IWineD3DDevice_GetVertexShader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetVertexShaderConstantB_Proxy( + IWineD3DDevice* This, + UINT start_register, + const BOOL *constants, + UINT bool_count); +void __RPC_STUB IWineD3DDevice_SetVertexShaderConstantB_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetVertexShaderConstantB_Proxy( + IWineD3DDevice* This, + UINT start_register, + BOOL *constants, + UINT bool_count); +void __RPC_STUB IWineD3DDevice_GetVertexShaderConstantB_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetVertexShaderConstantI_Proxy( + IWineD3DDevice* This, + UINT start_register, + const int *constants, + UINT vector4i_count); +void __RPC_STUB IWineD3DDevice_SetVertexShaderConstantI_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetVertexShaderConstantI_Proxy( + IWineD3DDevice* This, + UINT start_register, + int *constants, + UINT vector4i_count); +void __RPC_STUB IWineD3DDevice_GetVertexShaderConstantI_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetVertexShaderConstantF_Proxy( + IWineD3DDevice* This, + UINT start_register, + const float *constants, + UINT vector4f_count); +void __RPC_STUB IWineD3DDevice_SetVertexShaderConstantF_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetVertexShaderConstantF_Proxy( + IWineD3DDevice* This, + UINT start_register, + float *constants, + UINT vector4f_count); +void __RPC_STUB IWineD3DDevice_GetVertexShaderConstantF_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_SetViewport_Proxy( + IWineD3DDevice* This, + const WINED3DVIEWPORT *viewport); +void __RPC_STUB IWineD3DDevice_SetViewport_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetViewport_Proxy( + IWineD3DDevice* This, + WINED3DVIEWPORT *viewport); +void __RPC_STUB IWineD3DDevice_GetViewport_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_MultiplyTransform_Proxy( + IWineD3DDevice* This, + WINED3DTRANSFORMSTATETYPE state, + const WINED3DMATRIX *matrix); +void __RPC_STUB IWineD3DDevice_MultiplyTransform_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_ValidateDevice_Proxy( + IWineD3DDevice* This, + DWORD *num_passes); +void __RPC_STUB IWineD3DDevice_ValidateDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_ProcessVertices_Proxy( + IWineD3DDevice* This, + UINT src_start_idx, + UINT dst_idx, + UINT vertex_count, + IWineD3DBuffer *dest_buffer, + IWineD3DVertexDeclaration *declaration, + DWORD flags, + DWORD DestFVF); +void __RPC_STUB IWineD3DDevice_ProcessVertices_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_BeginStateBlock_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_BeginStateBlock_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_EndStateBlock_Proxy( + IWineD3DDevice* This, + IWineD3DStateBlock **stateblock); +void __RPC_STUB IWineD3DDevice_EndStateBlock_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_BeginScene_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_BeginScene_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_EndScene_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_EndScene_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_Present_Proxy( + IWineD3DDevice* This, + const RECT *src_rect, + const RECT *dst_rect, + HWND dst_window_override, + const RGNDATA *dirty_region); +void __RPC_STUB IWineD3DDevice_Present_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_Clear_Proxy( + IWineD3DDevice* This, + DWORD rect_count, + const WINED3DRECT *rects, + DWORD flags, + WINED3DCOLOR color, + float z, + DWORD stencil); +void __RPC_STUB IWineD3DDevice_Clear_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_ClearRendertargetView_Proxy( + IWineD3DDevice* This, + IWineD3DRendertargetView *rendertarget_view, + const float color[4]); +void __RPC_STUB IWineD3DDevice_ClearRendertargetView_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_SetPrimitiveType_Proxy( + IWineD3DDevice* This, + WINED3DPRIMITIVETYPE primitive_topology); +void __RPC_STUB IWineD3DDevice_SetPrimitiveType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_GetPrimitiveType_Proxy( + IWineD3DDevice* This, + WINED3DPRIMITIVETYPE *primitive_topology); +void __RPC_STUB IWineD3DDevice_GetPrimitiveType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawPrimitive_Proxy( + IWineD3DDevice* This, + UINT start_vertex, + UINT vertex_count); +void __RPC_STUB IWineD3DDevice_DrawPrimitive_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawIndexedPrimitive_Proxy( + IWineD3DDevice* This, + UINT start_idx, + UINT index_count); +void __RPC_STUB IWineD3DDevice_DrawIndexedPrimitive_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawPrimitiveUP_Proxy( + IWineD3DDevice* This, + UINT vertex_count, + const void *stream_data, + UINT stream_stride); +void __RPC_STUB IWineD3DDevice_DrawPrimitiveUP_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawIndexedPrimitiveUP_Proxy( + IWineD3DDevice* This, + UINT index_count, + const void *index_data, + WINED3DFORMAT index_data_format, + const void *stream_data, + UINT stream_stride); +void __RPC_STUB IWineD3DDevice_DrawIndexedPrimitiveUP_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawPrimitiveStrided_Proxy( + IWineD3DDevice* This, + UINT vertex_count, + const WineDirect3DVertexStridedData *strided_data); +void __RPC_STUB IWineD3DDevice_DrawPrimitiveStrided_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawIndexedPrimitiveStrided_Proxy( + IWineD3DDevice* This, + UINT index_count, + const WineDirect3DVertexStridedData *strided_data, + UINT vertex_count, + const void *index_data, + WINED3DFORMAT index_data_format); +void __RPC_STUB IWineD3DDevice_DrawIndexedPrimitiveStrided_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawRectPatch_Proxy( + IWineD3DDevice* This, + UINT handle, + const float *num_segs, + const WINED3DRECTPATCH_INFO *rect_patch_info); +void __RPC_STUB IWineD3DDevice_DrawRectPatch_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DrawTriPatch_Proxy( + IWineD3DDevice* This, + UINT handle, + const float *num_segs, + const WINED3DTRIPATCH_INFO *tri_patch_info); +void __RPC_STUB IWineD3DDevice_DrawTriPatch_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_DeletePatch_Proxy( + IWineD3DDevice* This, + UINT handle); +void __RPC_STUB IWineD3DDevice_DeletePatch_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_ColorFill_Proxy( + IWineD3DDevice* This, + IWineD3DSurface *surface, + const WINED3DRECT *rect, + WINED3DCOLOR color); +void __RPC_STUB IWineD3DDevice_ColorFill_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_UpdateTexture_Proxy( + IWineD3DDevice* This, + IWineD3DBaseTexture *src_texture, + IWineD3DBaseTexture *dst_texture); +void __RPC_STUB IWineD3DDevice_UpdateTexture_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_UpdateSurface_Proxy( + IWineD3DDevice* This, + IWineD3DSurface *src_surface, + const RECT *src_rect, + IWineD3DSurface *dst_surface, + const POINT *dst_point); +void __RPC_STUB IWineD3DDevice_UpdateSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetFrontBufferData_Proxy( + IWineD3DDevice* This, + UINT swapchain_idx, + IWineD3DSurface *dst_surface); +void __RPC_STUB IWineD3DDevice_GetFrontBufferData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_EnumResources_Proxy( + IWineD3DDevice* This, + HRESULT (STDMETHODCALLTYPE * callback)(IWineD3DResource *resource,void *pData), + void *data); +void __RPC_STUB IWineD3DDevice_EnumResources_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_GetSurfaceFromDC_Proxy( + IWineD3DDevice* This, + HDC dc, + IWineD3DSurface **surface); +void __RPC_STUB IWineD3DDevice_GetSurfaceFromDC_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IWineD3DDevice_AcquireFocusWindow_Proxy( + IWineD3DDevice* This, + HWND window); +void __RPC_STUB IWineD3DDevice_AcquireFocusWindow_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void STDMETHODCALLTYPE IWineD3DDevice_ReleaseFocusWindow_Proxy( + IWineD3DDevice* This); +void __RPC_STUB IWineD3DDevice_ReleaseFocusWindow_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWineD3DDevice_INTERFACE_DEFINED__ */ + +IWineD3D * STDMETHODCALLTYPE WineDirect3DCreate(UINT dxVersion,IUnknown *parent); + +IWineD3DClipper * STDMETHODCALLTYPE WineDirect3DCreateClipper(IUnknown *parent); + +#ifdef VBOX_WINE_NO_LOCK +#define wined3d_mutex_lock() do {} while (0) +#define wined3d_mutex_unlock() do {} while (0) +#else +void STDMETHODCALLTYPE wined3d_mutex_lock(void); + +void STDMETHODCALLTYPE wined3d_mutex_unlock(void); +#endif +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __WIDL_WINED3D_H */ |