diff --git a/.gitmodules b/.gitmodules index 824082a7dca..5260e3184ed 100644 --- a/.gitmodules +++ b/.gitmodules @@ -59,3 +59,16 @@ path = piper url = https://github.com/shaunren/piper.git branch = library +[submodule "openfst"] + path = openfst + url = https://github.com/alphacep/openfst +[submodule "kaldi"] + path = kaldi + url = https://github.com/alphacep/kaldi + branch = vosk +[submodule "vosk-api"] + path = vosk-api + url = https://github.com/alphacep/vosk-api +[submodule "FEX"] + path = FEX + url = https://github.com/FEX-Emu/FEX/ diff --git a/FEX b/FEX new file mode 160000 index 00000000000..9fe5eb1979f --- /dev/null +++ b/FEX @@ -0,0 +1 @@ +Subproject commit 9fe5eb1979ffc4ce4a399367b3c3eb9b4a1afed5 diff --git a/FEX_Config.json b/FEX_Config.json new file mode 100755 index 00000000000..f088cfa420f --- /dev/null +++ b/FEX_Config.json @@ -0,0 +1,12 @@ +{ + "Config": { + "ProfileStats": "1", + "X87ReducedPrecision": "1", + "TSOEnabled": "1", + "VectorTSOEnabled": "0", + "MemcpySetTSOEnabled": "0", + "HalfBarrierTSOEnabled":"1", + "MaxInst": "500", + "Multiblock": "1" + } +} diff --git a/Makefile.in b/Makefile.in index 38b52a3af7f..51f868a7568 100644 --- a/Makefile.in +++ b/Makefile.in @@ -24,7 +24,7 @@ SHELL := /bin/bash # BUILD_NAME - Name of the build for manifests etc. # STEAMRT_IMAGE - Name of the docker image to use for building -STEAMRT_IMAGE ?= registry.gitlab.steamos.cloud/proton/sniper/sdk:3.0.20250210.116596-0 +STEAMRT_IMAGE ?= registry.gitlab.steamos.cloud/proton/sniper/sdk:3.0.20250519.130773-0 ifeq ($(SRCDIR),) foo := $(error SRCDIR not set, do not include Makefile.in directly, run ./configure.sh to generate Makefile) endif @@ -37,24 +37,14 @@ DST_BASE := $(OBJ)/dist DST_DIR := $(DST_BASE)/files DST_LIBDIR := $(DST_DIR)/lib DIST_PREFIX := $(DST_DIR)/share/default_pfx/ +DIST_PREFIX_ARM64 := $(DST_DIR)/share/default_pfx_arm64/ DIST_VERSION := $(DST_BASE)/version DEPLOY_DIR := ./deploy REDIST_DIR := ./redist -ifneq ($(UNSTRIPPED_BUILD),) - STRIP := - INSTALL_PROGRAM_FLAGS := - MESON_STRIP_ARG := -else - STRIP := strip - INSTALL_PROGRAM_FLAGS := -s - MESON_STRIP_ARG := --strip -endif - -OBJCOPY_FLAGS := -p - i386_CFLAGS := -mstackrealign -march=nocona -mtune=core-avx2 -mfpmath=sse x86_64_CFLAGS := -mcmodel=small -march=nocona -mtune=core-avx2 -mfpmath=sse +aarch64_CFLAGS := -march=armv8.2-a -mtune=cortex-x3 CFLAGS = -O2 -fwrapv -fno-strict-aliasing CFLAGS += -ggdb -ffunction-sections -fdata-sections -fno-omit-frame-pointer @@ -74,14 +64,54 @@ $(DST_DIR): mkdir -p $@ ifeq ($(CONTAINER),1) # inside the container -ARCHS := i386-unix x86_64-unix i386-windows x86_64-windows HOST_ARCH := $(shell uname -m) +ARCHS := i386-windows x86_64-windows + +TARGET_ARCH ?= x86_64 + +ifeq ($(TARGET_ARCH),x86_64) + ARCHS += i386-unix x86_64-unix +else ifeq ($(TARGET_ARCH),arm64) + ARCHS += aarch64-unix aarch64-windows +else + ARCHS := $(error Unknown TARGET_ARCH=$(TARGET_ARCH)) +endif + unix_ARCHS = $(subst -unix,,$(filter %-unix,$(ARCHS))) windows_ARCHS = $(subst -windows,,$(filter %-windows,$(ARCHS))) i386_SOURCE_DATE_EPOCH := $(BASE_SOURCE_DATE_EPOCH) x86_64_SOURCE_DATE_EPOCH := $(shell expr $(BASE_SOURCE_DATE_EPOCH) - 10) +aarch64_SOURCE_DATE_EPOCH := $(shell expr $(BASE_SOURCE_DATE_EPOCH) - 20) + +ifeq ($(shell cc --version|grep 'clang'),) + # GCC-specific flags + # required because SteamRT's GCC14 statically links with libstdc++ and this + # avoids re-exporting of its symbols in every .so created this way + CFLAGS += -Wl,--exclude-libs=libstdc++.a + TOOLCHAIN_PREFIX := + OBJCOPY_FLAGS := -p + MINGW_TYPE := gcc +else + # CLANG-specific flags + TOOLCHAIN_PREFIX := llvm- + OBJCOPY_FLAGS := + MINGW_TYPE := clang + # TODO: move this to a configure option +endif + +OBJCOPY := $(TOOLCHAIN_PREFIX)objcopy + +ifneq ($(UNSTRIPPED_BUILD),) + STRIP := + INSTALL_PROGRAM_FLAGS := + MESON_STRIP_ARG := +else + STRIP := $(TOOLCHAIN_PREFIX)strip + INSTALL_PROGRAM_FLAGS := -s + MESON_STRIP_ARG := --strip +endif # all, all-dist and dist are basically synonyms .PHONY: all all-dist dist @@ -116,6 +146,7 @@ DAV1D_MESON_ARGS = \ $(eval $(call rules-source,dav1d,$(SRCDIR)/dav1d)) $(eval $(call rules-meson,dav1d,i386,unix)) $(eval $(call rules-meson,dav1d,x86_64,unix)) +$(eval $(call rules-meson,dav1d,aarch64,unix)) ## @@ -128,6 +159,7 @@ GST_ORC_MESON_ARGS := \ $(eval $(call rules-source,gst_orc,$(SRCDIR)/gst-orc)) $(eval $(call rules-meson,gst_orc,i386,unix)) $(eval $(call rules-meson,gst_orc,x86_64,unix)) +$(eval $(call rules-meson,gst_orc,aarch64,unix)) ## @@ -140,11 +172,13 @@ GSTREAMER_MESON_ARGS := \ -Dtools=disabled \ -Dbash-completion=disabled +GSTREAMER_LDFLAGS = -lm GSTREAMER_DEPENDS = gst_orc $(eval $(call rules-source,gstreamer,$(SRCDIR)/gstreamer/subprojects/gstreamer)) $(eval $(call rules-meson,gstreamer,i386,unix)) $(eval $(call rules-meson,gstreamer,x86_64,unix)) +$(eval $(call rules-meson,gstreamer,aarch64,unix)) ## @@ -154,6 +188,7 @@ $(eval $(call rules-meson,gstreamer,x86_64,unix)) $(eval $(call rules-source,graphene,$(SRCDIR)/graphene)) $(eval $(call rules-meson,graphene,i386,unix)) $(eval $(call rules-meson,graphene,x86_64,unix)) +$(eval $(call rules-meson,graphene,aarch64,unix)) ## @@ -181,12 +216,14 @@ GST_BASE_MESON_ARGS := \ -Dgl_platform=glx,egl \ --wrap-mode nodownload \ +GST_BASE_LDFLAGS = -lm GST_BASE_DEPENDS = gst_orc graphene gstreamer GST_BASE_HOST_DEPENDS = gst_orc $(eval $(call rules-source,gst_base,$(SRCDIR)/gstreamer/subprojects/gst-plugins-base)) $(eval $(call rules-meson,gst_base,i386,unix)) $(eval $(call rules-meson,gst_base,x86_64,unix)) +$(eval $(call rules-meson,gst_base,aarch64,unix)) ## @@ -220,6 +257,7 @@ GST_GOOD_HOST_DEPENDS = gst_orc $(eval $(call rules-source,gst_good,$(SRCDIR)/gstreamer/subprojects/gst-plugins-good/)) $(eval $(call rules-meson,gst_good,i386,unix)) $(eval $(call rules-meson,gst_good,x86_64,unix)) +$(eval $(call rules-meson,gst_good,aarch64,unix)) ## ## gst-plugins-bad @@ -236,6 +274,7 @@ GST_BAD_DEPENDS = gst_orc gstreamer gst_base $(eval $(call rules-source,gst_bad,$(SRCDIR)/gstreamer/subprojects/gst-plugins-bad/)) $(eval $(call rules-meson,gst_bad,i386,unix)) $(eval $(call rules-meson,gst_bad,x86_64,unix)) +$(eval $(call rules-meson,gst_bad,aarch64,unix)) ## ## FFmpeg @@ -260,15 +299,23 @@ FFMPEG_x86_64-unix_CONFIGURE_ARGS := \ --arch=x86_64 \ --target-os=linux +FFMPEG_aarch64-unix_CONFIGURE_ARGS := \ + --cross-prefix=aarch64-linux-gnu- \ + --arch=aarch64 \ + --target-os=linux + $(eval $(call rules-source,ffmpeg,$(SRCDIR)/ffmpeg)) $(eval $(call rules-configure,ffmpeg,i386,unix)) $(eval $(call rules-configure,ffmpeg,x86_64,unix)) +$(eval $(call rules-configure,ffmpeg,aarch64,unix)) ## Only use ffmpeg to build gst-libav; we don't ship it. $(OBJ)/.ffmpeg-i386-dist: touch $@ $(OBJ)/.ffmpeg-x86_64-dist: touch $@ +$(OBJ)/.ffmpeg-aarch64-dist: + touch $@ ## ## gst-libav @@ -279,6 +326,7 @@ GST_LIBAV_DEPENDS = gst_orc gstreamer gst_base ffmpeg $(eval $(call rules-source,gst_libav,$(SRCDIR)/gstreamer/subprojects/gst-libav)) $(eval $(call rules-meson,gst_libav,i386,unix)) $(eval $(call rules-meson,gst_libav,x86_64,unix)) +$(eval $(call rules-meson,gst_libav,aarch64,unix)) ## @@ -293,6 +341,7 @@ GST_PLUGINS_RS_DEPENDS = gst_orc gstreamer gst_base dav1d $(eval $(call rules-source,gst_plugins_rs,$(SRCDIR)/gst-plugins-rs)) $(eval $(call rules-cargo,gst_plugins_rs,i386,unix)) $(eval $(call rules-cargo,gst_plugins_rs,x86_64,unix)) +$(eval $(call rules-cargo,gst_plugins_rs,aarch64,unix)) $(OBJ)/.gst_plugins_rs-x86_64-post-build: mkdir -p $(GST_PLUGINS_RS_x86_64_DST)/lib/x86_64-linux-gnu/gstreamer-1.0/ @@ -304,6 +353,11 @@ $(OBJ)/.gst_plugins_rs-i386-post-build: cp -a $(GST_PLUGINS_RS_i386_OBJ)/i686-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_i386_DST)/lib/i386-linux-gnu/gstreamer-1.0/ touch $@ +$(OBJ)/.gst_plugins_rs-aarch64-post-build: + mkdir -p $(GST_PLUGINS_RS_aarch64_DST)/lib/aarch64-linux-gnu/gstreamer-1.0/ + cp -a $(GST_PLUGINS_RS_aarch64_OBJ)/aarch64-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_aarch64_DST)/lib/aarch64-linux-gnu/gstreamer-1.0/ + touch $@ + ## ## Vulkan-Headers @@ -312,6 +366,7 @@ $(OBJ)/.gst_plugins_rs-i386-post-build: $(eval $(call rules-source,vulkan-headers,$(SRCDIR)/Vulkan-Headers)) $(eval $(call rules-cmake,vulkan-headers,i386,windows)) $(eval $(call rules-cmake,vulkan-headers,x86_64,windows)) +$(eval $(call rules-cmake,vulkan-headers,aarch64,windows)) ## @@ -321,6 +376,7 @@ $(eval $(call rules-cmake,vulkan-headers,x86_64,windows)) $(eval $(call rules-source,spirv-headers,$(SRCDIR)/SPIRV-Headers)) $(eval $(call rules-cmake,spirv-headers,i386,windows)) $(eval $(call rules-cmake,spirv-headers,x86_64,windows)) +$(eval $(call rules-cmake,spirv-headers,aarch64,windows)) ## @@ -330,6 +386,7 @@ $(eval $(call rules-cmake,spirv-headers,x86_64,windows)) $(eval $(call rules-source,glslang,$(SRCDIR)/glslang)) $(eval $(call rules-cmake,glslang,i386,unix)) $(eval $(call rules-cmake,glslang,x86_64,unix)) +$(eval $(call rules-cmake,glslang,aarch64,unix)) ## @@ -337,11 +394,11 @@ $(eval $(call rules-cmake,glslang,x86_64,unix)) ## LSTEAMCLIENT_DEPENDS = wine -LSTEAMCLIENT_LDFLAGS = -static-libgcc -static-libstdc++ $(eval $(call rules-source,lsteamclient,$(SRCDIR)/lsteamclient)) $(eval $(call rules-makedep,lsteamclient,i386)) $(eval $(call rules-makedep,lsteamclient,x86_64)) +$(eval $(call rules-makedep,lsteamclient,aarch64)) ## @@ -354,6 +411,7 @@ OPENXR_CMAKE_ARGS = -DHAVE_FILESYSTEM_WITHOUT_LIB=0 $(eval $(call rules-source,openxr,$(SRCDIR)/OpenXR-SDK)) # $(eval $(call rules-cmake,openxr,i386,unix)) $(eval $(call rules-cmake,openxr,x86_64,unix)) +$(eval $(call rules-cmake,openxr,aarch64,unix)) ## @@ -366,15 +424,14 @@ WINEOPENXR_DEPENDS = wine openxr $(eval $(call rules-source,wineopenxr,$(SRCDIR)/wineopenxr)) $(eval $(call rules-makedep,wineopenxr,x86_64)) +$(eval $(call rules-makedep,wineopenxr,aarch64)) -DIST_WINEOPENXR64_JSON := $(DIST_PREFIX)/drive_c/openxr/wineopenxr64.json +WINEOPENXR64_JSON := $(DST_DIR)/share/openxr/wineopenxr64.json $(WINEOPENXR_SRC)/wineopenxr64.json: wineopenxr -$(DIST_WINEOPENXR64_JSON): $(WINEOPENXR_SRC)/wineopenxr64.json default_pfx +$(WINEOPENXR64_JSON): $(WINEOPENXR_SRC)/wineopenxr64.json mkdir -p $(dir $@) cp -a $< $@ -all-dist: $(DIST_WINEOPENXR64_JSON) - ## ## steam.exe @@ -385,6 +442,7 @@ STEAMEXE_DEPENDS = wine $(eval $(call rules-source,steamexe,$(SRCDIR)/steam_helper)) $(eval $(call rules-makedep,steamexe,i386)) $(eval $(call rules-makedep,steamexe,x86_64)) +$(eval $(call rules-makedep,steamexe,aarch64)) ## @@ -393,6 +451,7 @@ $(eval $(call rules-makedep,steamexe,x86_64)) $(eval $(call rules-source,piper,$(SRCDIR)/piper)) $(eval $(call rules-cmake,piper,x86_64,unix)) +$(eval $(call rules-cmake,piper,aarch64,unix)) $(OBJ)/.piper-x86_64-post-build: mkdir -p $(PIPER_x86_64_DST)/lib/$(x86_64-unix_TARGET) @@ -401,10 +460,113 @@ $(OBJ)/.piper-x86_64-post-build: cp -a $(PIPER_x86_64_DST)/{espeak-ng-data,libtashkeel_model.ort} $(DST_DIR)/share/ touch $@ +$(OBJ)/.piper-aarch64-post-build: + mkdir -p $(PIPER_aarch64_DST)/lib/$(aarch64-unix_TARGET) + mv $(PIPER_aarch64_DST)/*.so* $(PIPER_aarch64_DST)/lib/$(aarch64-unix_TARGET) +ifeq ($(findstring x86_64,$(unix_ARCHS)),) + mkdir -p $(DST_DIR)/share + cp -a $(PIPER_aarch64_DST)/{espeak-ng-data,libtashkeel_model.ort} $(DST_DIR)/share/ +endif + touch $@ + + +## +## openfst +## + +OPENFST_SOURCE_ARGS = \ + --include src/include/fst/config.h.in \ + --exclude aclocal.m4 \ + --exclude ar-lib \ + --exclude autom4te.cache \ + --exclude compile \ + --exclude config.guess \ + --exclude config.h.in \ + --exclude config.sub \ + --exclude configure \ + --exclude depcomp \ + --exclude install-sh \ + --exclude ltmain.sh \ + --exclude m4/libtool.m4 \ + --exclude m4/ltoptions.m4 \ + --exclude m4/ltsugar.m4 \ + --exclude m4/ltversion.m4 \ + --exclude m4/lt~obsolete.m4 \ + --exclude Makefile.in \ + --exclude missing \ + --exclude test-driver \ + +OPENFST_CONFIGURE_ARGS = \ + --enable-silent-rules \ + --enable-static \ + --disable-shared \ + --enable-far \ + --enable-ngram-fsts \ + --enable-lookahead-fsts \ + --with-pic \ + --disable-bin \ + +$(eval $(call rules-source,openfst,$(SRCDIR)/openfst)) +$(eval $(call rules-configure,openfst,i386,unix)) +$(eval $(call rules-configure,openfst,x86_64,unix)) +$(eval $(call rules-configure,openfst,aarch64,unix)) + + +## +## kaldi +## + +KALDI_SOURCE_ARGS = \ + --exclude src/**/CMakeLists.txt \ + +KALDI_CMAKE_ARGS = \ + -DKALDI_VERSION=5.5-proton \ + -DBLAS_LIBRARIES=-lblas \ + -DLAPACK_LIBRARIES=-llapack \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DBUILD_SHARED_LIBS=OFF \ + -DKALDI_BUILD_TEST=OFF \ + -DKALDI_BUILD_EXE=OFF \ + +KALDI_DEPENDS = openfst + +$(eval $(call rules-source,kaldi,$(SRCDIR)/kaldi)) +$(eval $(call rules-cmake,kaldi,i386,unix)) +$(eval $(call rules-cmake,kaldi,x86_64,unix)) +$(eval $(call rules-cmake,kaldi,aarch64,unix)) + +# Kaldi calls cmake/gen_cmake_skeleton.py as a part of cmake invocation which +# generates a bunch of cmake files in the source directory that are later +# included. This causes sporadic failures as builds for all architectures share +# the same source directory. +# +# The below assures that only a single configure/build step can run at a time. +$(OBJ)/.kaldi-x86_64-configure: $(OBJ)/.kaldi-i386-configure +$(OBJ)/.kaldi-i386-build: $(OBJ)/.kaldi-x86_64-configure +$(OBJ)/.kaldi-i386-build: $(OBJ)/.kaldi-x86_64-build + +## +## vosk +## + +VOSK_CMAKE_ARGS = \ + -DBUILD_SHARED_LIBS=ON \ + +VOSK_DEPENDS = openfst kaldi + +$(eval $(call rules-source,vosk,$(SRCDIR)/vosk-api)) +$(eval $(call rules-cmake,vosk,i386,unix)) +$(eval $(call rules-cmake,vosk,x86_64,unix)) +$(eval $(call rules-cmake,vosk,aarch64,unix)) + + ## ## wine ## +# HACK: glib 2.0 in the runtime is old and causes a lot of errors with a newer GCC +WINE_CFLAGS += -Wno-discarded-qualifiers + WINE_SOURCE_ARGS = \ --exclude configure \ --exclude autom4te.cache \ @@ -426,33 +588,41 @@ WINE_SOURCE_ARGS = \ WINE_AUTOCONF_ARGS = \ --enable-werror \ - --with-mingw \ + --with-mingw=$(MINGW_TYPE) \ --disable-tests WINE_x86_64_AUTOCONF_ARGS = \ --enable-archs=$(call list-join,$(comma),x86_64 $(filter-out x86_64 $(unix_ARCHS),$(windows_ARCHS))) \ --enable-win64 \ +WINE_aarch64_AUTOCONF_ARGS = \ + --enable-archs=$(call list-join,$(comma),arm64ec aarch64 $(filter-out aarch64 $(unix_ARCHS),$(windows_ARCHS))) + + WINE_i386_AUTOCONF_ARGS += \ VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_i386_DST)/include -I$(VKD3D_i386_DST)/include/vkd3d" \ VKD3D_PE_LIBS="-L$(VKD3D_i386_LIBDIR)/vkd3d/i386-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll" - WINE_x86_64_AUTOCONF_ARGS += \ VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_x86_64_DST)/include -I$(VKD3D_x86_64_DST)/include/vkd3d" \ VKD3D_PE_LIBS="-L$(VKD3D_x86_64_LIBDIR)/vkd3d/x86_64-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll" -WINE_DEPENDS = gst_orc gstreamer gst_base vkd3d ffmpeg -WINE_x86_64_DEPENDS = piper +WINE_DEPENDS = gst_orc gstreamer gst_base ffmpeg openfst kaldi vosk +WINE_i386_DEPENDS = vkd3d +WINE_x86_64_DEPENDS = piper vkd3d +WINE_aarch64_DEPENDS = piper WINE_i386_LIBDIR = $(WINE_i386_DST)/lib WINE_x86_64_LIBDIR = $(WINE_x86_64_DST)/lib +WINE_aarch64_LIBDIR = $(WINE_aarch64_DST)/lib $(eval $(call rules-source,wine,$(SRCDIR)/wine)) $(eval $(call rules-wine-requests,wine)) $(eval $(call rules-wine-tools,wine,i386,unix)) $(eval $(call rules-wine-tools,wine,x86_64,unix)) +$(eval $(call rules-wine-tools,wine,aarch64,unix)) $(eval $(call rules-autoconf,wine,i386,unix)) $(eval $(call rules-autoconf,wine,x86_64,unix)) +$(eval $(call rules-autoconf,wine,aarch64,unix)) $(WINE_SRC)/configure: $(WINE_ORIGIN)/aclocal.m4 @@ -495,17 +665,29 @@ $(OBJ)/.wine-i386-post-build: $(call install-strip,$(WINE_i386_DST)/bin/wine-preloader,$(DST_DIR)/bin) touch $@ +$(OBJ)/.wine-aarch64-post-build: + mkdir -p $(DST_DIR)/bin-arm64 + $(call install-strip,$(WINE_aarch64_DST)/bin/wine,$(DST_DIR)/bin-arm64) + $(call install-strip,$(WINE_aarch64_DST)/bin/wine-preloader,$(DST_DIR)/bin-arm64) + $(call install-strip,$(WINE_aarch64_DST)/bin/wineserver,$(DST_DIR)/bin-arm64) + cp -a $(WINE_aarch64_DST)/bin/msidb $(DST_DIR)/bin-arm64/ +ifeq ($(findstring x86_64,$(unix_ARCHS)),) + mkdir -p $(DST_DIR)/share + cp -a $(WINE_aarch64_DST)/share/wine $(DST_DIR)/share +endif + touch $@ + ## ## vrclient ## -VRCLIENT_LDFLAGS = -static-libgcc -static-libstdc++ VRCLIENT_DEPENDS = vulkan-headers wine $(eval $(call rules-source,vrclient,$(SRCDIR)/vrclient_x64)) $(eval $(call rules-makedep,vrclient,i386)) $(eval $(call rules-makedep,vrclient,x86_64)) +$(eval $(call rules-makedep,vrclient,aarch64)) ## @@ -515,17 +697,20 @@ $(eval $(call rules-makedep,vrclient,x86_64)) # wine builds DLLs with the same names, we need to differentiate the timestamps DXVK_i386_SOURCE_DATE_EPOCH := $(shell expr $(i386_SOURCE_DATE_EPOCH) - 1) DXVK_x86_64_SOURCE_DATE_EPOCH := $(shell expr $(x86_64_SOURCE_DATE_EPOCH) - 1) +DXVK_aarch64_SOURCE_DATE_EPOCH := $(shell expr $(aarch64_SOURCE_DATE_EPOCH) - 1) DXVK_SOURCE_ARGS = \ --exclude version.h.in \ DXVK_i386_MESON_ARGS = --bindir=$(DXVK_i386_DST)/lib/wine/dxvk/i386-windows DXVK_x86_64_MESON_ARGS = --bindir=$(DXVK_x86_64_DST)/lib/wine/dxvk/x86_64-windows +DXVK_aarch64_MESON_ARGS = --bindir=$(DXVK_aarch64_DST)/lib/wine/dxvk/aarch64-windows DXVK_HOST_DEPENDS = glslang $(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk)) $(eval $(call rules-meson,dxvk,i386,windows)) $(eval $(call rules-meson,dxvk,x86_64,windows)) +$(eval $(call rules-meson,dxvk,aarch64,windows)) $(OBJ)/.dxvk-post-source: sed -re 's#@VCS_TAG@#$(shell git -C $(SRCDIR)/dxvk describe --always --abbrev=15 --dirty=0)#' \ @@ -542,6 +727,7 @@ $(OBJ)/.dxvk-post-source: DXVK_NVAPI_i386_MESON_ARGS = --bindir=$(DXVK_NVAPI_i386_DST)/lib/wine/nvapi/i386-windows DXVK_NVAPI_x86_64_MESON_ARGS = --bindir=$(DXVK_NVAPI_x86_64_DST)/lib/wine/nvapi/x86_64-windows +DXVK_NVAPI_aarch64_MESON_ARGS = --bindir=$(DXVK_NVAPI_aarch64_DST)/lib/wine/nvapi/aarch64-windows $(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi)) $(eval $(call rules-meson,dxvk-nvapi,i386,windows)) @@ -614,6 +800,7 @@ $(OBJ)/.vkd3d-i386-post-build: $(OBJ)/.wine-$(HOST_ARCH)-tools cp $(VKD3D_i386_DST)/bin/libvkd3d-shader-1.dll $(VKD3D_i386_LIBDIR)/vkd3d/i386-windows touch $@ + ## ## vkd3d-proton ## @@ -621,6 +808,7 @@ $(OBJ)/.vkd3d-i386-post-build: $(OBJ)/.wine-$(HOST_ARCH)-tools # wine builds DLLs with the same names, we need to differentiate the timestamps VKD3D_PROTON_i386_SOURCE_DATE_EPOCH := $(shell expr $(i386_SOURCE_DATE_EPOCH) - 2) VKD3D_PROTON_x86_64_SOURCE_DATE_EPOCH := $(shell expr $(x86_64_SOURCE_DATE_EPOCH) - 2) +VKD3D_PROTON_aarch64_SOURCE_DATE_EPOCH := $(shell expr $(aarch64_SOURCE_DATE_EPOCH) - 2) VKD3D_PROTON_SOURCE_ARGS = \ --exclude vkd3d_build.h.in \ @@ -628,6 +816,7 @@ VKD3D_PROTON_SOURCE_ARGS = \ VKD3D_PROTON_i386_MESON_ARGS = --bindir=$(VKD3D_PROTON_i386_DST)/lib/wine/vkd3d-proton/i386-windows VKD3D_PROTON_x86_64_MESON_ARGS = --bindir=$(VKD3D_PROTON_x86_64_DST)/lib/wine/vkd3d-proton/x86_64-windows +VKD3D_PROTON_aarch64_MESON_ARGS = --bindir=$(VKD3D_PROTON_aarch64_DST)/lib/wine/vkd3d-proton/aarch64-windows VKD3D_PROTON_HOST_DEPENDS = glslang ifneq ($(UNSTRIPPED_BUILD),) @@ -637,6 +826,7 @@ endif $(eval $(call rules-source,vkd3d-proton,$(SRCDIR)/vkd3d-proton)) $(eval $(call rules-meson,vkd3d-proton,i386,windows)) $(eval $(call rules-meson,vkd3d-proton,x86_64,windows)) +$(eval $(call rules-meson,vkd3d-proton,aarch64,windows)) $(OBJ)/.vkd3d-proton-post-source: sed -re 's#@VCS_TAG@#$(shell git -C $(SRCDIR)/vkd3d-proton describe --always --exclude=* --abbrev=15 --dirty=0)#' \ @@ -649,6 +839,43 @@ $(OBJ)/.vkd3d-proton-post-source: touch $@ +## +## FEX +## + +ifneq ($(findstring aarch64,$(unix_ARCHS)),) +FEX_CMAKE_ARGS = \ + -DENABLE_FEXCORE_PROFILER=True -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=False \ + -DBUILD_TESTS=False -DOVERRIDE_VERSION=0000 + +FEX_ARM64EC_CMAKE_ARGS = \ + $(FEX_CMAKE_ARGS) \ + -DCMAKE_TOOLCHAIN_FILE=$(FEX_ARM64EC_SRC)/Data/CMake/toolchain_mingw.cmake \ + -DCMAKE_INSTALL_LIBDIR=$(FEX_ARM64EC_aarch64_DST)/lib/wine/aarch64-windows \ + -DMINGW_TRIPLE=arm64ec-w64-mingw32 + +$(eval $(call rules-source,fex-arm64ec,$(SRCDIR)/FEX)) +$(eval $(call rules-cmake,fex-arm64ec,aarch64,windows)) + +FEX_WOW64_CMAKE_ARGS = \ + $(FEX_CMAKE_ARGS) \ + -DCMAKE_TOOLCHAIN_FILE=$(FEX_WOW64_SRC)/Data/CMake/toolchain_mingw.cmake \ + -DCMAKE_INSTALL_LIBDIR=$(FEX_WOW64_aarch64_DST)/lib/wine/aarch64-windows \ + -DMINGW_TRIPLE=aarch64-w64-mingw32 + +$(eval $(call rules-source,fex-wow64,$(SRCDIR)/FEX)) +$(eval $(call rules-cmake,fex-wow64,aarch64,windows)) + + +FEX_CONFIG_JSON := $(DST_DIR)/share/fex-emu/Config.json +$(FEX_CONFIG_JSON): $(SRCDIR)/FEX_Config.json + mkdir -p $(dir $@) + cp -a $< $@ + +default_pfx: fex-arm64ec fex-wow64 $(FEX_CONFIG_JSON) +endif + + ## ## BattlEye Bridge ## @@ -984,7 +1211,7 @@ all-dist: $(OBJ)/.gecko-i386-dist $(OBJ)/.gecko-x86_64-dist ## wine-mono ## -WINEMONO_VER := 10.0.0 +WINEMONO_VER := 10.3.0 WINEMONO_TARBALL := wine-mono-$(WINEMONO_VER)-x86.tar.xz DIST_WINEMONO_DIR := $(DST_DIR)/share/wine/mono DIST_WINEMONO := $(OBJ)/.wine-mono-dist @@ -1038,6 +1265,8 @@ ICU_x86_64_DIST_DIR := $(DST_LIBDIR)/wine/icu/x86_64-windows ICU_x86_64_TARBALL := icu-$(ICU_VER)-x86_64.tar.xz ICU_i386_DIST_DIR := $(DST_LIBDIR)/wine/icu/i386-windows ICU_i386_TARBALL := icu-$(ICU_VER)-x86.tar.xz +ICU_aarch64_DIST_DIR := $(DST_LIBDIR)/wine/icu/aarch64-windows +ICU_aarch64_TARBALL := icu-$(ICU_VER)-x86_64.tar.xz # TODO: Build ICU for arm64(ec/x). $(OBJ)/.icu-x86_64-dist: $(SRC)/icu/$(ICU_x86_64_TARBALL) mkdir -p $(ICU_x86_64_DIST_DIR) @@ -1051,8 +1280,18 @@ $(OBJ)/.icu-i386-dist: $(SRC)/icu/$(ICU_i386_TARBALL) tar --no-same-owner -xf $< -C $(ICU_i386_DIST_DIR) touch $@ +$(OBJ)/.icu-aarch64-dist: $(SRC)/icu/$(ICU_aarch64_TARBALL) + mkdir -p $(ICU_aarch64_DIST_DIR) + rm -rf $(ICU_aarch64_DIST_DIR)/*.dll + tar --no-same-owner -xf $< -C $(ICU_aarch64_DIST_DIR) + touch $@ + all-dist: $(OBJ)/.icu-x86_64-dist $(OBJ)/.icu-i386-dist +ifneq ($(findstring aarch64,$(unix_ARCHS)),) +all-dist: $(OBJ)/.icu-aarch64-dist +endif + ## ## openvr @@ -1070,15 +1309,31 @@ $(OVR_x86_64_DIST): $(SRCDIR)/openvr/bin/win64/openvr_api.dll | $(DST_DIR) all-dist: $(OVR_i386_DIST) $(OVR_x86_64_DIST) +ifneq ($(findstring aarch64,$(unix_ARCHS)),) +OVR_aarch64_DIST := $(DST_LIBDIR)/wine/dxvk/aarch64-windows/openvr_api_dxvk.dll + +$(OVR_aarch64_DIST): $(SRCDIR)/openvr/bin/win64/openvr_api.dll | $(DST_DIR) + mkdir -p $(DST_LIBDIR)/wine/dxvk/aarch64-windows + cp -af $< $@ + +all-dist: $(OVR_aarch64_DIST) +endif + ## ## default_pfx ## -default_pfx: wine gst_good gst_bad gst_libav gst_plugins_rs lsteamclient steamexe vrclient wineopenxr dxvk dxvk-nvapi vkd3d-proton +default_pfx: wine gst_good gst_bad gst_libav gst_plugins_rs lsteamclient steamexe vrclient wineopenxr $(WINEOPENXR64_JSON) dxvk dxvk-nvapi vkd3d-proton find $(DST_LIBDIR)/wine -type f -execdir chmod a-w '{}' '+' rm -rf $(abspath $(DIST_PREFIX)) - python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR)) + rm -rf $(abspath $(DIST_PREFIX_ARM64)) +ifneq ($(findstring x86_64,$(unix_ARCHS)),) + python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR)) 0 +endif +ifneq ($(findstring aarch64,$(unix_ARCHS)),) + python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX_ARM64)) $(abspath $(DST_DIR)) 1 +endif all-dist: default_pfx @@ -1087,7 +1342,7 @@ all-dist: default_pfx ## toolmanifest.vdf ## -TOOLMANIFEST_VDF_SRC := toolmanifest_runtime.vdf +TOOLMANIFEST_VDF_SRC := toolmanifest_$(TARGET_ARCH).vdf DIST_TOOLMANIFEST := $(addprefix $(DST_BASE)/,toolmanifest.vdf) $(DIST_TOOLMANIFEST): $(addprefix $(SRCDIR)/,$(TOOLMANIFEST_VDF_SRC)) cp -a $< $@ diff --git a/README.md b/README.md index 924b66a1654..86d88be794a 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,18 @@ make UNSTRIPPED_BUILD=1 install ``` +### ARM64 Builds + +This requires ARM64 SDK container which for now has to be build locally. See +`docker/README.md` for instructions. + +You need to pass `--target-arch=arm64` and +`--proton-sdk-image=registry.gitlab.steamos.cloud/proton/sniper/sdk/arm64/llvm:latest` +(pointing to your local SDK image) to `configure.sh`. + +It's not possible to use the resulting builds in x86 Steam running via FEX. + + Install Proton locally ---------------------- @@ -333,6 +345,7 @@ the Wine prefix. Removing the option will revert to the previous behavior. | | `WINE_FULLSCREEN_INTEGER_SCALING` | Enable integer scaling mode, to give sharp pixels when upscaling. | | `cmdlineappend:` | | Append the string after the colon as an argument to the game command. May be specified more than once. Escape commas and backslashes with a backslash. | | `xalia` or `noxalia` | `PROTON_USE_XALIA` | Enable Xalia, a program that can add a gamepad UI for some keyboard/mouse interfaces, or set to 0 to disable. The default is to enable it dynamically based on window contents. | +| `fnad3d11` | `FNA3D_FORCE_DRIVER=D3D11` | Force FNA to use D3D11 for rendering. | | `seccomp` | `PROTON_USE_SECCOMP` | **Note: Obsoleted in Proton 5.13.** In older versions, enable seccomp-bpf filter to emulate native syscalls, required for some DRM protections to work. | | `d9vk` | `PROTON_USE_D9VK` | **Note: Obsoleted in Proton 5.0.** In older versions, use Vulkan-based DXVK instead of OpenGL-based wined3d for d3d9. | diff --git a/configure.sh b/configure.sh index 3aebf19c4c6..3ff99d68bbd 100755 --- a/configure.sh +++ b/configure.sh @@ -127,6 +127,12 @@ function configure() { internal_tool_name=${build_name}-proton fi + local target_arch=x86_64 + if [[ -n $arg_target_arch ]]; then + target_arch="$arg_target_arch" + fi + info "Build targetting: $target_arch" + dependency_command make "GNU Make" if [ "$MISSING_DEPENDENCIES" -ne 0 ]; then @@ -162,6 +168,7 @@ function configure() { echo "" echo "SRCDIR := $(escape_for_make "$srcdir")" echo "BUILD_NAME := $(escape_for_make "$build_name")" + echo "TARGET_ARCH := $(escape_for_make "$target_arch")" echo "INTERNAL_TOOL_NAME := $(escape_for_make "$internal_tool_name")" # SteamRT was specified, baking it into the Makefile @@ -199,6 +206,7 @@ function configure() { arg_protonsdk_image="" arg_build_name="" +arg_target_arch="" arg_container_engine="" arg_docker_opts="" arg_relabel_volumes="" @@ -240,6 +248,9 @@ function parse_args() { elif [[ $arg = --build-name ]]; then arg_build_name="$val" val_used=1 + elif [[ $arg = --target-arch ]]; then + arg_target_arch="$val" + val_used=1 elif [[ $arg = --container-engine ]]; then arg_container_engine="$val" val_used=1 @@ -298,6 +309,8 @@ usage() { "$1" "" "$1" " --build-name= Set the name of the build that displays when used in Steam" "$1" "" + "$1" " --target-arch= Builds for given architecture. x86_64 (default) and arm64 are supported." + "$1" "" "$1" " --container-engine= Which Docker-compatible container engine to use," "$1" " e.g. podman. Tries to do autodiscovery when not specified." "$1" "" diff --git a/default_pfx.py b/default_pfx.py index fdbbc0bf789..accdd7eaa2d 100755 --- a/default_pfx.py +++ b/default_pfx.py @@ -50,7 +50,7 @@ def make_relative_symlink(target, linkname): rel = os.path.relpath(target, os.path.dirname(linkname)) os.symlink(rel, linkname) -def setup_dll_symlinks(default_pfx_dir, dist_dir): +def setup_dll_symlinks(default_pfx_dir, dist_dir, arm64): skip_dlls = [ 'amd_ags_x64.dll' ] for walk_dir, dirs, files in os.walk(default_pfx_dir): for file_ in files: @@ -62,7 +62,7 @@ def setup_dll_symlinks(default_pfx_dir, dist_dir): if bitness == 32: libdir = os.path.join(dist_dir, 'lib/wine/i386-windows') elif bitness == 64: - libdir = os.path.join(dist_dir, 'lib/wine/x86_64-windows') + libdir = os.path.join(dist_dir, f'lib/wine/{"aarch64" if arm64 else "x86_64"}-windows') else: continue if os.path.exists(os.path.join(libdir, file_)): @@ -117,23 +117,26 @@ def fixup_drive_links(default_pfx_dir): if ":" in dir_: os.remove(os.path.join(walk_dir, dir_)) -def make_default_pfx(default_pfx_dir, dist_dir): +def make_default_pfx(default_pfx_dir, dist_dir, arm64): local_env = dict(os.environ) libdir = dist_dir + '/lib/' - ld_path = ':'.join([libdir + "x86_64-linux-gnu", libdir + "i386-linux-gnu"]) + system_libdir = ["/usr/aarch64-linux-gnu/lib"] if arm64 else [] + ld_path = ':'.join([libdir + "x86_64-linux-gnu", libdir + "aarch64-linux-gnu", libdir + "i386-linux-gnu"] + system_libdir) local_env["LD_LIBRARY_PATH"] = ld_path local_env["WINEPREFIX"] = default_pfx_dir local_env["WINEDEBUG"] = "-all" local_env["WINEDLLPATH"] = libdir + "vkd3d" runtime_args = [] + + bin_dir = os.path.join(dist_dir, 'bin-arm64' if arm64 else 'bin') subprocess.run(runtime_args + ["/bin/bash", "-c", - os.path.join(dist_dir, 'bin', 'wine') + " wineboot && " + - os.path.join(dist_dir, 'bin', 'wineserver') + " -w"], + os.path.join(bin_dir, 'wine') + " wineboot && " + + os.path.join(bin_dir, 'wineserver') + " -w"], env=local_env, check=True) - setup_dll_symlinks(default_pfx_dir, dist_dir) + setup_dll_symlinks(default_pfx_dir, dist_dir, arm64) fixup_drive_links(default_pfx_dir) filter_registry(os.path.join(default_pfx_dir, 'user.reg')) @@ -141,4 +144,4 @@ def make_default_pfx(default_pfx_dir, dist_dir): if __name__ == '__main__': import sys - make_default_pfx(sys.argv[1], sys.argv[2]) + make_default_pfx(sys.argv[1], sys.argv[2], int(sys.argv[3]) == 1) diff --git a/docker/Makefile b/docker/Makefile index d263f55c5ed..524eab998a4 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -1,40 +1,66 @@ -STEAMRT_VERSION = 3.0.20250210.116596 +STEAMRT_VERSION = 3.0.20250826.159138 STEAMRT_URLBASE = registry.gitlab.steamos.cloud -PROTONSDK_URLBASE = $(STEAMRT_URLBASE)/proton/sniper/sdk +BUILD_ARCH ?= x86_64 + +HOST_ARCH = $(shell uname -m) + +ifneq ($(BUILD_ARCH),$(HOST_ARCH)) + foo := $(warning Trying to build container for BUILD_ARCH=$(BUILD_ARCH) on $(HOST_ARCH). This may be not what you want.) +endif + +ifeq ($(BUILD_ARCH),aarch64) + CONTAINER_URL_INFIX = /arm64 +endif + +PROTONSDK_URLBASE = $(STEAMRT_URLBASE)/proton/sniper/sdk$(CONTAINER_URL_INFIX) PROTONSDK_VERSION = $(STEAMRT_VERSION)-0-dev # this is just for building toolchain, as we do static builds it should # not have any impact on the end result, but changing it will invalidate # docker caches, so we need something that don't change much -BASE_IMAGE = $(STEAMRT_URLBASE)/steamrt/sniper/sdk:0.20221017.1 +BASE_IMAGE := $(STEAMRT_URLBASE)/steamrt/sniper/sdk$(CONTAINER_URL_INFIX):3.0.20250826.159138 BINUTILS_VERSION = 2.42 -GCC_VERSION = 10.3.0 -MINGW_VERSION = 9.0.0 +GCC_VERSION = 14.2.0 +MINGW_VERSION = 13.0.0 RUST_VERSION = 1.68.0 -NINJA_VERSION = 1.11.1 +NINJA_VERSION = 1.13.1 +AFDKO_VERSION = 4.0.2 +LLVM_VERSION = 21.1.0 +LLVM_MINGW_VERSION = 20250910 SOURCES_URLBASE = https://repo.steampowered.com/proton-sdk BINUTILS_URLBASE = $(SOURCES_URLBASE) GCC_URLBASE = $(SOURCES_URLBASE) MINGW_URLBASE = $(SOURCES_URLBASE) -RUST_URLBASE = $(SOURCES_URLBASE) +RUST_URLBASE = https://static.rust-lang.org/dist NINJA_URLBASE = $(SOURCES_URLBASE) +AFDKO_URLBASE = $(SOURCES_URLBASE) +LLVM_URLBASE = $(SOURCES_URLBASE) +LLVM_MINGW_URLBASE = $(SOURCES_URLBASE) BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.xz GCC_SOURCE = gcc-$(GCC_VERSION).tar.xz MINGW_SOURCE = mingw-w64-v$(MINGW_VERSION).tar.bz2 RUST_SOURCE_x86_64 = rust-$(RUST_VERSION)-x86_64-unknown-linux-gnu.tar.gz RUST_SOURCE_i686 = rust-$(RUST_VERSION)-i686-unknown-linux-gnu.tar.gz -NINJA_SOURCE = ninja-build_$(NINJA_VERSION).orig.tar.gz +RUST_SOURCE_aarch64 = rust-$(RUST_VERSION)-aarch64-unknown-linux-gnu.tar.gz +NINJA_SOURCE = ninja-$(NINJA_VERSION).zip +AFDKO_SOURCE = afdko-$(AFDKO_VERSION).zip +LLVM_SOURCE = llvm-$(LLVM_VERSION).tar.gz +LLVM_MINGW_SOURCE = llvm-mingw-$(LLVM_MINGW_VERSION).tar.gz BINUTILS_SHA256 = f6e4d41fd5fc778b06b7891457b3620da5ecea1006c6a4a41ae998109f85a800 -GCC_SHA256 = 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 -MINGW_SHA256 = 1929b94b402f5ff4d7d37a9fe88daa9cc55515a6134805c104d1794ae22a4181 +GCC_SHA256 = a7b39bc69cbf9e25826c5a60ab26477001f7c08d85cec04bc0e29cabed6f3cc9 +MINGW_SHA256 = 5afe822af5c4edbf67daaf45eec61d538f49eef6b19524de64897c6b95828caf RUST_SHA256_x86_64 = 7be1acdac656d0b0b7e909e5c0d4ddf61c755c203ec26ebafbd306322335b361 RUST_SHA256_i686 = dc931adeb2943dcadfbd29546481f0296fcb97a511421053ecae6586a85869b1 -NINJA_SHA256 = 31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea +RUST_SHA256_aarch64 = 7cf68cab37501d06fc55efcebf934a183e5cd4c804d1308c2907a3136a198c01 +NINJA_SHA256 = 5bfe6e147f39347f53777fce2fff324811297f12f4199623a9e3d5a9dc431d69 +AFDKO_SHA256 = 33b0e83b47bb7418594d9b10bd9907dbdc1df8ed0b6a9c385400490c32a46e1c +LLVM_SHA256 = fba0618cf8de48ec05880c446edd756a2669157eab9d29949e971c77da10275f +LLVM_MINGW_SHA256 = 48caa362f1256a8f0719332f2555d06e3e0bdc5414d3bf8cb6809ee8ec5a5ba2 DOCKER = docker @@ -57,12 +83,26 @@ DOCKER = docker -re 's!@RUST_URLBASE@!$(RUST_URLBASE)!g' \ -re 's!@RUST_SOURCE_x86_64@!$(RUST_SOURCE_x86_64)!g' \ -re 's!@RUST_SOURCE_i686@!$(RUST_SOURCE_i686)!g' \ + -re 's!@RUST_SOURCE_aarch64@!$(RUST_SOURCE_aarch64)!g' \ -re 's!@RUST_SHA256_x86_64@!$(RUST_SHA256_x86_64)!g' \ -re 's!@RUST_SHA256_i686@!$(RUST_SHA256_i686)!g' \ + -re 's!@RUST_SHA256_aarch64@!$(RUST_SHA256_aarch64)!g' \ -re 's!@NINJA_VERSION@!$(NINJA_VERSION)!g' \ -re 's!@NINJA_URLBASE@!$(NINJA_URLBASE)!g' \ -re 's!@NINJA_SOURCE@!$(NINJA_SOURCE)!g' \ -re 's!@NINJA_SHA256@!$(NINJA_SHA256)!g' \ + -re 's!@LLVM_VERSION@!$(LLVM_VERSION)!g' \ + -re 's!@LLVM_URLBASE@!$(LLVM_URLBASE)!g' \ + -re 's!@LLVM_SOURCE@!$(LLVM_SOURCE)!g' \ + -re 's!@LLVM_SHA256@!$(LLVM_SHA256)!g' \ + -re 's!@LLVM_MINGW_VERSION@!$(LLVM_MINGW_VERSION)!g' \ + -re 's!@LLVM_MINGW_URLBASE@!$(LLVM_MINGW_URLBASE)!g' \ + -re 's!@LLVM_MINGW_SOURCE@!$(LLVM_MINGW_SOURCE)!g' \ + -re 's!@LLVM_MINGW_SHA256@!$(LLVM_MINGW_SHA256)!g' \ + -re 's!@AFDKO_VERSION@!$(AFDKO_VERSION)!g' \ + -re 's!@AFDKO_URLBASE@!$(AFDKO_URLBASE)!g' \ + -re 's!@AFDKO_SOURCE@!$(AFDKO_SOURCE)!g' \ + -re 's!@AFDKO_SHA256@!$(AFDKO_SHA256)!g' \ -re 's!@J@!$(shell nproc)!g' \ $< >$@ @@ -183,15 +223,13 @@ push:: $(DOCKER) push $(PROTONSDK_URLBASE)/gcc-$(1)-$(2):latest endef -$(eval $(call create-gcc-rules,i686,linux-gnu)) -$(eval $(call create-gcc-rules,x86_64,linux-gnu)) $(eval $(call create-gcc-rules,i686,w64-mingw32)) $(eval $(call create-gcc-rules,x86_64,w64-mingw32)) define create-proton-rules .PHONY: proton all: proton -proton: BASE_IMAGE = $(STEAMRT_URLBASE)/steamrt/sniper/sdk:$(STEAMRT_VERSION) +proton: BASE_IMAGE = $(STEAMRT_URLBASE)/steamrt/sniper/sdk$(CONTAINER_URL_INFIX):$(STEAMRT_VERSION) proton: proton.Dockerfile | gcc $(DOCKER) build -f $$< \ --cache-from=$(PROTONSDK_URLBASE) \ @@ -207,22 +245,64 @@ endef $(eval $(call create-proton-rules)) + +.PHONY: llvm-mingw +all: llvm-mingw +llvm-mingw: BASE_IMAGE = $(STEAMRT_URLBASE)/steamrt/sniper/sdk$(CONTAINER_URL_INFIX):$(STEAMRT_VERSION) +llvm-mingw: llvm-mingw.Dockerfile + $(DOCKER) build -f $< \ + --cache-from=$(PROTONSDK_URLBASE)/llvm-mingw \ + -t $(PROTONSDK_URLBASE)/llvm-mingw:$(LLVM_MINGW_VERSION) \ + -t $(PROTONSDK_URLBASE)/llvm-mingw:latest \ + context +pull:: + -$(DOCKER) pull $(PROTONSDK_URLBASE)/llvm-mingw:$(LLVM_MINGW_VERSION) +push:: + $(DOCKER) push $(PROTONSDK_URLBASE)/llvm-mingw:$(LLVM_MINGW_VERSION) + $(DOCKER) push $(PROTONSDK_URLBASE)/llvm-mingw:latest + +.PHONY: proton-llvm +all: proton-llvm +proton-llvm: BASE_IMAGE = $(STEAMRT_URLBASE)/steamrt/sniper/sdk$(CONTAINER_URL_INFIX):$(STEAMRT_VERSION) +proton-llvm: proton-llvm.Dockerfile | llvm-mingw + $(DOCKER) build -f $< \ + --build-arg=BUILD_ARCH=$(BUILD_ARCH) \ + --cache-from=$(PROTONSDK_URLBASE) \ + -t $(PROTONSDK_URLBASE)/llvm:$(PROTONSDK_VERSION) \ + -t $(PROTONSDK_URLBASE)/llvm:latest \ + context +pull:: + -$(DOCKER) pull $(PROTONSDK_URLBASE)/llvm:$(PROTONSDK_VERSION) +push:: + $(DOCKER) push $(PROTONSDK_URLBASE)/llvm:$(PROTONSDK_VERSION) + $(DOCKER) push $(PROTONSDK_URLBASE)/llvm:latest + + sources:: rm -f $(BINUTILS_SOURCE) rm -f $(MINGW_SOURCE) rm -f $(GCC_SOURCE) rm -f $(RUST_SOURCE_x86_64) rm -f $(RUST_SOURCE_i686) + rm -f $(RUST_SOURCE_aarch64) rm -f $(NINJA_SOURCE) + rm -f $(LLVM_SOURCE) + rm -f $(LLVM_MINGW_SOURCE) wget $(BINUTILS_URLBASE)/$(BINUTILS_SOURCE) wget $(MINGW_URLBASE)/$(MINGW_SOURCE) wget $(GCC_URLBASE)/$(GCC_SOURCE) wget $(RUST_URLBASE)/$(RUST_SOURCE_x86_64) wget $(RUST_URLBASE)/$(RUST_SOURCE_i686) + wget $(RUST_URLBASE)/$(RUST_SOURCE_aarch64) wget $(NINJA_URLBASE)/$(NINJA_SOURCE) + wget $(LLVM_URLBASE)/$(LLVM_SOURCE) + wget $(LLVM_MINGW_URLBASE)/$(LLVM_MINGW_SOURCE) echo $(BINUTILS_SHA256) $(BINUTILS_SOURCE) | sha256sum -c - echo $(MINGW_SHA256) $(MINGW_SOURCE) | sha256sum -c - echo $(GCC_SHA256) $(GCC_SOURCE) | sha256sum -c - echo $(RUST_SHA256_x86_64) $(RUST_SOURCE_x86_64) | sha256sum -c - echo $(RUST_SHA256_i686) $(RUST_SOURCE_i686) | sha256sum -c - + echo $(RUST_SHA256_aarch64) $(RUST_SOURCE_aarch64) | sha256sum -c - echo $(NINJA_SHA256) $(NINJA_SOURCE) | sha256sum -c - + echo $(LLVM_SHA256) $(LLVM_SOURCE) | sha256sum -c - + echo $(LLVM_MINGW_SHA256) $(LLVM_MINGW_SOURCE) | sha256sum -c - diff --git a/docker/README.md b/docker/README.md index c0066f932d4..89b25c57113 100644 --- a/docker/README.md +++ b/docker/README.md @@ -6,50 +6,72 @@ Proton. The automated creation of the official images lives in , but this can be used to create local images too. -Local usage ------------ -The `protonsdk_version` make variable will override which image is used -to build Proton, but may not trigger a full rebuild, so building from -scratch may be necessary. +Local Changes And Testing +------------------------- -Building Proton with a locally build docker image, instead of using the -official images, can be done by using `protonsdk_version=local`. This -may be used for instance to test changes to the docker image recipes. +Make changes to the `.Dockerfile.in` -Or, it is also possible to build the docker images first by invoking -`make protonsdk` and it will tag the images with the `protonsdk_version` -variable value. +Just run `make proton` in this directory. To use Podman instead run `make +DOCKER=podman proton`. -Official images +This will create container image tagged both as +`registry.gitlab.steamos.cloud/proton/sniper/sdk:$SOME_VERSION-0-dev` and +`registry.gitlab.steamos.cloud/proton/sniper/sdk:latest` + +Look for lines `successfully tagged` at the bottom of the output. + +To use the just built container image for Proton build you can pass the following argument +to `./configure.sh` (assuming you are using the same container engine, Podman or +Docker, for both): +`--proton-sdk-image=registry.gitlab.steamos.cloud/proton/sniper/sdk:latest` + + +ARM64 Containers +---------------- + +To build: + +``` +make BUILD_ARCH=aarch64 proton-llvm +``` + +To use: + +``` +$PROTON_SRC/configure.sh --proton-sdk-image=registry.gitlab.steamos.cloud/proton/sniper/sdk/arm64:latest +``` + + +Official Images --------------- To update the official Proton SDK images: -1) Update the image build rules, `STEAMRT_VERSION` and - `PROTONSDK_VERSION` version numbers in this folder, test locally, - commit and push the changes. +1) Update the image build rules and the base `STEAMRT_VERSION` numbers in files + in this directory, test locally, commit and push the changes. 2) Update `.gitlab-ci.yml` in the [Proton SDK](https://gitlab.steamos.cloud/proton/sniper/sdk) repository to point to the new commit, commit and push to trigger a - new build of "-dev" images. + new build of `-dev` images. 3) Once the images are satisfying, tag the version in Proton SDK repository and push the tag, this will trigger a new build of the images and version them with the same tag as the Git tag. -4) Once the images have been published, update the default - `arg_protonsdk_image` version number in `configure.sh` to use the - newly built images by default. +4) Once the images have been published, update the default `STEAMRT_IMAGE` + version number in the top-level `Makefile.in` to use the newly built images + by default. Any change or addition to GPL-ed source first requires to update or add the corresponding source to . The `SOURCES_URLBASE` variable must be used to download the sources -from there, and its sha256 must be added to validate the sources in the +from there, and its SHA256 must be added to validate the sources in the same way the existing code does. -Technical details + +Technical Details ----------------- The images are built incrementally, with intermediate images created diff --git a/docker/context/.gitkeep b/docker/context/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/docker/context/llvm-0001-Implement-varargs-support-in-clang.patch b/docker/context/llvm-0001-Implement-varargs-support-in-clang.patch new file mode 100644 index 00000000000..d2241008c48 --- /dev/null +++ b/docker/context/llvm-0001-Implement-varargs-support-in-clang.patch @@ -0,0 +1,228 @@ +From 4b667aec5829369a3823c352b4377a5a4758cd7b Mon Sep 17 00:00:00 2001 +From: Eli Friedman +Date: Wed, 6 Aug 2025 16:31:03 -0700 +Subject: [PATCH] Implement varargs support in clang. + +The clang side of the calling convention code for arm64 vs. arm64ec is +close enough that this isn't really noticeable in most cases, but the +rule for choosing whether to pass a struct directly or indirectly is +significantly different. + +(Adapted from my old patch https://reviews.llvm.org/D125419 .) + +Fixes #89615. +--- + clang/lib/CodeGen/ABIInfo.cpp | 4 ++ + clang/lib/CodeGen/ABIInfo.h | 4 ++ + clang/lib/CodeGen/Targets/AArch64.cpp | 44 ++++++++++++++------ + clang/lib/CodeGen/Targets/X86.cpp | 6 +++ + clang/test/CodeGen/arm64ec-varargs.c | 59 +++++++++++++++++++++++++++ + 5 files changed, 105 insertions(+), 12 deletions(-) + create mode 100644 clang/test/CodeGen/arm64ec-varargs.c + +diff --git a/clang/lib/CodeGen/ABIInfo.cpp b/clang/lib/CodeGen/ABIInfo.cpp +index d981d69913632..b6f3fcedbe317 100644 +--- a/clang/lib/CodeGen/ABIInfo.cpp ++++ b/clang/lib/CodeGen/ABIInfo.cpp +@@ -244,6 +244,10 @@ ABIInfo::getOptimalVectorMemoryType(llvm::FixedVectorType *T, + return T; + } + ++ABIArgInfo ABIInfo::classifyArgForArm64ECVarArg(QualType Ty) const { ++ llvm_unreachable("Only implemented for x86"); ++} ++ + // Pin the vtable to this file. + SwiftABIInfo::~SwiftABIInfo() = default; + +diff --git a/clang/lib/CodeGen/ABIInfo.h b/clang/lib/CodeGen/ABIInfo.h +index 9c7029c99bd44..6f07a82a39fd7 100644 +--- a/clang/lib/CodeGen/ABIInfo.h ++++ b/clang/lib/CodeGen/ABIInfo.h +@@ -132,6 +132,10 @@ class ABIInfo { + virtual llvm::FixedVectorType * + getOptimalVectorMemoryType(llvm::FixedVectorType *T, + const LangOptions &Opt) const; ++ ++ /// Used by Arm64EC calling convention code to call into x86 calling ++ /// convention code for varargs function. ++ virtual ABIArgInfo classifyArgForArm64ECVarArg(QualType Ty) const; + }; + + /// Target specific hooks for defining how a type should be passed or returned +diff --git a/clang/lib/CodeGen/Targets/AArch64.cpp b/clang/lib/CodeGen/Targets/AArch64.cpp +index b82c46966cf0b..fe562f37e30bc 100644 +--- a/clang/lib/CodeGen/Targets/AArch64.cpp ++++ b/clang/lib/CodeGen/Targets/AArch64.cpp +@@ -24,9 +24,16 @@ namespace { + class AArch64ABIInfo : public ABIInfo { + AArch64ABIKind Kind; + ++ std::unique_ptr WinX86_64CodegenInfo; ++ + public: +- AArch64ABIInfo(CodeGenTypes &CGT, AArch64ABIKind Kind) +- : ABIInfo(CGT), Kind(Kind) {} ++ AArch64ABIInfo(CodeGenModule &CGM, AArch64ABIKind Kind) ++ : ABIInfo(CGM.getTypes()), Kind(Kind) { ++ if (getTarget().getTriple().isWindowsArm64EC()) { ++ WinX86_64CodegenInfo = ++ createWinX86_64TargetCodeGenInfo(CGM, X86AVXABILevel::None); ++ } ++ } + + bool isSoftFloat() const { return Kind == AArch64ABIKind::AAPCSSoft; } + +@@ -119,9 +126,9 @@ class AArch64SwiftABIInfo : public SwiftABIInfo { + + class AArch64TargetCodeGenInfo : public TargetCodeGenInfo { + public: +- AArch64TargetCodeGenInfo(CodeGenTypes &CGT, AArch64ABIKind Kind) +- : TargetCodeGenInfo(std::make_unique(CGT, Kind)) { +- SwiftInfo = std::make_unique(CGT); ++ AArch64TargetCodeGenInfo(CodeGenModule &CGM, AArch64ABIKind Kind) ++ : TargetCodeGenInfo(std::make_unique(CGM, Kind)) { ++ SwiftInfo = std::make_unique(CGM.getTypes()); + } + + StringRef getARCRetainAutoreleasedReturnValueMarker() const override { +@@ -200,8 +207,8 @@ class AArch64TargetCodeGenInfo : public TargetCodeGenInfo { + + class WindowsAArch64TargetCodeGenInfo : public AArch64TargetCodeGenInfo { + public: +- WindowsAArch64TargetCodeGenInfo(CodeGenTypes &CGT, AArch64ABIKind K) +- : AArch64TargetCodeGenInfo(CGT, K) {} ++ WindowsAArch64TargetCodeGenInfo(CodeGenModule &CGM, AArch64ABIKind K) ++ : AArch64TargetCodeGenInfo(CGM, K) {} + + void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV, + CodeGen::CodeGenModule &CGM) const override; +@@ -368,6 +375,12 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadicFn, + unsigned &NPRN) const { + Ty = useFirstFieldIfTransparentUnion(Ty); + ++ if (IsVariadicFn && getTarget().getTriple().isWindowsArm64EC()) { ++ // Arm64EC varargs functions use the x86_64 classification rules, ++ // not the AArch64 ABI rules. ++ return WinX86_64CodegenInfo->getABIInfo().classifyArgForArm64ECVarArg(Ty); ++ } ++ + // Handle illegal vector types here. + if (isIllegalVectorType(Ty)) + return coerceIllegalVector(Ty, NSRN, NPRN); +@@ -1151,9 +1164,16 @@ RValue AArch64ABIInfo::EmitMSVAArg(CodeGenFunction &CGF, Address VAListAddr, + QualType Ty, AggValueSlot Slot) const { + bool IsIndirect = false; + +- // Composites larger than 16 bytes are passed by reference. +- if (isAggregateTypeForABI(Ty) && getContext().getTypeSize(Ty) > 128) +- IsIndirect = true; ++ if (getTarget().getTriple().isWindowsArm64EC()) { ++ // MS x64 ABI requirement: "Any argument that doesn't fit in 8 bytes, or is ++ // not 1, 2, 4, or 8 bytes, must be passed by reference." ++ uint64_t Width = getContext().getTypeSize(Ty); ++ IsIndirect = Width > 64 || !llvm::isPowerOf2_64(Width); ++ } else { ++ // Composites larger than 16 bytes are passed by reference. ++ if (isAggregateTypeForABI(Ty) && getContext().getTypeSize(Ty) > 128) ++ IsIndirect = true; ++ } + + return emitVoidPtrVAArg(CGF, VAListAddr, Ty, IsIndirect, + CGF.getContext().getTypeInfoInChars(Ty), +@@ -1345,11 +1365,11 @@ void AArch64ABIInfo::appendAttributeMangling(StringRef AttrStr, + std::unique_ptr + CodeGen::createAArch64TargetCodeGenInfo(CodeGenModule &CGM, + AArch64ABIKind Kind) { +- return std::make_unique(CGM.getTypes(), Kind); ++ return std::make_unique(CGM, Kind); + } + + std::unique_ptr + CodeGen::createWindowsAArch64TargetCodeGenInfo(CodeGenModule &CGM, + AArch64ABIKind K) { +- return std::make_unique(CGM.getTypes(), K); ++ return std::make_unique(CGM, K); + } +diff --git a/clang/lib/CodeGen/Targets/X86.cpp b/clang/lib/CodeGen/Targets/X86.cpp +index 0f59caac2323e..a6767053b7ba2 100644 +--- a/clang/lib/CodeGen/Targets/X86.cpp ++++ b/clang/lib/CodeGen/Targets/X86.cpp +@@ -1409,6 +1409,12 @@ class WinX86_64ABIInfo : public ABIInfo { + return isX86VectorCallAggregateSmallEnough(NumMembers); + } + ++ ABIArgInfo classifyArgForArm64ECVarArg(QualType Ty) const override { ++ unsigned FreeSSERegs = 0; ++ return classify(Ty, FreeSSERegs, /*IsReturnType=*/false, ++ /*IsVectorCall=*/false, /*IsRegCall=*/false); ++ } ++ + private: + ABIArgInfo classify(QualType Ty, unsigned &FreeSSERegs, bool IsReturnType, + bool IsVectorCall, bool IsRegCall) const; +diff --git a/clang/test/CodeGen/arm64ec-varargs.c b/clang/test/CodeGen/arm64ec-varargs.c +new file mode 100644 +index 0000000000000..6bb5cff5fb30e +--- /dev/null ++++ b/clang/test/CodeGen/arm64ec-varargs.c +@@ -0,0 +1,59 @@ ++// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --include-generated-funcs --global-value-regex "f" ++// RUN: %clang_cc1 -opaque-pointers -triple arm64ec-windows-msvc -emit-llvm -o - %s | FileCheck %s ++ ++typedef struct { float x[2]; } A; ++typedef struct { float x[4]; } B; ++void f(A a, ...) { ++ __builtin_va_list b; ++ __builtin_va_start(b, a); ++ float x = __builtin_va_arg(b, A).x[0]; ++ float y = __builtin_va_arg(b, B).x[0]; ++} ++void g(A a, B b) { f(a, b); } ++ ++// CHECK-LABEL: @f( ++// CHECK-NEXT: entry: ++// CHECK-NEXT: [[A:%.*]] = alloca [[STRUCT_A:%.*]], align 4 ++// CHECK-NEXT: [[B:%.*]] = alloca ptr, align 8 ++// CHECK-NEXT: [[X:%.*]] = alloca float, align 4 ++// CHECK-NEXT: [[REF_TMP:%.*]] = alloca [[STRUCT_A]], align 4 ++// CHECK-NEXT: [[Y:%.*]] = alloca float, align 4 ++// CHECK-NEXT: [[REF_TMP2:%.*]] = alloca [[STRUCT_B:%.*]], align 4 ++// CHECK-NEXT: [[COERCE_DIVE:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 ++// CHECK-NEXT: store i64 [[A_COERCE:%.*]], ptr [[COERCE_DIVE]], align 4 ++// CHECK-NEXT: call void @llvm.va_start.p0(ptr [[B]]) ++// CHECK-NEXT: [[ARGP_CUR:%.*]] = load ptr, ptr [[B]], align 8 ++// CHECK-NEXT: [[ARGP_NEXT:%.*]] = getelementptr inbounds i8, ptr [[ARGP_CUR]], i64 8 ++// CHECK-NEXT: store ptr [[ARGP_NEXT]], ptr [[B]], align 8 ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[REF_TMP]], ptr align 8 [[ARGP_CUR]], i64 8, i1 false) ++// CHECK-NEXT: [[X1:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[REF_TMP]], i32 0, i32 0 ++// CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x float], ptr [[X1]], i64 0, i64 0 ++// CHECK-NEXT: [[TMP0:%.*]] = load float, ptr [[ARRAYIDX]], align 4 ++// CHECK-NEXT: store float [[TMP0]], ptr [[X]], align 4 ++// CHECK-NEXT: [[ARGP_CUR3:%.*]] = load ptr, ptr [[B]], align 8 ++// CHECK-NEXT: [[ARGP_NEXT4:%.*]] = getelementptr inbounds i8, ptr [[ARGP_CUR3]], i64 8 ++// CHECK-NEXT: store ptr [[ARGP_NEXT4]], ptr [[B]], align 8 ++// CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[ARGP_CUR3]], align 8 ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[REF_TMP2]], ptr align 4 [[TMP1]], i64 16, i1 false) ++// CHECK-NEXT: [[X5:%.*]] = getelementptr inbounds nuw [[STRUCT_B]], ptr [[REF_TMP2]], i32 0, i32 0 ++// CHECK-NEXT: [[ARRAYIDX6:%.*]] = getelementptr inbounds [4 x float], ptr [[X5]], i64 0, i64 0 ++// CHECK-NEXT: [[TMP2:%.*]] = load float, ptr [[ARRAYIDX6]], align 4 ++// CHECK-NEXT: store float [[TMP2]], ptr [[Y]], align 4 ++// CHECK-NEXT: ret void ++// ++// ++// CHECK-LABEL: @g( ++// CHECK-NEXT: entry: ++// CHECK-NEXT: [[A:%.*]] = alloca [[STRUCT_A:%.*]], align 4 ++// CHECK-NEXT: [[B:%.*]] = alloca [[STRUCT_B:%.*]], align 4 ++// CHECK-NEXT: [[BYVAL_TEMP:%.*]] = alloca [[STRUCT_B]], align 4 ++// CHECK-NEXT: [[COERCE_DIVE:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 ++// CHECK-NEXT: store [2 x float] [[A_COERCE:%.*]], ptr [[COERCE_DIVE]], align 4 ++// CHECK-NEXT: [[COERCE_DIVE1:%.*]] = getelementptr inbounds nuw [[STRUCT_B]], ptr [[B]], i32 0, i32 0 ++// CHECK-NEXT: store [4 x float] [[B_COERCE:%.*]], ptr [[COERCE_DIVE1]], align 4 ++// CHECK-NEXT: [[COERCE_DIVE2:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 ++// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[COERCE_DIVE2]], align 4 ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[BYVAL_TEMP]], ptr align 4 [[B]], i64 16, i1 false) ++// CHECK-NEXT: call void (i64, ...) @f(i64 [[TMP0]], ptr dead_on_return noundef [[BYVAL_TEMP]]) ++// CHECK-NEXT: ret void ++// diff --git a/docker/context/llvm-0002-Add-non-power-of-two-testcase.patch b/docker/context/llvm-0002-Add-non-power-of-two-testcase.patch new file mode 100644 index 00000000000..a4ded9852db --- /dev/null +++ b/docker/context/llvm-0002-Add-non-power-of-two-testcase.patch @@ -0,0 +1,116 @@ +From c5668510b7c8a1881d5764d6a67ff253523d21e9 Mon Sep 17 00:00:00 2001 +From: Eli Friedman +Date: Thu, 28 Aug 2025 16:38:28 -0700 +Subject: [PATCH] Add non-power-of-two testcase. + +--- + clang/test/CodeGen/arm64ec-varargs.c | 68 ++++++++++++++++++---------- + 1 file changed, 44 insertions(+), 24 deletions(-) + +diff --git a/clang/test/CodeGen/arm64ec-varargs.c b/clang/test/CodeGen/arm64ec-varargs.c +index 6bb5cff5fb30e..ef2c4dc5703b1 100644 +--- a/clang/test/CodeGen/arm64ec-varargs.c ++++ b/clang/test/CodeGen/arm64ec-varargs.c +@@ -2,58 +2,78 @@ + // RUN: %clang_cc1 -opaque-pointers -triple arm64ec-windows-msvc -emit-llvm -o - %s | FileCheck %s + + typedef struct { float x[2]; } A; +-typedef struct { float x[4]; } B; ++typedef struct { char x[6]; } B; ++typedef struct { float x[4]; } C; + void f(A a, ...) { +- __builtin_va_list b; +- __builtin_va_start(b, a); +- float x = __builtin_va_arg(b, A).x[0]; +- float y = __builtin_va_arg(b, B).x[0]; ++ __builtin_va_list args; ++ __builtin_va_start(args, a); ++ float x = __builtin_va_arg(args, A).x[0]; ++ float y = __builtin_va_arg(args, B).x[0]; ++ float z = __builtin_va_arg(args, C).x[0]; + } +-void g(A a, B b) { f(a, b); } ++void g(A a, B b, C c) { f(a, b, c); } + + // CHECK-LABEL: @f( + // CHECK-NEXT: entry: + // CHECK-NEXT: [[A:%.*]] = alloca [[STRUCT_A:%.*]], align 4 +-// CHECK-NEXT: [[B:%.*]] = alloca ptr, align 8 ++// CHECK-NEXT: [[ARGS:%.*]] = alloca ptr, align 8 + // CHECK-NEXT: [[X:%.*]] = alloca float, align 4 + // CHECK-NEXT: [[REF_TMP:%.*]] = alloca [[STRUCT_A]], align 4 + // CHECK-NEXT: [[Y:%.*]] = alloca float, align 4 +-// CHECK-NEXT: [[REF_TMP2:%.*]] = alloca [[STRUCT_B:%.*]], align 4 ++// CHECK-NEXT: [[REF_TMP2:%.*]] = alloca [[STRUCT_B:%.*]], align 1 ++// CHECK-NEXT: [[Z:%.*]] = alloca float, align 4 ++// CHECK-NEXT: [[REF_TMP7:%.*]] = alloca [[STRUCT_C:%.*]], align 4 + // CHECK-NEXT: [[COERCE_DIVE:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 + // CHECK-NEXT: store i64 [[A_COERCE:%.*]], ptr [[COERCE_DIVE]], align 4 +-// CHECK-NEXT: call void @llvm.va_start.p0(ptr [[B]]) +-// CHECK-NEXT: [[ARGP_CUR:%.*]] = load ptr, ptr [[B]], align 8 ++// CHECK-NEXT: call void @llvm.va_start.p0(ptr [[ARGS]]) ++// CHECK-NEXT: [[ARGP_CUR:%.*]] = load ptr, ptr [[ARGS]], align 8 + // CHECK-NEXT: [[ARGP_NEXT:%.*]] = getelementptr inbounds i8, ptr [[ARGP_CUR]], i64 8 +-// CHECK-NEXT: store ptr [[ARGP_NEXT]], ptr [[B]], align 8 ++// CHECK-NEXT: store ptr [[ARGP_NEXT]], ptr [[ARGS]], align 8 + // CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[REF_TMP]], ptr align 8 [[ARGP_CUR]], i64 8, i1 false) + // CHECK-NEXT: [[X1:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[REF_TMP]], i32 0, i32 0 + // CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x float], ptr [[X1]], i64 0, i64 0 + // CHECK-NEXT: [[TMP0:%.*]] = load float, ptr [[ARRAYIDX]], align 4 + // CHECK-NEXT: store float [[TMP0]], ptr [[X]], align 4 +-// CHECK-NEXT: [[ARGP_CUR3:%.*]] = load ptr, ptr [[B]], align 8 ++// CHECK-NEXT: [[ARGP_CUR3:%.*]] = load ptr, ptr [[ARGS]], align 8 + // CHECK-NEXT: [[ARGP_NEXT4:%.*]] = getelementptr inbounds i8, ptr [[ARGP_CUR3]], i64 8 +-// CHECK-NEXT: store ptr [[ARGP_NEXT4]], ptr [[B]], align 8 ++// CHECK-NEXT: store ptr [[ARGP_NEXT4]], ptr [[ARGS]], align 8 + // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[ARGP_CUR3]], align 8 +-// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[REF_TMP2]], ptr align 4 [[TMP1]], i64 16, i1 false) ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[REF_TMP2]], ptr align 1 [[TMP1]], i64 6, i1 false) + // CHECK-NEXT: [[X5:%.*]] = getelementptr inbounds nuw [[STRUCT_B]], ptr [[REF_TMP2]], i32 0, i32 0 +-// CHECK-NEXT: [[ARRAYIDX6:%.*]] = getelementptr inbounds [4 x float], ptr [[X5]], i64 0, i64 0 +-// CHECK-NEXT: [[TMP2:%.*]] = load float, ptr [[ARRAYIDX6]], align 4 +-// CHECK-NEXT: store float [[TMP2]], ptr [[Y]], align 4 ++// CHECK-NEXT: [[ARRAYIDX6:%.*]] = getelementptr inbounds [6 x i8], ptr [[X5]], i64 0, i64 0 ++// CHECK-NEXT: [[TMP2:%.*]] = load i8, ptr [[ARRAYIDX6]], align 1 ++// CHECK-NEXT: [[CONV:%.*]] = sitofp i8 [[TMP2]] to float ++// CHECK-NEXT: store float [[CONV]], ptr [[Y]], align 4 ++// CHECK-NEXT: [[ARGP_CUR8:%.*]] = load ptr, ptr [[ARGS]], align 8 ++// CHECK-NEXT: [[ARGP_NEXT9:%.*]] = getelementptr inbounds i8, ptr [[ARGP_CUR8]], i64 8 ++// CHECK-NEXT: store ptr [[ARGP_NEXT9]], ptr [[ARGS]], align 8 ++// CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[ARGP_CUR8]], align 8 ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[REF_TMP7]], ptr align 4 [[TMP3]], i64 16, i1 false) ++// CHECK-NEXT: [[X10:%.*]] = getelementptr inbounds nuw [[STRUCT_C]], ptr [[REF_TMP7]], i32 0, i32 0 ++// CHECK-NEXT: [[ARRAYIDX11:%.*]] = getelementptr inbounds [4 x float], ptr [[X10]], i64 0, i64 0 ++// CHECK-NEXT: [[TMP4:%.*]] = load float, ptr [[ARRAYIDX11]], align 4 ++// CHECK-NEXT: store float [[TMP4]], ptr [[Z]], align 4 + // CHECK-NEXT: ret void + // + // + // CHECK-LABEL: @g( + // CHECK-NEXT: entry: + // CHECK-NEXT: [[A:%.*]] = alloca [[STRUCT_A:%.*]], align 4 +-// CHECK-NEXT: [[B:%.*]] = alloca [[STRUCT_B:%.*]], align 4 +-// CHECK-NEXT: [[BYVAL_TEMP:%.*]] = alloca [[STRUCT_B]], align 4 ++// CHECK-NEXT: [[B:%.*]] = alloca [[STRUCT_B:%.*]], align 1 ++// CHECK-NEXT: [[C:%.*]] = alloca [[STRUCT_C:%.*]], align 4 ++// CHECK-NEXT: [[BYVAL_TEMP:%.*]] = alloca [[STRUCT_B]], align 1 ++// CHECK-NEXT: [[BYVAL_TEMP4:%.*]] = alloca [[STRUCT_C]], align 4 + // CHECK-NEXT: [[COERCE_DIVE:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 + // CHECK-NEXT: store [2 x float] [[A_COERCE:%.*]], ptr [[COERCE_DIVE]], align 4 + // CHECK-NEXT: [[COERCE_DIVE1:%.*]] = getelementptr inbounds nuw [[STRUCT_B]], ptr [[B]], i32 0, i32 0 +-// CHECK-NEXT: store [4 x float] [[B_COERCE:%.*]], ptr [[COERCE_DIVE1]], align 4 +-// CHECK-NEXT: [[COERCE_DIVE2:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 +-// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[COERCE_DIVE2]], align 4 +-// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[BYVAL_TEMP]], ptr align 4 [[B]], i64 16, i1 false) +-// CHECK-NEXT: call void (i64, ...) @f(i64 [[TMP0]], ptr dead_on_return noundef [[BYVAL_TEMP]]) ++// CHECK-NEXT: [[COERCE_VAL_II:%.*]] = trunc i64 [[B_COERCE:%.*]] to i48 ++// CHECK-NEXT: store i48 [[COERCE_VAL_II]], ptr [[COERCE_DIVE1]], align 1 ++// CHECK-NEXT: [[COERCE_DIVE2:%.*]] = getelementptr inbounds nuw [[STRUCT_C]], ptr [[C]], i32 0, i32 0 ++// CHECK-NEXT: store [4 x float] [[C_COERCE:%.*]], ptr [[COERCE_DIVE2]], align 4 ++// CHECK-NEXT: [[COERCE_DIVE3:%.*]] = getelementptr inbounds nuw [[STRUCT_A]], ptr [[A]], i32 0, i32 0 ++// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[COERCE_DIVE3]], align 4 ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[BYVAL_TEMP]], ptr align 1 [[B]], i64 6, i1 false) ++// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[BYVAL_TEMP4]], ptr align 4 [[C]], i64 16, i1 false) ++// CHECK-NEXT: call void (i64, ...) @f(i64 [[TMP0]], ptr dead_on_return noundef [[BYVAL_TEMP]], ptr dead_on_return noundef [[BYVAL_TEMP4]]) + // CHECK-NEXT: ret void + // diff --git a/docker/context/ninja-jobserver-client.patch b/docker/context/ninja-jobserver-client.patch deleted file mode 100644 index e27b9658d70..00000000000 --- a/docker/context/ninja-jobserver-client.patch +++ /dev/null @@ -1,2156 +0,0 @@ -diff -Naur --exclude .git ninja-1.11.1/CMakeLists.txt ninja-jobserver-client/CMakeLists.txt ---- ninja-1.11.1/CMakeLists.txt 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/CMakeLists.txt 2023-07-31 19:01:11.349732112 +0300 -@@ -112,6 +112,7 @@ - src/state.cc - src/status.cc - src/string_piece_util.cc -+ src/tokenpool-gnu-make.cc - src/util.cc - src/version.cc - ) -@@ -123,9 +124,13 @@ - src/msvc_helper_main-win32.cc - src/getopt.c - src/minidump-win32.cc -+ src/tokenpool-gnu-make-win32.cc - ) - else() -- target_sources(libninja PRIVATE src/subprocess-posix.cc) -+ target_sources(libninja PRIVATE -+ src/subprocess-posix.cc -+ src/tokenpool-gnu-make-posix.cc -+ ) - if(CMAKE_SYSTEM_NAME STREQUAL "OS400" OR CMAKE_SYSTEM_NAME STREQUAL "AIX") - target_sources(libninja PRIVATE src/getopt.c) - endif() -@@ -204,6 +209,7 @@ - src/string_piece_util_test.cc - src/subprocess_test.cc - src/test.cc -+ src/tokenpool_test.cc - src/util_test.cc - ) - if(WIN32) -diff -Naur --exclude .git ninja-1.11.1/configure.py ninja-jobserver-client/configure.py ---- ninja-1.11.1/configure.py 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/configure.py 2023-07-31 19:01:11.343065371 +0300 -@@ -517,11 +517,13 @@ - 'state', - 'status', - 'string_piece_util', -+ 'tokenpool-gnu-make', - 'util', - 'version']: - objs += cxx(name, variables=cxxvariables) - if platform.is_windows(): - for name in ['subprocess-win32', -+ 'tokenpool-gnu-make-win32', - 'includes_normalize-win32', - 'msvc_helper-win32', - 'msvc_helper_main-win32']: -@@ -530,7 +532,9 @@ - objs += cxx('minidump-win32', variables=cxxvariables) - objs += cc('getopt') - else: -- objs += cxx('subprocess-posix') -+ for name in ['subprocess-posix', -+ 'tokenpool-gnu-make-posix']: -+ objs += cxx(name) - if platform.is_aix(): - objs += cc('getopt') - if platform.is_msvc(): -@@ -588,6 +592,7 @@ - 'string_piece_util_test', - 'subprocess_test', - 'test', -+ 'tokenpool_test', - 'util_test']: - objs += cxx(name, variables=cxxvariables) - if platform.is_windows(): -diff -Naur --exclude .git ninja-1.11.1/src/build.cc ninja-jobserver-client/src/build.cc ---- ninja-1.11.1/src/build.cc 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/build.cc 2023-07-31 19:01:11.349732112 +0300 -@@ -35,6 +35,7 @@ - #include "state.h" - #include "status.h" - #include "subprocess.h" -+#include "tokenpool.h" - #include "util.h" - - using namespace std; -@@ -47,8 +48,9 @@ - - // Overridden from CommandRunner: - virtual bool CanRunMore() const; -+ virtual bool AcquireToken(); - virtual bool StartCommand(Edge* edge); -- virtual bool WaitForCommand(Result* result); -+ virtual bool WaitForCommand(Result* result, bool more_ready); - - private: - queue finished_; -@@ -58,12 +60,16 @@ - return true; - } - -+bool DryRunCommandRunner::AcquireToken() { -+ return true; -+} -+ - bool DryRunCommandRunner::StartCommand(Edge* edge) { - finished_.push(edge); - return true; - } - --bool DryRunCommandRunner::WaitForCommand(Result* result) { -+bool DryRunCommandRunner::WaitForCommand(Result* result, bool more_ready) { - if (finished_.empty()) - return false; - -@@ -149,7 +155,7 @@ - } - - Edge* Plan::FindWork() { -- if (ready_.empty()) -+ if (!more_ready()) - return NULL; - EdgeSet::iterator e = ready_.begin(); - Edge* edge = *e; -@@ -448,19 +454,39 @@ - } - - struct RealCommandRunner : public CommandRunner { -- explicit RealCommandRunner(const BuildConfig& config) : config_(config) {} -- virtual ~RealCommandRunner() {} -+ explicit RealCommandRunner(const BuildConfig& config); -+ virtual ~RealCommandRunner(); - virtual bool CanRunMore() const; -+ virtual bool AcquireToken(); - virtual bool StartCommand(Edge* edge); -- virtual bool WaitForCommand(Result* result); -+ virtual bool WaitForCommand(Result* result, bool more_ready); - virtual vector GetActiveEdges(); - virtual void Abort(); - - const BuildConfig& config_; -+ // copy of config_.max_load_average; can be modified by TokenPool setup -+ double max_load_average_; - SubprocessSet subprocs_; -+ TokenPool* tokens_; - map subproc_to_edge_; - }; - -+RealCommandRunner::RealCommandRunner(const BuildConfig& config) : config_(config) { -+ max_load_average_ = config.max_load_average; -+ if ((tokens_ = TokenPool::Get()) != NULL) { -+ if (!tokens_->Setup(config_.parallelism_from_cmdline, -+ config_.verbosity == BuildConfig::VERBOSE, -+ max_load_average_)) { -+ delete tokens_; -+ tokens_ = NULL; -+ } -+ } -+} -+ -+RealCommandRunner::~RealCommandRunner() { -+ delete tokens_; -+} -+ - vector RealCommandRunner::GetActiveEdges() { - vector edges; - for (map::iterator e = subproc_to_edge_.begin(); -@@ -471,14 +497,23 @@ - - void RealCommandRunner::Abort() { - subprocs_.Clear(); -+ if (tokens_) -+ tokens_->Clear(); - } - - bool RealCommandRunner::CanRunMore() const { -- size_t subproc_number = -- subprocs_.running_.size() + subprocs_.finished_.size(); -- return (int)subproc_number < config_.parallelism -- && ((subprocs_.running_.empty() || config_.max_load_average <= 0.0f) -- || GetLoadAverage() < config_.max_load_average); -+ bool parallelism_limit_not_reached = -+ tokens_ || // ignore config_.parallelism -+ ((int) (subprocs_.running_.size() + -+ subprocs_.finished_.size()) < config_.parallelism); -+ return parallelism_limit_not_reached -+ && (subprocs_.running_.empty() || -+ (max_load_average_ <= 0.0f || -+ GetLoadAverage() < max_load_average_)); -+} -+ -+bool RealCommandRunner::AcquireToken() { -+ return (!tokens_ || tokens_->Acquire()); - } - - bool RealCommandRunner::StartCommand(Edge* edge) { -@@ -486,19 +521,33 @@ - Subprocess* subproc = subprocs_.Add(command, edge->use_console()); - if (!subproc) - return false; -+ if (tokens_) -+ tokens_->Reserve(); - subproc_to_edge_.insert(make_pair(subproc, edge)); - - return true; - } - --bool RealCommandRunner::WaitForCommand(Result* result) { -+bool RealCommandRunner::WaitForCommand(Result* result, bool more_ready) { - Subprocess* subproc; -- while ((subproc = subprocs_.NextFinished()) == NULL) { -- bool interrupted = subprocs_.DoWork(); -+ subprocs_.ResetTokenAvailable(); -+ while (((subproc = subprocs_.NextFinished()) == NULL) && -+ !subprocs_.IsTokenAvailable()) { -+ bool interrupted = subprocs_.DoWork(more_ready ? tokens_ : NULL); - if (interrupted) - return false; - } - -+ // token became available -+ if (subproc == NULL) { -+ result->status = ExitTokenAvailable; -+ return true; -+ } -+ -+ // command completed -+ if (tokens_) -+ tokens_->Release(); -+ - result->status = subproc->Finish(); - result->output = subproc->GetOutput(); - -@@ -620,38 +669,43 @@ - // command runner. - // Second, we attempt to wait for / reap the next finished command. - while (plan_.more_to_do()) { -- // See if we can start any more commands. -- if (failures_allowed && command_runner_->CanRunMore()) { -- if (Edge* edge = plan_.FindWork()) { -- if (edge->GetBindingBool("generator")) { -+ // See if we can start any more commands... -+ bool can_run_more = -+ failures_allowed && -+ plan_.more_ready() && -+ command_runner_->CanRunMore(); -+ -+ // ... but we also need a token to do that. -+ if (can_run_more && command_runner_->AcquireToken()) { -+ Edge* edge = plan_.FindWork(); -+ if (edge->GetBindingBool("generator")) { - scan_.build_log()->Close(); - } - -- if (!StartEdge(edge, err)) { -+ if (!StartEdge(edge, err)) { -+ Cleanup(); -+ status_->BuildFinished(); -+ return false; -+ } -+ -+ if (edge->is_phony()) { -+ if (!plan_.EdgeFinished(edge, Plan::kEdgeSucceeded, err)) { - Cleanup(); - status_->BuildFinished(); - return false; - } -- -- if (edge->is_phony()) { -- if (!plan_.EdgeFinished(edge, Plan::kEdgeSucceeded, err)) { -- Cleanup(); -- status_->BuildFinished(); -- return false; -- } -- } else { -- ++pending_commands; -- } -- -- // We made some progress; go back to the main loop. -- continue; -+ } else { -+ ++pending_commands; - } -+ -+ // We made some progress; go back to the main loop. -+ continue; - } - - // See if we can reap any finished commands. - if (pending_commands) { - CommandRunner::Result result; -- if (!command_runner_->WaitForCommand(&result) || -+ if (!command_runner_->WaitForCommand(&result, can_run_more) || - result.status == ExitInterrupted) { - Cleanup(); - status_->BuildFinished(); -@@ -659,6 +713,10 @@ - return false; - } - -+ // We might be able to start another command; start the main loop over. -+ if (result.status == ExitTokenAvailable) -+ continue; -+ - --pending_commands; - if (!FinishCommand(&result, err)) { - Cleanup(); -diff -Naur --exclude .git ninja-1.11.1/src/build.h ninja-jobserver-client/src/build.h ---- ninja-1.11.1/src/build.h 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/build.h 2023-07-31 19:01:11.326398526 +0300 -@@ -52,6 +52,9 @@ - /// Returns true if there's more work to be done. - bool more_to_do() const { return wanted_edges_ > 0 && command_edges_ > 0; } - -+ /// Returns true if there's more edges ready to start -+ bool more_ready() const { return !ready_.empty(); } -+ - /// Dumps the current state of the plan. - void Dump() const; - -@@ -136,6 +139,7 @@ - struct CommandRunner { - virtual ~CommandRunner() {} - virtual bool CanRunMore() const = 0; -+ virtual bool AcquireToken() = 0; - virtual bool StartCommand(Edge* edge) = 0; - - /// The result of waiting for a command. -@@ -147,7 +151,9 @@ - bool success() const { return status == ExitSuccess; } - }; - /// Wait for a command to complete, or return false if interrupted. -- virtual bool WaitForCommand(Result* result) = 0; -+ /// If more_ready is true then the optional TokenPool is monitored too -+ /// and we return when a token becomes available. -+ virtual bool WaitForCommand(Result* result, bool more_ready) = 0; - - virtual std::vector GetActiveEdges() { return std::vector(); } - virtual void Abort() {} -@@ -155,7 +161,8 @@ - - /// Options (e.g. verbosity, parallelism) passed to a build. - struct BuildConfig { -- BuildConfig() : verbosity(NORMAL), dry_run(false), parallelism(1), -+ BuildConfig() : verbosity(NORMAL), dry_run(false), -+ parallelism(1), parallelism_from_cmdline(false), - failures_allowed(1), max_load_average(-0.0f) {} - - enum Verbosity { -@@ -167,6 +174,7 @@ - Verbosity verbosity; - bool dry_run; - int parallelism; -+ bool parallelism_from_cmdline; - int failures_allowed; - /// The maximum load average we must not exceed. A negative value - /// means that we do not have any limit. -diff -Naur --exclude .git ninja-1.11.1/src/build_test.cc ninja-jobserver-client/src/build_test.cc ---- ninja-1.11.1/src/build_test.cc 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/build_test.cc 2023-07-31 19:01:11.349732112 +0300 -@@ -15,6 +15,7 @@ - #include "build.h" - - #include -+#include - - #include "build_log.h" - #include "deps_log.h" -@@ -474,8 +475,9 @@ - - // CommandRunner impl - virtual bool CanRunMore() const; -+ virtual bool AcquireToken(); - virtual bool StartCommand(Edge* edge); -- virtual bool WaitForCommand(Result* result); -+ virtual bool WaitForCommand(Result* result, bool more_ready); - virtual vector GetActiveEdges(); - virtual void Abort(); - -@@ -578,6 +580,10 @@ - return active_edges_.size() < max_active_edges_; - } - -+bool FakeCommandRunner::AcquireToken() { -+ return true; -+} -+ - bool FakeCommandRunner::StartCommand(Edge* edge) { - assert(active_edges_.size() < max_active_edges_); - assert(find(active_edges_.begin(), active_edges_.end(), edge) -@@ -649,7 +655,7 @@ - return true; - } - --bool FakeCommandRunner::WaitForCommand(Result* result) { -+bool FakeCommandRunner::WaitForCommand(Result* result, bool more_ready) { - if (active_edges_.empty()) - return false; - -@@ -3985,3 +3991,356 @@ - EXPECT_FALSE(builder_.AddTarget("out", &err)); - EXPECT_EQ("dependency cycle: validate -> validate_in -> validate", err); - } -+ -+/// The token tests are concerned with the main loop functionality when -+// the CommandRunner has an active TokenPool. It is therefore intentional -+// that the plan doesn't complete and that builder_.Build() returns false! -+ -+/// Fake implementation of CommandRunner that simulates a TokenPool -+struct FakeTokenCommandRunner : public CommandRunner { -+ explicit FakeTokenCommandRunner() {} -+ -+ // CommandRunner impl -+ virtual bool CanRunMore() const; -+ virtual bool AcquireToken(); -+ virtual bool StartCommand(Edge* edge); -+ virtual bool WaitForCommand(Result* result, bool more_ready); -+ virtual vector GetActiveEdges(); -+ virtual void Abort(); -+ -+ vector commands_ran_; -+ vector edges_; -+ -+ vector acquire_token_; -+ vector can_run_more_; -+ vector wait_for_command_; -+}; -+ -+bool FakeTokenCommandRunner::CanRunMore() const { -+ if (can_run_more_.size() == 0) { -+ EXPECT_FALSE("unexpected call to CommandRunner::CanRunMore()"); -+ return false; -+ } -+ -+ bool result = can_run_more_[0]; -+ -+ // Unfortunately CanRunMore() isn't "const" for tests -+ const_cast(this)->can_run_more_.erase( -+ const_cast(this)->can_run_more_.begin() -+ ); -+ -+ return result; -+} -+ -+bool FakeTokenCommandRunner::AcquireToken() { -+ if (acquire_token_.size() == 0) { -+ EXPECT_FALSE("unexpected call to CommandRunner::AcquireToken()"); -+ return false; -+ } -+ -+ bool result = acquire_token_[0]; -+ acquire_token_.erase(acquire_token_.begin()); -+ return result; -+} -+ -+bool FakeTokenCommandRunner::StartCommand(Edge* edge) { -+ commands_ran_.push_back(edge->EvaluateCommand()); -+ edges_.push_back(edge); -+ return true; -+} -+ -+bool FakeTokenCommandRunner::WaitForCommand(Result* result, bool more_ready) { -+ if (wait_for_command_.size() == 0) { -+ EXPECT_FALSE("unexpected call to CommandRunner::WaitForCommand()"); -+ return false; -+ } -+ -+ bool expected = wait_for_command_[0]; -+ if (expected != more_ready) { -+ EXPECT_EQ(expected, more_ready); -+ return false; -+ } -+ wait_for_command_.erase(wait_for_command_.begin()); -+ -+ if (edges_.size() == 0) -+ return false; -+ -+ Edge* edge = edges_[0]; -+ result->edge = edge; -+ -+ if (more_ready && -+ (edge->rule().name() == "token-available")) { -+ result->status = ExitTokenAvailable; -+ } else { -+ edges_.erase(edges_.begin()); -+ result->status = ExitSuccess; -+ } -+ -+ return true; -+} -+ -+vector FakeTokenCommandRunner::GetActiveEdges() { -+ return edges_; -+} -+ -+void FakeTokenCommandRunner::Abort() { -+ edges_.clear(); -+} -+ -+struct BuildTokenTest : public BuildTest { -+ virtual void SetUp(); -+ virtual void TearDown(); -+ -+ FakeTokenCommandRunner token_command_runner_; -+ -+ void ExpectAcquireToken(int count, ...); -+ void ExpectCanRunMore(int count, ...); -+ void ExpectWaitForCommand(int count, ...); -+ -+private: -+ void EnqueueBooleans(vector& booleans, int count, va_list ap); -+}; -+ -+void BuildTokenTest::SetUp() { -+ BuildTest::SetUp(); -+ -+ // replace FakeCommandRunner with FakeTokenCommandRunner -+ builder_.command_runner_.release(); -+ builder_.command_runner_.reset(&token_command_runner_); -+} -+void BuildTokenTest::TearDown() { -+ EXPECT_EQ(0u, token_command_runner_.acquire_token_.size()); -+ EXPECT_EQ(0u, token_command_runner_.can_run_more_.size()); -+ EXPECT_EQ(0u, token_command_runner_.wait_for_command_.size()); -+ -+ BuildTest::TearDown(); -+} -+ -+void BuildTokenTest::ExpectAcquireToken(int count, ...) { -+ va_list ap; -+ va_start(ap, count); -+ EnqueueBooleans(token_command_runner_.acquire_token_, count, ap); -+ va_end(ap); -+} -+ -+void BuildTokenTest::ExpectCanRunMore(int count, ...) { -+ va_list ap; -+ va_start(ap, count); -+ EnqueueBooleans(token_command_runner_.can_run_more_, count, ap); -+ va_end(ap); -+} -+ -+void BuildTokenTest::ExpectWaitForCommand(int count, ...) { -+ va_list ap; -+ va_start(ap, count); -+ EnqueueBooleans(token_command_runner_.wait_for_command_, count, ap); -+ va_end(ap); -+} -+ -+void BuildTokenTest::EnqueueBooleans(vector& booleans, int count, va_list ap) { -+ while (count--) { -+ int value = va_arg(ap, int); -+ booleans.push_back(!!value); // force bool -+ } -+} -+ -+TEST_F(BuildTokenTest, DoNotAquireToken) { -+ // plan should execute one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("cat1", &err)); -+ ASSERT_EQ("", err); -+ -+ // pretend we can't run anything -+ ExpectCanRunMore(1, false); -+ -+ EXPECT_FALSE(builder_.Build(&err)); -+ EXPECT_EQ("stuck [this is a bug]", err); -+ -+ EXPECT_EQ(0u, token_command_runner_.commands_ran_.size()); -+} -+ -+TEST_F(BuildTokenTest, DoNotStartWithoutToken) { -+ // plan should execute one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("cat1", &err)); -+ ASSERT_EQ("", err); -+ -+ // we could run a command but do not have a token for it -+ ExpectCanRunMore(1, true); -+ ExpectAcquireToken(1, false); -+ -+ EXPECT_FALSE(builder_.Build(&err)); -+ EXPECT_EQ("stuck [this is a bug]", err); -+ -+ EXPECT_EQ(0u, token_command_runner_.commands_ran_.size()); -+} -+ -+TEST_F(BuildTokenTest, CompleteOneStep) { -+ // plan should execute one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("cat1", &err)); -+ ASSERT_EQ("", err); -+ -+ // allow running of one command -+ ExpectCanRunMore(1, true); -+ ExpectAcquireToken(1, true); -+ // block and wait for command to finalize -+ ExpectWaitForCommand(1, false); -+ -+ EXPECT_TRUE(builder_.Build(&err)); -+ EXPECT_EQ("", err); -+ -+ EXPECT_EQ(1u, token_command_runner_.commands_ran_.size()); -+ EXPECT_TRUE(token_command_runner_.commands_ran_[0] == "cat in1 > cat1"); -+} -+ -+TEST_F(BuildTokenTest, AcquireOneToken) { -+ // plan should execute more than one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("cat12", &err)); -+ ASSERT_EQ("", err); -+ -+ // allow running of one command -+ ExpectCanRunMore(3, true, false, false); -+ ExpectAcquireToken(1, true); -+ // block and wait for command to finalize -+ ExpectWaitForCommand(1, false); -+ -+ EXPECT_FALSE(builder_.Build(&err)); -+ EXPECT_EQ("stuck [this is a bug]", err); -+ -+ EXPECT_EQ(1u, token_command_runner_.commands_ran_.size()); -+ // any of the two dependencies could have been executed -+ EXPECT_TRUE(token_command_runner_.commands_ran_[0] == "cat in1 > cat1" || -+ token_command_runner_.commands_ran_[0] == "cat in1 in2 > cat2"); -+} -+ -+TEST_F(BuildTokenTest, WantTwoTokens) { -+ // plan should execute more than one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("cat12", &err)); -+ ASSERT_EQ("", err); -+ -+ // allow running of one command -+ ExpectCanRunMore(3, true, true, false); -+ ExpectAcquireToken(2, true, false); -+ // wait for command to finalize or token to become available -+ ExpectWaitForCommand(1, true); -+ -+ EXPECT_FALSE(builder_.Build(&err)); -+ EXPECT_EQ("stuck [this is a bug]", err); -+ -+ EXPECT_EQ(1u, token_command_runner_.commands_ran_.size()); -+ // any of the two dependencies could have been executed -+ EXPECT_TRUE(token_command_runner_.commands_ran_[0] == "cat in1 > cat1" || -+ token_command_runner_.commands_ran_[0] == "cat in1 in2 > cat2"); -+} -+ -+TEST_F(BuildTokenTest, CompleteTwoSteps) { -+ ASSERT_NO_FATAL_FAILURE(AssertParse(&state_, -+"build out1: cat in1\n" -+"build out2: cat out1\n")); -+ -+ // plan should execute more than one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("out2", &err)); -+ ASSERT_EQ("", err); -+ -+ // allow running of two commands -+ ExpectCanRunMore(2, true, true); -+ ExpectAcquireToken(2, true, true); -+ // wait for commands to finalize -+ ExpectWaitForCommand(2, false, false); -+ -+ EXPECT_TRUE(builder_.Build(&err)); -+ EXPECT_EQ("", err); -+ -+ EXPECT_EQ(2u, token_command_runner_.commands_ran_.size()); -+ EXPECT_TRUE(token_command_runner_.commands_ran_[0] == "cat in1 > out1"); -+ EXPECT_TRUE(token_command_runner_.commands_ran_[1] == "cat out1 > out2"); -+} -+ -+TEST_F(BuildTokenTest, TwoCommandsInParallel) { -+ ASSERT_NO_FATAL_FAILURE(AssertParse(&state_, -+"rule token-available\n" -+" command = cat $in > $out\n" -+"build out1: token-available in1\n" -+"build out2: token-available in2\n" -+"build out12: cat out1 out2\n")); -+ -+ // plan should execute more than one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("out12", &err)); -+ ASSERT_EQ("", err); -+ -+ // 1st command: token available -> allow running -+ // 2nd command: no token available but becomes available later -+ ExpectCanRunMore(4, true, true, true, false); -+ ExpectAcquireToken(3, true, false, true); -+ // 1st call waits for command to finalize or token to become available -+ // 2nd call waits for command to finalize -+ // 3rd call waits for command to finalize -+ ExpectWaitForCommand(3, true, false, false); -+ -+ EXPECT_FALSE(builder_.Build(&err)); -+ EXPECT_EQ("stuck [this is a bug]", err); -+ -+ EXPECT_EQ(2u, token_command_runner_.commands_ran_.size()); -+ EXPECT_TRUE((token_command_runner_.commands_ran_[0] == "cat in1 > out1" && -+ token_command_runner_.commands_ran_[1] == "cat in2 > out2") || -+ (token_command_runner_.commands_ran_[0] == "cat in2 > out2" && -+ token_command_runner_.commands_ran_[1] == "cat in1 > out1")); -+} -+ -+TEST_F(BuildTokenTest, CompleteThreeStepsSerial) { -+ // plan should execute more than one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("cat12", &err)); -+ ASSERT_EQ("", err); -+ -+ // allow running of all commands -+ ExpectCanRunMore(4, true, true, true, true); -+ ExpectAcquireToken(4, true, false, true, true); -+ // wait for commands to finalize -+ ExpectWaitForCommand(3, true, false, false); -+ -+ EXPECT_TRUE(builder_.Build(&err)); -+ EXPECT_EQ("", err); -+ -+ EXPECT_EQ(3u, token_command_runner_.commands_ran_.size()); -+ EXPECT_TRUE((token_command_runner_.commands_ran_[0] == "cat in1 > cat1" && -+ token_command_runner_.commands_ran_[1] == "cat in1 in2 > cat2") || -+ (token_command_runner_.commands_ran_[0] == "cat in1 in2 > cat2" && -+ token_command_runner_.commands_ran_[1] == "cat in1 > cat1" )); -+ EXPECT_TRUE(token_command_runner_.commands_ran_[2] == "cat cat1 cat2 > cat12"); -+} -+ -+TEST_F(BuildTokenTest, CompleteThreeStepsParallel) { -+ ASSERT_NO_FATAL_FAILURE(AssertParse(&state_, -+"rule token-available\n" -+" command = cat $in > $out\n" -+"build out1: token-available in1\n" -+"build out2: token-available in2\n" -+"build out12: cat out1 out2\n")); -+ -+ // plan should execute more than one command -+ string err; -+ EXPECT_TRUE(builder_.AddTarget("out12", &err)); -+ ASSERT_EQ("", err); -+ -+ // allow running of all commands -+ ExpectCanRunMore(4, true, true, true, true); -+ ExpectAcquireToken(4, true, false, true, true); -+ // wait for commands to finalize -+ ExpectWaitForCommand(4, true, false, false, false); -+ -+ EXPECT_TRUE(builder_.Build(&err)); -+ EXPECT_EQ("", err); -+ -+ EXPECT_EQ(3u, token_command_runner_.commands_ran_.size()); -+ EXPECT_TRUE((token_command_runner_.commands_ran_[0] == "cat in1 > out1" && -+ token_command_runner_.commands_ran_[1] == "cat in2 > out2") || -+ (token_command_runner_.commands_ran_[0] == "cat in2 > out2" && -+ token_command_runner_.commands_ran_[1] == "cat in1 > out1")); -+ EXPECT_TRUE(token_command_runner_.commands_ran_[2] == "cat out1 out2 > out12"); -+} -diff -Naur --exclude .git ninja-1.11.1/src/exit_status.h ninja-jobserver-client/src/exit_status.h ---- ninja-1.11.1/src/exit_status.h 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/exit_status.h 2023-07-31 19:01:11.309731680 +0300 -@@ -18,7 +18,8 @@ - enum ExitStatus { - ExitSuccess, - ExitFailure, -- ExitInterrupted -+ ExitTokenAvailable, -+ ExitInterrupted, - }; - - #endif // NINJA_EXIT_STATUS_H_ -diff -Naur --exclude .git ninja-1.11.1/src/ninja.cc ninja-jobserver-client/src/ninja.cc ---- ninja-1.11.1/src/ninja.cc 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/ninja.cc 2023-07-31 19:01:11.313065049 +0300 -@@ -1447,6 +1447,7 @@ - // We want to run N jobs in parallel. For N = 0, INT_MAX - // is close enough to infinite for most sane builds. - config->parallelism = value > 0 ? value : INT_MAX; -+ config->parallelism_from_cmdline = true; - deferGuessParallelism.needGuess = false; - break; - } -diff -Naur --exclude .git ninja-1.11.1/src/subprocess.h ninja-jobserver-client/src/subprocess.h ---- ninja-1.11.1/src/subprocess.h 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/subprocess.h 2023-07-31 19:01:11.353065478 +0300 -@@ -76,6 +76,8 @@ - friend struct SubprocessSet; - }; - -+struct TokenPool; -+ - /// SubprocessSet runs a ppoll/pselect() loop around a set of Subprocesses. - /// DoWork() waits for any state change in subprocesses; finished_ - /// is a queue of subprocesses as they finish. -@@ -84,13 +86,17 @@ - ~SubprocessSet(); - - Subprocess* Add(const std::string& command, bool use_console = false); -- bool DoWork(); -+ bool DoWork(TokenPool* tokens); - Subprocess* NextFinished(); - void Clear(); - - std::vector running_; - std::queue finished_; - -+ bool token_available_; -+ bool IsTokenAvailable() { return token_available_; } -+ void ResetTokenAvailable() { token_available_ = false; } -+ - #ifdef _WIN32 - static BOOL WINAPI NotifyInterrupted(DWORD dwCtrlType); - static HANDLE ioport_; -diff -Naur --exclude .git ninja-1.11.1/src/subprocess-posix.cc ninja-jobserver-client/src/subprocess-posix.cc ---- ninja-1.11.1/src/subprocess-posix.cc 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/subprocess-posix.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -13,6 +13,7 @@ - // limitations under the License. - - #include "subprocess.h" -+#include "tokenpool.h" - - #include - #include -@@ -249,7 +250,7 @@ - } - - #ifdef USE_PPOLL --bool SubprocessSet::DoWork() { -+bool SubprocessSet::DoWork(TokenPool* tokens) { - vector fds; - nfds_t nfds = 0; - -@@ -263,6 +264,12 @@ - ++nfds; - } - -+ if (tokens) { -+ pollfd pfd = { tokens->GetMonitorFd(), POLLIN | POLLPRI, 0 }; -+ fds.push_back(pfd); -+ ++nfds; -+ } -+ - interrupted_ = 0; - int ret = ppoll(&fds.front(), nfds, NULL, &old_mask_); - if (ret == -1) { -@@ -295,11 +302,20 @@ - ++i; - } - -+ if (tokens) { -+ pollfd *pfd = &fds[nfds - 1]; -+ if (pfd->fd >= 0) { -+ assert(pfd->fd == tokens->GetMonitorFd()); -+ if (pfd->revents != 0) -+ token_available_ = true; -+ } -+ } -+ - return IsInterrupted(); - } - - #else // !defined(USE_PPOLL) --bool SubprocessSet::DoWork() { -+bool SubprocessSet::DoWork(TokenPool* tokens) { - fd_set set; - int nfds = 0; - FD_ZERO(&set); -@@ -314,6 +330,13 @@ - } - } - -+ if (tokens) { -+ int fd = tokens->GetMonitorFd(); -+ FD_SET(fd, &set); -+ if (nfds < fd+1) -+ nfds = fd+1; -+ } -+ - interrupted_ = 0; - int ret = pselect(nfds, &set, 0, 0, 0, &old_mask_); - if (ret == -1) { -@@ -342,6 +365,12 @@ - ++i; - } - -+ if (tokens) { -+ int fd = tokens->GetMonitorFd(); -+ if ((fd >= 0) && FD_ISSET(fd, &set)) -+ token_available_ = true; -+ } -+ - return IsInterrupted(); - } - #endif // !defined(USE_PPOLL) -diff -Naur --exclude .git ninja-1.11.1/src/subprocess_test.cc ninja-jobserver-client/src/subprocess_test.cc ---- ninja-1.11.1/src/subprocess_test.cc 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/subprocess_test.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -13,6 +13,7 @@ - // limitations under the License. - - #include "subprocess.h" -+#include "tokenpool.h" - - #include "test.h" - -@@ -34,8 +35,30 @@ - const char* kSimpleCommand = "ls /"; - #endif - -+struct TestTokenPool : public TokenPool { -+ bool Acquire() { return false; } -+ void Reserve() {} -+ void Release() {} -+ void Clear() {} -+ bool Setup(bool ignore_unused, bool verbose, double& max_load_average) { return false; } -+ -+#ifdef _WIN32 -+ bool _token_available; -+ void WaitForTokenAvailability(HANDLE ioport) { -+ if (_token_available) -+ // unblock GetQueuedCompletionStatus() -+ PostQueuedCompletionStatus(ioport, 0, (ULONG_PTR) this, NULL); -+ } -+ bool TokenIsAvailable(ULONG_PTR key) { return key == (ULONG_PTR) this; } -+#else -+ int _fd; -+ int GetMonitorFd() { return _fd; } -+#endif -+}; -+ - struct SubprocessTest : public testing::Test { - SubprocessSet subprocs_; -+ TestTokenPool tokens_; - }; - - } // anonymous namespace -@@ -45,10 +68,12 @@ - Subprocess* subproc = subprocs_.Add("cmd /c ninja_no_such_command"); - ASSERT_NE((Subprocess *) 0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { - // Pretend we discovered that stderr was ready for writing. -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - - EXPECT_EQ(ExitFailure, subproc->Finish()); - EXPECT_NE("", subproc->GetOutput()); -@@ -59,10 +84,12 @@ - Subprocess* subproc = subprocs_.Add("ninja_no_such_command"); - ASSERT_NE((Subprocess *) 0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { - // Pretend we discovered that stderr was ready for writing. -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - - EXPECT_EQ(ExitFailure, subproc->Finish()); - EXPECT_NE("", subproc->GetOutput()); -@@ -78,9 +105,11 @@ - Subprocess* subproc = subprocs_.Add("kill -INT $$"); - ASSERT_NE((Subprocess *) 0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - - EXPECT_EQ(ExitInterrupted, subproc->Finish()); - } -@@ -90,7 +119,7 @@ - ASSERT_NE((Subprocess *) 0, subproc); - - while (!subproc->Done()) { -- bool interrupted = subprocs_.DoWork(); -+ bool interrupted = subprocs_.DoWork(NULL); - if (interrupted) - return; - } -@@ -102,9 +131,11 @@ - Subprocess* subproc = subprocs_.Add("kill -TERM $$"); - ASSERT_NE((Subprocess *) 0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - - EXPECT_EQ(ExitInterrupted, subproc->Finish()); - } -@@ -114,7 +145,7 @@ - ASSERT_NE((Subprocess *) 0, subproc); - - while (!subproc->Done()) { -- bool interrupted = subprocs_.DoWork(); -+ bool interrupted = subprocs_.DoWork(NULL); - if (interrupted) - return; - } -@@ -126,9 +157,11 @@ - Subprocess* subproc = subprocs_.Add("kill -HUP $$"); - ASSERT_NE((Subprocess *) 0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - - EXPECT_EQ(ExitInterrupted, subproc->Finish()); - } -@@ -138,7 +171,7 @@ - ASSERT_NE((Subprocess *) 0, subproc); - - while (!subproc->Done()) { -- bool interrupted = subprocs_.DoWork(); -+ bool interrupted = subprocs_.DoWork(NULL); - if (interrupted) - return; - } -@@ -153,9 +186,11 @@ - subprocs_.Add("test -t 0 -a -t 1 -a -t 2", /*use_console=*/true); - ASSERT_NE((Subprocess*)0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - - EXPECT_EQ(ExitSuccess, subproc->Finish()); - } -@@ -167,9 +202,11 @@ - Subprocess* subproc = subprocs_.Add(kSimpleCommand); - ASSERT_NE((Subprocess *) 0, subproc); - -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - ASSERT_EQ(ExitSuccess, subproc->Finish()); - ASSERT_NE("", subproc->GetOutput()); - -@@ -200,12 +237,13 @@ - ASSERT_EQ("", processes[i]->GetOutput()); - } - -+ subprocs_.ResetTokenAvailable(); - while (!processes[0]->Done() || !processes[1]->Done() || - !processes[2]->Done()) { - ASSERT_GT(subprocs_.running_.size(), 0u); -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -- -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - ASSERT_EQ(0u, subprocs_.running_.size()); - ASSERT_EQ(3u, subprocs_.finished_.size()); - -@@ -237,8 +275,10 @@ - ASSERT_NE((Subprocess *) 0, subproc); - procs.push_back(subproc); - } -+ subprocs_.ResetTokenAvailable(); - while (!subprocs_.running_.empty()) -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - for (size_t i = 0; i < procs.size(); ++i) { - ASSERT_EQ(ExitSuccess, procs[i]->Finish()); - ASSERT_NE("", procs[i]->GetOutput()); -@@ -254,10 +294,91 @@ - // that stdin is closed. - TEST_F(SubprocessTest, ReadStdin) { - Subprocess* subproc = subprocs_.Add("cat -"); -+ subprocs_.ResetTokenAvailable(); - while (!subproc->Done()) { -- subprocs_.DoWork(); -+ subprocs_.DoWork(NULL); - } -+ ASSERT_FALSE(subprocs_.IsTokenAvailable()); - ASSERT_EQ(ExitSuccess, subproc->Finish()); - ASSERT_EQ(1u, subprocs_.finished_.size()); - } - #endif // _WIN32 -+ -+TEST_F(SubprocessTest, TokenAvailable) { -+ Subprocess* subproc = subprocs_.Add(kSimpleCommand); -+ ASSERT_NE((Subprocess *) 0, subproc); -+ -+ // simulate GNUmake jobserver pipe with 1 token -+#ifdef _WIN32 -+ tokens_._token_available = true; -+#else -+ int fds[2]; -+ ASSERT_EQ(0u, pipe(fds)); -+ tokens_._fd = fds[0]; -+ ASSERT_EQ(1u, write(fds[1], "T", 1)); -+#endif -+ -+ subprocs_.ResetTokenAvailable(); -+ subprocs_.DoWork(&tokens_); -+#ifdef _WIN32 -+ tokens_._token_available = false; -+ // we need to loop here as we have no control where the token -+ // I/O completion post ends up in the queue -+ while (!subproc->Done() && !subprocs_.IsTokenAvailable()) { -+ subprocs_.DoWork(&tokens_); -+ } -+#endif -+ -+ EXPECT_TRUE(subprocs_.IsTokenAvailable()); -+ EXPECT_EQ(0u, subprocs_.finished_.size()); -+ -+ // remove token to let DoWork() wait for command again -+#ifndef _WIN32 -+ char token; -+ ASSERT_EQ(1u, read(fds[0], &token, 1)); -+#endif -+ -+ while (!subproc->Done()) { -+ subprocs_.DoWork(&tokens_); -+ } -+ -+#ifndef _WIN32 -+ close(fds[1]); -+ close(fds[0]); -+#endif -+ -+ EXPECT_EQ(ExitSuccess, subproc->Finish()); -+ EXPECT_NE("", subproc->GetOutput()); -+ -+ EXPECT_EQ(1u, subprocs_.finished_.size()); -+} -+ -+TEST_F(SubprocessTest, TokenNotAvailable) { -+ Subprocess* subproc = subprocs_.Add(kSimpleCommand); -+ ASSERT_NE((Subprocess *) 0, subproc); -+ -+ // simulate GNUmake jobserver pipe with 0 tokens -+#ifdef _WIN32 -+ tokens_._token_available = false; -+#else -+ int fds[2]; -+ ASSERT_EQ(0u, pipe(fds)); -+ tokens_._fd = fds[0]; -+#endif -+ -+ subprocs_.ResetTokenAvailable(); -+ while (!subproc->Done()) { -+ subprocs_.DoWork(&tokens_); -+ } -+ -+#ifndef _WIN32 -+ close(fds[1]); -+ close(fds[0]); -+#endif -+ -+ EXPECT_FALSE(subprocs_.IsTokenAvailable()); -+ EXPECT_EQ(ExitSuccess, subproc->Finish()); -+ EXPECT_NE("", subproc->GetOutput()); -+ -+ EXPECT_EQ(1u, subprocs_.finished_.size()); -+} -diff -Naur --exclude .git ninja-1.11.1/src/subprocess-win32.cc ninja-jobserver-client/src/subprocess-win32.cc ---- ninja-1.11.1/src/subprocess-win32.cc 2022-08-30 22:47:02.000000000 +0300 -+++ ninja-jobserver-client/src/subprocess-win32.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -13,6 +13,7 @@ - // limitations under the License. - - #include "subprocess.h" -+#include "tokenpool.h" - - #include - #include -@@ -251,11 +252,14 @@ - return subprocess; - } - --bool SubprocessSet::DoWork() { -+bool SubprocessSet::DoWork(TokenPool* tokens) { - DWORD bytes_read; - Subprocess* subproc; - OVERLAPPED* overlapped; - -+ if (tokens) -+ tokens->WaitForTokenAvailability(ioport_); -+ - if (!GetQueuedCompletionStatus(ioport_, &bytes_read, (PULONG_PTR)&subproc, - &overlapped, INFINITE)) { - if (GetLastError() != ERROR_BROKEN_PIPE) -@@ -266,6 +270,11 @@ - // delivered by NotifyInterrupted above. - return true; - -+ if (tokens && tokens->TokenIsAvailable((ULONG_PTR)subproc)) { -+ token_available_ = true; -+ return false; -+ } -+ - subproc->OnPipeReady(); - - if (subproc->Done()) { -diff -Naur --exclude .git ninja-1.11.1/src/tokenpool-gnu-make.cc ninja-jobserver-client/src/tokenpool-gnu-make.cc ---- ninja-1.11.1/src/tokenpool-gnu-make.cc 1970-01-01 02:00:00.000000000 +0200 -+++ ninja-jobserver-client/src/tokenpool-gnu-make.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -0,0 +1,108 @@ -+// Copyright 2016-2018 Google Inc. All Rights Reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#include "tokenpool-gnu-make.h" -+ -+#include -+#include -+#include -+ -+#include "line_printer.h" -+ -+// TokenPool implementation for GNU make jobserver - common bits -+// every instance owns an implicit token -> available_ == 1 -+GNUmakeTokenPool::GNUmakeTokenPool() : available_(1), used_(0) { -+} -+ -+GNUmakeTokenPool::~GNUmakeTokenPool() { -+} -+ -+bool GNUmakeTokenPool::Setup(bool ignore, -+ bool verbose, -+ double& max_load_average) { -+ const char* value = GetEnv("MAKEFLAGS"); -+ if (!value) -+ return false; -+ -+ // GNU make <= 4.1 -+ const char* jobserver = strstr(value, "--jobserver-fds="); -+ if (!jobserver) -+ // GNU make => 4.2 -+ jobserver = strstr(value, "--jobserver-auth="); -+ if (jobserver) { -+ LinePrinter printer; -+ -+ if (ignore) { -+ printer.PrintOnNewLine("ninja: warning: -jN forced on command line; ignoring GNU make jobserver.\n"); -+ } else { -+ if (ParseAuth(jobserver)) { -+ const char* l_arg = strstr(value, " -l"); -+ int load_limit = -1; -+ -+ if (verbose) { -+ printer.PrintOnNewLine("ninja: using GNU make jobserver.\n"); -+ } -+ -+ // translate GNU make -lN to ninja -lN -+ if (l_arg && -+ (sscanf(l_arg + 3, "%d ", &load_limit) == 1) && -+ (load_limit > 0)) { -+ max_load_average = load_limit; -+ } -+ -+ return true; -+ } -+ } -+ } -+ -+ return false; -+} -+ -+bool GNUmakeTokenPool::Acquire() { -+ if (available_ > 0) -+ return true; -+ -+ if (AcquireToken()) { -+ // token acquired -+ available_++; -+ return true; -+ } -+ -+ // no token available -+ return false; -+} -+ -+void GNUmakeTokenPool::Reserve() { -+ available_--; -+ used_++; -+} -+ -+void GNUmakeTokenPool::Return() { -+ if (ReturnToken()) -+ available_--; -+} -+ -+void GNUmakeTokenPool::Release() { -+ available_++; -+ used_--; -+ if (available_ > 1) -+ Return(); -+} -+ -+void GNUmakeTokenPool::Clear() { -+ while (used_ > 0) -+ Release(); -+ while (available_ > 1) -+ Return(); -+} -diff -Naur --exclude .git ninja-1.11.1/src/tokenpool-gnu-make.h ninja-jobserver-client/src/tokenpool-gnu-make.h ---- ninja-1.11.1/src/tokenpool-gnu-make.h 1970-01-01 02:00:00.000000000 +0200 -+++ ninja-jobserver-client/src/tokenpool-gnu-make.h 2023-07-31 19:01:11.353065478 +0300 -@@ -0,0 +1,40 @@ -+// Copyright 2016-2018 Google Inc. All Rights Reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#include "tokenpool.h" -+ -+// interface to GNU make token pool -+struct GNUmakeTokenPool : public TokenPool { -+ GNUmakeTokenPool(); -+ ~GNUmakeTokenPool(); -+ -+ // token pool implementation -+ virtual bool Acquire(); -+ virtual void Reserve(); -+ virtual void Release(); -+ virtual void Clear(); -+ virtual bool Setup(bool ignore, bool verbose, double& max_load_average); -+ -+ // platform specific implementation -+ virtual const char* GetEnv(const char* name) = 0; -+ virtual bool ParseAuth(const char* jobserver) = 0; -+ virtual bool AcquireToken() = 0; -+ virtual bool ReturnToken() = 0; -+ -+ private: -+ int available_; -+ int used_; -+ -+ void Return(); -+}; -diff -Naur --exclude .git ninja-1.11.1/src/tokenpool-gnu-make-posix.cc ninja-jobserver-client/src/tokenpool-gnu-make-posix.cc ---- ninja-1.11.1/src/tokenpool-gnu-make-posix.cc 1970-01-01 02:00:00.000000000 +0200 -+++ ninja-jobserver-client/src/tokenpool-gnu-make-posix.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -0,0 +1,214 @@ -+// Copyright 2016-2018 Google Inc. All Rights Reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#include "tokenpool-gnu-make.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+// TokenPool implementation for GNU make jobserver - POSIX implementation -+// (http://make.mad-scientist.net/papers/jobserver-implementation/) -+struct GNUmakeTokenPoolPosix : public GNUmakeTokenPool { -+ GNUmakeTokenPoolPosix(); -+ virtual ~GNUmakeTokenPoolPosix(); -+ -+ virtual int GetMonitorFd(); -+ -+ virtual const char* GetEnv(const char* name) { return getenv(name); }; -+ virtual bool ParseAuth(const char* jobserver); -+ virtual bool AcquireToken(); -+ virtual bool ReturnToken(); -+ -+ private: -+ int rfd_; -+ int wfd_; -+ -+ struct sigaction old_act_; -+ bool restore_; -+ -+ // See https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html -+ // -+ // It’s important that when you release the job slot, you write back -+ // the same character you read. Don’t assume that all tokens are the -+ // same character different characters may have different meanings to -+ // GNU make. The order is not important, since make has no idea in -+ // what order jobs will complete anyway. -+ // -+ std::stack tokens_; -+ -+ static int dup_rfd_; -+ static void CloseDupRfd(int signum); -+ -+ bool CheckFd(int fd); -+ bool SetAlarmHandler(); -+}; -+ -+GNUmakeTokenPoolPosix::GNUmakeTokenPoolPosix() : rfd_(-1), wfd_(-1), restore_(false) { -+} -+ -+GNUmakeTokenPoolPosix::~GNUmakeTokenPoolPosix() { -+ Clear(); -+ if (restore_) -+ sigaction(SIGALRM, &old_act_, NULL); -+} -+ -+bool GNUmakeTokenPoolPosix::CheckFd(int fd) { -+ if (fd < 0) -+ return false; -+ int ret = fcntl(fd, F_GETFD); -+ return ret >= 0; -+} -+ -+int GNUmakeTokenPoolPosix::dup_rfd_ = -1; -+ -+void GNUmakeTokenPoolPosix::CloseDupRfd(int signum) { -+ close(dup_rfd_); -+ dup_rfd_ = -1; -+} -+ -+bool GNUmakeTokenPoolPosix::SetAlarmHandler() { -+ struct sigaction act; -+ memset(&act, 0, sizeof(act)); -+ act.sa_handler = CloseDupRfd; -+ if (sigaction(SIGALRM, &act, &old_act_) < 0) { -+ perror("sigaction:"); -+ return false; -+ } -+ restore_ = true; -+ return true; -+} -+ -+bool GNUmakeTokenPoolPosix::ParseAuth(const char* jobserver) { -+ int rfd = -1; -+ int wfd = -1; -+ if ((sscanf(jobserver, "%*[^=]=%d,%d", &rfd, &wfd) == 2) && -+ CheckFd(rfd) && -+ CheckFd(wfd) && -+ SetAlarmHandler()) { -+ rfd_ = rfd; -+ wfd_ = wfd; -+ return true; -+ } -+ -+ return false; -+} -+ -+bool GNUmakeTokenPoolPosix::AcquireToken() { -+ // Please read -+ // -+ // http://make.mad-scientist.net/papers/jobserver-implementation/ -+ // -+ // for the reasoning behind the following code. -+ // -+ // Try to read one character from the pipe. Returns true on success. -+ // -+ // First check if read() would succeed without blocking. -+#ifdef USE_PPOLL -+ pollfd pollfds[] = {{rfd_, POLLIN, 0}}; -+ int ret = poll(pollfds, 1, 0); -+#else -+ fd_set set; -+ struct timeval timeout = { 0, 0 }; -+ FD_ZERO(&set); -+ FD_SET(rfd_, &set); -+ int ret = select(rfd_ + 1, &set, NULL, NULL, &timeout); -+#endif -+ if (ret > 0) { -+ // Handle potential race condition: -+ // - the above check succeeded, i.e. read() should not block -+ // - the character disappears before we call read() -+ // -+ // Create a duplicate of rfd_. The duplicate file descriptor dup_rfd_ -+ // can safely be closed by signal handlers without affecting rfd_. -+ dup_rfd_ = dup(rfd_); -+ -+ if (dup_rfd_ != -1) { -+ struct sigaction act, old_act; -+ int ret = 0; -+ char buf; -+ -+ // Temporarily replace SIGCHLD handler with our own -+ memset(&act, 0, sizeof(act)); -+ act.sa_handler = CloseDupRfd; -+ if (sigaction(SIGCHLD, &act, &old_act) == 0) { -+ struct itimerval timeout; -+ -+ // install a 100ms timeout that generates SIGALARM on expiration -+ memset(&timeout, 0, sizeof(timeout)); -+ timeout.it_value.tv_usec = 100 * 1000; // [ms] -> [usec] -+ if (setitimer(ITIMER_REAL, &timeout, NULL) == 0) { -+ // Now try to read() from dup_rfd_. Return values from read(): -+ // -+ // 1. token read -> 1 -+ // 2. pipe closed -> 0 -+ // 3. alarm expires -> -1 (EINTR) -+ // 4. child exits -> -1 (EINTR) -+ // 5. alarm expired before entering read() -> -1 (EBADF) -+ // 6. child exited before entering read() -> -1 (EBADF) -+ // 7. child exited before handler is installed -> go to 1 - 3 -+ ret = read(dup_rfd_, &buf, 1); -+ -+ // disarm timer -+ memset(&timeout, 0, sizeof(timeout)); -+ setitimer(ITIMER_REAL, &timeout, NULL); -+ } -+ -+ sigaction(SIGCHLD, &old_act, NULL); -+ } -+ -+ CloseDupRfd(0); -+ -+ // Case 1 from above list -+ if (ret > 0) { -+ tokens_.push(buf); -+ return true; -+ } -+ } -+ } -+ -+ // read() would block, i.e. no token available, -+ // cases 2-6 from above list or -+ // select() / poll() / dup() / sigaction() / setitimer() failed -+ return false; -+} -+ -+bool GNUmakeTokenPoolPosix::ReturnToken() { -+ const char buf = tokens_.top(); -+ while (1) { -+ int ret = write(wfd_, &buf, 1); -+ if (ret > 0) { -+ tokens_.pop(); -+ return true; -+ } -+ if ((ret != -1) || (errno != EINTR)) -+ return false; -+ // write got interrupted - retry -+ } -+} -+ -+int GNUmakeTokenPoolPosix::GetMonitorFd() { -+ return rfd_; -+} -+ -+TokenPool* TokenPool::Get() { -+ return new GNUmakeTokenPoolPosix; -+} -diff -Naur --exclude .git ninja-1.11.1/src/tokenpool-gnu-make-win32.cc ninja-jobserver-client/src/tokenpool-gnu-make-win32.cc ---- ninja-1.11.1/src/tokenpool-gnu-make-win32.cc 1970-01-01 02:00:00.000000000 +0200 -+++ ninja-jobserver-client/src/tokenpool-gnu-make-win32.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -0,0 +1,239 @@ -+// Copyright 2018 Google Inc. All Rights Reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#include "tokenpool-gnu-make.h" -+ -+// Always include this first. -+// Otherwise the other system headers don't work correctly under Win32 -+#include -+ -+#include -+#include -+#include -+ -+#include "util.h" -+ -+// TokenPool implementation for GNU make jobserver - Win32 implementation -+// (https://www.gnu.org/software/make/manual/html_node/Windows-Jobserver.html) -+struct GNUmakeTokenPoolWin32 : public GNUmakeTokenPool { -+ GNUmakeTokenPoolWin32(); -+ virtual ~GNUmakeTokenPoolWin32(); -+ -+ virtual void WaitForTokenAvailability(HANDLE ioport); -+ virtual bool TokenIsAvailable(ULONG_PTR key); -+ -+ virtual const char* GetEnv(const char* name); -+ virtual bool ParseAuth(const char* jobserver); -+ virtual bool AcquireToken(); -+ virtual bool ReturnToken(); -+ -+ private: -+ // Semaphore for GNU make jobserver protocol -+ HANDLE semaphore_jobserver_; -+ // Semaphore Child -> Parent -+ // - child releases it before entering wait on jobserver semaphore -+ // - parent blocks on it to know when child enters wait -+ HANDLE semaphore_enter_wait_; -+ // Semaphore Parent -> Child -+ // - parent releases it to allow child to restart loop -+ // - child blocks on it to know when to restart loop -+ HANDLE semaphore_restart_; -+ // set to false if child should exit loop and terminate thread -+ bool running_; -+ // child thread -+ HANDLE child_; -+ // I/O completion port from SubprocessSet -+ HANDLE ioport_; -+ -+ -+ DWORD SemaphoreThread(); -+ void ReleaseSemaphore(HANDLE semaphore); -+ void WaitForObject(HANDLE object); -+ static DWORD WINAPI SemaphoreThreadWrapper(LPVOID param); -+ static void NoopAPCFunc(ULONG_PTR param); -+}; -+ -+GNUmakeTokenPoolWin32::GNUmakeTokenPoolWin32() : semaphore_jobserver_(NULL), -+ semaphore_enter_wait_(NULL), -+ semaphore_restart_(NULL), -+ running_(false), -+ child_(NULL), -+ ioport_(NULL) { -+} -+ -+GNUmakeTokenPoolWin32::~GNUmakeTokenPoolWin32() { -+ Clear(); -+ CloseHandle(semaphore_jobserver_); -+ semaphore_jobserver_ = NULL; -+ -+ if (child_) { -+ // tell child thread to exit -+ running_ = false; -+ ReleaseSemaphore(semaphore_restart_); -+ -+ // wait for child thread to exit -+ WaitForObject(child_); -+ CloseHandle(child_); -+ child_ = NULL; -+ } -+ -+ if (semaphore_restart_) { -+ CloseHandle(semaphore_restart_); -+ semaphore_restart_ = NULL; -+ } -+ -+ if (semaphore_enter_wait_) { -+ CloseHandle(semaphore_enter_wait_); -+ semaphore_enter_wait_ = NULL; -+ } -+} -+ -+const char* GNUmakeTokenPoolWin32::GetEnv(const char* name) { -+ // getenv() does not work correctly together with tokenpool_tests.cc -+ static char buffer[MAX_PATH + 1]; -+ if (GetEnvironmentVariable(name, buffer, sizeof(buffer)) == 0) -+ return NULL; -+ return buffer; -+} -+ -+bool GNUmakeTokenPoolWin32::ParseAuth(const char* jobserver) { -+ // match "--jobserver-auth=gmake_semaphore_..." -+ const char* start = strchr(jobserver, '='); -+ if (start) { -+ const char* end = start; -+ unsigned int len; -+ char c, *auth; -+ -+ while ((c = *++end) != '\0') -+ if (!(isalnum(c) || (c == '_'))) -+ break; -+ len = end - start; // includes string terminator in count -+ -+ if ((len > 1) && ((auth = (char*)malloc(len)) != NULL)) { -+ strncpy(auth, start + 1, len - 1); -+ auth[len - 1] = '\0'; -+ -+ if ((semaphore_jobserver_ = -+ OpenSemaphore(SEMAPHORE_ALL_ACCESS, /* Semaphore access setting */ -+ FALSE, /* Child processes DON'T inherit */ -+ auth /* Semaphore name */ -+ )) != NULL) { -+ free(auth); -+ return true; -+ } -+ -+ free(auth); -+ } -+ } -+ -+ return false; -+} -+ -+bool GNUmakeTokenPoolWin32::AcquireToken() { -+ return WaitForSingleObject(semaphore_jobserver_, 0) == WAIT_OBJECT_0; -+} -+ -+bool GNUmakeTokenPoolWin32::ReturnToken() { -+ ReleaseSemaphore(semaphore_jobserver_); -+ return true; -+} -+ -+DWORD GNUmakeTokenPoolWin32::SemaphoreThread() { -+ while (running_) { -+ // indicate to parent that we are entering wait -+ ReleaseSemaphore(semaphore_enter_wait_); -+ -+ // alertable wait forever on token semaphore -+ if (WaitForSingleObjectEx(semaphore_jobserver_, INFINITE, TRUE) == WAIT_OBJECT_0) { -+ // release token again for AcquireToken() -+ ReleaseSemaphore(semaphore_jobserver_); -+ -+ // indicate to parent on ioport that a token might be available -+ if (!PostQueuedCompletionStatus(ioport_, 0, (ULONG_PTR) this, NULL)) -+ Win32Fatal("PostQueuedCompletionStatus"); -+ } -+ -+ // wait for parent to allow loop restart -+ WaitForObject(semaphore_restart_); -+ // semaphore is now in nonsignaled state again for next run... -+ } -+ -+ return 0; -+} -+ -+DWORD WINAPI GNUmakeTokenPoolWin32::SemaphoreThreadWrapper(LPVOID param) { -+ GNUmakeTokenPoolWin32* This = (GNUmakeTokenPoolWin32*) param; -+ return This->SemaphoreThread(); -+} -+ -+void GNUmakeTokenPoolWin32::NoopAPCFunc(ULONG_PTR param) { -+} -+ -+void GNUmakeTokenPoolWin32::WaitForTokenAvailability(HANDLE ioport) { -+ if (child_ == NULL) { -+ // first invocation -+ // -+ // subprocess-win32.cc uses I/O completion port (IOCP) which can't be -+ // used as a waitable object. Therefore we can't use WaitMultipleObjects() -+ // to wait on the IOCP and the token semaphore at the same time. Create -+ // a child thread that waits on the semaphore and posts an I/O completion -+ ioport_ = ioport; -+ -+ // create both semaphores in nonsignaled state -+ if ((semaphore_enter_wait_ = CreateSemaphore(NULL, 0, 1, NULL)) -+ == NULL) -+ Win32Fatal("CreateSemaphore/enter_wait"); -+ if ((semaphore_restart_ = CreateSemaphore(NULL, 0, 1, NULL)) -+ == NULL) -+ Win32Fatal("CreateSemaphore/restart"); -+ -+ // start child thread -+ running_ = true; -+ if ((child_ = CreateThread(NULL, 0, &SemaphoreThreadWrapper, this, 0, NULL)) -+ == NULL) -+ Win32Fatal("CreateThread"); -+ -+ } else { -+ // all further invocations - allow child thread to loop -+ ReleaseSemaphore(semaphore_restart_); -+ } -+ -+ // wait for child thread to enter wait -+ WaitForObject(semaphore_enter_wait_); -+ // semaphore is now in nonsignaled state again for next run... -+ -+ // now SubprocessSet::DoWork() can enter GetQueuedCompletionStatus()... -+} -+ -+bool GNUmakeTokenPoolWin32::TokenIsAvailable(ULONG_PTR key) { -+ // alert child thread to break wait on token semaphore -+ QueueUserAPC((PAPCFUNC)&NoopAPCFunc, child_, (ULONG_PTR)NULL); -+ -+ // return true when GetQueuedCompletionStatus() returned our key -+ return key == (ULONG_PTR) this; -+} -+ -+void GNUmakeTokenPoolWin32::ReleaseSemaphore(HANDLE semaphore) { -+ if (!::ReleaseSemaphore(semaphore, 1, NULL)) -+ Win32Fatal("ReleaseSemaphore"); -+} -+ -+void GNUmakeTokenPoolWin32::WaitForObject(HANDLE object) { -+ if (WaitForSingleObject(object, INFINITE) != WAIT_OBJECT_0) -+ Win32Fatal("WaitForSingleObject"); -+} -+ -+TokenPool* TokenPool::Get() { -+ return new GNUmakeTokenPoolWin32; -+} -diff -Naur --exclude .git ninja-1.11.1/src/tokenpool.h ninja-jobserver-client/src/tokenpool.h ---- ninja-1.11.1/src/tokenpool.h 1970-01-01 02:00:00.000000000 +0200 -+++ ninja-jobserver-client/src/tokenpool.h 2023-07-31 19:01:11.353065478 +0300 -@@ -0,0 +1,42 @@ -+// Copyright 2016-2018 Google Inc. All Rights Reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#ifdef _WIN32 -+#include -+#endif -+ -+// interface to token pool -+struct TokenPool { -+ virtual ~TokenPool() {} -+ -+ virtual bool Acquire() = 0; -+ virtual void Reserve() = 0; -+ virtual void Release() = 0; -+ virtual void Clear() = 0; -+ -+ // returns false if token pool setup failed -+ virtual bool Setup(bool ignore, bool verbose, double& max_load_average) = 0; -+ -+#ifdef _WIN32 -+ virtual void WaitForTokenAvailability(HANDLE ioport) = 0; -+ // returns true if a token has become available -+ // key is result from GetQueuedCompletionStatus() -+ virtual bool TokenIsAvailable(ULONG_PTR key) = 0; -+#else -+ virtual int GetMonitorFd() = 0; -+#endif -+ -+ // returns NULL if token pool is not available -+ static TokenPool* Get(); -+}; -diff -Naur --exclude .git ninja-1.11.1/src/tokenpool_test.cc ninja-jobserver-client/src/tokenpool_test.cc ---- ninja-1.11.1/src/tokenpool_test.cc 1970-01-01 02:00:00.000000000 +0200 -+++ ninja-jobserver-client/src/tokenpool_test.cc 2023-07-31 19:01:11.353065478 +0300 -@@ -0,0 +1,279 @@ -+// Copyright 2018 Google Inc. All Rights Reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#include "tokenpool.h" -+ -+#include "test.h" -+ -+#ifdef _WIN32 -+#include -+#else -+#include -+#endif -+ -+#include -+#include -+ -+#ifdef _WIN32 -+// should contain all valid characters -+#define SEMAPHORE_NAME "abcdefghijklmnopqrstwxyz01234567890_" -+#define AUTH_FORMAT(tmpl) "foo " tmpl "=%s bar" -+#define ENVIRONMENT_CLEAR() SetEnvironmentVariable("MAKEFLAGS", NULL) -+#define ENVIRONMENT_INIT(v) SetEnvironmentVariable("MAKEFLAGS", v) -+#else -+#define AUTH_FORMAT(tmpl) "foo " tmpl "=%d,%d bar" -+#define ENVIRONMENT_CLEAR() unsetenv("MAKEFLAGS") -+#define ENVIRONMENT_INIT(v) setenv("MAKEFLAGS", v, true) -+#endif -+ -+namespace { -+ -+const double kLoadAverageDefault = -1.23456789; -+ -+struct TokenPoolTest : public testing::Test { -+ double load_avg_; -+ TokenPool* tokens_; -+ char buf_[1024]; -+#ifdef _WIN32 -+ const char* semaphore_name_; -+ HANDLE semaphore_; -+#else -+ int fds_[2]; -+ -+ char random() { -+ return int((rand() / double(RAND_MAX)) * 256); -+ } -+#endif -+ -+ virtual void SetUp() { -+ load_avg_ = kLoadAverageDefault; -+ tokens_ = NULL; -+ ENVIRONMENT_CLEAR(); -+#ifdef _WIN32 -+ semaphore_name_ = SEMAPHORE_NAME; -+ if ((semaphore_ = CreateSemaphore(0, 0, 2, SEMAPHORE_NAME)) == NULL) -+#else -+ if (pipe(fds_) < 0) -+#endif -+ ASSERT_TRUE(false); -+ } -+ -+ void CreatePool(const char* format, bool ignore_jobserver = false) { -+ if (format) { -+ sprintf(buf_, format, -+#ifdef _WIN32 -+ semaphore_name_ -+#else -+ fds_[0], fds_[1] -+#endif -+ ); -+ ENVIRONMENT_INIT(buf_); -+ } -+ if ((tokens_ = TokenPool::Get()) != NULL) { -+ if (!tokens_->Setup(ignore_jobserver, false, load_avg_)) { -+ delete tokens_; -+ tokens_ = NULL; -+ } -+ } -+ } -+ -+ void CreateDefaultPool() { -+ CreatePool(AUTH_FORMAT("--jobserver-auth")); -+ } -+ -+ virtual void TearDown() { -+ if (tokens_) -+ delete tokens_; -+#ifdef _WIN32 -+ CloseHandle(semaphore_); -+#else -+ close(fds_[0]); -+ close(fds_[1]); -+#endif -+ ENVIRONMENT_CLEAR(); -+ } -+}; -+ -+} // anonymous namespace -+ -+// verifies none implementation -+TEST_F(TokenPoolTest, NoTokenPool) { -+ CreatePool(NULL, false); -+ -+ EXPECT_EQ(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+} -+ -+TEST_F(TokenPoolTest, SuccessfulOldSetup) { -+ // GNUmake <= 4.1 -+ CreatePool(AUTH_FORMAT("--jobserver-fds")); -+ -+ EXPECT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+} -+ -+TEST_F(TokenPoolTest, SuccessfulNewSetup) { -+ // GNUmake => 4.2 -+ CreateDefaultPool(); -+ -+ EXPECT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+} -+ -+TEST_F(TokenPoolTest, IgnoreWithJN) { -+ CreatePool(AUTH_FORMAT("--jobserver-auth"), true); -+ -+ EXPECT_EQ(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+} -+ -+TEST_F(TokenPoolTest, HonorLN) { -+ CreatePool(AUTH_FORMAT("-l9 --jobserver-auth")); -+ -+ EXPECT_NE(NULL, tokens_); -+ EXPECT_EQ(9.0, load_avg_); -+} -+ -+#ifdef _WIN32 -+TEST_F(TokenPoolTest, SemaphoreNotFound) { -+ semaphore_name_ = SEMAPHORE_NAME "_foobar"; -+ CreateDefaultPool(); -+ -+ EXPECT_EQ(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+} -+ -+TEST_F(TokenPoolTest, TokenIsAvailable) { -+ CreateDefaultPool(); -+ -+ ASSERT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+ -+ EXPECT_TRUE(tokens_->TokenIsAvailable((ULONG_PTR)tokens_)); -+} -+#else -+TEST_F(TokenPoolTest, MonitorFD) { -+ CreateDefaultPool(); -+ -+ ASSERT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+ -+ EXPECT_EQ(fds_[0], tokens_->GetMonitorFd()); -+} -+#endif -+ -+TEST_F(TokenPoolTest, ImplicitToken) { -+ CreateDefaultPool(); -+ -+ ASSERT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+ -+ EXPECT_TRUE(tokens_->Acquire()); -+ tokens_->Reserve(); -+ EXPECT_FALSE(tokens_->Acquire()); -+ tokens_->Release(); -+ EXPECT_TRUE(tokens_->Acquire()); -+} -+ -+TEST_F(TokenPoolTest, TwoTokens) { -+ CreateDefaultPool(); -+ -+ ASSERT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+ -+ // implicit token -+ EXPECT_TRUE(tokens_->Acquire()); -+ tokens_->Reserve(); -+ EXPECT_FALSE(tokens_->Acquire()); -+ -+ // jobserver offers 2nd token -+#ifdef _WIN32 -+ LONG previous; -+ ASSERT_TRUE(ReleaseSemaphore(semaphore_, 1, &previous)); -+ ASSERT_EQ(0, previous); -+#else -+ char test_tokens[1] = { random() }; -+ ASSERT_EQ(1u, write(fds_[1], test_tokens, sizeof(test_tokens))); -+#endif -+ EXPECT_TRUE(tokens_->Acquire()); -+ tokens_->Reserve(); -+ EXPECT_FALSE(tokens_->Acquire()); -+ -+ // release 2nd token -+ tokens_->Release(); -+ EXPECT_TRUE(tokens_->Acquire()); -+ -+ // release implicit token - must return 2nd token back to jobserver -+ tokens_->Release(); -+ EXPECT_TRUE(tokens_->Acquire()); -+ -+ // there must be one token available -+#ifdef _WIN32 -+ EXPECT_EQ(WAIT_OBJECT_0, WaitForSingleObject(semaphore_, 0)); -+ EXPECT_TRUE(ReleaseSemaphore(semaphore_, 1, &previous)); -+ EXPECT_EQ(0, previous); -+#else -+ EXPECT_EQ(1u, read(fds_[0], buf_, sizeof(buf_))); -+ EXPECT_EQ(test_tokens[0], buf_[0]); -+#endif -+ -+ // implicit token -+ EXPECT_TRUE(tokens_->Acquire()); -+} -+ -+TEST_F(TokenPoolTest, Clear) { -+ CreateDefaultPool(); -+ -+ ASSERT_NE(NULL, tokens_); -+ EXPECT_EQ(kLoadAverageDefault, load_avg_); -+ -+ // implicit token -+ EXPECT_TRUE(tokens_->Acquire()); -+ tokens_->Reserve(); -+ EXPECT_FALSE(tokens_->Acquire()); -+ -+ // jobserver offers 2nd & 3rd token -+#ifdef _WIN32 -+ LONG previous; -+ ASSERT_TRUE(ReleaseSemaphore(semaphore_, 2, &previous)); -+ ASSERT_EQ(0, previous); -+#else -+ char test_tokens[2] = { random(), random() }; -+ ASSERT_EQ(2u, write(fds_[1], test_tokens, sizeof(test_tokens))); -+#endif -+ EXPECT_TRUE(tokens_->Acquire()); -+ tokens_->Reserve(); -+ EXPECT_TRUE(tokens_->Acquire()); -+ tokens_->Reserve(); -+ EXPECT_FALSE(tokens_->Acquire()); -+ -+ tokens_->Clear(); -+ EXPECT_TRUE(tokens_->Acquire()); -+ -+ // there must be two tokens available -+#ifdef _WIN32 -+ EXPECT_EQ(WAIT_OBJECT_0, WaitForSingleObject(semaphore_, 0)); -+ EXPECT_EQ(WAIT_OBJECT_0, WaitForSingleObject(semaphore_, 0)); -+ EXPECT_TRUE(ReleaseSemaphore(semaphore_, 2, &previous)); -+ EXPECT_EQ(0, previous); -+#else -+ EXPECT_EQ(2u, read(fds_[0], buf_, sizeof(buf_))); -+ // tokens are pushed onto a stack, hence returned in reverse order -+ EXPECT_EQ(test_tokens[0], buf_[1]); -+ EXPECT_EQ(test_tokens[1], buf_[0]); -+#endif -+ -+ // implicit token -+ EXPECT_TRUE(tokens_->Acquire()); -+} diff --git a/docker/llvm-mingw.Dockerfile.in b/docker/llvm-mingw.Dockerfile.in new file mode 100644 index 00000000000..4a855708138 --- /dev/null +++ b/docker/llvm-mingw.Dockerfile.in @@ -0,0 +1,33 @@ +FROM @BASE_IMAGE@ AS base + +COPY llvm-0001-Implement-varargs-support-in-clang.patch /tmp +COPY llvm-0002-Add-non-power-of-two-testcase.patch /tmp + +RUN wget -q @LLVM_URLBASE@/@LLVM_SOURCE@ \ +&& echo '@LLVM_SHA256@ @LLVM_SOURCE@' | sha256sum -c - \ +&& tar xf @LLVM_SOURCE@ -C /tmp && rm @LLVM_SOURCE@ \ +&& wget -q @MINGW_URLBASE@/@MINGW_SOURCE@ \ +&& echo '@MINGW_SHA256@ @MINGW_SOURCE@' | sha256sum -c - \ +&& tar xf @MINGW_SOURCE@ -C /tmp && rm @MINGW_SOURCE@ \ +&& wget -q @LLVM_MINGW_URLBASE@/@LLVM_MINGW_SOURCE@ \ +&& echo '@LLVM_MINGW_SHA256@ @LLVM_MINGW_SOURCE@' | sha256sum -c - \ +&& tar xf @LLVM_MINGW_SOURCE@ -C /tmp && rm @LLVM_MINGW_SOURCE@ \ +&& ln -s /tmp/llvm-project-llvmorg-@LLVM_VERSION@ /tmp/llvm-mingw-@LLVM_MINGW_VERSION@/llvm-project \ +&& ln -s /tmp/mingw-w64-v@MINGW_VERSION@ /tmp/llvm-mingw-@LLVM_MINGW_VERSION@/mingw-w64 \ +&& cd /tmp/llvm-project-llvmorg-@LLVM_VERSION@ \ +&& patch -p1 < /tmp/llvm-0001-Implement-varargs-support-in-clang.patch \ +&& patch -p1 < /tmp/llvm-0002-Add-non-power-of-two-testcase.patch \ +&& rm /tmp/llvm-*.patch \ +&& cd /tmp/llvm-mingw-@LLVM_MINGW_VERSION@ \ +&& ./build-llvm.sh --disable-lldb --disable-clang-tools-extra /opt/llvm-mingw \ +&& ./strip-llvm.sh /opt/llvm-mingw \ +&& env TOOLCHAIN_TARGET_OSES=mingw32 ./install-wrappers.sh /opt/llvm-mingw \ +&& ./build-mingw-w64.sh /opt/llvm-mingw --with-default-msvcrt=ucrt --disable-cfguard \ +&& ./build-mingw-w64-tools.sh /opt/llvm-mingw \ +&& ./build-compiler-rt.sh /opt/llvm-mingw --disable-cfguard \ +&& ./build-libcxx.sh /opt/llvm-mingw --disable-cfguard \ +&& ./build-mingw-w64-libraries.sh /opt/llvm-mingw --disable-cfguard \ +&& ./build-compiler-rt.sh /opt/llvm-mingw --build-sanitizers \ +&& ./build-openmp.sh /opt/llvm-mingw --disable-cfguard \ +&& rm -rf /opt/usr/share/doc /opt/usr/share/info /opt/usr/share/man \ +&& rm -rf /tmp/llvm-mingw-@LLVM_MINGW_VERSION@ diff --git a/docker/proton-llvm.Dockerfile.in b/docker/proton-llvm.Dockerfile.in new file mode 100644 index 00000000000..76434c04ae3 --- /dev/null +++ b/docker/proton-llvm.Dockerfile.in @@ -0,0 +1,78 @@ +FROM @PROTONSDK_URLBASE@/llvm-mingw:@LLVM_MINGW_VERSION@ AS llvm-mingw + +FROM @BASE_IMAGE@ AS base +COPY --from=llvm-mingw /opt/llvm-mingw /opt/llvm-mingw + +ARG BUILD_ARCH + +RUN if [ "$BUILD_ARCH" = x86_64 ]; then wget -q @RUST_URLBASE@/@RUST_SOURCE_x86_64@ \ +&& echo '@RUST_SHA256_x86_64@ @RUST_SOURCE_x86_64@' | sha256sum -c - \ +&& tar xf @RUST_SOURCE_x86_64@ -C /tmp && rm @RUST_SOURCE_x86_64@ \ +&& /tmp/rust-@RUST_VERSION@-x86_64-unknown-linux-gnu/install.sh --prefix=/opt/rust \ +&& rm -rf /tmp/rust-@RUST_VERSION@-x86_64-unknown-linux-gnu; fi + +RUN if [ "$BUILD_ARCH" = x86_64 ]; then wget -q @RUST_URLBASE@/@RUST_SOURCE_i686@ \ +&& echo '@RUST_SHA256_i686@ @RUST_SOURCE_i686@' | sha256sum -c - \ +&& tar xf @RUST_SOURCE_i686@ -C /tmp && rm @RUST_SOURCE_i686@ \ +&& /tmp/rust-@RUST_VERSION@-i686-unknown-linux-gnu/install.sh --prefix=/opt/rust \ + --components=rust-std-i686-unknown-linux-gnu \ +&& rm -rf /tmp/rust-@RUST_VERSION@-i686-unknown-linux-gnu; fi + +RUN if [ "$BUILD_ARCH" = aarch64 ]; then wget -q @RUST_URLBASE@/@RUST_SOURCE_aarch64@ \ +&& echo '@RUST_SHA256_aarch64@ @RUST_SOURCE_aarch64@' | sha256sum -c - \ +&& tar xf @RUST_SOURCE_aarch64@ -C /tmp && rm @RUST_SOURCE_aarch64@ \ +&& /tmp/rust-@RUST_VERSION@-aarch64-unknown-linux-gnu/install.sh --prefix=/opt/rust \ +&& rm -rf /tmp/rust-@RUST_VERSION@-aarch64-unknown-linux-gnu; fi + +RUN bash -c 'ls /opt/rust/bin/* | xargs -n1 -I{} ln -sf {} /usr/bin/' + +RUN bash -c 'mkdir -p /usr/lib/ccache && ls /usr/bin/{,*-}{cc,c++,gcc,g++}{,-[0-9]*} | sed -re s:/bin:/lib/ccache: | xargs -n1 ln -sf ../../bin/ccache' +RUN bash -c 'mkdir -p /opt/llvm-mingw/bin && ls /usr/bin/{,*-}{cc,c++,gcc,g++}{,-[0-9]*} | sed -re s:/usr/bin:/opt/llvm-mingw/bin: | xargs -n1 ln -sf clang' +ENV PATH=/usr/lib/ccache:/opt/llvm-mingw/bin:$PATH + +RUN apt-get update \ +&& apt-get install -y \ + autoconf-archive \ + fonttools \ + fontforge \ + libxpresent-dev \ + libopenblas-dev \ + python3-mako \ + python3-pefile \ + libcapstone-dev \ + libutfcpp-dev \ + libjson-perl \ + yasm \ + nasm \ +&& rm -rf /opt/usr/share/doc /opt/usr/share/info /opt/usr/share/man \ +&& rm -rf /var/lib/apt/lists/* + +RUN cd /tmp \ +&& wget -q @NINJA_URLBASE@/@NINJA_SOURCE@ \ +&& echo '@NINJA_SHA256@ @NINJA_SOURCE@' | sha256sum -c - \ +&& unzip @NINJA_SOURCE@ && rm @NINJA_SOURCE@ \ +&& cd /tmp/ninja-@NINJA_VERSION@ \ +&& mkdir build \ +&& cd build \ +&& cmake .. -DCMAKE_BUILD_TYPE=Release \ +&& make \ +&& cp ninja $(which ninja) \ +&& cd / \ +&& rm -rf /tmp/ninja-@NINJA_VERSION@ + +RUN cd /tmp \ +&& wget -q @AFDKO_URLBASE@/@AFDKO_SOURCE@ \ +&& echo '@AFDKO_SHA256@ @AFDKO_SOURCE@' | sha256sum -c - \ +&& unzip @AFDKO_SOURCE@ && rm @AFDKO_SOURCE@ \ +&& cd /tmp/afdko-@AFDKO_VERSION@ \ +&& mkdir build \ +&& cd build \ +&& CC=clang CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug \ +&& CC=clang CXX=clang++ make \ +&& cp -f bin/* /usr/libexec/afdko/ \ +&& cd / \ +&& rm -rf /tmp/afdko-@AFDKO_VERSION@ + +ENTRYPOINT ["/usr/bin/tini-static", "-s", "-g", "--"] + +CMD ["/bin/bash"] diff --git a/docker/proton.Dockerfile.in b/docker/proton.Dockerfile.in index 8d26eb59fee..5364455eee5 100644 --- a/docker/proton.Dockerfile.in +++ b/docker/proton.Dockerfile.in @@ -10,8 +10,6 @@ FROM @PROTONSDK_URLBASE@/mingw-pthreads-i686:@MINGW_VERSION@ AS mingw-pthreads-i FROM @PROTONSDK_URLBASE@/mingw-pthreads-x86_64:@MINGW_VERSION@ AS mingw-pthreads-x86_64 FROM @PROTONSDK_URLBASE@/mingw-widl-i686:@MINGW_VERSION@ AS mingw-widl-i686 FROM @PROTONSDK_URLBASE@/mingw-widl-x86_64:@MINGW_VERSION@ AS mingw-widl-x86_64 -FROM @PROTONSDK_URLBASE@/gcc-i686-linux-gnu:@GCC_VERSION@ AS gcc-linux-i686 -FROM @PROTONSDK_URLBASE@/gcc-x86_64-linux-gnu:@GCC_VERSION@ AS gcc-linux-x86_64 FROM @PROTONSDK_URLBASE@/gcc-i686-w64-mingw32:@GCC_VERSION@ AS gcc-mingw-i686 FROM @PROTONSDK_URLBASE@/gcc-x86_64-w64-mingw32:@GCC_VERSION@ AS gcc-mingw-x86_64 @@ -28,8 +26,6 @@ COPY --from=mingw-pthreads-i686 /opt/usr /usr COPY --from=mingw-pthreads-x86_64 /opt/usr /usr COPY --from=mingw-widl-i686 /opt/usr /usr COPY --from=mingw-widl-x86_64 /opt/usr /usr -COPY --from=gcc-linux-i686 /opt/usr /usr -COPY --from=gcc-linux-x86_64 /opt/usr /usr COPY --from=gcc-mingw-i686 /opt/usr /usr COPY --from=gcc-mingw-x86_64 /opt/usr /usr @@ -49,7 +45,7 @@ RUN wget -q @RUST_URLBASE@/@RUST_SOURCE_i686@ \ RUN bash -c 'ls /opt/rust/bin/* | xargs -n1 -I{} ln -sf {} /usr/bin/' RUN bash -c 'mkdir -p /usr/lib/ccache && ls /usr/bin/{,*-}{cc,c++,gcc,g++}{,-[0-9]*} | sed -re s:/bin:/lib/ccache: | xargs -n1 ln -sf ../../bin/ccache' -ENV PATH=/usr/lib/ccache:$PATH +ENV PATH=/usr/lib/ccache:/usr/lib/gcc-14/bin:$PATH RUN apt-get install -y \ autoconf-archive \ @@ -70,22 +66,31 @@ RUN apt-get install -y \ && rm -rf /opt/usr/share/doc /opt/usr/share/info /opt/usr/share/man \ && rm -rf /var/lib/apt/lists/* -COPY ninja-jobserver-client.patch /tmp - -RUN wget -q @NINJA_URLBASE@/@NINJA_SOURCE@ \ -&& echo '@NINJA_SHA256@ @NINJA_SOURCE@' \ +RUN cd /tmp \ +&& wget -q @NINJA_URLBASE@/@NINJA_SOURCE@ \ && echo '@NINJA_SHA256@ @NINJA_SOURCE@' | sha256sum -c - \ -&& tar xf @NINJA_SOURCE@ -C /tmp && rm @NINJA_SOURCE@ \ +&& unzip @NINJA_SOURCE@ && rm @NINJA_SOURCE@ \ && cd /tmp/ninja-@NINJA_VERSION@ \ -&& patch -p1 < /tmp/ninja-jobserver-client.patch \ && mkdir build \ && cd build \ -&& cmake .. \ +&& cmake .. -DCMAKE_BUILD_TYPE=Release \ && make \ && cp ninja $(which ninja) \ && cd / \ -&& rm -rf /tmp/ninja-@NINJA_VERSION@ \ -&& rm -rf /tmp/ninja-jobserver-client.patch +&& rm -rf /tmp/ninja-@NINJA_VERSION@ + +RUN cd /tmp \ +&& wget -q @AFDKO_URLBASE@/@AFDKO_SOURCE@ \ +&& echo '@AFDKO_SHA256@ @AFDKO_SOURCE@' | sha256sum -c - \ +&& unzip @AFDKO_SOURCE@ && rm @AFDKO_SOURCE@ \ +&& cd /tmp/afdko-@AFDKO_VERSION@ \ +&& mkdir build \ +&& cd build \ +&& CC=clang CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug \ +&& CC=clang CXX=clang++ make \ +&& cp -f bin/* /usr/libexec/afdko/ \ +&& cd / \ +&& rm -rf /tmp/afdko-@AFDKO_VERSION@ ENTRYPOINT ["/usr/bin/tini-static", "-s", "-g", "--"] diff --git a/dxvk b/dxvk index 3cb664e1260..36f23aa7290 160000 --- a/dxvk +++ b/dxvk @@ -1 +1 @@ -Subproject commit 3cb664e1260926e2ade95aa7eca6d9ff8c742106 +Subproject commit 36f23aa729036d51a093c9dbc724135c5c794f5c diff --git a/dxvk-nvapi b/dxvk-nvapi index 0ea231734d6..583a20e6769 160000 --- a/dxvk-nvapi +++ b/dxvk-nvapi @@ -1 +1 @@ -Subproject commit 0ea231734d60b3ddb22c3a831b1142e3f035de91 +Subproject commit 583a20e676963d336ae8b679d0af5bef80fde77c diff --git a/kaldi b/kaldi new file mode 160000 index 00000000000..a25f216f5ce --- /dev/null +++ b/kaldi @@ -0,0 +1 @@ +Subproject commit a25f216f5ce4eec5e45a6ab7651e20c9840a05cd diff --git a/lsteamclient/Makefile.in b/lsteamclient/Makefile.in index 7160fd32f23..2627c77c9b9 100644 --- a/lsteamclient/Makefile.in +++ b/lsteamclient/Makefile.in @@ -13,6 +13,7 @@ SOURCES = \ winISteamAppList.c \ winISteamApps.c \ winISteamAppTicket.c \ + winISteamBilling.c \ winISteamClient.c \ winISteamController.c \ winISteamFriends.c \ @@ -58,6 +59,7 @@ SOURCES = \ cppISteamApps_STEAMAPPS_INTERFACE_VERSION007.cpp \ cppISteamApps_STEAMAPPS_INTERFACE_VERSION008.cpp \ cppISteamAppTicket_STEAMAPPTICKET_INTERFACE_VERSION001.cpp \ + cppISteamBilling_SteamBilling002.cpp \ cppISteamClient_SteamClient006.cpp \ cppISteamClient_SteamClient007.cpp \ cppISteamClient_SteamClient008.cpp \ @@ -74,6 +76,7 @@ SOURCES = \ cppISteamClient_SteamClient019.cpp \ cppISteamClient_SteamClient020.cpp \ cppISteamClient_SteamClient021.cpp \ + cppISteamClient_SteamClient023.cpp \ cppISteamController_SteamController003.cpp \ cppISteamController_SteamController004.cpp \ cppISteamController_SteamController005.cpp \ diff --git a/lsteamclient/cppISteamBilling_SteamBilling002.cpp b/lsteamclient/cppISteamBilling_SteamBilling002.cpp new file mode 100644 index 00000000000..f7f84504358 --- /dev/null +++ b/lsteamclient/cppISteamBilling_SteamBilling002.cpp @@ -0,0 +1,781 @@ +/* This file is auto-generated, do not edit. */ +#include "unix_private.h" + +#if 0 +#pragma makedep unix +#endif + +NTSTATUS ISteamBilling_SteamBilling002_InitCreditCardPurchase( void *args ) +{ + struct ISteamBilling_SteamBilling002_InitCreditCardPurchase_params *params = (struct ISteamBilling_SteamBilling002_InitCreditCardPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->InitCreditCardPurchase( params->nPackageID, params->nCardIndex, params->bStoreCardInfo ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_InitCreditCardPurchase( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_InitCreditCardPurchase_params *params = (struct wow64_ISteamBilling_SteamBilling002_InitCreditCardPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->InitCreditCardPurchase( params->nPackageID, params->nCardIndex, params->bStoreCardInfo ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_InitPayPalPurchase( void *args ) +{ + struct ISteamBilling_SteamBilling002_InitPayPalPurchase_params *params = (struct ISteamBilling_SteamBilling002_InitPayPalPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->InitPayPalPurchase( params->nPackageID ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_InitPayPalPurchase( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_InitPayPalPurchase_params *params = (struct wow64_ISteamBilling_SteamBilling002_InitPayPalPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->InitPayPalPurchase( params->nPackageID ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetActivationCodeInfo( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetActivationCodeInfo_params *params = (struct ISteamBilling_SteamBilling002_GetActivationCodeInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetActivationCodeInfo( params->pchActivationCode ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetActivationCodeInfo( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetActivationCodeInfo_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetActivationCodeInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetActivationCodeInfo( params->pchActivationCode ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_PurchaseWithActivationCode( void *args ) +{ + struct ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params *params = (struct ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->PurchaseWithActivationCode( params->pchActivationCode ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_PurchaseWithActivationCode( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params *params = (struct wow64_ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->PurchaseWithActivationCode( params->pchActivationCode ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetFinalPrice( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetFinalPrice_params *params = (struct ISteamBilling_SteamBilling002_GetFinalPrice_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetFinalPrice( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetFinalPrice( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetFinalPrice_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetFinalPrice_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetFinalPrice( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_CancelPurchase( void *args ) +{ + struct ISteamBilling_SteamBilling002_CancelPurchase_params *params = (struct ISteamBilling_SteamBilling002_CancelPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->CancelPurchase( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_CancelPurchase( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_CancelPurchase_params *params = (struct wow64_ISteamBilling_SteamBilling002_CancelPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->CancelPurchase( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_CompletePurchase( void *args ) +{ + struct ISteamBilling_SteamBilling002_CompletePurchase_params *params = (struct ISteamBilling_SteamBilling002_CompletePurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->CompletePurchase( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_CompletePurchase( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_CompletePurchase_params *params = (struct wow64_ISteamBilling_SteamBilling002_CompletePurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->CompletePurchase( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_UpdateCardInfo( void *args ) +{ + struct ISteamBilling_SteamBilling002_UpdateCardInfo_params *params = (struct ISteamBilling_SteamBilling002_UpdateCardInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->UpdateCardInfo( params->nCardIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_UpdateCardInfo( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_UpdateCardInfo_params *params = (struct wow64_ISteamBilling_SteamBilling002_UpdateCardInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->UpdateCardInfo( params->nCardIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_DeleteCard( void *args ) +{ + struct ISteamBilling_SteamBilling002_DeleteCard_params *params = (struct ISteamBilling_SteamBilling002_DeleteCard_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->DeleteCard( params->nCardIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_DeleteCard( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_DeleteCard_params *params = (struct wow64_ISteamBilling_SteamBilling002_DeleteCard_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->DeleteCard( params->nCardIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetCardList( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetCardList_params *params = (struct ISteamBilling_SteamBilling002_GetCardList_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetCardList( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetCardList( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetCardList_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetCardList_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetCardList( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_Obsolete_GetLicenses( void *args ) +{ + struct ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params *params = (struct ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->Obsolete_GetLicenses( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_Obsolete_GetLicenses( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params *params = (struct wow64_ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->Obsolete_GetLicenses( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_CancelLicense( void *args ) +{ + struct ISteamBilling_SteamBilling002_CancelLicense_params *params = (struct ISteamBilling_SteamBilling002_CancelLicense_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->CancelLicense( params->nPackageID, params->nCancelReason ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_CancelLicense( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_CancelLicense_params *params = (struct wow64_ISteamBilling_SteamBilling002_CancelLicense_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->CancelLicense( params->nPackageID, params->nCancelReason ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetPurchaseReceipts( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetPurchaseReceipts_params *params = (struct ISteamBilling_SteamBilling002_GetPurchaseReceipts_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetPurchaseReceipts( params->bUnacknowledgedOnly ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetPurchaseReceipts( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetPurchaseReceipts_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetPurchaseReceipts_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetPurchaseReceipts( params->bUnacknowledgedOnly ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_SetBillingAddress( void *args ) +{ + struct ISteamBilling_SteamBilling002_SetBillingAddress_params *params = (struct ISteamBilling_SteamBilling002_SetBillingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->SetBillingAddress( params->nCardIndex, params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_SetBillingAddress( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_SetBillingAddress_params *params = (struct wow64_ISteamBilling_SteamBilling002_SetBillingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->SetBillingAddress( params->nCardIndex, params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetBillingAddress( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetBillingAddress_params *params = (struct ISteamBilling_SteamBilling002_GetBillingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetBillingAddress( params->nCardIndex, params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetBillingAddress( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetBillingAddress_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetBillingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetBillingAddress( params->nCardIndex, params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_SetShippingAddress( void *args ) +{ + struct ISteamBilling_SteamBilling002_SetShippingAddress_params *params = (struct ISteamBilling_SteamBilling002_SetShippingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->SetShippingAddress( params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_SetShippingAddress( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_SetShippingAddress_params *params = (struct wow64_ISteamBilling_SteamBilling002_SetShippingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->SetShippingAddress( params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetShippingAddress( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetShippingAddress_params *params = (struct ISteamBilling_SteamBilling002_GetShippingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetShippingAddress( params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetShippingAddress( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetShippingAddress_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetShippingAddress_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetShippingAddress( params->pchFirstName, params->pchLastName, params->pchAddress1, params->pchAddress2, params->pchCity, params->pchPostcode, params->pchState, params->pchCountry, params->pchPhone ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_SetCardInfo( void *args ) +{ + struct ISteamBilling_SteamBilling002_SetCardInfo_params *params = (struct ISteamBilling_SteamBilling002_SetCardInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->SetCardInfo( params->nCardIndex, params->eCreditCardType, params->pchCardNumber, params->pchCardHolderFirstName, params->pchCardHolderLastName, params->pchCardExpYear, params->pchCardExpMonth, params->pchCardCVV2 ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_SetCardInfo( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_SetCardInfo_params *params = (struct wow64_ISteamBilling_SteamBilling002_SetCardInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->SetCardInfo( params->nCardIndex, params->eCreditCardType, params->pchCardNumber, params->pchCardHolderFirstName, params->pchCardHolderLastName, params->pchCardExpYear, params->pchCardExpMonth, params->pchCardCVV2 ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetCardInfo( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetCardInfo_params *params = (struct ISteamBilling_SteamBilling002_GetCardInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetCardInfo( params->nCardIndex, params->eCreditCardType, params->pchCardNumber, params->pchCardHolderFirstName, params->pchCardHolderLastName, params->pchCardExpYear, params->pchCardExpMonth, params->pchCardCVV2 ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetCardInfo( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetCardInfo_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetCardInfo_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetCardInfo( params->nCardIndex, params->eCreditCardType, params->pchCardNumber, params->pchCardHolderFirstName, params->pchCardHolderLastName, params->pchCardExpYear, params->pchCardExpMonth, params->pchCardCVV2 ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicensePackageID( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicensePackageID_params *params = (struct ISteamBilling_SteamBilling002_GetLicensePackageID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicensePackageID( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicensePackageID( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicensePackageID_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicensePackageID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicensePackageID( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseTimeCreated( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params *params = (struct ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseTimeCreated( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseTimeCreated( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseTimeCreated( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params *params = (struct ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseTimeNextProcess( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseTimeNextProcess( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseMinuteLimit( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params *params = (struct ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseMinuteLimit( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseMinuteLimit( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseMinutesUsed( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params *params = (struct ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseMinutesUsed( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseMinutesUsed( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicensePaymentMethod( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params *params = (struct ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicensePaymentMethod( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicensePaymentMethod( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicensePaymentMethod( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseFlags( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicenseFlags_params *params = (struct ISteamBilling_SteamBilling002_GetLicenseFlags_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseFlags( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseFlags( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicenseFlags_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicenseFlags_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicenseFlags( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params *params = (struct ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicensePurchaseCountryCode( params->nLicenseIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetLicensePurchaseCountryCode( params->nLicenseIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptPackageID( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptPackageID_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptPackageID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptPackageID( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptPackageID( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptPackageID_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptPackageID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptPackageID( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptStatus( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptStatus_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptStatus_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptStatus( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptStatus( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptStatus_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptStatus_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptStatus( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptResultDetail( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptResultDetail_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptResultDetail_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptResultDetail( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptResultDetail( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptResultDetail_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptResultDetail_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptResultDetail( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTransTime( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTransTime_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptTransTime_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTransTime( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTransTime( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptTransTime_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptTransTime_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTransTime( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTransID( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTransID_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptTransID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTransID( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTransID( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptTransID_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptTransID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTransID( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptPaymentMethod( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptPaymentMethod( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptPaymentMethod( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptBaseCost( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptBaseCost_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptBaseCost_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptBaseCost( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptBaseCost( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptBaseCost_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptBaseCost_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptBaseCost( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTotalDiscount( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTotalDiscount( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTotalDiscount( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTax( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTax_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptTax_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTax( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTax( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptTax_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptTax_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptTax( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptShipping( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptShipping_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptShipping_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptShipping( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptShipping( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptShipping_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptShipping_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptShipping( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptCountryCode( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetReceiptCountryCode_params *params = (struct ISteamBilling_SteamBilling002_GetReceiptCountryCode_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptCountryCode( params->nReceiptIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptCountryCode( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetReceiptCountryCode_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetReceiptCountryCode_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetReceiptCountryCode( params->nReceiptIndex ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetNumLicenses( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetNumLicenses_params *params = (struct ISteamBilling_SteamBilling002_GetNumLicenses_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetNumLicenses( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetNumLicenses( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetNumLicenses_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetNumLicenses_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetNumLicenses( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetNumReceipts( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetNumReceipts_params *params = (struct ISteamBilling_SteamBilling002_GetNumReceipts_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetNumReceipts( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetNumReceipts( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetNumReceipts_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetNumReceipts_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetNumReceipts( ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_PurchaseWithMachineID( void *args ) +{ + struct ISteamBilling_SteamBilling002_PurchaseWithMachineID_params *params = (struct ISteamBilling_SteamBilling002_PurchaseWithMachineID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->PurchaseWithMachineID( params->nPackageID, params->pchCustomData ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_PurchaseWithMachineID( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_PurchaseWithMachineID_params *params = (struct wow64_ISteamBilling_SteamBilling002_PurchaseWithMachineID_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->PurchaseWithMachineID( params->nPackageID, params->pchCustomData ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_InitClickAndBuyPurchase( void *args ) +{ + struct ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params *params = (struct ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->InitClickAndBuyPurchase( params->nPackageID, params->nAccountNum, params->pchState, params->pchCountryCode ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params *params = (struct wow64_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->InitClickAndBuyPurchase( params->nPackageID, params->nAccountNum, params->pchState, params->pchCountryCode ); + return 0; +} +#endif + +NTSTATUS ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount( void *args ) +{ + struct ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params *params = (struct ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetPreviousClickAndBuyAccount( params->pnAccountNum, params->pchState, params->pchCountryCode ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount( void *args ) +{ + struct wow64_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params *params = (struct wow64_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params *)args; + struct u_ISteamBilling_SteamBilling002 *iface = (struct u_ISteamBilling_SteamBilling002 *)params->u_iface; + params->_ret = iface->GetPreviousClickAndBuyAccount( params->pnAccountNum, params->pchState, params->pchCountryCode ); + return 0; +} +#endif + diff --git a/lsteamclient/cppISteamClient_SteamClient023.cpp b/lsteamclient/cppISteamClient_SteamClient023.cpp new file mode 100644 index 00000000000..29b946caf64 --- /dev/null +++ b/lsteamclient/cppISteamClient_SteamClient023.cpp @@ -0,0 +1,679 @@ +/* This file is auto-generated, do not edit. */ +#include "unix_private.h" + +#if 0 +#pragma makedep unix +#endif + +NTSTATUS ISteamClient_SteamClient023_CreateSteamPipe( void *args ) +{ + struct ISteamClient_SteamClient023_CreateSteamPipe_params *params = (struct ISteamClient_SteamClient023_CreateSteamPipe_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->CreateSteamPipe( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_CreateSteamPipe( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_CreateSteamPipe_params *params = (struct wow64_ISteamClient_SteamClient023_CreateSteamPipe_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->CreateSteamPipe( ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_BReleaseSteamPipe( void *args ) +{ + struct ISteamClient_SteamClient023_BReleaseSteamPipe_params *params = (struct ISteamClient_SteamClient023_BReleaseSteamPipe_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->BReleaseSteamPipe( params->hSteamPipe ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_BReleaseSteamPipe( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_BReleaseSteamPipe_params *params = (struct wow64_ISteamClient_SteamClient023_BReleaseSteamPipe_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->BReleaseSteamPipe( params->hSteamPipe ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_ConnectToGlobalUser( void *args ) +{ + struct ISteamClient_SteamClient023_ConnectToGlobalUser_params *params = (struct ISteamClient_SteamClient023_ConnectToGlobalUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->ConnectToGlobalUser( params->hSteamPipe ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_ConnectToGlobalUser( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_ConnectToGlobalUser_params *params = (struct wow64_ISteamClient_SteamClient023_ConnectToGlobalUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->ConnectToGlobalUser( params->hSteamPipe ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_CreateLocalUser( void *args ) +{ + struct ISteamClient_SteamClient023_CreateLocalUser_params *params = (struct ISteamClient_SteamClient023_CreateLocalUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->CreateLocalUser( params->phSteamPipe, params->eAccountType ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_CreateLocalUser( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_CreateLocalUser_params *params = (struct wow64_ISteamClient_SteamClient023_CreateLocalUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->CreateLocalUser( params->phSteamPipe, params->eAccountType ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_ReleaseUser( void *args ) +{ + struct ISteamClient_SteamClient023_ReleaseUser_params *params = (struct ISteamClient_SteamClient023_ReleaseUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->ReleaseUser( params->hSteamPipe, params->hUser ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_ReleaseUser( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_ReleaseUser_params *params = (struct wow64_ISteamClient_SteamClient023_ReleaseUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->ReleaseUser( params->hSteamPipe, params->hUser ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamUser( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamUser_params *params = (struct ISteamClient_SteamClient023_GetISteamUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUser( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUser( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamUser_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamUser_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUser( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamGameServer( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamGameServer_params *params = (struct ISteamClient_SteamClient023_GetISteamGameServer_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamGameServer( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamGameServer( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamGameServer_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamGameServer_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamGameServer( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_SetLocalIPBinding( void *args ) +{ + struct ISteamClient_SteamClient023_SetLocalIPBinding_params *params = (struct ISteamClient_SteamClient023_SetLocalIPBinding_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->SetLocalIPBinding( params->unIP, params->usPort ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_SetLocalIPBinding( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_SetLocalIPBinding_params *params = (struct wow64_ISteamClient_SteamClient023_SetLocalIPBinding_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->SetLocalIPBinding( params->unIP, params->usPort ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamFriends( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamFriends_params *params = (struct ISteamClient_SteamClient023_GetISteamFriends_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamFriends( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamFriends( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamFriends_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamFriends_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamFriends( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamUtils( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamUtils_params *params = (struct ISteamClient_SteamClient023_GetISteamUtils_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUtils( params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUtils( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamUtils_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamUtils_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUtils( params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamMatchmaking( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamMatchmaking_params *params = (struct ISteamClient_SteamClient023_GetISteamMatchmaking_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamMatchmaking( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamMatchmaking( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamMatchmaking_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamMatchmaking_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamMatchmaking( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamMatchmakingServers( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamMatchmakingServers_params *params = (struct ISteamClient_SteamClient023_GetISteamMatchmakingServers_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamMatchmakingServers( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamMatchmakingServers( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamMatchmakingServers_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamMatchmakingServers_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamMatchmakingServers( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamGenericInterface( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamGenericInterface_params *params = (struct ISteamClient_SteamClient023_GetISteamGenericInterface_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamGenericInterface( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamGenericInterface( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamGenericInterface_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamGenericInterface_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamGenericInterface( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamUserStats( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamUserStats_params *params = (struct ISteamClient_SteamClient023_GetISteamUserStats_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUserStats( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUserStats( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamUserStats_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamUserStats_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUserStats( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamGameServerStats( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamGameServerStats_params *params = (struct ISteamClient_SteamClient023_GetISteamGameServerStats_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamGameServerStats( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamGameServerStats( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamGameServerStats_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamGameServerStats_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamGameServerStats( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamApps( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamApps_params *params = (struct ISteamClient_SteamClient023_GetISteamApps_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamApps( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamApps( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamApps_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamApps_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamApps( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamNetworking( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamNetworking_params *params = (struct ISteamClient_SteamClient023_GetISteamNetworking_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamNetworking( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamNetworking( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamNetworking_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamNetworking_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamNetworking( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamRemoteStorage( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamRemoteStorage_params *params = (struct ISteamClient_SteamClient023_GetISteamRemoteStorage_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamRemoteStorage( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamRemoteStorage( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamRemoteStorage_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamRemoteStorage_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamRemoteStorage( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamScreenshots( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamScreenshots_params *params = (struct ISteamClient_SteamClient023_GetISteamScreenshots_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamScreenshots( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamScreenshots( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamScreenshots_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamScreenshots_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamScreenshots( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_RunFrame( void *args ) +{ + struct ISteamClient_SteamClient023_RunFrame_params *params = (struct ISteamClient_SteamClient023_RunFrame_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->RunFrame( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_RunFrame( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_RunFrame_params *params = (struct wow64_ISteamClient_SteamClient023_RunFrame_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->RunFrame( ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetIPCCallCount( void *args ) +{ + struct ISteamClient_SteamClient023_GetIPCCallCount_params *params = (struct ISteamClient_SteamClient023_GetIPCCallCount_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetIPCCallCount( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetIPCCallCount( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetIPCCallCount_params *params = (struct wow64_ISteamClient_SteamClient023_GetIPCCallCount_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetIPCCallCount( ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_SetWarningMessageHook( void *args ) +{ + struct ISteamClient_SteamClient023_SetWarningMessageHook_params *params = (struct ISteamClient_SteamClient023_SetWarningMessageHook_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + void (*U_CDECL u_pFunction)(int32_t, const char *) = manual_convert_SetWarningMessageHook_pFunction( params->pFunction ); + iface->SetWarningMessageHook( u_pFunction ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_SetWarningMessageHook( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_SetWarningMessageHook_params *params = (struct wow64_ISteamClient_SteamClient023_SetWarningMessageHook_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + void (*U_CDECL u_pFunction)(int32_t, const char *) = manual_convert_SetWarningMessageHook_pFunction( params->pFunction ); + iface->SetWarningMessageHook( u_pFunction ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_BShutdownIfAllPipesClosed( void *args ) +{ + struct ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params *params = (struct ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->BShutdownIfAllPipesClosed( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params *params = (struct wow64_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->BShutdownIfAllPipesClosed( ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamHTTP( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamHTTP_params *params = (struct ISteamClient_SteamClient023_GetISteamHTTP_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamHTTP( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamHTTP( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamHTTP_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamHTTP_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamHTTP( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamController( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamController_params *params = (struct ISteamClient_SteamClient023_GetISteamController_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamController( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamController( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamController_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamController_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamController( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamUGC( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamUGC_params *params = (struct ISteamClient_SteamClient023_GetISteamUGC_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUGC( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUGC( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamUGC_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamUGC_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamUGC( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamMusic( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamMusic_params *params = (struct ISteamClient_SteamClient023_GetISteamMusic_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamMusic( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamMusic( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamMusic_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamMusic_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamMusic( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamHTMLSurface( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamHTMLSurface_params *params = (struct ISteamClient_SteamClient023_GetISteamHTMLSurface_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamHTMLSurface( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamHTMLSurface( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamHTMLSurface_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamHTMLSurface_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamHTMLSurface( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( void *args ) +{ + struct ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params *params = (struct ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + void (*U_CDECL u__a)(void) = manual_convert_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess__a( params->_a ); + iface->DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( u__a ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params *params = (struct wow64_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + void (*U_CDECL u__a)(void) = manual_convert_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess__a( params->_a ); + iface->DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( u__a ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( void *args ) +{ + struct ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params *params = (struct ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + void (*U_CDECL u__a)(void) = manual_convert_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess__a( params->_a ); + iface->DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( u__a ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params *params = (struct wow64_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + void (*U_CDECL u__a)(void) = manual_convert_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess__a( params->_a ); + iface->DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( u__a ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamInventory( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamInventory_params *params = (struct ISteamClient_SteamClient023_GetISteamInventory_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamInventory( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamInventory( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamInventory_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamInventory_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamInventory( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamVideo( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamVideo_params *params = (struct ISteamClient_SteamClient023_GetISteamVideo_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamVideo( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamVideo( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamVideo_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamVideo_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamVideo( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamParentalSettings( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamParentalSettings_params *params = (struct ISteamClient_SteamClient023_GetISteamParentalSettings_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamParentalSettings( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamParentalSettings( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamParentalSettings_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamParentalSettings_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamParentalSettings( params->hSteamuser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamInput( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamInput_params *params = (struct ISteamClient_SteamClient023_GetISteamInput_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamInput( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamInput( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamInput_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamInput_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamInput( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamParties( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamParties_params *params = (struct ISteamClient_SteamClient023_GetISteamParties_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamParties( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamParties( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamParties_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamParties_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamParties( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_GetISteamRemotePlay( void *args ) +{ + struct ISteamClient_SteamClient023_GetISteamRemotePlay_params *params = (struct ISteamClient_SteamClient023_GetISteamRemotePlay_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamRemotePlay( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamRemotePlay( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_GetISteamRemotePlay_params *params = (struct wow64_ISteamClient_SteamClient023_GetISteamRemotePlay_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + params->_ret = iface->GetISteamRemotePlay( params->hSteamUser, params->hSteamPipe, params->pchVersion ); + return 0; +} +#endif + +NTSTATUS ISteamClient_SteamClient023_DestroyAllInterfaces( void *args ) +{ + struct ISteamClient_SteamClient023_DestroyAllInterfaces_params *params = (struct ISteamClient_SteamClient023_DestroyAllInterfaces_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->DestroyAllInterfaces( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_ISteamClient_SteamClient023_DestroyAllInterfaces( void *args ) +{ + struct wow64_ISteamClient_SteamClient023_DestroyAllInterfaces_params *params = (struct wow64_ISteamClient_SteamClient023_DestroyAllInterfaces_params *)args; + struct u_ISteamClient_SteamClient023 *iface = (struct u_ISteamClient_SteamClient023 *)params->u_iface; + iface->DestroyAllInterfaces( ); + return 0; +} +#endif + diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005.cpp index d0e3ff1d926..5bfd6d4cf64 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005.cpp @@ -409,9 +409,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005_PublishFile { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005_PublishFile_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005_PublishFile_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishFile( params->pchFile, params->pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishFile( params->pchFile, params->pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); return 0; } @@ -433,9 +431,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->pTags ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006.cpp index cd88e7f4ad2..2bbf4b6e351 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006.cpp @@ -429,9 +429,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -573,9 +571,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -793,11 +789,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -820,9 +812,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->pchVideoURL, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->pchVideoURL, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -881,11 +871,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007.cpp index d78c9149ea3..7c5272cf2ad 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007.cpp @@ -429,9 +429,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -573,9 +571,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -793,11 +789,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -820,9 +812,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -881,11 +871,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008.cpp index fc5e1abc14b..9db0b506be8 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008.cpp @@ -501,9 +501,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -645,9 +643,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -865,11 +861,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -892,9 +884,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -953,11 +943,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009.cpp index 034e717ab42..63eaadf3ba2 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009.cpp @@ -501,9 +501,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -645,9 +643,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -865,11 +861,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -892,9 +884,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -953,11 +943,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010.cpp index fd88a47df06..cfdc0821931 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010.cpp @@ -501,9 +501,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -645,9 +643,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -865,11 +861,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -892,9 +884,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -953,11 +943,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011.cpp index fc15deefe52..69b900b18cb 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011.cpp @@ -501,9 +501,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -645,9 +643,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -865,11 +861,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -892,9 +884,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -953,11 +943,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012.cpp index 90640f698f6..98c669bf6f6 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012.cpp @@ -501,9 +501,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -645,9 +643,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -865,11 +861,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -892,9 +884,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -953,11 +943,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013.cpp index fef1a1c65f4..844febda538 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013.cpp @@ -555,9 +555,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -699,9 +697,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -919,11 +915,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -946,9 +938,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -1007,11 +997,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014.cpp index a1d9c249ef0..4695d1c26f9 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014.cpp @@ -555,9 +555,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -699,9 +697,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -919,11 +915,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -946,9 +938,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -1007,11 +997,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016.cpp b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016.cpp index 719a9f85adb..7193da5114f 100644 --- a/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016.cpp +++ b/lsteamclient/cppISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016.cpp @@ -555,9 +555,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_PublishWork struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *)params->u_iface; char *u_pchFile = steamclient_dos_to_unix_path( params->pchFile, 0 ); char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags, params->eWorkshopFileType ); - *params->pTags = u_pTags; + params->_ret = iface->PublishWorkshopFile( u_pchFile, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags, params->eWorkshopFileType ); steamclient_free_path( u_pchFile ); steamclient_free_path( u_pchPreviewFile ); return 0; @@ -699,9 +697,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_UpdatePubli { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_UpdatePublishedFileTags_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_UpdatePublishedFileTags_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->UpdatePublishedFileTags( params->updateHandle, params->pTags ); return 0; } @@ -919,11 +915,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_EnumerateUs { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_EnumerateUserSharedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_EnumerateUserSharedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *)params->u_iface; - u_SteamParamStringArray_t u_pExcludedTags = *params->pExcludedTags; - u_SteamParamStringArray_t u_pRequiredTags = *params->pRequiredTags; - params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, &u_pRequiredTags, &u_pExcludedTags ); - *params->pExcludedTags = u_pExcludedTags; - *params->pRequiredTags = u_pRequiredTags; + params->_ret = iface->EnumerateUserSharedWorkshopFiles( params->steamId, params->unStartIndex, params->pRequiredTags, params->pExcludedTags ); return 0; } @@ -946,9 +938,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_PublishVide struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_PublishVideo_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_PublishVideo_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *)params->u_iface; char *u_pchPreviewFile = steamclient_dos_to_unix_path( params->pchPreviewFile, 0 ); - u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, &u_pTags ); - *params->pTags = u_pTags; + params->_ret = iface->PublishVideo( params->eVideoProvider, params->pchVideoAccount, params->pchVideoIdentifier, u_pchPreviewFile, params->nConsumerAppId, params->pchTitle, params->pchDescription, params->eVisibility, params->pTags ); steamclient_free_path( u_pchPreviewFile ); return 0; } @@ -1007,11 +997,7 @@ NTSTATUS ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_EnumeratePu { struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_EnumeratePublishedWorkshopFiles_params *params = (struct ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016_EnumeratePublishedWorkshopFiles_params *)args; struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *iface = (struct u_ISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016 *)params->u_iface; - u_SteamParamStringArray_t u_pTags = *params->pTags; - u_SteamParamStringArray_t u_pUserTags = *params->pUserTags; - params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, &u_pTags, &u_pUserTags ); - *params->pTags = u_pTags; - *params->pUserTags = u_pUserTags; + params->_ret = iface->EnumeratePublishedWorkshopFiles( params->eEnumerationType, params->unStartIndex, params->unCount, params->unDays, params->pTags, params->pUserTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION002.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION002.cpp index 435156ba37c..089747dd0c8 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION002.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION002.cpp @@ -373,8 +373,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION002_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION002_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION002_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION002 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION002 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION003.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION003.cpp index 83fb0a0be99..c029ed14d71 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION003.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION003.cpp @@ -373,8 +373,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION003_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION003_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION003_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION003 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION003 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION004.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION004.cpp index d07d8f19b59..e6a4a28f32d 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION004.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION004.cpp @@ -373,8 +373,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION004_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION004_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION004_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION004 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION004 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION005.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION005.cpp index c7ec27bb4e6..da02de325c7 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION005.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION005.cpp @@ -573,8 +573,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION005_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION005_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION005_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION005 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION005 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION006.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION006.cpp index 18b75188e3b..f95ac50d1cd 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION006.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION006.cpp @@ -609,8 +609,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION006_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION006_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION006_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION006 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION006 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION007.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION007.cpp index 957e817ae12..7535b4bc766 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION007.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION007.cpp @@ -681,8 +681,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION007_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION007_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION007_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION007 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION007 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION008.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION008.cpp index 76ba2816548..f7fe89d9533 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION008.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION008.cpp @@ -681,8 +681,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION008_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION008_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION008_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION008 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION008 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION009.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION009.cpp index fb7c06232bf..719d3af9fdf 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION009.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION009.cpp @@ -699,8 +699,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION009_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION009_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION009_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION009 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION009 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION010.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION010.cpp index fbc95315a26..2478ecef68d 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION010.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION010.cpp @@ -717,8 +717,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION010_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION010_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION010_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION010 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION010 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION012.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION012.cpp index 9cca0e77775..322047e09c2 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION012.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION012.cpp @@ -735,8 +735,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION012_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION012_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION012_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION012 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION012 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION013.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION013.cpp index 64c618382f8..aa1dee9d97f 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION013.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION013.cpp @@ -753,8 +753,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION013_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION013_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION013_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION013 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION013 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION014.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION014.cpp index f1788a7b10a..467ab0e93cb 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION014.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION014.cpp @@ -321,8 +321,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION014_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION014_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION014_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION014 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION014 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -774,8 +773,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION014_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION014_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION014_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION014 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION014 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION015.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION015.cpp index 50d23bfad1d..965a9d5c848 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION015.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION015.cpp @@ -375,8 +375,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION015_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION015_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION015_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION015 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION015 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -828,8 +827,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION015_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION015_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION015_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION015 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION015 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION016.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION016.cpp index b7d8a5e338b..ffc6c2e2020 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION016.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION016.cpp @@ -375,8 +375,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION016_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION016_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION016_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION016 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION016 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -864,8 +863,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION016_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION016_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION016_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION016 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION016 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION017.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION017.cpp index 72b54b7027c..a6817b245c6 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION017.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION017.cpp @@ -393,8 +393,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION017_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION017_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION017_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION017 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION017 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -882,8 +881,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION017_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION017_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION017_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION017 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION017 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION018.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION018.cpp index 65b73187cf7..d6309c4d25d 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION018.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION018.cpp @@ -393,8 +393,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION018_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION018_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION018_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION018 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION018 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -882,8 +881,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION018_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION018_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION018_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION018 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION018 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags, params->bAllowAdminTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags, params->bAllowAdminTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION020.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION020.cpp index 00b9cc273ed..ac2e2ab5d1f 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION020.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION020.cpp @@ -429,8 +429,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION020_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION020_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION020_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION020 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION020 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -936,8 +935,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION020_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION020_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION020_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION020 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION020 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags, params->bAllowAdminTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags, params->bAllowAdminTags ); return 0; } diff --git a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION021.cpp b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION021.cpp index b9f1bb310b2..6b38751a563 100644 --- a/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION021.cpp +++ b/lsteamclient/cppISteamUGC_STEAMUGC_INTERFACE_VERSION021.cpp @@ -429,8 +429,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION021_AddRequiredTagGroup( void *args { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION021_AddRequiredTagGroup_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION021_AddRequiredTagGroup_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION021 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION021 *)params->u_iface; - const u_SteamParamStringArray_t u_pTagGroups = *params->pTagGroups; - params->_ret = iface->AddRequiredTagGroup( params->handle, &u_pTagGroups ); + params->_ret = iface->AddRequiredTagGroup( params->handle, params->pTagGroups ); return 0; } @@ -936,8 +935,7 @@ NTSTATUS ISteamUGC_STEAMUGC_INTERFACE_VERSION021_SetItemTags( void *args ) { struct ISteamUGC_STEAMUGC_INTERFACE_VERSION021_SetItemTags_params *params = (struct ISteamUGC_STEAMUGC_INTERFACE_VERSION021_SetItemTags_params *)args; struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION021 *iface = (struct u_ISteamUGC_STEAMUGC_INTERFACE_VERSION021 *)params->u_iface; - const u_SteamParamStringArray_t u_pTags = *params->pTags; - params->_ret = iface->SetItemTags( params->updateHandle, &u_pTags, params->bAllowAdminTags ); + params->_ret = iface->SetItemTags( params->updateHandle, params->pTags, params->bAllowAdminTags ); return 0; } diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index 7000c4bea99..99ce369f726 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -11,6 +11,7 @@ import re SDK_VERSIONS = [ + "163", "162", "161", "160", @@ -131,6 +132,9 @@ "ISteamUtils", "ISteamVideo" ], + "isteambilling.h": [ + "ISteamBilling" + ], "isteamappticket.h": [ "ISteamAppTicket" ], @@ -912,8 +916,6 @@ def struct_needs_conversion(struct, wow64): return True if abis['w64'].needs_conversion(abis['u64']): return True - if abis['w32'].needs_conversion(abis['u64']): - return True return wow64 diff --git a/lsteamclient/steamclient_generated.c b/lsteamclient/steamclient_generated.c index a9d4ab04473..83d233bb5b6 100644 --- a/lsteamclient/steamclient_generated.c +++ b/lsteamclient/steamclient_generated.c @@ -89,6 +89,7 @@ static const struct { const char *iface_version; iface_constructor ctor; } const {"STEAMVIDEO_INTERFACE_V001", &create_winISteamVideo_STEAMVIDEO_INTERFACE_V001}, {"STEAMVIDEO_INTERFACE_V002", &create_winISteamVideo_STEAMVIDEO_INTERFACE_V002}, {"STEAMVIDEO_INTERFACE_V007", &create_winISteamVideo_STEAMVIDEO_INTERFACE_V007}, + {"SteamBilling002", &create_winISteamBilling_SteamBilling002}, {"SteamClient006", &create_winISteamClient_SteamClient006}, {"SteamClient007", &create_winISteamClient_SteamClient007}, {"SteamClient008", &create_winISteamClient_SteamClient008}, @@ -105,6 +106,7 @@ static const struct { const char *iface_version; iface_constructor ctor; } const {"SteamClient019", &create_winISteamClient_SteamClient019}, {"SteamClient020", &create_winISteamClient_SteamClient020}, {"SteamClient021", &create_winISteamClient_SteamClient021}, + {"SteamClient023", &create_winISteamClient_SteamClient023}, {"SteamController003", &create_winISteamController_SteamController003}, {"SteamController004", &create_winISteamController_SteamController004}, {"SteamController005", &create_winISteamController_SteamController005}, @@ -229,6 +231,7 @@ iface_constructor find_iface_constructor( const char *iface_version ) extern void init_winISteamAppList_rtti( char * ); extern void init_winISteamAppTicket_rtti( char * ); extern void init_winISteamApps_rtti( char * ); +extern void init_winISteamBilling_rtti( char * ); extern void init_winISteamClient_rtti( char * ); extern void init_winISteamController_rtti( char * ); extern void init_winISteamFriends_rtti( char * ); @@ -270,6 +273,7 @@ void init_rtti( char *base ) init_winISteamAppList_rtti( base ); init_winISteamAppTicket_rtti( base ); init_winISteamApps_rtti( base ); + init_winISteamBilling_rtti( base ); init_winISteamClient_rtti( base ); init_winISteamController_rtti( base ); init_winISteamFriends_rtti( base ); diff --git a/lsteamclient/steamclient_generated.h b/lsteamclient/steamclient_generated.h index 70473347948..fa9e9445ef5 100644 --- a/lsteamclient/steamclient_generated.h +++ b/lsteamclient/steamclient_generated.h @@ -84,6 +84,7 @@ extern struct w_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSIO extern struct w_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V001( struct u_iface ); extern struct w_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V002( struct u_iface ); extern struct w_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V007( struct u_iface ); +extern struct w_iface *create_winISteamBilling_SteamBilling002( struct u_iface ); extern struct w_iface *create_winISteamClient_SteamClient006( struct u_iface ); extern struct w_iface *create_winISteamClient_SteamClient007( struct u_iface ); extern struct w_iface *create_winISteamClient_SteamClient008( struct u_iface ); @@ -100,6 +101,7 @@ extern struct w_iface *create_winISteamClient_SteamClient018( struct u_iface ); extern struct w_iface *create_winISteamClient_SteamClient019( struct u_iface ); extern struct w_iface *create_winISteamClient_SteamClient020( struct u_iface ); extern struct w_iface *create_winISteamClient_SteamClient021( struct u_iface ); +extern struct w_iface *create_winISteamClient_SteamClient023( struct u_iface ); extern struct w_iface *create_winISteamController_SteamController003( struct u_iface ); extern struct w_iface *create_winISteamController_SteamController004( struct u_iface ); extern struct w_iface *create_winISteamController_SteamController005( struct u_iface ); diff --git a/lsteamclient/steamworks_sdk_099y/isteambilling.h b/lsteamclient/steamworks_sdk_099y/isteambilling.h new file mode 100644 index 00000000000..c0f3309f5c2 --- /dev/null +++ b/lsteamclient/steamworks_sdk_099y/isteambilling.h @@ -0,0 +1,63 @@ +#ifndef ISTEAMBILLING_H +#define ISTEAMBILLING_H +#ifdef _WIN32 +#pragma once +#endif + +#include "isteamclient.h" + +typedef int32 EPaymentMethod; +typedef int32 EPurchaseStatus; +typedef int32 EPurchaseResultDetail; + +class ISteamBilling +{ +public: + virtual bool InitCreditCardPurchase( int32 nPackageID, uint32 nCardIndex, bool bStoreCardInfo ); + virtual bool InitPayPalPurchase( int32 nPackageID ); + virtual bool GetActivationCodeInfo(const char *pchActivationCode ); + virtual bool PurchaseWithActivationCode( const char *pchActivationCode ); + virtual bool GetFinalPrice(); + virtual bool CancelPurchase(); + virtual bool CompletePurchase(); + virtual bool UpdateCardInfo( uint32 nCardIndex ); + virtual bool DeleteCard( uint32 nCardIndex ); + virtual bool GetCardList(); + virtual bool Obsolete_GetLicenses(); + virtual bool CancelLicense( int32 nPackageID, int32 nCancelReason ); + virtual bool GetPurchaseReceipts( bool bUnacknowledgedOnly ); + virtual bool SetBillingAddress( uint32 nCardIndex, const char *pchFirstName, const char *pchLastName, const char *pchAddress1, const char *pchAddress2, const char *pchCity, const char *pchPostcode, const char *pchState, const char *pchCountry, const char *pchPhone ); + virtual bool GetBillingAddress( uint32 nCardIndex, char *pchFirstName, char *pchLastName, char *pchAddress1, char *pchAddress2, char *pchCity, char *pchPostcode, char *pchState, char *pchCountry, char *pchPhone ); + virtual bool SetShippingAddress( const char *pchFirstName, const char *pchLastName, const char *pchAddress1, const char *pchAddress2, const char *pchCity, const char *pchPostcode, const char *pchState, const char *pchCountry, const char *pchPhone ); + virtual bool GetShippingAddress( char *pchFirstName, char *pchLastName, char *pchAddress1, char *pchAddress2, char *pchCity, char *pchPostcode, char *pchState, char *pchCountry, char *pchPhone ); + virtual bool SetCardInfo( uint32 nCardIndex, int32 eCreditCardType, const char *pchCardNumber, const char *pchCardHolderFirstName, const char *pchCardHolderLastName, const char *pchCardExpYear, const char *pchCardExpMonth, const char *pchCardCVV2 ); + virtual bool GetCardInfo( uint32 nCardIndex, int32 *eCreditCardType, char *pchCardNumber, char *pchCardHolderFirstName, char *pchCardHolderLastName, char *pchCardExpYear, char *pchCardExpMonth, char *pchCardCVV2 ); + virtual int32 GetLicensePackageID( uint32 nLicenseIndex ); + virtual uint32 GetLicenseTimeCreated( uint32 nLicenseIndex ); + virtual uint32 GetLicenseTimeNextProcess( uint32 nLicenseIndex ); + virtual int32 GetLicenseMinuteLimit( uint32 nLicenseIndex ); + virtual int32 GetLicenseMinutesUsed( uint32 nLicenseIndex ); + virtual EPaymentMethod GetLicensePaymentMethod( uint32 nLicenseIndex ); + virtual uint32 GetLicenseFlags( uint32 nLicenseIndex ); + virtual const char * GetLicensePurchaseCountryCode( uint32 nLicenseIndex ); + virtual int32 GetReceiptPackageID( uint32 nReceiptIndex ); + virtual EPurchaseStatus GetReceiptStatus( uint32 nReceiptIndex ); + virtual EPurchaseResultDetail GetReceiptResultDetail( uint32 nReceiptIndex ); + virtual uint32 GetReceiptTransTime( uint32 nReceiptIndex ); + virtual uint64 GetReceiptTransID( uint32 nReceiptIndex ); + virtual EPaymentMethod GetReceiptPaymentMethod( uint32 nReceiptIndex ); + virtual uint32 GetReceiptBaseCost( uint32 nReceiptIndex ); + virtual uint32 GetReceiptTotalDiscount( uint32 nReceiptIndex ); + virtual uint32 GetReceiptTax( uint32 nReceiptIndex ); + virtual uint32 GetReceiptShipping( uint32 nReceiptIndex ); + virtual const char * GetReceiptCountryCode( uint32 nReceiptIndex ); + virtual uint32 GetNumLicenses(); + virtual uint32 GetNumReceipts(); + virtual bool PurchaseWithMachineID( int32 nPackageID, const char *pchCustomData ); + virtual bool InitClickAndBuyPurchase( int32 nPackageID, int64 nAccountNum, const char *pchState, const char *pchCountryCode ); + virtual bool GetPreviousClickAndBuyAccount( int64 *pnAccountNum, char *pchState, char *pchCountryCode ); +}; + +#define STEAMBILLING_INTERFACE_VERSION "SteamBilling002" + +#endif diff --git a/lsteamclient/steamworks_sdk_163/isteamapps.h b/lsteamclient/steamworks_sdk_163/isteamapps.h new file mode 100644 index 00000000000..ee2a4dc39bb --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamapps.h @@ -0,0 +1,201 @@ +//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to app data in Steam +// +//============================================================================= + +#ifndef ISTEAMAPPS_H +#define ISTEAMAPPS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +const int k_cubAppProofOfPurchaseKeyMax = 240; // max supported length of a legacy cd key + + +//----------------------------------------------------------------------------- +// Purpose: interface to app data +//----------------------------------------------------------------------------- +class ISteamApps +{ +public: + virtual bool BIsSubscribed() = 0; + virtual bool BIsLowViolence() = 0; + virtual bool BIsCybercafe() = 0; + virtual bool BIsVACBanned() = 0; + virtual const char *GetCurrentGameLanguage() = 0; + virtual const char *GetAvailableGameLanguages() = 0; + + // only use this member if you need to check ownership of another game related to yours, a demo for example + virtual bool BIsSubscribedApp( AppId_t appID ) = 0; + + // Takes AppID of DLC and checks if the user owns the DLC & if the DLC is installed + virtual bool BIsDlcInstalled( AppId_t appID ) = 0; + + // returns the Unix time of the purchase of the app + virtual uint32 GetEarliestPurchaseUnixTime( AppId_t nAppID ) = 0; + + // Checks if the user is subscribed to the current app through a free weekend + // This function will return false for users who have a retail or other type of license + // Before using, please ask your Valve technical contact how to package and secure your free weekend + virtual bool BIsSubscribedFromFreeWeekend() = 0; + + // Returns the number of DLC pieces for the running app + virtual int GetDLCCount() = 0; + + // Returns metadata for DLC by index, of range [0, GetDLCCount()] + virtual bool BGetDLCDataByIndex( int iDLC, AppId_t *pAppID, bool *pbAvailable, char *pchName, int cchNameBufferSize ) = 0; + + // Install/Uninstall control for optional DLC + virtual void InstallDLC( AppId_t nAppID ) = 0; + virtual void UninstallDLC( AppId_t nAppID ) = 0; + + // Request legacy cd-key for yourself or owned DLC. If you are interested in this + // data then make sure you provide us with a list of valid keys to be distributed + // to users when they purchase the game, before the game ships. + // You'll receive an AppProofOfPurchaseKeyResponse_t callback when + // the key is available (which may be immediately). + virtual void RequestAppProofOfPurchaseKey( AppId_t nAppID ) = 0; + + virtual bool GetCurrentBetaName( char *pchName, int cchNameBufferSize ) = 0; // returns current beta branch name, 'public' is the default branch + virtual bool MarkContentCorrupt( bool bMissingFilesOnly ) = 0; // signal Steam that game files seems corrupt or missing + virtual uint32 GetInstalledDepots( AppId_t appID, DepotId_t *pvecDepots, uint32 cMaxDepots ) = 0; // return installed depots in mount order + + // returns current app install folder for AppID, returns folder name length + virtual uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize ) = 0; + virtual bool BIsAppInstalled( AppId_t appID ) = 0; // returns true if that app is installed (not necessarily owned) + + // returns the SteamID of the original owner. If this CSteamID is different from ISteamUser::GetSteamID(), + // the user has a temporary license borrowed via Family Sharing + virtual CSteamID GetAppOwner() = 0; + + // Returns the associated launch param if the game is run via steam://run///?param1=value1¶m2=value2¶m3=value3 etc. + // Parameter names starting with the character '@' are reserved for internal use and will always return and empty string. + // Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + // but it is advised that you not param names beginning with an underscore for your own features. + // Check for new launch parameters on callback NewUrlLaunchParameters_t + virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; + + // get download progress for optional DLC + virtual bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; + + // return the buildid of this app, may change at any time based on backend updates to the game + virtual int GetAppBuildId() = 0; + + // Request all proof of purchase keys for the calling appid and associated DLC. + // A series of AppProofOfPurchaseKeyResponse_t callbacks will be sent with + // appropriate appid values, ending with a final callback where the m_nAppId + // member is k_uAppIdInvalid (zero). + virtual void RequestAllProofOfPurchaseKeys() = 0; + + STEAM_CALL_RESULT( FileDetailsResult_t ) + virtual SteamAPICall_t GetFileDetails( const char* pszFileName ) = 0; + + // Get command line if game was launched via Steam URL, e.g. steam://run////. + // This method of passing a connect string (used when joining via rich presence, accepting an + // invite, etc) is preferable to passing the connect string on the operating system command + // line, which is a security risk. In order for rich presence joins to go through this + // path and not be placed on the OS command line, you must set a value in your app's + // configuration on Steam. Ask Valve for help with this. + // + // If game was already running and launched again, the NewUrlLaunchParameters_t will be fired. + virtual int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine ) = 0; + + // Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + virtual bool BIsSubscribedFromFamilySharing() = 0; + + // check if game is a timed trial with limited playtime + virtual bool BIsTimedTrial( uint32* punSecondsAllowed, uint32* punSecondsPlayed ) = 0; + + // set current DLC AppID being played (or 0 if none). Allows Steam to track usage of major DLC extensions + virtual bool SetDlcContext( AppId_t nAppID ) = 0; + + // returns total number of known app branches (including default "public" branch ). nAvailable is number of available betas + virtual int GetNumBetas( int *pnAvailable, int *pnPrivate ) = 0; // + + // return beta branch details, name, description, current BuildID and state flags (EBetaBranchFlags) + virtual bool GetBetaInfo( int iBetaIndex, uint32 *punFlags, uint32 *punBuildID, char *pchBetaName, int cchBetaName, char *pchDescription, int cchDescription ) = 0; // iterate through + + // select this beta branch for this app as active, might need the game to restart so Steam can update to that branch + virtual bool SetActiveBeta( const char *pchBetaName ) = 0; +}; + +#define STEAMAPPS_INTERFACE_VERSION "STEAMAPPS_INTERFACE_VERSION008" + +// Global interface accessor +inline ISteamApps *SteamApps(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamApps *, SteamApps, STEAMAPPS_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif +//----------------------------------------------------------------------------- +// Purpose: posted after the user gains ownership of DLC & that DLC is installed +//----------------------------------------------------------------------------- +struct DlcInstalled_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 5 }; + AppId_t m_nAppID; // AppID of the DLC +}; + + +//--------------------------------------------------------------------------------- +// Purpose: posted after the user gains executes a Steam URL with command line or query parameters +// such as steam://run///-commandline/?param1=value1¶m2=value2¶m3=value3 etc +// while the game is already running. The new params can be queried +// with GetLaunchQueryParam and GetLaunchCommandLine +//--------------------------------------------------------------------------------- +struct NewUrlLaunchParameters_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 14 }; +}; + + +//----------------------------------------------------------------------------- +// Purpose: response to RequestAppProofOfPurchaseKey/RequestAllProofOfPurchaseKeys +// for supporting third-party CD keys, or other proof-of-purchase systems. +//----------------------------------------------------------------------------- +struct AppProofOfPurchaseKeyResponse_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 21 }; + EResult m_eResult; + uint32 m_nAppID; + uint32 m_cchKeyLength; + char m_rgchKey[k_cubAppProofOfPurchaseKeyMax]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: response to GetFileDetails +//----------------------------------------------------------------------------- +struct FileDetailsResult_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 23 }; + EResult m_eResult; + uint64 m_ulFileSize; // original file size in bytes + uint8 m_FileSHA[20]; // original file SHA1 hash + uint32 m_unFlags; // +}; + + +//----------------------------------------------------------------------------- +// Purpose: called for games in Timed Trial mode +//----------------------------------------------------------------------------- +struct TimedTrialStatus_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 30 }; + AppId_t m_unAppID; // appID + bool m_bIsOffline; // if true, time allowed / played refers to offline time, not total time + uint32 m_unSecondsAllowed; // how many seconds the app can be played in total + uint32 m_unSecondsPlayed; // how many seconds the app was already played +}; + +#pragma pack( pop ) +#endif // ISTEAMAPPS_H diff --git a/lsteamclient/steamworks_sdk_163/isteamappticket.h b/lsteamclient/steamworks_sdk_163/isteamappticket.h new file mode 100644 index 00000000000..77e04ece5e8 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamappticket.h @@ -0,0 +1,28 @@ +//====== Copyright 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: a private, but well versioned, interface to get at critical bits +// of a steam3 appticket - consumed by the simple drm wrapper to let it +// ask about ownership with greater confidence. +// +//============================================================================= + +#ifndef ISTEAMAPPTICKET_H +#define ISTEAMAPPTICKET_H +#include "steamtypes.h" + +//----------------------------------------------------------------------------- +// Purpose: hand out a reasonable "future proof" view of an app ownership ticket +// the raw (signed) buffer, and indices into that buffer where the appid and +// steamid are located. the sizes of the appid and steamid are implicit in +// (each version of) the interface - currently uin32 appid and uint64 steamid +//----------------------------------------------------------------------------- +class ISteamAppTicket +{ +public: + virtual uint32 GetAppOwnershipTicketData( uint32 nAppID, void *pvBuffer, uint32 cbBufferLength, uint32 *piAppId, uint32 *piSteamId, uint32 *piSignature, uint32 *pcbSignature ) = 0; +}; + +#define STEAMAPPTICKET_INTERFACE_VERSION "STEAMAPPTICKET_INTERFACE_VERSION001" + + +#endif // ISTEAMAPPTICKET_H diff --git a/lsteamclient/steamworks_sdk_163/isteamclient.h b/lsteamclient/steamworks_sdk_163/isteamclient.h new file mode 100644 index 00000000000..599bfb37477 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamclient.h @@ -0,0 +1,167 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Internal low-level access to Steamworks interfaces. +// +// Most users of the Steamworks SDK do not need to include this file. +// You should only include this if you are doing something special. +//============================================================================= + +#ifndef ISTEAMCLIENT_H +#define ISTEAMCLIENT_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +// Purpose: Interface to creating a new steam instance, or to +// connect to an existing steam instance, whether it's in a +// different process or is local. +// +// For most scenarios this is all handled automatically via SteamAPI_Init(). +// You'll only need these APIs if you have a more complex versioning scheme, +// or if you want to implement a multiplexed gameserver where a single process +// is handling multiple games at once with independent gameserver SteamIDs. +//----------------------------------------------------------------------------- +class ISteamClient +{ +public: + // Creates a communication pipe to the Steam client. + // NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling + virtual HSteamPipe CreateSteamPipe() = 0; + + // Releases a previously created communications pipe + // NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling + virtual bool BReleaseSteamPipe( HSteamPipe hSteamPipe ) = 0; + + // connects to an existing global user, failing if none exists + // used by the game to coordinate with the steamUI + // NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling + virtual HSteamUser ConnectToGlobalUser( HSteamPipe hSteamPipe ) = 0; + + // used by game servers, create a steam user that won't be shared with anyone else + // NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling + virtual HSteamUser CreateLocalUser( HSteamPipe *phSteamPipe, EAccountType eAccountType ) = 0; + + // removes an allocated user + // NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling + virtual void ReleaseUser( HSteamPipe hSteamPipe, HSteamUser hUser ) = 0; + + // retrieves the ISteamUser interface associated with the handle + virtual ISteamUser *GetISteamUser( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // retrieves the ISteamGameServer interface associated with the handle + virtual ISteamGameServer *GetISteamGameServer( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // set the local IP and Port to bind to + // this must be set before CreateLocalUser() + virtual void SetLocalIPBinding( const SteamIPAddress_t &unIP, uint16 usPort ) = 0; + + // returns the ISteamFriends interface + virtual ISteamFriends *GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns the ISteamUtils interface + virtual ISteamUtils *GetISteamUtils( HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns the ISteamMatchmaking interface + virtual ISteamMatchmaking *GetISteamMatchmaking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns the ISteamMatchmakingServers interface + virtual ISteamMatchmakingServers *GetISteamMatchmakingServers( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns the a generic interface + virtual void *GetISteamGenericInterface( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns the ISteamUserStats interface + virtual ISteamUserStats *GetISteamUserStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns the ISteamGameServerStats interface + virtual ISteamGameServerStats *GetISteamGameServerStats( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // returns apps interface + virtual ISteamApps *GetISteamApps( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // networking + virtual ISteamNetworking *GetISteamNetworking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // remote storage + virtual ISteamRemoteStorage *GetISteamRemoteStorage( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // user screenshots + virtual ISteamScreenshots *GetISteamScreenshots( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Deprecated. Applications should use SteamAPI_RunCallbacks() or SteamGameServer_RunCallbacks() instead. + STEAM_PRIVATE_API( virtual void RunFrame() = 0; ) + + // returns the number of IPC calls made since the last time this function was called + // Used for perf debugging so you can understand how many IPC calls your game makes per frame + // Every IPC call is at minimum a thread context switch if not a process one so you want to rate + // control how often you do them. + virtual uint32 GetIPCCallCount() = 0; + + // API warning handling + // 'int' is the severity; 0 for msg, 1 for warning + // 'const char *' is the text of the message + // callbacks will occur directly after the API function is called that generated the warning or message. + virtual void SetWarningMessageHook( SteamAPIWarningMessageHook_t pFunction ) = 0; + + // Trigger global shutdown for the DLL + virtual bool BShutdownIfAllPipesClosed() = 0; + + // Expose HTTP interface + virtual ISteamHTTP *GetISteamHTTP( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Exposes the ISteamController interface - deprecated in favor of Steam Input + virtual ISteamController *GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Exposes the ISteamUGC interface + virtual ISteamUGC *GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Music Player + virtual ISteamMusic *GetISteamMusic( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // html page display + virtual ISteamHTMLSurface *GetISteamHTMLSurface(HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion) = 0; + + // Helper functions for internal Steam usage + STEAM_PRIVATE_API( virtual void DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( void (*)() ) = 0; ) + STEAM_PRIVATE_API( virtual void DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( void (*)() ) = 0; ) + STEAM_PRIVATE_API( virtual void Set_SteamAPI_CCheckCallbackRegisteredInProcess( SteamAPI_CheckCallbackRegistered_t func ) = 0; ) + + // inventory + virtual ISteamInventory *GetISteamInventory( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Video + virtual ISteamVideo *GetISteamVideo( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Parental controls + virtual ISteamParentalSettings *GetISteamParentalSettings( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Exposes the Steam Input interface for controller support + virtual ISteamInput *GetISteamInput( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Parties interface + virtual ISteamParties *GetISteamParties( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Remote Play interface + virtual ISteamRemotePlay *GetISteamRemotePlay( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + STEAM_PRIVATE_API( virtual void DestroyAllInterfaces() = 0; ) + +}; +#define STEAMCLIENT_INTERFACE_VERSION "SteamClient023" + +#ifndef STEAM_API_EXPORTS + +// Global ISteamClient interface accessor +inline ISteamClient *SteamClient(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamClient *, SteamClient, SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ), "global", STEAMCLIENT_INTERFACE_VERSION ); + +// The internal ISteamClient used for the gameserver interface. +// (This is actually the same thing. You really shouldn't need to access any of this stuff directly.) +inline ISteamClient *SteamGameServerClient() { return SteamClient(); } + +#endif + +#endif // ISTEAMCLIENT_H diff --git a/lsteamclient/steamworks_sdk_163/isteamcontroller.h b/lsteamclient/steamworks_sdk_163/isteamcontroller.h new file mode 100644 index 00000000000..99d3745a6d2 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamcontroller.h @@ -0,0 +1,818 @@ +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// Note: The older ISteamController interface has been deprecated in favor of ISteamInput - this interface +// was updated in this SDK but will be removed from future SDK's. The Steam Client will retain +// compatibility with the older interfaces so your any existing integrations should be unaffected. +// +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller +// +//============================================================================= + +#ifndef ISTEAMCONTROLLER_H +#define ISTEAMCONTROLLER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" +#include "isteaminput.h" + +#define STEAM_CONTROLLER_MAX_COUNT 16 + +#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 24 + +#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 256 + +#define STEAM_CONTROLLER_MAX_ORIGINS 8 + +#define STEAM_CONTROLLER_MAX_ACTIVE_LAYERS 16 + +// When sending an option to a specific controller handle, you can send to all controllers via this command +#define STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS UINT64_MAX + +#define STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA -1.0f +#define STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA 1.0f + +#ifndef ISTEAMINPUT_H +enum ESteamControllerPad +{ + k_ESteamControllerPad_Left, + k_ESteamControllerPad_Right +}; +#endif + +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead +// Versions of Steam that add new controller types in the future will extend this enum if you're +// using a lookup table please check the bounds of any origins returned by Steam. +enum EControllerActionOrigin +{ + // Steam Controller + k_EControllerActionOrigin_None, + k_EControllerActionOrigin_A, + k_EControllerActionOrigin_B, + k_EControllerActionOrigin_X, + k_EControllerActionOrigin_Y, + k_EControllerActionOrigin_LeftBumper, + k_EControllerActionOrigin_RightBumper, + k_EControllerActionOrigin_LeftGrip, + k_EControllerActionOrigin_RightGrip, + k_EControllerActionOrigin_Start, + k_EControllerActionOrigin_Back, + k_EControllerActionOrigin_LeftPad_Touch, + k_EControllerActionOrigin_LeftPad_Swipe, + k_EControllerActionOrigin_LeftPad_Click, + k_EControllerActionOrigin_LeftPad_DPadNorth, + k_EControllerActionOrigin_LeftPad_DPadSouth, + k_EControllerActionOrigin_LeftPad_DPadWest, + k_EControllerActionOrigin_LeftPad_DPadEast, + k_EControllerActionOrigin_RightPad_Touch, + k_EControllerActionOrigin_RightPad_Swipe, + k_EControllerActionOrigin_RightPad_Click, + k_EControllerActionOrigin_RightPad_DPadNorth, + k_EControllerActionOrigin_RightPad_DPadSouth, + k_EControllerActionOrigin_RightPad_DPadWest, + k_EControllerActionOrigin_RightPad_DPadEast, + k_EControllerActionOrigin_LeftTrigger_Pull, + k_EControllerActionOrigin_LeftTrigger_Click, + k_EControllerActionOrigin_RightTrigger_Pull, + k_EControllerActionOrigin_RightTrigger_Click, + k_EControllerActionOrigin_LeftStick_Move, + k_EControllerActionOrigin_LeftStick_Click, + k_EControllerActionOrigin_LeftStick_DPadNorth, + k_EControllerActionOrigin_LeftStick_DPadSouth, + k_EControllerActionOrigin_LeftStick_DPadWest, + k_EControllerActionOrigin_LeftStick_DPadEast, + k_EControllerActionOrigin_Gyro_Move, + k_EControllerActionOrigin_Gyro_Pitch, + k_EControllerActionOrigin_Gyro_Yaw, + k_EControllerActionOrigin_Gyro_Roll, + + // PS4 Dual Shock + k_EControllerActionOrigin_PS4_X, + k_EControllerActionOrigin_PS4_Circle, + k_EControllerActionOrigin_PS4_Triangle, + k_EControllerActionOrigin_PS4_Square, + k_EControllerActionOrigin_PS4_LeftBumper, + k_EControllerActionOrigin_PS4_RightBumper, + k_EControllerActionOrigin_PS4_Options, //Start + k_EControllerActionOrigin_PS4_Share, //Back + k_EControllerActionOrigin_PS4_LeftPad_Touch, + k_EControllerActionOrigin_PS4_LeftPad_Swipe, + k_EControllerActionOrigin_PS4_LeftPad_Click, + k_EControllerActionOrigin_PS4_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS4_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS4_LeftPad_DPadWest, + k_EControllerActionOrigin_PS4_LeftPad_DPadEast, + k_EControllerActionOrigin_PS4_RightPad_Touch, + k_EControllerActionOrigin_PS4_RightPad_Swipe, + k_EControllerActionOrigin_PS4_RightPad_Click, + k_EControllerActionOrigin_PS4_RightPad_DPadNorth, + k_EControllerActionOrigin_PS4_RightPad_DPadSouth, + k_EControllerActionOrigin_PS4_RightPad_DPadWest, + k_EControllerActionOrigin_PS4_RightPad_DPadEast, + k_EControllerActionOrigin_PS4_CenterPad_Touch, + k_EControllerActionOrigin_PS4_CenterPad_Swipe, + k_EControllerActionOrigin_PS4_CenterPad_Click, + k_EControllerActionOrigin_PS4_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS4_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS4_CenterPad_DPadWest, + k_EControllerActionOrigin_PS4_CenterPad_DPadEast, + k_EControllerActionOrigin_PS4_LeftTrigger_Pull, + k_EControllerActionOrigin_PS4_LeftTrigger_Click, + k_EControllerActionOrigin_PS4_RightTrigger_Pull, + k_EControllerActionOrigin_PS4_RightTrigger_Click, + k_EControllerActionOrigin_PS4_LeftStick_Move, + k_EControllerActionOrigin_PS4_LeftStick_Click, + k_EControllerActionOrigin_PS4_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS4_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS4_LeftStick_DPadWest, + k_EControllerActionOrigin_PS4_LeftStick_DPadEast, + k_EControllerActionOrigin_PS4_RightStick_Move, + k_EControllerActionOrigin_PS4_RightStick_Click, + k_EControllerActionOrigin_PS4_RightStick_DPadNorth, + k_EControllerActionOrigin_PS4_RightStick_DPadSouth, + k_EControllerActionOrigin_PS4_RightStick_DPadWest, + k_EControllerActionOrigin_PS4_RightStick_DPadEast, + k_EControllerActionOrigin_PS4_DPad_North, + k_EControllerActionOrigin_PS4_DPad_South, + k_EControllerActionOrigin_PS4_DPad_West, + k_EControllerActionOrigin_PS4_DPad_East, + k_EControllerActionOrigin_PS4_Gyro_Move, + k_EControllerActionOrigin_PS4_Gyro_Pitch, + k_EControllerActionOrigin_PS4_Gyro_Yaw, + k_EControllerActionOrigin_PS4_Gyro_Roll, + + // XBox One + k_EControllerActionOrigin_XBoxOne_A, + k_EControllerActionOrigin_XBoxOne_B, + k_EControllerActionOrigin_XBoxOne_X, + k_EControllerActionOrigin_XBoxOne_Y, + k_EControllerActionOrigin_XBoxOne_LeftBumper, + k_EControllerActionOrigin_XBoxOne_RightBumper, + k_EControllerActionOrigin_XBoxOne_Menu, //Start + k_EControllerActionOrigin_XBoxOne_View, //Back + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_Move, + k_EControllerActionOrigin_XBoxOne_LeftStick_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_RightStick_Move, + k_EControllerActionOrigin_XBoxOne_RightStick_Click, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_DPad_North, + k_EControllerActionOrigin_XBoxOne_DPad_South, + k_EControllerActionOrigin_XBoxOne_DPad_West, + k_EControllerActionOrigin_XBoxOne_DPad_East, + + // XBox 360 + k_EControllerActionOrigin_XBox360_A, + k_EControllerActionOrigin_XBox360_B, + k_EControllerActionOrigin_XBox360_X, + k_EControllerActionOrigin_XBox360_Y, + k_EControllerActionOrigin_XBox360_LeftBumper, + k_EControllerActionOrigin_XBox360_RightBumper, + k_EControllerActionOrigin_XBox360_Start, //Start + k_EControllerActionOrigin_XBox360_Back, //Back + k_EControllerActionOrigin_XBox360_LeftTrigger_Pull, + k_EControllerActionOrigin_XBox360_LeftTrigger_Click, + k_EControllerActionOrigin_XBox360_RightTrigger_Pull, + k_EControllerActionOrigin_XBox360_RightTrigger_Click, + k_EControllerActionOrigin_XBox360_LeftStick_Move, + k_EControllerActionOrigin_XBox360_LeftStick_Click, + k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadWest, + k_EControllerActionOrigin_XBox360_LeftStick_DPadEast, + k_EControllerActionOrigin_XBox360_RightStick_Move, + k_EControllerActionOrigin_XBox360_RightStick_Click, + k_EControllerActionOrigin_XBox360_RightStick_DPadNorth, + k_EControllerActionOrigin_XBox360_RightStick_DPadSouth, + k_EControllerActionOrigin_XBox360_RightStick_DPadWest, + k_EControllerActionOrigin_XBox360_RightStick_DPadEast, + k_EControllerActionOrigin_XBox360_DPad_North, + k_EControllerActionOrigin_XBox360_DPad_South, + k_EControllerActionOrigin_XBox360_DPad_West, + k_EControllerActionOrigin_XBox360_DPad_East, + + // SteamController V2 + k_EControllerActionOrigin_SteamV2_A, + k_EControllerActionOrigin_SteamV2_B, + k_EControllerActionOrigin_SteamV2_X, + k_EControllerActionOrigin_SteamV2_Y, + k_EControllerActionOrigin_SteamV2_LeftBumper, + k_EControllerActionOrigin_SteamV2_RightBumper, + k_EControllerActionOrigin_SteamV2_LeftGrip_Lower, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper, + k_EControllerActionOrigin_SteamV2_RightGrip_Lower, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper, + k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure, + k_EControllerActionOrigin_SteamV2_RightBumper_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_Start, + k_EControllerActionOrigin_SteamV2_Back, + k_EControllerActionOrigin_SteamV2_LeftPad_Touch, + k_EControllerActionOrigin_SteamV2_LeftPad_Swipe, + k_EControllerActionOrigin_SteamV2_LeftPad_Click, + k_EControllerActionOrigin_SteamV2_LeftPad_Pressure, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamV2_RightPad_Touch, + k_EControllerActionOrigin_SteamV2_RightPad_Swipe, + k_EControllerActionOrigin_SteamV2_RightPad_Click, + k_EControllerActionOrigin_SteamV2_RightPad_Pressure, + k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadWest, + k_EControllerActionOrigin_SteamV2_RightPad_DPadEast, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Click, + k_EControllerActionOrigin_SteamV2_RightTrigger_Pull, + k_EControllerActionOrigin_SteamV2_RightTrigger_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_Move, + k_EControllerActionOrigin_SteamV2_LeftStick_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamV2_Gyro_Move, + k_EControllerActionOrigin_SteamV2_Gyro_Pitch, + k_EControllerActionOrigin_SteamV2_Gyro_Yaw, + k_EControllerActionOrigin_SteamV2_Gyro_Roll, + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EControllerActionOrigin_Switch_A, + k_EControllerActionOrigin_Switch_B, + k_EControllerActionOrigin_Switch_X, + k_EControllerActionOrigin_Switch_Y, + k_EControllerActionOrigin_Switch_LeftBumper, + k_EControllerActionOrigin_Switch_RightBumper, + k_EControllerActionOrigin_Switch_Plus, //Start + k_EControllerActionOrigin_Switch_Minus, //Back + k_EControllerActionOrigin_Switch_Capture, + k_EControllerActionOrigin_Switch_LeftTrigger_Pull, + k_EControllerActionOrigin_Switch_LeftTrigger_Click, + k_EControllerActionOrigin_Switch_RightTrigger_Pull, + k_EControllerActionOrigin_Switch_RightTrigger_Click, + k_EControllerActionOrigin_Switch_LeftStick_Move, + k_EControllerActionOrigin_Switch_LeftStick_Click, + k_EControllerActionOrigin_Switch_LeftStick_DPadNorth, + k_EControllerActionOrigin_Switch_LeftStick_DPadSouth, + k_EControllerActionOrigin_Switch_LeftStick_DPadWest, + k_EControllerActionOrigin_Switch_LeftStick_DPadEast, + k_EControllerActionOrigin_Switch_RightStick_Move, + k_EControllerActionOrigin_Switch_RightStick_Click, + k_EControllerActionOrigin_Switch_RightStick_DPadNorth, + k_EControllerActionOrigin_Switch_RightStick_DPadSouth, + k_EControllerActionOrigin_Switch_RightStick_DPadWest, + k_EControllerActionOrigin_Switch_RightStick_DPadEast, + k_EControllerActionOrigin_Switch_DPad_North, + k_EControllerActionOrigin_Switch_DPad_South, + k_EControllerActionOrigin_Switch_DPad_West, + k_EControllerActionOrigin_Switch_DPad_East, + k_EControllerActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + // Switch JoyCon Specific + k_EControllerActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_LeftGyro_Move, + k_EControllerActionOrigin_Switch_LeftGyro_Pitch, + k_EControllerActionOrigin_Switch_LeftGyro_Yaw, + k_EControllerActionOrigin_Switch_LeftGyro_Roll, + k_EControllerActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EControllerActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + + // Added in SDK 1.45 + k_EControllerActionOrigin_PS4_DPad_Move, + k_EControllerActionOrigin_XBoxOne_DPad_Move, + k_EControllerActionOrigin_XBox360_DPad_Move, + k_EControllerActionOrigin_Switch_DPad_Move, + + // Added in SDK 1.51 + k_EControllerActionOrigin_PS5_X, + k_EControllerActionOrigin_PS5_Circle, + k_EControllerActionOrigin_PS5_Triangle, + k_EControllerActionOrigin_PS5_Square, + k_EControllerActionOrigin_PS5_LeftBumper, + k_EControllerActionOrigin_PS5_RightBumper, + k_EControllerActionOrigin_PS5_Option, //Start + k_EControllerActionOrigin_PS5_Create, //Back + k_EControllerActionOrigin_PS5_Mute, + k_EControllerActionOrigin_PS5_LeftPad_Touch, + k_EControllerActionOrigin_PS5_LeftPad_Swipe, + k_EControllerActionOrigin_PS5_LeftPad_Click, + k_EControllerActionOrigin_PS5_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS5_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS5_LeftPad_DPadWest, + k_EControllerActionOrigin_PS5_LeftPad_DPadEast, + k_EControllerActionOrigin_PS5_RightPad_Touch, + k_EControllerActionOrigin_PS5_RightPad_Swipe, + k_EControllerActionOrigin_PS5_RightPad_Click, + k_EControllerActionOrigin_PS5_RightPad_DPadNorth, + k_EControllerActionOrigin_PS5_RightPad_DPadSouth, + k_EControllerActionOrigin_PS5_RightPad_DPadWest, + k_EControllerActionOrigin_PS5_RightPad_DPadEast, + k_EControllerActionOrigin_PS5_CenterPad_Touch, + k_EControllerActionOrigin_PS5_CenterPad_Swipe, + k_EControllerActionOrigin_PS5_CenterPad_Click, + k_EControllerActionOrigin_PS5_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS5_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS5_CenterPad_DPadWest, + k_EControllerActionOrigin_PS5_CenterPad_DPadEast, + k_EControllerActionOrigin_PS5_LeftTrigger_Pull, + k_EControllerActionOrigin_PS5_LeftTrigger_Click, + k_EControllerActionOrigin_PS5_RightTrigger_Pull, + k_EControllerActionOrigin_PS5_RightTrigger_Click, + k_EControllerActionOrigin_PS5_LeftStick_Move, + k_EControllerActionOrigin_PS5_LeftStick_Click, + k_EControllerActionOrigin_PS5_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS5_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS5_LeftStick_DPadWest, + k_EControllerActionOrigin_PS5_LeftStick_DPadEast, + k_EControllerActionOrigin_PS5_RightStick_Move, + k_EControllerActionOrigin_PS5_RightStick_Click, + k_EControllerActionOrigin_PS5_RightStick_DPadNorth, + k_EControllerActionOrigin_PS5_RightStick_DPadSouth, + k_EControllerActionOrigin_PS5_RightStick_DPadWest, + k_EControllerActionOrigin_PS5_RightStick_DPadEast, + k_EControllerActionOrigin_PS5_DPad_Move, + k_EControllerActionOrigin_PS5_DPad_North, + k_EControllerActionOrigin_PS5_DPad_South, + k_EControllerActionOrigin_PS5_DPad_West, + k_EControllerActionOrigin_PS5_DPad_East, + k_EControllerActionOrigin_PS5_Gyro_Move, + k_EControllerActionOrigin_PS5_Gyro_Pitch, + k_EControllerActionOrigin_PS5_Gyro_Yaw, + k_EControllerActionOrigin_PS5_Gyro_Roll, + + k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower, + k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper, + k_EControllerActionOrigin_XBoxOne_RightGrip_Lower, + k_EControllerActionOrigin_XBoxOne_RightGrip_Upper, + k_EControllerActionOrigin_XBoxOne_Share, + + // Added in SDK 1.53 + k_EControllerActionOrigin_SteamDeck_A, + k_EControllerActionOrigin_SteamDeck_B, + k_EControllerActionOrigin_SteamDeck_X, + k_EControllerActionOrigin_SteamDeck_Y, + k_EControllerActionOrigin_SteamDeck_L1, + k_EControllerActionOrigin_SteamDeck_R1, + k_EControllerActionOrigin_SteamDeck_Menu, + k_EControllerActionOrigin_SteamDeck_View, + k_EControllerActionOrigin_SteamDeck_LeftPad_Touch, + k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe, + k_EControllerActionOrigin_SteamDeck_LeftPad_Click, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightPad_Touch, + k_EControllerActionOrigin_SteamDeck_RightPad_Swipe, + k_EControllerActionOrigin_SteamDeck_RightPad_Click, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_L2_SoftPull, + k_EControllerActionOrigin_SteamDeck_L2, + k_EControllerActionOrigin_SteamDeck_R2_SoftPull, + k_EControllerActionOrigin_SteamDeck_R2, + k_EControllerActionOrigin_SteamDeck_LeftStick_Move, + k_EControllerActionOrigin_SteamDeck_L3, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_LeftStick_Touch, + k_EControllerActionOrigin_SteamDeck_RightStick_Move, + k_EControllerActionOrigin_SteamDeck_R3, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightStick_Touch, + k_EControllerActionOrigin_SteamDeck_L4, + k_EControllerActionOrigin_SteamDeck_R4, + k_EControllerActionOrigin_SteamDeck_L5, + k_EControllerActionOrigin_SteamDeck_R5, + k_EControllerActionOrigin_SteamDeck_DPad_Move, + k_EControllerActionOrigin_SteamDeck_DPad_North, + k_EControllerActionOrigin_SteamDeck_DPad_South, + k_EControllerActionOrigin_SteamDeck_DPad_West, + k_EControllerActionOrigin_SteamDeck_DPad_East, + k_EControllerActionOrigin_SteamDeck_Gyro_Move, + k_EControllerActionOrigin_SteamDeck_Gyro_Pitch, + k_EControllerActionOrigin_SteamDeck_Gyro_Yaw, + k_EControllerActionOrigin_SteamDeck_Gyro_Roll, + k_EControllerActionOrigin_SteamDeck_Reserved1, + k_EControllerActionOrigin_SteamDeck_Reserved2, + k_EControllerActionOrigin_SteamDeck_Reserved3, + k_EControllerActionOrigin_SteamDeck_Reserved4, + k_EControllerActionOrigin_SteamDeck_Reserved5, + k_EControllerActionOrigin_SteamDeck_Reserved6, + k_EControllerActionOrigin_SteamDeck_Reserved7, + k_EControllerActionOrigin_SteamDeck_Reserved8, + k_EControllerActionOrigin_SteamDeck_Reserved9, + k_EControllerActionOrigin_SteamDeck_Reserved10, + k_EControllerActionOrigin_SteamDeck_Reserved11, + k_EControllerActionOrigin_SteamDeck_Reserved12, + k_EControllerActionOrigin_SteamDeck_Reserved13, + k_EControllerActionOrigin_SteamDeck_Reserved14, + k_EControllerActionOrigin_SteamDeck_Reserved15, + k_EControllerActionOrigin_SteamDeck_Reserved16, + k_EControllerActionOrigin_SteamDeck_Reserved17, + k_EControllerActionOrigin_SteamDeck_Reserved18, + k_EControllerActionOrigin_SteamDeck_Reserved19, + k_EControllerActionOrigin_SteamDeck_Reserved20, + + k_EControllerActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EControllerActionOrigin_Switch_JoyConButton_E, // X + k_EControllerActionOrigin_Switch_JoyConButton_S, // A + k_EControllerActionOrigin_Switch_JoyConButton_W, // B + + k_EControllerActionOrigin_PS5_LeftGrip, + k_EControllerActionOrigin_PS5_RightGrip, + k_EControllerActionOrigin_PS5_LeftFn, + k_EControllerActionOrigin_PS5_RightFn, + + k_EControllerActionOrigin_Horipad_M1, + k_EControllerActionOrigin_Horipad_M2, + k_EControllerActionOrigin_Horipad_L4, + k_EControllerActionOrigin_Horipad_R4, + + k_EControllerActionOrigin_LenovoLegionGo_A, + k_EControllerActionOrigin_LenovoLegionGo_B, + k_EControllerActionOrigin_LenovoLegionGo_X, + k_EControllerActionOrigin_LenovoLegionGo_Y, + k_EControllerActionOrigin_LenovoLegionGo_LB, + k_EControllerActionOrigin_LenovoLegionGo_RB, + k_EControllerActionOrigin_LenovoLegionGo_Menu, + k_EControllerActionOrigin_LenovoLegionGo_View, + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_Touch, // Left pad is only present on the original Legion Go + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_Swipe, + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_Click, + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_DPadNorth, + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_DPadSouth, + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_DPadWest, + k_EControllerActionOrigin_LenovoLegionGo_LeftPad_DPadEast, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_Touch, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_Swipe, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_Click, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_DPadNorth, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_DPadSouth, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_DPadWest, + k_EControllerActionOrigin_LenovoLegionGo_RightPad_DPadEast, + k_EControllerActionOrigin_LenovoLegionGo_LT_SoftPull, + k_EControllerActionOrigin_LenovoLegionGo_LT, + k_EControllerActionOrigin_LenovoLegionGo_RT_SoftPull, + k_EControllerActionOrigin_LenovoLegionGo_RT, + k_EControllerActionOrigin_LenovoLegionGo_LeftStick_Move, + k_EControllerActionOrigin_LenovoLegionGo_LS, + k_EControllerActionOrigin_LenovoLegionGo_LeftStick_DPadNorth, + k_EControllerActionOrigin_LenovoLegionGo_LeftStick_DPadSouth, + k_EControllerActionOrigin_LenovoLegionGo_LeftStick_DPadWest, + k_EControllerActionOrigin_LenovoLegionGo_LeftStick_DPadEast, + k_EControllerActionOrigin_LenovoLegionGo_RightStick_Move, + k_EControllerActionOrigin_LenovoLegionGo_RS, + k_EControllerActionOrigin_LenovoLegionGo_RightStick_DPadNorth, + k_EControllerActionOrigin_LenovoLegionGo_RightStick_DPadSouth, + k_EControllerActionOrigin_LenovoLegionGo_RightStick_DPadWest, + k_EControllerActionOrigin_LenovoLegionGo_RightStick_DPadEast, + k_EControllerActionOrigin_LenovoLegionGo_Y1, + k_EControllerActionOrigin_LenovoLegionGo_Y2, + k_EControllerActionOrigin_LenovoLegionGo_DPad_Move, + k_EControllerActionOrigin_LenovoLegionGo_DPad_North, + k_EControllerActionOrigin_LenovoLegionGo_DPad_South, + k_EControllerActionOrigin_LenovoLegionGo_DPad_West, + k_EControllerActionOrigin_LenovoLegionGo_DPad_East, + k_EControllerActionOrigin_LenovoLegionGo_Gyro_Move, + k_EControllerActionOrigin_LenovoLegionGo_Gyro_Pitch, + k_EControllerActionOrigin_LenovoLegionGo_Gyro_Yaw, + k_EControllerActionOrigin_LenovoLegionGo_Gyro_Roll, + k_EControllerActionOrigin_LenovoLegionGo_Reserved1, + k_EControllerActionOrigin_LenovoLegionGo_Reserved2, + k_EControllerActionOrigin_LenovoLegionGo_Reserved3, + k_EControllerActionOrigin_LenovoLegionGo_Reserved4, + k_EControllerActionOrigin_LenovoLegionGo_Reserved5, + k_EControllerActionOrigin_LenovoLegionGo_Reserved6, + k_EControllerActionOrigin_LenovoLegionGo_Reserved7, + k_EControllerActionOrigin_LenovoLegionGo_Reserved8, + k_EControllerActionOrigin_LenovoLegionGo_Reserved9, + k_EControllerActionOrigin_LenovoLegionGo_Reserved10, + k_EControllerActionOrigin_LenovoLegionGo_Reserved11, + k_EControllerActionOrigin_LenovoLegionGo_Reserved12, + k_EControllerActionOrigin_LenovoLegionGo_Reserved13, + k_EControllerActionOrigin_LenovoLegionGo_Reserved14, + k_EControllerActionOrigin_LenovoLegionGo_Reserved15, + k_EControllerActionOrigin_LenovoLegionGo_Reserved16, + k_EControllerActionOrigin_LenovoLegionGo_Reserved17, + k_EControllerActionOrigin_LenovoLegionGo_Reserved18, + k_EControllerActionOrigin_LenovoLegionGo_Reserved19, + k_EControllerActionOrigin_LenovoLegionGo_Reserved20, + + k_EControllerActionOrigin_Generic_L4, + k_EControllerActionOrigin_Generic_R4, + k_EControllerActionOrigin_Generic_L5, + k_EControllerActionOrigin_Generic_R5, + k_EControllerActionOrigin_Generic_PL, + k_EControllerActionOrigin_Generic_PR, + k_EControllerActionOrigin_Generic_C, + k_EControllerActionOrigin_Generic_Z, + k_EControllerActionOrigin_Generic_MISC1, + k_EControllerActionOrigin_Generic_MISC2, + k_EControllerActionOrigin_Generic_MISC3, + k_EControllerActionOrigin_Generic_MISC4, + k_EControllerActionOrigin_Generic_MISC5, + k_EControllerActionOrigin_Generic_MISC6, + k_EControllerActionOrigin_Generic_MISC7, + k_EControllerActionOrigin_Generic_MISC8, + + k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +#ifndef ISTEAMINPUT_H +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; +#endif + +enum ESteamControllerLEDFlag +{ + k_ESteamControllerLEDFlag_SetColor, + k_ESteamControllerLEDFlag_RestoreUserDefault +}; + +// ControllerHandle_t is used to refer to a specific controller. +// This handle will consistently identify a controller, even if it is disconnected and re-connected +typedef uint64 ControllerHandle_t; + + +// These handles are used to refer to a specific in-game action or action set +// All action handles should be queried during initialization for performance reasons +typedef uint64 ControllerActionSetHandle_t; +typedef uint64 ControllerDigitalActionHandle_t; +typedef uint64 ControllerAnalogActionHandle_t; + +#pragma pack( push, 1 ) + +#ifdef ISTEAMINPUT_H +#define ControllerAnalogActionData_t InputAnalogActionData_t +#define ControllerDigitalActionData_t InputDigitalActionData_t +#define ControllerMotionData_t InputMotionData_t +#else +struct ControllerAnalogActionData_t +{ + // Type of data coming from this action, this will match what got specified in the action set + EControllerSourceMode eMode; + + // The current state of this action; will be delta updates for mouse actions + float x, y; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct ControllerDigitalActionData_t +{ + // The current state of this action; will be true if currently pressed + bool bState; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct ControllerMotionData_t +{ + // Sensor-fused absolute rotation; will drift in heading + float rotQuatX; + float rotQuatY; + float rotQuatZ; + float rotQuatW; + + // Positional acceleration + float posAccelX; + float posAccelY; + float posAccelZ; + + // Angular velocity + float rotVelX; + float rotVelY; + float rotVelZ; +}; +#endif +#pragma pack( pop ) + + +//----------------------------------------------------------------------------- +// Purpose: Steam Input API +//----------------------------------------------------------------------------- +class ISteamController +{ +public: + + // Init and Shutdown must be called when starting/ending use of this interface + virtual bool Init() = 0; + virtual bool Shutdown() = 0; + + // Synchronize API state with the latest Steam Controller inputs available. This + // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest + // possible latency, you call this directly before reading controller state. This must + // be called from somewhere before GetConnectedControllers will return any handles + virtual void RunFrame() = 0; + + // Enumerate currently connected controllers + // handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_COUNT, Receives list of connected controllers ) ControllerHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // ACTION SETS + //----------------------------------------------------------------------------- + + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. + virtual ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; + + // Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + // This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + // your state loops, instead of trying to place it in all of your state transitions. + virtual void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ) = 0; + virtual ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle ) = 0; + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle ) = 0; + // Enumerate currently active layers + // handlesOut should point to a STEAM_CONTROLLER_MAX_ACTIVE_LAYERS sized array of ControllerActionSetHandle_t handles. + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ACTIVE_LAYERS, Receives list of active layers ) ControllerActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // ACTIONS + //----------------------------------------------------------------------------- + + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. + virtual ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of the supplied digital game action + virtual ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ) = 0; + + // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of aciton origins ) EControllerActionOrigin *originsOut ) = 0; + + // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. + virtual ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of these supplied analog game action + virtual ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ) = 0; + + // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of action origins ) EControllerActionOrigin *originsOut ) = 0; + + // Get a local path to art for on-screen glyph for a particular origin - this call is cheap + virtual const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized + virtual const char *GetStringForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified controller + virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + + // Trigger a haptic pulse on a controller + virtual void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; + + // Trigger a pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times. + // nFlags is currently unused and reserved for future use. + virtual void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; + + // Trigger a vibration event on supported controllers. + virtual void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Set the controller LED color on supported controllers. + virtual void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + + // Returns the input type for a particular handle - unlike EControllerActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index + virtual int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin. + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None + virtual EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor ) = 0; +}; + +#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController008" + +// Global interface accessor +inline ISteamController *SteamController(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamController *, SteamController, STEAMCONTROLLER_INTERFACE_VERSION ); + +#endif // ISTEAMCONTROLLER_H diff --git a/lsteamclient/steamworks_sdk_163/isteamdualsense.h b/lsteamclient/steamworks_sdk_163/isteamdualsense.h new file mode 100644 index 00000000000..5acc85743cf --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamdualsense.h @@ -0,0 +1,169 @@ +/* SIE CONFIDENTIAL + * $PSLibId$ + * Copyright (C) 2019 Sony Interactive Entertainment Inc. + * All Rights Reserved. + */ + + +#ifndef _SCE_PAD_TRIGGER_EFFECT_H +#define _SCE_PAD_TRIGGER_EFFECT_H + + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 0x01 +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 0x02 + +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2 0 +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2 1 + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM 2 + +/* Definition of control point num */ +#define SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM 10 + +typedef enum ScePadTriggerEffectMode{ + SCE_PAD_TRIGGER_EFFECT_MODE_OFF, + SCE_PAD_TRIGGER_EFFECT_MODE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_WEAPON, + SCE_PAD_TRIGGER_EFFECT_MODE_VIBRATION, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_SLOPE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_VIBRATION, +} ScePadTriggerEffectMode; + +/** + *E + * @brief parameter for setting the trigger effect to off mode. + * Off Mode: Stop trigger effect. + **/ +typedef struct ScePadTriggerEffectOffParam{ + uint8_t padding[48]; +} ScePadTriggerEffectOffParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback mode. + * Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains stiffness at specified position. + **/ +typedef struct ScePadTriggerEffectFeedbackParam{ + uint8_t position; /*E position where the strength of target trigger start changing(0~9). */ + uint8_t strength; /*E strength that the motor arm pushes back target trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[46]; +} ScePadTriggerEffectFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Weapon mode. + * Weapon Mode: Emulate weapon like gun trigger. + **/ +typedef struct ScePadTriggerEffectWeaponParam{ + uint8_t startPosition; /*E position where the stiffness of trigger start changing(2~7). */ + uint8_t endPosition; /*E position where the stiffness of trigger finish changing(startPosition+1~8). */ + uint8_t strength; /*E strength of gun trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectWeaponParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration mode. + * Vibration Mode: Vibrates motor arm around specified position. + **/ +typedef struct ScePadTriggerEffectVibrationParam{ + uint8_t position; /*E position where the motor arm start vibrating(0~9). */ + uint8_t amplitude; /*E vibration amplitude(0~8 (0: Same as Off mode)). */ + uint8_t frequency; /*E vibration frequency(0~255[Hz] (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect to ScePadTriggerEffectMultiplePositionFeedbackParam mode. + * Multi Position Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains specified stiffness at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionFeedbackParam{ + uint8_t strength[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E strength that the motor arm pushes back target trigger at position(0~8 (0: Same as Off mode)). + * strength[0] means strength of motor arm at position0. + * strength[1] means strength of motor arm at position1. + * ... + * */ + uint8_t padding[38]; +} ScePadTriggerEffectMultiplePositionFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback3 mode. + * Slope Feedback Mode: The motor arm pushes back trigger between two spedified control points. + * Stiffness of the trigger is changing depending on the set place. + **/ +typedef struct ScePadTriggerEffectSlopeFeedbackParam{ + + uint8_t startPosition; /*E position where the strength of target trigger start changing(0~endPosition). */ + uint8_t endPosition; /*E position where the strength of target trigger finish changing(startPosition+1~9). */ + uint8_t startStrength; /*E strength when trigger's position is startPosition(1~8) */ + uint8_t endStrength; /*E strength when trigger's position is endPosition(1~8) */ + uint8_t padding[44]; +} ScePadTriggerEffectSlopeFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration2 mode. + * Multi Position Vibration Mode: Vibrates motor arm around specified control point. + * Trigger vibrates specified amplitude at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionVibrationParam{ + uint8_t frequency; /*E vibration frequency(0~255 (0: Same as Off mode)) */ + uint8_t amplitude[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E vibration amplitude at position(0~8 (0: Same as Off mode)). + * amplitude[0] means amplitude of vibration at position0. + * amplitude[1] means amplitude of vibration at position1. + * ... + * */ + uint8_t padding[37]; +} ScePadTriggerEffectMultiplePositionVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect mode. + **/ +typedef union ScePadTriggerEffectCommandData{ + ScePadTriggerEffectOffParam offParam; + ScePadTriggerEffectFeedbackParam feedbackParam; + ScePadTriggerEffectWeaponParam weaponParam; + ScePadTriggerEffectVibrationParam vibrationParam; + ScePadTriggerEffectMultiplePositionFeedbackParam multiplePositionFeedbackParam; + ScePadTriggerEffectSlopeFeedbackParam slopeFeedbackParam; + ScePadTriggerEffectMultiplePositionVibrationParam multiplePositionVibrationParam; +} ScePadTriggerEffectCommandData; + +/** + *E + * @brief parameter for setting the trigger effect. + **/ +typedef struct ScePadTriggerEffectCommand{ + ScePadTriggerEffectMode mode; + uint8_t padding[4]; + ScePadTriggerEffectCommandData commandData; +} ScePadTriggerEffectCommand; + +/** + *E + * @brief parameter for the scePadSetTriggerEffect function. + **/ +typedef struct ScePadTriggerEffectParam{ + + uint8_t triggerMask; /*E Set trigger mask to activate trigger effect commands. + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 : 0x01 + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 : 0x02 + * */ + uint8_t padding[7]; + + ScePadTriggerEffectCommand command[SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM]; /*E command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2] is for L2 trigger setting + * and param[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2] is for R2 trgger setting. + * */ +} ScePadTriggerEffectParam; + +#if defined(__cplusplus) && __cplusplus >= 201103L +static_assert( sizeof( ScePadTriggerEffectParam ) == 120, "ScePadTriggerEffectParam has incorrect size" ); +#endif + +#endif /* _SCE_PAD_TRIGGER_EFFECT_H */ diff --git a/lsteamclient/steamworks_sdk_163/isteamfriends.h b/lsteamclient/steamworks_sdk_163/isteamfriends.h new file mode 100644 index 00000000000..064d3fd71d4 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamfriends.h @@ -0,0 +1,714 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: interface to both friends list data and general information about users +// +//============================================================================= + +#ifndef ISTEAMFRIENDS_H +#define ISTEAMFRIENDS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +// Purpose: set of relationships to other users +//----------------------------------------------------------------------------- +enum EFriendRelationship +{ + k_EFriendRelationshipNone = 0, + k_EFriendRelationshipBlocked = 1, // this doesn't get stored; the user has just done an Ignore on an friendship invite + k_EFriendRelationshipRequestRecipient = 2, + k_EFriendRelationshipFriend = 3, + k_EFriendRelationshipRequestInitiator = 4, + k_EFriendRelationshipIgnored = 5, // this is stored; the user has explicit blocked this other user from comments/chat/etc + k_EFriendRelationshipIgnoredFriend = 6, + k_EFriendRelationshipSuggested_DEPRECATED = 7, // was used by the original implementation of the facebook linking feature, but now unused. + + // keep this updated + k_EFriendRelationshipMax = 8, +}; + +// maximum length of friend group name (not including terminating nul!) +const int k_cchMaxFriendsGroupName = 64; + +// maximum number of groups a single user is allowed +const int k_cFriendsGroupLimit = 100; + +// friends group identifier type +typedef int16 FriendsGroupID_t; + +// invalid friends group identifier constant +const FriendsGroupID_t k_FriendsGroupID_Invalid = -1; + +const int k_cEnumerateFollowersMax = 50; + + +//----------------------------------------------------------------------------- +// Purpose: list of states a friend can be in +//----------------------------------------------------------------------------- +enum EPersonaState +{ + k_EPersonaStateOffline = 0, // friend is not currently logged on + k_EPersonaStateOnline = 1, // friend is logged on + k_EPersonaStateBusy = 2, // user is on, but busy + k_EPersonaStateAway = 3, // auto-away feature + k_EPersonaStateSnooze = 4, // auto-away for a long time + k_EPersonaStateLookingToTrade = 5, // Online, trading + k_EPersonaStateLookingToPlay = 6, // Online, wanting to play + k_EPersonaStateInvisible = 7, // Online, but appears offline to friends. This status is never published to clients. + k_EPersonaStateMax, +}; + + +//----------------------------------------------------------------------------- +// Purpose: flags for enumerating friends list, or quickly checking a the relationship between users +//----------------------------------------------------------------------------- +enum EFriendFlags +{ + k_EFriendFlagNone = 0x00, + k_EFriendFlagBlocked = 0x01, + k_EFriendFlagFriendshipRequested = 0x02, + k_EFriendFlagImmediate = 0x04, // "regular" friend + k_EFriendFlagClanMember = 0x08, + k_EFriendFlagOnGameServer = 0x10, + // k_EFriendFlagHasPlayedWith = 0x20, // not currently used + // k_EFriendFlagFriendOfFriend = 0x40, // not currently used + k_EFriendFlagRequestingFriendship = 0x80, + k_EFriendFlagRequestingInfo = 0x100, + k_EFriendFlagIgnored = 0x200, + k_EFriendFlagIgnoredFriend = 0x400, + // k_EFriendFlagSuggested = 0x800, // not used + k_EFriendFlagChatMember = 0x1000, + k_EFriendFlagAll = 0xFFFF, +}; + + +// friend game played information +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif +struct FriendGameInfo_t +{ + CGameID m_gameID; + uint32 m_unGameIP; + uint16 m_usGamePort; + uint16 m_usQueryPort; + CSteamID m_steamIDLobby; +}; +#pragma pack( pop ) + +// special values for FriendGameInfo_t::m_usQueryPort +const uint16 k_usFriendGameInfoQueryPort_NotInitialized = 0xFFFF; // We haven't asked the GS for this query port's actual value yet. Was #define QUERY_PORT_NOT_INITIALIZED in older versions of Steamworks SDK. +const uint16 k_usFriendGameInfoQueryPort_Error = 0xFFFE; // We were unable to get the query port for this server. Was #define QUERY_PORT_ERROR in older versions of Steamworks SDK. + +// maximum number of characters in a user's name. Two flavors; one for UTF-8 and one for UTF-16. +// The UTF-8 version has to be very generous to accomodate characters that get large when encoded +// in UTF-8. +enum +{ + k_cchPersonaNameMax = 128, + k_cwchPersonaNameMax = 32, +}; + +// size limit on chat room or member metadata +const uint32 k_cubChatMetadataMax = 8192; + +// size limits on Rich Presence data +enum { k_cchMaxRichPresenceKeys = 30 }; +enum { k_cchMaxRichPresenceKeyLength = 64 }; +enum { k_cchMaxRichPresenceValueLength = 256 }; + +// These values are passed as parameters to the store +enum EOverlayToStoreFlag +{ + k_EOverlayToStoreFlag_None = 0, + k_EOverlayToStoreFlag_AddToCart = 1, + k_EOverlayToStoreFlag_AddToCartAndShow = 2, +}; + + +//----------------------------------------------------------------------------- +// Purpose: Tells Steam where to place the browser window inside the overlay +//----------------------------------------------------------------------------- +enum EActivateGameOverlayToWebPageMode +{ + k_EActivateGameOverlayToWebPageMode_Default = 0, // Browser will open next to all other windows that the user has open in the overlay. + // The window will remain open, even if the user closes then re-opens the overlay. + + k_EActivateGameOverlayToWebPageMode_Modal = 1 // Browser will be opened in a special overlay configuration which hides all other windows + // that the user has open in the overlay. When the user closes the overlay, the browser window + // will also close. When the user closes the browser window, the overlay will automatically close. +}; + +//----------------------------------------------------------------------------- +// Purpose: See GetProfileItemPropertyString and GetProfileItemPropertyUint +//----------------------------------------------------------------------------- +enum ECommunityProfileItemType +{ + k_ECommunityProfileItemType_AnimatedAvatar = 0, + k_ECommunityProfileItemType_AvatarFrame = 1, + k_ECommunityProfileItemType_ProfileModifier = 2, + k_ECommunityProfileItemType_ProfileBackground = 3, + k_ECommunityProfileItemType_MiniProfileBackground = 4, +}; +enum ECommunityProfileItemProperty +{ + k_ECommunityProfileItemProperty_ImageSmall = 0, // string + k_ECommunityProfileItemProperty_ImageLarge = 1, // string + k_ECommunityProfileItemProperty_InternalName = 2, // string + k_ECommunityProfileItemProperty_Title = 3, // string + k_ECommunityProfileItemProperty_Description = 4, // string + k_ECommunityProfileItemProperty_AppID = 5, // uint32 + k_ECommunityProfileItemProperty_TypeID = 6, // uint32 + k_ECommunityProfileItemProperty_Class = 7, // uint32 + k_ECommunityProfileItemProperty_MovieWebM = 8, // string + k_ECommunityProfileItemProperty_MovieMP4 = 9, // string + k_ECommunityProfileItemProperty_MovieWebMSmall = 10, // string + k_ECommunityProfileItemProperty_MovieMP4Small = 11, // string +}; + +//----------------------------------------------------------------------------- +// Purpose: interface to accessing information about individual users, +// that can be a friend, in a group, on a game server or in a lobby with the local user +//----------------------------------------------------------------------------- +class ISteamFriends +{ +public: + // returns the local players name - guaranteed to not be NULL. + // this is the same name as on the users community profile page + // this is stored in UTF-8 format + // like all the other interface functions that return a char *, it's important that this pointer is not saved + // off; it will eventually be free'd or re-allocated + virtual const char *GetPersonaName() = 0; + + // gets the status of the current user + virtual EPersonaState GetPersonaState() = 0; + + // friend iteration + // takes a set of k_EFriendFlags, and returns the number of users the client knows about who meet that criteria + // then GetFriendByIndex() can then be used to return the id's of each of those users + virtual int GetFriendCount( int iFriendFlags ) = 0; + + // returns the steamID of a user + // iFriend is a index of range [0, GetFriendCount()) + // iFriendsFlags must be the same value as used in GetFriendCount() + // the returned CSteamID can then be used by all the functions below to access details about the user + virtual CSteamID GetFriendByIndex( int iFriend, int iFriendFlags ) = 0; + + // returns a relationship to a user + virtual EFriendRelationship GetFriendRelationship( CSteamID steamIDFriend ) = 0; + + // returns the current status of the specified user + // this will only be known by the local user if steamIDFriend is in their friends list; on the same game server; in a chat room or lobby; or in a small group with the local user + virtual EPersonaState GetFriendPersonaState( CSteamID steamIDFriend ) = 0; + + // returns the name another user - guaranteed to not be NULL. + // same rules as GetFriendPersonaState() apply as to whether or not the user knowns the name of the other user + // note that on first joining a lobby, chat room or game server the local user will not known the name of the other users automatically; that information will arrive asyncronously + // + virtual const char *GetFriendPersonaName( CSteamID steamIDFriend ) = 0; + + // returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details + virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, STEAM_OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; + // accesses old friends names - returns an empty string when their are no more items in the history + virtual const char *GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName ) = 0; + // friends steam level + virtual int GetFriendSteamLevel( CSteamID steamIDFriend ) = 0; + + // Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player. + // DEPRECATED: GetPersonaName follows the Steam nickname preferences, so apps shouldn't need to care about nicknames explicitly. + virtual const char *GetPlayerNickname( CSteamID steamIDPlayer ) = 0; + + // friend grouping (tag) apis + // returns the number of friends groups + virtual int GetFriendsGroupCount() = 0; + // returns the friends group ID for the given index (invalid indices return k_FriendsGroupID_Invalid) + virtual FriendsGroupID_t GetFriendsGroupIDByIndex( int iFG ) = 0; + // returns the name for the given friends group (NULL in the case of invalid friends group IDs) + virtual const char *GetFriendsGroupName( FriendsGroupID_t friendsGroupID ) = 0; + // returns the number of members in a given friends group + virtual int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID ) = 0; + // gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid + virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, STEAM_OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; + + // returns true if the specified user meets any of the criteria specified in iFriendFlags + // iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values + virtual bool HasFriend( CSteamID steamIDFriend, int iFriendFlags ) = 0; + + // clan (group) iteration and access functions + virtual int GetClanCount() = 0; + virtual CSteamID GetClanByIndex( int iClan ) = 0; + virtual const char *GetClanName( CSteamID steamIDClan ) = 0; + virtual const char *GetClanTag( CSteamID steamIDClan ) = 0; + // returns the most recent information we have about what's happening in a clan + virtual bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting ) = 0; + + // for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest + STEAM_CALL_RESULT( DownloadClanActivityCountsResult_t ) + virtual SteamAPICall_t DownloadClanActivityCounts( STEAM_ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; + + // iterators for getting users in a chat room, lobby, game server or clan + // note that large clans that cannot be iterated by the local user + // note that the current user must be in a lobby to retrieve CSteamIDs of other users in that lobby + // steamIDSource can be the steamID of a group, game server, lobby or chat room + virtual int GetFriendCountFromSource( CSteamID steamIDSource ) = 0; + virtual CSteamID GetFriendFromSourceByIndex( CSteamID steamIDSource, int iFriend ) = 0; + + // returns true if the local user can see that steamIDUser is a member or in steamIDSource + virtual bool IsUserInSource( CSteamID steamIDUser, CSteamID steamIDSource ) = 0; + + // User is in a game pressing the talk button (will suppress the microphone for all voice comms from the Steam friends UI) + virtual void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking ) = 0; + + // activates the game overlay, with an optional dialog to open + // valid options include "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements", + // "chatroomgroup/nnnn" + virtual void ActivateGameOverlay( const char *pchDialog ) = 0; + + // activates game overlay to a specific place + // valid options are + // "steamid" - opens the overlay web browser to the specified user or groups profile + // "chat" - opens a chat window to the specified user, or joins the group chat + // "jointrade" - opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API + // "stats" - opens the overlay web browser to the specified user's stats + // "achievements" - opens the overlay web browser to the specified user's achievements + // "friendadd" - opens the overlay in minimal mode prompting the user to add the target user as a friend + // "friendremove" - opens the overlay in minimal mode prompting the user to remove the target friend + // "friendrequestaccept" - opens the overlay in minimal mode prompting the user to accept an incoming friend invite + // "friendrequestignore" - opens the overlay in minimal mode prompting the user to ignore an incoming friend invite + virtual void ActivateGameOverlayToUser( const char *pchDialog, CSteamID steamID ) = 0; + + // activates game overlay web browser directly to the specified URL + // full address with protocol type is required, e.g. http://www.steamgames.com/ + virtual void ActivateGameOverlayToWebPage( const char *pchURL, EActivateGameOverlayToWebPageMode eMode = k_EActivateGameOverlayToWebPageMode_Default ) = 0; + + // activates game overlay to store page for app + virtual void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag ) = 0; + + // Mark a target user as 'played with'. This is a client-side only feature that requires that the calling user is + // in game + virtual void SetPlayedWith( CSteamID steamIDUserPlayedWith ) = 0; + + // activates game overlay to open the invite dialog. Invitations will be sent for the provided lobby. + virtual void ActivateGameOverlayInviteDialog( CSteamID steamIDLobby ) = 0; + + // gets the small (32x32) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set + virtual int GetSmallFriendAvatar( CSteamID steamIDFriend ) = 0; + + // gets the medium (64x64) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set + virtual int GetMediumFriendAvatar( CSteamID steamIDFriend ) = 0; + + // gets the large (184x184) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set + // returns -1 if this image has yet to be loaded, in this case wait for a AvatarImageLoaded_t callback and then call this again + virtual int GetLargeFriendAvatar( CSteamID steamIDFriend ) = 0; + + // requests information about a user - persona name & avatar + // if bRequireNameOnly is set, then the avatar of a user isn't downloaded + // - it's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them + // if returns true, it means that data is being requested, and a PersonaStateChanged_t callback will be posted when it's retrieved + // if returns false, it means that we already have all the details about that user, and functions can be called immediately + virtual bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly ) = 0; + + // requests information about a clan officer list + // when complete, data is returned in ClanOfficerListResponse_t call result + // this makes available the calls below + // you can only ask about clans that a user is a member of + // note that this won't download avatars automatically; if you get an officer, + // and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar + STEAM_CALL_RESULT( ClanOfficerListResponse_t ) + virtual SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan ) = 0; + + // iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed + + // returns the steamID of the clan owner + virtual CSteamID GetClanOwner( CSteamID steamIDClan ) = 0; + // returns the number of officers in a clan (including the owner) + virtual int GetClanOfficerCount( CSteamID steamIDClan ) = 0; + // returns the steamID of a clan officer, by index, of range [0,GetClanOfficerCount) + virtual CSteamID GetClanOfficerByIndex( CSteamID steamIDClan, int iOfficer ) = 0; + + // Rich Presence data is automatically shared between friends who are in the same game + // Each user has a set of Key/Value pairs + // Note the following limits: k_cchMaxRichPresenceKeys, k_cchMaxRichPresenceKeyLength, k_cchMaxRichPresenceValueLength + // There are five magic keys: + // "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list + // "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game + // "steam_display" - Names a rich presence localization token that will be displayed in the viewing user's selected language + // in the Steam client UI. For more info: https://partner.steamgames.com/doc/api/ISteamFriends#richpresencelocalization + // "steam_player_group" - When set, indicates to the Steam client that the player is a member of a particular group. Players in the same group + // may be organized together in various places in the Steam UI. + // "steam_player_group_size" - When set, indicates the total number of players in the steam_player_group. The Steam client may use this number to + // display additional information about a group when all of the members are not part of a user's friends list. + // GetFriendRichPresence() returns an empty string "" if no value is set + // SetRichPresence() to a NULL or an empty string deletes the key + // You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount() + // and GetFriendRichPresenceKeyByIndex() (typically only used for debugging) + virtual bool SetRichPresence( const char *pchKey, const char *pchValue ) = 0; + virtual void ClearRichPresence() = 0; + virtual const char *GetFriendRichPresence( CSteamID steamIDFriend, const char *pchKey ) = 0; + virtual int GetFriendRichPresenceKeyCount( CSteamID steamIDFriend ) = 0; + virtual const char *GetFriendRichPresenceKeyByIndex( CSteamID steamIDFriend, int iKey ) = 0; + // Requests rich presence for a specific user. + virtual void RequestFriendRichPresence( CSteamID steamIDFriend ) = 0; + + // Rich invite support. + // If the target accepts the invite, a GameRichPresenceJoinRequested_t callback is posted containing the connect string. + // (Or you can configure your game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.) + virtual bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString ) = 0; + + // recently-played-with friends iteration + // this iterates the entire list of users recently played with, across games + // GetFriendCoplayTime() returns as a unix time + virtual int GetCoplayFriendCount() = 0; + virtual CSteamID GetCoplayFriend( int iCoplayFriend ) = 0; + virtual int GetFriendCoplayTime( CSteamID steamIDFriend ) = 0; + virtual AppId_t GetFriendCoplayGame( CSteamID steamIDFriend ) = 0; + + // chat interface for games + // this allows in-game access to group (clan) chats from in the game + // the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay + // use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat + STEAM_CALL_RESULT( JoinClanChatRoomCompletionResult_t ) + virtual SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan ) = 0; + virtual bool LeaveClanChatRoom( CSteamID steamIDClan ) = 0; + virtual int GetClanChatMemberCount( CSteamID steamIDClan ) = 0; + virtual CSteamID GetChatMemberByIndex( CSteamID steamIDClan, int iUser ) = 0; + virtual bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText ) = 0; + virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, STEAM_OUT_STRUCT() CSteamID *psteamidChatter ) = 0; + virtual bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser ) = 0; + + // interact with the Steam (game overlay / desktop) + virtual bool IsClanChatWindowOpenInSteam( CSteamID steamIDClanChat ) = 0; + virtual bool OpenClanChatWindowInSteam( CSteamID steamIDClanChat ) = 0; + virtual bool CloseClanChatWindowInSteam( CSteamID steamIDClanChat ) = 0; + + // peer-to-peer chat interception + // this is so you can show P2P chats inline in the game + virtual bool SetListenForFriendsMessages( bool bInterceptEnabled ) = 0; + virtual bool ReplyToFriendMessage( CSteamID steamIDFriend, const char *pchMsgToSend ) = 0; + virtual int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; + + // following apis + STEAM_CALL_RESULT( FriendsGetFollowerCount_t ) + virtual SteamAPICall_t GetFollowerCount( CSteamID steamID ) = 0; + STEAM_CALL_RESULT( FriendsIsFollowing_t ) + virtual SteamAPICall_t IsFollowing( CSteamID steamID ) = 0; + STEAM_CALL_RESULT( FriendsEnumerateFollowingList_t ) + virtual SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex ) = 0; + + virtual bool IsClanPublic( CSteamID steamIDClan ) = 0; + virtual bool IsClanOfficialGameGroup( CSteamID steamIDClan ) = 0; + + /// Return the number of chats (friends or chat rooms) with unread messages. + /// A "priority" message is one that would generate some sort of toast or + /// notification, and depends on user settings. + /// + /// You can register for UnreadChatMessagesChanged_t callbacks to know when this + /// has potentially changed. + virtual int GetNumChatsWithUnreadPriorityMessages() = 0; + + // activates game overlay to open the remote play together invite dialog. Invitations will be sent for remote play together + virtual void ActivateGameOverlayRemotePlayTogetherInviteDialog( CSteamID steamIDLobby ) = 0; + + // Call this before calling ActivateGameOverlayToWebPage() to have the Steam Overlay Browser block navigations + // to your specified protocol (scheme) uris and instead dispatch a OverlayBrowserProtocolNavigation_t callback to your game. + // ActivateGameOverlayToWebPage() must have been called with k_EActivateGameOverlayToWebPageMode_Modal + virtual bool RegisterProtocolInOverlayBrowser( const char *pchProtocol ) = 0; + + // Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends + virtual void ActivateGameOverlayInviteDialogConnectString( const char *pchConnectString ) = 0; + + // Steam Community items equipped by a user on their profile + // You can register for EquippedProfileItemsChanged_t to know when a friend has changed their equipped profile items + STEAM_CALL_RESULT( EquippedProfileItems_t ) + virtual SteamAPICall_t RequestEquippedProfileItems( CSteamID steamID ) = 0; + virtual bool BHasEquippedProfileItem( CSteamID steamID, ECommunityProfileItemType itemType ) = 0; + virtual const char *GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; + virtual uint32 GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; +}; + +#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends018" + +// Global interface accessor +inline ISteamFriends *SteamFriends(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamFriends *, SteamFriends, STEAMFRIENDS_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when a friends' status changes +//----------------------------------------------------------------------------- +struct PersonaStateChange_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 4 }; + + uint64 m_ulSteamID; // steamID of the friend who changed + int m_nChangeFlags; // what's changed +}; + + +// used in PersonaStateChange_t::m_nChangeFlags to describe what's changed about a user +// these flags describe what the client has learned has changed recently, so on startup you'll see a name, avatar & relationship change for every friend +enum EPersonaChange +{ + k_EPersonaChangeName = 0x0001, + k_EPersonaChangeStatus = 0x0002, + k_EPersonaChangeComeOnline = 0x0004, + k_EPersonaChangeGoneOffline = 0x0008, + k_EPersonaChangeGamePlayed = 0x0010, + k_EPersonaChangeGameServer = 0x0020, + k_EPersonaChangeAvatar = 0x0040, + k_EPersonaChangeJoinedSource= 0x0080, + k_EPersonaChangeLeftSource = 0x0100, + k_EPersonaChangeRelationshipChanged = 0x0200, + k_EPersonaChangeNameFirstSet = 0x0400, + k_EPersonaChangeBroadcast = 0x0800, + k_EPersonaChangeNickname = 0x1000, + k_EPersonaChangeSteamLevel = 0x2000, + k_EPersonaChangeRichPresence = 0x4000, +}; + + +//----------------------------------------------------------------------------- +// Purpose: posted when game overlay activates or deactivates +// the game can use this to be pause or resume single player games +//----------------------------------------------------------------------------- +struct GameOverlayActivated_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 31 }; + uint8 m_bActive; // true if it's just been activated, false otherwise + bool m_bUserInitiated; // true if the user asked for the overlay to be activated/deactivated + AppId_t m_nAppID; // the appID of the game (should always be the current game) + uint32 m_dwOverlayPID; // used internally +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when the user tries to join a different game server from their friends list +// game client should attempt to connect to specified server when this is received +//----------------------------------------------------------------------------- +struct GameServerChangeRequested_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 32 }; + char m_rgchServer[64]; // server address ("127.0.0.1:27015", "tf2.valvesoftware.com") + char m_rgchPassword[64]; // server password, if any +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when the user tries to join a lobby from their friends list +// game client should attempt to connect to specified lobby when this is received +//----------------------------------------------------------------------------- +struct GameLobbyJoinRequested_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 33 }; + CSteamID m_steamIDLobby; + + // The friend they did the join via (will be invalid if not directly via a friend) + CSteamID m_steamIDFriend; +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when an avatar is loaded in from a previous GetLargeFriendAvatar() call +// if the image wasn't already available +//----------------------------------------------------------------------------- +struct AvatarImageLoaded_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 34 }; + CSteamID m_steamID; // steamid the avatar has been loaded for + int m_iImage; // the image index of the now loaded image + int m_iWide; // width of the loaded image + int m_iTall; // height of the loaded image +}; + + +//----------------------------------------------------------------------------- +// Purpose: marks the return of a request officer list call +//----------------------------------------------------------------------------- +struct ClanOfficerListResponse_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 35 }; + CSteamID m_steamIDClan; + int m_cOfficers; + uint8 m_bSuccess; +}; + + +//----------------------------------------------------------------------------- +// Purpose: callback indicating updated data about friends rich presence information +//----------------------------------------------------------------------------- +struct FriendRichPresenceUpdate_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 36 }; + CSteamID m_steamIDFriend; // friend who's rich presence has changed + AppId_t m_nAppID; // the appID of the game (should always be the current game) +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when the user tries to join a game from their friends list +// rich presence will have been set with the "connect" key which is set here +//----------------------------------------------------------------------------- +struct GameRichPresenceJoinRequested_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 37 }; + CSteamID m_steamIDFriend; // the friend they did the join via (will be invalid if not directly via a friend) + char m_rgchConnect[k_cchMaxRichPresenceValueLength]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: a chat message has been received for a clan chat the game has joined +//----------------------------------------------------------------------------- +struct GameConnectedClanChatMsg_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 38 }; + CSteamID m_steamIDClanChat; + CSteamID m_steamIDUser; + int m_iMessageID; +}; + + +//----------------------------------------------------------------------------- +// Purpose: a user has joined a clan chat +//----------------------------------------------------------------------------- +struct GameConnectedChatJoin_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 39 }; + CSteamID m_steamIDClanChat; + CSteamID m_steamIDUser; +}; + + +//----------------------------------------------------------------------------- +// Purpose: a user has left the chat we're in +//----------------------------------------------------------------------------- +struct GameConnectedChatLeave_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 40 }; + CSteamID m_steamIDClanChat; + CSteamID m_steamIDUser; + bool m_bKicked; // true if admin kicked + bool m_bDropped; // true if Steam connection dropped +}; + + +//----------------------------------------------------------------------------- +// Purpose: a DownloadClanActivityCounts() call has finished +//----------------------------------------------------------------------------- +struct DownloadClanActivityCountsResult_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 41 }; + bool m_bSuccess; +}; + + +//----------------------------------------------------------------------------- +// Purpose: a JoinClanChatRoom() call has finished +//----------------------------------------------------------------------------- +struct JoinClanChatRoomCompletionResult_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 42 }; + CSteamID m_steamIDClanChat; + EChatRoomEnterResponse m_eChatRoomEnterResponse; +}; + +//----------------------------------------------------------------------------- +// Purpose: a chat message has been received from a user +//----------------------------------------------------------------------------- +struct GameConnectedFriendChatMsg_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 43 }; + CSteamID m_steamIDUser; + int m_iMessageID; +}; + + +struct FriendsGetFollowerCount_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 44 }; + EResult m_eResult; + CSteamID m_steamID; + int m_nCount; +}; + + +struct FriendsIsFollowing_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 45 }; + EResult m_eResult; + CSteamID m_steamID; + bool m_bIsFollowing; +}; + + +struct FriendsEnumerateFollowingList_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 46 }; + EResult m_eResult; + CSteamID m_rgSteamID[ k_cEnumerateFollowersMax ]; + int32 m_nResultsReturned; + int32 m_nTotalResultCount; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Invoked when the status of unread messages changes +//----------------------------------------------------------------------------- +struct UnreadChatMessagesChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 48 }; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Dispatched when an overlay browser instance is navigated to a protocol/scheme registered by RegisterProtocolInOverlayBrowser() +//----------------------------------------------------------------------------- +struct OverlayBrowserProtocolNavigation_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 49 }; + char rgchURI[ 1024 ]; +}; + +//----------------------------------------------------------------------------- +// Purpose: A user's equipped profile items have changed +//----------------------------------------------------------------------------- +struct EquippedProfileItemsChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 50 }; + CSteamID m_steamID; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +struct EquippedProfileItems_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 51 }; + EResult m_eResult; + CSteamID m_steamID; + bool m_bHasAnimatedAvatar; + bool m_bHasAvatarFrame; + bool m_bHasProfileModifier; + bool m_bHasProfileBackground; + bool m_bHasMiniProfileBackground; + bool m_bFromCache; +}; + +#pragma pack( pop ) + +#endif // ISTEAMFRIENDS_H diff --git a/lsteamclient/steamworks_sdk_163/isteamgamecoordinator.h b/lsteamclient/steamworks_sdk_163/isteamgamecoordinator.h new file mode 100644 index 00000000000..89b740d7ce2 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamgamecoordinator.h @@ -0,0 +1,74 @@ +//====== Copyright ©, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to the game coordinator for this application +// +//============================================================================= + +#ifndef ISTEAMGAMECOORDINATOR +#define ISTEAMGAMECOORDINATOR +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + + +// list of possible return values from the ISteamGameCoordinator API +enum EGCResults +{ + k_EGCResultOK = 0, + k_EGCResultNoMessage = 1, // There is no message in the queue + k_EGCResultBufferTooSmall = 2, // The buffer is too small for the requested message + k_EGCResultNotLoggedOn = 3, // The client is not logged onto Steam + k_EGCResultInvalidMessage = 4, // Something was wrong with the message being sent with SendMessage +}; + + +//----------------------------------------------------------------------------- +// Purpose: Functions for sending and receiving messages from the Game Coordinator +// for this application +//----------------------------------------------------------------------------- +class ISteamGameCoordinator +{ +public: + + // sends a message to the Game Coordinator + virtual EGCResults SendMessage( uint32 unMsgType, const void *pubData, uint32 cubData ) = 0; + + // returns true if there is a message waiting from the game coordinator + virtual bool IsMessageAvailable( uint32 *pcubMsgSize ) = 0; + + // fills the provided buffer with the first message in the queue and returns k_EGCResultOK or + // returns k_EGCResultNoMessage if there is no message waiting. pcubMsgSize is filled with the message size. + // If the provided buffer is not large enough to fit the entire message, k_EGCResultBufferTooSmall is returned + // and the message remains at the head of the queue. + virtual EGCResults RetrieveMessage( uint32 *punMsgType, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize ) = 0; + +}; +#define STEAMGAMECOORDINATOR_INTERFACE_VERSION "SteamGameCoordinator001" + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +// callback notification - A new message is available for reading from the message queue +struct GCMessageAvailable_t +{ + enum { k_iCallback = k_iSteamGameCoordinatorCallbacks + 1 }; + uint32 m_nMessageSize; +}; + +// callback notification - A message failed to make it to the GC. It may be down temporarily +struct GCMessageFailed_t +{ + enum { k_iCallback = k_iSteamGameCoordinatorCallbacks + 2 }; +}; + +#pragma pack( pop ) + +#endif // ISTEAMGAMECOORDINATOR diff --git a/lsteamclient/steamworks_sdk_163/isteamgameserver.h b/lsteamclient/steamworks_sdk_163/isteamgameserver.h new file mode 100644 index 00000000000..ba4d12517fb --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamgameserver.h @@ -0,0 +1,394 @@ +//====== Copyright (c) 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to steam for game servers +// +//============================================================================= + +#ifndef ISTEAMGAMESERVER_H +#define ISTEAMGAMESERVER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +// Purpose: Functions for authenticating users via Steam to play on a game server +//----------------------------------------------------------------------------- +class ISteamGameServer +{ +public: + +// +// Basic server data. These properties, if set, must be set before before calling LogOn. They +// may not be changed after logged in. +// + + /// This is called by SteamGameServer_Init, and you will usually not need to call it directly + STEAM_PRIVATE_API( virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; ) + + /// Game product identifier. This is currently used by the master server for version checking purposes. + /// It's a required field, but will eventually will go away, and the AppID will be used for this purpose. + virtual void SetProduct( const char *pszProduct ) = 0; + + /// Description of the game. This is a required field and is displayed in the steam server browser....for now. + /// This is a required field, but it will go away eventually, as the data should be determined from the AppID. + virtual void SetGameDescription( const char *pszGameDescription ) = 0; + + /// If your game is a "mod," pass the string that identifies it. The default is an empty string, meaning + /// this application is the original game, not a mod. + /// + /// @see k_cbMaxGameServerGameDir + virtual void SetModDir( const char *pszModDir ) = 0; + + /// Is this is a dedicated server? The default value is false. + virtual void SetDedicatedServer( bool bDedicated ) = 0; + +// +// Login +// + + /// Begin process to login to a persistent game server account + /// + /// You need to register for callbacks to determine the result of this operation. + /// @see SteamServersConnected_t + /// @see SteamServerConnectFailure_t + /// @see SteamServersDisconnected_t + virtual void LogOn( const char *pszToken ) = 0; + + /// Login to a generic, anonymous account. + /// + /// Note: in previous versions of the SDK, this was automatically called within SteamGameServer_Init, + /// but this is no longer the case. + virtual void LogOnAnonymous() = 0; + + /// Begin process of logging game server out of steam + virtual void LogOff() = 0; + + // status functions + virtual bool BLoggedOn() = 0; + virtual bool BSecure() = 0; + virtual CSteamID GetSteamID() = 0; + + /// Returns true if the master server has requested a restart. + /// Only returns true once per request. + virtual bool WasRestartRequested() = 0; + +// +// Server state. These properties may be changed at any time. +// + + /// Max player count that will be reported to server browser and client queries + virtual void SetMaxPlayerCount( int cPlayersMax ) = 0; + + /// Number of bots. Default value is zero + virtual void SetBotPlayerCount( int cBotplayers ) = 0; + + /// Set the name of server as it will appear in the server browser + /// + /// @see k_cbMaxGameServerName + virtual void SetServerName( const char *pszServerName ) = 0; + + /// Set name of map to report in the server browser + /// + /// @see k_cbMaxGameServerMapName + virtual void SetMapName( const char *pszMapName ) = 0; + + /// Let people know if your server will require a password + virtual void SetPasswordProtected( bool bPasswordProtected ) = 0; + + /// Spectator server port to advertise. The default value is zero, meaning the + /// service is not used. If your server receives any info requests on the LAN, + /// this is the value that will be placed into the reply for such local queries. + /// + /// This is also the value that will be advertised by the master server. + /// The only exception is if your server is using a FakeIP. Then then the second + /// fake port number (index 1) assigned to your server will be listed on the master + /// server as the spectator port, if you set this value to any nonzero value. + /// + /// This function merely controls the values that are advertised -- it's up to you to + /// configure the server to actually listen on this port and handle any spectator traffic + virtual void SetSpectatorPort( uint16 unSpectatorPort ) = 0; + + /// Name of the spectator server. (Only used if spectator port is nonzero.) + /// + /// @see k_cbMaxGameServerMapName + virtual void SetSpectatorServerName( const char *pszSpectatorServerName ) = 0; + + /// Call this to clear the whole list of key/values that are sent in rules queries. + virtual void ClearAllKeyValues() = 0; + + /// Call this to add/update a key/value pair. + virtual void SetKeyValue( const char *pKey, const char *pValue ) = 0; + + /// Sets a string defining the "gametags" for this server, this is optional, but if it is set + /// it allows users to filter in the matchmaking/server-browser interfaces based on the value + /// + /// @see k_cbMaxGameServerTags + virtual void SetGameTags( const char *pchGameTags ) = 0; + + /// Sets a string defining the "gamedata" for this server, this is optional, but if it is set + /// it allows users to filter in the matchmaking/server-browser interfaces based on the value + /// + /// @see k_cbMaxGameServerGameData + virtual void SetGameData( const char *pchGameData ) = 0; + + /// Region identifier. This is an optional field, the default value is empty, meaning the "world" region + virtual void SetRegion( const char *pszRegion ) = 0; + + /// Indicate whether you wish to be listed on the master server list + /// and/or respond to server browser / LAN discovery packets. + /// The server starts with this value set to false. You should set all + /// relevant server parameters before enabling advertisement on the server. + /// + /// (This function used to be named EnableHeartbeats, so if you are wondering + /// where that function went, it's right here. It does the same thing as before, + /// the old name was just confusing.) + virtual void SetAdvertiseServerActive( bool bActive ) = 0; + +// +// Player list management / authentication. +// + + // Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ). + // pcbTicket retrieves the length of the actual ticket. + // SteamNetworkingIdentity is an optional parameter to hold the public IP address of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSnid ) = 0; + + // Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused + // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) + virtual EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID ) = 0; + + // Stop tracking started by BeginAuthSession - called when no longer playing game with this entity + virtual void EndAuthSession( CSteamID steamID ) = 0; + + // Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to + virtual void CancelAuthTicket( HAuthTicket hAuthTicket ) = 0; + + // After receiving a user's authentication data, and passing it to SendUserConnectAndAuthenticate, use this function + // to determine if the user owns downloadable content specified by the provided AppID. + virtual EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID ) = 0; + + // Ask if a user in in the specified group, results returns async by GSUserGroupStatus_t + // returns false if we're not connected to the steam servers and thus cannot ask + virtual bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup ) = 0; + + + // these two functions s are deprecated, and will not return results + // they will be removed in a future version of the SDK + virtual void GetGameplayStats( ) = 0; + STEAM_CALL_RESULT( GSReputation_t ) + virtual SteamAPICall_t GetServerReputation() = 0; + + // Returns the public IP of the server according to Steam, useful when the server is + // behind NAT and you want to advertise its IP in a lobby for other clients to directly + // connect to + virtual SteamIPAddress_t GetPublicIP() = 0; + +// Server browser related query packet processing for shared socket mode. These are used +// when you pass STEAMGAMESERVER_QUERY_PORT_SHARED as the query port to SteamGameServer_Init. +// IP address and port are in host order, i.e 127.0.0.1 == 0x7f000001 + + // These are used when you've elected to multiplex the game server's UDP socket + // rather than having the master server updater use its own sockets. + // + // Source games use this to simplify the job of the server admins, so they + // don't have to open up more ports on their firewalls. + + // Call this when a packet that starts with 0xFFFFFFFF comes in. That means + // it's for us. + virtual bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort ) = 0; + + // AFTER calling HandleIncomingPacket for any packets that came in that frame, call this. + // This gets a packet that the master server updater needs to send out on UDP. + // It returns the length of the packet it wants to send, or 0 if there are no more packets to send. + // Call this each frame until it returns 0. + virtual int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort ) = 0; + +// +// Server clan association +// + + // associate this game server with this clan for the purposes of computing player compat + STEAM_CALL_RESULT( AssociateWithClanResult_t ) + virtual SteamAPICall_t AssociateWithClan( CSteamID steamIDClan ) = 0; + + // ask if any of the current players dont want to play with this new player - or vice versa + STEAM_CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) + virtual SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer ) = 0; + + + + + // Handles receiving a new connection from a Steam user. This call will ask the Steam + // servers to validate the users identity, app ownership, and VAC status. If the Steam servers + // are off-line, then it will validate the cached ticket itself which will validate app ownership + // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() + // and must then be sent up to the game server for authentication. + // + // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL + // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication + // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual bool SendUserConnectAndAuthenticate_DEPRECATED( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; + + // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. + // + // Return Value: Returns a SteamID for the user to be tracked with, you should call EndAuthSession() + // when this user leaves the server just like you would for a real user. + virtual CSteamID CreateUnauthenticatedUserConnection() = 0; + + // Should be called whenever a user leaves our game server, this lets Steam internally + // track which users are currently on which servers for the purposes of preventing a single + // account being logged into multiple servers, showing who is currently on a server, etc. + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void SendUserDisconnect_DEPRECATED( CSteamID steamIDUser ) = 0; + + // Update the data to be displayed in the server browser and matchmaking interfaces for a user + // currently connected to the server. For regular users you must call this after you receive a + // GSUserValidationSuccess callback. + // + // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) + virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; + +// Deprecated functions. These will be removed in a future version of the SDK. +// If you really need these, please contact us and help us understand what you are +// using them for. + + STEAM_PRIVATE_API( + virtual void SetMasterServerHeartbeatInterval_DEPRECATED( int iHeartbeatInterval ) = 0; + virtual void ForceMasterServerHeartbeat_DEPRECATED() = 0; + ) +}; + +#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer015" + +// Global accessor +inline ISteamGameServer *SteamGameServer(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServer *, SteamGameServer, STEAMGAMESERVER_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +// client has been approved to connect to this game server +struct GSClientApprove_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 1 }; + CSteamID m_SteamID; // SteamID of approved player + CSteamID m_OwnerSteamID; // SteamID of original owner for game license +}; + + +// client has been denied to connection to this game server +struct GSClientDeny_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 2 }; + CSteamID m_SteamID; + EDenyReason m_eDenyReason; + char m_rgchOptionalText[128]; +}; + + +// request the game server should kick the user +struct GSClientKick_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 3 }; + CSteamID m_SteamID; + EDenyReason m_eDenyReason; +}; + +// NOTE: callback values 4 and 5 are skipped because they are used for old deprecated callbacks, +// do not reuse them here. + + +// client achievement info +struct GSClientAchievementStatus_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 6 }; + uint64 m_SteamID; + char m_pchAchievement[128]; + bool m_bUnlocked; +}; + +// received when the game server requests to be displayed as secure (VAC protected) +// m_bSecure is true if the game server should display itself as secure to users, false otherwise +struct GSPolicyResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 15 }; + uint8 m_bSecure; +}; + +// GS gameplay stats info +struct GSGameplayStats_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 7 }; + EResult m_eResult; // Result of the call + int32 m_nRank; // Overall rank of the server (0-based) + uint32 m_unTotalConnects; // Total number of clients who have ever connected to the server + uint32 m_unTotalMinutesPlayed; // Total number of minutes ever played on the server +}; + +// send as a reply to RequestUserGroupStatus() +struct GSClientGroupStatus_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 8 }; + CSteamID m_SteamIDUser; + CSteamID m_SteamIDGroup; + bool m_bMember; + bool m_bOfficer; +}; + +// Sent as a reply to GetServerReputation() +struct GSReputation_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 9 }; + EResult m_eResult; // Result of the call; + uint32 m_unReputationScore; // The reputation score for the game server + bool m_bBanned; // True if the server is banned from the Steam + // master servers + + // The following members are only filled out if m_bBanned is true. They will all + // be set to zero otherwise. Master server bans are by IP so it is possible to be + // banned even when the score is good high if there is a bad server on another port. + // This information can be used to determine which server is bad. + + uint32 m_unBannedIP; // The IP of the banned server + uint16 m_usBannedPort; // The port of the banned server + uint64 m_ulBannedGameID; // The game ID the banned server is serving + uint32 m_unBanExpires; // Time the ban expires, expressed in the Unix epoch (seconds since 1/1/1970) +}; + +// Sent as a reply to AssociateWithClan() +struct AssociateWithClanResult_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 10 }; + EResult m_eResult; // Result of the call; +}; + +// Sent as a reply to ComputeNewPlayerCompatibility() +struct ComputeNewPlayerCompatibilityResult_t +{ + enum { k_iCallback = k_iSteamGameServerCallbacks + 11 }; + EResult m_eResult; // Result of the call; + int m_cPlayersThatDontLikeCandidate; + int m_cPlayersThatCandidateDoesntLike; + int m_cClanPlayersThatDontLikeCandidate; + CSteamID m_SteamIDCandidate; +}; + + +#pragma pack( pop ) + +#endif // ISTEAMGAMESERVER_H diff --git a/lsteamclient/steamworks_sdk_163/isteamgameserverstats.h b/lsteamclient/steamworks_sdk_163/isteamgameserverstats.h new file mode 100644 index 00000000000..50192794e13 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamgameserverstats.h @@ -0,0 +1,114 @@ +//====== Copyright © Valve Corporation, All rights reserved. ======= +// +// Purpose: interface for game servers to steam stats and achievements +// +//============================================================================= + +#ifndef ISTEAMGAMESERVERSTATS_H +#define ISTEAMGAMESERVERSTATS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +// Purpose: Functions for authenticating users via Steam to play on a game server +//----------------------------------------------------------------------------- +class ISteamGameServerStats +{ +public: + // downloads stats for the user + // returns a GSStatsReceived_t callback when completed + // if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail + // these stats will only be auto-updated for clients playing on the server. For other + // users you'll need to call RequestUserStats() again to refresh any data + STEAM_CALL_RESULT( GSStatsReceived_t ) + virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; + + // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) + virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) + virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; + + // Set / update stats and achievements. + // Note: These updates will work only on stats game servers are allowed to edit and only for + // game servers that have been declared as officially controlled by the game creators. + // Set the IP range of your official servers on the Steamworks page + + STEAM_FLAT_NAME( SetUserStatInt32 ) + virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetUserStatFloat ) + virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, float fData ) = 0; + + virtual bool UpdateUserAvgRateStat( CSteamID steamIDUser, const char *pchName, float flCountThisSession, double dSessionLength ) = 0; + + virtual bool SetUserAchievement( CSteamID steamIDUser, const char *pchName ) = 0; + virtual bool ClearUserAchievement( CSteamID steamIDUser, const char *pchName ) = 0; + + // Store the current data on the server, will get a GSStatsStored_t callback when set. + // + // If the callback has a result of k_EResultInvalidParam, one or more stats + // uploaded has been rejected, either because they broke constraints + // or were out of date. In this case the server sends back updated values. + // The stats should be re-iterated to keep in sync. + STEAM_CALL_RESULT( GSStatsStored_t ) + virtual SteamAPICall_t StoreUserStats( CSteamID steamIDUser ) = 0; +}; +#define STEAMGAMESERVERSTATS_INTERFACE_VERSION "SteamGameServerStats001" + +// Global accessor +inline ISteamGameServerStats *SteamGameServerStats(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServerStats *, SteamGameServerStats, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); + + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when the latests stats and achievements have been received +// from the server +//----------------------------------------------------------------------------- +struct GSStatsReceived_t +{ + enum { k_iCallback = k_iSteamGameServerStatsCallbacks }; + EResult m_eResult; // Success / error fetching the stats + CSteamID m_steamIDUser; // The user for whom the stats are retrieved for +}; + + +//----------------------------------------------------------------------------- +// Purpose: result of a request to store the user stats for a game +//----------------------------------------------------------------------------- +struct GSStatsStored_t +{ + enum { k_iCallback = k_iSteamGameServerStatsCallbacks + 1 }; + EResult m_eResult; // success / error + CSteamID m_steamIDUser; // The user for whom the stats were stored +}; + +//----------------------------------------------------------------------------- +// Purpose: Callback indicating that a user's stats have been unloaded. +// Call RequestUserStats again to access stats for this user +//----------------------------------------------------------------------------- +struct GSStatsUnloaded_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 8 }; + CSteamID m_steamIDUser; // User whose stats have been unloaded +}; + +#pragma pack( pop ) + + +#endif // ISTEAMGAMESERVERSTATS_H diff --git a/lsteamclient/steamworks_sdk_163/isteamhtmlsurface.h b/lsteamclient/steamworks_sdk_163/isteamhtmlsurface.h new file mode 100644 index 00000000000..e000f1a7d5c --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamhtmlsurface.h @@ -0,0 +1,481 @@ +//====== Copyright 1996-2013, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to display html pages in a texture +// +//============================================================================= + +#ifndef ISTEAMHTMLSURFACE_H +#define ISTEAMHTMLSURFACE_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +typedef uint32 HHTMLBrowser; +const uint32 INVALID_HTMLBROWSER = 0; + +//----------------------------------------------------------------------------- +// Purpose: Functions for displaying HTML pages and interacting with them +//----------------------------------------------------------------------------- +class ISteamHTMLSurface +{ +public: + virtual ~ISteamHTMLSurface() {} + + // Must call init and shutdown when starting/ending use of the interface + virtual bool Init() = 0; + virtual bool Shutdown() = 0; + + // Create a browser object for display of a html page, when creation is complete the call handle + // will return a HTML_BrowserReady_t callback for the HHTMLBrowser of your new browser. + // The user agent string is a substring to be added to the general user agent string so you can + // identify your client on web servers. + // The userCSS string lets you apply a CSS style sheet to every displayed page, leave null if + // you do not require this functionality. + // + // YOU MUST HAVE IMPLEMENTED HANDLERS FOR HTML_BrowserReady_t, HTML_StartRequest_t, + // HTML_JSAlert_t, HTML_JSConfirm_t, and HTML_FileOpenDialog_t! See the CALLBACKS + // section of this interface (AllowStartRequest, etc) for more details. If you do + // not implement these callback handlers, the browser may appear to hang instead of + // navigating to new pages or triggering javascript popups. + // + STEAM_CALL_RESULT( HTML_BrowserReady_t ) + virtual SteamAPICall_t CreateBrowser( const char *pchUserAgent, const char *pchUserCSS ) = 0; + + // Call this when you are done with a html surface, this lets us free the resources being used by it + virtual void RemoveBrowser( HHTMLBrowser unBrowserHandle ) = 0; + + // Navigate to this URL, results in a HTML_StartRequest_t as the request commences + virtual void LoadURL( HHTMLBrowser unBrowserHandle, const char *pchURL, const char *pchPostData ) = 0; + + // Tells the surface the size in pixels to display the surface + virtual void SetSize( HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight ) = 0; + + // Stop the load of the current html page + virtual void StopLoad( HHTMLBrowser unBrowserHandle ) = 0; + // Reload (most likely from local cache) the current page + virtual void Reload( HHTMLBrowser unBrowserHandle ) = 0; + // navigate back in the page history + virtual void GoBack( HHTMLBrowser unBrowserHandle ) = 0; + // navigate forward in the page history + virtual void GoForward( HHTMLBrowser unBrowserHandle ) = 0; + + // add this header to any url requests from this browser + virtual void AddHeader( HHTMLBrowser unBrowserHandle, const char *pchKey, const char *pchValue ) = 0; + // run this javascript script in the currently loaded page + virtual void ExecuteJavascript( HHTMLBrowser unBrowserHandle, const char *pchScript ) = 0; + + enum EHTMLMouseButton + { + eHTMLMouseButton_Left = 0, + eHTMLMouseButton_Right = 1, + eHTMLMouseButton_Middle = 2, + }; + + // Mouse click and mouse movement commands + virtual void MouseUp( HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton ) = 0; + virtual void MouseDown( HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton ) = 0; + virtual void MouseDoubleClick( HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton ) = 0; + // x and y are relative to the HTML bounds + virtual void MouseMove( HHTMLBrowser unBrowserHandle, int x, int y ) = 0; + // nDelta is pixels of scroll + virtual void MouseWheel( HHTMLBrowser unBrowserHandle, int32 nDelta ) = 0; + + enum EHTMLMouseCursor + { + k_EHTMLMouseCursor_User = 0, + k_EHTMLMouseCursor_None, + k_EHTMLMouseCursor_Arrow, + k_EHTMLMouseCursor_IBeam, + k_EHTMLMouseCursor_Hourglass, + k_EHTMLMouseCursor_WaitArrow, + k_EHTMLMouseCursor_Crosshair, + k_EHTMLMouseCursor_Up, + k_EHTMLMouseCursor_SizeNW, + k_EHTMLMouseCursor_SizeSE, + k_EHTMLMouseCursor_SizeNE, + k_EHTMLMouseCursor_SizeSW, + k_EHTMLMouseCursor_SizeW, + k_EHTMLMouseCursor_SizeE, + k_EHTMLMouseCursor_SizeN, + k_EHTMLMouseCursor_SizeS, + k_EHTMLMouseCursor_SizeWE, + k_EHTMLMouseCursor_SizeNS, + k_EHTMLMouseCursor_SizeAll, + k_EHTMLMouseCursor_No, + k_EHTMLMouseCursor_Hand, + k_EHTMLMouseCursor_Blank, // don't show any custom cursor, just use your default + k_EHTMLMouseCursor_MiddlePan, + k_EHTMLMouseCursor_NorthPan, + k_EHTMLMouseCursor_NorthEastPan, + k_EHTMLMouseCursor_EastPan, + k_EHTMLMouseCursor_SouthEastPan, + k_EHTMLMouseCursor_SouthPan, + k_EHTMLMouseCursor_SouthWestPan, + k_EHTMLMouseCursor_WestPan, + k_EHTMLMouseCursor_NorthWestPan, + k_EHTMLMouseCursor_Alias, + k_EHTMLMouseCursor_Cell, + k_EHTMLMouseCursor_ColResize, + k_EHTMLMouseCursor_CopyCur, + k_EHTMLMouseCursor_VerticalText, + k_EHTMLMouseCursor_RowResize, + k_EHTMLMouseCursor_ZoomIn, + k_EHTMLMouseCursor_ZoomOut, + k_EHTMLMouseCursor_Help, + k_EHTMLMouseCursor_Custom, + k_EHTMLMouseCursor_SizeNWSE, + k_EHTMLMouseCursor_SizeNESW, + + k_EHTMLMouseCursor_last, // custom cursors start from this value and up + }; + + enum EHTMLKeyModifiers + { + k_eHTMLKeyModifier_None = 0, + k_eHTMLKeyModifier_AltDown = 1 << 0, + k_eHTMLKeyModifier_CtrlDown = 1 << 1, + k_eHTMLKeyModifier_ShiftDown = 1 << 2, + }; + + // keyboard interactions, native keycode is the virtual key code value from your OS, system key flags the key to not + // be sent as a typed character as well as a key down + virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey = false ) = 0; + virtual void KeyUp( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; + // cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press) + virtual void KeyChar( HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; + + // programmatically scroll this many pixels on the page + virtual void SetHorizontalScroll( HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ) = 0; + virtual void SetVerticalScroll( HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ) = 0; + + // tell the html control if it has key focus currently, controls showing the I-beam cursor in text controls amongst other things + virtual void SetKeyFocus( HHTMLBrowser unBrowserHandle, bool bHasKeyFocus ) = 0; + + // open the current pages html code in the local editor of choice, used for debugging + virtual void ViewSource( HHTMLBrowser unBrowserHandle ) = 0; + // copy the currently selected text on the html page to the local clipboard + virtual void CopyToClipboard( HHTMLBrowser unBrowserHandle ) = 0; + // paste from the local clipboard to the current html page + virtual void PasteFromClipboard( HHTMLBrowser unBrowserHandle ) = 0; + + // find this string in the browser, if bCurrentlyInFind is true then instead cycle to the next matching element + virtual void Find( HHTMLBrowser unBrowserHandle, const char *pchSearchStr, bool bCurrentlyInFind, bool bReverse ) = 0; + // cancel a currently running find + virtual void StopFind( HHTMLBrowser unBrowserHandle ) = 0; + + // return details about the link at position x,y on the current page + virtual void GetLinkAtPosition( HHTMLBrowser unBrowserHandle, int x, int y ) = 0; + + // set a webcookie for the hostname in question + virtual void SetCookie( const char *pchHostname, const char *pchKey, const char *pchValue, const char *pchPath = "/", RTime32 nExpires = 0, bool bSecure = false, bool bHTTPOnly = false ) = 0; + + // Zoom the current page by flZoom ( from 0.0 to 2.0, so to zoom to 120% use 1.2 ), zooming around point X,Y in the page (use 0,0 if you don't care) + virtual void SetPageScaleFactor( HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY ) = 0; + + // Enable/disable low-resource background mode, where javascript and repaint timers are throttled, resources are + // more aggressively purged from memory, and audio/video elements are paused. When background mode is enabled, + // all HTML5 video and audio objects will execute ".pause()" and gain the property "._steam_background_paused = 1". + // When background mode is disabled, any video or audio objects with that property will resume with ".play()". + virtual void SetBackgroundMode( HHTMLBrowser unBrowserHandle, bool bBackgroundMode ) = 0; + + // Scale the output display space by this factor, this is useful when displaying content on high dpi devices. + // Specifies the ratio between physical and logical pixels. + virtual void SetDPIScalingFactor( HHTMLBrowser unBrowserHandle, float flDPIScaling ) = 0; + + // Open HTML/JS developer tools + virtual void OpenDeveloperTools( HHTMLBrowser unBrowserHandle ) = 0; + + // CALLBACKS + // + // These set of functions are used as responses to callback requests + // + + // You MUST call this in response to a HTML_StartRequest_t callback + // Set bAllowed to true to allow this navigation, false to cancel it and stay + // on the current page. You can use this feature to limit the valid pages + // allowed in your HTML surface. + virtual void AllowStartRequest( HHTMLBrowser unBrowserHandle, bool bAllowed ) = 0; + + // You MUST call this in response to a HTML_JSAlert_t or HTML_JSConfirm_t callback + // Set bResult to true for the OK option of a confirm, use false otherwise + virtual void JSDialogResponse( HHTMLBrowser unBrowserHandle, bool bResult ) = 0; + + // You MUST call this in response to a HTML_FileOpenDialog_t callback + virtual void FileLoadDialogResponse( HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles ) = 0; +}; + +#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + +// Global interface accessor +inline ISteamHTMLSurface *SteamHTMLSurface(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTMLSurface *, SteamHTMLSurface, STEAMHTMLSURFACE_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +//----------------------------------------------------------------------------- +// Purpose: The browser is ready for use +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages +STEAM_CALLBACK_END(1) + + +//----------------------------------------------------------------------------- +// Purpose: the browser has a pending paint +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint +STEAM_CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called +STEAM_CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update +STEAM_CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update +STEAM_CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update +STEAM_CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update +STEAM_CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered +STEAM_CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages +STEAM_CALLBACK_END(12) + + +//----------------------------------------------------------------------------- +// Purpose: The browser wanted to navigate to a new page +// NOTE - you MUST call AllowStartRequest in response to this callback +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) +STEAM_CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_END(5) + + +//----------------------------------------------------------------------------- +// Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call) +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface +STEAM_CALLBACK_END(1) + + +//----------------------------------------------------------------------------- +// Purpose: the browser is navigating to a new url +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page +STEAM_CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page +STEAM_CALLBACK_END(6) + + +//----------------------------------------------------------------------------- +// Purpose: A page is finished loading +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // +STEAM_CALLBACK_END(3) + + +//----------------------------------------------------------------------------- +// Purpose: a request to load this url in a new tab +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: the page has a new title now +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: results from a search +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unResults ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // +STEAM_CALLBACK_END(3) + + +//----------------------------------------------------------------------------- +// Purpose: page history status changed on the ability to go backwards and forward +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, bool, bCanGoBack ) // +STEAM_CALLBACK_MEMBER( 2, bool, bCanGoForward ) // +STEAM_CALLBACK_END(3) + + +//----------------------------------------------------------------------------- +// Purpose: details on the visibility and size of the horizontal scrollbar +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool , bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) + + +//----------------------------------------------------------------------------- +// Purpose: details on the visibility and size of the vertical scrollbar +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool, bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) + + +//----------------------------------------------------------------------------- +// Purpose: response to GetLinkAtPosition call +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 3, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 4, bool, bInput ) // +STEAM_CALLBACK_MEMBER( 5, bool, bLiveLink ) // +STEAM_CALLBACK_END(6) + + + +//----------------------------------------------------------------------------- +// Purpose: show a Javascript alert dialog, call JSDialogResponse +// when the user dismisses this dialog (or right away to ignore it) +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: show a Javascript confirmation dialog, call JSDialogResponse +// when the user dismisses this dialog (or right away to ignore it) +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: when received show a file open dialog +// then call FileLoadDialogResponse with the file(s) the user selected. +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // +STEAM_CALLBACK_END(3) + + +//----------------------------------------------------------------------------- +// Purpose: a new html window is being created. +// +// IMPORTANT NOTE: at this time, the API does not allow you to acknowledge or +// render the contents of this new window, so the new window is always destroyed +// immediately. The URL and other parameters of the new window are passed here +// to give your application the opportunity to call CreateBrowser and set up +// a new browser in response to the attempted popup, if you wish to do so. +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load +STEAM_CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle_IGNORE ) +STEAM_CALLBACK_END(7) + + +//----------------------------------------------------------------------------- +// Purpose: change the cursor to display +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EHTMLMouseCursor to display +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: informational message from the browser +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the message text +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: show a tooltip +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the tooltip text +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: update the text of an existing tooltip +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the new tooltip text +STEAM_CALLBACK_END(2) + + +//----------------------------------------------------------------------------- +// Purpose: hide the tooltip you are showing +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_END(1) + + +//----------------------------------------------------------------------------- +// Purpose: The browser has restarted due to an internal failure, use this new handle value +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_BrowserRestarted_t, k_iSteamHTMLSurfaceCallbacks + 27 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this is the new browser handle after the restart +STEAM_CALLBACK_MEMBER( 1, HHTMLBrowser, unOldBrowserHandle ) // the handle for the browser before the restart, if your handle was this then switch to using unBrowserHandle for API calls +STEAM_CALLBACK_END(2) + + +#pragma pack( pop ) + + +#endif // ISTEAMHTMLSURFACE_H diff --git a/lsteamclient/steamworks_sdk_163/isteamhttp.h b/lsteamclient/steamworks_sdk_163/isteamhttp.h new file mode 100644 index 00000000000..fb034ca1dce --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamhttp.h @@ -0,0 +1,219 @@ +//====== Copyright © 1996-2009, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to http client +// +//============================================================================= + +#ifndef ISTEAMHTTP_H +#define ISTEAMHTTP_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" +#include "steamhttpenums.h" + +// Handle to a HTTP Request handle +typedef uint32 HTTPRequestHandle; +#define INVALID_HTTPREQUEST_HANDLE 0 + +typedef uint32 HTTPCookieContainerHandle; +#define INVALID_HTTPCOOKIE_HANDLE 0 + +//----------------------------------------------------------------------------- +// Purpose: interface to http client +//----------------------------------------------------------------------------- +class ISteamHTTP +{ +public: + + // Initializes a new HTTP request, returning a handle to use in further operations on it. Requires + // the method (GET or POST) and the absolute URL for the request. Both http and https are supported, + // so this string must start with http:// or https:// and should look like http://store.steampowered.com/app/250/ + // or such. + virtual HTTPRequestHandle CreateHTTPRequest( EHTTPMethod eHTTPRequestMethod, const char *pchAbsoluteURL ) = 0; + + // Set a context value for the request, which will be returned in the HTTPRequestCompleted_t callback after + // sending the request. This is just so the caller can easily keep track of which callbacks go with which request data. + virtual bool SetHTTPRequestContextValue( HTTPRequestHandle hRequest, uint64 ulContextValue ) = 0; + + // Set a timeout in seconds for the HTTP request, must be called prior to sending the request. Default + // timeout is 60 seconds if you don't call this. Returns false if the handle is invalid, or the request + // has already been sent. + virtual bool SetHTTPRequestNetworkActivityTimeout( HTTPRequestHandle hRequest, uint32 unTimeoutSeconds ) = 0; + + // Set a request header value for the request, must be called prior to sending the request. Will + // return false if the handle is invalid or the request is already sent. + virtual bool SetHTTPRequestHeaderValue( HTTPRequestHandle hRequest, const char *pchHeaderName, const char *pchHeaderValue ) = 0; + + // Set a GET or POST parameter value on the request, which is set will depend on the EHTTPMethod specified + // when creating the request. Must be called prior to sending the request. Will return false if the + // handle is invalid or the request is already sent. + virtual bool SetHTTPRequestGetOrPostParameter( HTTPRequestHandle hRequest, const char *pchParamName, const char *pchParamValue ) = 0; + + // Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on + // asynchronous response via callback. + // + // Note: If the user is in offline mode in Steam, then this will add a only-if-cached cache-control + // header and only do a local cache lookup rather than sending any actual remote request. + virtual bool SendHTTPRequest( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle ) = 0; + + // Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on + // asynchronous response via callback for completion, and listen for HTTPRequestHeadersReceived_t and + // HTTPRequestDataReceived_t callbacks while streaming. + virtual bool SendHTTPRequestAndStreamResponse( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle ) = 0; + + // Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move + // the specified request to the tail of the queue. Returns false on invalid handle, or if the request is not yet sent. + virtual bool DeferHTTPRequest( HTTPRequestHandle hRequest ) = 0; + + // Prioritizes a request you have sent, the actual HTTP client code may have many requests queued, and this will move + // the specified request to the head of the queue. Returns false on invalid handle, or if the request is not yet sent. + virtual bool PrioritizeHTTPRequest( HTTPRequestHandle hRequest ) = 0; + + // Checks if a response header is present in a HTTP response given a handle from HTTPRequestCompleted_t, also + // returns the size of the header value if present so the caller and allocate a correctly sized buffer for + // GetHTTPResponseHeaderValue. + virtual bool GetHTTPResponseHeaderSize( HTTPRequestHandle hRequest, const char *pchHeaderName, uint32 *unResponseHeaderSize ) = 0; + + // Gets header values from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the + // header is not present or if your buffer is too small to contain it's value. You should first call + // BGetHTTPResponseHeaderSize to check for the presence of the header and to find out the size buffer needed. + virtual bool GetHTTPResponseHeaderValue( HTTPRequestHandle hRequest, const char *pchHeaderName, uint8 *pHeaderValueBuffer, uint32 unBufferSize ) = 0; + + // Gets the size of the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the + // handle is invalid. + virtual bool GetHTTPResponseBodySize( HTTPRequestHandle hRequest, uint32 *unBodySize ) = 0; + + // Gets the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the + // handle is invalid or is to a streaming response, or if the provided buffer is not the correct size. Use BGetHTTPResponseBodySize first to find out + // the correct buffer size to use. + virtual bool GetHTTPResponseBodyData( HTTPRequestHandle hRequest, uint8 *pBodyDataBuffer, uint32 unBufferSize ) = 0; + + // Gets the body data from a streaming HTTP response given a handle from HTTPRequestDataReceived_t. Will return false if the + // handle is invalid or is to a non-streaming response (meaning it wasn't sent with SendHTTPRequestAndStreamResponse), or if the buffer size and offset + // do not match the size and offset sent in HTTPRequestDataReceived_t. + virtual bool GetHTTPStreamingResponseBodyData( HTTPRequestHandle hRequest, uint32 cOffset, uint8 *pBodyDataBuffer, uint32 unBufferSize ) = 0; + + // Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t + // callback and finishing using the response. + virtual bool ReleaseHTTPRequest( HTTPRequestHandle hRequest ) = 0; + + // Gets progress on downloading the body for the request. This will be zero unless a response header has already been + // received which included a content-length field. For responses that contain no content-length it will report + // zero for the duration of the request as the size is unknown until the connection closes. + virtual bool GetHTTPDownloadProgressPct( HTTPRequestHandle hRequest, float *pflPercentOut ) = 0; + + // Sets the body for an HTTP Post request. Will fail and return false on a GET request, and will fail if POST params + // have already been set for the request. Setting this raw body makes it the only contents for the post, the pchContentType + // parameter will set the content-type header for the request so the server may know how to interpret the body. + virtual bool SetHTTPRequestRawPostBody( HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBody, uint32 unBodyLen ) = 0; + + // Creates a cookie container handle which you must later free with ReleaseCookieContainer(). If bAllowResponsesToModify=true + // than any response to your requests using this cookie container may add new cookies which may be transmitted with + // future requests. If bAllowResponsesToModify=false than only cookies you explicitly set will be sent. This API is just for + // during process lifetime, after steam restarts no cookies are persisted and you have no way to access the cookie container across + // repeat executions of your process. + virtual HTTPCookieContainerHandle CreateCookieContainer( bool bAllowResponsesToModify ) = 0; + + // Release a cookie container you are finished using, freeing it's memory + virtual bool ReleaseCookieContainer( HTTPCookieContainerHandle hCookieContainer ) = 0; + + // Adds a cookie to the specified cookie container that will be used with future requests. + virtual bool SetCookie( HTTPCookieContainerHandle hCookieContainer, const char *pchHost, const char *pchUrl, const char *pchCookie ) = 0; + + // Set the cookie container to use for a HTTP request + virtual bool SetHTTPRequestCookieContainer( HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer ) = 0; + + // Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end + virtual bool SetHTTPRequestUserAgentInfo( HTTPRequestHandle hRequest, const char *pchUserAgentInfo ) = 0; + + // Disable or re-enable verification of SSL/TLS certificates. + // By default, certificates are checked for all HTTPS requests. + virtual bool SetHTTPRequestRequiresVerifiedCertificate( HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ) = 0; + + // Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout + // which can bump everytime we get more data + virtual bool SetHTTPRequestAbsoluteTimeoutMS( HTTPRequestHandle hRequest, uint32 unMilliseconds ) = 0; + + // Check if the reason the request failed was because we timed it out (rather than some harder failure) + virtual bool GetHTTPRequestWasTimedOut( HTTPRequestHandle hRequest, bool *pbWasTimedOut ) = 0; +}; + +#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION003" + +// Global interface accessor +inline ISteamHTTP *SteamHTTP(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamHTTP, STEAMHTTP_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamHTTP *SteamGameServerHTTP(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamGameServerHTTP, STEAMHTTP_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +struct HTTPRequestCompleted_t +{ + enum { k_iCallback = k_iSteamHTTPCallbacks + 1 }; + + // Handle value for the request that has completed. + HTTPRequestHandle m_hRequest; + + // Context value that the user defined on the request that this callback is associated with, 0 if + // no context value was set. + uint64 m_ulContextValue; + + // This will be true if we actually got any sort of response from the server (even an error). + // It will be false if we failed due to an internal error or client side network failure. + bool m_bRequestSuccessful; + + // Will be the HTTP status code value returned by the server, k_EHTTPStatusCode200OK is the normal + // OK response, if you get something else you probably need to treat it as a failure. + EHTTPStatusCode m_eStatusCode; + + uint32 m_unBodySize; // Same as GetHTTPResponseBodySize() +}; + + +struct HTTPRequestHeadersReceived_t +{ + enum { k_iCallback = k_iSteamHTTPCallbacks + 2 }; + + // Handle value for the request that has received headers. + HTTPRequestHandle m_hRequest; + + // Context value that the user defined on the request that this callback is associated with, 0 if + // no context value was set. + uint64 m_ulContextValue; +}; + +struct HTTPRequestDataReceived_t +{ + enum { k_iCallback = k_iSteamHTTPCallbacks + 3 }; + + // Handle value for the request that has received data. + HTTPRequestHandle m_hRequest; + + // Context value that the user defined on the request that this callback is associated with, 0 if + // no context value was set. + uint64 m_ulContextValue; + + + // Offset to provide to GetHTTPStreamingResponseBodyData to get this chunk of data + uint32 m_cOffset; + + // Size to provide to GetHTTPStreamingResponseBodyData to get this chunk of data + uint32 m_cBytesReceived; +}; + + +#pragma pack( pop ) + +#endif // ISTEAMHTTP_H \ No newline at end of file diff --git a/lsteamclient/steamworks_sdk_163/isteaminput.h b/lsteamclient/steamworks_sdk_163/isteaminput.h new file mode 100644 index 00000000000..320d9b45a69 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteaminput.h @@ -0,0 +1,1091 @@ +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller +// +//============================================================================= + +#ifndef ISTEAMINPUT_H +#define ISTEAMINPUT_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +#define STEAM_INPUT_MAX_COUNT 16 + +#define STEAM_INPUT_MAX_ANALOG_ACTIONS 24 + +#define STEAM_INPUT_MAX_DIGITAL_ACTIONS 256 + +#define STEAM_INPUT_MAX_ORIGINS 8 + +#define STEAM_INPUT_MAX_ACTIVE_LAYERS 16 + +// When sending an option to a specific controller handle, you can send to all devices via this command +#define STEAM_INPUT_HANDLE_ALL_CONTROLLERS UINT64_MAX + +#define STEAM_INPUT_MIN_ANALOG_ACTION_DATA -1.0f +#define STEAM_INPUT_MAX_ANALOG_ACTION_DATA 1.0f + +enum EInputSourceMode +{ + k_EInputSourceMode_None, + k_EInputSourceMode_Dpad, + k_EInputSourceMode_Buttons, + k_EInputSourceMode_FourButtons, + k_EInputSourceMode_AbsoluteMouse, + k_EInputSourceMode_RelativeMouse, + k_EInputSourceMode_JoystickMove, + k_EInputSourceMode_JoystickMouse, + k_EInputSourceMode_JoystickCamera, + k_EInputSourceMode_ScrollWheel, + k_EInputSourceMode_Trigger, + k_EInputSourceMode_TouchMenu, + k_EInputSourceMode_MouseJoystick, + k_EInputSourceMode_MouseRegion, + k_EInputSourceMode_RadialMenu, + k_EInputSourceMode_SingleButton, + k_EInputSourceMode_Switches +}; + +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead. +// Versions of Steam that add new controller types in the future will extend this enum so if you're +// using a lookup table please check the bounds of any origins returned by Steam. +enum EInputActionOrigin +{ + // Steam Controller + k_EInputActionOrigin_None, + k_EInputActionOrigin_SteamController_A, + k_EInputActionOrigin_SteamController_B, + k_EInputActionOrigin_SteamController_X, + k_EInputActionOrigin_SteamController_Y, + k_EInputActionOrigin_SteamController_LeftBumper, + k_EInputActionOrigin_SteamController_RightBumper, + k_EInputActionOrigin_SteamController_LeftGrip, + k_EInputActionOrigin_SteamController_RightGrip, + k_EInputActionOrigin_SteamController_Start, + k_EInputActionOrigin_SteamController_Back, + k_EInputActionOrigin_SteamController_LeftPad_Touch, + k_EInputActionOrigin_SteamController_LeftPad_Swipe, + k_EInputActionOrigin_SteamController_LeftPad_Click, + k_EInputActionOrigin_SteamController_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamController_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamController_LeftPad_DPadWest, + k_EInputActionOrigin_SteamController_LeftPad_DPadEast, + k_EInputActionOrigin_SteamController_RightPad_Touch, + k_EInputActionOrigin_SteamController_RightPad_Swipe, + k_EInputActionOrigin_SteamController_RightPad_Click, + k_EInputActionOrigin_SteamController_RightPad_DPadNorth, + k_EInputActionOrigin_SteamController_RightPad_DPadSouth, + k_EInputActionOrigin_SteamController_RightPad_DPadWest, + k_EInputActionOrigin_SteamController_RightPad_DPadEast, + k_EInputActionOrigin_SteamController_LeftTrigger_Pull, + k_EInputActionOrigin_SteamController_LeftTrigger_Click, + k_EInputActionOrigin_SteamController_RightTrigger_Pull, + k_EInputActionOrigin_SteamController_RightTrigger_Click, + k_EInputActionOrigin_SteamController_LeftStick_Move, + k_EInputActionOrigin_SteamController_LeftStick_Click, + k_EInputActionOrigin_SteamController_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamController_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamController_LeftStick_DPadWest, + k_EInputActionOrigin_SteamController_LeftStick_DPadEast, + k_EInputActionOrigin_SteamController_Gyro_Move, + k_EInputActionOrigin_SteamController_Gyro_Pitch, + k_EInputActionOrigin_SteamController_Gyro_Yaw, + k_EInputActionOrigin_SteamController_Gyro_Roll, + k_EInputActionOrigin_SteamController_Reserved0, + k_EInputActionOrigin_SteamController_Reserved1, + k_EInputActionOrigin_SteamController_Reserved2, + k_EInputActionOrigin_SteamController_Reserved3, + k_EInputActionOrigin_SteamController_Reserved4, + k_EInputActionOrigin_SteamController_Reserved5, + k_EInputActionOrigin_SteamController_Reserved6, + k_EInputActionOrigin_SteamController_Reserved7, + k_EInputActionOrigin_SteamController_Reserved8, + k_EInputActionOrigin_SteamController_Reserved9, + k_EInputActionOrigin_SteamController_Reserved10, + + // PS4 Dual Shock + k_EInputActionOrigin_PS4_X, + k_EInputActionOrigin_PS4_Circle, + k_EInputActionOrigin_PS4_Triangle, + k_EInputActionOrigin_PS4_Square, + k_EInputActionOrigin_PS4_LeftBumper, + k_EInputActionOrigin_PS4_RightBumper, + k_EInputActionOrigin_PS4_Options, //Start + k_EInputActionOrigin_PS4_Share, //Back + k_EInputActionOrigin_PS4_LeftPad_Touch, + k_EInputActionOrigin_PS4_LeftPad_Swipe, + k_EInputActionOrigin_PS4_LeftPad_Click, + k_EInputActionOrigin_PS4_LeftPad_DPadNorth, + k_EInputActionOrigin_PS4_LeftPad_DPadSouth, + k_EInputActionOrigin_PS4_LeftPad_DPadWest, + k_EInputActionOrigin_PS4_LeftPad_DPadEast, + k_EInputActionOrigin_PS4_RightPad_Touch, + k_EInputActionOrigin_PS4_RightPad_Swipe, + k_EInputActionOrigin_PS4_RightPad_Click, + k_EInputActionOrigin_PS4_RightPad_DPadNorth, + k_EInputActionOrigin_PS4_RightPad_DPadSouth, + k_EInputActionOrigin_PS4_RightPad_DPadWest, + k_EInputActionOrigin_PS4_RightPad_DPadEast, + k_EInputActionOrigin_PS4_CenterPad_Touch, + k_EInputActionOrigin_PS4_CenterPad_Swipe, + k_EInputActionOrigin_PS4_CenterPad_Click, + k_EInputActionOrigin_PS4_CenterPad_DPadNorth, + k_EInputActionOrigin_PS4_CenterPad_DPadSouth, + k_EInputActionOrigin_PS4_CenterPad_DPadWest, + k_EInputActionOrigin_PS4_CenterPad_DPadEast, + k_EInputActionOrigin_PS4_LeftTrigger_Pull, + k_EInputActionOrigin_PS4_LeftTrigger_Click, + k_EInputActionOrigin_PS4_RightTrigger_Pull, + k_EInputActionOrigin_PS4_RightTrigger_Click, + k_EInputActionOrigin_PS4_LeftStick_Move, + k_EInputActionOrigin_PS4_LeftStick_Click, + k_EInputActionOrigin_PS4_LeftStick_DPadNorth, + k_EInputActionOrigin_PS4_LeftStick_DPadSouth, + k_EInputActionOrigin_PS4_LeftStick_DPadWest, + k_EInputActionOrigin_PS4_LeftStick_DPadEast, + k_EInputActionOrigin_PS4_RightStick_Move, + k_EInputActionOrigin_PS4_RightStick_Click, + k_EInputActionOrigin_PS4_RightStick_DPadNorth, + k_EInputActionOrigin_PS4_RightStick_DPadSouth, + k_EInputActionOrigin_PS4_RightStick_DPadWest, + k_EInputActionOrigin_PS4_RightStick_DPadEast, + k_EInputActionOrigin_PS4_DPad_North, + k_EInputActionOrigin_PS4_DPad_South, + k_EInputActionOrigin_PS4_DPad_West, + k_EInputActionOrigin_PS4_DPad_East, + k_EInputActionOrigin_PS4_Gyro_Move, + k_EInputActionOrigin_PS4_Gyro_Pitch, + k_EInputActionOrigin_PS4_Gyro_Yaw, + k_EInputActionOrigin_PS4_Gyro_Roll, + k_EInputActionOrigin_PS4_DPad_Move, + k_EInputActionOrigin_PS4_Reserved1, + k_EInputActionOrigin_PS4_Reserved2, + k_EInputActionOrigin_PS4_Reserved3, + k_EInputActionOrigin_PS4_Reserved4, + k_EInputActionOrigin_PS4_Reserved5, + k_EInputActionOrigin_PS4_Reserved6, + k_EInputActionOrigin_PS4_Reserved7, + k_EInputActionOrigin_PS4_Reserved8, + k_EInputActionOrigin_PS4_Reserved9, + k_EInputActionOrigin_PS4_Reserved10, + + // XBox One + k_EInputActionOrigin_XBoxOne_A, + k_EInputActionOrigin_XBoxOne_B, + k_EInputActionOrigin_XBoxOne_X, + k_EInputActionOrigin_XBoxOne_Y, + k_EInputActionOrigin_XBoxOne_LeftBumper, + k_EInputActionOrigin_XBoxOne_RightBumper, + k_EInputActionOrigin_XBoxOne_Menu, //Start + k_EInputActionOrigin_XBoxOne_View, //Back + k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EInputActionOrigin_XBoxOne_LeftTrigger_Click, + k_EInputActionOrigin_XBoxOne_RightTrigger_Pull, + k_EInputActionOrigin_XBoxOne_RightTrigger_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_Move, + k_EInputActionOrigin_XBoxOne_LeftStick_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EInputActionOrigin_XBoxOne_RightStick_Move, + k_EInputActionOrigin_XBoxOne_RightStick_Click, + k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadWest, + k_EInputActionOrigin_XBoxOne_RightStick_DPadEast, + k_EInputActionOrigin_XBoxOne_DPad_North, + k_EInputActionOrigin_XBoxOne_DPad_South, + k_EInputActionOrigin_XBoxOne_DPad_West, + k_EInputActionOrigin_XBoxOne_DPad_East, + k_EInputActionOrigin_XBoxOne_DPad_Move, + k_EInputActionOrigin_XBoxOne_LeftGrip_Lower, + k_EInputActionOrigin_XBoxOne_LeftGrip_Upper, + k_EInputActionOrigin_XBoxOne_RightGrip_Lower, + k_EInputActionOrigin_XBoxOne_RightGrip_Upper, + k_EInputActionOrigin_XBoxOne_Share, // Xbox Series X controllers only + k_EInputActionOrigin_XBoxOne_Reserved6, + k_EInputActionOrigin_XBoxOne_Reserved7, + k_EInputActionOrigin_XBoxOne_Reserved8, + k_EInputActionOrigin_XBoxOne_Reserved9, + k_EInputActionOrigin_XBoxOne_Reserved10, + + // XBox 360 + k_EInputActionOrigin_XBox360_A, + k_EInputActionOrigin_XBox360_B, + k_EInputActionOrigin_XBox360_X, + k_EInputActionOrigin_XBox360_Y, + k_EInputActionOrigin_XBox360_LeftBumper, + k_EInputActionOrigin_XBox360_RightBumper, + k_EInputActionOrigin_XBox360_Start, //Start + k_EInputActionOrigin_XBox360_Back, //Back + k_EInputActionOrigin_XBox360_LeftTrigger_Pull, + k_EInputActionOrigin_XBox360_LeftTrigger_Click, + k_EInputActionOrigin_XBox360_RightTrigger_Pull, + k_EInputActionOrigin_XBox360_RightTrigger_Click, + k_EInputActionOrigin_XBox360_LeftStick_Move, + k_EInputActionOrigin_XBox360_LeftStick_Click, + k_EInputActionOrigin_XBox360_LeftStick_DPadNorth, + k_EInputActionOrigin_XBox360_LeftStick_DPadSouth, + k_EInputActionOrigin_XBox360_LeftStick_DPadWest, + k_EInputActionOrigin_XBox360_LeftStick_DPadEast, + k_EInputActionOrigin_XBox360_RightStick_Move, + k_EInputActionOrigin_XBox360_RightStick_Click, + k_EInputActionOrigin_XBox360_RightStick_DPadNorth, + k_EInputActionOrigin_XBox360_RightStick_DPadSouth, + k_EInputActionOrigin_XBox360_RightStick_DPadWest, + k_EInputActionOrigin_XBox360_RightStick_DPadEast, + k_EInputActionOrigin_XBox360_DPad_North, + k_EInputActionOrigin_XBox360_DPad_South, + k_EInputActionOrigin_XBox360_DPad_West, + k_EInputActionOrigin_XBox360_DPad_East, + k_EInputActionOrigin_XBox360_DPad_Move, + k_EInputActionOrigin_XBox360_Reserved1, + k_EInputActionOrigin_XBox360_Reserved2, + k_EInputActionOrigin_XBox360_Reserved3, + k_EInputActionOrigin_XBox360_Reserved4, + k_EInputActionOrigin_XBox360_Reserved5, + k_EInputActionOrigin_XBox360_Reserved6, + k_EInputActionOrigin_XBox360_Reserved7, + k_EInputActionOrigin_XBox360_Reserved8, + k_EInputActionOrigin_XBox360_Reserved9, + k_EInputActionOrigin_XBox360_Reserved10, + + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EInputActionOrigin_Switch_A, + k_EInputActionOrigin_Switch_B, + k_EInputActionOrigin_Switch_X, + k_EInputActionOrigin_Switch_Y, + k_EInputActionOrigin_Switch_LeftBumper, + k_EInputActionOrigin_Switch_RightBumper, + k_EInputActionOrigin_Switch_Plus, //Start + k_EInputActionOrigin_Switch_Minus, //Back + k_EInputActionOrigin_Switch_Capture, + k_EInputActionOrigin_Switch_LeftTrigger_Pull, + k_EInputActionOrigin_Switch_LeftTrigger_Click, + k_EInputActionOrigin_Switch_RightTrigger_Pull, + k_EInputActionOrigin_Switch_RightTrigger_Click, + k_EInputActionOrigin_Switch_LeftStick_Move, + k_EInputActionOrigin_Switch_LeftStick_Click, + k_EInputActionOrigin_Switch_LeftStick_DPadNorth, + k_EInputActionOrigin_Switch_LeftStick_DPadSouth, + k_EInputActionOrigin_Switch_LeftStick_DPadWest, + k_EInputActionOrigin_Switch_LeftStick_DPadEast, + k_EInputActionOrigin_Switch_RightStick_Move, + k_EInputActionOrigin_Switch_RightStick_Click, + k_EInputActionOrigin_Switch_RightStick_DPadNorth, + k_EInputActionOrigin_Switch_RightStick_DPadSouth, + k_EInputActionOrigin_Switch_RightStick_DPadWest, + k_EInputActionOrigin_Switch_RightStick_DPadEast, + k_EInputActionOrigin_Switch_DPad_North, + k_EInputActionOrigin_Switch_DPad_South, + k_EInputActionOrigin_Switch_DPad_West, + k_EInputActionOrigin_Switch_DPad_East, + k_EInputActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_DPad_Move, + k_EInputActionOrigin_Switch_Reserved1, + k_EInputActionOrigin_Switch_Reserved2, + k_EInputActionOrigin_Switch_Reserved3, + k_EInputActionOrigin_Switch_Reserved4, + k_EInputActionOrigin_Switch_Reserved5, + k_EInputActionOrigin_Switch_Reserved6, + k_EInputActionOrigin_Switch_Reserved7, + k_EInputActionOrigin_Switch_Reserved8, + k_EInputActionOrigin_Switch_Reserved9, + k_EInputActionOrigin_Switch_Reserved10, + + // Switch JoyCon Specific + k_EInputActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_LeftGyro_Move, + k_EInputActionOrigin_Switch_LeftGyro_Pitch, + k_EInputActionOrigin_Switch_LeftGyro_Yaw, + k_EInputActionOrigin_Switch_LeftGyro_Roll, + k_EInputActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EInputActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + k_EInputActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EInputActionOrigin_Switch_JoyConButton_E, // X + k_EInputActionOrigin_Switch_JoyConButton_S, // A + k_EInputActionOrigin_Switch_JoyConButton_W, // B + k_EInputActionOrigin_Switch_Reserved15, + k_EInputActionOrigin_Switch_Reserved16, + k_EInputActionOrigin_Switch_Reserved17, + k_EInputActionOrigin_Switch_Reserved18, + k_EInputActionOrigin_Switch_Reserved19, + k_EInputActionOrigin_Switch_Reserved20, + + // Added in SDK 1.51 + k_EInputActionOrigin_PS5_X, + k_EInputActionOrigin_PS5_Circle, + k_EInputActionOrigin_PS5_Triangle, + k_EInputActionOrigin_PS5_Square, + k_EInputActionOrigin_PS5_LeftBumper, + k_EInputActionOrigin_PS5_RightBumper, + k_EInputActionOrigin_PS5_Option, //Start + k_EInputActionOrigin_PS5_Create, //Back + k_EInputActionOrigin_PS5_Mute, + k_EInputActionOrigin_PS5_LeftPad_Touch, + k_EInputActionOrigin_PS5_LeftPad_Swipe, + k_EInputActionOrigin_PS5_LeftPad_Click, + k_EInputActionOrigin_PS5_LeftPad_DPadNorth, + k_EInputActionOrigin_PS5_LeftPad_DPadSouth, + k_EInputActionOrigin_PS5_LeftPad_DPadWest, + k_EInputActionOrigin_PS5_LeftPad_DPadEast, + k_EInputActionOrigin_PS5_RightPad_Touch, + k_EInputActionOrigin_PS5_RightPad_Swipe, + k_EInputActionOrigin_PS5_RightPad_Click, + k_EInputActionOrigin_PS5_RightPad_DPadNorth, + k_EInputActionOrigin_PS5_RightPad_DPadSouth, + k_EInputActionOrigin_PS5_RightPad_DPadWest, + k_EInputActionOrigin_PS5_RightPad_DPadEast, + k_EInputActionOrigin_PS5_CenterPad_Touch, + k_EInputActionOrigin_PS5_CenterPad_Swipe, + k_EInputActionOrigin_PS5_CenterPad_Click, + k_EInputActionOrigin_PS5_CenterPad_DPadNorth, + k_EInputActionOrigin_PS5_CenterPad_DPadSouth, + k_EInputActionOrigin_PS5_CenterPad_DPadWest, + k_EInputActionOrigin_PS5_CenterPad_DPadEast, + k_EInputActionOrigin_PS5_LeftTrigger_Pull, + k_EInputActionOrigin_PS5_LeftTrigger_Click, + k_EInputActionOrigin_PS5_RightTrigger_Pull, + k_EInputActionOrigin_PS5_RightTrigger_Click, + k_EInputActionOrigin_PS5_LeftStick_Move, + k_EInputActionOrigin_PS5_LeftStick_Click, + k_EInputActionOrigin_PS5_LeftStick_DPadNorth, + k_EInputActionOrigin_PS5_LeftStick_DPadSouth, + k_EInputActionOrigin_PS5_LeftStick_DPadWest, + k_EInputActionOrigin_PS5_LeftStick_DPadEast, + k_EInputActionOrigin_PS5_RightStick_Move, + k_EInputActionOrigin_PS5_RightStick_Click, + k_EInputActionOrigin_PS5_RightStick_DPadNorth, + k_EInputActionOrigin_PS5_RightStick_DPadSouth, + k_EInputActionOrigin_PS5_RightStick_DPadWest, + k_EInputActionOrigin_PS5_RightStick_DPadEast, + k_EInputActionOrigin_PS5_DPad_North, + k_EInputActionOrigin_PS5_DPad_South, + k_EInputActionOrigin_PS5_DPad_West, + k_EInputActionOrigin_PS5_DPad_East, + k_EInputActionOrigin_PS5_Gyro_Move, + k_EInputActionOrigin_PS5_Gyro_Pitch, + k_EInputActionOrigin_PS5_Gyro_Yaw, + k_EInputActionOrigin_PS5_Gyro_Roll, + k_EInputActionOrigin_PS5_DPad_Move, + k_EInputActionOrigin_PS5_LeftGrip, + k_EInputActionOrigin_PS5_RightGrip, + k_EInputActionOrigin_PS5_LeftFn, + k_EInputActionOrigin_PS5_RightFn, + k_EInputActionOrigin_PS5_Reserved5, + k_EInputActionOrigin_PS5_Reserved6, + k_EInputActionOrigin_PS5_Reserved7, + k_EInputActionOrigin_PS5_Reserved8, + k_EInputActionOrigin_PS5_Reserved9, + k_EInputActionOrigin_PS5_Reserved10, + k_EInputActionOrigin_PS5_Reserved11, + k_EInputActionOrigin_PS5_Reserved12, + k_EInputActionOrigin_PS5_Reserved13, + k_EInputActionOrigin_PS5_Reserved14, + k_EInputActionOrigin_PS5_Reserved15, + k_EInputActionOrigin_PS5_Reserved16, + k_EInputActionOrigin_PS5_Reserved17, + k_EInputActionOrigin_PS5_Reserved18, + k_EInputActionOrigin_PS5_Reserved19, + k_EInputActionOrigin_PS5_Reserved20, + + // Added in SDK 1.53 + k_EInputActionOrigin_SteamDeck_A, + k_EInputActionOrigin_SteamDeck_B, + k_EInputActionOrigin_SteamDeck_X, + k_EInputActionOrigin_SteamDeck_Y, + k_EInputActionOrigin_SteamDeck_L1, + k_EInputActionOrigin_SteamDeck_R1, + k_EInputActionOrigin_SteamDeck_Menu, + k_EInputActionOrigin_SteamDeck_View, + k_EInputActionOrigin_SteamDeck_LeftPad_Touch, + k_EInputActionOrigin_SteamDeck_LeftPad_Swipe, + k_EInputActionOrigin_SteamDeck_LeftPad_Click, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EInputActionOrigin_SteamDeck_RightPad_Touch, + k_EInputActionOrigin_SteamDeck_RightPad_Swipe, + k_EInputActionOrigin_SteamDeck_RightPad_Click, + k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadWest, + k_EInputActionOrigin_SteamDeck_RightPad_DPadEast, + k_EInputActionOrigin_SteamDeck_L2_SoftPull, + k_EInputActionOrigin_SteamDeck_L2, + k_EInputActionOrigin_SteamDeck_R2_SoftPull, + k_EInputActionOrigin_SteamDeck_R2, + k_EInputActionOrigin_SteamDeck_LeftStick_Move, + k_EInputActionOrigin_SteamDeck_L3, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EInputActionOrigin_SteamDeck_LeftStick_Touch, + k_EInputActionOrigin_SteamDeck_RightStick_Move, + k_EInputActionOrigin_SteamDeck_R3, + k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadWest, + k_EInputActionOrigin_SteamDeck_RightStick_DPadEast, + k_EInputActionOrigin_SteamDeck_RightStick_Touch, + k_EInputActionOrigin_SteamDeck_L4, + k_EInputActionOrigin_SteamDeck_R4, + k_EInputActionOrigin_SteamDeck_L5, + k_EInputActionOrigin_SteamDeck_R5, + k_EInputActionOrigin_SteamDeck_DPad_Move, + k_EInputActionOrigin_SteamDeck_DPad_North, + k_EInputActionOrigin_SteamDeck_DPad_South, + k_EInputActionOrigin_SteamDeck_DPad_West, + k_EInputActionOrigin_SteamDeck_DPad_East, + k_EInputActionOrigin_SteamDeck_Gyro_Move, + k_EInputActionOrigin_SteamDeck_Gyro_Pitch, + k_EInputActionOrigin_SteamDeck_Gyro_Yaw, + k_EInputActionOrigin_SteamDeck_Gyro_Roll, + k_EInputActionOrigin_SteamDeck_Reserved1, + k_EInputActionOrigin_SteamDeck_Reserved2, + k_EInputActionOrigin_SteamDeck_Reserved3, + k_EInputActionOrigin_SteamDeck_Reserved4, + k_EInputActionOrigin_SteamDeck_Reserved5, + k_EInputActionOrigin_SteamDeck_Reserved6, + k_EInputActionOrigin_SteamDeck_Reserved7, + k_EInputActionOrigin_SteamDeck_Reserved8, + k_EInputActionOrigin_SteamDeck_Reserved9, + k_EInputActionOrigin_SteamDeck_Reserved10, + k_EInputActionOrigin_SteamDeck_Reserved11, + k_EInputActionOrigin_SteamDeck_Reserved12, + k_EInputActionOrigin_SteamDeck_Reserved13, + k_EInputActionOrigin_SteamDeck_Reserved14, + k_EInputActionOrigin_SteamDeck_Reserved15, + k_EInputActionOrigin_SteamDeck_Reserved16, + k_EInputActionOrigin_SteamDeck_Reserved17, + k_EInputActionOrigin_SteamDeck_Reserved18, + k_EInputActionOrigin_SteamDeck_Reserved19, + k_EInputActionOrigin_SteamDeck_Reserved20, + + k_EInputActionOrigin_Horipad_M1, + k_EInputActionOrigin_Horipad_M2, + k_EInputActionOrigin_Horipad_L4, + k_EInputActionOrigin_Horipad_R4, + + k_EInputActionOrigin_LenovoLegionGo_A, + k_EInputActionOrigin_LenovoLegionGo_B, + k_EInputActionOrigin_LenovoLegionGo_X, + k_EInputActionOrigin_LenovoLegionGo_Y, + k_EInputActionOrigin_LenovoLegionGo_LB, + k_EInputActionOrigin_LenovoLegionGo_RB, + k_EInputActionOrigin_LenovoLegionGo_Menu, + k_EInputActionOrigin_LenovoLegionGo_View, + k_EInputActionOrigin_LenovoLegionGo_LeftPad_Touch, // Left pad is only present on the original Legion Go + k_EInputActionOrigin_LenovoLegionGo_LeftPad_Swipe, + k_EInputActionOrigin_LenovoLegionGo_LeftPad_Click, + k_EInputActionOrigin_LenovoLegionGo_LeftPad_DPadNorth, + k_EInputActionOrigin_LenovoLegionGo_LeftPad_DPadSouth, + k_EInputActionOrigin_LenovoLegionGo_LeftPad_DPadWest, + k_EInputActionOrigin_LenovoLegionGo_LeftPad_DPadEast, + k_EInputActionOrigin_LenovoLegionGo_RightPad_Touch, + k_EInputActionOrigin_LenovoLegionGo_RightPad_Swipe, + k_EInputActionOrigin_LenovoLegionGo_RightPad_Click, + k_EInputActionOrigin_LenovoLegionGo_RightPad_DPadNorth, + k_EInputActionOrigin_LenovoLegionGo_RightPad_DPadSouth, + k_EInputActionOrigin_LenovoLegionGo_RightPad_DPadWest, + k_EInputActionOrigin_LenovoLegionGo_RightPad_DPadEast, + k_EInputActionOrigin_LenovoLegionGo_LT_SoftPull, + k_EInputActionOrigin_LenovoLegionGo_LT, + k_EInputActionOrigin_LenovoLegionGo_RT_SoftPull, + k_EInputActionOrigin_LenovoLegionGo_RT, + k_EInputActionOrigin_LenovoLegionGo_LeftStick_Move, + k_EInputActionOrigin_LenovoLegionGo_LS, + k_EInputActionOrigin_LenovoLegionGo_LeftStick_DPadNorth, + k_EInputActionOrigin_LenovoLegionGo_LeftStick_DPadSouth, + k_EInputActionOrigin_LenovoLegionGo_LeftStick_DPadWest, + k_EInputActionOrigin_LenovoLegionGo_LeftStick_DPadEast, + k_EInputActionOrigin_LenovoLegionGo_RightStick_Move, + k_EInputActionOrigin_LenovoLegionGo_RS, + k_EInputActionOrigin_LenovoLegionGo_RightStick_DPadNorth, + k_EInputActionOrigin_LenovoLegionGo_RightStick_DPadSouth, + k_EInputActionOrigin_LenovoLegionGo_RightStick_DPadWest, + k_EInputActionOrigin_LenovoLegionGo_RightStick_DPadEast, + k_EInputActionOrigin_LenovoLegionGo_Y1, + k_EInputActionOrigin_LenovoLegionGo_Y2, + k_EInputActionOrigin_LenovoLegionGo_DPad_Move, + k_EInputActionOrigin_LenovoLegionGo_DPad_North, + k_EInputActionOrigin_LenovoLegionGo_DPad_South, + k_EInputActionOrigin_LenovoLegionGo_DPad_West, + k_EInputActionOrigin_LenovoLegionGo_DPad_East, + k_EInputActionOrigin_LenovoLegionGo_Gyro_Move, + k_EInputActionOrigin_LenovoLegionGo_Gyro_Pitch, + k_EInputActionOrigin_LenovoLegionGo_Gyro_Yaw, + k_EInputActionOrigin_LenovoLegionGo_Gyro_Roll, + k_EInputActionOrigin_LenovoLegionGo_Reserved1, + k_EInputActionOrigin_LenovoLegionGo_Reserved2, + k_EInputActionOrigin_LenovoLegionGo_Reserved3, + k_EInputActionOrigin_LenovoLegionGo_Reserved4, + k_EInputActionOrigin_LenovoLegionGo_Reserved5, + k_EInputActionOrigin_LenovoLegionGo_Reserved6, + k_EInputActionOrigin_LenovoLegionGo_Reserved7, + k_EInputActionOrigin_LenovoLegionGo_Reserved8, + k_EInputActionOrigin_LenovoLegionGo_Reserved9, + k_EInputActionOrigin_LenovoLegionGo_Reserved10, + k_EInputActionOrigin_LenovoLegionGo_Reserved11, + k_EInputActionOrigin_LenovoLegionGo_Reserved12, + k_EInputActionOrigin_LenovoLegionGo_Reserved13, + k_EInputActionOrigin_LenovoLegionGo_Reserved14, + k_EInputActionOrigin_LenovoLegionGo_Reserved15, + k_EInputActionOrigin_LenovoLegionGo_Reserved16, + k_EInputActionOrigin_LenovoLegionGo_Reserved17, + k_EInputActionOrigin_LenovoLegionGo_Reserved18, + k_EInputActionOrigin_LenovoLegionGo_Reserved19, + k_EInputActionOrigin_LenovoLegionGo_Reserved20, + + k_EInputActionOrigin_Generic_L4, + k_EInputActionOrigin_Generic_R4, + k_EInputActionOrigin_Generic_L5, + k_EInputActionOrigin_Generic_R5, + k_EInputActionOrigin_Generic_PL, + k_EInputActionOrigin_Generic_PR, + k_EInputActionOrigin_Generic_C, + k_EInputActionOrigin_Generic_Z, + k_EInputActionOrigin_Generic_MISC1, + k_EInputActionOrigin_Generic_MISC2, + k_EInputActionOrigin_Generic_MISC3, + k_EInputActionOrigin_Generic_MISC4, + k_EInputActionOrigin_Generic_MISC5, + k_EInputActionOrigin_Generic_MISC6, + k_EInputActionOrigin_Generic_MISC7, + k_EInputActionOrigin_Generic_MISC8, + + k_EInputActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EInputActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, + k_EXboxOrigin_Count, +}; + +enum ESteamControllerPad +{ + k_ESteamControllerPad_Left, + k_ESteamControllerPad_Right +}; + +enum EControllerHapticLocation +{ + k_EControllerHapticLocation_Left = ( 1 << k_ESteamControllerPad_Left ), + k_EControllerHapticLocation_Right = ( 1 << k_ESteamControllerPad_Right ), + k_EControllerHapticLocation_Both = ( 1 << k_ESteamControllerPad_Left | 1 << k_ESteamControllerPad_Right ), +}; + +enum EControllerHapticType +{ + k_EControllerHapticType_Off, + k_EControllerHapticType_Tick, + k_EControllerHapticType_Click, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_SteamDeckController, // Added in SDK 153 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; + +// Individual values are used by the GetSessionInputConfigurationSettings bitmask +enum ESteamInputConfigurationEnableType +{ + k_ESteamInputConfigurationEnableType_None = 0x0000, + k_ESteamInputConfigurationEnableType_Playstation = 0x0001, + k_ESteamInputConfigurationEnableType_Xbox = 0x0002, + k_ESteamInputConfigurationEnableType_Generic = 0x0004, + k_ESteamInputConfigurationEnableType_Switch = 0x0008, +}; + +// These values are passed into SetLEDColor +enum ESteamInputLEDFlag +{ + k_ESteamInputLEDFlag_SetColor, + // Restore the LED color to the user's preference setting as set in the controller personalization menu. + // This also happens automatically on exit of your game. + k_ESteamInputLEDFlag_RestoreUserDefault +}; + +// These values are passed into GetGlyphPNGForActionOrigin +enum ESteamInputGlyphSize +{ + k_ESteamInputGlyphSize_Small, // 32x32 pixels + k_ESteamInputGlyphSize_Medium, // 128x128 pixels + k_ESteamInputGlyphSize_Large, // 256x256 pixels + k_ESteamInputGlyphSize_Count, +}; + +enum ESteamInputGlyphStyle +{ + // Base-styles - cannot mix + ESteamInputGlyphStyle_Knockout = 0x0, // Face buttons will have colored labels/outlines on a knocked out background + // Rest of inputs will have white detail/borders on a knocked out background + ESteamInputGlyphStyle_Light = 0x1, // Black detail/borders on a white background + ESteamInputGlyphStyle_Dark = 0x2, // White detail/borders on a black background + + // Modifiers + // Default ABXY/PS equivalent glyphs have a solid fill w/ color matching the physical buttons on the device + ESteamInputGlyphStyle_NeutralColorABXY = 0x10, // ABXY Buttons will match the base style color instead of their normal associated color + ESteamInputGlyphStyle_SolidABXY = 0x20, // ABXY Buttons will have a solid fill +}; + +enum ESteamInputActionEventType +{ + ESteamInputActionEventType_DigitalAction, + ESteamInputActionEventType_AnalogAction, +}; + +// InputHandle_t is used to refer to a specific controller. +// This handle will consistently identify a controller, even if it is disconnected and re-connected +typedef uint64 InputHandle_t; + +// These handles are used to refer to a specific in-game action or action set +// All action handles should be queried during initialization for performance reasons +typedef uint64 InputActionSetHandle_t; +typedef uint64 InputDigitalActionHandle_t; +typedef uint64 InputAnalogActionHandle_t; + +#pragma pack( push, 1 ) + +struct InputAnalogActionData_t +{ + // Type of data coming from this action, this will match what got specified in the action set + EInputSourceMode eMode; + + // The current state of this action; will be delta updates for mouse actions + float x, y; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputDigitalActionData_t +{ + // The current state of this action; will be true if currently pressed + bool bState; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputMotionData_t +{ + // Gyro Quaternion: + // Absolute rotation of the controller since wakeup, using the Accelerometer reading at startup to determine the first value. + // This means real world "up" is know, but heading is not known. + // Every rotation packet is integrated using sensor time delta, and that change is used to update this quaternion. + // A Quaternion Identity ( x:0, y:0, z:0, w:1 ) will be sent in the first few packets while the controller's IMU is still waking up; + // some controllers have a short "warmup" period before these values should be used. + + // After the first time GetMotionData is called per controller handle, the IMU will be active until your app is closed. + // The exception is the Sony Dualshock, which will stay on until the controller has been turned off. + + // Filtering: When rotating the controller at low speeds, low level noise is filtered out without noticeable latency. High speed movement is always unfiltered. + // Drift: Gyroscopic "Drift" can be fixed using the Steam Input "Gyro Calibration" button. Users will have to be informed of this feature. + float rotQuatX; + float rotQuatY; + float rotQuatZ; + float rotQuatW; + + // Positional acceleration + // This represents only the latest hardware packet's state. + // Values range from -SHRT_MAX..SHRT_MAX + // This represents -2G..+2G along each axis + float posAccelX; // +tive when controller's Right hand side is pointed toward the sky. + float posAccelY; // +tive when controller's charging port (forward side of controller) is pointed toward the sky. + float posAccelZ; // +tive when controller's sticks point toward the sky. + + // Angular velocity + // Values range from -SHRT_MAX..SHRT_MAX + // These values map to a real world range of -2000..+2000 degrees per second on each axis (SDL standard) + // This represents only the latest hardware packet's state. + float rotVelX; // Local Pitch + float rotVelY; // Local Roll + float rotVelZ; // Local Yaw +}; + +//----------------------------------------------------------------------------- +// Purpose: when callbacks are enabled this fires each time a controller action +// state changes +//----------------------------------------------------------------------------- +struct SteamInputActionEvent_t +{ + InputHandle_t controllerHandle; + ESteamInputActionEventType eEventType; + struct AnalogAction_t { + InputAnalogActionHandle_t actionHandle; + InputAnalogActionData_t analogActionData; + }; + struct DigitalAction_t { + InputDigitalActionHandle_t actionHandle; + InputDigitalActionData_t digitalActionData; + }; + union { + AnalogAction_t analogAction; + DigitalAction_t digitalAction; + } x; +}; + +//----------------------------------------------------------------------------- +// Forward declaration for ScePadTriggerEffectParam, defined in isteamdualsense.h +//----------------------------------------------------------------------------- +struct ScePadTriggerEffectParam; + +#pragma pack( pop ) + +typedef void ( *SteamInputActionEventCallbackPointer )( SteamInputActionEvent_t * ); + +//----------------------------------------------------------------------------- +// Purpose: Steam Input API +//----------------------------------------------------------------------------- +class ISteamInput +{ +public: + + // Init and Shutdown must be called when starting/ending use of this interface. + // if bExplicitlyCallRunFrame is called then you will need to manually call RunFrame + // each frame, otherwise Steam Input will updated when SteamAPI_RunCallbacks() is called + virtual bool Init( bool bExplicitlyCallRunFrame ) = 0; + virtual bool Shutdown() = 0; + + // Set the absolute path to the Input Action Manifest file containing the in-game actions + // and file paths to the official configurations. Used in games that bundle Steam Input + // configurations inside of the game depot instead of using the Steam Workshop + virtual bool SetInputActionManifestFilePath( const char *pchInputActionManifestAbsolutePath ) = 0; + + // Synchronize API state with the latest Steam Input action data available. This + // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest + // possible latency, you call this directly before reading controller state. + // Note: This must be called from somewhere before GetConnectedControllers will + // return any handles + virtual void RunFrame( bool bReservedValue = true ) = 0; + + // Waits on an IPC event from Steam sent when there is new data to be fetched from + // the data drop. Returns true when data was recievied before the timeout expires. + // Useful for games with a dedicated input thread + virtual bool BWaitForData( bool bWaitForever, uint32 unTimeout ) = 0; + + // Returns true if new data has been received since the last time action data was accessed + // via GetDigitalActionData or GetAnalogActionData. The game will still need to call + // SteamInput()->RunFrame() or SteamAPI_RunCallbacks() before this to update the data stream + virtual bool BNewDataAvailable() = 0; + + // Enumerate currently connected Steam Input enabled devices - developers can opt in controller by type (ex: Xbox/Playstation/etc) via + // the Steam Input settings in the Steamworks site or users can opt-in in their controller settings in Steam. + // handlesOut should point to a STEAM_INPUT_MAX_COUNT sized array of InputHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_COUNT, Receives list of connected controllers ) InputHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // CALLBACKS + //----------------------------------------------------------------------------- + + // Controller configuration loaded - these callbacks will always fire if you have + // a handler. Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputConfigurationLoaded_t ) + + // Enable SteamInputDeviceConnected_t and SteamInputDeviceDisconnected_t callbacks. + // Each controller that is already connected will generate a device connected + // callback when you enable them + virtual void EnableDeviceCallbacks() = 0; + + // Controller Connected - provides info about a single newly connected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceConnected_t ) + + // Controller Disconnected - provides info about a single disconnected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceDisconnected_t ) + + // Controllers using Gamepad emulation (XInput, DirectInput, etc) will be seated in the order that + // input is sent by the device. This callback will fire on first input for each device and when the + // a user has manually changed the order via the Steam overlay. This also has the device type info + // so that you can change out glyph sets without making additional API calls + STEAM_CALL_BACK( SteamInputGamepadSlotChange_t ) + + // Enable SteamInputActionEvent_t callbacks. Directly calls your callback function + // for lower latency than standard Steam callbacks. Supports one callback at a time. + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + virtual void EnableActionEventCallbacks( SteamInputActionEventCallbackPointer pCallback ) = 0; + + //----------------------------------------------------------------------------- + // ACTION SETS + //----------------------------------------------------------------------------- + + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. + virtual InputActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; + + // Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + // This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + // your state loops, instead of trying to place it in all of your state transitions. + virtual void ActivateActionSet( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ) = 0; + virtual InputActionSetHandle_t GetCurrentActionSet( InputHandle_t inputHandle ) = 0; + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( InputHandle_t inputHandle ) = 0; + + // Enumerate currently active layers. + // handlesOut should point to a STEAM_INPUT_MAX_ACTIVE_LAYERS sized array of InputActionSetHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( InputHandle_t inputHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ACTIVE_LAYERS, Receives list of active layers ) InputActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // ACTIONS + //----------------------------------------------------------------------------- + + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of the supplied digital game action + virtual InputDigitalActionData_t GetDigitalActionData( InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ) = 0; + + // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForDigitalActionName( InputDigitalActionHandle_t eActionHandle ) = 0; + + // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of these supplied analog game action + virtual InputAnalogActionData_t GetAnalogActionData( InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ) = 0; + + // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Get a local path to a PNG file for the provided origin's glyph. + virtual const char *GetGlyphPNGForActionOrigin( EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ) = 0; + + // Get a local path to a SVG file for the provided origin's glyph. + virtual const char *GetGlyphSVGForActionOrigin( EInputActionOrigin eOrigin, uint32 unFlags ) = 0; + + // Get a local path to an older, Big Picture Mode-style PNG file for a particular origin + virtual const char *GetGlyphForActionOrigin_Legacy( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin. + virtual const char *GetStringForActionOrigin( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForAnalogActionName( InputAnalogActionHandle_t eActionHandle ) = 0; + + // Stop analog momentum for the action if it is a mouse action in trackball mode + virtual void StopAnalogActionMomentum( InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified device + virtual InputMotionData_t GetMotionData( InputHandle_t inputHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + + // Trigger a vibration event on supported controllers - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibration( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Trigger a vibration event on supported controllers including Xbox trigger impulse rumble - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibrationExtended( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ) = 0; + + // Send a haptic pulse, works on Steam Deck and Steam Controller devices + virtual void TriggerSimpleHapticEvent( InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ) = 0; + + // Set the controller LED color on supported controllers. nFlags is a bitmask of values from ESteamInputLEDFlag - 0 will default to setting a color. Steam will handle + // the behavior on exit of your program so you don't need to try restore the default as you are shutting down + virtual void SetLEDColor( InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + // Trigger a haptic pulse on a Steam Controller - if you are approximating rumble you may want to use TriggerVibration instead. + // Good uses for Haptic pulses include chimes, noises, or directional gameplay feedback (taking damage, footstep locations, etc). + virtual void Legacy_TriggerHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; + + // Trigger a haptic pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times. If you are approximating rumble you may want to use TriggerVibration instead. + // nFlags is currently unused and reserved for future use. + virtual void Legacy_TriggerRepeatedHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( InputHandle_t inputHandle ) = 0; + + // Returns the input type for a particular handle - unlike EInputActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( InputHandle_t inputHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual InputHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index + virtual int GetGamepadIndexForController( InputHandle_t ulinputHandle ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EInputActionOrigin GetActionOriginFromXboxOrigin( InputHandle_t inputHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EInputActionOrigin_None + // When a new input type is added you will be able to pass in k_ESteamInputType_Unknown and the closest origin that your version of the SDK recognized will be returned + // ex: if a Playstation 5 controller was released this function would return Playstation 4 origins. + virtual EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetDeviceBindingRevision( InputHandle_t inputHandle, int *pMajor, int *pMinor ) = 0; + + // Get the Steam Remote Play session ID associated with a device, or 0 if there is no session associated with it + // See isteamremoteplay.h for more information on Steam Remote Play sessions + virtual uint32 GetRemotePlaySessionID( InputHandle_t inputHandle ) = 0; + + // Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values. + // Note: user can override the settings from the Steamworks Partner site so the returned values may not exactly match your default configuration + virtual uint16 GetSessionInputConfigurationSettings() = 0; + + // Set the trigger effect for a DualSense controller + virtual void SetDualSenseTriggerEffect( InputHandle_t inputHandle, const ScePadTriggerEffectParam *pParam ) = 0; +}; + +#define STEAMINPUT_INTERFACE_VERSION "SteamInput006" + +// Global interface accessor +inline ISteamInput *SteamInput(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInput *, SteamInput, STEAMINPUT_INTERFACE_VERSION ); + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceConnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 1 }; + InputHandle_t m_ulConnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceDisconnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 2 }; + InputHandle_t m_ulDisconnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a controller configuration has been loaded, will fire once +// per controller per focus change for Steam Input enabled controllers +//----------------------------------------------------------------------------- +struct SteamInputConfigurationLoaded_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 3 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + CSteamID m_ulMappingCreator; // May differ from local user when using + // an unmodified community or official config + uint32 m_unMajorRevision; // Binding revision from In-game Action File. + // Same value as queried by GetDeviceBindingRevision + uint32 m_unMinorRevision; + bool m_bUsesSteamInputAPI; // Does the configuration contain any Analog/Digital actions? + bool m_bUsesGamepadAPI; // Does the configuration contain any Xinput bindings? +}; + +//----------------------------------------------------------------------------- +// Purpose: called when controller gamepad slots change - on Linux/macOS these +// slots are shared for all running apps. +//----------------------------------------------------------------------------- +struct SteamInputGamepadSlotChange_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 4 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + ESteamInputType m_eDeviceType; // Type of device + int m_nOldGamepadSlot; // Previous GamepadSlot - can be -1 controller doesn't uses gamepad bindings + int m_nNewGamepadSlot; // New Gamepad Slot - can be -1 controller doesn't uses gamepad bindings +}; + +#pragma pack( pop ) + +#endif // ISTEAMINPUT_H diff --git a/lsteamclient/steamworks_sdk_163/isteaminventory.h b/lsteamclient/steamworks_sdk_163/isteaminventory.h new file mode 100644 index 00000000000..7066592078e --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteaminventory.h @@ -0,0 +1,435 @@ +//====== Copyright © 1996-2014 Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to Steam Inventory +// +//============================================================================= + +#ifndef ISTEAMINVENTORY_H +#define ISTEAMINVENTORY_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +// Every individual instance of an item has a globally-unique ItemInstanceID. +// This ID is unique to the combination of (player, specific item instance) +// and will not be transferred to another player or re-used for another item. +typedef uint64 SteamItemInstanceID_t; + +static const SteamItemInstanceID_t k_SteamItemInstanceIDInvalid = (SteamItemInstanceID_t)~0; + +// Types of items in your game are identified by a 32-bit "item definition number". +// Valid definition numbers are between 1 and 999999999; numbers less than or equal to +// zero are invalid, and numbers greater than or equal to one billion (1x10^9) are +// reserved for internal Steam use. +typedef int32 SteamItemDef_t; + + +enum ESteamItemFlags +{ + // Item status flags - these flags are permanently attached to specific item instances + k_ESteamItemNoTrade = 1 << 0, // This item is account-locked and cannot be traded or given away. + + // Action confirmation flags - these flags are set one time only, as part of a result set + k_ESteamItemRemoved = 1 << 8, // The item has been destroyed, traded away, expired, or otherwise invalidated + k_ESteamItemConsumed = 1 << 9, // The item quantity has been decreased by 1 via ConsumeItem API. + + // All other flag bits are currently reserved for internal Steam use at this time. + // Do not assume anything about the state of other flags which are not defined here. +}; + +struct SteamItemDetails_t +{ + SteamItemInstanceID_t m_itemId; + SteamItemDef_t m_iDefinition; + uint16 m_unQuantity; + uint16 m_unFlags; // see ESteamItemFlags +}; + +typedef int32 SteamInventoryResult_t; + +static const SteamInventoryResult_t k_SteamInventoryResultInvalid = -1; + +typedef uint64 SteamInventoryUpdateHandle_t; +const SteamInventoryUpdateHandle_t k_SteamInventoryUpdateHandleInvalid = 0xffffffffffffffffull; + +//----------------------------------------------------------------------------- +// Purpose: Steam Inventory query and manipulation API +//----------------------------------------------------------------------------- +class ISteamInventory +{ +public: + + // INVENTORY ASYNC RESULT MANAGEMENT + // + // Asynchronous inventory queries always output a result handle which can be used with + // GetResultStatus, GetResultItems, etc. A SteamInventoryResultReady_t callback will + // be triggered when the asynchronous result becomes ready (or fails). + // + + // Find out the status of an asynchronous inventory result handle. Possible values: + // k_EResultPending - still in progress + // k_EResultOK - done, result ready + // k_EResultExpired - done, result ready, maybe out of date (see DeserializeResult) + // k_EResultInvalidParam - ERROR: invalid API call parameters + // k_EResultServiceUnavailable - ERROR: service temporarily down, you may retry later + // k_EResultLimitExceeded - ERROR: operation would exceed per-user inventory limits + // k_EResultFail - ERROR: unknown / generic error + virtual EResult GetResultStatus( SteamInventoryResult_t resultHandle ) = 0; + + // Copies the contents of a result set into a flat array. The specific + // contents of the result set depend on which query which was used. + virtual bool GetResultItems( SteamInventoryResult_t resultHandle, + STEAM_OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, + uint32 *punOutItemsArraySize ) = 0; + + // In combination with GetResultItems, you can use GetResultItemProperty to retrieve + // dynamic string properties for a given item returned in the result set. + // + // Property names are always composed of ASCII letters, numbers, and/or underscores. + // + // Pass a NULL pointer for pchPropertyName to get a comma - separated list of available + // property names. + // + // If pchValueBuffer is NULL, *punValueBufferSize will contain the + // suggested buffer size. Otherwise it will be the number of bytes actually copied + // to pchValueBuffer. If the results do not fit in the given buffer, partial + // results may be copied. + virtual bool GetResultItemProperty( SteamInventoryResult_t resultHandle, + uint32 unItemIndex, + const char *pchPropertyName, + STEAM_OUT_STRING_COUNT( punValueBufferSizeOut ) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + + // Returns the server time at which the result was generated. Compare against + // the value of IClientUtils::GetServerRealTime() to determine age. + virtual uint32 GetResultTimestamp( SteamInventoryResult_t resultHandle ) = 0; + + // Returns true if the result belongs to the target steam ID, false if the + // result does not. This is important when using DeserializeResult, to verify + // that a remote player is not pretending to have a different user's inventory. + virtual bool CheckResultSteamID( SteamInventoryResult_t resultHandle, CSteamID steamIDExpected ) = 0; + + // Destroys a result handle and frees all associated memory. + virtual void DestroyResult( SteamInventoryResult_t resultHandle ) = 0; + + + // INVENTORY ASYNC QUERY + // + + // Captures the entire state of the current user's Steam inventory. + // You must call DestroyResult on this handle when you are done with it. + // Returns false and sets *pResultHandle to zero if inventory is unavailable. + // Note: calls to this function are subject to rate limits and may return + // cached results if called too frequently. It is suggested that you call + // this function only when you are about to display the user's full inventory, + // or if you expect that the inventory may have changed. + virtual bool GetAllItems( SteamInventoryResult_t *pResultHandle ) = 0; + + + // Captures the state of a subset of the current user's Steam inventory, + // identified by an array of item instance IDs. The results from this call + // can be serialized and passed to other players to "prove" that the current + // user owns specific items, without exposing the user's entire inventory. + // For example, you could call GetItemsByID with the IDs of the user's + // currently equipped cosmetic items and serialize this to a buffer, and + // then transmit this buffer to other players upon joining a game. + virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; + + + // RESULT SERIALIZATION AND AUTHENTICATION + // + // Serialized result sets contain a short signature which can't be forged + // or replayed across different game sessions. A result set can be serialized + // on the local client, transmitted to other players via your game networking, + // and deserialized by the remote players. This is a secure way of preventing + // hackers from lying about posessing rare/high-value items. + + // Serializes a result set with signature bytes to an output buffer. Pass + // NULL as an output buffer to get the required size via punOutBufferSize. + // The size of a serialized result depends on the number items which are being + // serialized. When securely transmitting items to other players, it is + // recommended to use "GetItemsByID" first to create a minimal result set. + // Results have a built-in timestamp which will be considered "expired" after + // an hour has elapsed. See DeserializeResult for expiration handling. + virtual bool SerializeResult( SteamInventoryResult_t resultHandle, STEAM_OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; + + // Deserializes a result set and verifies the signature bytes. Returns false + // if bRequireFullOnlineVerify is set but Steam is running in Offline mode. + // Otherwise returns true and then delivers error codes via GetResultStatus. + // + // The bRESERVED_MUST_BE_FALSE flag is reserved for future use and should not + // be set to true by your game at this time. + // + // DeserializeResult has a potential soft-failure mode where the handle status + // is set to k_EResultExpired. GetResultItems() still succeeds in this mode. + // The "expired" result could indicate that the data may be out of date - not + // just due to timed expiration (one hour), but also because one of the items + // in the result set may have been traded or consumed since the result set was + // generated. You could compare the timestamp from GetResultTimestamp() to + // ISteamUtils::GetServerRealTime() to determine how old the data is. You could + // simply ignore the "expired" result code and continue as normal, or you + // could challenge the player with expired data to send an updated result set. + virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, STEAM_BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; + + + // INVENTORY ASYNC MODIFICATION + // + + // GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t + // notification with a matching nCallbackContext parameter. This API is only intended + // for prototyping - it is only usable by Steam accounts that belong to the publisher group + // for your game. + // If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should + // describe the quantity of each item to generate. + virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + + // GrantPromoItems() checks the list of promotional items for which the user may be eligible + // and grants the items (one time only). On success, the result set will include items which + // were granted, if any. If no items were granted because the user isn't eligible for any + // promotions, this is still considered a success. + virtual bool GrantPromoItems( SteamInventoryResult_t *pResultHandle ) = 0; + + // AddPromoItem() / AddPromoItems() are restricted versions of GrantPromoItems(). Instead of + // scanning for all eligible promotional items, the check is restricted to a single item + // definition or set of item definitions. This can be useful if your game has custom UI for + // showing a specific promo item to the user. + virtual bool AddPromoItem( SteamInventoryResult_t *pResultHandle, SteamItemDef_t itemDef ) = 0; + virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; + + // ConsumeItem() removes items from the inventory, permanently. They cannot be recovered. + // Not for the faint of heart - if your game implements item removal at all, a high-friction + // UI confirmation process is highly recommended. + virtual bool ConsumeItem( SteamInventoryResult_t *pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ) = 0; + + // ExchangeItems() is an atomic combination of item generation and consumption. + // It can be used to implement crafting recipes or transmutations, or items which unpack + // themselves into other items (e.g., a chest). + // Exchange recipes are defined in the ItemDef, and explicitly list the required item + // types and resulting generated type. + // Exchange recipes are evaluated atomically by the Inventory Service; if the supplied + // components do not match the recipe, or do not contain sufficient quantity, the + // exchange will fail. + virtual bool ExchangeItems( SteamInventoryResult_t *pResultHandle, + STEAM_ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, STEAM_ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, + STEAM_ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, STEAM_ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; + + + // TransferItemQuantity() is intended for use with items which are "stackable" (can have + // quantity greater than one). It can be used to split a stack into two, or to transfer + // quantity from one stack into another stack of identical items. To split one stack into + // two, pass k_SteamItemInstanceIDInvalid for itemIdDest and a new item will be generated. + virtual bool TransferItemQuantity( SteamInventoryResult_t *pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest ) = 0; + + + // TIMED DROPS AND PLAYTIME CREDIT + // + + // Deprecated. Calling this method is not required for proper playtime accounting. + virtual void SendItemDropHeartbeat() = 0; + + // Playtime credit must be consumed and turned into item drops by your game. Only item + // definitions which are marked as "playtime item generators" can be spawned. The call + // will return an empty result set if there is not enough playtime credit for a drop. + // Your game should call TriggerItemDrop at an appropriate time for the user to receive + // new items, such as between rounds or while the player is dead. Note that players who + // hack their clients could modify the value of "dropListDefinition", so do not use it + // to directly control rarity. + // See your Steamworks configuration to set playtime drop rates for individual itemdefs. + // The client library will suppress too-frequent calls to this method. + virtual bool TriggerItemDrop( SteamInventoryResult_t *pResultHandle, SteamItemDef_t dropListDefinition ) = 0; + + + // Deprecated. This method is not supported. + virtual bool TradeItems( SteamInventoryResult_t *pResultHandle, CSteamID steamIDTradePartner, + STEAM_ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, STEAM_ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, + STEAM_ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, STEAM_ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; + + + // ITEM DEFINITIONS + // + // Item definitions are a mapping of "definition IDs" (integers between 1 and 1000000) + // to a set of string properties. Some of these properties are required to display items + // on the Steam community web site. Other properties can be defined by applications. + // Use of these functions is optional; there is no reason to call LoadItemDefinitions + // if your game hardcodes the numeric definition IDs (eg, purple face mask = 20, blue + // weapon mod = 55) and does not allow for adding new item types without a client patch. + // + + // LoadItemDefinitions triggers the automatic load and refresh of item definitions. + // Every time new item definitions are available (eg, from the dynamic addition of new + // item types while players are still in-game), a SteamInventoryDefinitionUpdate_t + // callback will be fired. + virtual bool LoadItemDefinitions() = 0; + + // GetItemDefinitionIDs returns the set of all defined item definition IDs (which are + // defined via Steamworks configuration, and not necessarily contiguous integers). + // If pItemDefIDs is null, the call will return true and *punItemDefIDsArraySize will + // contain the total size necessary for a subsequent call. Otherwise, the call will + // return false if and only if there is not enough space in the output array. + virtual bool GetItemDefinitionIDs( + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + + // GetItemDefinitionProperty returns a string property from a given item definition. + // Note that some properties (for example, "name") may be localized and will depend + // on the current Steam language settings (see ISteamApps::GetCurrentGameLanguage). + // Property names are always composed of ASCII letters, numbers, and/or underscores. + // Pass a NULL pointer for pchPropertyName to get a comma - separated list of available + // property names. If pchValueBuffer is NULL, *punValueBufferSize will contain the + // suggested buffer size. Otherwise it will be the number of bytes actually copied + // to pchValueBuffer. If the results do not fit in the given buffer, partial + // results may be copied. + virtual bool GetItemDefinitionProperty( SteamItemDef_t iDefinition, const char *pchPropertyName, + STEAM_OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + + // Request the list of "eligible" promo items that can be manually granted to the given + // user. These are promo items of type "manual" that won't be granted automatically. + // An example usage of this is an item that becomes available every week. + STEAM_CALL_RESULT( SteamInventoryEligiblePromoItemDefIDs_t ) + virtual SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID ) = 0; + + // After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this + // function to pull out the list of item definition ids that the user can be + // manually granted via the AddPromoItems() call. + virtual bool GetEligiblePromoItemDefinitionIDs( + CSteamID steamID, + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + + // Starts the purchase process for the given item definitions. The callback SteamInventoryStartPurchaseResult_t + // will be posted if Steam was able to initialize the transaction. + // + // Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t + // will be posted. + STEAM_CALL_RESULT( SteamInventoryStartPurchaseResult_t ) + virtual SteamAPICall_t StartPurchase( STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + + // Request current prices for all applicable item definitions + STEAM_CALL_RESULT( SteamInventoryRequestPricesResult_t ) + virtual SteamAPICall_t RequestPrices() = 0; + + // Returns the number of items with prices. Need to call RequestPrices() first. + virtual uint32 GetNumItemsWithPrices() = 0; + + // Returns item definition ids and their prices in the user's local currency. + // Need to call RequestPrices() first. + virtual bool GetItemsWithPrices( STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pArrayItemDefs, Items with prices) SteamItemDef_t *pArrayItemDefs, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pCurrentPrices, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pBasePrices, + uint32 unArrayLength ) = 0; + + // Retrieves the price for the item definition id + // Returns false if there is no price stored for the item definition. + virtual bool GetItemPrice( SteamItemDef_t iDefinition, uint64 *pCurrentPrice, uint64 *pBasePrice ) = 0; + + // Create a request to update properties on items + virtual SteamInventoryUpdateHandle_t StartUpdateProperties() = 0; + // Remove the property on the item + virtual bool RemoveProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName ) = 0; + // Accessor methods to set properties on items + + STEAM_FLAT_NAME( SetPropertyString ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, const char *pchPropertyValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyBool ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, bool bValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyInt64 ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, int64 nValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyFloat ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, float flValue ) = 0; + + // Submit the update request by handle + virtual bool SubmitUpdateProperties( SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ) = 0; + + virtual bool InspectItem( SteamInventoryResult_t *pResultHandle, const char *pchItemToken ) = 0; +}; + +#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V003" + +// Global interface accessor +inline ISteamInventory *SteamInventory(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInventory *, SteamInventory, STEAMINVENTORY_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamInventory *SteamGameServerInventory(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamInventory *, SteamGameServerInventory, STEAMINVENTORY_INTERFACE_VERSION ); + +// SteamInventoryResultReady_t callbacks are fired whenever asynchronous +// results transition from "Pending" to "OK" or an error state. There will +// always be exactly one callback per handle. +struct SteamInventoryResultReady_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 0 }; + SteamInventoryResult_t m_handle; + EResult m_result; +}; + + +// SteamInventoryFullUpdate_t callbacks are triggered when GetAllItems +// successfully returns a result which is newer / fresher than the last +// known result. (It will not trigger if the inventory hasn't changed, +// or if results from two overlapping calls are reversed in flight and +// the earlier result is already known to be stale/out-of-date.) +// The normal ResultReady callback will still be triggered immediately +// afterwards; this is an additional notification for your convenience. +struct SteamInventoryFullUpdate_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 1 }; + SteamInventoryResult_t m_handle; +}; + + +// A SteamInventoryDefinitionUpdate_t callback is triggered whenever +// item definitions have been updated, which could be in response to +// LoadItemDefinitions() or any other async request which required +// a definition update in order to process results from the server. +struct SteamInventoryDefinitionUpdate_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 2 }; +}; + +// Returned +struct SteamInventoryEligiblePromoItemDefIDs_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 3 }; + EResult m_result; + CSteamID m_steamID; + int m_numEligiblePromoItemDefs; + bool m_bCachedData; // indicates that the data was retrieved from the cache and not the server +}; + +// Triggered from StartPurchase call +struct SteamInventoryStartPurchaseResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 4 }; + EResult m_result; + uint64 m_ulOrderID; + uint64 m_ulTransID; +}; + + +// Triggered from RequestPrices +struct SteamInventoryRequestPricesResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 5 }; + EResult m_result; + char m_rgchCurrency[4]; +}; + +#pragma pack( pop ) + + +#endif // ISTEAMCONTROLLER_H diff --git a/lsteamclient/steamworks_sdk_163/isteammatchmaking.h b/lsteamclient/steamworks_sdk_163/isteammatchmaking.h new file mode 100644 index 00000000000..ea599f42ea2 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteammatchmaking.h @@ -0,0 +1,886 @@ +//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to steam managing game server/client match making +// +//============================================================================= + +#ifndef ISTEAMMATCHMAKING +#define ISTEAMMATCHMAKING +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" +#include "matchmakingtypes.h" +#include "isteamfriends.h" + +// lobby type description +enum ELobbyType +{ + k_ELobbyTypePrivate = 0, // only way to join the lobby is to invite to someone else + k_ELobbyTypeFriendsOnly = 1, // shows for friends or invitees, but not in public lobby list, allows those who join to invite their own friends + k_ELobbyTypePublic = 2, // visible for friends and in lobby list + k_ELobbyTypeInvisible = 3, // returned by search, but not visible to other friends + // useful if you want a user in two lobbies, for example matching groups together + // a user can be in only one regular lobby, and up to two invisible lobbies + k_ELobbyTypePrivateUnique = 4, // private, unique and does not delete when empty - only one of these may exist per unique keypair set + // can only create from webapi +}; + +// lobby search filter tools +enum ELobbyComparison +{ + k_ELobbyComparisonEqualToOrLessThan = -2, + k_ELobbyComparisonLessThan = -1, + k_ELobbyComparisonEqual = 0, + k_ELobbyComparisonGreaterThan = 1, + k_ELobbyComparisonEqualToOrGreaterThan = 2, + k_ELobbyComparisonNotEqual = 3, +}; + +// lobby search distance. Lobby results are sorted from closest to farthest. +enum ELobbyDistanceFilter +{ + k_ELobbyDistanceFilterClose, // only lobbies in the same immediate region will be returned + k_ELobbyDistanceFilterDefault, // only lobbies in the same region or near by regions + k_ELobbyDistanceFilterFar, // for games that don't have many latency requirements, will return lobbies about half-way around the globe + k_ELobbyDistanceFilterWorldwide, // no filtering, will match lobbies as far as India to NY (not recommended, expect multiple seconds of latency between the clients) +}; + +// maximum number of characters a lobby metadata key can be +#define k_nMaxLobbyKeyLength 255 + +//----------------------------------------------------------------------------- +// Purpose: Functions for match making services for clients to get to favorites +// and to operate on game lobbies. +//----------------------------------------------------------------------------- +class ISteamMatchmaking +{ +public: + // game server favorites storage + // saves basic details about a multiplayer game server locally + + // returns the number of favorites servers the user has stored + virtual int GetFavoriteGameCount() = 0; + + // returns the details of the game server + // iGame is of range [0,GetFavoriteGameCount()) + // *pnIP, *pnConnPort are filled in the with IP:port of the game server + // *punFlags specify whether the game server was stored as an explicit favorite or in the history of connections + // *pRTime32LastPlayedOnServer is filled in the with the Unix time the favorite was added + virtual bool GetFavoriteGame( int iGame, AppId_t *pnAppID, uint32 *pnIP, uint16 *pnConnPort, uint16 *pnQueryPort, uint32 *punFlags, uint32 *pRTime32LastPlayedOnServer ) = 0; + + // adds the game server to the local list; updates the time played of the server if it already exists in the list + virtual int AddFavoriteGame( AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ) = 0; + + // removes the game server from the local storage; returns true if one was removed + virtual bool RemoveFavoriteGame( AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags ) = 0; + + /////// + // Game lobby functions + + // Get a list of relevant lobbies + // this is an asynchronous request + // results will be returned by LobbyMatchList_t callback & call result, with the number of lobbies found + // this will never return lobbies that are full + // to add more filter, the filter calls below need to be call before each and every RequestLobbyList() call + // use the CCallResult<> object in steam_api.h to match the SteamAPICall_t call result to a function in an object, e.g. + /* + class CMyLobbyListManager + { + CCallResult m_CallResultLobbyMatchList; + void FindLobbies() + { + // SteamMatchmaking()->AddRequestLobbyListFilter*() functions would be called here, before RequestLobbyList() + SteamAPICall_t hSteamAPICall = SteamMatchmaking()->RequestLobbyList(); + m_CallResultLobbyMatchList.Set( hSteamAPICall, this, &CMyLobbyListManager::OnLobbyMatchList ); + } + + void OnLobbyMatchList( LobbyMatchList_t *pLobbyMatchList, bool bIOFailure ) + { + // lobby list has be retrieved from Steam back-end, use results + } + } + */ + // + STEAM_CALL_RESULT( LobbyMatchList_t ) + virtual SteamAPICall_t RequestLobbyList() = 0; + // filters for lobbies + // this needs to be called before RequestLobbyList() to take effect + // these are cleared on each call to RequestLobbyList() + virtual void AddRequestLobbyListStringFilter( const char *pchKeyToMatch, const char *pchValueToMatch, ELobbyComparison eComparisonType ) = 0; + // numerical comparison + virtual void AddRequestLobbyListNumericalFilter( const char *pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType ) = 0; + // returns results closest to the specified value. Multiple near filters can be added, with early filters taking precedence + virtual void AddRequestLobbyListNearValueFilter( const char *pchKeyToMatch, int nValueToBeCloseTo ) = 0; + // returns only lobbies with the specified number of slots available + virtual void AddRequestLobbyListFilterSlotsAvailable( int nSlotsAvailable ) = 0; + // sets the distance for which we should search for lobbies (based on users IP address to location map on the Steam backed) + virtual void AddRequestLobbyListDistanceFilter( ELobbyDistanceFilter eLobbyDistanceFilter ) = 0; + // sets how many results to return, the lower the count the faster it is to download the lobby results & details to the client + virtual void AddRequestLobbyListResultCountFilter( int cMaxResults ) = 0; + + virtual void AddRequestLobbyListCompatibleMembersFilter( CSteamID steamIDLobby ) = 0; + + // returns the CSteamID of a lobby, as retrieved by a RequestLobbyList call + // should only be called after a LobbyMatchList_t callback is received + // iLobby is of the range [0, LobbyMatchList_t::m_nLobbiesMatching) + // the returned CSteamID::IsValid() will be false if iLobby is out of range + virtual CSteamID GetLobbyByIndex( int iLobby ) = 0; + + // Create a lobby on the Steam servers. + // If private, then the lobby will not be returned by any RequestLobbyList() call; the CSteamID + // of the lobby will need to be communicated via game channels or via InviteUserToLobby() + // this is an asynchronous request + // results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point + // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) + STEAM_CALL_RESULT( LobbyCreated_t ) + virtual SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers ) = 0; + + // Joins an existing lobby + // this is an asynchronous request + // results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful + // lobby metadata is available to use immediately on this call completing + STEAM_CALL_RESULT( LobbyEnter_t ) + virtual SteamAPICall_t JoinLobby( CSteamID steamIDLobby ) = 0; + + // Leave a lobby; this will take effect immediately on the client side + // other users in the lobby will be notified by a LobbyChatUpdate_t callback + virtual void LeaveLobby( CSteamID steamIDLobby ) = 0; + + // Invite another user to the lobby + // the target user will receive a LobbyInvite_t callback + // will return true if the invite is successfully sent, whether or not the target responds + // returns false if the local user is not connected to the Steam servers + // if the other user clicks the join link, a GameLobbyJoinRequested_t will be posted if the user is in-game, + // or if the game isn't running yet the game will be launched with the parameter +connect_lobby <64-bit lobby id> + virtual bool InviteUserToLobby( CSteamID steamIDLobby, CSteamID steamIDInvitee ) = 0; + + // Lobby iteration, for viewing details of users in a lobby + // only accessible if the lobby user is a member of the specified lobby + // persona information for other lobby members (name, avatar, etc.) will be asynchronously received + // and accessible via ISteamFriends interface + + // returns the number of users in the specified lobby + virtual int GetNumLobbyMembers( CSteamID steamIDLobby ) = 0; + // returns the CSteamID of a user in the lobby + // iMember is of range [0,GetNumLobbyMembers()) + // note that the current user must be in a lobby to retrieve CSteamIDs of other users in that lobby + virtual CSteamID GetLobbyMemberByIndex( CSteamID steamIDLobby, int iMember ) = 0; + + // Get data associated with this lobby + // takes a simple key, and returns the string associated with it + // "" will be returned if no value is set, or if steamIDLobby is invalid + virtual const char *GetLobbyData( CSteamID steamIDLobby, const char *pchKey ) = 0; + // Sets a key/value pair in the lobby metadata + // each user in the lobby will be broadcast this new value, and any new users joining will receive any existing data + // this can be used to set lobby names, map, etc. + // to reset a key, just set it to "" + // other users in the lobby will receive notification of the lobby data change via a LobbyDataUpdate_t callback + virtual bool SetLobbyData( CSteamID steamIDLobby, const char *pchKey, const char *pchValue ) = 0; + + // returns the number of metadata keys set on the specified lobby + virtual int GetLobbyDataCount( CSteamID steamIDLobby ) = 0; + + // returns a lobby metadata key/values pair by index, of range [0, GetLobbyDataCount()) + virtual bool GetLobbyDataByIndex( CSteamID steamIDLobby, int iLobbyData, char *pchKey, int cchKeyBufferSize, char *pchValue, int cchValueBufferSize ) = 0; + + // removes a metadata key from the lobby + virtual bool DeleteLobbyData( CSteamID steamIDLobby, const char *pchKey ) = 0; + + // Gets per-user metadata for someone in this lobby + virtual const char *GetLobbyMemberData( CSteamID steamIDLobby, CSteamID steamIDUser, const char *pchKey ) = 0; + // Sets per-user metadata (for the local user implicitly) + virtual void SetLobbyMemberData( CSteamID steamIDLobby, const char *pchKey, const char *pchValue ) = 0; + + // Broadcasts a chat message to the all the users in the lobby + // users in the lobby (including the local user) will receive a LobbyChatMsg_t callback + // returns true if the message is successfully sent + // pvMsgBody can be binary or text data, up to 4k + // if pvMsgBody is text, cubMsgBody should be strlen( text ) + 1, to include the null terminator + virtual bool SendLobbyChatMsg( CSteamID steamIDLobby, const void *pvMsgBody, int cubMsgBody ) = 0; + // Get a chat message as specified in a LobbyChatMsg_t callback + // iChatID is the LobbyChatMsg_t::m_iChatID value in the callback + // *pSteamIDUser is filled in with the CSteamID of the member + // *pvData is filled in with the message itself + // return value is the number of bytes written into the buffer + virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, STEAM_OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; + + // Refreshes metadata for a lobby you're not necessarily in right now + // you never do this for lobbies you're a member of, only if your + // this will send down all the metadata associated with a lobby + // this is an asynchronous call + // returns false if the local user is not connected to the Steam servers + // results will be returned by a LobbyDataUpdate_t callback + // if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + virtual bool RequestLobbyData( CSteamID steamIDLobby ) = 0; + + // sets the game server associated with the lobby + // usually at this point, the users will join the specified game server + // either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect + virtual void SetLobbyGameServer( CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, CSteamID steamIDGameServer ) = 0; + // returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist + virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, STEAM_OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; + + // set the limit on the # of users who can join the lobby + virtual bool SetLobbyMemberLimit( CSteamID steamIDLobby, int cMaxMembers ) = 0; + // returns the current limit on the # of users who can join the lobby; returns 0 if no limit is defined + virtual int GetLobbyMemberLimit( CSteamID steamIDLobby ) = 0; + + // updates which type of lobby it is + // only lobbies that are k_ELobbyTypePublic or k_ELobbyTypeInvisible, and are set to joinable, will be returned by RequestLobbyList() calls + virtual bool SetLobbyType( CSteamID steamIDLobby, ELobbyType eLobbyType ) = 0; + + // sets whether or not a lobby is joinable - defaults to true for a new lobby + // if set to false, no user can join, even if they are a friend or have been invited + virtual bool SetLobbyJoinable( CSteamID steamIDLobby, bool bLobbyJoinable ) = 0; + + // returns the current lobby owner + // you must be a member of the lobby to access this + // there always one lobby owner - if the current owner leaves, another user will become the owner + // it is possible (bur rare) to join a lobby just as the owner is leaving, thus entering a lobby with self as the owner + virtual CSteamID GetLobbyOwner( CSteamID steamIDLobby ) = 0; + + // changes who the lobby owner is + // you must be the lobby owner for this to succeed, and steamIDNewOwner must be in the lobby + // after completion, the local user will no longer be the owner + virtual bool SetLobbyOwner( CSteamID steamIDLobby, CSteamID steamIDNewOwner ) = 0; + + // link two lobbies for the purposes of checking player compatibility + // you must be the lobby owner of both lobbies + virtual bool SetLinkedLobby( CSteamID steamIDLobby, CSteamID steamIDLobbyDependent ) = 0; +}; +#define STEAMMATCHMAKING_INTERFACE_VERSION "SteamMatchMaking009" + +// Global interface accessor +inline ISteamMatchmaking *SteamMatchmaking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmaking *, SteamMatchmaking, STEAMMATCHMAKING_INTERFACE_VERSION ); + +//----------------------------------------------------------------------------- +// Callback interfaces for server list functions (see ISteamMatchmakingServers below) +// +// The idea here is that your game code implements objects that implement these +// interfaces to receive callback notifications after calling asynchronous functions +// inside the ISteamMatchmakingServers() interface below. +// +// This is different than normal Steam callback handling due to the potentially +// large size of server lists. +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// Typedef for handle type you will receive when requesting server list. +//----------------------------------------------------------------------------- +typedef void* HServerListRequest; + +//----------------------------------------------------------------------------- +// Purpose: Callback interface for receiving responses after a server list refresh +// or an individual server update. +// +// Since you get these callbacks after requesting full list refreshes you will +// usually implement this interface inside an object like CServerBrowser. If that +// object is getting destructed you should use ISteamMatchMakingServers()->CancelQuery() +// to cancel any in-progress queries so you don't get a callback into the destructed +// object and crash. +//----------------------------------------------------------------------------- +class ISteamMatchmakingServerListResponse +{ +public: + // Server has responded ok with updated data + virtual void ServerResponded( HServerListRequest hRequest, int iServer ) = 0; + + // Server has failed to respond + virtual void ServerFailedToRespond( HServerListRequest hRequest, int iServer ) = 0; + + // A list refresh you had initiated is now 100% completed + virtual void RefreshComplete( HServerListRequest hRequest, EMatchMakingServerResponse response ) = 0; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Callback interface for receiving responses after pinging an individual server +// +// These callbacks all occur in response to querying an individual server +// via the ISteamMatchmakingServers()->PingServer() call below. If you are +// destructing an object that implements this interface then you should call +// ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query +// which is in progress. Failure to cancel in progress queries when destructing +// a callback handler may result in a crash when a callback later occurs. +//----------------------------------------------------------------------------- +class ISteamMatchmakingPingResponse +{ +public: + // Server has responded successfully and has updated data + virtual void ServerResponded( gameserveritem_t &server ) = 0; + + // Server failed to respond to the ping request + virtual void ServerFailedToRespond() = 0; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Callback interface for receiving responses after requesting details on +// who is playing on a particular server. +// +// These callbacks all occur in response to querying an individual server +// via the ISteamMatchmakingServers()->PlayerDetails() call below. If you are +// destructing an object that implements this interface then you should call +// ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query +// which is in progress. Failure to cancel in progress queries when destructing +// a callback handler may result in a crash when a callback later occurs. +//----------------------------------------------------------------------------- +class ISteamMatchmakingPlayersResponse +{ +public: + // Got data on a new player on the server -- you'll get this callback once per player + // on the server which you have requested player data on. + virtual void AddPlayerToList( const char *pchName, int nScore, float flTimePlayed ) = 0; + + // The server failed to respond to the request for player details + virtual void PlayersFailedToRespond() = 0; + + // The server has finished responding to the player details request + // (ie, you won't get anymore AddPlayerToList callbacks) + virtual void PlayersRefreshComplete() = 0; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Callback interface for receiving responses after requesting rules +// details on a particular server. +// +// These callbacks all occur in response to querying an individual server +// via the ISteamMatchmakingServers()->ServerRules() call below. If you are +// destructing an object that implements this interface then you should call +// ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query +// which is in progress. Failure to cancel in progress queries when destructing +// a callback handler may result in a crash when a callback later occurs. +//----------------------------------------------------------------------------- +class ISteamMatchmakingRulesResponse +{ +public: + // Got data on a rule on the server -- you'll get one of these per rule defined on + // the server you are querying + virtual void RulesResponded( const char *pchRule, const char *pchValue ) = 0; + + // The server failed to respond to the request for rule details + virtual void RulesFailedToRespond() = 0; + + // The server has finished responding to the rule details request + // (ie, you won't get anymore RulesResponded callbacks) + virtual void RulesRefreshComplete() = 0; +}; + + +//----------------------------------------------------------------------------- +// Typedef for handle type you will receive when querying details on an individual server. +//----------------------------------------------------------------------------- +typedef int HServerQuery; +const int HSERVERQUERY_INVALID = 0xffffffff; + +//----------------------------------------------------------------------------- +// Purpose: Functions for match making services for clients to get to game lists and details +//----------------------------------------------------------------------------- +class ISteamMatchmakingServers +{ +public: + // Request a new list of servers of a particular type. These calls each correspond to one of the EMatchMakingType values. + // Each call allocates a new asynchronous request object. + // Request object must be released by calling ReleaseRequest( hServerListRequest ) + virtual HServerListRequest RequestInternetServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestLANServerList( AppId_t iApp, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + + // Releases the asynchronous request object and cancels any pending query on it if there's a pending query in progress. + // RefreshComplete callback is not posted when request is released. + virtual void ReleaseRequest( HServerListRequest hServerListRequest ) = 0; + + /* the filter operation codes that go in the key part of MatchMakingKeyValuePair_t should be one of these: + + "map" + - Server passes the filter if the server is playing the specified map. + "gamedataand" + - Server passes the filter if the server's game data (ISteamGameServer::SetGameData) contains all of the + specified strings. The value field is a comma-delimited list of strings to match. + "gamedataor" + - Server passes the filter if the server's game data (ISteamGameServer::SetGameData) contains at least one of the + specified strings. The value field is a comma-delimited list of strings to match. + "gamedatanor" + - Server passes the filter if the server's game data (ISteamGameServer::SetGameData) does not contain any + of the specified strings. The value field is a comma-delimited list of strings to check. + "gametagsand" + - Server passes the filter if the server's game tags (ISteamGameServer::SetGameTags) contains all + of the specified strings. The value field is a comma-delimited list of strings to check. + "gametagsnor" + - Server passes the filter if the server's game tags (ISteamGameServer::SetGameTags) does not contain any + of the specified strings. The value field is a comma-delimited list of strings to check. + "and" (x1 && x2 && ... && xn) + "or" (x1 || x2 || ... || xn) + "nand" !(x1 && x2 && ... && xn) + "nor" !(x1 || x2 || ... || xn) + - Performs Boolean operation on the following filters. The operand to this filter specifies + the "size" of the Boolean inputs to the operation, in Key/value pairs. (The keyvalue + pairs must immediately follow, i.e. this is a prefix logical operator notation.) + In the simplest case where Boolean expressions are not nested, this is simply + the number of operands. + + For example, to match servers on a particular map or with a particular tag, would would + use these filters. + + ( server.map == "cp_dustbowl" || server.gametags.contains("payload") ) + "or", "2" + "map", "cp_dustbowl" + "gametagsand", "payload" + + If logical inputs are nested, then the operand specifies the size of the entire + "length" of its operands, not the number of immediate children. + + ( server.map == "cp_dustbowl" || ( server.gametags.contains("payload") && !server.gametags.contains("payloadrace") ) ) + "or", "4" + "map", "cp_dustbowl" + "and", "2" + "gametagsand", "payload" + "gametagsnor", "payloadrace" + + Unary NOT can be achieved using either "nand" or "nor" with a single operand. + + "addr" + - Server passes the filter if the server's query address matches the specified IP or IP:port. + "gameaddr" + - Server passes the filter if the server's game address matches the specified IP or IP:port. + + The following filter operations ignore the "value" part of MatchMakingKeyValuePair_t + + "dedicated" + - Server passes the filter if it passed true to SetDedicatedServer. + "secure" + - Server passes the filter if the server is VAC-enabled. + "notfull" + - Server passes the filter if the player count is less than the reported max player count. + "hasplayers" + - Server passes the filter if the player count is greater than zero. + "noplayers" + - Server passes the filter if it doesn't have any players. + "linux" + - Server passes the filter if it's a linux server + */ + + // Get details on a given server in the list, you can get the valid range of index + // values by calling GetServerCount(). You will also receive index values in + // ISteamMatchmakingServerListResponse::ServerResponded() callbacks + virtual gameserveritem_t *GetServerDetails( HServerListRequest hRequest, int iServer ) = 0; + + // Cancel an request which is operation on the given list type. You should call this to cancel + // any in-progress requests before destructing a callback object that may have been passed + // to one of the above list request calls. Not doing so may result in a crash when a callback + // occurs on the destructed object. + // Canceling a query does not release the allocated request handle. + // The request handle must be released using ReleaseRequest( hRequest ) + virtual void CancelQuery( HServerListRequest hRequest ) = 0; + + // Ping every server in your list again but don't update the list of servers + // Query callback installed when the server list was requested will be used + // again to post notifications and RefreshComplete, so the callback must remain + // valid until another RefreshComplete is called on it or the request + // is released with ReleaseRequest( hRequest ) + virtual void RefreshQuery( HServerListRequest hRequest ) = 0; + + // Returns true if the list is currently refreshing its server list + virtual bool IsRefreshing( HServerListRequest hRequest ) = 0; + + // How many servers in the given list, GetServerDetails above takes 0... GetServerCount() - 1 + virtual int GetServerCount( HServerListRequest hRequest ) = 0; + + // Refresh a single server inside of a query (rather than all the servers ) + virtual void RefreshServer( HServerListRequest hRequest, int iServer ) = 0; + + + //----------------------------------------------------------------------------- + // Queries to individual servers directly via IP/Port + //----------------------------------------------------------------------------- + + // Request updated ping time and other details from a single server + virtual HServerQuery PingServer( uint32 unIP, uint16 usPort, ISteamMatchmakingPingResponse *pRequestServersResponse ) = 0; + + // Request the list of players currently playing on a server + virtual HServerQuery PlayerDetails( uint32 unIP, uint16 usPort, ISteamMatchmakingPlayersResponse *pRequestServersResponse ) = 0; + + // Request the list of rules that the server is running (See ISteamGameServer::SetKeyValue() to set the rules server side) + virtual HServerQuery ServerRules( uint32 unIP, uint16 usPort, ISteamMatchmakingRulesResponse *pRequestServersResponse ) = 0; + + // Cancel an outstanding Ping/Players/Rules query from above. You should call this to cancel + // any in-progress requests before destructing a callback object that may have been passed + // to one of the above calls to avoid crashing when callbacks occur. + virtual void CancelServerQuery( HServerQuery hServerQuery ) = 0; +}; +#define STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "SteamMatchMakingServers002" + +// Global interface accessor +inline ISteamMatchmakingServers *SteamMatchmakingServers(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmakingServers *, SteamMatchmakingServers, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); + +// game server flags +const uint32 k_unFavoriteFlagNone = 0x00; +const uint32 k_unFavoriteFlagFavorite = 0x01; // this game favorite entry is for the favorites list +const uint32 k_unFavoriteFlagHistory = 0x02; // this game favorite entry is for the history list + + +//----------------------------------------------------------------------------- +// Purpose: Used in ChatInfo messages - fields specific to a chat member - must fit in a uint32 +//----------------------------------------------------------------------------- +enum EChatMemberStateChange +{ + // Specific to joining / leaving the chatroom + k_EChatMemberStateChangeEntered = 0x0001, // This user has joined or is joining the chat room + k_EChatMemberStateChangeLeft = 0x0002, // This user has left or is leaving the chat room + k_EChatMemberStateChangeDisconnected = 0x0004, // User disconnected without leaving the chat first + k_EChatMemberStateChangeKicked = 0x0008, // User kicked + k_EChatMemberStateChangeBanned = 0x0010, // User kicked and banned +}; + +// returns true of the flags indicate that a user has been removed from the chat +#define BChatMemberStateChangeRemoved( rgfChatMemberStateChangeFlags ) ( rgfChatMemberStateChangeFlags & ( k_EChatMemberStateChangeDisconnected | k_EChatMemberStateChangeLeft | k_EChatMemberStateChangeKicked | k_EChatMemberStateChangeBanned ) ) + + + +//----------------------------------------------------------------------------- +// Purpose: Functions for quickly creating a Party with friends or acquaintances, +// EG from chat rooms. +//----------------------------------------------------------------------------- +enum ESteamPartyBeaconLocationType +{ + k_ESteamPartyBeaconLocationType_Invalid = 0, + k_ESteamPartyBeaconLocationType_ChatGroup = 1, + + k_ESteamPartyBeaconLocationType_Max, +}; + + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +struct SteamPartyBeaconLocation_t +{ + ESteamPartyBeaconLocationType m_eType; + uint64 m_ulLocationID; +}; + +enum ESteamPartyBeaconLocationData +{ + k_ESteamPartyBeaconLocationDataInvalid = 0, + k_ESteamPartyBeaconLocationDataName = 1, + k_ESteamPartyBeaconLocationDataIconURLSmall = 2, + k_ESteamPartyBeaconLocationDataIconURLMedium = 3, + k_ESteamPartyBeaconLocationDataIconURLLarge = 4, +}; + +class ISteamParties +{ +public: + + // ============================================================================================= + // Party Client APIs + + // Enumerate any active beacons for parties you may wish to join + virtual uint32 GetNumActiveBeacons() = 0; + virtual PartyBeaconID_t GetBeaconByIndex( uint32 unIndex ) = 0; + virtual bool GetBeaconDetails( PartyBeaconID_t ulBeaconID, CSteamID *pSteamIDBeaconOwner, STEAM_OUT_STRUCT() SteamPartyBeaconLocation_t *pLocation, STEAM_OUT_STRING_COUNT(cchMetadata) char *pchMetadata, int cchMetadata ) = 0; + + // Join an open party. Steam will reserve one beacon slot for your SteamID, + // and return the necessary JoinGame string for you to use to connect + STEAM_CALL_RESULT( JoinPartyCallback_t ) + virtual SteamAPICall_t JoinParty( PartyBeaconID_t ulBeaconID ) = 0; + + // ============================================================================================= + // Party Host APIs + + // Get a list of possible beacon locations + virtual bool GetNumAvailableBeaconLocations( uint32 *puNumLocations ) = 0; + virtual bool GetAvailableBeaconLocations( SteamPartyBeaconLocation_t *pLocationList, uint32 uMaxNumLocations ) = 0; + + // Create a new party beacon and activate it in the selected location. + // unOpenSlots is the maximum number of users that Steam will send to you. + // When people begin responding to your beacon, Steam will send you + // PartyReservationCallback_t callbacks to let you know who is on the way. + STEAM_CALL_RESULT( CreateBeaconCallback_t ) + virtual SteamAPICall_t CreateBeacon( uint32 unOpenSlots, SteamPartyBeaconLocation_t *pBeaconLocation, const char *pchConnectString, const char *pchMetadata ) = 0; + + // Call this function when a user that had a reservation (see callback below) + // has successfully joined your party. + // Steam will manage the remaining open slots automatically. + virtual void OnReservationCompleted( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // To cancel a reservation (due to timeout or user input), call this. + // Steam will open a new reservation slot. + // Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + virtual void CancelReservation( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // Change the number of open beacon reservation slots. + // Call this if, for example, someone without a reservation joins your party (eg a friend, or via your own matchmaking system). + STEAM_CALL_RESULT( ChangeNumOpenSlotsCallback_t ) + virtual SteamAPICall_t ChangeNumOpenSlots( PartyBeaconID_t ulBeacon, uint32 unOpenSlots ) = 0; + + // Turn off the beacon. + virtual bool DestroyBeacon( PartyBeaconID_t ulBeacon ) = 0; + + // Utils + virtual bool GetBeaconLocationData( SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, STEAM_OUT_STRING_COUNT(cchDataStringOut) char *pchDataStringOut, int cchDataStringOut ) = 0; + +}; +#define STEAMPARTIES_INTERFACE_VERSION "SteamParties002" + +// Global interface accessor +inline ISteamParties *SteamParties(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParties *, SteamParties, STEAMPARTIES_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) + +//----------------------------------------------------------------------------- +// Purpose: a server was added/removed from the favorites list, you should refresh now +//----------------------------------------------------------------------------- +struct FavoritesListChanged_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 2 }; + uint32 m_nIP; // an IP of 0 means reload the whole list, any other value means just one server + uint32 m_nQueryPort; + uint32 m_nConnPort; + uint32 m_nAppID; + uint32 m_nFlags; + bool m_bAdd; // true if this is adding the entry, otherwise it is a remove + AccountID_t m_unAccountId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Someone has invited you to join a Lobby +// normally you don't need to do anything with this, since +// the Steam UI will also display a ' has invited you to the lobby, join?' dialog +// +// if the user outside a game chooses to join, your game will be launched with the parameter "+connect_lobby <64-bit lobby id>", +// or with the callback GameLobbyJoinRequested_t if they're already in-game +//----------------------------------------------------------------------------- +struct LobbyInvite_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 3 }; + + uint64 m_ulSteamIDUser; // Steam ID of the person making the invite + uint64 m_ulSteamIDLobby; // Steam ID of the Lobby + uint64 m_ulGameID; // GameID of the Lobby +}; + + +//----------------------------------------------------------------------------- +// Purpose: Sent on entering a lobby, or on failing to enter +// m_EChatRoomEnterResponse will be set to k_EChatRoomEnterResponseSuccess on success, +// or a higher value on failure (see enum EChatRoomEnterResponse) +//----------------------------------------------------------------------------- +struct LobbyEnter_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 4 }; + + uint64 m_ulSteamIDLobby; // SteamID of the Lobby you have entered + uint32 m_rgfChatPermissions; // Permissions of the current user + bool m_bLocked; // If true, then only invited users may join + uint32 m_EChatRoomEnterResponse; // EChatRoomEnterResponse +}; + + +//----------------------------------------------------------------------------- +// Purpose: The lobby metadata has changed +// if m_ulSteamIDMember is the steamID of a lobby member, use GetLobbyMemberData() to access per-user details +// if m_ulSteamIDMember == m_ulSteamIDLobby, use GetLobbyData() to access lobby metadata +//----------------------------------------------------------------------------- +struct LobbyDataUpdate_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 5 }; + + uint64 m_ulSteamIDLobby; // steamID of the Lobby + uint64 m_ulSteamIDMember; // steamID of the member whose data changed, or the room itself + uint8 m_bSuccess; // true if we lobby data was successfully changed; + // will only be false if RequestLobbyData() was called on a lobby that no longer exists +}; + + +//----------------------------------------------------------------------------- +// Purpose: The lobby chat room state has changed +// this is usually sent when a user has joined or left the lobby +//----------------------------------------------------------------------------- +struct LobbyChatUpdate_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 6 }; + + uint64 m_ulSteamIDLobby; // Lobby ID + uint64 m_ulSteamIDUserChanged; // user who's status in the lobby just changed - can be recipient + uint64 m_ulSteamIDMakingChange; // Chat member who made the change (different from SteamIDUserChange if kicking, muting, etc.) + // for example, if one user kicks another from the lobby, this will be set to the id of the user who initiated the kick + uint32 m_rgfChatMemberStateChange; // bitfield of EChatMemberStateChange values +}; + + +//----------------------------------------------------------------------------- +// Purpose: A chat message for this lobby has been sent +// use GetLobbyChatEntry( m_iChatID ) to retrieve the contents of this message +//----------------------------------------------------------------------------- +struct LobbyChatMsg_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 7 }; + + uint64 m_ulSteamIDLobby; // the lobby id this is in + uint64 m_ulSteamIDUser; // steamID of the user who has sent this message + uint8 m_eChatEntryType; // type of message + uint32 m_iChatID; // index of the chat entry to lookup +}; + + +//----------------------------------------------------------------------------- +// Purpose: A game created a game for all the members of the lobby to join, +// as triggered by a SetLobbyGameServer() +// it's up to the individual clients to take action on this; the usual +// game behavior is to leave the lobby and connect to the specified game server +//----------------------------------------------------------------------------- +struct LobbyGameCreated_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 9 }; + + uint64 m_ulSteamIDLobby; // the lobby we were in + uint64 m_ulSteamIDGameServer; // the new game server that has been created or found for the lobby members + uint32 m_unIP; // IP & Port of the game server (if any) + uint16 m_usPort; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Number of matching lobbies found +// iterate the returned lobbies with GetLobbyByIndex(), from values 0 to m_nLobbiesMatching-1 +//----------------------------------------------------------------------------- +struct LobbyMatchList_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 10 }; + uint32 m_nLobbiesMatching; // Number of lobbies that matched search criteria and we have SteamIDs for +}; + + +//----------------------------------------------------------------------------- +// Purpose: posted if a user is forcefully removed from a lobby +// can occur if a user loses connection to Steam +//----------------------------------------------------------------------------- +struct LobbyKicked_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 12 }; + uint64 m_ulSteamIDLobby; // Lobby + uint64 m_ulSteamIDAdmin; // User who kicked you - possibly the ID of the lobby itself + uint8 m_bKickedDueToDisconnect; // true if you were kicked from the lobby due to the user losing connection to Steam (currently always true) +}; + + +//----------------------------------------------------------------------------- +// Purpose: Result of our request to create a Lobby +// m_eResult == k_EResultOK on success +// at this point, the lobby has been joined and is ready for use +// a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) +//----------------------------------------------------------------------------- +struct LobbyCreated_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 13 }; + + EResult m_eResult; // k_EResultOK - the lobby was successfully created + // k_EResultNoConnection - your Steam client doesn't have a connection to the back-end + // k_EResultTimeout - you the message to the Steam servers, but it didn't respond + // k_EResultFail - the server responded, but with an unknown internal error + // k_EResultAccessDenied - your game isn't set to allow lobbies, or your client does haven't rights to play the game + // k_EResultLimitExceeded - your game client has created too many lobbies + + uint64 m_ulSteamIDLobby; // chat room, zero if failed +}; + +// used by now obsolete RequestFriendsLobbiesResponse_t +// enum { k_iCallback = k_iSteamMatchmakingCallbacks + 14 }; + +// used by now obsolete PSNGameBootInviteResult_t +// enum { k_iCallback = k_iSteamMatchmakingCallbacks + 15 }; + +//----------------------------------------------------------------------------- +// Purpose: Result of our request to create a Lobby +// m_eResult == k_EResultOK on success +// at this point, the lobby has been joined and is ready for use +// a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) +//----------------------------------------------------------------------------- +struct FavoritesListAccountsUpdated_t +{ + enum { k_iCallback = k_iSteamMatchmakingCallbacks + 16 }; + + EResult m_eResult; +}; + + + + +// Steam has responded to the user request to join a party via the given Beacon ID. +// If successful, the connect string contains game-specific instructions to connect +// to the game with that party. +struct JoinPartyCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 1 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; + CSteamID m_SteamIDBeaconOwner; + char m_rgchConnectString[256]; +}; + +// Response to CreateBeacon request. If successful, the beacon ID is provided. +struct CreateBeaconCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 2 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; +}; + +// Someone has used the beacon to join your party - they are in-flight now +// and we've reserved one of the open slots for them. +// You should confirm when they join your party by calling OnReservationCompleted(). +// Otherwise, Steam may timeout their reservation eventually. +struct ReservationNotificationCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 3 }; + + PartyBeaconID_t m_ulBeaconID; + CSteamID m_steamIDJoiner; +}; + +// Response to ChangeNumOpenSlots call +struct ChangeNumOpenSlotsCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 4 }; + + EResult m_eResult; +}; + +// The list of possible Party beacon locations has changed +struct AvailableBeaconLocationsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 5 }; +}; + +// The list of active beacons may have changed +struct ActiveBeaconsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 6 }; +}; + + +#pragma pack( pop ) + + +#endif // ISTEAMMATCHMAKING diff --git a/lsteamclient/steamworks_sdk_163/isteammusic.h b/lsteamclient/steamworks_sdk_163/isteammusic.h new file mode 100644 index 00000000000..ffa49a08933 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteammusic.h @@ -0,0 +1,71 @@ +//============ Copyright (c) Valve Corporation, All rights reserved. ============ + +#ifndef ISTEAMMUSIC_H +#define ISTEAMMUSIC_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +enum AudioPlayback_Status +{ + AudioPlayback_Undefined = 0, + AudioPlayback_Playing = 1, + AudioPlayback_Paused = 2, + AudioPlayback_Idle = 3 +}; + + +//----------------------------------------------------------------------------- +// Purpose: Functions to control music playback in the steam client +//----------------------------------------------------------------------------- +class ISteamMusic +{ +public: + virtual bool BIsEnabled() = 0; + virtual bool BIsPlaying() = 0; + + virtual AudioPlayback_Status GetPlaybackStatus() = 0; + + virtual void Play() = 0; + virtual void Pause() = 0; + virtual void PlayPrevious() = 0; + virtual void PlayNext() = 0; + + // volume is between 0.0 and 1.0 + virtual void SetVolume( float flVolume ) = 0; + virtual float GetVolume() = 0; + +}; + +#define STEAMMUSIC_INTERFACE_VERSION "STEAMMUSIC_INTERFACE_VERSION001" + +// Global interface accessor +inline ISteamMusic *SteamMusic(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusic *, SteamMusic, STEAMMUSIC_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +STEAM_CALLBACK_BEGIN( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) +STEAM_CALLBACK_END(0) + +STEAM_CALLBACK_BEGIN( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, float, m_flNewVolume ) +STEAM_CALLBACK_END(1) + +#pragma pack( pop ) + + +#endif // #define ISTEAMMUSIC_H diff --git a/lsteamclient/steamworks_sdk_163/isteamnetworking.h b/lsteamclient/steamworks_sdk_163/isteamnetworking.h new file mode 100644 index 00000000000..b7e077a3b8a --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamnetworking.h @@ -0,0 +1,343 @@ +//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to steam managing network connections between game clients & servers +// +//============================================================================= + +#ifndef ISTEAMNETWORKING +#define ISTEAMNETWORKING +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// list of possible errors returned by SendP2PPacket() API +// these will be posted in the P2PSessionConnectFail_t callback +enum EP2PSessionError +{ + k_EP2PSessionErrorNone = 0, + k_EP2PSessionErrorNoRightsToApp = 2, // local user doesn't own the app that is running + k_EP2PSessionErrorTimeout = 4, // target isn't responding, perhaps not calling AcceptP2PSessionWithUser() + // corporate firewalls can also block this (NAT traversal is not firewall traversal) + // make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction + + // The following error codes were removed and will never be sent. + // For privacy reasons, there is no reply if the user is offline or playing another game. + k_EP2PSessionErrorNotRunningApp_DELETED = 1, + k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3, + + k_EP2PSessionErrorMax = 5 +}; + +// SendP2PPacket() send types +// Typically k_EP2PSendUnreliable is what you want for UDP-like packets, k_EP2PSendReliable for TCP-like packets +enum EP2PSend +{ + // Basic UDP send. Packets can't be bigger than 1200 bytes (your typical MTU size). Can be lost, or arrive out of order (rare). + // The sending API does have some knowledge of the underlying connection, so if there is no NAT-traversal accomplished or + // there is a recognized adjustment happening on the connection, the packet will be batched until the connection is open again. + k_EP2PSendUnreliable = 0, + + // As above, but if the underlying p2p connection isn't yet established the packet will just be thrown away. Using this on the first + // packet sent to a remote host almost guarantees the packet will be dropped. + // This is only really useful for kinds of data that should never buffer up, i.e. voice payload packets + k_EP2PSendUnreliableNoDelay = 1, + + // Reliable message send. Can send up to 1MB of data in a single message. + // Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for efficient sends of large chunks of data. + k_EP2PSendReliable = 2, + + // As above, but applies the Nagle algorithm to the send - sends will accumulate + // until the current MTU size (typically ~1200 bytes, but can change) or ~200ms has passed (Nagle algorithm). + // Useful if you want to send a set of smaller messages but have the coalesced into a single packet + // Since the reliable stream is all ordered, you can do several small message sends with k_EP2PSendReliableWithBuffering and then + // do a normal k_EP2PSendReliable to force all the buffered data to be sent. + k_EP2PSendReliableWithBuffering = 3, + +}; + + +// connection state to a specified user, returned by GetP2PSessionState() +// this is under-the-hood info about what's going on with a SendP2PPacket(), shouldn't be needed except for debuggin +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif +struct P2PSessionState_t +{ + uint8 m_bConnectionActive; // true if we've got an active open connection + uint8 m_bConnecting; // true if we're currently trying to establish a connection + uint8 m_eP2PSessionError; // last error recorded (see enum above) + uint8 m_bUsingRelay; // true if it's going through a relay server (TURN) + int32 m_nBytesQueuedForSend; + int32 m_nPacketsQueuedForSend; + uint32 m_nRemoteIP; // potential IP:Port of remote host. Could be TURN server. + uint16 m_nRemotePort; // Only exists for compatibility with older authentication api's +}; +#pragma pack( pop ) + + +// handle to a socket +typedef uint32 SNetSocket_t; // CreateP2PConnectionSocket() +typedef uint32 SNetListenSocket_t; // CreateListenSocket() + +// connection progress indicators, used by CreateP2PConnectionSocket() +enum ESNetSocketState +{ + k_ESNetSocketStateInvalid = 0, + + // communication is valid + k_ESNetSocketStateConnected = 1, + + // states while establishing a connection + k_ESNetSocketStateInitiated = 10, // the connection state machine has started + + // p2p connections + k_ESNetSocketStateLocalCandidatesFound = 11, // we've found our local IP info + k_ESNetSocketStateReceivedRemoteCandidates = 12,// we've received information from the remote machine, via the Steam back-end, about their IP info + + // direct connections + k_ESNetSocketStateChallengeHandshake = 15, // we've received a challenge packet from the server + + // failure states + k_ESNetSocketStateDisconnecting = 21, // the API shut it down, and we're in the process of telling the other end + k_ESNetSocketStateLocalDisconnect = 22, // the API shut it down, and we've completed shutdown + k_ESNetSocketStateTimeoutDuringConnect = 23, // we timed out while trying to creating the connection + k_ESNetSocketStateRemoteEndDisconnected = 24, // the remote end has disconnected from us + k_ESNetSocketStateConnectionBroken = 25, // connection has been broken; either the other end has disappeared or our local network connection has broke + +}; + +// describes how the socket is currently connected +enum ESNetSocketConnectionType +{ + k_ESNetSocketConnectionTypeNotConnected = 0, + k_ESNetSocketConnectionTypeUDP = 1, + k_ESNetSocketConnectionTypeUDPRelay = 2, +}; + + +//----------------------------------------------------------------------------- +// Purpose: Functions for making connections and sending data between clients, +// traversing NAT's where possible +// +// NOTE: This interface is deprecated and may be removed in a future release of +/// the Steamworks SDK. Please see ISteamNetworkingSockets and +/// ISteamNetworkingMessages +//----------------------------------------------------------------------------- +class ISteamNetworking +{ +public: + //////////////////////////////////////////////////////////////////////////////////////////// + // + // UDP-style (connectionless) networking interface. These functions send messages using + // an API organized around the destination. Reliable and unreliable messages are supported. + // + // For a more TCP-style interface (meaning you have a connection handle), see the functions below. + // Both interface styles can send both reliable and unreliable messages. + // + // Automatically establishes NAT-traversing or Relay server connections + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingMessages. + + // Sends a P2P packet to the specified user + // UDP-like, unreliable and a max packet size of 1200 bytes + // the first packet send may be delayed as the NAT-traversal code runs + // if we can't get through to the user, an error will be posted via the callback P2PSessionConnectFail_t + // see EP2PSend enum above for the descriptions of the different ways of sending packets + // + // nChannel is a routing number you can use to help route message to different systems - you'll have to call ReadP2PPacket() + // with the same channel number in order to retrieve the data on the other end + // using different channels to talk to the same user will still use the same underlying p2p connection, saving on resources + virtual bool SendP2PPacket( CSteamID steamIDRemote, const void *pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel = 0 ) = 0; + + // returns true if any data is available for read, and the amount of data that will need to be read + virtual bool IsP2PPacketAvailable( uint32 *pcubMsgSize, int nChannel = 0 ) = 0; + + // reads in a packet that has been sent from another user via SendP2PPacket() + // returns the size of the message and the steamID of the user who sent it in the last two parameters + // if the buffer passed in is too small, the message will be truncated + // this call is not blocking, and will return false if no data is available + virtual bool ReadP2PPacket( void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, CSteamID *psteamIDRemote, int nChannel = 0 ) = 0; + + // AcceptP2PSessionWithUser() should only be called in response to a P2PSessionRequest_t callback + // P2PSessionRequest_t will be posted if another user tries to send you a packet that you haven't talked to yet + // if you don't want to talk to the user, just ignore the request + // if the user continues to send you packets, another P2PSessionRequest_t will be posted periodically + // this may be called multiple times for a single user + // (if you've called SendP2PPacket() on the other user, this implicitly accepts the session request) + virtual bool AcceptP2PSessionWithUser( CSteamID steamIDRemote ) = 0; + + // call CloseP2PSessionWithUser() when you're done talking to a user, will free up resources under-the-hood + // if the remote user tries to send data to you again, another P2PSessionRequest_t callback will be posted + virtual bool CloseP2PSessionWithUser( CSteamID steamIDRemote ) = 0; + + // call CloseP2PChannelWithUser() when you're done talking to a user on a specific channel. Once all channels + // open channels to a user have been closed, the open session to the user will be closed and new data from this + // user will trigger a P2PSessionRequest_t callback + virtual bool CloseP2PChannelWithUser( CSteamID steamIDRemote, int nChannel ) = 0; + + // fills out P2PSessionState_t structure with details about the underlying connection to the user + // should only needed for debugging purposes + // returns false if no connection exists to the specified user + virtual bool GetP2PSessionState( CSteamID steamIDRemote, P2PSessionState_t *pConnectionState ) = 0; + + // Allow P2P connections to fall back to being relayed through the Steam servers if a direct connection + // or NAT-traversal cannot be established. Only applies to connections created after setting this value, + // or to existing connections that need to automatically reconnect after this value is set. + // + // P2P packet relay is allowed by default + // + // NOTE: This function is deprecated and may be removed in a future version of the SDK. For + // security purposes, we may decide to relay the traffic to certain peers, even if you pass false + // to this function, to prevent revealing the client's IP address top another peer. + virtual bool AllowP2PPacketRelay( bool bAllow ) = 0; + + + //////////////////////////////////////////////////////////////////////////////////////////// + // + // LISTEN / CONNECT connection-oriented interface functions + // + // These functions are more like a client-server TCP API. One side is the "server" + // and "listens" for incoming connections, which then must be "accepted." The "client" + // initiates a connection by "connecting." Sending and receiving is done through a + // connection handle. + // + // For a more UDP-style interface, where you do not track connection handles but + // simply send messages to a SteamID, use the UDP-style functions above. + // + // Both methods can send both reliable and unreliable methods. + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingSockets. + // + //////////////////////////////////////////////////////////////////////////////////////////// + + + // creates a socket and listens others to connect + // will trigger a SocketStatusCallback_t callback on another client connecting + // nVirtualP2PPort is the unique ID that the client will connect to, in case you have multiple ports + // this can usually just be 0 unless you want multiple sets of connections + // unIP is the local IP address to bind to + // pass in 0 if you just want the default local IP + // unPort is the port to use + // pass in 0 if you don't want users to be able to connect via IP/Port, but expect to be always peer-to-peer connections only + virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; + + // creates a socket and begin connection to a remote destination + // can connect via a known steamID (client or game server), or directly to an IP + // on success will trigger a SocketStatusCallback_t callback + // on failure or timeout will trigger a SocketStatusCallback_t callback with a failure code in m_eSNetSocketState + virtual SNetSocket_t CreateP2PConnectionSocket( CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ) = 0; + virtual SNetSocket_t CreateConnectionSocket( SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ) = 0; + + // disconnects the connection to the socket, if any, and invalidates the handle + // any unread data on the socket will be thrown away + // if bNotifyRemoteEnd is set, socket will not be completely destroyed until the remote end acknowledges the disconnect + virtual bool DestroySocket( SNetSocket_t hSocket, bool bNotifyRemoteEnd ) = 0; + // destroying a listen socket will automatically kill all the regular sockets generated from it + virtual bool DestroyListenSocket( SNetListenSocket_t hSocket, bool bNotifyRemoteEnd ) = 0; + + // sending data + // must be a handle to a connected socket + // data is all sent via UDP, and thus send sizes are limited to 1200 bytes; after this, many routers will start dropping packets + // use the reliable flag with caution; although the resend rate is pretty aggressive, + // it can still cause stalls in receiving data (like TCP) + virtual bool SendDataOnSocket( SNetSocket_t hSocket, void *pubData, uint32 cubData, bool bReliable ) = 0; + + // receiving data + // returns false if there is no data remaining + // fills out *pcubMsgSize with the size of the next message, in bytes + virtual bool IsDataAvailableOnSocket( SNetSocket_t hSocket, uint32 *pcubMsgSize ) = 0; + + // fills in pubDest with the contents of the message + // messages are always complete, of the same size as was sent (i.e. packetized, not streaming) + // if *pcubMsgSize < cubDest, only partial data is written + // returns false if no data is available + virtual bool RetrieveDataFromSocket( SNetSocket_t hSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize ) = 0; + + // checks for data from any socket that has been connected off this listen socket + // returns false if there is no data remaining + // fills out *pcubMsgSize with the size of the next message, in bytes + // fills out *phSocket with the socket that data is available on + virtual bool IsDataAvailable( SNetListenSocket_t hListenSocket, uint32 *pcubMsgSize, SNetSocket_t *phSocket ) = 0; + + // retrieves data from any socket that has been connected off this listen socket + // fills in pubDest with the contents of the message + // messages are always complete, of the same size as was sent (i.e. packetized, not streaming) + // if *pcubMsgSize < cubDest, only partial data is written + // returns false if no data is available + // fills out *phSocket with the socket that data is available on + virtual bool RetrieveData( SNetListenSocket_t hListenSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, SNetSocket_t *phSocket ) = 0; + + // returns information about the specified socket, filling out the contents of the pointers + virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, SteamIPAddress_t *punIPRemote, uint16 *punPortRemote ) = 0; + + // returns which local port the listen socket is bound to + // *pnIP and *pnPort will be 0 if the socket is set to listen for P2P connections only + virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, SteamIPAddress_t *pnIP, uint16 *pnPort ) = 0; + + // returns true to describe how the socket ended up connecting + virtual ESNetSocketConnectionType GetSocketConnectionType( SNetSocket_t hSocket ) = 0; + + // max packet size, in bytes + virtual int GetMaxPacketSize( SNetSocket_t hSocket ) = 0; +}; +#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking006" + +// Global interface accessor +inline ISteamNetworking *SteamNetworking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamNetworking, STEAMNETWORKING_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamNetworking *SteamGameServerNetworking(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamGameServerNetworking, STEAMNETWORKING_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +// callback notification - a user wants to talk to us over the P2P channel via the SendP2PPacket() API +// in response, a call to AcceptP2PPacketsFromUser() needs to be made, if you want to talk with them +struct P2PSessionRequest_t +{ + enum { k_iCallback = k_iSteamNetworkingCallbacks + 2 }; + CSteamID m_steamIDRemote; // user who wants to talk to us +}; + + +// callback notification - packets can't get through to the specified user via the SendP2PPacket() API +// all packets queued packets unsent at this point will be dropped +// further attempts to send will retry making the connection (but will be dropped if we fail again) +struct P2PSessionConnectFail_t +{ + enum { k_iCallback = k_iSteamNetworkingCallbacks + 3 }; + CSteamID m_steamIDRemote; // user we were sending packets to + uint8 m_eP2PSessionError; // EP2PSessionError indicating why we're having trouble +}; + + +// callback notification - status of a socket has changed +// used as part of the CreateListenSocket() / CreateP2PConnectionSocket() +struct SocketStatusCallback_t +{ + enum { k_iCallback = k_iSteamNetworkingCallbacks + 1 }; + SNetSocket_t m_hSocket; // the socket used to send/receive data to the remote host + SNetListenSocket_t m_hListenSocket; // this is the server socket that we were listening on; NULL if this was an outgoing connection + CSteamID m_steamIDRemote; // remote steamID we have connected to, if it has one + int m_eSNetSocketState; // socket state, ESNetSocketState +}; + +#pragma pack( pop ) + +#endif // ISTEAMNETWORKING diff --git a/lsteamclient/steamworks_sdk_163/isteamnetworkingmessages.h b/lsteamclient/steamworks_sdk_163/isteamnetworkingmessages.h new file mode 100644 index 00000000000..2f3ead439e7 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamnetworkingmessages.h @@ -0,0 +1,197 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGMESSAGES +#define ISTEAMNETWORKINGMESSAGES + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +/// The non-connection-oriented interface to send and receive messages +/// (whether they be "clients" or "servers"). +/// +/// ISteamNetworkingSockets is connection-oriented (like TCP), meaning you +/// need to listen and connect, and then you send messages using a connection +/// handle. ISteamNetworkingMessages is more like UDP, in that you can just send +/// messages to arbitrary peers at any time. The underlying connections are +/// established implicitly. +/// +/// Under the hood ISteamNetworkingMessages works on top of the ISteamNetworkingSockets +/// code, so you get the same routing and messaging efficiency. The difference is +/// mainly in your responsibility to explicitly establish a connection and +/// the type of feedback you get about the state of the connection. Both +/// interfaces can do "P2P" communications, and both support both unreliable +/// and reliable messages, fragmentation and reassembly. +/// +/// The primary purpose of this interface is to be "like UDP", so that UDP-based code +/// can be ported easily to take advantage of relayed connections. If you find +/// yourself needing more low level information or control, or to be able to better +/// handle failure, then you probably need to use ISteamNetworkingSockets directly. +/// Also, note that if your main goal is to obtain a connection between two peers +/// without concerning yourself with assigning roles of "client" and "server", +/// you may find the symmetric connection mode of ISteamNetworkingSockets useful. +/// (See k_ESteamNetworkingConfig_SymmetricConnect.) +/// +class ISteamNetworkingMessages +{ +public: + /// Sends a message to the specified host. If we don't already have a session with that user, + /// a session is implicitly created. There might be some handshaking that needs to happen + /// before we can actually begin sending message data. If this handshaking fails and we can't + /// get through, an error will be posted via the callback SteamNetworkingMessagesSessionFailed_t. + /// There is no notification when the operation succeeds. (You should have the peer send a reply + /// for this purpose.) + /// + /// Sending a message to a host will also implicitly accept any incoming connection from that host. + /// + /// nSendFlags is a bitmask of k_nSteamNetworkingSend_xxx options + /// + /// nRemoteChannel is a routing number you can use to help route message to different systems. + /// You'll have to call ReceiveMessagesOnChannel() with the same channel number in order to retrieve + /// the data on the other end. + /// + /// Using different channels to talk to the same user will still use the same underlying + /// connection, saving on resources. If you don't need this feature, use 0. + /// Otherwise, small integers are the most efficient. + /// + /// It is guaranteed that reliable messages to the same host on the same channel + /// will be be received by the remote host (if they are received at all) exactly once, + /// and in the same order that they were sent. + /// + /// NO other order guarantees exist! In particular, unreliable messages may be dropped, + /// received out of order with respect to each other and with respect to reliable data, + /// or may be received multiple times. Messages on different channels are *not* guaranteed + /// to be received in the order they were sent. + /// + /// A note for those familiar with TCP/IP ports, or converting an existing codebase that + /// opened multiple sockets: You might notice that there is only one channel, and with + /// TCP/IP each endpoint has a port number. You can think of the channel number as the + /// *destination* port. If you need each message to also include a "source port" (so the + /// recipient can route the reply), then just put that in your message. That is essentially + /// how UDP works! + /// + /// Returns: + /// - k_EREsultOK on success. + /// - k_EResultNoConnection, if the session has failed or was closed by the peer and + /// k_nSteamNetworkingSend_AutoRestartBrokenSession was not specified. (You can + /// use GetSessionConnectionInfo to get the details.) In order to acknowledge the + /// broken session and start a new one, you must call CloseSessionWithUser, or you may + /// repeat the call with k_nSteamNetworkingSend_AutoRestartBrokenSession. See + /// k_nSteamNetworkingSend_AutoRestartBrokenSession for more details. + /// - See ISteamNetworkingSockets::SendMessageToConnection for more possible return values + virtual EResult SendMessageToUser( const SteamNetworkingIdentity &identityRemote, const void *pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ) = 0; + + /// Reads the next message that has been sent from another user via SendMessageToUser() on the given channel. + /// Returns number of messages returned into your list. (0 if no message are available on that channel.) + /// + /// When you're done with the message object(s), make sure and call SteamNetworkingMessage_t::Release()! + virtual int ReceiveMessagesOnChannel( int nLocalChannel, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Call this in response to a SteamNetworkingMessagesSessionRequest_t callback. + /// SteamNetworkingMessagesSessionRequest_t are posted when a user tries to send you a message, + /// and you haven't tried to talk to them first. If you don't want to talk to them, just ignore + /// the request. If the user continues to send you messages, SteamNetworkingMessagesSessionRequest_t + /// callbacks will continue to be posted periodically. + /// + /// Returns false if there is no session with the user pending or otherwise. If there is an + /// existing active session, this function will return true, even if it is not pending. + /// + /// Calling SendMessageToUser() will implicitly accepts any pending session request to that user. + virtual bool AcceptSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user to immediately free up resources under-the-hood. + /// If the remote user tries to send data to you again, another SteamNetworkingMessagesSessionRequest_t + /// callback will be posted. + /// + /// Note that sessions that go unused for a few minutes are automatically timed out. + virtual bool CloseSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user on a specific channel. Once all + /// open channels to a user have been closed, the open session to the user will be + /// closed, and any new data from this user will trigger a + /// SteamSteamNetworkingMessagesSessionRequest_t callback + virtual bool CloseChannelWithUser( const SteamNetworkingIdentity &identityRemote, int nLocalChannel ) = 0; + + /// Returns information about the latest state of a connection, if any, with the given peer. + /// Primarily intended for debugging purposes, but can also be used to get more detailed + /// failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokenSession.) + /// + /// Returns the value of SteamNetConnectionInfo_t::m_eState, or k_ESteamNetworkingConnectionState_None + /// if no connection exists with specified peer. You may pass nullptr for either parameter if + /// you do not need the corresponding details. Note that sessions time out after a while, + /// so if a connection fails, or SendMessageToUser returns k_EResultNoConnection, you cannot wait + /// indefinitely to obtain the reason for failure. + virtual ESteamNetworkingConnectionState GetSessionConnectionInfo( const SteamNetworkingIdentity &identityRemote, SteamNetConnectionInfo_t *pConnectionInfo, SteamNetConnectionRealTimeStatus_t *pQuickStatus ) = 0; +}; +#define STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "SteamNetworkingMessages002" + +// +// Callbacks +// + +#pragma pack( push, 1 ) + +/// Posted when a remote host is sending us a message, and we do not already have a session with them +struct SteamNetworkingMessagesSessionRequest_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 1 }; + SteamNetworkingIdentity m_identityRemote; // user who wants to talk to us +}; + +/// Posted when we fail to establish a connection, or we detect that communications +/// have been disrupted it an unusual way. There is no notification when a peer proactively +/// closes the session. ("Closed by peer" is not a concept of UDP-style communications, and +/// SteamNetworkingMessages is primarily intended to make porting UDP code easy.) +/// +/// Remember: callbacks are asynchronous. See notes on SendMessageToUser, +/// and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular. +/// +/// Also, if a session times out due to inactivity, no callbacks will be posted. The only +/// way to detect that this is happening is that querying the session state may return +/// none, connecting, and findingroute again. +struct SteamNetworkingMessagesSessionFailed_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 2 }; + + /// Detailed info about the session that failed. + /// SteamNetConnectionInfo_t::m_identityRemote indicates who this session + /// was with. + SteamNetConnectionInfo_t m_info; +}; + +#pragma pack(pop) + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGMESSAGES_INTERFACE_VERSION[25] == '2', "Version mismatch" ); + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamNetworkingMessages_Lib() { return SteamNetworkingMessages_LibV2(); } + + // If running in context of steam, we also define a gameserver instance. + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamGameServerNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages_Lib() { return SteamGameServerNetworkingMessages_LibV2(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_LibV2(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_LibV2(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + + // Steamworks SDK + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamGameServerNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_SteamAPI(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_SteamAPI(); } + #endif +#endif + +#endif // ISTEAMNETWORKINGMESSAGES diff --git a/lsteamclient/steamworks_sdk_163/isteamnetworkingsockets.h b/lsteamclient/steamworks_sdk_163/isteamnetworkingsockets.h new file mode 100644 index 00000000000..c631558b4e3 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamnetworkingsockets.h @@ -0,0 +1,1029 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGSOCKETS +#define ISTEAMNETWORKINGSOCKETS + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamNetAuthenticationStatus_t; +struct SteamNetworkingFakeIPResult_t; +class ISteamNetworkingConnectionSignaling; +class ISteamNetworkingSignalingRecvContext; +class ISteamNetworkingFakeUDPPort; + +//----------------------------------------------------------------------------- +/// Lower level networking API. +/// +/// - Connection-oriented API (like TCP, not UDP). When sending and receiving +/// messages, a connection handle is used. (For a UDP-style interface, where +/// the peer is identified by their address with each send/recv call, see +/// ISteamNetworkingMessages.) The typical pattern is for a "server" to "listen" +/// on a "listen socket." A "client" will "connect" to the server, and the +/// server will "accept" the connection. If you have a symmetric situation +/// where either peer may initiate the connection and server/client roles are +/// not clearly defined, check out k_ESteamNetworkingConfig_SymmetricConnect. +/// - But unlike TCP, it's message-oriented, not stream-oriented. +/// - Mix of reliable and unreliable messages +/// - Fragmentation and reassembly +/// - Supports connectivity over plain UDP +/// - Also supports SDR ("Steam Datagram Relay") connections, which are +/// addressed by the identity of the peer. There is a "P2P" use case and +/// a "hosted dedicated server" use case. +/// +/// Note that neither of the terms "connection" nor "socket" necessarily correspond +/// one-to-one with an underlying UDP socket. An attempt has been made to +/// keep the semantics as similar to the standard socket model when appropriate, +/// but some deviations do exist. +/// +/// See also: ISteamNetworkingMessages, the UDP-style interface. This API might be +/// easier to use, especially when porting existing UDP code. +class ISteamNetworkingSockets +{ +public: + + /// Creates a "server" socket that listens for clients to connect to by + /// calling ConnectByIPAddress, over ordinary UDP (IPv4 or IPv6) + /// + /// You must select a specific local port to listen on and set it + /// the port field of the local address. + /// + /// Usually you will set the IP portion of the address to zero (SteamNetworkingIPAddr::Clear()). + /// This means that you will not bind to any particular local interface (i.e. the same + /// as INADDR_ANY in plain socket code). Furthermore, if possible the socket will be bound + /// in "dual stack" mode, which means that it can accept both IPv4 and IPv6 client connections. + /// If you really do wish to bind a particular interface, then set the local address to the + /// appropriate IPv4 or IPv6 IP. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t + /// will be posted. The connection will be in the connecting state. + virtual HSteamListenSocket CreateListenSocketIP( const SteamNetworkingIPAddr &localAddress, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Creates a connection and begins talking to a "server" over UDP at the + /// given IPv4 or IPv6 address. The remote host must be listening with a + /// matching call to CreateListenSocketIP on the specified port. + /// + /// A SteamNetConnectionStatusChangedCallback_t callback will be triggered when we start + /// connecting, and then another one on either timeout or successful connection. + /// + /// If the server does not have any identity configured, then their network address + /// will be the only identity in use. Or, the network host may provide a platform-specific + /// identity with or without a valid certificate to authenticate that identity. (These + /// details will be contained in the SteamNetConnectionStatusChangedCallback_t.) It's + /// up to your application to decide whether to allow the connection. + /// + /// By default, all connections will get basic encryption sufficient to prevent + /// casual eavesdropping. But note that without certificates (or a shared secret + /// distributed through some other out-of-band mechanism), you don't have any + /// way of knowing who is actually on the other end, and thus are vulnerable to + /// man-in-the-middle attacks. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Like CreateListenSocketIP, but clients will connect using ConnectP2P. + /// + /// nLocalVirtualPort specifies how clients can connect to this socket using + /// ConnectP2P. It's very common for applications to only have one listening socket; + /// in that case, use zero. If you need to open multiple listen sockets and have clients + /// be able to connect to one or the other, then nLocalVirtualPort should be a small + /// integer (<1000) unique to each listen socket you create. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes. + /// + /// If you are listening on a dedicated servers in known data center, + /// then you can listen using this function instead of CreateHostedDedicatedServerListenSocket, + /// to allow clients to connect without a ticket. Any user that owns + /// the app and is signed into Steam will be able to attempt to connect to + /// your server. Also, a connection attempt may require the client to + /// be connected to Steam, which is one more moving part that may fail. When + /// tickets are used, then once a ticket is obtained, a client can connect to + /// your server even if they got disconnected from Steam or Steam is offline. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateListenSocketP2P( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Begin connecting to a peer that is identified using a platform-specific identifier. + /// This uses the default rendezvous service, which depends on the platform and library + /// configuration. (E.g. on Steam, it goes through the steam backend.) + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// To use your own signaling service, see: + /// - ConnectP2PCustomSignaling + /// - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling + virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Accept an incoming connection that has been received on a listen socket. + /// + /// When a connection attempt is received (perhaps after a few basic handshake + /// packets have been exchanged to prevent trivial spoofing), a connection interface + /// object is created in the k_ESteamNetworkingConnectionState_Connecting state + /// and a SteamNetConnectionStatusChangedCallback_t is posted. At this point, your + /// application MUST either accept or close the connection. (It may not ignore it.) + /// Accepting the connection will transition it either into the connected state, + /// or the finding route state, depending on the connection type. + /// + /// You should take action within a second or two, because accepting the connection is + /// what actually sends the reply notifying the client that they are connected. If you + /// delay taking action, from the client's perspective it is the same as the network + /// being unresponsive, and the client may timeout the connection attempt. In other + /// words, the client cannot distinguish between a delay caused by network problems + /// and a delay caused by the application. + /// + /// This means that if your application goes for more than a few seconds without + /// processing callbacks (for example, while loading a map), then there is a chance + /// that a client may attempt to connect in that interval and fail due to timeout. + /// + /// If the application does not respond to the connection attempt in a timely manner, + /// and we stop receiving communication from the client, the connection attempt will + /// be timed out locally, transitioning the connection to the + /// k_ESteamNetworkingConnectionState_ProblemDetectedLocally state. The client may also + /// close the connection before it is accepted, and a transition to the + /// k_ESteamNetworkingConnectionState_ClosedByPeer is also possible depending the exact + /// sequence of events. + /// + /// Returns k_EResultInvalidParam if the handle is invalid. + /// Returns k_EResultInvalidState if the connection is not in the appropriate state. + /// (Remember that the connection state could change in between the time that the + /// notification being posted to the queue and when it is received by the application.) + /// + /// A note about connection configuration options. If you need to set any configuration + /// options that are common to all connections accepted through a particular listen + /// socket, consider setting the options on the listen socket, since such options are + /// inherited automatically. If you really do need to set options that are connection + /// specific, it is safe to set them on the connection before accepting the connection. + virtual EResult AcceptConnection( HSteamNetConnection hConn ) = 0; + + /// Disconnects from the remote host and invalidates the connection handle. + /// Any unread data on the connection is discarded. + /// + /// nReason is an application defined code that will be received on the other + /// end and recorded (when possible) in backend analytics. The value should + /// come from a restricted range. (See ESteamNetConnectionEnd.) If you don't need + /// to communicate any information to the remote host, and do not want analytics to + /// be able to distinguish "normal" connection terminations from "exceptional" ones, + /// You may pass zero, in which case the generic value of + /// k_ESteamNetConnectionEnd_App_Generic will be used. + /// + /// pszDebug is an optional human-readable diagnostic string that will be received + /// by the remote host and recorded (when possible) in backend analytics. + /// + /// If you wish to put the socket into a "linger" state, where an attempt is made to + /// flush any remaining sent data, use bEnableLinger=true. Otherwise reliable data + /// is not flushed. + /// + /// If the connection has already ended and you are just freeing up the + /// connection interface, the reason code, debug string, and linger flag are + /// ignored. + virtual bool CloseConnection( HSteamNetConnection hPeer, int nReason, const char *pszDebug, bool bEnableLinger ) = 0; + + /// Destroy a listen socket. All the connections that were accepting on the listen + /// socket are closed ungracefully. + virtual bool CloseListenSocket( HSteamListenSocket hSocket ) = 0; + + /// Set connection user data. the data is returned in the following places + /// - You can query it using GetConnectionUserData. + /// - The SteamNetworkingmessage_t structure. + /// - The SteamNetConnectionInfo_t structure. + /// (Which is a member of SteamNetConnectionStatusChangedCallback_t -- but see WARNINGS below!!!!) + /// + /// Do you need to set this atomically when the connection is created? + /// See k_ESteamNetworkingConfig_ConnectionUserData. + /// + /// WARNING: Be *very careful* when using the value provided in callbacks structs. + /// Callbacks are queued, and the value that you will receive in your + /// callback is the userdata that was effective at the time the callback + /// was queued. There are subtle race conditions that can happen if you + /// don't understand this! + /// + /// If any incoming messages for this connection are queued, the userdata + /// field is updated, so that when when you receive messages (e.g. with + /// ReceiveMessagesOnConnection), they will always have the very latest + /// userdata. So the tricky race conditions that can happen with callbacks + /// do not apply to retrieving messages. + /// + /// Returns false if the handle is invalid. + virtual bool SetConnectionUserData( HSteamNetConnection hPeer, int64 nUserData ) = 0; + + /// Fetch connection user data. Returns -1 if handle is invalid + /// or if you haven't set any userdata on the connection. + virtual int64 GetConnectionUserData( HSteamNetConnection hPeer ) = 0; + + /// Set a name for the connection, used mostly for debugging + virtual void SetConnectionName( HSteamNetConnection hPeer, const char *pszName ) = 0; + + /// Fetch connection name. Returns false if handle is invalid + virtual bool GetConnectionName( HSteamNetConnection hPeer, char *pszName, int nMaxLen ) = 0; + + /// Send a message to the remote host on the specified connection. + /// + /// nSendFlags determines the delivery guarantees that will be provided, + /// when data should be buffered, etc. E.g. k_nSteamNetworkingSend_Unreliable + /// + /// Note that the semantics we use for messages are not precisely + /// the same as the semantics of a standard "stream" socket. + /// (SOCK_STREAM) For an ordinary stream socket, the boundaries + /// between chunks are not considered relevant, and the sizes of + /// the chunks of data written will not necessarily match up to + /// the sizes of the chunks that are returned by the reads on + /// the other end. The remote host might read a partial chunk, + /// or chunks might be coalesced. For the message semantics + /// used here, however, the sizes WILL match. Each send call + /// will match a successful read call on the remote host + /// one-for-one. If you are porting existing stream-oriented + /// code to the semantics of reliable messages, your code should + /// work the same, since reliable message semantics are more + /// strict than stream semantics. The only caveat is related to + /// performance: there is per-message overhead to retain the + /// message sizes, and so if your code sends many small chunks + /// of data, performance will suffer. Any code based on stream + /// sockets that does not write excessively small chunks will + /// work without any changes. + /// + /// The pOutMessageNumber is an optional pointer to receive the + /// message number assigned to the message, if sending was successful. + /// + /// Returns: + /// - k_EResultInvalidParam: invalid connection handle, or the individual message is too big. + /// (See k_cbMaxSteamNetworkingSocketsMessageSizeSend) + /// - k_EResultInvalidState: connection is in an invalid state + /// - k_EResultNoConnection: connection has ended + /// - k_EResultIgnored: You used k_nSteamNetworkingSend_NoDelay, and the message was dropped because + /// we were not ready to send it. + /// - k_EResultLimitExceeded: there was already too much data queued to be sent. + /// (See k_ESteamNetworkingConfig_SendBufferSize) + virtual EResult SendMessageToConnection( HSteamNetConnection hConn, const void *pData, uint32 cbData, int nSendFlags, int64 *pOutMessageNumber ) = 0; + + /// Send one or more messages without copying the message payload. + /// This is the most efficient way to send messages. To use this + /// function, you must first allocate a message object using + /// ISteamNetworkingUtils::AllocateMessage. (Do not declare one + /// on the stack or allocate your own.) + /// + /// You should fill in the message payload. You can either let + /// it allocate the buffer for you and then fill in the payload, + /// or if you already have a buffer allocated, you can just point + /// m_pData at your buffer and set the callback to the appropriate function + /// to free it. Note that if you use your own buffer, it MUST remain valid + /// until the callback is executed. And also note that your callback can be + /// invoked at any time from any thread (perhaps even before SendMessages + /// returns!), so it MUST be fast and threadsafe. + /// + /// You MUST also fill in: + /// - m_conn - the handle of the connection to send the message to + /// - m_nFlags - bitmask of k_nSteamNetworkingSend_xxx flags. + /// + /// All other fields are currently reserved and should not be modified. + /// + /// The library will take ownership of the message structures. They may + /// be modified or become invalid at any time, so you must not read them + /// after passing them to this function. + /// + /// pOutMessageNumberOrResult is an optional array that will receive, + /// for each message, the message number that was assigned to the message + /// if sending was successful. If sending failed, then a negative EResult + /// value is placed into the array. For example, the array will hold + /// -k_EResultInvalidState if the connection was in an invalid state. + /// See ISteamNetworkingSockets::SendMessageToConnection for possible + /// failure codes. + virtual void SendMessages( int nMessages, SteamNetworkingMessage_t *const *pMessages, int64 *pOutMessageNumberOrResult ) = 0; + + /// Flush any messages waiting on the Nagle timer and send them + /// at the next transmission opportunity (often that means right now). + /// + /// If Nagle is enabled (it's on by default) then when calling + /// SendMessageToConnection the message will be buffered, up to the Nagle time + /// before being sent, to merge small messages into the same packet. + /// (See k_ESteamNetworkingConfig_NagleTime) + /// + /// Returns: + /// k_EResultInvalidParam: invalid connection handle + /// k_EResultInvalidState: connection is in an invalid state + /// k_EResultNoConnection: connection has ended + /// k_EResultIgnored: We weren't (yet) connected, so this operation has no effect. + virtual EResult FlushMessagesOnConnection( HSteamNetConnection hConn ) = 0; + + /// Fetch the next available message(s) from the connection, if any. + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// If the connection handle is invalid, -1 is returned. + /// + /// The order of the messages returned in the array is relevant. + /// Reliable messages will be received in the order they were sent (and with the + /// same sizes --- see SendMessageToConnection for on this subtle difference from a stream socket). + /// + /// Unreliable messages may be dropped, or delivered out of order with respect to + /// each other or with respect to reliable messages. The same unreliable message + /// may be received multiple times. + /// + /// If any messages are returned, you MUST call SteamNetworkingMessage_t::Release() on each + /// of them free up resources after you are done. It is safe to keep the object alive for + /// a little while (put it into some queue, etc), and you may call Release() from any thread. + virtual int ReceiveMessagesOnConnection( HSteamNetConnection hConn, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Returns basic information about the high-level state of the connection. + virtual bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo_t *pInfo ) = 0; + + /// Returns a small set of information about the real-time state of the connection + /// and the queue status of each lane. + /// + /// - pStatus may be NULL if the information is not desired. (E.g. you are only interested + /// in the lane information.) + /// - On entry, nLanes specifies the length of the pLanes array. This may be 0 + /// if you do not wish to receive any lane data. It's OK for this to be smaller than + /// the total number of configured lanes. + /// - pLanes points to an array that will receive lane-specific info. It can be NULL + /// if this is not needed. + /// + /// Return value: + /// - k_EResultNoConnection - connection handle is invalid or connection has been closed. + /// - k_EResultInvalidParam - nLanes is bad + virtual EResult GetConnectionRealTimeStatus( HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t *pStatus, + int nLanes, SteamNetConnectionRealTimeLaneStatus_t *pLanes ) = 0; + + /// Returns detailed connection stats in text format. Useful + /// for dumping to a log, etc. + /// + /// Returns: + /// -1 failure (bad connection handle) + /// 0 OK, your buffer was filled in and '\0'-terminated + /// >0 Your buffer was either nullptr, or it was too small and the text got truncated. + /// Try again with a buffer of at least N bytes. + virtual int GetDetailedConnectionStatus( HSteamNetConnection hConn, char *pszBuf, int cbBuf ) = 0; + + /// Returns local IP and port that a listen socket created using CreateListenSocketIP is bound to. + /// + /// An IPv6 address of ::0 means "any IPv4 or IPv6" + /// An IPv6 address of ::ffff:0000:0000 means "any IPv4" + virtual bool GetListenSocketAddress( HSteamListenSocket hSocket, SteamNetworkingIPAddr *address ) = 0; + + /// Create a pair of connections that are talking to each other, e.g. a loopback connection. + /// This is very useful for testing, or so that your client/server code can work the same + /// even when you are running a local "server". + /// + /// The two connections will immediately be placed into the connected state, and no callbacks + /// will be posted immediately. After this, if you close either connection, the other connection + /// will receive a callback, exactly as if they were communicating over the network. You must + /// close *both* sides in order to fully clean up the resources! + /// + /// By default, internal buffers are used, completely bypassing the network, the chopping up of + /// messages into packets, encryption, copying the payload, etc. This means that loopback + /// packets, by default, will not simulate lag or loss. Passing true for bUseNetworkLoopback will + /// cause the socket pair to send packets through the local network loopback device (127.0.0.1) + /// on ephemeral ports. Fake lag and loss are supported in this case, and CPU time is expended + /// to encrypt and decrypt. + /// + /// If you wish to assign a specific identity to either connection, you may pass a particular + /// identity. Otherwise, if you pass nullptr, the respective connection will assume a generic + /// "localhost" identity. If you use real network loopback, this might be translated to the + /// actual bound loopback port. Otherwise, the port will be zero. + virtual bool CreateSocketPair( HSteamNetConnection *pOutConnection1, HSteamNetConnection *pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity *pIdentity1, const SteamNetworkingIdentity *pIdentity2 ) = 0; + + /// Configure multiple outbound messages streams ("lanes") on a connection, and + /// control head-of-line blocking between them. Messages within a given lane + /// are always sent in the order they are queued, but messages from different + /// lanes may be sent out of order. Each lane has its own message number + /// sequence. The first message sent on each lane will be assigned the number 1. + /// + /// Each lane has a "priority". Lanes with higher numeric values will only be processed + /// when all lanes with lower number values are empty. The magnitudes of the priority + /// values are not relevant, only their sort order. + /// + /// Each lane also is assigned a weight, which controls the approximate proportion + /// of the bandwidth that will be consumed by the lane, relative to other lanes + /// of the same priority. (This is assuming the lane stays busy. An idle lane + /// does not build up "credits" to be be spent once a message is queued.) + /// This value is only meaningful as a proportion, relative to other lanes with + /// the same priority. For lanes with different priorities, the strict priority + /// order will prevail, and their weights relative to each other are not relevant. + /// Thus, if a lane has a unique priority value, the weight value for that lane is + /// not relevant. + /// + /// Example: 3 lanes, with priorities [ 0, 10, 10 ] and weights [ (NA), 20, 5 ]. + /// Messages sent on the first will always be sent first, before messages in the + /// other two lanes. Its weight value is irrelevant, since there are no other + /// lanes with priority=0. The other two lanes will share bandwidth, with the second + /// and third lanes sharing bandwidth using a ratio of approximately 4:1. + /// (The weights [ NA, 4, 1 ] would be equivalent.) + /// + /// Notes: + /// - At the time of this writing, some code has performance cost that is linear + /// in the number of lanes, so keep the number of lanes to an absolute minimum. + /// 3 or so is fine; >8 is a lot. The max number of lanes on Steam is 255, + /// which is a very large number and not recommended! If you are compiling this + /// library from source, see STEAMNETWORKINGSOCKETS_MAX_LANES.) + /// - Lane priority values may be any int. Their absolute value is not relevant, + /// only the order matters. + /// - Weights must be positive, and due to implementation details, they are restricted + /// to 16-bit values. The absolute magnitudes don't matter, just the proportions. + /// - Messages sent on a lane index other than 0 have a small overhead on the wire, + /// so for maximum wire efficiency, lane 0 should be the "most common" lane, regardless + /// of priorities or weights. + /// - A connection has a single lane by default. Calling this function with + /// nNumLanes=1 is legal, but pointless, since the priority and weight values are + /// irrelevant in that case. + /// - You may reconfigure connection lanes at any time, however reducing the number of + /// lanes is not allowed. + /// - Reconfiguring lanes might restart any bandwidth sharing balancing. Usually you + /// will call this function once, near the start of the connection, perhaps after + /// exchanging a few messages. + /// - To assign all lanes the same priority, you may use pLanePriorities=NULL. + /// - If you wish all lanes with the same priority to share bandwidth equally (or + /// if no two lanes have the same priority value, and thus priority values are + /// irrelevant), you may use pLaneWeights=NULL + /// - Priorities and weights determine the order that messages are SENT on the wire. + /// There are NO GUARANTEES on the order that messages are RECEIVED! Due to packet + /// loss, out-of-order delivery, and subtle details of packet serialization, messages + /// might still be received slightly out-of-order! The *only* strong guarantee is that + /// *reliable* messages on the *same lane* will be delivered in the order they are sent. + /// - Each host configures the lanes for the packets they send; the lanes for the flow + /// in one direction are completely unrelated to the lanes in the opposite direction. + /// + /// Return value: + /// - k_EResultNoConnection - bad hConn + /// - k_EResultInvalidParam - Invalid number of lanes, bad weights, or you tried to reduce the number of lanes + /// - k_EResultInvalidState - Connection is already dead, etc + /// + /// See also: + /// SteamNetworkingMessage_t::m_idxLane + virtual EResult ConfigureConnectionLanes( HSteamNetConnection hConn, int nNumLanes, const int *pLanePriorities, const uint16 *pLaneWeights ) = 0; + + // + // Identity and authentication + // + + /// Get the identity assigned to this interface. + /// E.g. on Steam, this is the user's SteamID, or for the gameserver interface, the SteamID assigned + /// to the gameserver. Returns false and sets the result to an invalid identity if we don't know + /// our identity yet. (E.g. GameServer has not logged in. On Steam, the user will know their SteamID + /// even if they are not signed into Steam.) + virtual bool GetIdentity( SteamNetworkingIdentity *pIdentity ) = 0; + + /// Indicate our desire to be ready participate in authenticated communications. + /// If we are currently not ready, then steps will be taken to obtain the necessary + /// certificates. (This includes a certificate for us, as well as any CA certificates + /// needed to authenticate peers.) + /// + /// You can call this at program init time if you know that you are going to + /// be making authenticated connections, so that we will be ready immediately when + /// those connections are attempted. (Note that essentially all connections require + /// authentication, with the exception of ordinary UDP connections with authentication + /// disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call + /// this function, we will wait until a feature is utilized that that necessitates + /// these resources. + /// + /// You can also call this function to force a retry, if failure has occurred. + /// Once we make an attempt and fail, we will not automatically retry. + /// In this respect, the behavior of the system after trying and failing is the same + /// as before the first attempt: attempting authenticated communication or calling + /// this function will call the system to attempt to acquire the necessary resources. + /// + /// You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t + /// to monitor the status. + /// + /// Returns the current value that would be returned from GetAuthenticationStatus. + virtual ESteamNetworkingAvailability InitAuthentication() = 0; + + /// Query our readiness to participate in authenticated communications. A + /// SteamNetAuthenticationStatus_t callback is posted any time this status changes, + /// but you can use this function to query it at any time. + /// + /// The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only + /// want this high level status, you can pass NULL for pDetails. If you want further + /// details, pass non-NULL to receive them. + virtual ESteamNetworkingAvailability GetAuthenticationStatus( SteamNetAuthenticationStatus_t *pDetails ) = 0; + + // + // Poll groups. A poll group is a set of connections that can be polled efficiently. + // (In our API, to "poll" a connection means to retrieve all pending messages. We + // actually don't have an API to "poll" the connection *state*, like BSD sockets.) + // + + /// Create a new poll group. + /// + /// You should destroy the poll group when you are done using DestroyPollGroup + virtual HSteamNetPollGroup CreatePollGroup() = 0; + + /// Destroy a poll group created with CreatePollGroup(). + /// + /// If there are any connections in the poll group, they are removed from the group, + /// and left in a state where they are not part of any poll group. + /// Returns false if passed an invalid poll group handle. + virtual bool DestroyPollGroup( HSteamNetPollGroup hPollGroup ) = 0; + + /// Assign a connection to a poll group. Note that a connection may only belong to a + /// single poll group. Adding a connection to a poll group implicitly removes it from + /// any other poll group it is in. + /// + /// You can pass k_HSteamNetPollGroup_Invalid to remove a connection from its current + /// poll group without adding it to a new poll group. + /// + /// If there are received messages currently pending on the connection, an attempt + /// is made to add them to the queue of messages for the poll group in approximately + /// the order that would have applied if the connection was already part of the poll + /// group at the time that the messages were received. + /// + /// Returns false if the connection handle is invalid, or if the poll group handle + /// is invalid (and not k_HSteamNetPollGroup_Invalid). + virtual bool SetConnectionPollGroup( HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ) = 0; + + /// Same as ReceiveMessagesOnConnection, but will return the next messages available + /// on any connection in the poll group. Examine SteamNetworkingMessage_t::m_conn + /// to know which connection. (SteamNetworkingMessage_t::m_nConnUserData might also + /// be useful.) + /// + /// Delivery order of messages among different connections will usually match the + /// order that the last packet was received which completed the message. But this + /// is not a strong guarantee, especially for packets received right as a connection + /// is being assigned to poll group. + /// + /// Delivery order of messages on the same connection is well defined and the + /// same guarantees are present as mentioned in ReceiveMessagesOnConnection. + /// (But the messages are not grouped by connection, so they will not necessarily + /// appear consecutively in the list; they may be interleaved with messages for + /// other connections.) + virtual int ReceiveMessagesOnPollGroup( HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + // + // Clients connecting to dedicated servers hosted in a data center, + // using tickets issued by your game coordinator. If you are not + // issuing your own tickets to restrict who can attempt to connect + // to your server, then you won't use these functions. + // + + /// Call this when you receive a ticket from your backend / matchmaking system. Puts the + /// ticket into a persistent cache, and optionally returns the parsed ticket. + /// + /// See stamdatagram_ticketgen.h for more details. + virtual bool ReceivedRelayAuthTicket( const void *pvTicket, int cbTicket, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Search cache for a ticket to talk to the server on the specified virtual port. + /// If found, returns the number of seconds until the ticket expires, and optionally + /// the complete cracked ticket. Returns 0 if we don't have a ticket. + /// + /// Typically this is useful just to confirm that you have a ticket, before you + /// call ConnectToHostedDedicatedServer to connect to the server. + virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity &identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Client call to connect to a server hosted in a Valve data center, on the specified virtual + /// port. You must have placed a ticket for this server into the cache, or else this connect + /// attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated + /// server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow + /// this type of connection by listening using CreateListenSocketP2P.) + /// + /// You may wonder why tickets are stored in a cache, instead of simply being passed as an argument + /// here. The reason is to make reconnection to a gameserver robust, even if the client computer loses + /// connection to Steam or the central backend, or the app is restarted or crashes, etc. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity &identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + // + // Servers hosted in data centers known to the Valve relay network + // + + /// Returns the value of the SDR_LISTEN_PORT environment variable. This + /// is the UDP server your server will be listening on. This will + /// configured automatically for you in production environments. + /// + /// In development, you'll need to set it yourself. See + /// https://partner.steamgames.com/doc/api/ISteamNetworkingSockets + /// for more information on how to configure dev environments. + virtual uint16 GetHostedDedicatedServerPort() = 0; + + /// Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server + /// is running in. This will be k_SteamDatagramPOPID_dev in non-production environment. + virtual SteamNetworkingPOPID GetHostedDedicatedServerPOPID() = 0; + + /// Return info about the hosted server. This contains the PoPID of the server, + /// and opaque routing information that can be used by the relays to send traffic + /// to your server. + /// + /// You will need to send this information to your backend, and put it in tickets, + /// so that the relays will know how to forward traffic from + /// clients to your server. See SteamDatagramRelayAuthTicket for more info. + /// + /// Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin, + /// so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info + /// to your game coordinator service, and also login securely at the same time. + /// + /// On a successful exit, k_EResultOK is returned + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET + /// is not set.) + /// - k_EResultPending: we do not (yet) have the authentication information needed. + /// (See GetAuthenticationStatus.) If you use environment variables to pre-fetch + /// the network config, this data should always be available immediately. + /// - A non-localized diagnostic debug message will be placed in m_data that describes + /// the cause of the failure. + /// + /// NOTE: The returned blob is not encrypted. Send it to your backend, but don't + /// directly share it with clients. + virtual EResult GetHostedDedicatedServerAddress( SteamDatagramHostedAddress *pRouting ) = 0; + + /// Create a listen socket on the specified virtual port. The physical UDP port to use + /// will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not + /// configured, this call will fail. + /// + /// This call MUST be made through the SteamGameServerNetworkingSockets() interface. + /// + /// This function should be used when you are using the ticket generator library + /// to issue your own tickets. Clients connecting to the server on this virtual + /// port will need a ticket, and they must connect using ConnectToHostedDedicatedServer. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateHostedDedicatedServerListenSocket( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Generate an authentication blob that can be used to securely login with + /// your backend, using SteamDatagram_ParseHostedServerLogin. (See + /// steamdatagram_gamecoordinator.h) + /// + /// Before calling the function: + /// - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave + /// all other fields uninitialized. + /// - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be + /// at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.) + /// + /// On a successful exit: + /// - k_EResultOK is returned + /// - All of the remaining fields of pLoginInfo will be filled out. + /// - *pcbSignedBlob contains the size of the serialized blob that has been + /// placed into pBlob. + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultNotLoggedOn: you are not logged in (yet) + /// - See GetHostedDedicatedServerAddress for more potential failure return values. + /// - A non-localized diagnostic debug message will be placed in pBlob that describes + /// the cause of the failure. + /// + /// This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin + /// with the cert that is issued to this server. In dev environments, it's OK if you do + /// not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.) + /// Otherwise, you will need a signed cert. + /// + /// NOTE: The routing blob returned here is not encrypted. Send it to your backend + /// and don't share it directly with clients. + virtual EResult GetGameCoordinatorServerLogin( SteamDatagramGameCoordinatorServerLogin *pLoginInfo, int *pcbSignedBlob, void *pBlob ) = 0; + + + // + // Relayed connections using custom signaling protocol + // + // This is used if you have your own method of sending out-of-band + // signaling / rendezvous messages through a mutually trusted channel. + // + + /// Create a P2P "client" connection that does signaling over a custom + /// rendezvous/signaling channel. + /// + /// pSignaling points to a new object that you create just for this connection. + /// It must stay valid until Release() is called. Once you pass the + /// object to this function, it assumes ownership. Release() will be called + /// from within the function call if the call fails. Furthermore, until Release() + /// is called, you should be prepared for methods to be invoked on your + /// object from any thread! You need to make sure your object is threadsafe! + /// Furthermore, you should make sure that dispatching the methods is done + /// as quickly as possible. + /// + /// This function will immediately construct a connection in the "connecting" + /// state. Soon after (perhaps before this function returns, perhaps in another thread), + /// the connection will begin sending signaling messages by calling + /// ISteamNetworkingConnectionSignaling::SendSignal. + /// + /// When the remote peer accepts the connection (See + /// ISteamNetworkingSignalingRecvContext::OnConnectRequest), + /// it will begin sending signaling messages. When these messages are received, + /// you can pass them to the connection using ReceivedP2PCustomSignal. + /// + /// If you know the identity of the peer that you expect to be on the other end, + /// you can pass their identity to improve debug output or just detect bugs. + /// If you don't know their identity yet, you can pass NULL, and their + /// identity will be established in the connection handshake. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectP2PCustomSignaling( ISteamNetworkingConnectionSignaling *pSignaling, const SteamNetworkingIdentity *pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Called when custom signaling has received a message. When your + /// signaling channel receives a message, it should save off whatever + /// routing information was in the envelope into the context object, + /// and then pass the payload to this function. + /// + /// A few different things can happen next, depending on the message: + /// + /// - If the signal is associated with existing connection, it is dealt + /// with immediately. If any replies need to be sent, they will be + /// dispatched using the ISteamNetworkingConnectionSignaling + /// associated with the connection. + /// - If the message represents a connection request (and the request + /// is not redundant for an existing connection), a new connection + /// will be created, and ReceivedConnectRequest will be called on your + /// context object to determine how to proceed. + /// - Otherwise, the message is for a connection that does not + /// exist (anymore). In this case, we *may* call SendRejectionReply + /// on your context object. + /// + /// In any case, we will not save off pContext or access it after this + /// function returns. + /// + /// Returns true if the message was parsed and dispatched without anything + /// unusual or suspicious happening. Returns false if there was some problem + /// with the message that prevented ordinary handling. (Debug output will + /// usually have more information.) + /// + /// If you expect to be using relayed connections, then you probably want + /// to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes + virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext *pContext ) = 0; + + // + // Certificate provision by the application. On Steam, we normally handle all this automatically + // and you will not need to use these advanced functions. + // + + /// Get blob that describes a certificate request. You can send this to your game coordinator. + /// Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will + /// return the number of bytes that were populated. You can pass pBlob=NULL to query for the required + /// size. (512 bytes is a conservative estimate.) + /// + /// Pass this blob to your game coordinator and call SteamDatagram_CreateCert. + virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Set the certificate. The certificate blob should be the output of + /// SteamDatagram_CreateCert. + virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Reset the identity associated with this instance. + /// Any open connections are closed. Any previous certificates, etc are discarded. + /// You can pass a specific identity that you want to use, or you can pass NULL, + /// in which case the identity will be invalid until you set it using SetCertificate + /// + /// NOTE: This function is not actually supported on Steam! It is included + /// for use on other platforms where the active user can sign out and + /// a new user can sign in. + virtual void ResetIdentity( const SteamNetworkingIdentity *pIdentity ) = 0; + + // + // Misc + // + + /// Invoke all callback functions queued for this interface. + /// See k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, etc + /// + /// You don't need to call this if you are using Steam's callback dispatch + /// mechanism (SteamAPI_RunCallbacks and SteamGameserver_RunCallbacks). + virtual void RunCallbacks() = 0; + + // + // "FakeIP" system. + // + // A FakeIP is essentially a temporary, arbitrary identifier that + // happens to be a valid IPv4 address. The purpose of this system is to make it + // easy to integrate with existing code that identifies hosts using IPv4 addresses. + // The FakeIP address will never actually be used to send or receive any packets + // on the Internet, it is strictly an identifier. + // + // FakeIP addresses are designed to (hopefully) pass through existing code as + // transparently as possible, while conflicting with "real" addresses that might + // be in use on networks (both the Internet and LANs) in the same code as little + // as possible. At the time this comment is being written, they come from the + // 169.254.0.0/16 range, and the port number will always be >1024. HOWEVER, + // this is subject to change! Do not make assumptions about these addresses, + // or your code might break in the future. In particular, you should use + // functions such as ISteamNetworkingUtils::IsFakeIP to determine if an IP + // address is a "fake" one used by this system. + // + + /// Begin asynchronous process of allocating a fake IPv4 address that other + /// peers can use to contact us via P2P. IP addresses returned by this + /// function are globally unique for a given appid. + /// + /// nNumPorts is the numbers of ports you wish to reserve. This is useful + /// for the same reason that listening on multiple UDP ports is useful for + /// different types of traffic. Because these allocations come from a global + /// namespace, there is a relatively strict limit on the maximum number of + /// ports you may request. (At the time of this writing, the limit is 4.) + /// The port assignments are *not* guaranteed to have any particular order + /// or relationship! Do *not* assume they are contiguous, even though that + /// may often occur in practice. + /// + /// Returns false if a request was already in progress, true if a new request + /// was started. A SteamNetworkingFakeIPResult_t will be posted when the request + /// completes. + /// + /// For gameservers, you *must* call this after initializing the SDK but before + /// beginning login. Steam needs to know in advance that FakeIP will be used. + /// Everywhere your public IP would normally appear (such as the server browser) will be + /// replaced by the FakeIP, and the fake port at index 0. The request is actually queued + /// until the logon completes, so you must not wait until the allocation completes + /// before logging in. Except for trivial failures that can be detected locally + /// (e.g. invalid parameter), a SteamNetworkingFakeIPResult_t callback (whether success or + /// failure) will not be posted until after we have logged in. Furthermore, it is assumed + /// that FakeIP allocation is essential for your application to function, and so failure + /// will not be reported until *several* retries have been attempted. This process may + /// last several minutes. It is *highly* recommended to treat failure as fatal. + /// + /// To communicate using a connection-oriented (TCP-style) API: + /// - Server creates a listen socket using CreateListenSocketP2PFakeIP + /// - Client connects using ConnectByIPAddress, passing in the FakeIP address. + /// - The connection will behave mostly like a P2P connection. The identities + /// that appear in SteamNetConnectionInfo_t will be the FakeIP identity until + /// we know the real identity. Then it will be the real identity. If the + /// SteamNetConnectionInfo_t::m_addrRemote is valid, it will be a real IPv4 + /// address of a NAT-punched connection. Otherwise, it will not be valid. + /// + /// To communicate using an ad-hoc sendto/recv from (UDP-style) API, + /// use CreateFakeUDPPort. + virtual bool BeginAsyncRequestFakeIP( int nNumPorts ) = 0; + + /// Return info about the FakeIP and port(s) that we have been assigned, + /// if any. idxFirstPort is currently reserved and must be zero. + /// Make sure and check SteamNetworkingFakeIPResult_t::m_eResult + virtual void GetFakeIP( int idxFirstPort, SteamNetworkingFakeIPResult_t *pInfo ) = 0; + + /// Create a listen socket that will listen for P2P connections sent + /// to our FakeIP. A peer can initiate connections to this listen + /// socket by calling ConnectByIPAddress. + /// + /// idxFakePort refers to the *index* of the fake port requested, + /// not the actual port number. For example, pass 0 to refer to the + /// first port in the reservation. You must call this only after calling + /// BeginAsyncRequestFakeIP. However, you do not need to wait for the + /// request to complete before creating the listen socket. + virtual HSteamListenSocket CreateListenSocketP2PFakeIP( int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// If the connection was initiated using the "FakeIP" system, then we + /// we can get an IP address for the remote host. If the remote host had + /// a global FakeIP at the time the connection was established, this + /// function will return that global IP. Otherwise, a FakeIP that is + /// unique locally will be allocated from the local FakeIP address space, + /// and that will be returned. + /// + /// The allocation of local FakeIPs attempts to assign addresses in + /// a consistent manner. If multiple connections are made to the + /// same remote host, they *probably* will return the same FakeIP. + /// However, since the namespace is limited, this cannot be guaranteed. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: invalid connection handle + /// - k_EResultIPNotFound: This connection wasn't made using FakeIP system + virtual EResult GetRemoteFakeIPForConnection( HSteamNetConnection hConn, SteamNetworkingIPAddr *pOutAddr ) = 0; + + /// Get an interface that can be used like a UDP port to send/receive + /// datagrams to a FakeIP address. This is intended to make it easy + /// to port existing UDP-based code to take advantage of SDR. + /// + /// idxFakeServerPort refers to the *index* of the port allocated using + /// BeginAsyncRequestFakeIP and is used to create "server" ports. You may + /// call this before the allocation has completed. However, any attempts + /// to send packets will fail until the allocation has succeeded. When + /// the peer receives packets sent from this interface, the from address + /// of the packet will be the globally-unique FakeIP. If you call this + /// function multiple times and pass the same (nonnegative) fake port index, + /// the same object will be returned, and this object is not reference counted. + /// + /// To create a "client" port (e.g. the equivalent of an ephemeral UDP port) + /// pass -1. In this case, a distinct object will be returned for each call. + /// When the peer receives packets sent from this interface, the peer will + /// assign a FakeIP from its own locally-controlled namespace. + virtual ISteamNetworkingFakeUDPPort *CreateFakeUDPPort( int idxFakeServerPort ) = 0; + +protected: + ~ISteamNetworkingSockets(); // Silence some warnings +}; +#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets012" + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGSOCKETS_INTERFACE_VERSION[24] == '2', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamNetworkingSockets_Lib() { return SteamNetworkingSockets_LibV12(); } + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamGameServerNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets_Lib() { return SteamGameServerNetworkingSockets_LibV12(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_LibV12(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_LibV12(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_SteamAPI(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_SteamAPI(); } + #endif +#endif + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// This callback is posted whenever a connection is created, destroyed, or changes state. +/// The m_info field will contain a complete description of the connection at the time the +/// change occurred and the callback was posted. In particular, m_eState will have the +/// new connection state. +/// +/// You will usually need to listen for this callback to know when: +/// - A new connection arrives on a listen socket. +/// m_info.m_hListenSocket will be set, m_eOldState = k_ESteamNetworkingConnectionState_None, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_Connecting. +/// See ISteamNetworkigSockets::AcceptConnection. +/// - A connection you initiated has been accepted by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting, and +/// m_info.m_eState = k_ESteamNetworkingConnectionState_Connected. +/// Some connections might transition to k_ESteamNetworkingConnectionState_FindingRoute first. +/// - A connection has been actively rejected or closed by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting or k_ESteamNetworkingConnectionState_Connected, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_ClosedByPeer. m_info.m_eEndReason +/// and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// - A problem was detected with the connection, and it has been closed by the local host. +/// The most common failure is timeout, but other configuration or authentication failures +/// can cause this. m_eOldState = k_ESteamNetworkingConnectionState_Connecting or +/// k_ESteamNetworkingConnectionState_Connected, and m_info.m_eState = k_ESteamNetworkingConnectionState_ProblemDetectedLocally. +/// m_info.m_eEndReason and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// +/// Remember that callbacks are posted to a queue, and networking connections can +/// change at any time. It is possible that the connection has already changed +/// state by the time you process this callback. +/// +/// Also note that callbacks will be posted when connections are created and destroyed by your own API calls. +struct SteamNetConnectionStatusChangedCallback_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 1 }; + + /// Connection handle + HSteamNetConnection m_hConn; + + /// Full connection info + SteamNetConnectionInfo_t m_info; + + /// Previous state. (Current state is in m_info.m_eState) + ESteamNetworkingConnectionState m_eOldState; +}; + +/// A struct used to describe our readiness to participate in authenticated, +/// encrypted communication. In order to do this we need: +/// +/// - The list of trusted CA certificates that might be relevant for this +/// app. +/// - A valid certificate issued by a CA. +/// +/// This callback is posted whenever the state of our readiness changes. +struct SteamNetAuthenticationStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 2 }; + + /// Status + ESteamNetworkingAvailability m_eAvail; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#pragma pack( pop ) + +#endif // ISTEAMNETWORKINGSOCKETS diff --git a/lsteamclient/steamworks_sdk_163/isteamnetworkingutils.h b/lsteamclient/steamworks_sdk_163/isteamnetworkingutils.h new file mode 100644 index 00000000000..ccd43117901 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamnetworkingutils.h @@ -0,0 +1,503 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef ISTEAMNETWORKINGUTILS +#define ISTEAMNETWORKINGUTILS + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamDatagramRelayAuthTicket; +struct SteamRelayNetworkStatus_t; + +//----------------------------------------------------------------------------- +/// Misc networking utilities for checking the local networking environment +/// and estimating pings. +class ISteamNetworkingUtils +{ +public: + // + // Efficient message sending + // + + /// Allocate and initialize a message object. Usually the reason + /// you call this is to pass it to ISteamNetworkingSockets::SendMessages. + /// The returned object will have all of the relevant fields cleared to zero. + /// + /// Optionally you can also request that this system allocate space to + /// hold the payload itself. If cbAllocateBuffer is nonzero, the system + /// will allocate memory to hold a payload of at least cbAllocateBuffer bytes. + /// m_pData will point to the allocated buffer, m_cbSize will be set to the + /// size, and m_pfnFreeData will be set to the proper function to free up + /// the buffer. + /// + /// If cbAllocateBuffer=0, then no buffer is allocated. m_pData will be NULL, + /// m_cbSize will be zero, and m_pfnFreeData will be NULL. You will need to + /// set each of these. + virtual SteamNetworkingMessage_t *AllocateMessage( int cbAllocateBuffer ) = 0; + + // + // Access to Steam Datagram Relay (SDR) network + // + + // + // Initialization and status check + // + + /// If you know that you are going to be using the relay network (for example, + /// because you anticipate making P2P connections), call this to initialize the + /// relay network. If you do not call this, the initialization will + /// be delayed until the first time you use a feature that requires access + /// to the relay network, which will delay that first access. + /// + /// You can also call this to force a retry if the previous attempt has failed. + /// Performing any action that requires access to the relay network will also + /// trigger a retry, and so calling this function is never strictly necessary, + /// but it can be useful to call it a program launch time, if access to the + /// relay network is anticipated. + /// + /// Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// callbacks to know when initialization has completed. + /// Typically initialization completes in a few seconds. + /// + /// Note: dedicated servers hosted in known data centers do *not* need + /// to call this, since they do not make routing decisions. However, if + /// the dedicated server will be using P2P functionality, it will act as + /// a "client" and this should be called. + inline void InitRelayNetworkAccess(); + + /// Fetch current status of the relay network. + /// + /// SteamRelayNetworkStatus_t is also a callback. It will be triggered on + /// both the user and gameserver interfaces any time the status changes, or + /// ping measurement starts or stops. + /// + /// SteamRelayNetworkStatus_t::m_eAvail is returned. If you want + /// more details, you can pass a non-NULL value. + virtual ESteamNetworkingAvailability GetRelayNetworkStatus( SteamRelayNetworkStatus_t *pDetails ) = 0; + + // + // "Ping location" functions + // + // We use the ping times to the valve relays deployed worldwide to + // generate a "marker" that describes the location of an Internet host. + // Given two such markers, we can estimate the network latency between + // two hosts, without sending any packets. The estimate is based on the + // optimal route that is found through the Valve network. If you are + // using the Valve network to carry the traffic, then this is precisely + // the ping you want. If you are not, then the ping time will probably + // still be a reasonable estimate. + // + // This is extremely useful to select peers for matchmaking! + // + // The markers can also be converted to a string, so they can be transmitted. + // We have a separate library you can use on your app's matchmaking/coordinating + // server to manipulate these objects. (See steamdatagram_gamecoordinator.h) + + /// Return location info for the current host. Returns the approximate + /// age of the data, in seconds, or -1 if no data is available. + /// + /// It takes a few seconds to initialize access to the relay network. If + /// you call this very soon after calling InitRelayNetworkAccess, + /// the data may not be available yet. + /// + /// This always return the most up-to-date information we have available + /// right now, even if we are in the middle of re-calculating ping times. + virtual float GetLocalPingLocation( SteamNetworkPingLocation_t &result ) = 0; + + /// Estimate the round-trip latency between two arbitrary locations, in + /// milliseconds. This is a conservative estimate, based on routing through + /// the relay network. For most basic relayed connections, this ping time + /// will be pretty accurate, since it will be based on the route likely to + /// be actually used. + /// + /// If a direct IP route is used (perhaps via NAT traversal), then the route + /// will be different, and the ping time might be better. Or it might actually + /// be a bit worse! Standard IP routing is frequently suboptimal! + /// + /// But even in this case, the estimate obtained using this method is a + /// reasonable upper bound on the ping time. (Also it has the advantage + /// of returning immediately and not sending any packets.) + /// + /// In a few cases we might not able to estimate the route. In this case + /// a negative value is returned. k_nSteamNetworkingPing_Failed means + /// the reason was because of some networking difficulty. (Failure to + /// ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + /// currently answer the question for some other reason. + /// + /// Do you need to be able to do this from a backend/matchmaking server? + /// You are looking for the "game coordinator" library. + virtual int EstimatePingTimeBetweenTwoLocations( const SteamNetworkPingLocation_t &location1, const SteamNetworkPingLocation_t &location2 ) = 0; + + /// Same as EstimatePingTime, but assumes that one location is the local host. + /// This is a bit faster, especially if you need to calculate a bunch of + /// these in a loop to find the fastest one. + /// + /// In rare cases this might return a slightly different estimate than combining + /// GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because + /// this function uses a slightly more complete set of information about what + /// route would be taken. + virtual int EstimatePingTimeFromLocalHost( const SteamNetworkPingLocation_t &remoteLocation ) = 0; + + /// Convert a ping location into a text format suitable for sending over the wire. + /// The format is a compact and human readable. However, it is subject to change + /// so please do not parse it yourself. Your buffer must be at least + /// k_cchMaxSteamNetworkingPingLocationString bytes. + virtual void ConvertPingLocationToString( const SteamNetworkPingLocation_t &location, char *pszBuf, int cchBufSize ) = 0; + + /// Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand + /// the string. + virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result ) = 0; + + /// Check if the ping data of sufficient recency is available, and if + /// it's too old, start refreshing it. + /// + /// Please only call this function when you *really* do need to force an + /// immediate refresh of the data. (For example, in response to a specific + /// user input to refresh this information.) Don't call it "just in case", + /// before every connection, etc. That will cause extra traffic to be sent + /// for no benefit. The library will automatically refresh the information + /// as needed. + /// + /// Returns true if sufficiently recent data is already available. + /// + /// Returns false if sufficiently recent data is not available. In this + /// case, ping measurement is initiated, if it is not already active. + /// (You cannot restart a measurement already in progress.) + /// + /// You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// to know when ping measurement completes. + virtual bool CheckPingDataUpToDate( float flMaxAgeSeconds ) = 0; + + // + // List of Valve data centers, and ping times to them. This might + // be useful to you if you are use our hosting, or just need to measure + // latency to a cloud data center where we are running relays. + // + + /// Fetch ping time of best available relayed route from this host to + /// the specified data center. + virtual int GetPingToDataCenter( SteamNetworkingPOPID popID, SteamNetworkingPOPID *pViaRelayPoP ) = 0; + + /// Get *direct* ping time to the relays at the data center. + virtual int GetDirectPingToPOP( SteamNetworkingPOPID popID ) = 0; + + /// Get number of network points of presence in the config + virtual int GetPOPCount() = 0; + + /// Get list of all POP IDs. Returns the number of entries that were filled into + /// your list. + virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0; + + // + // Misc + // + + /// Fetch current timestamp. This timer has the following properties: + /// + /// - Monotonicity is guaranteed. + /// - The initial value will be at least 24*3600*30*1e6, i.e. about + /// 30 days worth of microseconds. In this way, the timestamp value of + /// 0 will always be at least "30 days ago". Also, negative numbers + /// will never be returned. + /// - Wraparound / overflow is not a practical concern. + /// + /// If you are running under the debugger and stop the process, the clock + /// might not advance the full wall clock time that has elapsed between + /// calls. If the process is not blocked from normal operation, the + /// timestamp values will track wall clock time, even if you don't call + /// the function frequently. + /// + /// The value is only meaningful for this run of the process. Don't compare + /// it to values obtained on another computer, or other runs of the same process. + virtual SteamNetworkingMicroseconds GetLocalTimestamp() = 0; + + /// Set a function to receive network-related information that is useful for debugging. + /// This can be very useful during development, but it can also be useful for troubleshooting + /// problems with tech savvy end users. If you have a console or other log that customers + /// can examine, these log messages can often be helpful to troubleshoot network issues. + /// (Especially any warning/error messages.) + /// + /// The detail level indicates what message to invoke your callback on. Lower numeric + /// value means more important, and the value you pass is the lowest priority (highest + /// numeric value) you wish to receive callbacks for. + /// + /// The value here controls the detail level for most messages. You can control the + /// detail level for various subsystems (perhaps only for certain connections) by + /// adjusting the configuration values k_ESteamNetworkingConfig_LogLevel_Xxxxx. + /// + /// Except when debugging, you should only use k_ESteamNetworkingSocketsDebugOutputType_Msg + /// or k_ESteamNetworkingSocketsDebugOutputType_Warning. For best performance, do NOT + /// request a high detail level and then filter out messages in your callback. This incurs + /// all of the expense of formatting the messages, which are then discarded. Setting a high + /// priority value (low numeric value) here allows the library to avoid doing this work. + /// + /// IMPORTANT: This may be called from a service thread, while we own a mutex, etc. + /// Your output function must be threadsafe and fast! Do not make any other + /// Steamworks calls from within the handler. + virtual void SetDebugOutputFunction( ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ) = 0; + + // + // Fake IP + // + // Useful for interfacing with code that assumes peers are identified using an IPv4 address + // + + /// Return true if an IPv4 address is one that might be used as a "fake" one. + /// This function is fast; it just does some logical tests on the IP and does + /// not need to do any lookup operations. + inline bool IsFakeIPv4( uint32 nIPv4 ) { return GetIPv4FakeIPType( nIPv4 ) > k_ESteamNetworkingFakeIPType_NotFake; } + virtual ESteamNetworkingFakeIPType GetIPv4FakeIPType( uint32 nIPv4 ) = 0; + + /// Get the real identity associated with a given FakeIP. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: the IP is not a FakeIP. + /// - k_EResultNoMatch: we don't recognize that FakeIP and don't know the corresponding identity. + /// + /// FakeIP's used by active connections, or the FakeIPs assigned to local identities, + /// will always work. FakeIPs for recently destroyed connections will continue to + /// return results for a little while, but not forever. At some point, we will forget + /// FakeIPs to save space. It's reasonably safe to assume that you can read back the + /// real identity of a connection very soon after it is destroyed. But do not wait + /// indefinitely. + virtual EResult GetRealIdentityForFakeIP( const SteamNetworkingIPAddr &fakeIP, SteamNetworkingIdentity *pOutRealIdentity ) = 0; + + // + // Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions. + // + + // Shortcuts for common cases. (Implemented as inline functions below) + bool SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ); + bool SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ); + bool SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ); + bool SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ); + bool SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); + bool SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); + bool SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ); + + // + // Set global callbacks. If you do not want to use Steam's callback dispatch mechanism and you + // want to use the same callback on all (or most) listen sockets and connections, then + // simply install these callbacks first thing, and you are good to go. + // See ISteamNetworkingSockets::RunCallbacks + // + bool SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ); + bool SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ); + bool SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ); + bool SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ); + bool SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ); + bool SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ); + + /// Set a configuration value. + /// - eValue: which value is being set + /// - eScope: Onto what type of object are you applying the setting? + /// - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc. + /// - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly! + /// - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope, + /// causing the value for that object to use global defaults. Or at global scope, passing NULL + /// will reset any custom value and restore it to the system default. + /// NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly. + /// Your argument should be a pointer to a function pointer. + virtual bool SetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType eDataType, const void *pArg ) = 0; + + /// Set a configuration value, using a struct to pass the value. + /// (This is just a convenience shortcut; see below for the implementation and + /// a little insight into how SteamNetworkingConfigValue_t is used when + /// setting config options during listen socket and connection creation.) + bool SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); + + /// Get a configuration value. + /// - eValue: which value to fetch + /// - eScopeType: query setting on what type of object + /// - eScopeArg: the object to query the setting for + /// - pOutDataType: If non-NULL, the data type of the value is returned. + /// - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.) + /// - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required. + virtual ESteamNetworkingGetConfigValueResult GetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType *pOutDataType, void *pResult, size_t *cbResult ) = 0; + + /// Get info about a configuration value. Returns the name of the value, + /// or NULL if the value doesn't exist. Other output parameters can be NULL + /// if you do not need them. + virtual const char *GetConfigValueInfo( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType *pOutDataType, + ESteamNetworkingConfigScope *pOutScope ) = 0; + + /// Iterate the list of all configuration values in the current environment that it might + /// be possible to display or edit using a generic UI. To get the first iterable value, + /// pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid + /// to signal end of list. + /// + /// The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that + /// are recommended to only be editable in "debug" or "dev" mode and typically should not be + /// shown in a retail environment where a malicious local user might use this to cheat. + virtual ESteamNetworkingConfigValue IterateGenericEditableConfigValues( ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ) = 0; + + // + // String conversions. You'll usually access these using the respective + // inline methods. + // + virtual void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr &addr, char *buf, size_t cbBuf, bool bWithPort ) = 0; + virtual bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ) = 0; + virtual ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr &addr ) = 0; + virtual void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf ) = 0; + virtual bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, const char *pszStr ) = 0; + +protected: + ~ISteamNetworkingUtils(); // Silence some warnings +}; +#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils004" + +// Global accessors +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + // Standalone lib + static_assert( STEAMNETWORKINGUTILS_INTERFACE_VERSION[22] == '4', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingUtils *SteamNetworkingUtils_LibV4(); + inline ISteamNetworkingUtils *SteamNetworkingUtils_Lib() { return SteamNetworkingUtils_LibV4(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_LibV4(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils_SteamAPI, + /* Prefer user version of the interface. But if it isn't found, then use + gameserver one. Yes, this is a completely terrible hack */ + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) ? + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) : + SteamInternal_FindOrCreateGameServerInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ), + "global", + STEAMNETWORKINGUTILS_INTERFACE_VERSION + ) + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_SteamAPI(); } + #endif +#endif + +/// A struct used to describe our readiness to use the relay network. +/// To do this we first need to fetch the network configuration, +/// which describes what POPs are available. +struct SteamRelayNetworkStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingUtilsCallbacks + 1 }; + + /// Summary status. When this is "current", initialization has + /// completed. Anything else means you are not ready yet, or + /// there is a significant problem. + ESteamNetworkingAvailability m_eAvail; + + /// Nonzero if latency measurement is in progress (or pending, + /// awaiting a prerequisite). + int m_bPingMeasurementInProgress; + + /// Status obtaining the network config. This is a prerequisite + /// for relay network access. + /// + /// Failure to obtain the network config almost always indicates + /// a problem with the local internet connection. + ESteamNetworkingAvailability m_eAvailNetworkConfig; + + /// Current ability to communicate with ANY relay. Note that + /// the complete failure to communicate with any relays almost + /// always indicates a problem with the local Internet connection. + /// (However, just because you can reach a single relay doesn't + /// mean that the local connection is in perfect health.) + ESteamNetworkingAvailability m_eAvailAnyRelay; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#if 0 +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingIdentity. +/// E.g. printf( "Identity is '%s'\n", SteamNetworkingIdentityRender( identity ).c_str() ); +struct SteamNetworkingIdentityRender +{ + SteamNetworkingIdentityRender( const SteamNetworkingIdentity &x ) { x.ToString( buf, sizeof(buf) ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIdentity::k_cchMaxString ]; +}; + +/// Utility class for printing a SteamNetworkingIPAddrRender. +struct SteamNetworkingIPAddrRender +{ + SteamNetworkingIPAddrRender( const SteamNetworkingIPAddr &x, bool bWithPort = true ) { x.ToString( buf, sizeof(buf), bWithPort ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIPAddr::k_cchMaxString ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff + +inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Ptr, &val ); } // Note: passing pointer to pointer. +inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_AuthStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_FakeIPResult, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionRequest, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionFailed, (void*)fnCallback ); } + +inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ) +{ + // Locate the argument. Strings are a special case, since the + // "value" (the whole string buffer) doesn't fit in the struct + // NOTE: for pointer values, we pass a pointer to the pointer, + // we do not pass the pointer directly. + const void *pVal = ( opt.m_eDataType == k_ESteamNetworkingConfig_String ) ? (const void *)opt.m_val.m_string : (const void *)&opt.m_val; + return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal ); +} +#endif + +// How to get helper functions. +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || defined(STEAMNETWORKINGSOCKETS_FOREXPORT) || defined( STEAMNETWORKINGSOCKETS_STANDALONELIB ) + + // Call direct to static functions + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ); + STEAMNETWORKINGSOCKETS_INTERFACE ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr *pAddr ); + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *pIdentity, char *buf, size_t cbBuf ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr ); + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingIPAddr_GetFakeIPType( this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingIdentity_ToString( this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); } + +#elif defined( STEAMNETWORKINGSOCKETS_STEAMAPI ) + // Using steamworks SDK - go through SteamNetworkingUtils() +#if 0 + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingUtils()->SteamNetworkingIPAddr_GetFakeIPType( *this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); } +#endif +#else + #error "Invalid config" +#endif + +#endif // ISTEAMNETWORKINGUTILS diff --git a/lsteamclient/steamworks_sdk_163/isteamparentalsettings.h b/lsteamclient/steamworks_sdk_163/isteamparentalsettings.h new file mode 100644 index 00000000000..972e355c734 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamparentalsettings.h @@ -0,0 +1,65 @@ +//====== Copyright � 2013-, Valve Corporation, All rights reserved. ======= +// +// Purpose: Interface to Steam parental settings (Family View) +// +//============================================================================= + +#ifndef ISTEAMPARENTALSETTINGS_H +#define ISTEAMPARENTALSETTINGS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// Feature types for parental settings +enum EParentalFeature +{ + k_EFeatureInvalid = 0, + k_EFeatureStore = 1, + k_EFeatureCommunity = 2, + k_EFeatureProfile = 3, + k_EFeatureFriends = 4, + k_EFeatureNews = 5, + k_EFeatureTrading = 6, + k_EFeatureSettings = 7, + k_EFeatureConsole = 8, + k_EFeatureBrowser = 9, + k_EFeatureParentalSetup = 10, + k_EFeatureLibrary = 11, + k_EFeatureTest = 12, + k_EFeatureSiteLicense = 13, + k_EFeatureKioskMode_Deprecated = 14, + k_EFeatureBlockAlways = 15, + k_EFeatureMax +}; + +class ISteamParentalSettings +{ +public: + virtual bool BIsParentalLockEnabled() = 0; + virtual bool BIsParentalLockLocked() = 0; + + virtual bool BIsAppBlocked( AppId_t nAppID ) = 0; + virtual bool BIsAppInBlockList( AppId_t nAppID ) = 0; + + virtual bool BIsFeatureBlocked( EParentalFeature eFeature ) = 0; + virtual bool BIsFeatureInBlockList( EParentalFeature eFeature ) = 0; +}; + +#define STEAMPARENTALSETTINGS_INTERFACE_VERSION "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + +// Global interface accessor +inline ISteamParentalSettings *SteamParentalSettings(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParentalSettings *, SteamParentalSettings, STEAMPARENTALSETTINGS_INTERFACE_VERSION ); + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamParentalSettingsChanged_t +{ + enum { k_iCallback = k_ISteamParentalSettingsCallbacks + 1 }; +}; + + +#endif // ISTEAMPARENTALSETTINGS_H diff --git a/lsteamclient/steamworks_sdk_163/isteamps3overlayrenderer.h b/lsteamclient/steamworks_sdk_163/isteamps3overlayrenderer.h new file mode 100644 index 00000000000..4e07d4a1949 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamps3overlayrenderer.h @@ -0,0 +1,91 @@ +//====== Copyright © 1996-2010, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface the game must provide Steam with on PS3 in order for the +// Steam overlay to render. +// +//============================================================================= + +#ifndef ISTEAMPS3OVERLAYRENDERER_H +#define ISTEAMPS3OVERLAYRENDERER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "cell/pad.h" + +//----------------------------------------------------------------------------- +// Purpose: Enum for supported gradient directions +//----------------------------------------------------------------------------- +enum EOverlayGradientDirection +{ + k_EOverlayGradientHorizontal = 1, + k_EOverlayGradientVertical = 2, + k_EOverlayGradientNone = 3, +}; + +// Helpers for fetching individual color components from ARGB packed DWORD colors Steam PS3 overlay renderer uses. +#define STEAM_COLOR_RED( color ) \ + (int)(((color)>>16)&0xff) + +#define STEAM_COLOR_GREEN( color ) \ + (int)(((color)>>8)&0xff) + +#define STEAM_COLOR_BLUE( color ) \ + (int)((color)&0xff) + +#define STEAM_COLOR_ALPHA( color ) \ + (int)(((color)>>24)&0xff) + + +//----------------------------------------------------------------------------- +// Purpose: Interface the game must expose to Steam for rendering +//----------------------------------------------------------------------------- +class ISteamPS3OverlayRenderHost +{ +public: + + // Interface for game engine to implement which Steam requires to render. + + // Draw a textured rect. This may use only part of the texture and will pass texture coords, it will also possibly request a gradient and will specify colors for vertexes. + virtual void DrawTexturedRect( int x0, int y0, int x1, int y1, float u0, float v0, float u1, float v1, int32 iTextureID, DWORD colorStart, DWORD colorEnd, EOverlayGradientDirection eDirection ) = 0; + + // Load a RGBA texture for Steam, or update a previously loaded one. Updates may be partial. You must not evict or remove this texture once Steam has uploaded it. + virtual void LoadOrUpdateTexture( int32 iTextureID, bool bIsFullTexture, int x0, int y0, uint32 uWidth, uint32 uHeight, int32 iBytes, char *pData ) = 0; + + // Delete a texture Steam previously uploaded + virtual void DeleteTexture( int32 iTextureID ) = 0; + + // Delete all previously uploaded textures + virtual void DeleteAllTextures() = 0; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Interface Steam exposes for the game to tell it when to render, etc. +//----------------------------------------------------------------------------- +class ISteamPS3OverlayRender +{ +public: + + // Call once at startup to initialize the Steam overlay and pass it your host interface ptr + virtual bool BHostInitialize( uint32 unScreenWidth, uint32 unScreenHeight, uint32 unRefreshRate, ISteamPS3OverlayRenderHost *pRenderHost, void *CellFontLib ) = 0; + + // Call this once a frame when you are ready for the Steam overlay to render (ie, right before flipping buffers, after all your rendering) + virtual void Render() = 0; + + // Call this everytime you read input on PS3. + // + // If this returns true, then the overlay is active and has consumed the input, your game + // should then ignore all the input until BHandleCellPadData once again returns false, which + // will mean the overlay is deactivated. + virtual bool BHandleCellPadData( const CellPadData &padData ) = 0; + + // Call this if you detect no controllers connected or that the XMB is intercepting input + // + // This is important to clear input state for the overlay, so keys left down during XMB activation + // are not continued to be processed. + virtual bool BResetInputState() = 0; +}; + + +#endif // ISTEAMPS3OVERLAYRENDERER_H \ No newline at end of file diff --git a/lsteamclient/steamworks_sdk_163/isteamremoteplay.h b/lsteamclient/steamworks_sdk_163/isteamremoteplay.h new file mode 100644 index 00000000000..1b874b909a7 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamremoteplay.h @@ -0,0 +1,385 @@ +//============ Copyright (c) Valve Corporation, All rights reserved. ============ + +#ifndef ISTEAMREMOTEPLAY_H +#define ISTEAMREMOTEPLAY_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + + +//----------------------------------------------------------------------------- +// Purpose: The form factor of a device +//----------------------------------------------------------------------------- +enum ESteamDeviceFormFactor +{ + k_ESteamDeviceFormFactorUnknown = 0, + k_ESteamDeviceFormFactorPhone = 1, + k_ESteamDeviceFormFactorTablet = 2, + k_ESteamDeviceFormFactorComputer = 3, + k_ESteamDeviceFormFactorTV = 4, + k_ESteamDeviceFormFactorVRHeadset = 5, +}; + + +// Steam Remote Play session ID +typedef uint32 RemotePlaySessionID_t; + + +// Steam Remote Play mouse cursor ID +typedef uint32 RemotePlayCursorID_t; + + +//----------------------------------------------------------------------------- +// Purpose: The type of input in ERemotePlayInput_t +//----------------------------------------------------------------------------- +enum ERemotePlayInputType +{ + k_ERemotePlayInputUnknown, + k_ERemotePlayInputMouseMotion, + k_ERemotePlayInputMouseButtonDown, + k_ERemotePlayInputMouseButtonUp, + k_ERemotePlayInputMouseWheel, + k_ERemotePlayInputKeyDown, + k_ERemotePlayInputKeyUp +}; + + +//----------------------------------------------------------------------------- +// Purpose: Mouse buttons in ERemotePlayInput_t +//----------------------------------------------------------------------------- +enum ERemotePlayMouseButton +{ + k_ERemotePlayMouseButtonLeft = 0x0001, + k_ERemotePlayMouseButtonRight = 0x0002, + k_ERemotePlayMouseButtonMiddle = 0x0010, + k_ERemotePlayMouseButtonX1 = 0x0020, + k_ERemotePlayMouseButtonX2 = 0x0040, +}; + + +//----------------------------------------------------------------------------- +// Purpose: Mouse wheel direction in ERemotePlayInput_t +//----------------------------------------------------------------------------- +enum ERemotePlayMouseWheelDirection +{ + k_ERemotePlayMouseWheelUp = 1, + k_ERemotePlayMouseWheelDown = 2, + k_ERemotePlayMouseWheelLeft = 3, + k_ERemotePlayMouseWheelRight = 4, +}; + + +//----------------------------------------------------------------------------- +// Purpose: Key scancode in ERemotePlayInput_t +// +// This is a USB scancode value as defined for the Keyboard/Keypad Page (0x07) +// This enumeration isn't a complete list, just the most commonly used keys. +//----------------------------------------------------------------------------- +enum ERemotePlayScancode +{ + k_ERemotePlayScancodeUnknown = 0, + + k_ERemotePlayScancodeA = 4, + k_ERemotePlayScancodeB = 5, + k_ERemotePlayScancodeC = 6, + k_ERemotePlayScancodeD = 7, + k_ERemotePlayScancodeE = 8, + k_ERemotePlayScancodeF = 9, + k_ERemotePlayScancodeG = 10, + k_ERemotePlayScancodeH = 11, + k_ERemotePlayScancodeI = 12, + k_ERemotePlayScancodeJ = 13, + k_ERemotePlayScancodeK = 14, + k_ERemotePlayScancodeL = 15, + k_ERemotePlayScancodeM = 16, + k_ERemotePlayScancodeN = 17, + k_ERemotePlayScancodeO = 18, + k_ERemotePlayScancodeP = 19, + k_ERemotePlayScancodeQ = 20, + k_ERemotePlayScancodeR = 21, + k_ERemotePlayScancodeS = 22, + k_ERemotePlayScancodeT = 23, + k_ERemotePlayScancodeU = 24, + k_ERemotePlayScancodeV = 25, + k_ERemotePlayScancodeW = 26, + k_ERemotePlayScancodeX = 27, + k_ERemotePlayScancodeY = 28, + k_ERemotePlayScancodeZ = 29, + + k_ERemotePlayScancode1 = 30, + k_ERemotePlayScancode2 = 31, + k_ERemotePlayScancode3 = 32, + k_ERemotePlayScancode4 = 33, + k_ERemotePlayScancode5 = 34, + k_ERemotePlayScancode6 = 35, + k_ERemotePlayScancode7 = 36, + k_ERemotePlayScancode8 = 37, + k_ERemotePlayScancode9 = 38, + k_ERemotePlayScancode0 = 39, + + k_ERemotePlayScancodeReturn = 40, + k_ERemotePlayScancodeEscape = 41, + k_ERemotePlayScancodeBackspace = 42, + k_ERemotePlayScancodeTab = 43, + k_ERemotePlayScancodeSpace = 44, + k_ERemotePlayScancodeMinus = 45, + k_ERemotePlayScancodeEquals = 46, + k_ERemotePlayScancodeLeftBracket = 47, + k_ERemotePlayScancodeRightBracket = 48, + k_ERemotePlayScancodeBackslash = 49, + k_ERemotePlayScancodeSemicolon = 51, + k_ERemotePlayScancodeApostrophe = 52, + k_ERemotePlayScancodeGrave = 53, + k_ERemotePlayScancodeComma = 54, + k_ERemotePlayScancodePeriod = 55, + k_ERemotePlayScancodeSlash = 56, + k_ERemotePlayScancodeCapsLock = 57, + + k_ERemotePlayScancodeF1 = 58, + k_ERemotePlayScancodeF2 = 59, + k_ERemotePlayScancodeF3 = 60, + k_ERemotePlayScancodeF4 = 61, + k_ERemotePlayScancodeF5 = 62, + k_ERemotePlayScancodeF6 = 63, + k_ERemotePlayScancodeF7 = 64, + k_ERemotePlayScancodeF8 = 65, + k_ERemotePlayScancodeF9 = 66, + k_ERemotePlayScancodeF10 = 67, + k_ERemotePlayScancodeF11 = 68, + k_ERemotePlayScancodeF12 = 69, + + k_ERemotePlayScancodeInsert = 73, + k_ERemotePlayScancodeHome = 74, + k_ERemotePlayScancodePageUp = 75, + k_ERemotePlayScancodeDelete = 76, + k_ERemotePlayScancodeEnd = 77, + k_ERemotePlayScancodePageDown = 78, + k_ERemotePlayScancodeRight = 79, + k_ERemotePlayScancodeLeft = 80, + k_ERemotePlayScancodeDown = 81, + k_ERemotePlayScancodeUp = 82, + + k_ERemotePlayScancodeKeypadDivide = 84, + k_ERemotePlayScancodeKeypadMultiply = 85, + k_ERemotePlayScancodeKeypadMinus = 86, + k_ERemotePlayScancodeKeypadPlus = 87, + k_ERemotePlayScancodeKeypadEnter = 88, + k_ERemotePlayScancodeKeypad1 = 89, + k_ERemotePlayScancodeKeypad2 = 90, + k_ERemotePlayScancodeKeypad3 = 91, + k_ERemotePlayScancodeKeypad4 = 92, + k_ERemotePlayScancodeKeypad5 = 93, + k_ERemotePlayScancodeKeypad6 = 94, + k_ERemotePlayScancodeKeypad7 = 95, + k_ERemotePlayScancodeKeypad8 = 96, + k_ERemotePlayScancodeKeypad9 = 97, + k_ERemotePlayScancodeKeypad0 = 98, + k_ERemotePlayScancodeKeypadPeriod = 99, + + k_ERemotePlayScancodeLeftControl = 224, + k_ERemotePlayScancodeLeftShift = 225, + k_ERemotePlayScancodeLeftAlt = 226, + k_ERemotePlayScancodeLeftGUI = 227, // windows, command (apple), meta + k_ERemotePlayScancodeRightControl = 228, + k_ERemotePlayScancodeRightShift = 229, + k_ERemotePlayScancodeRightALT = 230, + k_ERemotePlayScancodeRightGUI = 231, // windows, command (apple), meta +}; + + +//----------------------------------------------------------------------------- +// Purpose: Key modifier in ERemotePlayInput_t +//----------------------------------------------------------------------------- +enum ERemotePlayKeyModifier +{ + k_ERemotePlayKeyModifierNone = 0x0000, + k_ERemotePlayKeyModifierLeftShift = 0x0001, + k_ERemotePlayKeyModifierRightShift = 0x0002, + k_ERemotePlayKeyModifierLeftControl = 0x0040, + k_ERemotePlayKeyModifierRightControl = 0x0080, + k_ERemotePlayKeyModifierLeftAlt = 0x0100, + k_ERemotePlayKeyModifierRightAlt = 0x0200, + k_ERemotePlayKeyModifierLeftGUI = 0x0400, + k_ERemotePlayKeyModifierRightGUI = 0x0800, + k_ERemotePlayKeyModifierNumLock = 0x1000, + k_ERemotePlayKeyModifierCapsLock = 0x2000, + k_ERemotePlayKeyModifierMask = 0xFFFF, +}; + + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +// Mouse motion event data, valid when m_eType is k_ERemotePlayInputMouseMotion +struct RemotePlayInputMouseMotion_t +{ + bool m_bAbsolute; // True if this is absolute mouse motion and m_flNormalizedX and m_flNormalizedY are valid + float m_flNormalizedX; // The absolute X position of the mouse, normalized to the display, if m_bAbsolute is true + float m_flNormalizedY; // The absolute Y position of the mouse, normalized to the display, if m_bAbsolute is true + int m_nDeltaX; // Relative mouse motion in the X direction + int m_nDeltaY; // Relative mouse motion in the Y direction +}; + +// Mouse wheel event data, valid when m_eType is k_ERemotePlayInputMouseWheel +struct RemotePlayInputMouseWheel_t +{ + ERemotePlayMouseWheelDirection m_eDirection; + float m_flAmount; // 1.0f is a single click of the wheel, 120 units on Windows +}; + +// Key event data, valid when m_eType is k_ERemotePlayInputKeyDown or k_ERemotePlayInputKeyUp +struct RemotePlayInputKey_t +{ + int m_eScancode; // Keyboard scancode, common values are defined in ERemotePlayScancode + uint32 m_unModifiers; // Mask of ERemotePlayKeyModifier active for this key event + uint32 m_unKeycode; // UCS-4 character generated by the keypress, or 0 if it wasn't a character key, e.g. Delete or Left Arrow +}; + +struct RemotePlayInput_t +{ + RemotePlaySessionID_t m_unSessionID; + ERemotePlayInputType m_eType; + + union + { + // Mouse motion event data, valid when m_eType is k_ERemotePlayInputMouseMotion + RemotePlayInputMouseMotion_t m_MouseMotion; + + // Mouse button event data, valid when m_eType is k_ERemotePlayInputMouseButtonDown or k_ERemotePlayInputMouseButtonUp + ERemotePlayMouseButton m_eMouseButton; + + // Mouse wheel event data, valid when m_eType is k_ERemotePlayInputMouseWheel + RemotePlayInputMouseWheel_t m_MouseWheel; + + // Key event data, valid when m_eType is k_ERemotePlayInputKeyDown or k_ERemotePlayInputKeyUp + RemotePlayInputKey_t m_Key; + + // Unused space for future use + char padding[ 64 - ( sizeof( m_unSessionID ) + sizeof( m_eType ) ) ]; + } data; +}; +//COMPILE_TIME_ASSERT( sizeof( RemotePlayInput_t ) == 64 ); + +#pragma pack( pop ) + + +//----------------------------------------------------------------------------- +// Purpose: Functions to provide information about Steam Remote Play sessions +//----------------------------------------------------------------------------- +class ISteamRemotePlay +{ +public: + // Get the number of currently connected Steam Remote Play sessions + virtual uint32 GetSessionCount() = 0; + + // Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds. + virtual RemotePlaySessionID_t GetSessionID( int iSessionIndex ) = 0; + + // Get the SteamID of the connected user + virtual CSteamID GetSessionSteamID( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the name of the session client device + // This returns NULL if the sessionID is not valid + virtual const char *GetSessionClientName( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the form factor of the session client device + virtual ESteamDeviceFormFactor GetSessionClientFormFactor( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the resolution, in pixels, of the session client device + // This is set to 0x0 if the resolution is not available + virtual bool BGetSessionClientResolution( RemotePlaySessionID_t unSessionID, int *pnResolutionX, int *pnResolutionY ) = 0; + + // Show the Remote Play Together UI in the game overlay + // This returns false if your game is not configured for Remote Play Together + virtual bool ShowRemotePlayTogetherUI() = 0; + + // Invite a friend to Remote Play Together, or create a guest invite if steamIDFriend is CSteamID() + // This returns false if the invite can't be sent or your game is not configured for Remote Play Together + virtual bool BSendRemotePlayTogetherInvite( CSteamID steamIDFriend ) = 0; + + // Make mouse and keyboard input for Remote Play Together sessions available via GetInput() instead of being merged with local input + virtual bool BEnableRemotePlayTogetherDirectInput() = 0; + + // Merge Remote Play Together mouse and keyboard input with local input + virtual void DisableRemotePlayTogetherDirectInput() = 0; + + // Get input events from Remote Play Together sessions + // This is available after calling BEnableRemotePlayTogetherDirectInput() + // + // pInput is an array of input events that will be filled in by this function, up to unMaxEvents. + // This returns the number of events copied to pInput, or the number of events available if pInput is nullptr. + virtual uint32 GetInput( RemotePlayInput_t *pInput, uint32 unMaxEvents ) = 0; + + // Set the mouse cursor visibility for a remote player + // This is available after calling BEnableRemotePlayTogetherDirectInput() + virtual void SetMouseVisibility( RemotePlaySessionID_t unSessionID, bool bVisible ) = 0; + + // Set the mouse cursor position for a remote player + // This is available after calling BEnableRemotePlayTogetherDirectInput() + // + // This is used to warp the cursor to a specific location and isn't needed during normal event processing. + // + // The position is normalized relative to the window, where 0,0 is the upper left, and 1,1 is the lower right. + virtual void SetMousePosition( RemotePlaySessionID_t unSessionID, float flNormalizedX, float flNormalizedY ) = 0; + + // Create a cursor that can be used with SetMouseCursor() + // This is available after calling BEnableRemotePlayTogetherDirectInput() + // + // Parameters: + // nWidth - The width of the cursor, in pixels + // nHeight - The height of the cursor, in pixels + // nHotX - The X coordinate of the cursor hot spot in pixels, offset from the left of the cursor + // nHotY - The Y coordinate of the cursor hot spot in pixels, offset from the top of the cursor + // pBGRA - A pointer to the cursor pixels, with the color channels in red, green, blue, alpha order + // nPitch - The distance between pixel rows in bytes, defaults to nWidth * 4 + virtual RemotePlayCursorID_t CreateMouseCursor( int nWidth, int nHeight, int nHotX, int nHotY, const void *pBGRA, int nPitch = 0 ) = 0; + + // Set the mouse cursor for a remote player + // This is available after calling BEnableRemotePlayTogetherDirectInput() + // + // The cursor ID is a value returned by CreateMouseCursor() + virtual void SetMouseCursor( RemotePlaySessionID_t unSessionID, RemotePlayCursorID_t unCursorID ) = 0; +}; + +#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION003" + +// Global interface accessor +inline ISteamRemotePlay *SteamRemotePlay(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemotePlay *, SteamRemotePlay, STEAMREMOTEPLAY_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionConnected_t, k_iSteamRemotePlayCallbacks + 1 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionDisconnected_t, k_iSteamRemotePlayCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlayTogetherGuestInvite_t, k_iSteamRemotePlayCallbacks + 3 ) + STEAM_CALLBACK_MEMBER_ARRAY( 0, char, m_szConnectURL, 1024 ) +STEAM_CALLBACK_END( 0 ) + + +#pragma pack( pop ) + + +#endif // #define ISTEAMREMOTEPLAY_H diff --git a/lsteamclient/steamworks_sdk_163/isteamremotestorage.h b/lsteamclient/steamworks_sdk_163/isteamremotestorage.h new file mode 100644 index 00000000000..c0da367e043 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamremotestorage.h @@ -0,0 +1,661 @@ +//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: public interface to user remote file storage in Steam +// +//============================================================================= + +#ifndef ISTEAMREMOTESTORAGE_H +#define ISTEAMREMOTESTORAGE_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + + +//----------------------------------------------------------------------------- +// Purpose: Defines the largest allowed file size. Cloud files cannot be written +// in a single chunk over 100MB (and cannot be over 200MB total.) +//----------------------------------------------------------------------------- +const uint32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; + + +//----------------------------------------------------------------------------- +// Purpose: Structure that contains an array of const char * strings and the number of those strings +//----------------------------------------------------------------------------- +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif +struct SteamParamStringArray_t +{ + const char ** m_ppStrings; + int32 m_nNumStrings; +}; +#pragma pack( pop ) + +// A handle to a piece of user generated content +typedef uint64 UGCHandle_t; +typedef uint64 PublishedFileUpdateHandle_t; +typedef uint64 PublishedFileId_t; +const PublishedFileId_t k_PublishedFileIdInvalid = 0; +const UGCHandle_t k_UGCHandleInvalid = 0xffffffffffffffffull; +const PublishedFileUpdateHandle_t k_PublishedFileUpdateHandleInvalid = 0xffffffffffffffffull; + +// Handle for writing to Steam Cloud +typedef uint64 UGCFileWriteStreamHandle_t; +const UGCFileWriteStreamHandle_t k_UGCFileStreamHandleInvalid = 0xffffffffffffffffull; + +const uint32 k_cchPublishedDocumentTitleMax = 128 + 1; +const uint32 k_cchPublishedDocumentDescriptionMax = 8000; +const uint32 k_cchPublishedDocumentChangeDescriptionMax = 8000; +const uint32 k_unEnumeratePublishedFilesMaxResults = 50; +const uint32 k_cchTagListMax = 1024 + 1; +const uint32 k_cchFilenameMax = 260; +const uint32 k_cchPublishedFileURLMax = 256; + + +enum ERemoteStoragePlatform +{ + k_ERemoteStoragePlatformNone = 0, + k_ERemoteStoragePlatformWindows = (1 << 0), + k_ERemoteStoragePlatformOSX = (1 << 1), + k_ERemoteStoragePlatformPS3 = (1 << 2), + k_ERemoteStoragePlatformLinux = (1 << 3), + k_ERemoteStoragePlatformSwitch = (1 << 4), + k_ERemoteStoragePlatformAndroid = (1 << 5), + k_ERemoteStoragePlatformIOS = (1 << 6), + // NB we get one more before we need to widen some things + + k_ERemoteStoragePlatformAll = 0xffffffff +}; + +enum ERemoteStoragePublishedFileVisibility +{ + k_ERemoteStoragePublishedFileVisibilityPublic = 0, + k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, + k_ERemoteStoragePublishedFileVisibilityPrivate = 2, + k_ERemoteStoragePublishedFileVisibilityUnlisted = 3, +}; + + +enum EWorkshopFileType +{ + k_EWorkshopFileTypeFirst = 0, + + k_EWorkshopFileTypeCommunity = 0, // normal Workshop item that can be subscribed to + k_EWorkshopFileTypeMicrotransaction = 1, // Workshop item that is meant to be voted on for the purpose of selling in-game + k_EWorkshopFileTypeCollection = 2, // a collection of Workshop or Greenlight items + k_EWorkshopFileTypeArt = 3, // artwork + k_EWorkshopFileTypeVideo = 4, // external video + k_EWorkshopFileTypeScreenshot = 5, // screenshot + k_EWorkshopFileTypeGame = 6, // Greenlight game entry + k_EWorkshopFileTypeSoftware = 7, // Greenlight software entry + k_EWorkshopFileTypeConcept = 8, // Greenlight concept + k_EWorkshopFileTypeWebGuide = 9, // Steam web guide + k_EWorkshopFileTypeIntegratedGuide = 10, // application integrated guide + k_EWorkshopFileTypeMerch = 11, // Workshop merchandise meant to be voted on for the purpose of being sold + k_EWorkshopFileTypeControllerBinding = 12, // Steam Controller bindings + k_EWorkshopFileTypeSteamworksAccessInvite = 13, // internal + k_EWorkshopFileTypeSteamVideo = 14, // Steam video + k_EWorkshopFileTypeGameManagedItem = 15, // managed completely by the game, not the user, and not shown on the web + k_EWorkshopFileTypeClip = 16, // internal + + // Update k_EWorkshopFileTypeMax if you add values. + k_EWorkshopFileTypeMax = 17 + +}; + +enum EWorkshopVote +{ + k_EWorkshopVoteUnvoted = 0, + k_EWorkshopVoteFor = 1, + k_EWorkshopVoteAgainst = 2, + k_EWorkshopVoteLater = 3, +}; + +enum EWorkshopFileAction +{ + k_EWorkshopFileActionPlayed = 0, + k_EWorkshopFileActionCompleted = 1, +}; + +enum EWorkshopEnumerationType +{ + k_EWorkshopEnumerationTypeRankedByVote = 0, + k_EWorkshopEnumerationTypeRecent = 1, + k_EWorkshopEnumerationTypeTrending = 2, + k_EWorkshopEnumerationTypeFavoritesOfFriends = 3, + k_EWorkshopEnumerationTypeVotedByFriends = 4, + k_EWorkshopEnumerationTypeContentByFriends = 5, + k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6, +}; + +enum EWorkshopVideoProvider +{ + k_EWorkshopVideoProviderNone = 0, + k_EWorkshopVideoProviderYoutube = 1 +}; + + +enum EUGCReadAction +{ + // Keeps the file handle open unless the last byte is read. You can use this when reading large files (over 100MB) in sequential chunks. + // If the last byte is read, this will behave the same as k_EUGCRead_Close. Otherwise, it behaves the same as k_EUGCRead_ContinueReading. + // This value maintains the same behavior as before the EUGCReadAction parameter was introduced. + k_EUGCRead_ContinueReadingUntilFinished = 0, + + // Keeps the file handle open. Use this when using UGCRead to seek to different parts of the file. + // When you are done seeking around the file, make a final call with k_EUGCRead_Close to close it. + k_EUGCRead_ContinueReading = 1, + + // Frees the file handle. Use this when you're done reading the content. + // To read the file from Steam again you will need to call UGCDownload again. + k_EUGCRead_Close = 2, +}; + +enum ERemoteStorageLocalFileChange +{ + k_ERemoteStorageLocalFileChange_Invalid = 0, + + // The file was updated from another device + k_ERemoteStorageLocalFileChange_FileUpdated = 1, + + // The file was deleted by another device + k_ERemoteStorageLocalFileChange_FileDeleted = 2, +}; + +enum ERemoteStorageFilePathType +{ + k_ERemoteStorageFilePathType_Invalid = 0, + + // The file is directly accessed by the game and this is the full path + k_ERemoteStorageFilePathType_Absolute = 1, + + // The file is accessed via the ISteamRemoteStorage API and this is the filename + k_ERemoteStorageFilePathType_APIFilename = 2, +}; + + +//----------------------------------------------------------------------------- +// Purpose: Functions for accessing, reading and writing files stored remotely +// and cached locally +//----------------------------------------------------------------------------- +class ISteamRemoteStorage +{ + public: + // NOTE + // + // Filenames are case-insensitive, and will be converted to lowercase automatically. + // So "foo.bar" and "Foo.bar" are the same file, and if you write "Foo.bar" then + // iterate the files, the filename returned will be "foo.bar". + // + + // file operations + virtual bool FileWrite( const char *pchFile, const void *pvData, int32 cubData ) = 0; + virtual int32 FileRead( const char *pchFile, void *pvData, int32 cubDataToRead ) = 0; + + STEAM_CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) + virtual SteamAPICall_t FileWriteAsync( const char *pchFile, const void *pvData, uint32 cubData ) = 0; + + STEAM_CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) + virtual SteamAPICall_t FileReadAsync( const char *pchFile, uint32 nOffset, uint32 cubToRead ) = 0; + virtual bool FileReadAsyncComplete( SteamAPICall_t hReadCall, void *pvBuffer, uint32 cubToRead ) = 0; + + virtual bool FileForget( const char *pchFile ) = 0; + virtual bool FileDelete( const char *pchFile ) = 0; + STEAM_CALL_RESULT( RemoteStorageFileShareResult_t ) + virtual SteamAPICall_t FileShare( const char *pchFile ) = 0; + virtual bool SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0; + + // file operations that cause network IO + virtual UGCFileWriteStreamHandle_t FileWriteStreamOpen( const char *pchFile ) = 0; + virtual bool FileWriteStreamWriteChunk( UGCFileWriteStreamHandle_t writeHandle, const void *pvData, int32 cubData ) = 0; + virtual bool FileWriteStreamClose( UGCFileWriteStreamHandle_t writeHandle ) = 0; + virtual bool FileWriteStreamCancel( UGCFileWriteStreamHandle_t writeHandle ) = 0; + + // file information + virtual bool FileExists( const char *pchFile ) = 0; + virtual bool FilePersisted( const char *pchFile ) = 0; + virtual int32 GetFileSize( const char *pchFile ) = 0; + virtual int64 GetFileTimestamp( const char *pchFile ) = 0; + virtual ERemoteStoragePlatform GetSyncPlatforms( const char *pchFile ) = 0; + + // iteration + virtual int32 GetFileCount() = 0; + virtual const char *GetFileNameAndSize( int iFile, int32 *pnFileSizeInBytes ) = 0; + + // configuration management + virtual bool GetQuota( uint64 *pnTotalBytes, uint64 *puAvailableBytes ) = 0; + virtual bool IsCloudEnabledForAccount() = 0; + virtual bool IsCloudEnabledForApp() = 0; + virtual void SetCloudEnabledForApp( bool bEnabled ) = 0; + + // user generated content + + // Downloads a UGC file. A priority value of 0 will download the file immediately, + // otherwise it will wait to download the file until all downloads with a lower priority + // value are completed. Downloads with equal priority will occur simultaneously. + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, uint32 unPriority ) = 0; + + // Gets the amount of data downloaded so far for a piece of content. pnBytesExpected can be 0 if function returns false + // or if the transfer hasn't started yet, so be careful to check for that before dividing to get a percentage + virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, int32 *pnBytesDownloaded, int32 *pnBytesExpected ) = 0; + + // Gets metadata for a file after it has been downloaded. This is the same metadata given in the RemoteStorageDownloadUGCResult_t call result + virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, STEAM_OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, STEAM_OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; + + // After download, gets the content of the file. + // Small files can be read all at once by calling this function with an offset of 0 and cubDataToRead equal to the size of the file. + // Larger files can be read in chunks to reduce memory usage (since both sides of the IPC client and the game itself must allocate + // enough memory for each chunk). Once the last byte is read, the file is implicitly closed and further calls to UGCRead will fail + // unless UGCDownload is called again. + // For especially large files (anything over 100MB) it is a requirement that the file is read in chunks. + virtual int32 UGCRead( UGCHandle_t hContent, void *pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction ) = 0; + + // Functions to iterate through UGC that has finished downloading but has not yet been read via UGCRead() + virtual int32 GetCachedUGCCount() = 0; + virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0; + + // publishing UGC + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) + virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0; + virtual PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId ) = 0; + virtual bool UpdatePublishedFileFile( PublishedFileUpdateHandle_t updateHandle, const char *pchFile ) = 0; + virtual bool UpdatePublishedFilePreviewFile( PublishedFileUpdateHandle_t updateHandle, const char *pchPreviewFile ) = 0; + virtual bool UpdatePublishedFileTitle( PublishedFileUpdateHandle_t updateHandle, const char *pchTitle ) = 0; + virtual bool UpdatePublishedFileDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchDescription ) = 0; + virtual bool UpdatePublishedFileVisibility( PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; + virtual bool UpdatePublishedFileTags( PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t *pTags ) = 0; + STEAM_CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) + virtual SteamAPICall_t CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle ) = 0; + // Gets published file details for the given publishedfileid. If unMaxSecondsOld is greater than 0, + // cached data may be returned, depending on how long ago it was cached. A value of 0 will force a refresh. + // A value of k_WorkshopForceLoadPublishedFileDetailsFromCache will use cached data if it exists, no matter how old it is. + STEAM_CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) + virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ) = 0; + STEAM_CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) + virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; + // enumerate the files that the current user published with this app + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 unStartIndex ) = 0; + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; + STEAM_CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) + virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 unStartIndex ) = 0; + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; + virtual bool UpdatePublishedFileSetChangeDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchChangeDescription ) = 0; + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; + STEAM_CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) + virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0; + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( CSteamID steamId, uint32 unStartIndex, SteamParamStringArray_t *pRequiredTags, SteamParamStringArray_t *pExcludedTags ) = 0; + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) + virtual SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *pchVideoAccount, const char *pchVideoIdentifier, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0; + STEAM_CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) + virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0; + STEAM_CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) + virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 unStartIndex ) = 0; + // this method enumerates the public view of workshop files + STEAM_CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) + virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0; + + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + virtual SteamAPICall_t UGCDownloadToLocation( UGCHandle_t hContent, const char *pchLocation, uint32 unPriority ) = 0; + + // Cloud dynamic state change notification + virtual int32 GetLocalFileChangeCount() = 0; + virtual const char *GetLocalFileChange( int iFile, ERemoteStorageLocalFileChange *pEChangeType, ERemoteStorageFilePathType *pEFilePathType ) = 0; + + // Indicate to Steam the beginning / end of a set of local file + // operations - for example, writing a game save that requires updating two files. + virtual bool BeginFileWriteBatch() = 0; + virtual bool EndFileWriteBatch() = 0; +}; + +#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION016" + +// Global interface accessor +inline ISteamRemoteStorage *SteamRemoteStorage(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemoteStorage *, SteamRemoteStorage, STEAMREMOTESTORAGE_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to FileShare() +//----------------------------------------------------------------------------- +struct RemoteStorageFileShareResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 7 }; + EResult m_eResult; // The result of the operation + UGCHandle_t m_hFile; // The handle that can be shared with users and features + char m_rgchFilename[k_cchFilenameMax]; // The name of the file that was shared +}; + + +// k_iSteamRemoteStorageCallbacks + 8 is deprecated! Do not reuse + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to PublishFile() +//----------------------------------------------------------------------------- +struct RemoteStoragePublishFileResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 9 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; + bool m_bUserNeedsToAcceptWorkshopLegalAgreement; +}; + +// k_iSteamRemoteStorageCallbacks + 10 is deprecated! Do not reuse + + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to DeletePublishedFile() +//----------------------------------------------------------------------------- +struct RemoteStorageDeletePublishedFileResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 11 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to EnumerateUserPublishedFiles() +//----------------------------------------------------------------------------- +struct RemoteStorageEnumerateUserPublishedFilesResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 12 }; + EResult m_eResult; // The result of the operation. + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to SubscribePublishedFile() +//----------------------------------------------------------------------------- +struct RemoteStorageSubscribePublishedFileResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 13 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to EnumerateSubscribePublishedFiles() +//----------------------------------------------------------------------------- +struct RemoteStorageEnumerateUserSubscribedFilesResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 14 }; + EResult m_eResult; // The result of the operation. + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + uint32 m_rgRTimeSubscribed[ k_unEnumeratePublishedFilesMaxResults ]; +}; + +#if defined(VALVE_CALLBACK_PACK_SMALL) + VALVE_COMPILE_TIME_ASSERT( sizeof( RemoteStorageEnumerateUserSubscribedFilesResult_t ) == (1 + 1 + 1 + 50 + 100) * 4 ); +#elif defined(VALVE_CALLBACK_PACK_LARGE) + VALVE_COMPILE_TIME_ASSERT( sizeof( RemoteStorageEnumerateUserSubscribedFilesResult_t ) == (1 + 1 + 1 + 50 + 100) * 4 + 4 ); +#else +#warning You must first include steam_api_common.h +#endif + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to UnsubscribePublishedFile() +//----------------------------------------------------------------------------- +struct RemoteStorageUnsubscribePublishedFileResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 15 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to CommitPublishedFileUpdate() +//----------------------------------------------------------------------------- +struct RemoteStorageUpdatePublishedFileResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 16 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; + bool m_bUserNeedsToAcceptWorkshopLegalAgreement; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to UGCDownload() +//----------------------------------------------------------------------------- +struct RemoteStorageDownloadUGCResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 17 }; + EResult m_eResult; // The result of the operation. + UGCHandle_t m_hFile; // The handle to the file that was attempted to be downloaded. + AppId_t m_nAppID; // ID of the app that created this file. + int32 m_nSizeInBytes; // The size of the file that was downloaded, in bytes. + char m_pchFileName[k_cchFilenameMax]; // The name of the file that was downloaded. + uint64 m_ulSteamIDOwner; // Steam ID of the user who created this content. +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetPublishedFileDetails() +//----------------------------------------------------------------------------- +struct RemoteStorageGetPublishedFileDetailsResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 18 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nCreatorAppID; // ID of the app that created this file. + AppId_t m_nConsumerAppID; // ID of the app that will consume this file. + char m_rgchTitle[k_cchPublishedDocumentTitleMax]; // title of document + char m_rgchDescription[k_cchPublishedDocumentDescriptionMax]; // description of document + UGCHandle_t m_hFile; // The handle of the primary file + UGCHandle_t m_hPreviewFile; // The handle of the preview file + uint64 m_ulSteamIDOwner; // Steam ID of the user who created this content. + uint32 m_rtimeCreated; // time when the published file was created + uint32 m_rtimeUpdated; // time when the published file was last updated + ERemoteStoragePublishedFileVisibility m_eVisibility; + bool m_bBanned; + char m_rgchTags[k_cchTagListMax]; // comma separated list of all tags associated with this file + bool m_bTagsTruncated; // whether the list of tags was too long to be returned in the provided buffer + char m_pchFileName[k_cchFilenameMax]; // The name of the primary file + int32 m_nFileSize; // Size of the primary file + int32 m_nPreviewFileSize; // Size of the preview file + char m_rgchURL[k_cchPublishedFileURLMax]; // URL (for a video or a website) + EWorkshopFileType m_eFileType; // Type of the file + bool m_bAcceptedForUse; // developer has specifically flagged this item as accepted in the Workshop +}; + + +struct RemoteStorageEnumerateWorkshopFilesResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 19 }; + EResult m_eResult; + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + float m_rgScore[ k_unEnumeratePublishedFilesMaxResults ]; + AppId_t m_nAppId; + uint32 m_unStartIndex; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of GetPublishedItemVoteDetails +//----------------------------------------------------------------------------- +struct RemoteStorageGetPublishedItemVoteDetailsResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 20 }; + EResult m_eResult; + PublishedFileId_t m_unPublishedFileId; + int32 m_nVotesFor; + int32 m_nVotesAgainst; + int32 m_nReports; + float m_fScore; +}; + + +//----------------------------------------------------------------------------- +// Purpose: User subscribed to a file for the app (from within the app or on the web) +//----------------------------------------------------------------------------- +struct RemoteStoragePublishedFileSubscribed_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 21 }; + PublishedFileId_t m_nPublishedFileId; // The published file id + AppId_t m_nAppID; // ID of the app that will consume this file. +}; + +//----------------------------------------------------------------------------- +// Purpose: User unsubscribed from a file for the app (from within the app or on the web) +//----------------------------------------------------------------------------- +struct RemoteStoragePublishedFileUnsubscribed_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 22 }; + PublishedFileId_t m_nPublishedFileId; // The published file id + AppId_t m_nAppID; // ID of the app that will consume this file. +}; + + +//----------------------------------------------------------------------------- +// Purpose: Published file that a user owns was deleted (from within the app or the web) +//----------------------------------------------------------------------------- +struct RemoteStoragePublishedFileDeleted_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 23 }; + PublishedFileId_t m_nPublishedFileId; // The published file id + AppId_t m_nAppID; // ID of the app that will consume this file. +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to UpdateUserPublishedItemVote() +//----------------------------------------------------------------------------- +struct RemoteStorageUpdateUserPublishedItemVoteResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 24 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; // The published file id +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetUserPublishedItemVoteDetails() +//----------------------------------------------------------------------------- +struct RemoteStorageUserVoteDetails_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 25 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; // The published file id + EWorkshopVote m_eVote; // what the user voted +}; + +struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 26 }; + EResult m_eResult; // The result of the operation. + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; +}; + +struct RemoteStorageSetUserPublishedFileActionResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 27 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; // The published file id + EWorkshopFileAction m_eAction; // the action that was attempted +}; + +struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 28 }; + EResult m_eResult; // The result of the operation. + EWorkshopFileAction m_eAction; // the action that was filtered on + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + uint32 m_rgRTimeUpdated[ k_unEnumeratePublishedFilesMaxResults ]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Called periodically while a PublishWorkshopFile is in progress +//----------------------------------------------------------------------------- +struct RemoteStoragePublishFileProgress_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 29 }; + double m_dPercentFile; + bool m_bPreview; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Called when the content for a published file is updated +//----------------------------------------------------------------------------- +struct RemoteStoragePublishedFileUpdated_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 30 }; + PublishedFileId_t m_nPublishedFileId; // The published file id + AppId_t m_nAppID; // ID of the app that will consume this file. + uint64 m_ulUnused; // not used anymore +}; + +//----------------------------------------------------------------------------- +// Purpose: Called when a FileWriteAsync completes +//----------------------------------------------------------------------------- +struct RemoteStorageFileWriteAsyncComplete_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 31 }; + EResult m_eResult; // result +}; + +//----------------------------------------------------------------------------- +// Purpose: Called when a FileReadAsync completes +//----------------------------------------------------------------------------- +struct RemoteStorageFileReadAsyncComplete_t +{ + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 32 }; + SteamAPICall_t m_hFileReadAsync; // call handle of the async read which was made + EResult m_eResult; // result + uint32 m_nOffset; // offset in the file this read was at + uint32 m_cubRead; // amount read - will the <= the amount requested +}; + +//----------------------------------------------------------------------------- +// Purpose: one or more files for this app have changed locally after syncing +// to remote session changes +// Note: only posted if this happens DURING the local app session +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( RemoteStorageLocalFileChange_t, k_iSteamRemoteStorageCallbacks + 33 ) +STEAM_CALLBACK_END( 0 ) + +#pragma pack( pop ) + + +#endif // ISTEAMREMOTESTORAGE_H diff --git a/lsteamclient/steamworks_sdk_163/isteamscreenshots.h b/lsteamclient/steamworks_sdk_163/isteamscreenshots.h new file mode 100644 index 00000000000..18242682c34 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamscreenshots.h @@ -0,0 +1,120 @@ +//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: public interface to user remote file storage in Steam +// +//============================================================================= + +#ifndef ISTEAMSCREENSHOTS_H +#define ISTEAMSCREENSHOTS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +const uint32 k_nScreenshotMaxTaggedUsers = 32; +const uint32 k_nScreenshotMaxTaggedPublishedFiles = 32; +const int k_cubUFSTagTypeMax = 255; +const int k_cubUFSTagValueMax = 255; + +// Required with of a thumbnail provided to AddScreenshotToLibrary. If you do not provide a thumbnail +// one will be generated. +const int k_ScreenshotThumbWidth = 200; + +// Handle is valid for the lifetime of your process and no longer +typedef uint32 ScreenshotHandle; +#define INVALID_SCREENSHOT_HANDLE 0 + +enum EVRScreenshotType +{ + k_EVRScreenshotType_None = 0, + k_EVRScreenshotType_Mono = 1, + k_EVRScreenshotType_Stereo = 2, + k_EVRScreenshotType_MonoCubemap = 3, + k_EVRScreenshotType_MonoPanorama = 4, + k_EVRScreenshotType_StereoPanorama = 5 +}; + +//----------------------------------------------------------------------------- +// Purpose: Functions for adding screenshots to the user's screenshot library +//----------------------------------------------------------------------------- +class ISteamScreenshots +{ +public: + // Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + // The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + virtual ScreenshotHandle WriteScreenshot( void *pubRGB, uint32 cubRGB, int nWidth, int nHeight ) = 0; + + // Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + // as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + // The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + // JPEG, TGA, and PNG formats are supported. + virtual ScreenshotHandle AddScreenshotToLibrary( const char *pchFilename, const char *pchThumbnailFilename, int nWidth, int nHeight ) = 0; + + // Causes the Steam overlay to take a screenshot. If screenshots are being hooked by the game then a ScreenshotRequested_t callback is sent back to the game instead. + virtual void TriggerScreenshot() = 0; + + // Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or the game handles them. If the game is hooking screenshots, + // then the ScreenshotRequested_t callback will be sent if the user presses the hotkey, and the game is expected to call WriteScreenshot or AddScreenshotToLibrary + // in response. + virtual void HookScreenshots( bool bHook ) = 0; + + // Sets metadata about a screenshot's location (for example, the name of the map) + virtual bool SetLocation( ScreenshotHandle hScreenshot, const char *pchLocation ) = 0; + + // Tags a user as being visible in the screenshot + virtual bool TagUser( ScreenshotHandle hScreenshot, CSteamID steamID ) = 0; + + // Tags a published file as being visible in the screenshot + virtual bool TagPublishedFile( ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID ) = 0; + + // Returns true if the app has hooked the screenshot + virtual bool IsScreenshotsHooked() = 0; + + // Adds a VR screenshot to the user's screenshot library from disk in the supported type. + // pchFilename should be the normal 2D image used in the library view + // pchVRFilename should contain the image that matches the correct type + // The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + // JPEG, TGA, and PNG formats are supported. + virtual ScreenshotHandle AddVRScreenshotToLibrary( EVRScreenshotType eType, const char *pchFilename, const char *pchVRFilename ) = 0; +}; + +#define STEAMSCREENSHOTS_INTERFACE_VERSION "STEAMSCREENSHOTS_INTERFACE_VERSION003" + +// Global interface accessor +inline ISteamScreenshots *SteamScreenshots(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamScreenshots *, SteamScreenshots, STEAMSCREENSHOTS_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif +//----------------------------------------------------------------------------- +// Purpose: Screenshot successfully written or otherwise added to the library +// and can now be tagged +//----------------------------------------------------------------------------- +struct ScreenshotReady_t +{ + enum { k_iCallback = k_iSteamScreenshotsCallbacks + 1 }; + ScreenshotHandle m_hLocal; + EResult m_eResult; +}; + +//----------------------------------------------------------------------------- +// Purpose: Screenshot has been requested by the user. Only sent if +// HookScreenshots() has been called, in which case Steam will not take +// the screenshot itself. +//----------------------------------------------------------------------------- +struct ScreenshotRequested_t +{ + enum { k_iCallback = k_iSteamScreenshotsCallbacks + 2 }; +}; + +#pragma pack( pop ) + +#endif // ISTEAMSCREENSHOTS_H + diff --git a/lsteamclient/steamworks_sdk_163/isteamtimeline.h b/lsteamclient/steamworks_sdk_163/isteamtimeline.h new file mode 100644 index 00000000000..6ed12f88890 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamtimeline.h @@ -0,0 +1,261 @@ +//====== Copyright � Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to Steam Timeline +// +//============================================================================= + +#ifndef ISTEAMTIMELINE_H +#define ISTEAMTIMELINE_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +// Controls the color of the timeline bar segments. The value names listed here map to a multiplayer game, where +// the user starts a game (in menus), then joins a multiplayer session that first has a character selection lobby +// then finally the multiplayer session starts. However, you can also map these values to any type of game. In a single +// player game where you visit towns & dungeons, you could set k_ETimelineGameMode_Menus when the player is in a town +// buying items, k_ETimelineGameMode_Staging for when a dungeon is loading and k_ETimelineGameMode_Playing for when +// inside the dungeon fighting monsters. +enum ETimelineGameMode +{ + k_ETimelineGameMode_Invalid = 0, + k_ETimelineGameMode_Playing = 1, + k_ETimelineGameMode_Staging = 2, + k_ETimelineGameMode_Menus = 3, + k_ETimelineGameMode_LoadingScreen = 4, + + k_ETimelineGameMode_Max, // one past the last valid value +}; + +// Used in AddTimelineEvent, where Featured events will be offered before Standard events +enum ETimelineEventClipPriority +{ + k_ETimelineEventClipPriority_Invalid = 0, + k_ETimelineEventClipPriority_None = 1, + k_ETimelineEventClipPriority_Standard = 2, + k_ETimelineEventClipPriority_Featured = 3, +}; + + +const uint32 k_unMaxTimelinePriority = 1000; +const uint32 k_unTimelinePriority_KeepCurrentValue = 1000000; // Use with UpdateRangeTimelineEvent to not change the priority +const float k_flMaxTimelineEventDuration = 600.f; +const uint32 k_cchMaxPhaseIDLength = 64; + +typedef uint64 TimelineEventHandle_t; + + +//----------------------------------------------------------------------------- +// Purpose: Steam Timeline API +//----------------------------------------------------------------------------- +class ISteamTimeline +{ +public: + + // Sets a description for the current game state in the timeline. These help the user to find specific + // moments in the timeline when saving clips. Setting a new state description replaces any previous + // description. + // + // Examples could include: + // * Where the user is in the world in a single player game + // * Which round is happening in a multiplayer game + // * The current score for a sports game + // + // Parameters: + // - pchDescription: provide a localized string in the language returned by SteamUtils()->GetSteamUILanguage() + // - flTimeDelta: The time offset in seconds to apply to this event. Negative times indicate an + // event that happened in the past. + virtual void SetTimelineTooltip( const char *pchDescription, float flTimeDelta ) = 0; + virtual void ClearTimelineTooltip( float flTimeDelta ) = 0; + + // Changes the color of the timeline bar. See ETimelineGameMode comments for how to use each value + virtual void SetTimelineGameMode( ETimelineGameMode eMode ) = 0; + + /******************* Timeline Events *******************/ + + // The following functions add events and/or tags to the timeline. There are helpers to add simple events or tags in a single call. + // or you can use StartEvent and CloseEvent to customize what gets added. + // + // Examples of events to add could include: + // * a boss battle + // * a cut scene + // * a large team fight + // * picking up a new weapon or ammunition + // * scoring a goal + // + // Adding an event and a time range with the simple API: + // SteamTimeline()->AddSimpleTimelineEvent( "steam_heart", Localize( "#user healed" ), Localize( "#health_amount", 27 ), 15, 0, 0, k_ETimelineEventClipPriority_None ); + // SteamTimeline()->AddTaggedTimeRange( Localize( "#player_resting" ), "steam_flag", /* don't show filter */nullptr, 15, /* start now */0, 10 ); + // SteamTimeline()->AddTaggedTimeRange( Localize( "#player_cast_light" ), "steam_starburst", Localize( "#player_spells" ), 10, /* start 10 sec ago */ -10, 5 ); + // + // Adding a marker and time range in one event: + // TimelineEventHandle_t event = SteamTimeline()->StartEvent( /* start now */ 0 ); + // SteamTimeline()->ShowEventOnTimeline( event, "steam_heart", Localize( "#player_healed" ), Localize( "#player_healed_amount", 27 ), 15 ); + // SteamTimeline()->AddEventTag( event, Localize( "#player_cast_heal" ), "steam_heart", Localize( "#player_, 15, /* start now */0, 10 ); + // ... // time passes + // SteamTimeline()->CloseEvent( event ); + // + // Parameters used by the event functions: + // + // - ulOpenEvent: An event returned by StartEvent that has not yet had CancelEvent or CloseEvent called on it + // - ulEvent: An event that has had CloseEvent called on it, or an event returned from AddSimpleTimelineEvent or AddTaggedTimeRange (which + // are closed automatically.) + // - pchIcon: specify the name of the icon uploaded through the Steamworks Partner Site for your title + // or one of the provided icons that start with steam_ + // - pchTitle & pchDescription: provide a localized string in the language returned by + // SteamUtils()->GetSteamUILanguage() + // - unIconPriority: specify how important this range is compared to other markers provided by the game. + // Ranges with larger priority values will be displayed more prominently in the UI. This value + // may be between 0 and k_unMaxTimelinePriority. + // - flStartOffsetSeconds: The time that this range started relative to now. Negative times + // indicate an event that happened in the past. + // - flDurationSeconds: How long the time range should be in seconds. For instantaneous events, this + // should be 0 + // - ePossibleClip: By setting this parameter to Featured or Standard, the game indicates to Steam that it + // would be appropriate to offer this range as a clip to the user. For instantaneous events, the + // suggested clip will be for a short time before and after the event itself. + // - pchTagIcon: specify an icon name that will be used next to the tag name in the UI + // - pchTagName: The localized name of the tag to show in the UI. + // - pchTagGroup: The localized name of the tag group to show in the UI. If this is not specified, users will not be able to filter by this tag + // - unTagPriority: specify how important this tag is compared to other tags provided by the game. + // Returns: + // A TimelineEventHandle_t that can be used to make subsequent calls to refer to the timeline event. This event handle is invalid + // after the game exits. + + // quick helpers that add to the timeline in one call + virtual TimelineEventHandle_t AddInstantaneousTimelineEvent( const char *pchTitle, const char *pchDescription, const char *pchIcon, uint32 unIconPriority, float flStartOffsetSeconds = 0.f, ETimelineEventClipPriority ePossibleClip = k_ETimelineEventClipPriority_None ) = 0; + virtual TimelineEventHandle_t AddRangeTimelineEvent( const char *pchTitle, const char *pchDescription, const char *pchIcon, uint32 unIconPriority, float flStartOffsetSeconds = 0.f, float flDuration = 0.f, ETimelineEventClipPriority ePossibleClip = k_ETimelineEventClipPriority_None ) = 0; + + // Starts a timeline event at a the current time, plus an offset in seconds. This event must be ended with EndRangeTimelineEvent. + // Any timeline events that have not been ended when the game exits will be discarded. + virtual TimelineEventHandle_t StartRangeTimelineEvent( const char *pchTitle, const char *pchDescription, const char *pchIcon, uint32 unPriority, float flStartOffsetSeconds, ETimelineEventClipPriority ePossibleClip ) = 0; + + // Updates fields on a range timeline event that was started with StartRangeTimelineEvent, and which has not been ended. + virtual void UpdateRangeTimelineEvent( TimelineEventHandle_t ulEvent, const char *pchTitle, const char *pchDescription, const char *pchIcon, uint32 unPriority, ETimelineEventClipPriority ePossibleClip ) = 0; + + // Ends a range timeline event and shows it in the UI. + virtual void EndRangeTimelineEvent( TimelineEventHandle_t ulEvent, float flEndOffsetSeconds ) = 0; + + // delete the event from the timeline. This can be called on a timeline event from AddInstantaneousTimelineEvent, + // AddRangeTimelineEvent, or StartRangeTimelineEvent/EndRangeTimelineEvent. The timeline event handle must be from the + // current game process. + virtual void RemoveTimelineEvent( TimelineEventHandle_t ulEvent ) = 0; + + // add a tag to whatever time range is represented by the event + STEAM_CALL_RESULT( SteamTimelineEventRecordingExists_t ) + virtual SteamAPICall_t DoesEventRecordingExist( TimelineEventHandle_t ulEvent ) = 0; + + /******************* Game Phases *******************/ + + // Game phases allow the user to navigate their background recordings and clips. Exactly what a game phase means will vary game to game, but + // the game phase should be a section of gameplay that is usually between 10 minutes and a few hours in length, and should be the + // main way a user would think to divide up the game. These are presented to the user in a UI that shows the date the game was played, + // with one row per game slice. Game phases should be used to mark sections of gameplay that the user might be interested in watching. + // + // Examples could include: + // * A single match in a multiplayer PvP game + // * A chapter of a story-based singleplayer game + // * A single run in a roguelike + // + // Game phases are started with StartGamePhase, and while a phase is still happening, they can have tags and attributes added to them. + // + // Phase attributes represent generic text fields that can be updated throughout the duration of the phase. They are meant + // to be used for phase metadata that is not part of a well defined set of options. For example, a KDA attribute that starts + // with the value "0/0/0" and updates as the phase progresses, or something like a played-entered character name. Attributes + // can be set as many times as the game likes with SetGamePhaseAttribute, and only the last value will be shown to the user. + // + // Phase tags represent data with a well defined set of options, which could be data such as match resolution, hero played, + // game mode, etc. Tags can have an icon in addition to a text name. Multiple tags within the same group may be added per phase + // and all will be remembered. For example, AddGamePhaseTag may be called multiple times for a "Bosses Defeated" group, with + // different names and icons for each boss defeated during the phase, all of which will be shown to the user. + // + // The phase will continue until the game exits, until the game calls EndGamePhase, or until the game calls + // StartGamePhase to start a new phase. + // + // The game phase functions take these parameters: + // - pchTagIcon: The name of a game provided timeline icon or builtin "steam_" icon. + // - pchPhaseID: A game-provided persistent ID for a game phase. This could be a the match ID in a multiplayer game, a chapter name in a + // single player game, the ID of a character, etc. + // - pchTagName: The localized name of the tag in the language returned by SteamUtils()->GetSteamUILanguage(). + // - pchTagGroup: The localized name of the tag group. + // - pchAttributeValue: The localized name of the attribute. + // - pchAttributeGroup: The localized name of the attribute group. + // - unPriority: Used to order tags and attributes in the UI displayed to the user, with higher priority values leading + // to more prominent positioning. In contexts where there is limited space, lower priority items may be hidden. + virtual void StartGamePhase() = 0; + virtual void EndGamePhase() = 0; + + // Games can set a phase ID so they can refer back to a phase in OpenOverlayToPhase + virtual void SetGamePhaseID( const char *pchPhaseID ) = 0; + STEAM_CALL_RESULT( SteamTimelineGamePhaseRecordingExists_t ) + virtual SteamAPICall_t DoesGamePhaseRecordingExist( const char *pchPhaseID ) = 0; + + // Add a tag that applies to the entire phase + virtual void AddGamePhaseTag( const char *pchTagName, const char *pchTagIcon, const char *pchTagGroup, uint32 unPriority ) = 0; + + // Add a text attribute that applies to the entire phase + virtual void SetGamePhaseAttribute( const char *pchAttributeGroup, const char *pchAttributeValue, uint32 unPriority ) = 0; + + /******************* Opening the overlay *******************/ + + // Opens the Steam overlay to a game phase. + // + // Parameters: + // - pchPhaseID: The ID of a phase that was previously provided by the game in SetGamePhaseID. + virtual void OpenOverlayToGamePhase( const char *pchPhaseID ) = 0; + + // Opens the Steam overlay to a timeline event. + // + // Parameters: + // - ulEventID: The ID of a timeline event returned by StartEvent or AddSimpleTimelineEvent + virtual void OpenOverlayToTimelineEvent( const TimelineEventHandle_t ulEvent ) = 0; + +}; + +#define STEAMTIMELINE_INTERFACE_VERSION "STEAMTIMELINE_INTERFACE_V004" + +// Global interface accessor +inline ISteamTimeline *SteamTimeline(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamTimeline *, SteamTimeline, STEAMTIMELINE_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamTimelineGamePhaseRecordingExists_t +{ + enum { k_iCallback = k_iSteamTimelineCallbacks + 1 }; + char m_rgchPhaseID[ k_cchMaxPhaseIDLength ]; + uint64 m_ulRecordingMS; + uint64 m_ulLongestClipMS; + uint32 m_unClipCount; + uint32 m_unScreenshotCount; +}; + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamTimelineEventRecordingExists_t +{ + enum { k_iCallback = k_iSteamTimelineCallbacks + 2 }; + uint64 m_ulEventID; + bool m_bRecordingExists; +}; + + + +#pragma pack( pop ) + + +#endif // ISTEAMTIMELINE_H diff --git a/lsteamclient/steamworks_sdk_163/isteamugc.h b/lsteamclient/steamworks_sdk_163/isteamugc.h new file mode 100644 index 00000000000..a985809210c --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamugc.h @@ -0,0 +1,638 @@ +//====== Copyright 1996-2013, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to steam ugc +// +//============================================================================= + +#ifndef ISTEAMUGC_H +#define ISTEAMUGC_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" +#include "isteamremotestorage.h" + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +typedef uint64 UGCQueryHandle_t; +typedef uint64 UGCUpdateHandle_t; + + +const UGCQueryHandle_t k_UGCQueryHandleInvalid = 0xffffffffffffffffull; +const UGCUpdateHandle_t k_UGCUpdateHandleInvalid = 0xffffffffffffffffull; + + +// Matching UGC types for queries +enum EUGCMatchingUGCType +{ + k_EUGCMatchingUGCType_Items = 0, // both mtx items and ready-to-use items + k_EUGCMatchingUGCType_Items_Mtx = 1, + k_EUGCMatchingUGCType_Items_ReadyToUse = 2, + k_EUGCMatchingUGCType_Collections = 3, + k_EUGCMatchingUGCType_Artwork = 4, + k_EUGCMatchingUGCType_Videos = 5, + k_EUGCMatchingUGCType_Screenshots = 6, + k_EUGCMatchingUGCType_AllGuides = 7, // both web guides and integrated guides + k_EUGCMatchingUGCType_WebGuides = 8, + k_EUGCMatchingUGCType_IntegratedGuides = 9, + k_EUGCMatchingUGCType_UsableInGame = 10, // ready-to-use items and integrated guides + k_EUGCMatchingUGCType_ControllerBindings = 11, + k_EUGCMatchingUGCType_GameManagedItems = 12, // game managed items (not managed by users) + k_EUGCMatchingUGCType_All = ~0, // @note: will only be valid for CreateQueryUserUGCRequest requests +}; + +// Different lists of published UGC for a user. +// If the current logged in user is different than the specified user, then some options may not be allowed. +enum EUserUGCList +{ + k_EUserUGCList_Published, + k_EUserUGCList_VotedOn, + k_EUserUGCList_VotedUp, + k_EUserUGCList_VotedDown, + k_EUserUGCList_WillVoteLater, + k_EUserUGCList_Favorited, + k_EUserUGCList_Subscribed, + k_EUserUGCList_UsedOrPlayed, + k_EUserUGCList_Followed, +}; + +// Sort order for user published UGC lists (defaults to creation order descending) +enum EUserUGCListSortOrder +{ + k_EUserUGCListSortOrder_CreationOrderDesc, + k_EUserUGCListSortOrder_CreationOrderAsc, + k_EUserUGCListSortOrder_TitleAsc, + k_EUserUGCListSortOrder_LastUpdatedDesc, + k_EUserUGCListSortOrder_SubscriptionDateDesc, + k_EUserUGCListSortOrder_VoteScoreDesc, + k_EUserUGCListSortOrder_ForModeration, +}; + +// Combination of sorting and filtering for queries across all UGC +enum EUGCQuery +{ + k_EUGCQuery_RankedByVote = 0, + k_EUGCQuery_RankedByPublicationDate = 1, + k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2, + k_EUGCQuery_RankedByTrend = 3, + k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4, + k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5, + k_EUGCQuery_RankedByNumTimesReported = 6, + k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7, + k_EUGCQuery_NotYetRated = 8, + k_EUGCQuery_RankedByTotalVotesAsc = 9, + k_EUGCQuery_RankedByVotesUp = 10, + k_EUGCQuery_RankedByTextSearch = 11, + k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12, + k_EUGCQuery_RankedByPlaytimeTrend = 13, + k_EUGCQuery_RankedByTotalPlaytime = 14, + k_EUGCQuery_RankedByAveragePlaytimeTrend = 15, + k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, + k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, + k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, + k_EUGCQuery_RankedByLastUpdatedDate = 19, +}; + +enum EItemUpdateStatus +{ + k_EItemUpdateStatusInvalid = 0, // The item update handle was invalid, job might be finished, listen too SubmitItemUpdateResult_t + k_EItemUpdateStatusPreparingConfig = 1, // The item update is processing configuration data + k_EItemUpdateStatusPreparingContent = 2, // The item update is reading and processing content files + k_EItemUpdateStatusUploadingContent = 3, // The item update is uploading content changes to Steam + k_EItemUpdateStatusUploadingPreviewFile = 4, // The item update is uploading new preview file image + k_EItemUpdateStatusCommittingChanges = 5 // The item update is committing all changes +}; + +enum EItemState +{ + k_EItemStateNone = 0, // item not tracked on client + k_EItemStateSubscribed = 1, // current user is subscribed to this item. Not just cached. + k_EItemStateLegacyItem = 2, // item was created with ISteamRemoteStorage + k_EItemStateInstalled = 4, // item is installed and usable (but maybe out of date) + k_EItemStateNeedsUpdate = 8, // items needs an update. Either because it's not installed yet or creator updated content + k_EItemStateDownloading = 16, // item update is currently downloading + k_EItemStateDownloadPending = 32, // DownloadItem() was called for this item, content isn't available until DownloadItemResult_t is fired + k_EItemStateDisabledLocally = 64, // Item is disabled locally, so it shouldn't be considered subscribed +}; + +enum EItemStatistic +{ + k_EItemStatistic_NumSubscriptions = 0, + k_EItemStatistic_NumFavorites = 1, + k_EItemStatistic_NumFollowers = 2, + k_EItemStatistic_NumUniqueSubscriptions = 3, + k_EItemStatistic_NumUniqueFavorites = 4, + k_EItemStatistic_NumUniqueFollowers = 5, + k_EItemStatistic_NumUniqueWebsiteViews = 6, + k_EItemStatistic_ReportScore = 7, + k_EItemStatistic_NumSecondsPlayed = 8, + k_EItemStatistic_NumPlaytimeSessions = 9, + k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11, + k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12, +}; + +enum EItemPreviewType +{ + k_EItemPreviewType_Image = 0, // standard image file expected (e.g. jpg, png, gif, etc.) + k_EItemPreviewType_YouTubeVideo = 1, // video id is stored + k_EItemPreviewType_Sketchfab = 2, // model id is stored + k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3, // standard image file expected - cube map in the layout + // +---+---+-------+ + // | |Up | | + // +---+---+---+---+ + // | L | F | R | B | + // +---+---+---+---+ + // | |Dn | | + // +---+---+---+---+ + k_EItemPreviewType_EnvironmentMap_LatLong = 4, // standard image file expected + k_EItemPreviewType_Clip = 5, // clip id is stored + k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value +}; + +enum EUGCContentDescriptorID +{ + k_EUGCContentDescriptor_NudityOrSexualContent = 1, + k_EUGCContentDescriptor_FrequentViolenceOrGore = 2, + k_EUGCContentDescriptor_AdultOnlySexualContent = 3, + k_EUGCContentDescriptor_GratuitousSexualContent = 4, + k_EUGCContentDescriptor_AnyMatureContent = 5, +}; + +const uint32 kNumUGCResultsPerPage = 50; +const uint32 k_cchDeveloperMetadataMax = 5000; + +// Details for a single published file/UGC +struct SteamUGCDetails_t +{ + PublishedFileId_t m_nPublishedFileId; + EResult m_eResult; // The result of the operation. + EWorkshopFileType m_eFileType; // Type of the file + AppId_t m_nCreatorAppID; // ID of the app that created this file. + AppId_t m_nConsumerAppID; // ID of the app that will consume this file. + char m_rgchTitle[k_cchPublishedDocumentTitleMax]; // title of document + char m_rgchDescription[k_cchPublishedDocumentDescriptionMax]; // description of document + uint64 m_ulSteamIDOwner; // Steam ID of the user who created this content. + uint32 m_rtimeCreated; // time when the published file was created + uint32 m_rtimeUpdated; // time when the published file was last updated + uint32 m_rtimeAddedToUserList; // time when the user added the published file to their list (not always applicable) + ERemoteStoragePublishedFileVisibility m_eVisibility; // visibility + bool m_bBanned; // whether the file was banned + bool m_bAcceptedForUse; // developer has specifically flagged this item as accepted in the Workshop + bool m_bTagsTruncated; // whether the list of tags was too long to be returned in the provided buffer + char m_rgchTags[k_cchTagListMax]; // comma separated list of all tags associated with this file + // file/url information + UGCHandle_t m_hFile; // The handle of the primary file + UGCHandle_t m_hPreviewFile; // The handle of the preview file + char m_pchFileName[k_cchFilenameMax]; // The cloud filename of the primary file + int32 m_nFileSize; // Size of the primary file (for legacy items which only support one file). This may not be accurate for non-legacy items which can be greater than 4gb in size. + int32 m_nPreviewFileSize; // Size of the preview file + char m_rgchURL[k_cchPublishedFileURLMax]; // URL (for a video or a website) + // voting information + uint32 m_unVotesUp; // number of votes up + uint32 m_unVotesDown; // number of votes down + float m_flScore; // calculated score + // collection details + uint32 m_unNumChildren; + uint64 m_ulTotalFilesSize; // Total size of all files (non-legacy), excluding the preview file +}; + +//----------------------------------------------------------------------------- +// Purpose: Steam UGC support API +//----------------------------------------------------------------------------- +class ISteamUGC +{ +public: + + // Query UGC associated with a user. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1. + virtual UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; + + // Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestPage ) + virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; + + // Query for all matching UGC using the new deep paging interface. Creator app id or consumer app id must be valid and be set to the current running app. pchCursor should be set to NULL or "*" to get the first result set. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestCursor ) + virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char *pchCursor = NULL ) = 0; + + // Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this) + virtual UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; + + // Send the query to Steam + STEAM_CALL_RESULT( SteamUGCQueryCompleted_t ) + virtual SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle ) = 0; + + // Retrieve an individual result after receiving the callback for querying UGC + virtual bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails ) = 0; + virtual uint32 GetQueryUGCNumTags( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetQueryUGCTag( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCTagDisplayName( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; + virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; + virtual bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; + virtual bool GetQueryUGCStatistic( UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 *pStatValue ) = 0; + virtual uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, STEAM_OUT_STRING_COUNT(cchOriginalFileNameSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; + virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, STEAM_OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + + // Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found. + STEAM_FLAT_NAME( GetQueryFirstUGCKeyValueTag ) + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, const char *pchKey, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + + // Some items can specify that they have a version that is valid for a range of game versions (Steam branch) + virtual uint32 GetNumSupportedGameVersions( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetSupportedGameVersionData( UGCQueryHandle_t handle, uint32 index, uint32 versionIndex, STEAM_OUT_STRING_COUNT( cchGameBranchSize ) char *pchGameBranchMin, STEAM_OUT_STRING_COUNT( cchGameBranchSize ) char *pchGameBranchMax, uint32 cchGameBranchSize ) = 0; + + virtual uint32 GetQueryUGCContentDescriptors( UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; + + // Release the request to free up memory, after retrieving results + virtual bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle ) = 0; + + // Options to set for querying UGC + virtual bool AddRequiredTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; + virtual bool AddRequiredTagGroup( UGCQueryHandle_t handle, const SteamParamStringArray_t *pTagGroups ) = 0; // match any of the tags in this group + virtual bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; + virtual bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs ) = 0; + virtual bool SetReturnKeyValueTags( UGCQueryHandle_t handle, bool bReturnKeyValueTags ) = 0; + virtual bool SetReturnLongDescription( UGCQueryHandle_t handle, bool bReturnLongDescription ) = 0; + virtual bool SetReturnMetadata( UGCQueryHandle_t handle, bool bReturnMetadata ) = 0; + virtual bool SetReturnChildren( UGCQueryHandle_t handle, bool bReturnChildren ) = 0; + virtual bool SetReturnAdditionalPreviews( UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ) = 0; + virtual bool SetReturnTotalOnly( UGCQueryHandle_t handle, bool bReturnTotalOnly ) = 0; + virtual bool SetReturnPlaytimeStats( UGCQueryHandle_t handle, uint32 unDays ) = 0; + virtual bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage ) = 0; + virtual bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ) = 0; + virtual bool SetAdminQuery( UGCUpdateHandle_t handle, bool bAdminQuery ) = 0; // admin queries return hidden items + + // Options only for querying user UGC + virtual bool SetCloudFileNameFilter( UGCQueryHandle_t handle, const char *pMatchCloudFileName ) = 0; + + // Options only for querying all UGC + virtual bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag ) = 0; + virtual bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText ) = 0; + virtual bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays ) = 0; + virtual bool SetTimeCreatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; + virtual bool SetTimeUpdatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; + virtual bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue ) = 0; + + // DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead! + STEAM_CALL_RESULT( SteamUGCRequestUGCDetailsResult_t ) + virtual SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ) = 0; + + // Steam Workshop Creator API + STEAM_CALL_RESULT( CreateItemResult_t ) + virtual SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType ) = 0; // create new item for this app with no content attached yet + + virtual UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ) = 0; // start an UGC item update. Set changed properties before commiting update with CommitItemUpdate() + + virtual bool SetItemTitle( UGCUpdateHandle_t handle, const char *pchTitle ) = 0; // change the title of an UGC item + virtual bool SetItemDescription( UGCUpdateHandle_t handle, const char *pchDescription ) = 0; // change the description of an UGC item + virtual bool SetItemUpdateLanguage( UGCUpdateHandle_t handle, const char *pchLanguage ) = 0; // specify the language of the title or description that will be set + virtual bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData ) = 0; // change the metadata of an UGC item (max = k_cchDeveloperMetadataMax) + virtual bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; // change the visibility of an UGC item + virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags, bool bAllowAdminTags = false ) = 0; // change the tags of an UGC item + virtual bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder ) = 0; // update item content from this local folder + virtual bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile ) = 0; // change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size + virtual bool SetAllowLegacyUpload( UGCUpdateHandle_t handle, bool bAllowLegacyUpload ) = 0; // use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size. + virtual bool RemoveAllItemKeyValueTags( UGCUpdateHandle_t handle ) = 0; // remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function) + virtual bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey ) = 0; // remove any existing key-value tags with the specified key + virtual bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue ) = 0; // add new key-value tags for the item. Note that there can be multiple values for a tag. + virtual bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type ) = 0; // add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size + virtual bool AddItemPreviewVideo( UGCUpdateHandle_t handle, const char *pszVideoID ) = 0; // add preview video for this item + virtual bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile ) = 0; // updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size + virtual bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID ) = 0; // updates an existing preview video for this item + virtual bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index ) = 0; // remove a preview by index starting at 0 (previews are sorted) + virtual bool AddContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; + virtual bool RemoveContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; + virtual bool SetRequiredGameVersions( UGCUpdateHandle_t handle, const char *pszGameBranchMin, const char *pszGameBranchMax ) = 0; // an empty string for either parameter means that it will match any version on that end of the range. This will only be applied if the actual content has been changed. + + STEAM_CALL_RESULT( SubmitItemUpdateResult_t ) + virtual SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote ) = 0; // commit update process started with StartItemUpdate() + virtual EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64* punBytesTotal ) = 0; + + // Steam Workshop Consumer API + STEAM_CALL_RESULT( SetUserItemVoteResult_t ) + virtual SteamAPICall_t SetUserItemVote( PublishedFileId_t nPublishedFileID, bool bVoteUp ) = 0; + STEAM_CALL_RESULT( GetUserItemVoteResult_t ) + virtual SteamAPICall_t GetUserItemVote( PublishedFileId_t nPublishedFileID ) = 0; + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) + virtual SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) + virtual SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + virtual SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // subscribe to this item, will be installed ASAP + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + virtual SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // unsubscribe from this item, will be uninstalled after game quits + virtual uint32 GetNumSubscribedItems( bool bIncludeLocallyDisabled = false ) = 0; // number of subscribed items + virtual uint32 GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries, bool bIncludeLocallyDisabled = false ) = 0; // all subscribed item PublishFileIDs + + // get EItemState flags about item on this client + virtual uint32 GetItemState( PublishedFileId_t nPublishedFileID ) = 0; + + // get info about currently installed content on disc for items that have k_EItemStateInstalled set + // if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder) + virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, STEAM_OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; + + // get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once + virtual bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; + + // download new or update already installed item. If function returns true, wait for DownloadItemResult_t. If the item is already installed, + // then files on disk should not be used until callback received. If item is not subscribed to, it will be cached for some time. + // If bHighPriority is set, any other item download will be suspended and this item downloaded ASAP. + virtual bool DownloadItem( PublishedFileId_t nPublishedFileID, bool bHighPriority ) = 0; + + // game servers can set a specific workshop folder before issuing any UGC commands. + // This is helpful if you want to support multiple game servers running out of the same install folder + virtual bool BInitWorkshopForGameServer( DepotId_t unWorkshopDepotID, const char *pszFolder ) = 0; + + // SuspendDownloads( true ) will suspend all workshop downloads until SuspendDownloads( false ) is called or the game ends + virtual void SuspendDownloads( bool bSuspend ) = 0; + + // usage tracking + STEAM_CALL_RESULT( StartPlaytimeTrackingResult_t ) + virtual SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) + virtual SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) + virtual SteamAPICall_t StopPlaytimeTrackingForAllItems() = 0; + + // parent-child relationship or dependency management + STEAM_CALL_RESULT( AddUGCDependencyResult_t ) + virtual SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + STEAM_CALL_RESULT( RemoveUGCDependencyResult_t ) + virtual SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + + // add/remove app dependence/requirements (usually DLC) + STEAM_CALL_RESULT( AddAppDependencyResult_t ) + virtual SteamAPICall_t AddAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + STEAM_CALL_RESULT( RemoveAppDependencyResult_t ) + virtual SteamAPICall_t RemoveAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + // request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times + // until all app dependencies have been returned + STEAM_CALL_RESULT( GetAppDependenciesResult_t ) + virtual SteamAPICall_t GetAppDependencies( PublishedFileId_t nPublishedFileID ) = 0; + + // delete the item without prompting the user + STEAM_CALL_RESULT( DeleteItemResult_t ) + virtual SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID ) = 0; + + // Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not + virtual bool ShowWorkshopEULA() = 0; + // Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA + STEAM_CALL_RESULT( WorkshopEULAStatus_t ) + virtual SteamAPICall_t GetWorkshopEULAStatus() = 0; + + // Return the user's community content descriptor preferences + virtual uint32 GetUserContentDescriptorPreferences( EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; + + // Sets whether the item should be disabled locally or not. This means that it will not be returned in GetSubscribedItems() by default. + virtual bool SetItemsDisabledLocally( PublishedFileId_t *pvecPublishedFileIDs, uint32 unNumPublishedFileIDs, bool bDisabledLocally ) = 0; + + // Set the local load order for these items. If there are any items not in the given list, they will sort by the time subscribed. + virtual bool SetSubscriptionsLoadOrder( PublishedFileId_t *pvecPublishedFileIDs, uint32 unNumPublishedFileIDs ) = 0; +}; + +#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION021" + +// Global interface accessor +inline ISteamUGC *SteamUGC(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUGC *, SteamUGC, STEAMUGC_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUGC *SteamGameServerUGC(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamUGC *, SteamGameServerUGC, STEAMUGC_INTERFACE_VERSION ); + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamUGCQueryCompleted_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 1 }; + UGCQueryHandle_t m_handle; + EResult m_eResult; + uint32 m_unNumResultsReturned; + uint32 m_unTotalMatchingResults; + bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache + char m_rgchNextCursor[k_cchPublishedFileURLMax]; // If a paging cursor was used, then this will be the next cursor to get the next result set. +}; + + +//----------------------------------------------------------------------------- +// Purpose: Callback for requesting details on one piece of UGC +//----------------------------------------------------------------------------- +struct SteamUGCRequestUGCDetailsResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 2 }; + SteamUGCDetails_t m_details; + bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache +}; + + +//----------------------------------------------------------------------------- +// Purpose: result for ISteamUGC::CreateItem() +//----------------------------------------------------------------------------- +struct CreateItemResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 3 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID + bool m_bUserNeedsToAcceptWorkshopLegalAgreement; +}; + + +//----------------------------------------------------------------------------- +// Purpose: result for ISteamUGC::SubmitItemUpdate() +//----------------------------------------------------------------------------- +struct SubmitItemUpdateResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 4 }; + EResult m_eResult; + bool m_bUserNeedsToAcceptWorkshopLegalAgreement; + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: a Workshop item has been installed or updated +//----------------------------------------------------------------------------- +struct ItemInstalled_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 5 }; + AppId_t m_unAppID; + PublishedFileId_t m_nPublishedFileId; + UGCHandle_t m_hLegacyContent; + uint64 m_unManifestID; +}; + + +//----------------------------------------------------------------------------- +// Purpose: result of DownloadItem(), existing item files can be accessed again +//----------------------------------------------------------------------------- +struct DownloadItemResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 6 }; + AppId_t m_unAppID; + PublishedFileId_t m_nPublishedFileId; + EResult m_eResult; +}; + +//----------------------------------------------------------------------------- +// Purpose: result of AddItemToFavorites() or RemoveItemFromFavorites() +//----------------------------------------------------------------------------- +struct UserFavoriteItemsListChanged_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 7 }; + PublishedFileId_t m_nPublishedFileId; + EResult m_eResult; + bool m_bWasAddRequest; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to SetUserItemVote() +//----------------------------------------------------------------------------- +struct SetUserItemVoteResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 8 }; + PublishedFileId_t m_nPublishedFileId; + EResult m_eResult; + bool m_bVoteUp; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetUserItemVote() +//----------------------------------------------------------------------------- +struct GetUserItemVoteResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 9 }; + PublishedFileId_t m_nPublishedFileId; + EResult m_eResult; + bool m_bVotedUp; + bool m_bVotedDown; + bool m_bVoteSkipped; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to StartPlaytimeTracking() +//----------------------------------------------------------------------------- +struct StartPlaytimeTrackingResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 10 }; + EResult m_eResult; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to StopPlaytimeTracking() +//----------------------------------------------------------------------------- +struct StopPlaytimeTrackingResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 11 }; + EResult m_eResult; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddDependency +//----------------------------------------------------------------------------- +struct AddUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 12 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveDependency +//----------------------------------------------------------------------------- +struct RemoveUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 13 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddAppDependency +//----------------------------------------------------------------------------- +struct AddAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 14 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveAppDependency +//----------------------------------------------------------------------------- +struct RemoveAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 15 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetAppDependencies. Callback may be called +// multiple times until all app dependencies have been returned. +//----------------------------------------------------------------------------- +struct GetAppDependenciesResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 16 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_rgAppIDs[32]; + uint32 m_nNumAppDependencies; // number returned in this struct + uint32 m_nTotalNumAppDependencies; // total found +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to DeleteItem +//----------------------------------------------------------------------------- +struct DeleteItemResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 17 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: signal that the list of subscribed items changed +//----------------------------------------------------------------------------- +struct UserSubscribedItemsListChanged_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 18 }; + AppId_t m_nAppID; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Status of the user's acceptable/rejection of the app's specific Workshop EULA +//----------------------------------------------------------------------------- +struct WorkshopEULAStatus_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 20 }; + EResult m_eResult; + AppId_t m_nAppID; + uint32 m_unVersion; + RTime32 m_rtAction; + bool m_bAccepted; + bool m_bNeedsAction; +}; + +#pragma pack( pop ) + +#endif // ISTEAMUGC_H diff --git a/lsteamclient/steamworks_sdk_163/isteamuser.h b/lsteamclient/steamworks_sdk_163/isteamuser.h new file mode 100644 index 00000000000..182f02e7c3d --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamuser.h @@ -0,0 +1,439 @@ +//====== Copyright (c) 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to user account information in Steam +// +//============================================================================= + +#ifndef ISTEAMUSER_H +#define ISTEAMUSER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +// Purpose: Functions for accessing and manipulating a steam account +// associated with one client instance +//----------------------------------------------------------------------------- +class ISteamUser +{ +public: + // returns the HSteamUser this interface represents + // this is only used internally by the API, and by a few select interfaces that support multi-user + virtual HSteamUser GetHSteamUser() = 0; + + // returns true if the Steam client current has a live connection to the Steam servers. + // If false, it means there is no active connection due to either a networking issue on the local machine, or the Steam server is down/busy. + // The Steam client will automatically be trying to recreate the connection as often as possible. + virtual bool BLoggedOn() = 0; + + // returns the CSteamID of the account currently logged into the Steam client + // a CSteamID is a unique identifier for an account, and used to differentiate users in all parts of the Steamworks API + virtual CSteamID GetSteamID() = 0; + + // Multiplayer Authentication functions + + // InitiateGameConnection() starts the state machine for authenticating the game client with the game server + // It is the client portion of a three-way handshake between the client, the game server, and the steam servers + // + // Parameters: + // void *pAuthBlob - a pointer to empty memory that will be filled in with the authentication token. + // int cbMaxAuthBlob - the number of bytes of allocated memory in pBlob. Should be at least 2048 bytes. + // CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client + // CGameID gameID - the ID of the current game. For games without mods, this is just CGameID( ) + // uint32 unIPServer, uint16 usPortServer - the IP address of the game server + // bool bSecure - whether or not the client thinks that the game server is reporting itself as secure (i.e. VAC is running) + // + // return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed + // The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process. + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual int InitiateGameConnection_DEPRECATED( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; + + // notify of disconnect + // needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void TerminateGameConnection_DEPRECATED( uint32 unIPServer, uint16 usPortServer ) = 0; + + // Legacy functions + + // used by only a few games to track usage events + virtual void TrackAppUsageEvent( CGameID gameID, int eAppUsageEvent, const char *pchExtraInfo = "" ) = 0; + + // get the local storage folder for current Steam account to write application data, e.g. save games, configs etc. + // this will usually be something like "C:\Progam Files\Steam\userdata\\\local" + virtual bool GetUserDataFolder( char *pchBuffer, int cubBuffer ) = 0; + + // Starts voice recording. Once started, use GetVoice() to get the data + virtual void StartVoiceRecording( ) = 0; + + // Stops voice recording. Because people often release push-to-talk keys early, the system will keep recording for + // a little bit after this function is called. GetVoice() should continue to be called until it returns + // k_eVoiceResultNotRecording + virtual void StopVoiceRecording( ) = 0; + + // Determine the size of captured audio data that is available from GetVoice. + // Most applications will only use compressed data and should ignore the other + // parameters, which exist primarily for backwards compatibility. See comments + // below for further explanation of "uncompressed" data. + virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; + + // --------------------------------------------------------------------------- + // NOTE: "uncompressed" audio is a deprecated feature and should not be used + // by most applications. It is raw single-channel 16-bit PCM wave data which + // may have been run through preprocessing filters and/or had silence removed, + // so the uncompressed audio could have a shorter duration than you expect. + // There may be no data at all during long periods of silence. Also, fetching + // uncompressed audio will cause GetVoice to discard any leftover compressed + // audio, so you must fetch both types at once. Finally, GetAvailableVoice is + // not precisely accurate when the uncompressed size is requested. So if you + // really need to use uncompressed audio, you should call GetVoice frequently + // with two very large (20kb+) output buffers instead of trying to allocate + // perfectly-sized buffers. But most applications should ignore all of these + // details and simply leave the "uncompressed" parameters as NULL/zero. + // --------------------------------------------------------------------------- + + // Read captured audio data from the microphone buffer. This should be called + // at least once per frame, and preferably every few milliseconds, to keep the + // microphone input delay as low as possible. Most applications will only use + // compressed data and should pass NULL/zero for the "uncompressed" parameters. + // Compressed data can be transmitted by your application and decoded into raw + // using the DecompressVoice function below. + virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; + + // Decodes the compressed voice data returned by GetVoice. The output data is + // raw single-channel 16-bit PCM audio. The decoder supports any sample rate + // from 11025 to 48000; see GetVoiceOptimalSampleRate() below for details. + // If the output buffer is not large enough, then *nBytesWritten will be set + // to the required buffer size, and k_EVoiceResultBufferTooSmall is returned. + // It is suggested to start with a 20kb buffer and reallocate as necessary. + virtual EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate ) = 0; + + // This returns the native sample rate of the Steam voice decompressor; using + // this sample rate for DecompressVoice will perform the least CPU processing. + // However, the final audio quality will depend on how well the audio device + // (and/or your application's audio output SDK) deals with lower sample rates. + // You may find that you get the best audio output quality when you ignore + // this function and use the native sample rate of your audio output device, + // which is usually 48000 or 44100. + virtual uint32 GetVoiceOptimalSampleRate() = 0; + + // Retrieve ticket to be sent to the entity who wishes to authenticate you. + // pcbTicket retrieves the length of the actual ticket. + // SteamNetworkingIdentity is an optional input parameter to hold the public IP address or SteamID of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + // if a Steam ID is passed Steam will only allow the ticket to be used by that Steam ID + // not to be used for "ISteamUserAuth\AuthenticateUserTicket" - it will fail + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSteamNetworkingIdentity ) = 0; + + // Request a ticket which will be used for webapi "ISteamUserAuth\AuthenticateUserTicket" + // pchIdentity is an optional input parameter to identify the service the ticket will be sent to + // the ticket will be returned in callback GetTicketForWebApiResponse_t + virtual HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity ) = 0; + + // Authenticate ticket from entity steamID to be sure it is valid and isnt reused + // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) + virtual EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID ) = 0; + + // Stop tracking started by BeginAuthSession - called when no longer playing game with this entity + virtual void EndAuthSession( CSteamID steamID ) = 0; + + // Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to + virtual void CancelAuthTicket( HAuthTicket hAuthTicket ) = 0; + + // After receiving a user's authentication data, and passing it to BeginAuthSession, use this function + // to determine if the user owns downloadable content specified by the provided AppID. + virtual EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID ) = 0; + + // returns true if this users looks like they are behind a NAT device. Only valid once the user has connected to steam + // (i.e a SteamServersConnected_t has been issued) and may not catch all forms of NAT. + virtual bool BIsBehindNAT() = 0; + + // set data to be replicated to friends so that they can join your game + // CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client + // uint32 unIPServer, uint16 usPortServer - the IP address of the game server + virtual void AdvertiseGame( CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer ) = 0; + + // Requests a ticket encrypted with an app specific shared key + // pDataToInclude, cbDataToInclude will be encrypted into the ticket + // ( This is asynchronous, you must wait for the ticket to be completed by the server ) + STEAM_CALL_RESULT( EncryptedAppTicketResponse_t ) + virtual SteamAPICall_t RequestEncryptedAppTicket( void *pDataToInclude, int cbDataToInclude ) = 0; + + // Retrieves a finished ticket. + // If no ticket is available, or your buffer is too small, returns false. + // Upon exit, *pcbTicket will be either the size of the ticket copied into your buffer + // (if true was returned), or the size needed (if false was returned). To determine the + // proper size of the ticket, you can pass pTicket=NULL and cbMaxTicket=0; if a ticket + // is available, *pcbTicket will contain the size needed, otherwise it will be zero. + virtual bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + + // Trading Card badges data access + // if you only have one set of cards, the series will be 1 + // the user has can have two different badges for a series; the regular (max level 5) and the foil (max level 1) + virtual int GetGameBadgeLevel( int nSeries, bool bFoil ) = 0; + + // gets the Steam Level of the user, as shown on their profile + virtual int GetPlayerSteamLevel() = 0; + + // Requests a URL which authenticates an in-game browser for store check-out, + // and then redirects to the specified URL. As long as the in-game browser + // accepts and handles session cookies, Steam microtransaction checkout pages + // will automatically recognize the user instead of presenting a login page. + // The result of this API call will be a StoreAuthURLResponse_t callback. + // NOTE: The URL has a very short lifetime to prevent history-snooping attacks, + // so you should only call this API when you are about to launch the browser, + // or else immediately navigate to the result URL using a hidden browser window. + // NOTE 2: The resulting authorization cookie has an expiration time of one day, + // so it would be a good idea to request and visit a new auth URL every 12 hours. + STEAM_CALL_RESULT( StoreAuthURLResponse_t ) + virtual SteamAPICall_t RequestStoreAuthURL( const char *pchRedirectURL ) = 0; + + // gets whether the users phone number is verified + virtual bool BIsPhoneVerified() = 0; + + // gets whether the user has two factor enabled on their account + virtual bool BIsTwoFactorEnabled() = 0; + + // gets whether the users phone number is identifying + virtual bool BIsPhoneIdentifying() = 0; + + // gets whether the users phone number is awaiting (re)verification + virtual bool BIsPhoneRequiringVerification() = 0; + + STEAM_CALL_RESULT( MarketEligibilityResponse_t ) + virtual SteamAPICall_t GetMarketEligibility() = 0; + + // Retrieves anti indulgence / duration control for current user + STEAM_CALL_RESULT( DurationControl_t ) + virtual SteamAPICall_t GetDurationControl() = 0; + + // Advise steam china duration control system about the online state of the game. + // This will prevent offline gameplay time from counting against a user's + // playtime limits. + virtual bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState ) = 0; + +}; + +#define STEAMUSER_INTERFACE_VERSION "SteamUser023" + +// Global interface accessor +inline ISteamUser *SteamUser(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUser *, SteamUser, STEAMUSER_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +//----------------------------------------------------------------------------- +// Purpose: Called when an authenticated connection to the Steam back-end has been established. +// This means the Steam client now has a working connection to the Steam servers. +// Usually this will have occurred before the game has launched, and should +// only be seen if the user has dropped connection due to a networking issue +// or a Steam server update. +//----------------------------------------------------------------------------- +struct SteamServersConnected_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 1 }; +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a connection attempt has failed +// this will occur periodically if the Steam client is not connected, +// and has failed in it's retry to establish a connection +//----------------------------------------------------------------------------- +struct SteamServerConnectFailure_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 2 }; + EResult m_eResult; + bool m_bStillRetrying; +}; + + +//----------------------------------------------------------------------------- +// Purpose: called if the client has lost connection to the Steam servers +// real-time services will be disabled until a matching SteamServersConnected_t has been posted +//----------------------------------------------------------------------------- +struct SteamServersDisconnected_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 3 }; + EResult m_eResult; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Sent by the Steam server to the client telling it to disconnect from the specified game server, +// which it may be in the process of or already connected to. +// The game client should immediately disconnect upon receiving this message. +// This can usually occur if the user doesn't have rights to play on the game server. +//----------------------------------------------------------------------------- +struct ClientGameServerDeny_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 13 }; + + uint32 m_uAppID; + uint32 m_unGameServerIP; + uint16 m_usGameServerPort; + uint16 m_bSecure; + uint32 m_uReason; +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when the callback system for this client is in an error state (and has flushed pending callbacks) +// When getting this message the client should disconnect from Steam, reset any stored Steam state and reconnect. +// This usually occurs in the rare event the Steam client has some kind of fatal error. +//----------------------------------------------------------------------------- +struct IPCFailure_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 17 }; + enum EFailureType + { + k_EFailureFlushedCallbackQueue, + k_EFailurePipeFail, + }; + uint8 m_eFailureType; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Signaled whenever licenses change +//----------------------------------------------------------------------------- +struct LicensesUpdated_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 25 }; +}; + + +//----------------------------------------------------------------------------- +// callback for BeginAuthSession +//----------------------------------------------------------------------------- +struct ValidateAuthTicketResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 43 }; + CSteamID m_SteamID; + EAuthSessionResponse m_eAuthSessionResponse; + CSteamID m_OwnerSteamID; // different from m_SteamID if borrowed +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when a user has responded to a microtransaction authorization request +//----------------------------------------------------------------------------- +struct MicroTxnAuthorizationResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 52 }; + + uint32 m_unAppID; // AppID for this microtransaction + uint64 m_ulOrderID; // OrderID provided for the microtransaction + uint8 m_bAuthorized; // if user authorized transaction +}; + + +//----------------------------------------------------------------------------- +// Purpose: Result from RequestEncryptedAppTicket +//----------------------------------------------------------------------------- +struct EncryptedAppTicketResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 54 }; + + EResult m_eResult; +}; + +//----------------------------------------------------------------------------- +// callback for GetAuthSessionTicket +//----------------------------------------------------------------------------- +struct GetAuthSessionTicketResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 63 }; + HAuthTicket m_hAuthTicket; + EResult m_eResult; +}; + +//----------------------------------------------------------------------------- +// Purpose: sent to your game in response to a steam://gamewebcallback/ command +//----------------------------------------------------------------------------- +struct GameWebCallback_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 64 }; + char m_szURL[256]; +}; + +//----------------------------------------------------------------------------- +// Purpose: sent to your game in response to ISteamUser::RequestStoreAuthURL +//----------------------------------------------------------------------------- +struct StoreAuthURLResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 65 }; + char m_szURL[512]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: sent in response to ISteamUser::GetMarketEligibility +//----------------------------------------------------------------------------- +struct MarketEligibilityResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 66 }; + bool m_bAllowed; + EMarketNotAllowedReasonFlags m_eNotAllowedReason; + RTime32 m_rtAllowedAtTime; + + int m_cdaySteamGuardRequiredDays; // The number of days any user is required to have had Steam Guard before they can use the market + int m_cdayNewDeviceCooldown; // The number of days after initial device authorization a user must wait before using the market on that device +}; + + +//----------------------------------------------------------------------------- +// Purpose: sent for games with enabled anti indulgence / duration control, for +// enabled users. Lets the game know whether the user can keep playing or +// whether the game should exit, and returns info about remaining gameplay time. +// +// This callback is fired asynchronously in response to timers triggering. +// It is also fired in response to calls to GetDurationControl(). +//----------------------------------------------------------------------------- +struct DurationControl_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 67 }; + + EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications) + AppId_t m_appid; // appid generating playtime + + bool m_bApplicable; // is duration control applicable to user + game combination + int32 m_csecsLast5h; // playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + + EDurationControlProgress m_progress; // recommended progress (either everything is fine, or please exit game) + EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls) + + int32 m_csecsToday; // playtime on current calendar day + int32 m_csecsRemaining; // playtime remaining until the user hits a regulatory limit +}; + + +//----------------------------------------------------------------------------- +// callback for GetTicketForWebApi +//----------------------------------------------------------------------------- +struct GetTicketForWebApiResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 68 }; + HAuthTicket m_hAuthTicket; + EResult m_eResult; + int m_cubTicket; + static const int k_nCubTicketMaxLength = 2560; + uint8 m_rgubTicket[k_nCubTicketMaxLength]; +}; + + +#pragma pack( pop ) + +#endif // ISTEAMUSER_H diff --git a/lsteamclient/steamworks_sdk_163/isteamuserstats.h b/lsteamclient/steamworks_sdk_163/isteamuserstats.h new file mode 100644 index 00000000000..a7fc7fe4855 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamuserstats.h @@ -0,0 +1,476 @@ +//====== Copyright � 1996-2009, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to stats, achievements, and leaderboards +// +//============================================================================= + +#ifndef ISTEAMUSERSTATS_H +#define ISTEAMUSERSTATS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" +#include "isteamremotestorage.h" + +// size limit on stat or achievement name (UTF-8 encoded) +enum { k_cchStatNameMax = 128 }; + +// maximum number of bytes for a leaderboard name (UTF-8 encoded) +enum { k_cchLeaderboardNameMax = 128 }; + +// maximum number of details int32's storable for a single leaderboard entry +enum { k_cLeaderboardDetailsMax = 64 }; + +// handle to a single leaderboard +typedef uint64 SteamLeaderboard_t; + +// handle to a set of downloaded entries in a leaderboard +typedef uint64 SteamLeaderboardEntries_t; + +// type of data request, when downloading leaderboard entries +enum ELeaderboardDataRequest +{ + k_ELeaderboardDataRequestGlobal = 0, + k_ELeaderboardDataRequestGlobalAroundUser = 1, + k_ELeaderboardDataRequestFriends = 2, + k_ELeaderboardDataRequestUsers = 3 +}; + +// the sort order of a leaderboard +enum ELeaderboardSortMethod +{ + k_ELeaderboardSortMethodNone = 0, + k_ELeaderboardSortMethodAscending = 1, // top-score is lowest number + k_ELeaderboardSortMethodDescending = 2, // top-score is highest number +}; + +// the display type (used by the Steam Community web site) for a leaderboard +enum ELeaderboardDisplayType +{ + k_ELeaderboardDisplayTypeNone = 0, + k_ELeaderboardDisplayTypeNumeric = 1, // simple numerical score + k_ELeaderboardDisplayTypeTimeSeconds = 2, // the score represents a time, in seconds + k_ELeaderboardDisplayTypeTimeMilliSeconds = 3, // the score represents a time, in milliseconds +}; + +enum ELeaderboardUploadScoreMethod +{ + k_ELeaderboardUploadScoreMethodNone = 0, + k_ELeaderboardUploadScoreMethodKeepBest = 1, // Leaderboard will keep user's best score + k_ELeaderboardUploadScoreMethodForceUpdate = 2, // Leaderboard will always replace score with specified +}; + +// a single entry in a leaderboard, as returned by GetDownloadedLeaderboardEntry() +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +struct LeaderboardEntry_t +{ + CSteamID m_steamIDUser; // user with the entry - use SteamFriends()->GetFriendPersonaName() & SteamFriends()->GetFriendAvatar() to get more info + int32 m_nGlobalRank; // [1..N], where N is the number of users with an entry in the leaderboard + int32 m_nScore; // score as set in the leaderboard + int32 m_cDetails; // number of int32 details available for this entry + UGCHandle_t m_hUGC; // handle for UGC attached to the entry +}; + +#pragma pack( pop ) + + +//----------------------------------------------------------------------------- +// Purpose: Functions for accessing stats, achievements, and leaderboard information +//----------------------------------------------------------------------------- +class ISteamUserStats +{ +public: + + // Note: this call is no longer required as it is managed by the Steam client + // The game stats and achievements will be synchronized with Steam before + // the game process begins. + // virtual bool RequestCurrentStats() = 0; + + // Data accessors + STEAM_FLAT_NAME( GetStatInt32 ) + virtual bool GetStat( const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetStatFloat ) + virtual bool GetStat( const char *pchName, float *pData ) = 0; + + // Set / update data + STEAM_FLAT_NAME( SetStatInt32 ) + virtual bool SetStat( const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetStatFloat ) + virtual bool SetStat( const char *pchName, float fData ) = 0; + + virtual bool UpdateAvgRateStat( const char *pchName, float flCountThisSession, double dSessionLength ) = 0; + + // Achievement flag accessors + virtual bool GetAchievement( const char *pchName, bool *pbAchieved ) = 0; + virtual bool SetAchievement( const char *pchName ) = 0; + virtual bool ClearAchievement( const char *pchName ) = 0; + + // Get the achievement status, and the time it was unlocked if unlocked. + // If the return value is true, but the unlock time is zero, that means it was unlocked before Steam + // began tracking achievement unlock times (December 2009). Time is seconds since January 1, 1970. + virtual bool GetAchievementAndUnlockTime( const char *pchName, bool *pbAchieved, uint32 *punUnlockTime ) = 0; + + // Store the current data on the server, will get a callback when set + // And one callback for every new achievement + // + // If the callback has a result of k_EResultInvalidParam, one or more stats + // uploaded has been rejected, either because they broke constraints + // or were out of date. In this case the server sends back updated values. + // The stats should be re-iterated to keep in sync. + virtual bool StoreStats() = 0; + + // Achievement / GroupAchievement metadata + + // Gets the icon of the achievement, which is a handle to be used in ISteamUtils::GetImageRGBA(), or 0 if none set. + // A return value of 0 may indicate we are still fetching data, and you can wait for the UserAchievementIconFetched_t callback + // which will notify you when the bits are ready. If the callback still returns zero, then there is no image set for the + // specified achievement. + virtual int GetAchievementIcon( const char *pchName ) = 0; + + // Get general attributes for an achievement. Accepts the following keys: + // - "name" and "desc" for retrieving the localized achievement name and description (returned in UTF8) + // - "hidden" for retrieving if an achievement is hidden (returns "0" when not hidden, "1" when hidden) + virtual const char *GetAchievementDisplayAttribute( const char *pchName, const char *pchKey ) = 0; + + // Achievement progress - triggers an AchievementProgress callback, that is all. + // Calling this w/ N out of N progress will NOT set the achievement, the game must still do that. + virtual bool IndicateAchievementProgress( const char *pchName, uint32 nCurProgress, uint32 nMaxProgress ) = 0; + + // Used for iterating achievements. In general games should not need these functions because they should have a + // list of existing achievements compiled into them + virtual uint32 GetNumAchievements() = 0; + // Get achievement name iAchievement in [0,GetNumAchievements) + virtual const char *GetAchievementName( uint32 iAchievement ) = 0; + + // Friends stats & achievements + + // downloads stats for the user + // returns a UserStatsReceived_t received when completed + // if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail + // these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data + STEAM_CALL_RESULT( UserStatsReceived_t ) + virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; + + // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) + virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) + virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; + // See notes for GetAchievementAndUnlockTime above + virtual bool GetUserAchievementAndUnlockTime( CSteamID steamIDUser, const char *pchName, bool *pbAchieved, uint32 *punUnlockTime ) = 0; + + // Reset stats + virtual bool ResetAllStats( bool bAchievementsToo ) = 0; + + // Leaderboard functions + + // asks the Steam back-end for a leaderboard by name, and will create it if it's not yet + // This call is asynchronous, with the result returned in LeaderboardFindResult_t + STEAM_CALL_RESULT(LeaderboardFindResult_t) + virtual SteamAPICall_t FindOrCreateLeaderboard( const char *pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ) = 0; + + // as above, but won't create the leaderboard if it's not found + // This call is asynchronous, with the result returned in LeaderboardFindResult_t + STEAM_CALL_RESULT( LeaderboardFindResult_t ) + virtual SteamAPICall_t FindLeaderboard( const char *pchLeaderboardName ) = 0; + + // returns the name of a leaderboard + virtual const char *GetLeaderboardName( SteamLeaderboard_t hSteamLeaderboard ) = 0; + + // returns the total number of entries in a leaderboard, as of the last request + virtual int GetLeaderboardEntryCount( SteamLeaderboard_t hSteamLeaderboard ) = 0; + + // returns the sort method of the leaderboard + virtual ELeaderboardSortMethod GetLeaderboardSortMethod( SteamLeaderboard_t hSteamLeaderboard ) = 0; + + // returns the display type of the leaderboard + virtual ELeaderboardDisplayType GetLeaderboardDisplayType( SteamLeaderboard_t hSteamLeaderboard ) = 0; + + // Asks the Steam back-end for a set of rows in the leaderboard. + // This call is asynchronous, with the result returned in LeaderboardScoresDownloaded_t + // LeaderboardScoresDownloaded_t will contain a handle to pull the results from GetDownloadedLeaderboardEntries() (below) + // You can ask for more entries than exist, and it will return as many as do exist. + // k_ELeaderboardDataRequestGlobal requests rows in the leaderboard from the full table, with nRangeStart & nRangeEnd in the range [1, TotalEntries] + // k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate + // e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after + // k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) + virtual SteamAPICall_t DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) = 0; + // as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + // if a user doesn't have a leaderboard entry, they won't be included in the result + // a max of 100 users can be downloaded at a time, with only one outstanding call at a time + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) + virtual SteamAPICall_t DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard, + STEAM_ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; + + // Returns data about a single leaderboard entry + // use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries + // e.g. + // void OnLeaderboardScoresDownloaded( LeaderboardScoresDownloaded_t *pLeaderboardScoresDownloaded ) + // { + // for ( int index = 0; index < pLeaderboardScoresDownloaded->m_cEntryCount; index++ ) + // { + // LeaderboardEntry_t leaderboardEntry; + // int32 details[3]; // we know this is how many we've stored previously + // GetDownloadedLeaderboardEntry( pLeaderboardScoresDownloaded->m_hSteamLeaderboardEntries, index, &leaderboardEntry, details, 3 ); + // assert( leaderboardEntry.m_cDetails == 3 ); + // ... + // } + // once you've accessed all the entries, the data will be free'd, and the SteamLeaderboardEntries_t handle will become invalid + virtual bool GetDownloadedLeaderboardEntry( SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, LeaderboardEntry_t *pLeaderboardEntry, int32 *pDetails, int cDetailsMax ) = 0; + + // Uploads a user score to the Steam back-end. + // This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t + // Details are extra game-defined information regarding how the user got that score + // pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list + STEAM_CALL_RESULT( LeaderboardScoreUploaded_t ) + virtual SteamAPICall_t UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 *pScoreDetails, int cScoreDetailsCount ) = 0; + + // Attaches a piece of user generated content the user's entry on a leaderboard. + // hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare(). + // This call is asynchronous, with the result returned in LeaderboardUGCSet_t. + STEAM_CALL_RESULT( LeaderboardUGCSet_t ) + virtual SteamAPICall_t AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ) = 0; + + // Retrieves the number of players currently playing your game (online + offline) + // This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t + STEAM_CALL_RESULT( NumberOfCurrentPlayers_t ) + virtual SteamAPICall_t GetNumberOfCurrentPlayers() = 0; + + // Requests that Steam fetch data on the percentage of players who have received each achievement + // for the game globally. + // This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t. + STEAM_CALL_RESULT( GlobalAchievementPercentagesReady_t ) + virtual SteamAPICall_t RequestGlobalAchievementPercentages() = 0; + + // Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch + // the next most achieved afterwards. Will return -1 if there is no data on achievement + // percentages (ie, you haven't called RequestGlobalAchievementPercentages and waited on the callback). + virtual int GetMostAchievedAchievementInfo( char *pchName, uint32 unNameBufLen, float *pflPercent, bool *pbAchieved ) = 0; + + // Get the info on the next most achieved achievement for the game. Call this after GetMostAchievedAchievementInfo or another + // GetNextMostAchievedAchievementInfo call passing the iterator from the previous call. Returns -1 after the last + // achievement has been iterated. + virtual int GetNextMostAchievedAchievementInfo( int iIteratorPrevious, char *pchName, uint32 unNameBufLen, float *pflPercent, bool *pbAchieved ) = 0; + + // Returns the percentage of users who have achieved the specified achievement. + virtual bool GetAchievementAchievedPercent( const char *pchName, float *pflPercent ) = 0; + + // Requests global stats data, which is available for stats marked as "aggregated". + // This call is asynchronous, with the results returned in GlobalStatsReceived_t. + // nHistoryDays specifies how many days of day-by-day history to retrieve in addition + // to the overall totals. The limit is 60. + STEAM_CALL_RESULT( GlobalStatsReceived_t ) + virtual SteamAPICall_t RequestGlobalStats( int nHistoryDays ) = 0; + + // Gets the lifetime totals for an aggregated stat + STEAM_FLAT_NAME( GetGlobalStatInt64 ) + virtual bool GetGlobalStat( const char *pchStatName, int64 *pData ) = 0; + + STEAM_FLAT_NAME( GetGlobalStatDouble ) + virtual bool GetGlobalStat( const char *pchStatName, double *pData ) = 0; + + // Gets history for an aggregated stat. pData will be filled with daily values, starting with today. + // So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago, + // etc. cubData is the size in bytes of the pubData buffer. Returns the number of + // elements actually set. + + STEAM_FLAT_NAME( GetGlobalStatHistoryInt64 ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; + + STEAM_FLAT_NAME( GetGlobalStatHistoryDouble ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; + + // For achievements that have related Progress stats, use this to query what the bounds of that progress are. + // You may want this info to selectively call IndicateAchievementProgress when appropriate milestones of progress + // have been made, to show a progress notification to the user. + STEAM_FLAT_NAME( GetAchievementProgressLimitsInt32 ) + virtual bool GetAchievementProgressLimits( const char *pchName, int32 *pnMinProgress, int32 *pnMaxProgress ) = 0; + + STEAM_FLAT_NAME( GetAchievementProgressLimitsFloat ) + virtual bool GetAchievementProgressLimits( const char *pchName, float *pfMinProgress, float *pfMaxProgress ) = 0; + +}; + +#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION013" + +// Global interface accessor +inline ISteamUserStats *SteamUserStats(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUserStats *, SteamUserStats, STEAMUSERSTATS_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when the latests stats and achievements have been received +// from the server +//----------------------------------------------------------------------------- +struct UserStatsReceived_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 1 }; + uint64 m_nGameID; // Game these stats are for + EResult m_eResult; // Success / error fetching the stats + CSteamID m_steamIDUser; // The user for whom the stats are retrieved for +}; + + +//----------------------------------------------------------------------------- +// Purpose: result of a request to store the user stats for a game +//----------------------------------------------------------------------------- +struct UserStatsStored_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 2 }; + uint64 m_nGameID; // Game these stats are for + EResult m_eResult; // success / error +}; + + +//----------------------------------------------------------------------------- +// Purpose: result of a request to store the achievements for a game, or an +// "indicate progress" call. If both m_nCurProgress and m_nMaxProgress +// are zero, that means the achievement has been fully unlocked. +//----------------------------------------------------------------------------- +struct UserAchievementStored_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 3 }; + + uint64 m_nGameID; // Game this is for + bool m_bGroupAchievement; // if this is a "group" achievement + char m_rgchAchievementName[k_cchStatNameMax]; // name of the achievement + uint32 m_nCurProgress; // current progress towards the achievement + uint32 m_nMaxProgress; // "out of" this many +}; + + +//----------------------------------------------------------------------------- +// Purpose: call result for finding a leaderboard, returned as a result of FindOrCreateLeaderboard() or FindLeaderboard() +// use CCallResult<> to map this async result to a member function +//----------------------------------------------------------------------------- +struct LeaderboardFindResult_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 4 }; + SteamLeaderboard_t m_hSteamLeaderboard; // handle to the leaderboard serarched for, 0 if no leaderboard found + uint8 m_bLeaderboardFound; // 0 if no leaderboard found +}; + + +//----------------------------------------------------------------------------- +// Purpose: call result indicating scores for a leaderboard have been downloaded and are ready to be retrieved, returned as a result of DownloadLeaderboardEntries() +// use CCallResult<> to map this async result to a member function +//----------------------------------------------------------------------------- +struct LeaderboardScoresDownloaded_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 5 }; + SteamLeaderboard_t m_hSteamLeaderboard; + SteamLeaderboardEntries_t m_hSteamLeaderboardEntries; // the handle to pass into GetDownloadedLeaderboardEntries() + int m_cEntryCount; // the number of entries downloaded +}; + + +//----------------------------------------------------------------------------- +// Purpose: call result indicating scores has been uploaded, returned as a result of UploadLeaderboardScore() +// use CCallResult<> to map this async result to a member function +//----------------------------------------------------------------------------- +struct LeaderboardScoreUploaded_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 6 }; + uint8 m_bSuccess; // 1 if the call was successful + SteamLeaderboard_t m_hSteamLeaderboard; // the leaderboard handle that was + int32 m_nScore; // the score that was attempted to set + uint8 m_bScoreChanged; // true if the score in the leaderboard change, false if the existing score was better + int m_nGlobalRankNew; // the new global rank of the user in this leaderboard + int m_nGlobalRankPrevious; // the previous global rank of the user in this leaderboard; 0 if the user had no existing entry in the leaderboard +}; + +struct NumberOfCurrentPlayers_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 7 }; + uint8 m_bSuccess; // 1 if the call was successful + int32 m_cPlayers; // Number of players currently playing +}; + + + +//----------------------------------------------------------------------------- +// Purpose: Callback indicating that a user's stats have been unloaded. +// Call RequestUserStats again to access stats for this user +//----------------------------------------------------------------------------- +struct UserStatsUnloaded_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 8 }; + CSteamID m_steamIDUser; // User whose stats have been unloaded +}; + + + +//----------------------------------------------------------------------------- +// Purpose: Callback indicating that an achievement icon has been fetched +//----------------------------------------------------------------------------- +struct UserAchievementIconFetched_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 9 }; + + CGameID m_nGameID; // Game this is for + char m_rgchAchievementName[k_cchStatNameMax]; // name of the achievement + bool m_bAchieved; // Is the icon for the achieved or not achieved version? + int m_nIconHandle; // Handle to the image, which can be used in SteamUtils()->GetImageRGBA(), 0 means no image is set for the achievement +}; + + +//----------------------------------------------------------------------------- +// Purpose: Callback indicating that global achievement percentages are fetched +//----------------------------------------------------------------------------- +struct GlobalAchievementPercentagesReady_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 10 }; + + uint64 m_nGameID; // Game this is for + EResult m_eResult; // Result of the operation +}; + + +//----------------------------------------------------------------------------- +// Purpose: call result indicating UGC has been uploaded, returned as a result of SetLeaderboardUGC() +//----------------------------------------------------------------------------- +struct LeaderboardUGCSet_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 11 }; + EResult m_eResult; // The result of the operation + SteamLeaderboard_t m_hSteamLeaderboard; // the leaderboard handle that was +}; + + +//----------------------------------------------------------------------------- +// Purpose: callback indicating global stats have been received. +// Returned as a result of RequestGlobalStats() +//----------------------------------------------------------------------------- +struct GlobalStatsReceived_t +{ + enum { k_iCallback = k_iSteamUserStatsCallbacks + 12 }; + uint64 m_nGameID; // Game global stats were requested for + EResult m_eResult; // The result of the request +}; + +#pragma pack( pop ) + + +#endif // ISTEAMUSER_H diff --git a/lsteamclient/steamworks_sdk_163/isteamutils.h b/lsteamclient/steamworks_sdk_163/isteamutils.h new file mode 100644 index 00000000000..be5acb282da --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamutils.h @@ -0,0 +1,343 @@ +//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to utility functions in Steam +// +//============================================================================= + +#ifndef ISTEAMUTILS_H +#define ISTEAMUTILS_H + +#include "steam_api_common.h" + + +// Steam API call failure results +enum ESteamAPICallFailure +{ + k_ESteamAPICallFailureNone = -1, // no failure + k_ESteamAPICallFailureSteamGone = 0, // the local Steam process has gone away + k_ESteamAPICallFailureNetworkFailure = 1, // the network connection to Steam has been broken, or was already broken + // SteamServersDisconnected_t callback will be sent around the same time + // SteamServersConnected_t will be sent when the client is able to talk to the Steam servers again + k_ESteamAPICallFailureInvalidHandle = 2, // the SteamAPICall_t handle passed in no longer exists + k_ESteamAPICallFailureMismatchedCallback = 3,// GetAPICallResult() was called with the wrong callback type for this API call +}; + + +// Input modes for the Big Picture gamepad text entry +enum EGamepadTextInputMode +{ + k_EGamepadTextInputModeNormal = 0, + k_EGamepadTextInputModePassword = 1 +}; + + +// Controls number of allowed lines for the Big Picture gamepad text entry +enum EGamepadTextInputLineMode +{ + k_EGamepadTextInputLineModeSingleLine = 0, + k_EGamepadTextInputLineModeMultipleLines = 1 +}; + +enum EFloatingGamepadTextInputMode +{ + k_EFloatingGamepadTextInputModeModeSingleLine = 0, // Enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeMultipleLines = 1, // User needs to explictly close the keyboard + k_EFloatingGamepadTextInputModeModeEmail = 2, // Keyboard layout is email, enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeNumeric = 3, // Keyboard layout is numeric, enter dismisses the keyboard + +}; + +// The context where text filtering is being done +enum ETextFilteringContext +{ + k_ETextFilteringContextUnknown = 0, // Unknown context + k_ETextFilteringContextGameContent = 1, // Game content, only legally required filtering is performed + k_ETextFilteringContextChat = 2, // Chat from another player + k_ETextFilteringContextName = 3, // Character or item name +}; + + +//----------------------------------------------------------------------------- +// Purpose: interface to user independent utility functions +//----------------------------------------------------------------------------- +class ISteamUtils +{ +public: + // return the number of seconds since the user + virtual uint32 GetSecondsSinceAppActive() = 0; + virtual uint32 GetSecondsSinceComputerActive() = 0; + + // the universe this client is connecting to + virtual EUniverse GetConnectedUniverse() = 0; + + // Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + virtual uint32 GetServerRealTime() = 0; + + // returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + // e.g "US" or "UK". + virtual const char *GetIPCountry() = 0; + + // returns true if the image exists, and valid sizes were filled out + virtual bool GetImageSize( int iImage, uint32 *pnWidth, uint32 *pnHeight ) = 0; + + // returns true if the image exists, and the buffer was successfully filled out + // results are returned in RGBA format + // the destination buffer size should be 4 * height * width * sizeof(char) + virtual bool GetImageRGBA( int iImage, uint8 *pubDest, int nDestBufferSize ) = 0; + + // Deprecated. Do not call this. + STEAM_PRIVATE_API( virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; ) + + // return the amount of battery power left in the current system in % [0..100], 255 for being on AC power + virtual uint8 GetCurrentBatteryPower() = 0; + + // returns the appID of the current process + virtual uint32 GetAppID() = 0; + + // Sets the position where the overlay instance for the currently calling game should show notifications. + // This position is per-game and if this function is called from outside of a game context it will do nothing. + virtual void SetOverlayNotificationPosition( ENotificationPosition eNotificationPosition ) = 0; + + // API asynchronous call results + // can be used directly, but more commonly used via the callback dispatch API (see steam_api.h) + virtual bool IsAPICallCompleted( SteamAPICall_t hSteamAPICall, bool *pbFailed ) = 0; + virtual ESteamAPICallFailure GetAPICallFailureReason( SteamAPICall_t hSteamAPICall ) = 0; + virtual bool GetAPICallResult( SteamAPICall_t hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed ) = 0; + + // Deprecated. Applications should use SteamAPI_RunCallbacks() instead. Game servers do not need to call this function. + STEAM_PRIVATE_API( virtual void RunFrame() = 0; ) + + // returns the number of IPC calls made since the last time this function was called + // Used for perf debugging so you can understand how many IPC calls your game makes per frame + // Every IPC call is at minimum a thread context switch if not a process one so you want to rate + // control how often you do them. + virtual uint32 GetIPCCallCount() = 0; + + // API warning handling + // 'int' is the severity; 0 for msg, 1 for warning + // 'const char *' is the text of the message + // callbacks will occur directly after the API function is called that generated the warning or message + virtual void SetWarningMessageHook( SteamAPIWarningMessageHook_t pFunction ) = 0; + + // Returns true if the overlay is running & the user can access it. The overlay process could take a few seconds to + // start & hook the game process, so this function will initially return false while the overlay is loading. + virtual bool IsOverlayEnabled() = 0; + + // Normally this call is unneeded if your game has a constantly running frame loop that calls the + // D3D Present API, or OGL SwapBuffers API every frame. + // + // However, if you have a game that only refreshes the screen on an event driven basis then that can break + // the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + // need to Present() to the screen any time an even needing a notification happens or when the overlay is + // brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + // in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + // refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + virtual bool BOverlayNeedsPresent() = 0; + + // Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + // of the partner site, for example to refuse to load modified executable files. + // The result is returned in CheckFileSignature_t. + // k_ECheckFileSignatureNoSignaturesFoundForThisApp - This app has not been configured on the signing tab of the partner site to enable this function. + // k_ECheckFileSignatureNoSignaturesFoundForThisFile - This file is not listed on the signing tab for the partner site. + // k_ECheckFileSignatureFileNotFound - The file does not exist on disk. + // k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match. + // k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid. + STEAM_CALL_RESULT( CheckFileSignature_t ) + virtual SteamAPICall_t CheckFileSignature( const char *szFileName ) = 0; + + // Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed + virtual bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char *pchDescription, uint32 unCharMax, const char *pchExistingText ) = 0; + + // Returns previously entered text & length + virtual uint32 GetEnteredGamepadTextLength() = 0; + virtual bool GetEnteredGamepadTextInput( char *pchText, uint32 cchText ) = 0; + + // returns the language the steam client is running in, you probably want ISteamApps::GetCurrentGameLanguage instead, this is for very special usage cases + virtual const char *GetSteamUILanguage() = 0; + + // returns true if Steam itself is running in VR mode + virtual bool IsSteamRunningInVR() = 0; + + // Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition. + virtual void SetOverlayNotificationInset( int nHorizontalInset, int nVerticalInset ) = 0; + + // returns true if Steam & the Steam Overlay are running in Big Picture mode + // Games much be launched through the Steam client to enable the Big Picture overlay. During development, + // a game can be added as a non-steam game to the developers library to test this feature + virtual bool IsSteamInBigPictureMode() = 0; + + // ask SteamUI to create and render its OpenVR dashboard + virtual void StartVRDashboard() = 0; + + // Returns true if the HMD content will be streamed via Steam Remote Play + virtual bool IsVRHeadsetStreamingEnabled() = 0; + + // Set whether the HMD content will be streamed via Steam Remote Play + // If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + // If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + // The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + // (this is useful for games that have asymmetric multiplayer gameplay) + virtual void SetVRHeadsetStreamingEnabled( bool bEnabled ) = 0; + + // Returns whether this steam client is a Steam China specific client, vs the global client. + virtual bool IsSteamChinaLauncher() = 0; + + // Initializes text filtering, loading dictionaries for the language the game is running in. + // unFilterOptions are reserved for future use and should be set to 0 + // Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough. + // + // Users can customize the text filter behavior in their Steam Account preferences: + // https://store.steampowered.com/account/preferences#CommunityContentPreferences + virtual bool InitFilterText( uint32 unFilterOptions = 0 ) = 0; + + // Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings + // eContext is the type of content in the input string + // sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text) + // pchInputText is the input string that should be filtered, which can be ASCII or UTF-8 + // pchOutFilteredText is where the output will be placed, even if no filtering is performed + // nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1 + // Returns the number of characters (not bytes) filtered + virtual int FilterText( ETextFilteringContext eContext, CSteamID sourceSteamID, const char *pchInputMessage, char *pchOutFilteredText, uint32 nByteSizeOutFilteredText ) = 0; + + // Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol. + // This does NOT tell you if the Steam client is currently connected to Steam via ipv6. + virtual ESteamIPv6ConnectivityState GetIPv6ConnectivityState( ESteamIPv6ConnectivityProtocol eProtocol ) = 0; + + // returns true if currently running on the Steam Deck device + virtual bool IsSteamRunningOnSteamDeck() = 0; + + // Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game. + // The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field + virtual bool ShowFloatingGamepadTextInput( EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ) = 0; + + // In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher + virtual void SetGameLauncherMode( bool bLauncherMode ) = 0; + + // Dismisses the floating keyboard. + virtual bool DismissFloatingGamepadTextInput() = 0; + + // Dismisses the full-screen text input dialog. + virtual bool DismissGamepadTextInput() = 0; +}; + +#define STEAMUTILS_INTERFACE_VERSION "SteamUtils010" + +// Global interface accessor +inline ISteamUtils *SteamUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamUtils, SteamInternal_FindOrCreateUserInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "user", STEAMUTILS_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUtils *SteamGameServerUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamGameServerUtils, SteamInternal_FindOrCreateGameServerInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "gameserver", STEAMUTILS_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: The country of the user changed +//----------------------------------------------------------------------------- +struct IPCountry_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 1 }; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Fired when running on a handheld PC or laptop with less than 10 minutes of battery is left, fires then every minute +//----------------------------------------------------------------------------- +struct LowBatteryPower_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 2 }; + uint8 m_nMinutesBatteryLeft; +}; + + +//----------------------------------------------------------------------------- +// Purpose: called when a SteamAsyncCall_t has completed (or failed) +//----------------------------------------------------------------------------- +struct SteamAPICallCompleted_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 3 }; + SteamAPICall_t m_hAsyncCall; + int m_iCallback; + uint32 m_cubParam; +}; + + +//----------------------------------------------------------------------------- +// called when Steam wants to shutdown +//----------------------------------------------------------------------------- +struct SteamShutdown_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 4 }; +}; + +//----------------------------------------------------------------------------- +// results for CheckFileSignature +//----------------------------------------------------------------------------- +enum ECheckFileSignature +{ + k_ECheckFileSignatureInvalidSignature = 0, + k_ECheckFileSignatureValidSignature = 1, + k_ECheckFileSignatureFileNotFound = 2, + k_ECheckFileSignatureNoSignaturesFoundForThisApp = 3, + k_ECheckFileSignatureNoSignaturesFoundForThisFile = 4, +}; + +//----------------------------------------------------------------------------- +// callback for CheckFileSignature +//----------------------------------------------------------------------------- +struct CheckFileSignature_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 5 }; + ECheckFileSignature m_eCheckFileSignature; +}; + + +// k_iSteamUtilsCallbacks + 13 is taken + + +//----------------------------------------------------------------------------- +// Full Screen gamepad text input has been closed +//----------------------------------------------------------------------------- +struct GamepadTextInputDismissed_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 14 }; + bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input + uint32 m_unSubmittedText; + AppId_t m_unAppID; +}; + +// k_iSteamUtilsCallbacks + 15 through 35 are taken + +STEAM_CALLBACK_BEGIN( AppResumingFromSuspend_t, k_iSteamUtilsCallbacks + 36 ) +STEAM_CALLBACK_END(0) + +// k_iSteamUtilsCallbacks + 37 is taken + +//----------------------------------------------------------------------------- +// The floating on-screen keyboard has been closed +//----------------------------------------------------------------------------- +struct FloatingGamepadTextInputDismissed_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 38 }; +}; + +//----------------------------------------------------------------------------- +// The text filtering dictionary has changed +//----------------------------------------------------------------------------- +struct FilterTextDictionaryChanged_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 39 }; + int m_eLanguage; // One of ELanguage, or k_LegallyRequiredFiltering +}; + +#pragma pack( pop ) + +#endif // ISTEAMUTILS_H diff --git a/lsteamclient/steamworks_sdk_163/isteamvideo.h b/lsteamclient/steamworks_sdk_163/isteamvideo.h new file mode 100644 index 00000000000..6cda0c584ac --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/isteamvideo.h @@ -0,0 +1,74 @@ +//====== Copyright © 1996-2014 Valve Corporation, All rights reserved. ======= +// +// Purpose: interface to Steam Video +// +//============================================================================= + +#ifndef ISTEAMVIDEO_H +#define ISTEAMVIDEO_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: Steam Video API +//----------------------------------------------------------------------------- +class ISteamVideo +{ +public: + + // Get a URL suitable for streaming the given Video app ID's video + virtual void GetVideoURL( AppId_t unVideoAppID ) = 0; + + // returns true if user is uploading a live broadcast + virtual bool IsBroadcasting( int *pnNumViewers ) = 0; + + // Get the OPF Details for 360 Video Playback + STEAM_CALL_BACK( GetOPFSettingsResult_t ) + virtual void GetOPFSettings( AppId_t unVideoAppID ) = 0; + virtual bool GetOPFStringForApp( AppId_t unVideoAppID, char *pchBuffer, int32 *pnBufferSize ) = 0; + + +}; + +#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V007" + +// Global interface accessor +inline ISteamVideo *SteamVideo(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamVideo *, SteamVideo, STEAMVIDEO_INTERFACE_VERSION ); + +STEAM_CALLBACK_BEGIN( GetVideoURLResult_t, k_iSteamVideoCallbacks + 11 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) + STEAM_CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) +STEAM_CALLBACK_END(3) + + +STEAM_CALLBACK_BEGIN( GetOPFSettingsResult_t, k_iSteamVideoCallbacks + 24 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) +STEAM_CALLBACK_END(2) + +STEAM_CALLBACK_BEGIN( BroadcastUploadStart_t, k_iSteamVideoCallbacks + 4 ) + STEAM_CALLBACK_MEMBER( 0, bool, m_bIsRTMP ) +STEAM_CALLBACK_END( 1 ) + +STEAM_CALLBACK_BEGIN( BroadcastUploadStop_t, k_iSteamVideoCallbacks + 5 ) + STEAM_CALLBACK_MEMBER( 0, EBroadcastUploadResult, m_eResult ) +STEAM_CALLBACK_END( 1 ) + +#pragma pack( pop ) + + +#endif // ISTEAMVIDEO_H diff --git a/lsteamclient/steamworks_sdk_163/matchmakingtypes.h b/lsteamclient/steamworks_sdk_163/matchmakingtypes.h new file mode 100644 index 00000000000..791802a063c --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/matchmakingtypes.h @@ -0,0 +1,231 @@ +//========= Copyright � 1996-2008, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef MATCHMAKINGTYPES_H +#define MATCHMAKINGTYPES_H + +#include +#include + +// +// Max size (in bytes of UTF-8 data, not in characters) of server fields, including null terminator. +// WARNING: These cannot be changed easily, without breaking clients using old interfaces. +// +const int k_cbMaxGameServerGameDir = 32; +const int k_cbMaxGameServerMapName = 32; +const int k_cbMaxGameServerGameDescription = 64; +const int k_cbMaxGameServerName = 64; +const int k_cbMaxGameServerTags = 128; +const int k_cbMaxGameServerGameData = 2048; + +/// Store key/value pair used in matchmaking queries. +/// +/// Actually, the name Key/Value is a bit misleading. The "key" is better +/// understood as "filter operation code" and the "value" is the operand to this +/// filter operation. The meaning of the operand depends upon the filter. +struct MatchMakingKeyValuePair_t +{ + MatchMakingKeyValuePair_t() { m_szKey[0] = m_szValue[0] = 0; } + MatchMakingKeyValuePair_t( const char *pchKey, const char *pchValue ) + { + strncpy( m_szKey, pchKey, sizeof(m_szKey) ); // this is a public header, use basic c library string funcs only! + m_szKey[ sizeof( m_szKey ) - 1 ] = '\0'; + strncpy( m_szValue, pchValue, sizeof(m_szValue) ); + m_szValue[ sizeof( m_szValue ) - 1 ] = '\0'; + } + char m_szKey[ 256 ]; + char m_szValue[ 256 ]; +}; + + +enum EMatchMakingServerResponse +{ + eServerResponded = 0, + eServerFailedToRespond, + eNoServersListedOnMasterServer // for the Internet query type, returned in response callback if no servers of this type match +}; + +// servernetadr_t is all the addressing info the serverbrowser needs to know about a game server, +// namely: its IP, its connection port, and its query port. +class servernetadr_t +{ +public: + + servernetadr_t() : m_usConnectionPort( 0 ), m_usQueryPort( 0 ), m_unIP( 0 ) {} + + void Init( unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); + + // Access the query port. + uint16 GetQueryPort() const; + void SetQueryPort( uint16 usPort ); + + // Access the connection port. + uint16 GetConnectionPort() const; + void SetConnectionPort( uint16 usPort ); + + // Access the IP + uint32 GetIP() const; + void SetIP( uint32 unIP ); + + // This gets the 'a.b.c.d:port' string with the connection port (instead of the query port). + const char *GetConnectionAddressString() const; + const char *GetQueryAddressString() const; + + // Comparison operators and functions. + bool operator<(const servernetadr_t &netadr) const; + void operator=( const servernetadr_t &that ) + { + m_usConnectionPort = that.m_usConnectionPort; + m_usQueryPort = that.m_usQueryPort; + m_unIP = that.m_unIP; + } + + +private: + const char *ToString( uint32 unIP, uint16 usPort ) const; + uint16 m_usConnectionPort; // (in HOST byte order) + uint16 m_usQueryPort; + uint32 m_unIP; +}; + + +inline void servernetadr_t::Init( unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ) +{ + m_unIP = ip; + m_usQueryPort = usQueryPort; + m_usConnectionPort = usConnectionPort; +} + +inline uint16 servernetadr_t::GetQueryPort() const +{ + return m_usQueryPort; +} + +inline void servernetadr_t::SetQueryPort( uint16 usPort ) +{ + m_usQueryPort = usPort; +} + +inline uint16 servernetadr_t::GetConnectionPort() const +{ + return m_usConnectionPort; +} + +inline void servernetadr_t::SetConnectionPort( uint16 usPort ) +{ + m_usConnectionPort = usPort; +} + +inline uint32 servernetadr_t::GetIP() const +{ + return m_unIP; +} + +inline void servernetadr_t::SetIP( uint32 unIP ) +{ + m_unIP = unIP; +} + +inline const char *servernetadr_t::ToString( uint32 unIP, uint16 usPort ) const +{ + static char s[4][64]; + static int nBuf = 0; + unsigned char *ipByte = (unsigned char *)&unIP; +#ifdef VALVE_BIG_ENDIAN + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); +#else + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); +#endif + const char *pchRet = s[nBuf]; + ++nBuf; + nBuf %= ( (sizeof(s)/sizeof(s[0])) ); + return pchRet; +} + +inline const char* servernetadr_t::GetConnectionAddressString() const +{ + return ToString( m_unIP, m_usConnectionPort ); +} + +inline const char* servernetadr_t::GetQueryAddressString() const +{ + return ToString( m_unIP, m_usQueryPort ); +} + +inline bool servernetadr_t::operator<(const servernetadr_t &netadr) const +{ + return ( m_unIP < netadr.m_unIP ) || ( m_unIP == netadr.m_unIP && m_usQueryPort < netadr.m_usQueryPort ); +} + +//----------------------------------------------------------------------------- +// Purpose: Data describing a single server +//----------------------------------------------------------------------------- +class gameserveritem_t +{ +public: + gameserveritem_t(); + + const char* GetName() const; + void SetName( const char *pName ); + +public: + servernetadr_t m_NetAdr; ///< IP/Query Port/Connection Port for this server + int m_nPing; ///< current ping time in milliseconds + bool m_bHadSuccessfulResponse; ///< server has responded successfully in the past + bool m_bDoNotRefresh; ///< server is marked as not responding and should no longer be refreshed + char m_szGameDir[k_cbMaxGameServerGameDir]; ///< current game directory + char m_szMap[k_cbMaxGameServerMapName]; ///< current map + char m_szGameDescription[k_cbMaxGameServerGameDescription]; ///< game description + uint32 m_nAppID; ///< Steam App ID of this server + int m_nPlayers; ///< total number of players currently on the server. INCLUDES BOTS!! + int m_nMaxPlayers; ///< Maximum players that can join this server + int m_nBotPlayers; ///< Number of bots (i.e simulated players) on this server + bool m_bPassword; ///< true if this server needs a password to join + bool m_bSecure; ///< Is this server protected by VAC + uint32 m_ulTimeLastPlayed; ///< time (in unix time) when this server was last played on (for favorite/history servers) + int m_nServerVersion; ///< server version as reported to Steam + +private: + + /// Game server name + char m_szServerName[k_cbMaxGameServerName]; + + // For data added after SteamMatchMaking001 add it here +public: + /// the tags this server exposes + char m_szGameTags[k_cbMaxGameServerTags]; + + /// steamID of the game server - invalid if it's doesn't have one (old server, or not connected to Steam) + CSteamID m_steamID; +}; + + +inline gameserveritem_t::gameserveritem_t() +{ + m_szGameDir[0] = m_szMap[0] = m_szGameDescription[0] = m_szServerName[0] = 0; + m_bHadSuccessfulResponse = m_bDoNotRefresh = m_bPassword = m_bSecure = false; + m_nPing = m_nAppID = m_nPlayers = m_nMaxPlayers = m_nBotPlayers = m_ulTimeLastPlayed = m_nServerVersion = 0; + m_szGameTags[0] = 0; +} + +inline const char* gameserveritem_t::GetName() const +{ + // Use the IP address as the name if nothing is set yet. + if ( m_szServerName[0] == 0 ) + return m_NetAdr.GetConnectionAddressString(); + else + return m_szServerName; +} + +inline void gameserveritem_t::SetName( const char *pName ) +{ + strncpy( m_szServerName, pName, sizeof( m_szServerName ) ); + m_szServerName[ sizeof( m_szServerName ) - 1 ] = '\0'; +} + + +#endif // MATCHMAKINGTYPES_H diff --git a/lsteamclient/steamworks_sdk_163/steam_api.h b/lsteamclient/steamworks_sdk_163/steam_api.h new file mode 100644 index 00000000000..c5b0ab7ca63 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steam_api.h @@ -0,0 +1,263 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// This header includes *all* of the interfaces and callback structures +// in the Steamworks SDK, and some high level functions to control the SDK +// (init, shutdown, etc) that you probably only need in one or two files. +// +// To save your compile times, we recommend that you not include this file +// in header files. Instead, include the specific headers for the interfaces +// and callback structures you need. The one file you might consider including +// in your precompiled header (e.g. stdafx.h) is steam_api_common.h +// +//============================================================================= + +#ifndef STEAM_API_H +#define STEAM_API_H +#ifdef _WIN32 +#pragma once +#endif + +// Basic stuff +#include "steam_api_common.h" + +// All of the interfaces +#include "isteamclient.h" +#include "isteamuser.h" +#include "isteamfriends.h" +#include "isteamutils.h" +#include "isteammatchmaking.h" +#include "isteamuserstats.h" +#include "isteamapps.h" +#include "isteamnetworking.h" +#include "isteamremotestorage.h" +#include "isteamscreenshots.h" +#include "isteammusic.h" +#include "isteamhttp.h" +#include "isteamcontroller.h" +#include "isteamugc.h" +#include "isteamhtmlsurface.h" +#include "isteaminventory.h" +#include "isteamtimeline.h" +#include "isteamvideo.h" +#include "isteamparentalsettings.h" +#include "isteaminput.h" +#include "isteamremoteplay.h" +#include "isteamnetworkingmessages.h" +#include "isteamnetworkingsockets.h" +#include "isteamnetworkingutils.h" + + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// Steam API setup & shutdown +// +// These functions manage loading, initializing and shutdown of the steamclient.dll +// +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +enum ESteamAPIInitResult +{ + k_ESteamAPIInitResult_OK = 0, + k_ESteamAPIInitResult_FailedGeneric = 1, // Some other failure + k_ESteamAPIInitResult_NoSteamClient = 2, // We cannot connect to Steam, steam probably isn't running + k_ESteamAPIInitResult_VersionMismatch = 3, // Steam client appears to be out of date +}; + +// Initializing the Steamworks SDK +// ----------------------------- +// +// There are three different methods you can use to initialize the Steamworks SDK, depending on +// your project's environment. You should only use one method in your project. +// +// If you are able to include this C++ header in your project, we recommend using the following +// initialization methods. They will ensure that all ISteam* interfaces defined in other +// C++ header files have versions that are supported by the user's Steam Client: +// - SteamAPI_InitEx() for new projects so you can show a detailed error message to the user +// - SteamAPI_Init() for existing projects that only display a generic error message +// +// If you are unable to include this C++ header in your project and are dynamically loading +// Steamworks SDK methods from dll/so, you can use the following method: +// - SteamAPI_InitFlat() + + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, returns a value that can be used +// to create a localized error message for the user. If pOutErrMsg is non-NULL, +// it will receive an example error message, in English, that explains the reason for the failure. +// +// Example usage: +// +// SteamErrMsg errMsg; +// if ( SteamAPI_Init(&errMsg) != k_ESteamAPIInitResult_OK ) +// FatalError( "Failed to init Steam. %s", errMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ); + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Returns true on success +inline bool SteamAPI_Init() +{ + return SteamAPI_InitEx( NULL ) == k_ESteamAPIInitResult_OK; +} + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Same usage as SteamAPI_InitEx(), however does not verify ISteam* interfaces are +// supported by the user's client and is exported from the dll +S_API ESteamAPIInitResult S_CALLTYPE SteamAPI_InitFlat( SteamErrMsg *pOutErrMsg ); + +// SteamAPI_Shutdown should be called during process shutdown if possible. +S_API void S_CALLTYPE SteamAPI_Shutdown(); + +// SteamAPI_RestartAppIfNecessary ensures that your executable was launched through Steam. +// +// Returns true if the current process should terminate. Steam is now re-launching your application. +// +// Returns false if no action needs to be taken. This means that your executable was started through +// the Steam client, or a steam_appid.txt file is present in your game's directory (for development). +// Your current process should continue if false is returned. +// +// NOTE: If you use the Steam DRM wrapper on your primary executable file, this check is unnecessary +// since the DRM wrapper will ensure that your application was launched properly through Steam. +S_API bool S_CALLTYPE SteamAPI_RestartAppIfNecessary( uint32 unOwnAppID ); + +// Many Steam API functions allocate a small amount of thread-local memory for parameter storage. +// SteamAPI_ReleaseCurrentThreadMemory() will free API memory associated with the calling thread. +// This function is also called automatically by SteamAPI_RunCallbacks(), so a single-threaded +// program never needs to explicitly call this function. +S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory(); + + +// crash dump recording functions +S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID ); +S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg ); + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// steamclient.dll private wrapper functions +// +// The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +// SteamAPI_IsSteamRunning() returns true if Steam is currently running +S_API bool S_CALLTYPE SteamAPI_IsSteamRunning(); + +// returns the filename path of the current running Steam process, used if you need to load an explicit steam dll by name. +// DEPRECATED - implementation is Windows only, and the path returned is a UTF-8 string which must be converted to UTF-16 for use with Win32 APIs +S_API const char *SteamAPI_GetSteamInstallPath(); + +// sets whether or not Steam_RunCallbacks() should do a try {} catch (...) {} around calls to issuing callbacks +// This is ignored if you are using the manual callback dispatch method +S_API void SteamAPI_SetTryCatchCallbacks( bool bTryCatchCallbacks ); + +#if defined( VERSION_SAFE_STEAM_API_INTERFACES ) +// exists only for backwards compat with code written against older SDKs +S_API bool S_CALLTYPE SteamAPI_InitSafe(); +#endif + +#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) +// this should be called before the game initialized the steam APIs +// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) +// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) +// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder +// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback +// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. +S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); +S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// Manual callback loop +// +// An alternative method for dispatching callbacks. Similar to a windows message loop. +// +// If you use the manual callback dispatch, you must NOT use: +// +// - SteamAPI_RunCallbacks or SteamGameServer_RunCallbacks +// - STEAM_CALLBACK, CCallResult, CCallback, or CCallbackManual +// +// Here is the basic template for replacing SteamAPI_RunCallbacks() with manual dispatch +/* + + HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); // See also SteamGameServer_GetHSteamPipe() + SteamAPI_ManualDispatch_RunFrame( hSteamPipe ) + CallbackMsg_t callback; + while ( SteamAPI_ManualDispatch_GetNextCallback( hSteamPipe, &callback ) ) + { + // Check for dispatching API call results + if ( callback.m_iCallback == SteamAPICallCompleted_t::k_iCallback ) + { + SteamAPICallCompleted_t *pCallCompleted = (SteamAPICallCompleted_t *)callback. + void *pTmpCallResult = malloc( pCallback->m_cubParam ); + bool bFailed; + if ( SteamAPI_ManualDispatch_GetAPICallResult( hSteamPipe, pCallCompleted->m_hAsyncCall, pTmpCallResult, pCallback->m_cubParam, pCallback->m_iCallback, &bFailed ) ) + { + // Dispatch the call result to the registered handler(s) for the + // call identified by pCallCompleted->m_hAsyncCall + } + free( pTmpCallResult ); + } + else + { + // Look at callback.m_iCallback to see what kind of callback it is, + // and dispatch to appropriate handler(s) + } + SteamAPI_ManualDispatch_FreeLastCallback( hSteamPipe ); + } + +*/ +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +/// Inform the API that you wish to use manual event dispatch. This must be called after SteamAPI_Init, but before +/// you use any of the other manual dispatch functions below. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_Init(); + +/// Perform certain periodic actions that need to be performed. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_RunFrame( HSteamPipe hSteamPipe ); + +/// Fetch the next pending callback on the given pipe, if any. If a callback is available, true is returned +/// and the structure is populated. In this case, you MUST call SteamAPI_ManualDispatch_FreeLastCallback +/// (after dispatching the callback) before calling SteamAPI_ManualDispatch_GetNextCallback again. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetNextCallback( HSteamPipe hSteamPipe, CallbackMsg_t *pCallbackMsg ); + +/// You must call this after dispatching the callback, if SteamAPI_ManualDispatch_GetNextCallback returns true. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_FreeLastCallback( HSteamPipe hSteamPipe ); + +/// Return the call result for the specified call on the specified pipe. You really should +/// only call this in a handler for SteamAPICallCompleted_t callback. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetAPICallResult( HSteamPipe hSteamPipe, SteamAPICall_t hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed ); + +// Internal implementation of SteamAPI_InitEx. This is done in a way that checks +// all of the versions of interfaces from headers being compiled into this code. +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_SteamAPI_Init( const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ) +{ + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" + STEAMAPPS_INTERFACE_VERSION "\0" + STEAMCONTROLLER_INTERFACE_VERSION "\0" + STEAMFRIENDS_INTERFACE_VERSION "\0" + STEAMHTMLSURFACE_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINPUT_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "\0" + STEAMMATCHMAKING_INTERFACE_VERSION "\0" + STEAMMUSIC_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMPARENTALSETTINGS_INTERFACE_VERSION "\0" + STEAMPARTIES_INTERFACE_VERSION "\0" + STEAMREMOTEPLAY_INTERFACE_VERSION "\0" + STEAMREMOTESTORAGE_INTERFACE_VERSION "\0" + STEAMSCREENSHOTS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + STEAMUSERSTATS_INTERFACE_VERSION "\0" + STEAMUSER_INTERFACE_VERSION "\0" + STEAMVIDEO_INTERFACE_VERSION "\0" + + "\0"; + + return SteamInternal_SteamAPI_Init( pszInternalCheckInterfaceVersions, pOutErrMsg ); +} + +#endif // STEAM_API_H diff --git a/lsteamclient/steamworks_sdk_163/steam_api_common.h b/lsteamclient/steamworks_sdk_163/steam_api_common.h new file mode 100644 index 00000000000..cb8e6b7797c --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steam_api_common.h @@ -0,0 +1,249 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Steamworks SDK minimal include +// +// Defines the minimal set of things we need to use any single interface +// or register for any callback. +// +//============================================================================= + +#ifndef STEAM_API_COMMON_H +#define STEAM_API_COMMON_H + +#include "steamtypes.h" +#include "steamclientpublic.h" + +// S_API defines the linkage and calling conventions for steam_api.dll exports +#if defined( _WIN32 ) && !defined( _X360 ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __declspec( dllexport ) + #elif defined( STEAM_API_NODLL ) + #define S_API extern "C" + #else + #define S_API extern "C" __declspec( dllimport ) + #endif // STEAM_API_EXPORTS +#elif defined( __GNUC__ ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __attribute__ ((visibility("default"))) + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#else // !WIN32 + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#endif + +#if defined( __cplusplus ) && ( __cplusplus >= 201103L ) + #define S_OVERRIDE override +#else + #define S_OVERRIDE +#endif + +#if ( defined(STEAM_API_EXPORTS) || defined(STEAM_API_NODLL) ) && !defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ +#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) +#else +#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: +#endif + +// handle to a communication pipe to the Steam client +typedef int32 HSteamPipe; +// handle to single instance of a steam user +typedef int32 HSteamUser; + +// A fixed size buffer to receive an error message that is returned by some API +// calls. +const int k_cchMaxSteamErrMsg = 1024; +typedef char SteamErrMsg[ k_cchMaxSteamErrMsg ]; + +// #define away __cdecl on posix. +// This is really, really bad. We're sorry. But it's been this way for +// a long time now and it's scary to change it, as there may be others that +// depend on it. +#ifndef _WIN32 + #define __cdecl +#endif + +// function prototype +extern "C" typedef void ( S_CALLTYPE *SteamAPIWarningMessageHook_t )( int, const char * ); +extern "C" typedef uint32 ( S_CALLTYPE *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); +#if defined( __SNC__ ) + #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// steam callback and call-result helpers +// +// The following macros and classes are used to register your application for +// callbacks and call-results, which are delivered in a predictable manner. +// +// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. +// They map a Steam notification callback directly to a class member function +// which is automatically prototyped as "void func( callback_type *pParam )". +// +// CCallResult is used with specific Steam APIs that return "result handles". +// The handle can be passed to a CCallResult object's Set function, along with +// an object pointer and member-function pointer. The member function will +// be executed once the results of the Steam API call are available. +// +// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK +// macros if you require finer control over registration and unregistration. +// +// Callbacks and call-results are queued automatically and are only +// delivered/executed when your application calls SteamAPI_RunCallbacks(). +// +// Note that there is an alternative, lower level callback dispatch mechanism. +// See SteamAPI_ManualDispatch_Init +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +// Dispatch all queued Steamworks callbacks. +// +// This is safe to call from multiple threads simultaneously, +// but if you choose to do this, callback code could be executed on any thread. +// One alternative is to call SteamAPI_RunCallbacks from the main thread only, +// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. +S_API void S_CALLTYPE SteamAPI_RunCallbacks(); + +// Declares a callback member function plus a helper member variable which +// registers the callback on object creation and unregisters on destruction. +// The optional fourth 'var' param exists only for backwards-compatibility +// and can be ignored. +#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) + +// Declares a callback function and a named CCallbackManual variable which +// has Register and Unregister functions instead of automatic registration. +#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) + +// Dispatch callbacks relevant to the gameserver client and interfaces. +// To register for these, you need to use STEAM_GAMESERVER_CALLBACK. +// (Or call SetGameserverFlag on your CCallbackBase object.) +S_API void S_CALLTYPE SteamGameServer_RunCallbacks(); + +// Same as STEAM_CALLBACK, but for callbacks on the gameserver interface. +// These will be dispatched during SteamGameServer_RunCallbacks +#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) +#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) + +//----------------------------------------------------------------------------- +// Purpose: base for callbacks and call results - internal implementation detail +//----------------------------------------------------------------------------- +class CCallbackBase +{ +public: + CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } + // don't add a virtual destructor because we export this binary interface across dll's + virtual void Run( void *pvParam ) = 0; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; + int GetICallback() { return m_iCallback; } + virtual int GetCallbackSizeBytes() = 0; + +protected: + enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; + uint8 m_nCallbackFlags; + int m_iCallback; + friend class CCallbackMgr; + +private: + CCallbackBase( const CCallbackBase& ); + CCallbackBase& operator=( const CCallbackBase& ); +}; + +//----------------------------------------------------------------------------- +// Purpose: templated base for callbacks - internal implementation detail +//----------------------------------------------------------------------------- +template< int sizeof_P > +class CCallbackImpl : protected CCallbackBase +{ +public: + virtual ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } + +protected: + friend class CCallbackMgr; + virtual void Run( void *pvParam ) S_OVERRIDE = 0; + virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) S_OVERRIDE { Run( pvParam ); } + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof_P; } +}; + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam async call result to a class member function +// template params: T = local class, P = parameter struct +//----------------------------------------------------------------------------- +template< class T, class P > +class CCallResult : private CCallbackBase +{ +public: + typedef void (T::*func_t)( P*, bool ); + + CCallResult(); + ~CCallResult(); + + void Set( SteamAPICall_t hAPICall, T *p, func_t func ); + bool IsActive() const; + void Cancel(); + + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } +private: + virtual void Run( void *pvParam ) S_OVERRIDE; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) S_OVERRIDE; + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof( P ); } + + SteamAPICall_t m_hAPICall; + T *m_pObj; + func_t m_Func; +}; + + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam callback to a class member function +// template params: T = local class, P = parameter struct, +// bGameserver = listen for gameserver callbacks instead of client callbacks +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameserver = false > +class CCallback : public CCallbackImpl< sizeof( P ) > +{ +public: + typedef void (T::*func_t)(P*); + + // NOTE: If you can't provide the correct parameters at construction time, you should + // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. + CCallback( T *pObj, func_t func ); + + void Register( T *pObj, func_t func ); + void Unregister(); + +protected: + virtual void Run( void *pvParam ) S_OVERRIDE; + + T *m_pObj; + func_t m_Func; +}; + + +//----------------------------------------------------------------------------- +// Purpose: subclass of CCallback which allows default-construction in +// an unregistered state; you must call Register manually +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameServer = false > +class CCallbackManual : public CCallback< T, P, bGameServer > +{ +public: + CCallbackManual() : CCallback< T, P, bGameServer >( nullptr, nullptr ) {} + + // Inherits public Register and Unregister functions from base class +}; + +// Internal implementation details for all of the above +#include "steam_api_internal.h" + +#endif // STEAM_API_COMMON_H diff --git a/lsteamclient/steamworks_sdk_163/steam_api_flat.h b/lsteamclient/steamworks_sdk_163/steam_api_flat.h new file mode 100644 index 00000000000..4f3f1aab106 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steam_api_flat.h @@ -0,0 +1,1242 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: Header for "flat" SteamAPI. Use this for binding to other languages. +// This file is auto-generated, do not edit it. +// +//============================================================================= + +#ifndef STEAMAPIFLAT_H +#define STEAMAPIFLAT_H + +#include "steam/steam_api.h" +#include "steam/isteamgameserver.h" +#include "steam/isteamgameserverstats.h" + +typedef uint64 uint64_steamid; // Used when passing or returning CSteamID +typedef uint64 uint64_gameid; // Used when passing or return CGameID + + + +// ISteamClient +S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe( ISteamClient* self ); +S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser( ISteamClient* self, HSteamPipe * phSteamPipe, EAccountType eAccountType ); +S_API void SteamAPI_ISteamClient_ReleaseUser( ISteamClient* self, HSteamPipe hSteamPipe, HSteamUser hUser ); +S_API ISteamUser * SteamAPI_ISteamClient_GetISteamUser( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void SteamAPI_ISteamClient_SetLocalIPBinding( ISteamClient* self, const SteamIPAddress_t & unIP, uint16 usPort ); +S_API ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils( ISteamClient* self, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamApps * SteamAPI_ISteamClient_GetISteamApps( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount( ISteamClient* self ); +S_API void SteamAPI_ISteamClient_SetWarningMessageHook( ISteamClient* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed( ISteamClient* self ); +S_API ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamController * SteamAPI_ISteamClient_GetISteamController( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParentalSettings * SteamAPI_ISteamClient_GetISteamParentalSettings( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInput * SteamAPI_ISteamClient_GetISteamInput( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParties * SteamAPI_ISteamClient_GetISteamParties( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemotePlay * SteamAPI_ISteamClient_GetISteamRemotePlay( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); + +// ISteamUser + +// A versioned accessor is exported by the library +S_API ISteamUser *SteamAPI_SteamUser_v023(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUser(), but using this ensures that you are using a matching library. +inline ISteamUser *SteamAPI_SteamUser() { return SteamAPI_SteamUser_v023(); } +S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BLoggedOn( ISteamUser* self ); +S_API uint64_steamid SteamAPI_ISteamUser_GetSteamID( ISteamUser* self ); +S_API int SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED( ISteamUser* self, void * pAuthBlob, int cbMaxAuthBlob, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ); +S_API void SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED( ISteamUser* self, uint32 unIPServer, uint16 usPortServer ); +S_API void SteamAPI_ISteamUser_TrackAppUsageEvent( ISteamUser* self, uint64_gameid gameID, int eAppUsageEvent, const char * pchExtraInfo ); +S_API bool SteamAPI_ISteamUser_GetUserDataFolder( ISteamUser* self, char * pchBuffer, int cubBuffer ); +S_API void SteamAPI_ISteamUser_StartVoiceRecording( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_StopVoiceRecording( ISteamUser* self ); +S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice( ISteamUser* self, uint32 * pcbCompressed, uint32 * pcbUncompressed_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_GetVoice( ISteamUser* self, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed_Deprecated, void * pUncompressedDestBuffer_Deprecated, uint32 cbUncompressedDestBufferSize_Deprecated, uint32 * nUncompressBytesWritten_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice( ISteamUser* self, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate ); +S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate( ISteamUser* self ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSteamNetworkingIdentity ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthTicketForWebApi( ISteamUser* self, const char * pchIdentity ); +S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession( ISteamUser* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_EndAuthSession( ISteamUser* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_CancelAuthTicket( ISteamUser* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp( ISteamUser* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamUser_BIsBehindNAT( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_AdvertiseGame( ISteamUser* self, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket( ISteamUser* self, void * pDataToInclude, int cbDataToInclude ); +S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket ); +S_API int SteamAPI_ISteamUser_GetGameBadgeLevel( ISteamUser* self, int nSeries, bool bFoil ); +S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL( ISteamUser* self, const char * pchRedirectURL ); +S_API bool SteamAPI_ISteamUser_BIsPhoneVerified( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetMarketEligibility( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetDurationControl( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BSetDurationControlOnlineState( ISteamUser* self, EDurationControlOnlineState eNewState ); + +// ISteamFriends + +// A versioned accessor is exported by the library +S_API ISteamFriends *SteamAPI_SteamFriends_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamFriends(), but using this ensures that you are using a matching library. +inline ISteamFriends *SteamAPI_SteamFriends() { return SteamAPI_SteamFriends_v018(); } +S_API const char * SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self ); +S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState( ISteamFriends* self ); +S_API int SteamAPI_ISteamFriends_GetFriendCount( ISteamFriends* self, int iFriendFlags ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendByIndex( ISteamFriends* self, int iFriend, int iFriendFlags ); +S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed( ISteamFriends* self, uint64_steamid steamIDFriend, FriendGameInfo_t * pFriendGameInfo ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory( ISteamFriends* self, uint64_steamid steamIDFriend, int iPersonaName ); +S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname( ISteamFriends* self, uint64_steamid steamIDPlayer ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount( ISteamFriends* self ); +S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex( ISteamFriends* self, int iFG ); +S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList( ISteamFriends* self, FriendsGroupID_t friendsGroupID, CSteamID * pOutSteamIDMembers, int nMembersCount ); +S_API bool SteamAPI_ISteamFriends_HasFriend( ISteamFriends* self, uint64_steamid steamIDFriend, int iFriendFlags ); +S_API int SteamAPI_ISteamFriends_GetClanCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanByIndex( ISteamFriends* self, int iClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanName( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanTag( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts( ISteamFriends* self, uint64_steamid steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts( ISteamFriends* self, CSteamID * psteamIDClans, int cClansToRequest ); +S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource( ISteamFriends* self, uint64_steamid steamIDSource ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendFromSourceByIndex( ISteamFriends* self, uint64_steamid steamIDSource, int iFriend ); +S_API bool SteamAPI_ISteamFriends_IsUserInSource( ISteamFriends* self, uint64_steamid steamIDUser, uint64_steamid steamIDSource ); +S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking( ISteamFriends* self, uint64_steamid steamIDUser, bool bSpeaking ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends* self, const char * pchDialog ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends* self, const char * pchDialog, uint64_steamid steamID ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends* self, const char * pchURL, EActivateGameOverlayToWebPageMode eMode ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends* self, AppId_t nAppID, EOverlayToStoreFlag eFlag ); +S_API void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends* self, uint64_steamid steamIDUserPlayedWith ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_RequestUserInformation( ISteamFriends* self, uint64_steamid steamIDUser, bool bRequireNameOnly ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOwner( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanOfficerCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOfficerByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iOfficer ); +S_API bool SteamAPI_ISteamFriends_SetRichPresence( ISteamFriends* self, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamFriends_ClearRichPresence( ISteamFriends* self ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchKey ); +S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex( ISteamFriends* self, uint64_steamid steamIDFriend, int iKey ); +S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_InviteUserToGame( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchConnectString ); +S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetCoplayFriend( ISteamFriends* self, int iCoplayFriend ); +S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetChatMemberByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iUser ); +S_API bool SteamAPI_ISteamFriends_SendClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, const char * pchText ); +S_API int SteamAPI_ISteamFriends_GetClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, CSteamID * psteamidChatter ); +S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin( ISteamFriends* self, uint64_steamid steamIDClanChat, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages( ISteamFriends* self, bool bInterceptEnabled ); +S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchMsgToSend ); +S_API int SteamAPI_ISteamFriends_GetFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList( ISteamFriends* self, uint32 unStartIndex ); +S_API bool SteamAPI_ISteamFriends_IsClanPublic( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_IsClanOfficialGameGroup( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages( ISteamFriends* self ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser( ISteamFriends* self, const char * pchProtocol ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString( ISteamFriends* self, const char * pchConnectString ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestEquippedProfileItems( ISteamFriends* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamFriends_BHasEquippedProfileItem( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType ); +S_API const char * SteamAPI_ISteamFriends_GetProfileItemPropertyString( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); +S_API uint32 SteamAPI_ISteamFriends_GetProfileItemPropertyUint( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); + +// ISteamUtils + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamUtils() { return SteamAPI_SteamUtils_v010(); } + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamGameServerUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamGameServerUtils() { return SteamAPI_SteamGameServerUtils_v010(); } +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive( ISteamUtils* self ); +S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime( ISteamUtils* self ); +S_API const char * SteamAPI_ISteamUtils_GetIPCountry( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetImageSize( ISteamUtils* self, int iImage, uint32 * pnWidth, uint32 * pnHeight ); +S_API bool SteamAPI_ISteamUtils_GetImageRGBA( ISteamUtils* self, int iImage, uint8 * pubDest, int nDestBufferSize ); +S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetAppID( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition( ISteamUtils* self, ENotificationPosition eNotificationPosition ); +S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted( ISteamUtils* self, SteamAPICall_t hSteamAPICall, bool * pbFailed ); +S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason( ISteamUtils* self, SteamAPICall_t hSteamAPICall ); +S_API bool SteamAPI_ISteamUtils_GetAPICallResult( ISteamUtils* self, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed ); +S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetWarningMessageHook( ISteamUtils* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent( ISteamUtils* self ); +S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature( ISteamUtils* self, const char * szFileName ); +S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput( ISteamUtils* self, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText ); +S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput( ISteamUtils* self, char * pchText, uint32 cchText ); +S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset( ISteamUtils* self, int nHorizontalInset, int nVerticalInset ); +S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_StartVRDashboard( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled( ISteamUtils* self, bool bEnabled ); +S_API bool SteamAPI_ISteamUtils_IsSteamChinaLauncher( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_InitFilterText( ISteamUtils* self, uint32 unFilterOptions ); +S_API int SteamAPI_ISteamUtils_FilterText( ISteamUtils* self, ETextFilteringContext eContext, uint64_steamid sourceSteamID, const char * pchInputMessage, char * pchOutFilteredText, uint32 nByteSizeOutFilteredText ); +S_API ESteamIPv6ConnectivityState SteamAPI_ISteamUtils_GetIPv6ConnectivityState( ISteamUtils* self, ESteamIPv6ConnectivityProtocol eProtocol ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput( ISteamUtils* self, EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ); +S_API void SteamAPI_ISteamUtils_SetGameLauncherMode( ISteamUtils* self, bool bLauncherMode ); +S_API bool SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_DismissGamepadTextInput( ISteamUtils* self ); + +// ISteamMatchmaking + +// A versioned accessor is exported by the library +S_API ISteamMatchmaking *SteamAPI_SteamMatchmaking_v009(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmaking(), but using this ensures that you are using a matching library. +inline ISteamMatchmaking *SteamAPI_SteamMatchmaking() { return SteamAPI_SteamMatchmaking_v009(); } +S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount( ISteamMatchmaking* self ); +S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame( ISteamMatchmaking* self, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer ); +S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ); +S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList( ISteamMatchmaking* self ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToBeCloseTo ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable( ISteamMatchmaking* self, int nSlotsAvailable ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter( ISteamMatchmaking* self, ELobbyDistanceFilter eLobbyDistanceFilter ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter( ISteamMatchmaking* self, int cMaxResults ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyByIndex( ISteamMatchmaking* self, int iLobby ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby( ISteamMatchmaking* self, ELobbyType eLobbyType, int cMaxMembers ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_LeaveLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDInvitee ); +S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iMember ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize ); +S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDUser, const char * pchKey ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const void * pvMsgBody, int cubMsgBody ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iChatID, CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, uint64_steamid steamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, CSteamID * psteamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int cMaxMembers ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType( ISteamMatchmaking* self, uint64_steamid steamIDLobby, ELobbyType eLobbyType ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable( ISteamMatchmaking* self, uint64_steamid steamIDLobby, bool bLobbyJoinable ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDNewOwner ); +S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDLobbyDependent ); + +// ISteamMatchmakingServerListResponse +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, EMatchMakingServerResponse response ); + +// ISteamMatchmakingPingResponse +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded( ISteamMatchmakingPingResponse* self, gameserveritem_t & server ); +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond( ISteamMatchmakingPingResponse* self ); + +// ISteamMatchmakingPlayersResponse +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList( ISteamMatchmakingPlayersResponse* self, const char * pchName, int nScore, float flTimePlayed ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond( ISteamMatchmakingPlayersResponse* self ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete( ISteamMatchmakingPlayersResponse* self ); + +// ISteamMatchmakingRulesResponse +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded( ISteamMatchmakingRulesResponse* self, const char * pchRule, const char * pchValue ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond( ISteamMatchmakingRulesResponse* self ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete( ISteamMatchmakingRulesResponse* self ); + +// ISteamMatchmakingServers + +// A versioned accessor is exported by the library +S_API ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmakingServers(), but using this ensures that you are using a matching library. +inline ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers() { return SteamAPI_SteamMatchmakingServers_v002(); } +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList( ISteamMatchmakingServers* self, AppId_t iApp, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest( ISteamMatchmakingServers* self, HServerListRequest hServerListRequest ); +S_API gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPingResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPlayersResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingRulesResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery( ISteamMatchmakingServers* self, HServerQuery hServerQuery ); + +// ISteamParties + +// A versioned accessor is exported by the library +S_API ISteamParties *SteamAPI_SteamParties_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParties(), but using this ensures that you are using a matching library. +inline ISteamParties *SteamAPI_SteamParties() { return SteamAPI_SteamParties_v002(); } +S_API uint32 SteamAPI_ISteamParties_GetNumActiveBeacons( ISteamParties* self ); +S_API PartyBeaconID_t SteamAPI_ISteamParties_GetBeaconByIndex( ISteamParties* self, uint32 unIndex ); +S_API bool SteamAPI_ISteamParties_GetBeaconDetails( ISteamParties* self, PartyBeaconID_t ulBeaconID, CSteamID * pSteamIDBeaconOwner, SteamPartyBeaconLocation_t * pLocation, char * pchMetadata, int cchMetadata ); +S_API SteamAPICall_t SteamAPI_ISteamParties_JoinParty( ISteamParties* self, PartyBeaconID_t ulBeaconID ); +S_API bool SteamAPI_ISteamParties_GetNumAvailableBeaconLocations( ISteamParties* self, uint32 * puNumLocations ); +S_API bool SteamAPI_ISteamParties_GetAvailableBeaconLocations( ISteamParties* self, SteamPartyBeaconLocation_t * pLocationList, uint32 uMaxNumLocations ); +S_API SteamAPICall_t SteamAPI_ISteamParties_CreateBeacon( ISteamParties* self, uint32 unOpenSlots, SteamPartyBeaconLocation_t * pBeaconLocation, const char * pchConnectString, const char * pchMetadata ); +S_API void SteamAPI_ISteamParties_OnReservationCompleted( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API void SteamAPI_ISteamParties_CancelReservation( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API SteamAPICall_t SteamAPI_ISteamParties_ChangeNumOpenSlots( ISteamParties* self, PartyBeaconID_t ulBeacon, uint32 unOpenSlots ); +S_API bool SteamAPI_ISteamParties_DestroyBeacon( ISteamParties* self, PartyBeaconID_t ulBeacon ); +S_API bool SteamAPI_ISteamParties_GetBeaconLocationData( ISteamParties* self, SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, char * pchDataStringOut, int cchDataStringOut ); + +// ISteamRemoteStorage + +// A versioned accessor is exported by the library +S_API ISteamRemoteStorage *SteamAPI_SteamRemoteStorage_v016(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemoteStorage(), but using this ensures that you are using a matching library. +inline ISteamRemoteStorage *SteamAPI_SteamRemoteStorage() { return SteamAPI_SteamRemoteStorage_v016(); } +S_API bool SteamAPI_ISteamRemoteStorage_FileWrite( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, int32 cubData ); +S_API int32 SteamAPI_ISteamRemoteStorage_FileRead( ISteamRemoteStorage* self, const char * pchFile, void * pvData, int32 cubDataToRead ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, uint32 cubData ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync( ISteamRemoteStorage* self, const char * pchFile, uint32 nOffset, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete( ISteamRemoteStorage* self, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileForget( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileDelete( ISteamRemoteStorage* self, const char * pchFile ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ); +S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileExists( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize( ISteamRemoteStorage* self, const char * pchFile ); +S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp( ISteamRemoteStorage* self, const char * pchFile ); +S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize( ISteamRemoteStorage* self, int iFile, int32 * pnFileSizeInBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_GetQuota( ISteamRemoteStorage* self, uint64 * pnTotalBytes, uint64 * puAvailableBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp( ISteamRemoteStorage* self ); +S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp( ISteamRemoteStorage* self, bool bEnabled ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload( ISteamRemoteStorage* self, UGCHandle_t hContent, uint32 unPriority ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress( ISteamRemoteStorage* self, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails( ISteamRemoteStorage* self, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, CSteamID * pSteamIDOwner ); +S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead( ISteamRemoteStorage* self, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount( ISteamRemoteStorage* self ); +S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle( ISteamRemoteStorage* self, int32 iCachedContent ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile( ISteamRemoteStorage* self, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType ); +S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles( ISteamRemoteStorage* self, uint64_steamid steamId, uint32 unStartIndex, SteamParamStringArray_t * pRequiredTags, SteamParamStringArray_t * pExcludedTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo( ISteamRemoteStorage* self, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction( ISteamRemoteStorage* self, EWorkshopFileAction eAction, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles( ISteamRemoteStorage* self, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t * pTags, SteamParamStringArray_t * pUserTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation( ISteamRemoteStorage* self, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetLocalFileChange( ISteamRemoteStorage* self, int iFile, ERemoteStorageLocalFileChange * pEChangeType, ERemoteStorageFilePathType * pEFilePathType ); +S_API bool SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_EndFileWriteBatch( ISteamRemoteStorage* self ); + +// ISteamUserStats + +// A versioned accessor is exported by the library +S_API ISteamUserStats *SteamAPI_SteamUserStats_v013(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUserStats(), but using this ensures that you are using a matching library. +inline ISteamUserStats *SteamAPI_SteamUserStats() { return SteamAPI_SteamUserStats_v013(); } +S_API bool SteamAPI_ISteamUserStats_GetStatInt32( ISteamUserStats* self, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetStatFloat( ISteamUserStats* self, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_SetStatInt32( ISteamUserStats* self, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamUserStats_SetStatFloat( ISteamUserStats* self, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat( ISteamUserStats* self, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamUserStats_GetAchievement( ISteamUserStats* self, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_SetAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_ClearAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime( ISteamUserStats* self, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_StoreStats( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetAchievementIcon( ISteamUserStats* self, const char * pchName ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute( ISteamUserStats* self, const char * pchName, const char * pchKey ); +S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress( ISteamUserStats* self, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress ); +S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements( ISteamUserStats* self ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementName( ISteamUserStats* self, uint32 iAchievement ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats( ISteamUserStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatInt32( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatFloat( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievement( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_ResetAllStats( ISteamUserStats* self, bool bAchievementsToo ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName ); +S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, CSteamID * prgUsers, int cUsers ); +S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry( ISteamUserStats* self, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers( ISteamUserStats* self ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo( ISteamUserStats* self, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo( ISteamUserStats* self, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent( ISteamUserStats* self, const char * pchName, float * pflPercent ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats( ISteamUserStats* self, int nHistoryDays ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatDouble( ISteamUserStats* self, const char * pchStatName, double * pData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData, uint32 cubData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble( ISteamUserStats* self, const char * pchStatName, double * pData, uint32 cubData ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32( ISteamUserStats* self, const char * pchName, int32 * pnMinProgress, int32 * pnMaxProgress ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat( ISteamUserStats* self, const char * pchName, float * pfMinProgress, float * pfMaxProgress ); + +// ISteamApps + +// A versioned accessor is exported by the library +S_API ISteamApps *SteamAPI_SteamApps_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamApps(), but using this ensures that you are using a matching library. +inline ISteamApps *SteamAPI_SteamApps() { return SteamAPI_SteamApps_v008(); } +S_API bool SteamAPI_ISteamApps_BIsSubscribed( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsLowViolence( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsCybercafe( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsVACBanned( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedApp( ISteamApps* self, AppId_t appID ); +S_API bool SteamAPI_ISteamApps_BIsDlcInstalled( ISteamApps* self, AppId_t appID ); +S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend( ISteamApps* self ); +S_API int SteamAPI_ISteamApps_GetDLCCount( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex( ISteamApps* self, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize ); +S_API void SteamAPI_ISteamApps_InstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_UninstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_GetCurrentBetaName( ISteamApps* self, char * pchName, int cchNameBufferSize ); +S_API bool SteamAPI_ISteamApps_MarkContentCorrupt( ISteamApps* self, bool bMissingFilesOnly ); +S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots( ISteamApps* self, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots ); +S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir( ISteamApps* self, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize ); +S_API bool SteamAPI_ISteamApps_BIsAppInstalled( ISteamApps* self, AppId_t appID ); +S_API uint64_steamid SteamAPI_ISteamApps_GetAppOwner( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam( ISteamApps* self, const char * pchKey ); +S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress( ISteamApps* self, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API int SteamAPI_ISteamApps_GetAppBuildId( ISteamApps* self ); +S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys( ISteamApps* self ); +S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails( ISteamApps* self, const char * pszFileName ); +S_API int SteamAPI_ISteamApps_GetLaunchCommandLine( ISteamApps* self, char * pszCommandLine, int cubCommandLine ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsTimedTrial( ISteamApps* self, uint32 * punSecondsAllowed, uint32 * punSecondsPlayed ); +S_API bool SteamAPI_ISteamApps_SetDlcContext( ISteamApps* self, AppId_t nAppID ); +S_API int SteamAPI_ISteamApps_GetNumBetas( ISteamApps* self, int * pnAvailable, int * pnPrivate ); +S_API bool SteamAPI_ISteamApps_GetBetaInfo( ISteamApps* self, int iBetaIndex, uint32 * punFlags, uint32 * punBuildID, char * pchBetaName, int cchBetaName, char * pchDescription, int cchDescription ); +S_API bool SteamAPI_ISteamApps_SetActiveBeta( ISteamApps* self, const char * pchBetaName ); + +// ISteamNetworking + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamNetworking() { return SteamAPI_SteamNetworking_v006(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamGameServerNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamGameServerNetworking() { return SteamAPI_SteamGameServerNetworking_v006(); } +S_API bool SteamAPI_ISteamNetworking_SendP2PPacket( ISteamNetworking* self, uint64_steamid steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable( ISteamNetworking* self, uint32 * pcubMsgSize, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket( ISteamNetworking* self, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, CSteamID * psteamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState( ISteamNetworking* self, uint64_steamid steamIDRemote, P2PSessionState_t * pConnectionState ); +S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay( ISteamNetworking* self, bool bAllow ); +S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket( ISteamNetworking* self, int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket( ISteamNetworking* self, uint64_steamid steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket( ISteamNetworking* self, SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ); +S_API bool SteamAPI_ISteamNetworking_DestroySocket( ISteamNetworking* self, SNetSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket( ISteamNetworking* self, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailable( ISteamNetworking* self, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_RetrieveData( ISteamNetworking* self, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_GetSocketInfo( ISteamNetworking* self, SNetSocket_t hSocket, CSteamID * pSteamIDRemote, int * peSocketStatus, SteamIPAddress_t * punIPRemote, uint16 * punPortRemote ); +S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo( ISteamNetworking* self, SNetListenSocket_t hListenSocket, SteamIPAddress_t * pnIP, uint16 * pnPort ); +S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType( ISteamNetworking* self, SNetSocket_t hSocket ); +S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize( ISteamNetworking* self, SNetSocket_t hSocket ); + +// ISteamScreenshots + +// A versioned accessor is exported by the library +S_API ISteamScreenshots *SteamAPI_SteamScreenshots_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamScreenshots(), but using this ensures that you are using a matching library. +inline ISteamScreenshots *SteamAPI_SteamScreenshots() { return SteamAPI_SteamScreenshots_v003(); } +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot( ISteamScreenshots* self, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary( ISteamScreenshots* self, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight ); +S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot( ISteamScreenshots* self ); +S_API void SteamAPI_ISteamScreenshots_HookScreenshots( ISteamScreenshots* self, bool bHook ); +S_API bool SteamAPI_ISteamScreenshots_SetLocation( ISteamScreenshots* self, ScreenshotHandle hScreenshot, const char * pchLocation ); +S_API bool SteamAPI_ISteamScreenshots_TagUser( ISteamScreenshots* self, ScreenshotHandle hScreenshot, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile( ISteamScreenshots* self, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID ); +S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked( ISteamScreenshots* self ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary( ISteamScreenshots* self, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename ); + +// ISteamMusic + +// A versioned accessor is exported by the library +S_API ISteamMusic *SteamAPI_SteamMusic_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusic(), but using this ensures that you are using a matching library. +inline ISteamMusic *SteamAPI_SteamMusic() { return SteamAPI_SteamMusic_v001(); } +S_API bool SteamAPI_ISteamMusic_BIsEnabled( ISteamMusic* self ); +S_API bool SteamAPI_ISteamMusic_BIsPlaying( ISteamMusic* self ); +S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Play( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Pause( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayPrevious( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayNext( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_SetVolume( ISteamMusic* self, float flVolume ); +S_API float SteamAPI_ISteamMusic_GetVolume( ISteamMusic* self ); + +// ISteamHTTP + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamHTTP() { return SteamAPI_SteamHTTP_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamGameServerHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamGameServerHTTP() { return SteamAPI_SteamGameServerHTTP_v003(); } +S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest( ISteamHTTP* self, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue( ISteamHTTP* self, HTTPRequestHandle hRequest, uint64 ulContextValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 * unBodySize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct( ISteamHTTP* self, HTTPRequestHandle hRequest, float * pflPercentOut ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen ); +S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer( ISteamHTTP* self, bool bAllowResponsesToModify ); +S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetCookie( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer( ISteamHTTP* self, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchUserAgentInfo ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate( ISteamHTTP* self, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unMilliseconds ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut( ISteamHTTP* self, HTTPRequestHandle hRequest, bool * pbWasTimedOut ); + +// ISteamInput + +// A versioned accessor is exported by the library +S_API ISteamInput *SteamAPI_SteamInput_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInput(), but using this ensures that you are using a matching library. +inline ISteamInput *SteamAPI_SteamInput() { return SteamAPI_SteamInput_v006(); } +S_API bool SteamAPI_ISteamInput_Init( ISteamInput* self, bool bExplicitlyCallRunFrame ); +S_API bool SteamAPI_ISteamInput_Shutdown( ISteamInput* self ); +S_API bool SteamAPI_ISteamInput_SetInputActionManifestFilePath( ISteamInput* self, const char * pchInputActionManifestAbsolutePath ); +S_API void SteamAPI_ISteamInput_RunFrame( ISteamInput* self, bool bReservedValue ); +S_API bool SteamAPI_ISteamInput_BWaitForData( ISteamInput* self, bool bWaitForever, uint32 unTimeout ); +S_API bool SteamAPI_ISteamInput_BNewDataAvailable( ISteamInput* self ); +S_API int SteamAPI_ISteamInput_GetConnectedControllers( ISteamInput* self, InputHandle_t * handlesOut ); +S_API void SteamAPI_ISteamInput_EnableDeviceCallbacks( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_EnableActionEventCallbacks( ISteamInput* self, SteamInputActionEventCallbackPointer pCallback ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetActionSetHandle( ISteamInput* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamInput_ActivateActionSet( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetCurrentActionSet( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_ActivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateAllActionSetLayers( ISteamInput* self, InputHandle_t inputHandle ); +S_API int SteamAPI_ISteamInput_GetActiveActionSetLayers( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t * handlesOut ); +S_API InputDigitalActionHandle_t SteamAPI_ISteamInput_GetDigitalActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamInput_GetDigitalActionData( ISteamInput* self, InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamInput_GetDigitalActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetStringForDigitalActionName( ISteamInput* self, InputDigitalActionHandle_t eActionHandle ); +S_API InputAnalogActionHandle_t SteamAPI_ISteamInput_GetAnalogActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamInput_GetAnalogActionData( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamInput_GetAnalogActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForAnalogActionName( ISteamInput* self, InputAnalogActionHandle_t eActionHandle ); +S_API void SteamAPI_ISteamInput_StopAnalogActionMomentum( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamInput_GetMotionData( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_TriggerVibration( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamInput_TriggerVibrationExtended( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ); +S_API void SteamAPI_ISteamInput_TriggerSimpleHapticEvent( ISteamInput* self, InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ); +S_API void SteamAPI_ISteamInput_SetLEDColor( ISteamInput* self, InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API bool SteamAPI_ISteamInput_ShowBindingPanel( ISteamInput* self, InputHandle_t inputHandle ); +S_API ESteamInputType SteamAPI_ISteamInput_GetInputTypeForHandle( ISteamInput* self, InputHandle_t inputHandle ); +S_API InputHandle_t SteamAPI_ISteamInput_GetControllerForGamepadIndex( ISteamInput* self, int nIndex ); +S_API int SteamAPI_ISteamInput_GetGamepadIndexForController( ISteamInput* self, InputHandle_t ulinputHandle ); +S_API const char * SteamAPI_ISteamInput_GetStringForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin( ISteamInput* self, InputHandle_t inputHandle, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_TranslateActionOrigin( ISteamInput* self, ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamInput_GetDeviceBindingRevision( ISteamInput* self, InputHandle_t inputHandle, int * pMajor, int * pMinor ); +S_API uint32 SteamAPI_ISteamInput_GetRemotePlaySessionID( ISteamInput* self, InputHandle_t inputHandle ); +S_API uint16 SteamAPI_ISteamInput_GetSessionInputConfigurationSettings( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_SetDualSenseTriggerEffect( ISteamInput* self, InputHandle_t inputHandle, const ScePadTriggerEffectParam * pParam ); + +// ISteamController + +// A versioned accessor is exported by the library +S_API ISteamController *SteamAPI_SteamController_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamController(), but using this ensures that you are using a matching library. +inline ISteamController *SteamAPI_SteamController() { return SteamAPI_SteamController_v008(); } +S_API bool SteamAPI_ISteamController_Init( ISteamController* self ); +S_API bool SteamAPI_ISteamController_Shutdown( ISteamController* self ); +S_API void SteamAPI_ISteamController_RunFrame( ISteamController* self ); +S_API int SteamAPI_ISteamController_GetConnectedControllers( ISteamController* self, ControllerHandle_t * handlesOut ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle( ISteamController* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamController_ActivateActionSet( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_ActivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateAllActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API int SteamAPI_ISteamController_GetActiveActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t * handlesOut ); +S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamController_GetDigitalActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut ); +S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamController_GetAnalogActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamController_GetGlyphForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetStringForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API void SteamAPI_ISteamController_StopAnalogActionMomentum( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamController_GetMotionData( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_TriggerHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API void SteamAPI_ISteamController_TriggerVibration( ISteamController* self, ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamController_SetLEDColor( ISteamController* self, ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API bool SteamAPI_ISteamController_ShowBindingPanel( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ESteamInputType SteamAPI_ISteamController_GetInputTypeForHandle( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex( ISteamController* self, int nIndex ); +S_API int SteamAPI_ISteamController_GetGamepadIndexForController( ISteamController* self, ControllerHandle_t ulControllerHandle ); +S_API const char * SteamAPI_ISteamController_GetStringForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetGlyphForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_GetActionOriginFromXboxOrigin( ISteamController* self, ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_TranslateActionOrigin( ISteamController* self, ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamController_GetControllerBindingRevision( ISteamController* self, ControllerHandle_t controllerHandle, int * pMajor, int * pMinor ); + +// ISteamUGC + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamUGC_v021(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamUGC() { return SteamAPI_SteamUGC_v021(); } + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamGameServerUGC_v021(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamGameServerUGC() { return SteamAPI_SteamGameServerUGC_v021(); } +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest( ISteamUGC* self, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char * pchCursor ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t * pDetails ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, const char * pchKey, char * pchValue, uint32 cchValueSize ); +S_API uint32 SteamAPI_ISteamUGC_GetNumSupportedGameVersions( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetSupportedGameVersionData( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 versionIndex, char * pchGameBranchMin, char * pchGameBranchMax, uint32 cchGameBranchSize ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTagGroup( ISteamUGC* self, UGCQueryHandle_t handle, const SteamParamStringArray_t * pTagGroups ); +S_API bool SteamAPI_ISteamUGC_AddExcludedTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnOnlyIDs ); +S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnKeyValueTags ); +S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnLongDescription ); +S_API bool SteamAPI_ISteamUGC_SetReturnMetadata( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnMetadata ); +S_API bool SteamAPI_ISteamUGC_SetReturnChildren( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnChildren ); +S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ); +S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnTotalOnly ); +S_API bool SteamAPI_ISteamUGC_SetReturnPlaytimeStats( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetLanguage( ISteamUGC* self, UGCQueryHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ); +S_API bool SteamAPI_ISteamUGC_SetAdminQuery( ISteamUGC* self, UGCUpdateHandle_t handle, bool bAdminQuery ); +S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter( ISteamUGC* self, UGCQueryHandle_t handle, const char * pMatchCloudFileName ); +S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag( ISteamUGC* self, UGCQueryHandle_t handle, bool bMatchAnyTag ); +S_API bool SteamAPI_ISteamUGC_SetSearchText( ISteamUGC* self, UGCQueryHandle_t handle, const char * pSearchText ); +S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetTimeCreatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_SetTimeUpdatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pKey, const char * pValue ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem( ISteamUGC* self, AppId_t nConsumerAppId, EWorkshopFileType eFileType ); +S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate( ISteamUGC* self, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_SetItemTitle( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchTitle ); +S_API bool SteamAPI_ISteamUGC_SetItemDescription( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchDescription ); +S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetItemMetadata( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchMetaData ); +S_API bool SteamAPI_ISteamUGC_SetItemVisibility( ISteamUGC* self, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamUGC_SetItemTags( ISteamUGC* self, UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t * pTags, bool bAllowAdminTags ); +S_API bool SteamAPI_ISteamUGC_SetItemContent( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszContentFolder ); +S_API bool SteamAPI_ISteamUGC_SetItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_SetAllowLegacyUpload( ISteamUGC* self, UGCUpdateHandle_t handle, bool bAllowLegacyUpload ); +S_API bool SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey ); +S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_RemoveItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_AddContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API bool SteamAPI_ISteamUGC_RemoveContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API bool SteamAPI_ISteamUGC_SetRequiredGameVersions( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszGameBranchMin, const char * pszGameBranchMax ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchChangeNote ); +S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress( ISteamUGC* self, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems( ISteamUGC* self, bool bIncludeLocallyDisabled ); +S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries, bool bIncludeLocallyDisabled ); +S_API uint32 SteamAPI_ISteamUGC_GetItemState( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp ); +S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API bool SteamAPI_ISteamUGC_DownloadItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bHighPriority ); +S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer( ISteamUGC* self, DepotId_t unWorkshopDepotID, const char * pszFolder ); +S_API void SteamAPI_ISteamUGC_SuspendDownloads( ISteamUGC* self, bool bSuspend ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetAppDependencies( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_DeleteItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_ShowWorkshopEULA( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences( ISteamUGC* self, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_SetItemsDisabledLocally( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileIDs, uint32 unNumPublishedFileIDs, bool bDisabledLocally ); +S_API bool SteamAPI_ISteamUGC_SetSubscriptionsLoadOrder( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileIDs, uint32 unNumPublishedFileIDs ); + +// ISteamHTMLSurface + +// A versioned accessor is exported by the library +S_API ISteamHTMLSurface *SteamAPI_SteamHTMLSurface_v005(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTMLSurface(), but using this ensures that you are using a matching library. +inline ISteamHTMLSurface *SteamAPI_SteamHTMLSurface() { return SteamAPI_SteamHTMLSurface_v005(); } +S_API bool SteamAPI_ISteamHTMLSurface_Init( ISteamHTMLSurface* self ); +S_API bool SteamAPI_ISteamHTMLSurface_Shutdown( ISteamHTMLSurface* self ); +S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser( ISteamHTMLSurface* self, const char * pchUserAgent, const char * pchUserCSS ); +S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_LoadURL( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData ); +S_API void SteamAPI_ISteamHTMLSurface_SetSize( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight ); +S_API void SteamAPI_ISteamHTMLSurface_StopLoad( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Reload( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoBack( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoForward( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AddHeader( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchScript ); +S_API void SteamAPI_ISteamHTMLSurface_MouseUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseMove( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_MouseWheel( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int32 nDelta ); +S_API void SteamAPI_ISteamHTMLSurface_KeyDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey ); +S_API void SteamAPI_ISteamHTMLSurface_KeyUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_KeyChar( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus ); +S_API void SteamAPI_ISteamHTMLSurface_ViewSource( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Find( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse ); +S_API void SteamAPI_ISteamHTMLSurface_StopFind( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_SetCookie( ISteamHTMLSurface* self, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly ); +S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY ); +S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bBackgroundMode ); +S_API void SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flDPIScaling ); +S_API void SteamAPI_ISteamHTMLSurface_OpenDeveloperTools( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bAllowed ); +S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bResult ); +S_API void SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char ** pchSelectedFiles ); + +// ISteamInventory + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamInventory() { return SteamAPI_SteamInventory_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamGameServerInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamGameServerInventory() { return SteamAPI_SteamGameServerInventory_v003(); } +S_API EResult SteamAPI_ISteamInventory_GetResultStatus( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetResultItems( ISteamInventory* self, SteamInventoryResult_t resultHandle, SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetResultItemProperty( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint32 unItemIndex, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_CheckResultSteamID( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint64_steamid steamIDExpected ); +S_API void SteamAPI_ISteamInventory_DestroyResult( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetAllItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_GetItemsByID( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs ); +S_API bool SteamAPI_ISteamInventory_SerializeResult( ISteamInventory* self, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize ); +S_API bool SteamAPI_ISteamInventory_DeserializeResult( ISteamInventory* self, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE ); +S_API bool SteamAPI_ISteamInventory_GenerateItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GrantPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_AddPromoItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef ); +S_API bool SteamAPI_ISteamInventory_AddPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_ConsumeItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ); +S_API bool SteamAPI_ISteamInventory_ExchangeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength ); +S_API bool SteamAPI_ISteamInventory_TransferItemQuantity( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest ); +S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_TriggerItemDrop( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition ); +S_API bool SteamAPI_ISteamInventory_TradeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, uint64_steamid steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength ); +S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs( ISteamInventory* self, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty( ISteamInventory* self, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs( ISteamInventory* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs( ISteamInventory* self, uint64_steamid steamID, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_StartPurchase( ISteamInventory* self, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestPrices( ISteamInventory* self ); +S_API uint32 SteamAPI_ISteamInventory_GetNumItemsWithPrices( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemsWithPrices( ISteamInventory* self, SteamItemDef_t * pArrayItemDefs, uint64 * pCurrentPrices, uint64 * pBasePrices, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GetItemPrice( ISteamInventory* self, SteamItemDef_t iDefinition, uint64 * pCurrentPrice, uint64 * pBasePrice ); +S_API SteamInventoryUpdateHandle_t SteamAPI_ISteamInventory_StartUpdateProperties( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_RemoveProperty( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName ); +S_API bool SteamAPI_ISteamInventory_SetPropertyString( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, const char * pchPropertyValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyBool( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, bool bValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyInt64( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, int64 nValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyFloat( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, float flValue ); +S_API bool SteamAPI_ISteamInventory_SubmitUpdateProperties( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_InspectItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const char * pchItemToken ); + +// ISteamTimeline + +// A versioned accessor is exported by the library +S_API ISteamTimeline *SteamAPI_SteamTimeline_v004(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamTimeline(), but using this ensures that you are using a matching library. +inline ISteamTimeline *SteamAPI_SteamTimeline() { return SteamAPI_SteamTimeline_v004(); } +S_API void SteamAPI_ISteamTimeline_SetTimelineTooltip( ISteamTimeline* self, const char * pchDescription, float flTimeDelta ); +S_API void SteamAPI_ISteamTimeline_ClearTimelineTooltip( ISteamTimeline* self, float flTimeDelta ); +S_API void SteamAPI_ISteamTimeline_SetTimelineGameMode( ISteamTimeline* self, ETimelineGameMode eMode ); +S_API TimelineEventHandle_t SteamAPI_ISteamTimeline_AddInstantaneousTimelineEvent( ISteamTimeline* self, const char * pchTitle, const char * pchDescription, const char * pchIcon, uint32 unIconPriority, float flStartOffsetSeconds, ETimelineEventClipPriority ePossibleClip ); +S_API TimelineEventHandle_t SteamAPI_ISteamTimeline_AddRangeTimelineEvent( ISteamTimeline* self, const char * pchTitle, const char * pchDescription, const char * pchIcon, uint32 unIconPriority, float flStartOffsetSeconds, float flDuration, ETimelineEventClipPriority ePossibleClip ); +S_API TimelineEventHandle_t SteamAPI_ISteamTimeline_StartRangeTimelineEvent( ISteamTimeline* self, const char * pchTitle, const char * pchDescription, const char * pchIcon, uint32 unPriority, float flStartOffsetSeconds, ETimelineEventClipPriority ePossibleClip ); +S_API void SteamAPI_ISteamTimeline_UpdateRangeTimelineEvent( ISteamTimeline* self, TimelineEventHandle_t ulEvent, const char * pchTitle, const char * pchDescription, const char * pchIcon, uint32 unPriority, ETimelineEventClipPriority ePossibleClip ); +S_API void SteamAPI_ISteamTimeline_EndRangeTimelineEvent( ISteamTimeline* self, TimelineEventHandle_t ulEvent, float flEndOffsetSeconds ); +S_API void SteamAPI_ISteamTimeline_RemoveTimelineEvent( ISteamTimeline* self, TimelineEventHandle_t ulEvent ); +S_API SteamAPICall_t SteamAPI_ISteamTimeline_DoesEventRecordingExist( ISteamTimeline* self, TimelineEventHandle_t ulEvent ); +S_API void SteamAPI_ISteamTimeline_StartGamePhase( ISteamTimeline* self ); +S_API void SteamAPI_ISteamTimeline_EndGamePhase( ISteamTimeline* self ); +S_API void SteamAPI_ISteamTimeline_SetGamePhaseID( ISteamTimeline* self, const char * pchPhaseID ); +S_API SteamAPICall_t SteamAPI_ISteamTimeline_DoesGamePhaseRecordingExist( ISteamTimeline* self, const char * pchPhaseID ); +S_API void SteamAPI_ISteamTimeline_AddGamePhaseTag( ISteamTimeline* self, const char * pchTagName, const char * pchTagIcon, const char * pchTagGroup, uint32 unPriority ); +S_API void SteamAPI_ISteamTimeline_SetGamePhaseAttribute( ISteamTimeline* self, const char * pchAttributeGroup, const char * pchAttributeValue, uint32 unPriority ); +S_API void SteamAPI_ISteamTimeline_OpenOverlayToGamePhase( ISteamTimeline* self, const char * pchPhaseID ); +S_API void SteamAPI_ISteamTimeline_OpenOverlayToTimelineEvent( ISteamTimeline* self, const TimelineEventHandle_t ulEvent ); + +// ISteamVideo + +// A versioned accessor is exported by the library +S_API ISteamVideo *SteamAPI_SteamVideo_v007(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamVideo(), but using this ensures that you are using a matching library. +inline ISteamVideo *SteamAPI_SteamVideo() { return SteamAPI_SteamVideo_v007(); } +S_API void SteamAPI_ISteamVideo_GetVideoURL( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_IsBroadcasting( ISteamVideo* self, int * pnNumViewers ); +S_API void SteamAPI_ISteamVideo_GetOPFSettings( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_GetOPFStringForApp( ISteamVideo* self, AppId_t unVideoAppID, char * pchBuffer, int32 * pnBufferSize ); + +// ISteamParentalSettings + +// A versioned accessor is exported by the library +S_API ISteamParentalSettings *SteamAPI_SteamParentalSettings_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParentalSettings(), but using this ensures that you are using a matching library. +inline ISteamParentalSettings *SteamAPI_SteamParentalSettings() { return SteamAPI_SteamParentalSettings_v001(); } +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockLocked( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppBlocked( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppInBlockList( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureBlocked( ISteamParentalSettings* self, EParentalFeature eFeature ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList( ISteamParentalSettings* self, EParentalFeature eFeature ); + +// ISteamRemotePlay + +// A versioned accessor is exported by the library +S_API ISteamRemotePlay *SteamAPI_SteamRemotePlay_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemotePlay(), but using this ensures that you are using a matching library. +inline ISteamRemotePlay *SteamAPI_SteamRemotePlay() { return SteamAPI_SteamRemotePlay_v003(); } +S_API uint32 SteamAPI_ISteamRemotePlay_GetSessionCount( ISteamRemotePlay* self ); +S_API RemotePlaySessionID_t SteamAPI_ISteamRemotePlay_GetSessionID( ISteamRemotePlay* self, int iSessionIndex ); +S_API uint64_steamid SteamAPI_ISteamRemotePlay_GetSessionSteamID( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API const char * SteamAPI_ISteamRemotePlay_GetSessionClientName( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API ESteamDeviceFormFactor SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API bool SteamAPI_ISteamRemotePlay_BGetSessionClientResolution( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, int * pnResolutionX, int * pnResolutionY ); +S_API bool SteamAPI_ISteamRemotePlay_ShowRemotePlayTogetherUI( ISteamRemotePlay* self ); +S_API bool SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite( ISteamRemotePlay* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamRemotePlay_BEnableRemotePlayTogetherDirectInput( ISteamRemotePlay* self ); +S_API void SteamAPI_ISteamRemotePlay_DisableRemotePlayTogetherDirectInput( ISteamRemotePlay* self ); +S_API uint32 SteamAPI_ISteamRemotePlay_GetInput( ISteamRemotePlay* self, RemotePlayInput_t * pInput, uint32 unMaxEvents ); +S_API void SteamAPI_ISteamRemotePlay_SetMouseVisibility( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, bool bVisible ); +S_API void SteamAPI_ISteamRemotePlay_SetMousePosition( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, float flNormalizedX, float flNormalizedY ); +S_API RemotePlayCursorID_t SteamAPI_ISteamRemotePlay_CreateMouseCursor( ISteamRemotePlay* self, int nWidth, int nHeight, int nHotX, int nHotY, const void * pBGRA, int nPitch ); +S_API void SteamAPI_ISteamRemotePlay_SetMouseCursor( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, RemotePlayCursorID_t unCursorID ); + +// ISteamNetworkingMessages + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI() { return SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI() { return SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); } +S_API EResult SteamAPI_ISteamNetworkingMessages_SendMessageToUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, const void * pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ); +S_API int SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel( ISteamNetworkingMessages* self, int nLocalChannel, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, int nLocalChannel ); +S_API ESteamNetworkingConnectionState SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, SteamNetConnectionInfo_t * pConnectionInfo, SteamNetConnectionRealTimeStatus_t * pQuickStatus ); + +// ISteamNetworkingSockets + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI() { return SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI() { return SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); } +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & localAddress, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & address, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2P( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_AcceptConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseConnection( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int nReason, const char * pszDebug, bool bEnableLinger ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseListenSocket( ISteamNetworkingSockets* self, HSteamListenSocket hSocket ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int64 nUserData ); +S_API int64 SteamAPI_ISteamNetworkingSockets_GetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer ); +S_API void SteamAPI_ISteamNetworkingSockets_SetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, const char * pszName ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, char * pszName, int nMaxLen ); +S_API EResult SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, const void * pData, uint32 cbData, int nSendFlags, int64 * pOutMessageNumber ); +S_API void SteamAPI_ISteamNetworkingSockets_SendMessages( ISteamNetworkingSockets* self, int nMessages, SteamNetworkingMessage_t *const * pMessages, int64 * pOutMessageNumberOrResult ); +S_API EResult SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionInfo( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionInfo_t * pInfo ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t * pStatus, int nLanes, SteamNetConnectionRealTimeLaneStatus_t * pLanes ); +S_API int SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, char * pszBuf, int cbBuf ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress( ISteamNetworkingSockets* self, HSteamListenSocket hSocket, SteamNetworkingIPAddr * address ); +S_API bool SteamAPI_ISteamNetworkingSockets_CreateSocketPair( ISteamNetworkingSockets* self, HSteamNetConnection * pOutConnection1, HSteamNetConnection * pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity * pIdentity1, const SteamNetworkingIdentity * pIdentity2 ); +S_API EResult SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes( ISteamNetworkingSockets* self, HSteamNetConnection hConn, int nNumLanes, const int * pLanePriorities, const uint16 * pLaneWeights ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetIdentity( ISteamNetworkingSockets* self, SteamNetworkingIdentity * pIdentity ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_InitAuthentication( ISteamNetworkingSockets* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus( ISteamNetworkingSockets* self, SteamNetAuthenticationStatus_t * pDetails ); +S_API HSteamNetPollGroup SteamAPI_ISteamNetworkingSockets_CreatePollGroup( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_DestroyPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup( ISteamNetworkingSockets* self, HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket( ISteamNetworkingSockets* self, const void * pvTicket, int cbTicket, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API int SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API uint16 SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort( ISteamNetworkingSockets* self ); +S_API SteamNetworkingPOPID SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID( ISteamNetworkingSockets* self ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress( ISteamNetworkingSockets* self, SteamDatagramHostedAddress * pRouting ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin( ISteamNetworkingSockets* self, SteamDatagramGameCoordinatorServerLogin * pLoginInfo, int * pcbSignedBlob, void * pBlob ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling( ISteamNetworkingSockets* self, ISteamNetworkingConnectionSignaling * pSignaling, const SteamNetworkingIdentity * pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal( ISteamNetworkingSockets* self, const void * pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext * pContext ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetCertificateRequest( ISteamNetworkingSockets* self, int * pcbBlob, void * pBlob, SteamNetworkingErrMsg & errMsg ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetCertificate( ISteamNetworkingSockets* self, const void * pCertificate, int cbCertificate, SteamNetworkingErrMsg & errMsg ); +S_API void SteamAPI_ISteamNetworkingSockets_ResetIdentity( ISteamNetworkingSockets* self, const SteamNetworkingIdentity * pIdentity ); +S_API void SteamAPI_ISteamNetworkingSockets_RunCallbacks( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP( ISteamNetworkingSockets* self, int nNumPorts ); +S_API void SteamAPI_ISteamNetworkingSockets_GetFakeIP( ISteamNetworkingSockets* self, int idxFirstPort, SteamNetworkingFakeIPResult_t * pInfo ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP( ISteamNetworkingSockets* self, int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingIPAddr * pOutAddr ); +S_API ISteamNetworkingFakeUDPPort * SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort( ISteamNetworkingSockets* self, int idxFakeServerPort ); + +// ISteamNetworkingUtils + +// A versioned accessor is exported by the library +S_API ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingUtils_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI() { return SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); } +S_API SteamNetworkingMessage_t * SteamAPI_ISteamNetworkingUtils_AllocateMessage( ISteamNetworkingUtils* self, int cbAllocateBuffer ); +S_API void SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess( ISteamNetworkingUtils* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus( ISteamNetworkingUtils* self, SteamRelayNetworkStatus_t * pDetails ); +S_API float SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation( ISteamNetworkingUtils* self, SteamNetworkPingLocation_t & result ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location1, const SteamNetworkPingLocation_t & location2 ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & remoteLocation ); +S_API void SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location, char * pszBuf, int cchBufSize ); +S_API bool SteamAPI_ISteamNetworkingUtils_ParsePingLocationString( ISteamNetworkingUtils* self, const char * pszString, SteamNetworkPingLocation_t & result ); +S_API bool SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate( ISteamNetworkingUtils* self, float flMaxAgeSeconds ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID, SteamNetworkingPOPID * pViaRelayPoP ); +S_API int SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPCount( ISteamNetworkingUtils* self ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPList( ISteamNetworkingUtils* self, SteamNetworkingPOPID * list, int nListSz ); +S_API SteamNetworkingMicroseconds SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp( ISteamNetworkingUtils* self ); +S_API void SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction( ISteamNetworkingUtils* self, ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ); +S_API bool SteamAPI_ISteamNetworkingUtils_IsFakeIPv4( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API EResult SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & fakeIP, SteamNetworkingIdentity * pOutRealIdentity ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, void * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged( ISteamNetworkingUtils* self, FnSteamNetConnectionStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged( ISteamNetworkingUtils* self, FnSteamNetAuthenticationStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged( ISteamNetworkingUtils* self, FnSteamRelayNetworkStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult( ISteamNetworkingUtils* self, FnSteamNetworkingFakeIPResult fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionRequest fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionFailed fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType eDataType, const void * pArg ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct( ISteamNetworkingUtils* self, const SteamNetworkingConfigValue_t & opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); +S_API ESteamNetworkingGetConfigValueResult SteamAPI_ISteamNetworkingUtils_GetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType * pOutDataType, void * pResult, size_t * cbResult ); +S_API const char * SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType * pOutDataType, ESteamNetworkingConfigScope * pOutScope ); +S_API ESteamNetworkingConfigValue SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIPAddr * pAddr, const char * pszStr ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIdentity & identity, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIdentity * pIdentity, const char * pszStr ); + +// ISteamGameServer + +// A versioned accessor is exported by the library +S_API ISteamGameServer *SteamAPI_SteamGameServer_v015(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServer(), but using this ensures that you are using a matching library. +inline ISteamGameServer *SteamAPI_SteamGameServer() { return SteamAPI_SteamGameServer_v015(); } +S_API void SteamAPI_ISteamGameServer_SetProduct( ISteamGameServer* self, const char * pszProduct ); +S_API void SteamAPI_ISteamGameServer_SetGameDescription( ISteamGameServer* self, const char * pszGameDescription ); +S_API void SteamAPI_ISteamGameServer_SetModDir( ISteamGameServer* self, const char * pszModDir ); +S_API void SteamAPI_ISteamGameServer_SetDedicatedServer( ISteamGameServer* self, bool bDedicated ); +S_API void SteamAPI_ISteamGameServer_LogOn( ISteamGameServer* self, const char * pszToken ); +S_API void SteamAPI_ISteamGameServer_LogOnAnonymous( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_LogOff( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BLoggedOn( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BSecure( ISteamGameServer* self ); +S_API uint64_steamid SteamAPI_ISteamGameServer_GetSteamID( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_WasRestartRequested( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount( ISteamGameServer* self, int cPlayersMax ); +S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount( ISteamGameServer* self, int cBotplayers ); +S_API void SteamAPI_ISteamGameServer_SetServerName( ISteamGameServer* self, const char * pszServerName ); +S_API void SteamAPI_ISteamGameServer_SetMapName( ISteamGameServer* self, const char * pszMapName ); +S_API void SteamAPI_ISteamGameServer_SetPasswordProtected( ISteamGameServer* self, bool bPasswordProtected ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorPort( ISteamGameServer* self, uint16 unSpectatorPort ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName( ISteamGameServer* self, const char * pszSpectatorServerName ); +S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetKeyValue( ISteamGameServer* self, const char * pKey, const char * pValue ); +S_API void SteamAPI_ISteamGameServer_SetGameTags( ISteamGameServer* self, const char * pchGameTags ); +S_API void SteamAPI_ISteamGameServer_SetGameData( ISteamGameServer* self, const char * pchGameData ); +S_API void SteamAPI_ISteamGameServer_SetRegion( ISteamGameServer* self, const char * pszRegion ); +S_API void SteamAPI_ISteamGameServer_SetAdvertiseServerActive( ISteamGameServer* self, bool bActive ); +S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket( ISteamGameServer* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSnid ); +S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession( ISteamGameServer* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_EndAuthSession( ISteamGameServer* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_CancelAuthTicket( ISteamGameServer* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp( ISteamGameServer* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus( ISteamGameServer* self, uint64_steamid steamIDUser, uint64_steamid steamIDGroup ); +S_API void SteamAPI_ISteamGameServer_GetGameplayStats( ISteamGameServer* self ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation( ISteamGameServer* self ); +S_API SteamIPAddress_t SteamAPI_ISteamGameServer_GetPublicIP( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket( ISteamGameServer* self, const void * pData, int cbData, uint32 srcIP, uint16 srcPort ); +S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket( ISteamGameServer* self, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan( ISteamGameServer* self, uint64_steamid steamIDClan ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility( ISteamGameServer* self, uint64_steamid steamIDNewPlayer ); +S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED( ISteamGameServer* self, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, CSteamID * pSteamIDUser ); +S_API uint64_steamid SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED( ISteamGameServer* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServer_BUpdateUserData( ISteamGameServer* self, uint64_steamid steamIDUser, const char * pchPlayerName, uint32 uScore ); + +// ISteamGameServerStats + +// A versioned accessor is exported by the library +S_API ISteamGameServerStats *SteamAPI_SteamGameServerStats_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerStats(), but using this ensures that you are using a matching library. +inline ISteamGameServerStats *SteamAPI_SteamGameServerStats() { return SteamAPI_SteamGameServerStats_v001(); } +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); + +// ISteamNetworkingFakeUDPPort +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort( ISteamNetworkingFakeUDPPort* self ); +S_API EResult SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress, const void * pData, uint32 cbData, int nSendFlags ); +S_API int SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages( ISteamNetworkingFakeUDPPort* self, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress ); + +// SteamIPAddress_t +S_API bool SteamAPI_SteamIPAddress_t_IsSet( SteamIPAddress_t* self ); + +// MatchMakingKeyValuePair_t +S_API void SteamAPI_MatchMakingKeyValuePair_t_Construct( MatchMakingKeyValuePair_t* self ); + +// servernetadr_t +S_API void SteamAPI_servernetadr_t_Construct( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_Init( servernetadr_t* self, unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); +S_API uint16 SteamAPI_servernetadr_t_GetQueryPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetQueryPort( servernetadr_t* self, uint16 usPort ); +S_API uint16 SteamAPI_servernetadr_t_GetConnectionPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetConnectionPort( servernetadr_t* self, uint16 usPort ); +S_API uint32 SteamAPI_servernetadr_t_GetIP( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetIP( servernetadr_t* self, uint32 unIP ); +S_API const char * SteamAPI_servernetadr_t_GetConnectionAddressString( servernetadr_t* self ); +S_API const char * SteamAPI_servernetadr_t_GetQueryAddressString( servernetadr_t* self ); +S_API bool SteamAPI_servernetadr_t_IsLessThan( servernetadr_t* self, const servernetadr_t & netadr ); +S_API void SteamAPI_servernetadr_t_Assign( servernetadr_t* self, const servernetadr_t & that ); + +// gameserveritem_t +S_API void SteamAPI_gameserveritem_t_Construct( gameserveritem_t* self ); +S_API const char * SteamAPI_gameserveritem_t_GetName( gameserveritem_t* self ); +S_API void SteamAPI_gameserveritem_t_SetName( gameserveritem_t* self, const char * pName ); + +// SteamNetworkingIPAddr +S_API void SteamAPI_SteamNetworkingIPAddr_Clear( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6( SteamNetworkingIPAddr* self, const uint8 * ipv6, uint16 nPort ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv4( SteamNetworkingIPAddr* self, uint32 nIP, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv4( SteamNetworkingIPAddr* self ); +S_API uint32 SteamAPI_SteamNetworkingIPAddr_GetIPv4( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost( SteamNetworkingIPAddr* self, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsLocalHost( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_ToString( SteamNetworkingIPAddr* self, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr* self, const char * pszStr ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsEqualTo( SteamNetworkingIPAddr* self, const SteamNetworkingIPAddr & x ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIPAddr_GetFakeIPType( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsFakeIP( SteamNetworkingIPAddr* self ); + +// SteamNetworkingIdentity +S_API void SteamAPI_SteamNetworkingIdentity_Clear( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsInvalid( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID( SteamNetworkingIdentity* self, uint64_steamid steamID ); +S_API uint64_steamid SteamAPI_SteamNetworkingIdentity_GetSteamID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID64( SteamNetworkingIdentity* self, uint64 steamID ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetSteamID64( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetPSNID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetPSNID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPAddr( SteamNetworkingIdentity* self, const SteamNetworkingIPAddr & addr ); +S_API const SteamNetworkingIPAddr * SteamAPI_SteamNetworkingIdentity_GetIPAddr( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPv4Addr( SteamNetworkingIdentity* self, uint32 nIPv4, uint16 nPort ); +S_API uint32 SteamAPI_SteamNetworkingIdentity_GetIPv4( SteamNetworkingIdentity* self ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIdentity_GetFakeIPType( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsFakeIP( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericString( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetGenericString( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericBytes( SteamNetworkingIdentity* self, const void * data, uint32 cbLen ); +S_API const uint8 * SteamAPI_SteamNetworkingIdentity_GetGenericBytes( SteamNetworkingIdentity* self, int & cbLen ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsEqualTo( SteamNetworkingIdentity* self, const SteamNetworkingIdentity & x ); +S_API void SteamAPI_SteamNetworkingIdentity_ToString( SteamNetworkingIdentity* self, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity* self, const char * pszStr ); + +// SteamNetworkingMessage_t +S_API void SteamAPI_SteamNetworkingMessage_t_Release( SteamNetworkingMessage_t* self ); + +// SteamNetworkingConfigValue_t +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt32( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int32_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt64( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int64_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetFloat( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, float data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetPtr( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, void * data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetString( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, const char * data ); + +// SteamDatagramHostedAddress +S_API void SteamAPI_SteamDatagramHostedAddress_Clear( SteamDatagramHostedAddress* self ); +S_API SteamNetworkingPOPID SteamAPI_SteamDatagramHostedAddress_GetPopID( SteamDatagramHostedAddress* self ); +S_API void SteamAPI_SteamDatagramHostedAddress_SetDevAddress( SteamDatagramHostedAddress* self, uint32 nIP, uint16 nPort, SteamNetworkingPOPID popid ); +#endif // STEAMAPIFLAT_H diff --git a/lsteamclient/steamworks_sdk_163/steam_api_internal.h b/lsteamclient/steamworks_sdk_163/steam_api_internal.h new file mode 100644 index 00000000000..d762cb40d00 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steam_api_internal.h @@ -0,0 +1,305 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Internal implementation details of the steamworks SDK. +// +// You should be able to figure out how to use the SDK by reading +// steam_api_common.h, and should not need to understand anything in here. +// +//----------------------------------------------------------------------------- + +#ifdef STEAM_CALLBACK_BEGIN +#error "This file should only be included from steam_api_common.h" +#endif + +#include + +// Internal functions used to locate/create interfaces +S_API HSteamPipe S_CALLTYPE SteamAPI_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamAPI_GetHSteamUser(); +S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); +S_API void *S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); +S_API void *S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateUserInterface( HSteamUser hSteamUser, const char *pszVersion ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateGameServerInterface( HSteamUser hSteamUser, const char *pszVersion ); + +// Macro used to define a type-safe accessor that will always return the version +// of the interface of the *header file* you are compiling with! We also bounce +// through a safety function that checks for interfaces being created or destroyed. +// +// SteamInternal_ContextInit takes a base pointer for the equivalent of +// struct { void (*pFn)(void* pCtx); uintptr_t counter; void *ptr; } +// Do not change layout or add non-pointer aligned data! +#define STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, expr, kind, version ) \ + inline void S_CALLTYPE SteamInternal_Init_ ## name( type *p ) { *p = (type)( expr ); } \ + STEAM_CLANG_ATTR( "interface_accessor_kind:" kind ";interface_accessor_version:" version ";" ) \ + inline type name() { \ + static void* s_CallbackCounterAndContext[ 3 ] = { (void*)&SteamInternal_Init_ ## name, 0, 0 }; \ + return *(type*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); \ + } + +#define STEAM_DEFINE_USER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateUserInterface( SteamAPI_GetHSteamUser(), version ), "user", version ) +#define STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateGameServerInterface( SteamGameServer_GetHSteamUser(), version ), "gameserver", version ) + +// +// Internal stuff used for the standard, higher-level callback mechanism +// + +// Internal functions used by the utility CCallback objects to receive callbacks +S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); +// Internal functions used by the utility CCallResult objects to receive async call results +S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); + +#define _STEAM_CALLBACK_OFFSETOF( type, member ) ( (size_t)( (char *)&( (type *)0 )->member ) ) +#define _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) +#define _STEAM_CALLBACK_HELPER( _1, _2, SELECTED, ... ) _STEAM_CALLBACK_##SELECTED +#define _STEAM_CALLBACK_SELECT( X, Y ) _STEAM_CALLBACK_HELPER X Y +#define _STEAM_CALLBACK_3( extra_code, thisclass, func, param ) \ + struct CCallbackInternal_ ## func : private CCallbackImpl< sizeof( param ) > { \ + CCallbackInternal_ ## func () { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ + CCallbackInternal_ ## func ( const CCallbackInternal_ ## func & ) { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ + CCallbackInternal_ ## func & operator=( const CCallbackInternal_ ## func & ) { return *this; } \ + private: virtual void Run( void *pvParam ) S_OVERRIDE { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ + thisclass *pOuter = reinterpret_cast( reinterpret_cast(this) - _STEAM_CALLBACK_OFFSETOF( thisclass, m_steamcallback_ ## func ) ); \ + pOuter->func( reinterpret_cast( pvParam ) ); \ + } \ + } m_steamcallback_ ## func ; void func( param *pParam ) +#define _STEAM_CALLBACK_4( _, thisclass, func, param, var ) \ + CCallback< thisclass, param > var; void func( param *pParam ) +#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ + CCallback< thisclass, param, true > var; void func( param *pParam ) + +#ifndef API_GEN + +template< class T, class P > +inline CCallResult::CCallResult() +{ + m_hAPICall = k_uAPICallInvalid; + m_pObj = nullptr; + m_Func = nullptr; + m_iCallback = P::k_iCallback; +} + +template< class T, class P > +inline void CCallResult::Set( SteamAPICall_t hAPICall, T *p, func_t func ) +{ + if ( m_hAPICall ) + SteamAPI_UnregisterCallResult( this, m_hAPICall ); + + m_hAPICall = hAPICall; + m_pObj = p; + m_Func = func; + + if ( hAPICall ) + SteamAPI_RegisterCallResult( this, hAPICall ); +} + +template< class T, class P > +inline bool CCallResult::IsActive() const +{ + return (m_hAPICall != k_uAPICallInvalid); +} + +template< class T, class P > +inline void CCallResult::Cancel() +{ + if ( m_hAPICall != k_uAPICallInvalid ) + { + SteamAPI_UnregisterCallResult( this, m_hAPICall ); + m_hAPICall = k_uAPICallInvalid; + } +} + +template< class T, class P > +inline CCallResult::~CCallResult() +{ + Cancel(); +} + +template< class T, class P > +inline void CCallResult::Run( void *pvParam ) +{ + m_hAPICall = k_uAPICallInvalid; // caller unregisters for us + (m_pObj->*m_Func)((P *)pvParam, false); +} + +template< class T, class P > +inline void CCallResult::Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) +{ + if ( hSteamAPICall == m_hAPICall ) + { + m_hAPICall = k_uAPICallInvalid; // caller unregisters for us + (m_pObj->*m_Func)((P *)pvParam, bIOFailure); + } +} + +template< class T, class P, bool bGameserver > +inline CCallback< T, P, bGameserver >::CCallback( T *pObj, func_t func ) + : m_pObj( nullptr ), m_Func( nullptr ) +{ + if ( bGameserver ) + { + this->SetGameserverFlag(); + } + Register( pObj, func ); +} + +template< class T, class P, bool bGameserver > +inline void CCallback< T, P, bGameserver >::Register( T *pObj, func_t func ) +{ + if ( !pObj || !func ) + return; + + if ( this->m_nCallbackFlags & CCallbackBase::k_ECallbackFlagsRegistered ) + Unregister(); + + m_pObj = pObj; + m_Func = func; + // SteamAPI_RegisterCallback sets k_ECallbackFlagsRegistered + SteamAPI_RegisterCallback( this, P::k_iCallback ); +} + +template< class T, class P, bool bGameserver > +inline void CCallback< T, P, bGameserver >::Unregister() +{ + // SteamAPI_UnregisterCallback removes k_ECallbackFlagsRegistered + SteamAPI_UnregisterCallback( this ); +} + +template< class T, class P, bool bGameserver > +inline void CCallback< T, P, bGameserver >::Run( void *pvParam ) +{ + (m_pObj->*m_Func)((P *)pvParam); +} + +#endif // #ifndef API_GEN + +// structure that contains client callback data +// see callbacks documentation for more details +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +/// Internal structure used in manual callback dispatch +struct CallbackMsg_t +{ + HSteamUser m_hSteamUser; // Specific user to whom this callback applies. + int m_iCallback; // Callback identifier. (Corresponds to the k_iCallback enum in the callback structure.) + uint8 *m_pubParam; // Points to the callback structure + int m_cubParam; // Size of the data pointed to by m_pubParam +}; +#pragma pack( pop ) + +// Macros to define steam callback structures. Used internally for debugging +#ifdef STEAM_CALLBACK_INSPECTION_ENABLED + #include "../../clientdll/steam_api_callback_inspection.h" +#else + #define STEAM_CALLBACK_BEGIN( callbackname, callbackid ) struct callbackname { enum { k_iCallback = callbackid }; + #define STEAM_CALLBACK_MEMBER( varidx, vartype, varname ) vartype varname ; + #define STEAM_CALLBACK_MEMBER_ARRAY( varidx, vartype, varname, varcount ) vartype varname [ varcount ]; + #define STEAM_CALLBACK_END(nArgs) }; +#endif + +// Forward declare all of the Steam interfaces. (Do we really need to do this?) +class ISteamClient; +class ISteamUser; +class ISteamGameServer; +class ISteamFriends; +class ISteamUtils; +class ISteamMatchmaking; +class ISteamContentServer; +class ISteamMatchmakingServers; +class ISteamUserStats; +class ISteamApps; +class ISteamNetworking; +class ISteamRemoteStorage; +class ISteamScreenshots; +class ISteamMusic; +class ISteamGameServerStats; +class ISteamHTTP; +class ISteamController; +class ISteamUGC; +class ISteamHTMLSurface; +class ISteamInventory; +class ISteamVideo; +class ISteamParentalSettings; +class ISteamInput; +class ISteamParties; +class ISteamRemotePlay; + +// Forward declare types +struct SteamNetworkingIdentity; + +//----------------------------------------------------------------------------- +// Purpose: Base values for callback identifiers, each callback must +// have a unique ID. +//----------------------------------------------------------------------------- +enum { k_iSteamUserCallbacks = 100 }; +enum { k_iSteamGameServerCallbacks = 200 }; +enum { k_iSteamFriendsCallbacks = 300 }; +enum { k_iSteamBillingCallbacks = 400 }; +enum { k_iSteamMatchmakingCallbacks = 500 }; +enum { k_iSteamContentServerCallbacks = 600 }; +enum { k_iSteamUtilsCallbacks = 700 }; +enum { k_iSteamAppsCallbacks = 1000 }; +enum { k_iSteamUserStatsCallbacks = 1100 }; +enum { k_iSteamNetworkingCallbacks = 1200 }; +enum { k_iSteamNetworkingSocketsCallbacks = 1220 }; +enum { k_iSteamNetworkingMessagesCallbacks = 1250 }; +enum { k_iSteamNetworkingUtilsCallbacks = 1280 }; +enum { k_iSteamRemoteStorageCallbacks = 1300 }; +enum { k_iSteamGameServerItemsCallbacks = 1500 }; +enum { k_iSteamGameCoordinatorCallbacks = 1700 }; +enum { k_iSteamGameServerStatsCallbacks = 1800 }; +enum { k_iSteam2AsyncCallbacks = 1900 }; +enum { k_iSteamGameStatsCallbacks = 2000 }; +enum { k_iSteamHTTPCallbacks = 2100 }; +enum { k_iSteamScreenshotsCallbacks = 2300 }; +// NOTE: 2500-2599 are reserved +enum { k_iSteamStreamLauncherCallbacks = 2600 }; +enum { k_iSteamControllerCallbacks = 2800 }; +enum { k_iSteamUGCCallbacks = 3400 }; +enum { k_iSteamStreamClientCallbacks = 3500 }; +enum { k_iSteamMusicCallbacks = 4000 }; +enum { k_iSteamGameNotificationCallbacks = 4400 }; +enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; +enum { k_iSteamVideoCallbacks = 4600 }; +enum { k_iSteamInventoryCallbacks = 4700 }; +enum { k_ISteamParentalSettingsCallbacks = 5000 }; +enum { k_iSteamGameSearchCallbacks = 5200 }; +enum { k_iSteamPartiesCallbacks = 5300 }; +enum { k_iSteamSTARCallbacks = 5500 }; +enum { k_iSteamRemotePlayCallbacks = 5700 }; +enum { k_iSteamChatCallbacks = 5900 }; +enum { k_iSteamTimelineCallbacks = 6000 }; +// NOTE: Internal "IClientXxx" callback IDs go in clientenums.h + +// Macros used to annotate various Steamworks interfaces to generate the +// flat API +#ifdef API_GEN +# define STEAM_CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) +#else +# define STEAM_CLANG_ATTR(ATTR) +#endif + +#define STEAM_OUT_STRUCT() STEAM_CLANG_ATTR( "out_struct: ;" ) +#define STEAM_OUT_STRING() STEAM_CLANG_ATTR( "out_string: ;" ) +#define STEAM_OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) STEAM_CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) +#define STEAM_OUT_ARRAY_COUNT(COUNTER, DESC) STEAM_CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_ARRAY_COUNT(COUNTER) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";" ) +#define STEAM_ARRAY_COUNT_D(COUNTER, DESC) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_STRING_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_string_count:" #COUNTER ";" ) +#define STEAM_DESC(DESC) STEAM_CLANG_ATTR("desc:" #DESC ";") +#define STEAM_CALL_RESULT(RESULT_TYPE) STEAM_CLANG_ATTR("callresult:" #RESULT_TYPE ";") +#define STEAM_CALL_BACK(RESULT_TYPE) STEAM_CLANG_ATTR("callback:" #RESULT_TYPE ";") +#define STEAM_FLAT_NAME(NAME) STEAM_CLANG_ATTR("flat_name:" #NAME ";") diff --git a/lsteamclient/steamworks_sdk_163/steam_gameserver.h b/lsteamclient/steamworks_sdk_163/steam_gameserver.h new file mode 100644 index 00000000000..f196c31c4b1 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steam_gameserver.h @@ -0,0 +1,114 @@ +//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: +// +//============================================================================= + +#ifndef STEAM_GAMESERVER_H +#define STEAM_GAMESERVER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api.h" +#include "isteamgameserver.h" +#include "isteamgameserverstats.h" + +enum EServerMode +{ + eServerModeInvalid = 0, // DO NOT USE + eServerModeNoAuthentication = 1, // Don't authenticate user logins and don't list on the server list + eServerModeAuthentication = 2, // Authenticate users, list on the server list, don't run VAC on clients that connect + eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients +}; + +/// Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic +/// UDP queries for server browser pings and LAN discovery. In this case, Steam will not open up a +/// socket to handle server browser queries, and you must use ISteamGameServer::HandleIncomingPacket +/// and ISteamGameServer::GetNextOutgoingPacket to handle packets related to server discovery on your socket. +const uint16 STEAMGAMESERVER_QUERY_PORT_SHARED = 0xffff; + +// DEPRECATED: This old name was really confusing. +const uint16 MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE = STEAMGAMESERVER_QUERY_PORT_SHARED; + +// Initialize SteamGameServer client and interface objects, and set server properties which may not be changed. +// +// After calling this function, you should set any additional server parameters, and then +// call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn() +// +// - unIP will usually be zero. If you are on a machine with multiple IP addresses, you can pass a non-zero +// value here and the relevant sockets will be bound to that IP. This can be used to ensure that +// the IP you desire is the one used in the server browser. +// - usGamePort is the port that clients will connect to for gameplay. You will usually open up your +// own socket bound to this port. +// - usQueryPort is the port that will manage server browser related duties and info +// pings from clients. If you pass STEAMGAMESERVER_QUERY_PORT_SHARED for usQueryPort, then it +// will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving +// UDP packets for the master server updater. (See ISteamGameServer::HandleIncomingPacket and +// ISteamGameServer::GetNextOutgoingPacket.) +// - The version string should be in the form x.x.x.x, and is used by the master server to detect when the +// server is out of date. (Only servers with the latest version will be listed.) +// +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, if pOutErrMsg is non-NULL, +// it will receive a non-localized message that explains the reason for the failure +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ); + +// This function is included for compatibility with older SDK. +// You can use it if you don't care about decent error handling +inline bool SteamGameServer_Init( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +{ + return SteamGameServer_InitEx( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, NULL ) == k_ESteamAPIInitResult_OK; +} + +// Shutdown SteamGameSeverXxx interfaces, log out, and free resources. +S_API void SteamGameServer_Shutdown(); + +// Most Steam API functions allocate some amount of thread-local memory for +// parameter storage. Calling SteamGameServer_ReleaseCurrentThreadMemory() +// will free all API-related memory associated with the calling thread. +// This memory is released automatically by SteamGameServer_RunCallbacks(), +// so single-threaded servers do not need to explicitly call this function. +inline void SteamGameServer_ReleaseCurrentThreadMemory(); + +S_API bool SteamGameServer_BSecure(); +S_API uint64 SteamGameServer_GetSteamID(); + +// Older SDKs exported this global pointer, but it is no longer supported. +// You should use SteamGameServerClient() to safely access the ISteamClient +// APIs from your game server application. +//S_API ISteamClient *g_pSteamClientGameServer; + +// SteamGameServer_InitSafe has been replaced with SteamGameServer_Init and +// is no longer supported. Use SteamGameServer_Init instead. +//S_API void S_CALLTYPE SteamGameServer_InitSafe(); + +//============================================================================= +// +// Internal implementation details below +// +//============================================================================= + +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_GameServer_Init_V2( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ) +{ + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" + + STEAMGAMESERVER_INTERFACE_VERSION "\0" + STEAMGAMESERVERSTATS_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + "\0"; + return SteamInternal_GameServer_Init_V2( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, pszInternalCheckInterfaceVersions, pOutErrMsg ); +} +inline void SteamGameServer_ReleaseCurrentThreadMemory() +{ + SteamAPI_ReleaseCurrentThreadMemory(); +} + +#endif // STEAM_GAMESERVER_H diff --git a/lsteamclient/steamworks_sdk_163/steamclientpublic.h b/lsteamclient/steamworks_sdk_163/steamclientpublic.h new file mode 100644 index 00000000000..30da28a3782 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamclientpublic.h @@ -0,0 +1,1181 @@ +//========= Copyright � 1996-2008, Valve LLC, All rights reserved. ============ +// +// Declare common types used by the Steamworks SDK. +// +//============================================================================= + +#ifndef STEAMCLIENTPUBLIC_H +#define STEAMCLIENTPUBLIC_H + +#include "steamtypes.h" +#include "steamuniverse.h" + +// General result codes +enum EResult +{ + k_EResultNone = 0, // no result + k_EResultOK = 1, // success + k_EResultFail = 2, // generic failure + k_EResultNoConnection = 3, // no/failed network connection +// k_EResultNoConnectionRetry = 4, // OBSOLETE - removed + k_EResultInvalidPassword = 5, // password/ticket is invalid + k_EResultLoggedInElsewhere = 6, // same user logged in elsewhere + k_EResultInvalidProtocolVer = 7, // protocol version is incorrect + k_EResultInvalidParam = 8, // a parameter is incorrect + k_EResultFileNotFound = 9, // file was not found + k_EResultBusy = 10, // called method busy - action not taken + k_EResultInvalidState = 11, // called object was in an invalid state + k_EResultInvalidName = 12, // name is invalid + k_EResultInvalidEmail = 13, // email is invalid + k_EResultDuplicateName = 14, // name is not unique + k_EResultAccessDenied = 15, // access is denied + k_EResultTimeout = 16, // operation timed out + k_EResultBanned = 17, // VAC2 banned + k_EResultAccountNotFound = 18, // account not found + k_EResultInvalidSteamID = 19, // steamID is invalid + k_EResultServiceUnavailable = 20, // The requested service is currently unavailable + k_EResultNotLoggedOn = 21, // The user is not logged on + k_EResultPending = 22, // Request is pending (may be in process, or waiting on third party) + k_EResultEncryptionFailure = 23, // Encryption or Decryption failed + k_EResultInsufficientPrivilege = 24, // Insufficient privilege + k_EResultLimitExceeded = 25, // Too much of a good thing + k_EResultRevoked = 26, // Access has been revoked (used for revoked guest passes) + k_EResultExpired = 27, // License/Guest pass the user is trying to access is expired + k_EResultAlreadyRedeemed = 28, // Guest pass has already been redeemed by account, cannot be acked again + k_EResultDuplicateRequest = 29, // The request is a duplicate and the action has already occurred in the past, ignored this time + k_EResultAlreadyOwned = 30, // All the games in this guest pass redemption request are already owned by the user + k_EResultIPNotFound = 31, // IP address not found + k_EResultPersistFailed = 32, // failed to write change to the data store + k_EResultLockingFailed = 33, // failed to acquire access lock for this operation + k_EResultLogonSessionReplaced = 34, + k_EResultConnectFailed = 35, + k_EResultHandshakeFailed = 36, + k_EResultIOFailure = 37, + k_EResultRemoteDisconnect = 38, + k_EResultShoppingCartNotFound = 39, // failed to find the shopping cart requested + k_EResultBlocked = 40, // a user didn't allow it + k_EResultIgnored = 41, // target is ignoring sender + k_EResultNoMatch = 42, // nothing matching the request found + k_EResultAccountDisabled = 43, + k_EResultServiceReadOnly = 44, // this service is not accepting content changes right now + k_EResultAccountNotFeatured = 45, // account doesn't have value, so this feature isn't available + k_EResultAdministratorOK = 46, // allowed to take this action, but only because requester is admin + k_EResultContentVersion = 47, // A Version mismatch in content transmitted within the Steam protocol. + k_EResultTryAnotherCM = 48, // The current CM can't service the user making a request, user should try another. + k_EResultPasswordRequiredToKickSession = 49,// You are already logged in elsewhere, this cached credential login has failed. + k_EResultAlreadyLoggedInElsewhere = 50, // You are already logged in elsewhere, you must wait + k_EResultSuspended = 51, // Long running operation (content download) suspended/paused + k_EResultCancelled = 52, // Operation canceled (typically by user: content download) + k_EResultDataCorruption = 53, // Operation canceled because data is ill formed or unrecoverable + k_EResultDiskFull = 54, // Operation canceled - not enough disk space. + k_EResultRemoteCallFailed = 55, // an remote call or IPC call failed + k_EResultPasswordUnset = 56, // Password could not be verified as it's unset server side + k_EResultExternalAccountUnlinked = 57, // External account (PSN, Facebook...) is not linked to a Steam account + k_EResultPSNTicketInvalid = 58, // PSN ticket was invalid + k_EResultExternalAccountAlreadyLinked = 59, // External account (PSN, Facebook...) is already linked to some other account, must explicitly request to replace/delete the link first + k_EResultRemoteFileConflict = 60, // The sync cannot resume due to a conflict between the local and remote files + k_EResultIllegalPassword = 61, // The requested new password is not legal + k_EResultSameAsPreviousValue = 62, // new value is the same as the old one ( secret question and answer ) + k_EResultAccountLogonDenied = 63, // account login denied due to 2nd factor authentication failure + k_EResultCannotUseOldPassword = 64, // The requested new password is not legal + k_EResultInvalidLoginAuthCode = 65, // account login denied due to auth code invalid + k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent - partner site specific + k_EResultHardwareNotCapableOfIPT = 67, // + k_EResultIPTInitError = 68, // + k_EResultParentalControlRestricted = 69, // operation failed due to parental control restrictions for current user + k_EResultFacebookQueryError = 70, // Facebook query returned an error + k_EResultExpiredLoginAuthCode = 71, // account login denied due to auth code expired + k_EResultIPLoginRestrictionFailed = 72, + k_EResultAccountLockedDown = 73, + k_EResultAccountLogonDeniedVerifiedEmailRequired = 74, + k_EResultNoMatchingURL = 75, + k_EResultBadResponse = 76, // parse failure, missing field, etc. + k_EResultRequirePasswordReEntry = 77, // The user cannot complete the action until they re-enter their password + k_EResultValueOutOfRange = 78, // the value entered is outside the acceptable range + k_EResultUnexpectedError = 79, // something happened that we didn't expect to ever happen + k_EResultDisabled = 80, // The requested service has been configured to be unavailable + k_EResultInvalidCEGSubmission = 81, // The set of files submitted to the CEG server are not valid ! + k_EResultRestrictedDevice = 82, // The device being used is not allowed to perform this action + k_EResultRegionLocked = 83, // The action could not be complete because it is region restricted + k_EResultRateLimitExceeded = 84, // Temporary rate limit exceeded, try again later, different from k_EResultLimitExceeded which may be permanent + k_EResultAccountLoginDeniedNeedTwoFactor = 85, // Need two-factor code to login + k_EResultItemDeleted = 86, // The thing we're trying to access has been deleted + k_EResultAccountLoginDeniedThrottle = 87, // login attempt failed, try to throttle response to possible attacker + k_EResultTwoFactorCodeMismatch = 88, // two factor code mismatch + k_EResultTwoFactorActivationCodeMismatch = 89, // activation code for two-factor didn't match + k_EResultAccountAssociatedToMultiplePartners = 90, // account has been associated with multiple partners + k_EResultNotModified = 91, // data not modified + k_EResultNoMobileDevice = 92, // the account does not have a mobile device associated with it + k_EResultTimeNotSynced = 93, // the time presented is out of range or tolerance + k_EResultSmsCodeFailed = 94, // SMS code failure (no match, none pending, etc.) + k_EResultAccountLimitExceeded = 95, // Too many accounts access this resource + k_EResultAccountActivityLimitExceeded = 96, // Too many changes to this account + k_EResultPhoneActivityLimitExceeded = 97, // Too many changes to this phone + k_EResultRefundToWallet = 98, // Cannot refund to payment method, must use wallet + k_EResultEmailSendFailure = 99, // Cannot send an email + k_EResultNotSettled = 100, // Can't perform operation till payment has settled + k_EResultNeedCaptcha = 101, // Needs to provide a valid captcha + k_EResultGSLTDenied = 102, // a game server login token owned by this token's owner has been banned + k_EResultGSOwnerDenied = 103, // game server owner is denied for other reason (account lock, community ban, vac ban, missing phone) + k_EResultInvalidItemType = 104, // the type of thing we were requested to act on is invalid + k_EResultIPBanned = 105, // the ip address has been banned from taking this action + k_EResultGSLTExpired = 106, // this token has expired from disuse; can be reset for use + k_EResultInsufficientFunds = 107, // user doesn't have enough wallet funds to complete the action + k_EResultTooManyPending = 108, // There are too many of this thing pending already + k_EResultNoSiteLicensesFound = 109, // No site licenses found + k_EResultWGNetworkSendExceeded = 110, // the WG couldn't send a response because we exceeded max network send size + k_EResultAccountNotFriends = 111, // the user is not mutually friends + k_EResultLimitedUserAccount = 112, // the user is limited + k_EResultCantRemoveItem = 113, // item can't be removed + k_EResultAccountDeleted = 114, // account has been deleted + k_EResultExistingUserCancelledLicense = 115, // A license for this already exists, but cancelled + k_EResultCommunityCooldown = 116, // access is denied because of a community cooldown (probably from support profile data resets) + k_EResultNoLauncherSpecified = 117, // No launcher was specified, but a launcher was needed to choose correct realm for operation. + k_EResultMustAgreeToSSA = 118, // User must agree to china SSA or global SSA before login + k_EResultLauncherMigrated = 119, // The specified launcher type is no longer supported; the user should be directed elsewhere + k_EResultSteamRealmMismatch = 120, // The user's realm does not match the realm of the requested resource + k_EResultInvalidSignature = 121, // signature check did not match + k_EResultParseFailure = 122, // Failed to parse input + k_EResultNoVerifiedPhone = 123, // account does not have a verified phone number + k_EResultInsufficientBattery = 124, // user device doesn't have enough battery charge currently to complete the action + k_EResultChargerRequired = 125, // The operation requires a charger to be plugged in, which wasn't present + k_EResultCachedCredentialInvalid = 126, // Cached credential was invalid - user must reauthenticate + K_EResultPhoneNumberIsVOIP = 127, // The phone number provided is a Voice Over IP number + k_EResultNotSupported = 128, // The data being accessed is not supported by this API + k_EResultFamilySizeLimitExceeded = 129, // Reached the maximum size of the family + k_EResultOfflineAppCacheInvalid = 130, // The local data for the offline mode cache is insufficient to login + k_EResultTryLater = 131, // retry the operation later +}; + +// Error codes for use with the voice functions +enum EVoiceResult +{ + k_EVoiceResultOK = 0, + k_EVoiceResultNotInitialized = 1, + k_EVoiceResultNotRecording = 2, + k_EVoiceResultNoData = 3, + k_EVoiceResultBufferTooSmall = 4, + k_EVoiceResultDataCorrupted = 5, + k_EVoiceResultRestricted = 6, + k_EVoiceResultUnsupportedCodec = 7, + k_EVoiceResultReceiverOutOfDate = 8, + k_EVoiceResultReceiverDidNotAnswer = 9, + +}; + +// Result codes to GSHandleClientDeny/Kick +enum EDenyReason +{ + k_EDenyInvalid = 0, + k_EDenyInvalidVersion = 1, + k_EDenyGeneric = 2, + k_EDenyNotLoggedOn = 3, + k_EDenyNoLicense = 4, + k_EDenyCheater = 5, + k_EDenyLoggedInElseWhere = 6, + k_EDenyUnknownText = 7, + k_EDenyIncompatibleAnticheat = 8, + k_EDenyMemoryCorruption = 9, + k_EDenyIncompatibleSoftware = 10, + k_EDenySteamConnectionLost = 11, + k_EDenySteamConnectionError = 12, + k_EDenySteamResponseTimedOut = 13, + k_EDenySteamValidationStalled = 14, + k_EDenySteamOwnerLeftGuestUser = 15, +}; + +// return type of GetAuthSessionTicket +typedef uint32 HAuthTicket; +const HAuthTicket k_HAuthTicketInvalid = 0; + +// results from BeginAuthSession +enum EBeginAuthSessionResult +{ + k_EBeginAuthSessionResultOK = 0, // Ticket is valid for this game and this steamID. + k_EBeginAuthSessionResultInvalidTicket = 1, // Ticket is not valid. + k_EBeginAuthSessionResultDuplicateRequest = 2, // A ticket has already been submitted for this steamID + k_EBeginAuthSessionResultInvalidVersion = 3, // Ticket is from an incompatible interface version + k_EBeginAuthSessionResultGameMismatch = 4, // Ticket is not for this game + k_EBeginAuthSessionResultExpiredTicket = 5, // Ticket has expired +}; + +// Callback values for callback ValidateAuthTicketResponse_t which is a response to BeginAuthSession +enum EAuthSessionResponse +{ + k_EAuthSessionResponseOK = 0, // Steam has verified the user is online, the ticket is valid and ticket has not been reused. + k_EAuthSessionResponseUserNotConnectedToSteam = 1, // The user in question is not connected to steam + k_EAuthSessionResponseNoLicenseOrExpired = 2, // The license has expired. + k_EAuthSessionResponseVACBanned = 3, // The user is VAC banned for this game. + k_EAuthSessionResponseLoggedInElseWhere = 4, // The user account has logged in elsewhere and the session containing the game instance has been disconnected. + k_EAuthSessionResponseVACCheckTimedOut = 5, // VAC has been unable to perform anti-cheat checks on this user + k_EAuthSessionResponseAuthTicketCanceled = 6, // The ticket has been canceled by the issuer + k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid. + k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam. + k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC + k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, // The network identity in the ticket does not match the server authenticating the ticket +}; + +// results from UserHasLicenseForApp +enum EUserHasLicenseForAppResult +{ + k_EUserHasLicenseResultHasLicense = 0, // User has a license for specified app + k_EUserHasLicenseResultDoesNotHaveLicense = 1, // User does not have a license for the specified app + k_EUserHasLicenseResultNoAuth = 2, // User has not been authenticated +}; + + +// Steam account types +enum EAccountType +{ + k_EAccountTypeInvalid = 0, + k_EAccountTypeIndividual = 1, // single user account + k_EAccountTypeMultiseat = 2, // multiseat (e.g. cybercafe) account + k_EAccountTypeGameServer = 3, // game server account + k_EAccountTypeAnonGameServer = 4, // anonymous game server account + k_EAccountTypePending = 5, // pending + k_EAccountTypeContentServer = 6, // content server + k_EAccountTypeClan = 7, + k_EAccountTypeChat = 8, + k_EAccountTypeConsoleUser = 9, // Fake SteamID for local PSN account on PS3 or Live account on 360, etc. + k_EAccountTypeAnonUser = 10, + + // Max of 16 items in this field + k_EAccountTypeMax +}; + + + +//----------------------------------------------------------------------------- +// Purpose: Chat Entry Types (previously was only friend-to-friend message types) +//----------------------------------------------------------------------------- +enum EChatEntryType +{ + k_EChatEntryTypeInvalid = 0, + k_EChatEntryTypeChatMsg = 1, // Normal text message from another user + k_EChatEntryTypeTyping = 2, // Another user is typing (not used in multi-user chat) + k_EChatEntryTypeInviteGame = 3, // Invite from other user into that users current game + k_EChatEntryTypeEmote = 4, // text emote message (deprecated, should be treated as ChatMsg) + //k_EChatEntryTypeLobbyGameStart = 5, // lobby game is starting (dead - listen for LobbyGameCreated_t callback instead) + k_EChatEntryTypeLeftConversation = 6, // user has left the conversation ( closed chat window ) + // Above are previous FriendMsgType entries, now merged into more generic chat entry types + k_EChatEntryTypeEntered = 7, // user has entered the conversation (used in multi-user chat and group chat) + k_EChatEntryTypeWasKicked = 8, // user was kicked (data: 64-bit steamid of actor performing the kick) + k_EChatEntryTypeWasBanned = 9, // user was banned (data: 64-bit steamid of actor performing the ban) + k_EChatEntryTypeDisconnected = 10, // user disconnected + k_EChatEntryTypeHistoricalChat = 11, // a chat message from user's chat history or offilne message + //k_EChatEntryTypeReserved1 = 12, // No longer used + //k_EChatEntryTypeReserved2 = 13, // No longer used + k_EChatEntryTypeLinkBlocked = 14, // a link was removed by the chat filter. +}; + + +//----------------------------------------------------------------------------- +// Purpose: Chat Room Enter Responses +//----------------------------------------------------------------------------- +enum EChatRoomEnterResponse +{ + k_EChatRoomEnterResponseSuccess = 1, // Success + k_EChatRoomEnterResponseDoesntExist = 2, // Chat doesn't exist (probably closed) + k_EChatRoomEnterResponseNotAllowed = 3, // General Denied - You don't have the permissions needed to join the chat + k_EChatRoomEnterResponseFull = 4, // Chat room has reached its maximum size + k_EChatRoomEnterResponseError = 5, // Unexpected Error + k_EChatRoomEnterResponseBanned = 6, // You are banned from this chat room and may not join + k_EChatRoomEnterResponseLimited = 7, // Joining this chat is not allowed because you are a limited user (no value on account) + k_EChatRoomEnterResponseClanDisabled = 8, // Attempt to join a clan chat when the clan is locked or disabled + k_EChatRoomEnterResponseCommunityBan = 9, // Attempt to join a chat when the user has a community lock on their account + k_EChatRoomEnterResponseMemberBlockedYou = 10, // Join failed - some member in the chat has blocked you from joining + k_EChatRoomEnterResponseYouBlockedMember = 11, // Join failed - you have blocked some member already in the chat + // k_EChatRoomEnterResponseNoRankingDataLobby = 12, // No longer used + // k_EChatRoomEnterResponseNoRankingDataUser = 13, // No longer used + // k_EChatRoomEnterResponseRankOutOfRange = 14, // No longer used + k_EChatRoomEnterResponseRatelimitExceeded = 15, // Join failed - to many join attempts in a very short period of time +}; + + +const unsigned int k_unSteamAccountIDMask = 0xFFFFFFFF; +const unsigned int k_unSteamAccountInstanceMask = 0x000FFFFF; +const unsigned int k_unSteamUserDefaultInstance = 1; // fixed instance for all individual users + +// Special flags for Chat accounts - they go in the top 8 bits +// of the steam ID's "instance", leaving 12 for the actual instances +enum EChatSteamIDInstanceFlags +{ + k_EChatAccountInstanceMask = 0x00000FFF, // top 8 bits are flags + + k_EChatInstanceFlagClan = ( k_unSteamAccountInstanceMask + 1 ) >> 1, // top bit + k_EChatInstanceFlagLobby = ( k_unSteamAccountInstanceMask + 1 ) >> 2, // next one down, etc + k_EChatInstanceFlagMMSLobby = ( k_unSteamAccountInstanceMask + 1 ) >> 3, // next one down, etc + + // Max of 8 flags +}; + + +//----------------------------------------------------------------------------- +// Purpose: Possible positions to tell the overlay to show notifications in +//----------------------------------------------------------------------------- +enum ENotificationPosition +{ + k_EPositionInvalid = -1, + k_EPositionTopLeft = 0, + k_EPositionTopRight = 1, + k_EPositionBottomLeft = 2, + k_EPositionBottomRight = 3, +}; + + +//----------------------------------------------------------------------------- +// Purpose: Broadcast upload result details +//----------------------------------------------------------------------------- +enum EBroadcastUploadResult +{ + k_EBroadcastUploadResultNone = 0, // broadcast state unknown + k_EBroadcastUploadResultOK = 1, // broadcast was good, no problems + k_EBroadcastUploadResultInitFailed = 2, // broadcast init failed + k_EBroadcastUploadResultFrameFailed = 3, // broadcast frame upload failed + k_EBroadcastUploadResultTimeout = 4, // broadcast upload timed out + k_EBroadcastUploadResultBandwidthExceeded = 5, // broadcast send too much data + k_EBroadcastUploadResultLowFPS = 6, // broadcast FPS too low + k_EBroadcastUploadResultMissingKeyFrames = 7, // broadcast sending not enough key frames + k_EBroadcastUploadResultNoConnection = 8, // broadcast client failed to connect to relay + k_EBroadcastUploadResultRelayFailed = 9, // relay dropped the upload + k_EBroadcastUploadResultSettingsChanged = 10, // the client changed broadcast settings + k_EBroadcastUploadResultMissingAudio = 11, // client failed to send audio data + k_EBroadcastUploadResultTooFarBehind = 12, // clients was too slow uploading + k_EBroadcastUploadResultTranscodeBehind = 13, // server failed to keep up with transcode + k_EBroadcastUploadResultNotAllowedToPlay = 14, // Broadcast does not have permissions to play game + k_EBroadcastUploadResultBusy = 15, // RTMP host to busy to take new broadcast stream, choose another + k_EBroadcastUploadResultBanned = 16, // Account banned from community broadcast + k_EBroadcastUploadResultAlreadyActive = 17, // We already already have an stream running. + k_EBroadcastUploadResultForcedOff = 18, // We explicitly shutting down a broadcast + k_EBroadcastUploadResultAudioBehind = 19, // Audio stream was too far behind video + k_EBroadcastUploadResultShutdown = 20, // Broadcast Server was shut down + k_EBroadcastUploadResultDisconnect = 21, // broadcast uploader TCP disconnected + k_EBroadcastUploadResultVideoInitFailed = 22, // invalid video settings + k_EBroadcastUploadResultAudioInitFailed = 23, // invalid audio settings +}; + + +//----------------------------------------------------------------------------- +// Purpose: Reasons a user may not use the Community Market. +// Used in MarketEligibilityResponse_t. +//----------------------------------------------------------------------------- +enum EMarketNotAllowedReasonFlags +{ + k_EMarketNotAllowedReason_None = 0, + + // A back-end call failed or something that might work again on retry + k_EMarketNotAllowedReason_TemporaryFailure = (1 << 0), + + // Disabled account + k_EMarketNotAllowedReason_AccountDisabled = (1 << 1), + + // Locked account + k_EMarketNotAllowedReason_AccountLockedDown = (1 << 2), + + // Limited account (no purchases) + k_EMarketNotAllowedReason_AccountLimited = (1 << 3), + + // The account is banned from trading items + k_EMarketNotAllowedReason_TradeBanned = (1 << 4), + + // Wallet funds aren't tradable because the user has had no purchase + // activity in the last year or has had no purchases prior to last month + k_EMarketNotAllowedReason_AccountNotTrusted = (1 << 5), + + // The user doesn't have Steam Guard enabled + k_EMarketNotAllowedReason_SteamGuardNotEnabled = (1 << 6), + + // The user has Steam Guard, but it hasn't been enabled for the required + // number of days + k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled = (1 << 7), + + // The user has recently forgotten their password and reset it + k_EMarketNotAllowedReason_RecentPasswordReset = (1 << 8), + + // The user has recently funded his or her wallet with a new payment method + k_EMarketNotAllowedReason_NewPaymentMethod = (1 << 9), + + // An invalid cookie was sent by the user + k_EMarketNotAllowedReason_InvalidCookie = (1 << 10), + + // The user has Steam Guard, but is using a new computer or web browser + k_EMarketNotAllowedReason_UsingNewDevice = (1 << 11), + + // The user has recently refunded a store purchase by his or herself + k_EMarketNotAllowedReason_RecentSelfRefund = (1 << 12), + + // The user has recently funded his or her wallet with a new payment method that cannot be verified + k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified = (1 << 13), + + // Not only is the account not trusted, but they have no recent purchases at all + k_EMarketNotAllowedReason_NoRecentPurchases = (1 << 14), + + // User accepted a wallet gift that was recently purchased + k_EMarketNotAllowedReason_AcceptedWalletGift = (1 << 15), + + // User did something that triggered a trade cooldown (like reversing trades) + k_EMarketNotAllowedReason_TradeCooldown = (1 << 16), +}; + + +// +// describes XP / progress restrictions to apply for games with duration control / +// anti-indulgence enabled for minor Steam China users. +// +// WARNING: DO NOT RENUMBER +enum EDurationControlProgress +{ + k_EDurationControlProgress_Full = 0, // Full progress + k_EDurationControlProgress_Half = 1, // deprecated - XP or persistent rewards should be halved + k_EDurationControlProgress_None = 2, // deprecated - XP or persistent rewards should be stopped + + k_EDurationControl_ExitSoon_3h = 3, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_5h = 4, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_Night = 5, // game running after day period, game should exit - steam will terminate the game soon +}; + + +// +// describes which notification timer has expired, for steam china duration control feature +// +// WARNING: DO NOT RENUMBER +enum EDurationControlNotification +{ + k_EDurationControlNotification_None = 0, // just informing you about progress, no notification to show + k_EDurationControlNotification_1Hour = 1, // "you've been playing for N hours" + + k_EDurationControlNotification_3Hours = 2, // deprecated - "you've been playing for 3 hours; take a break" + k_EDurationControlNotification_HalfProgress = 3,// deprecated - "your XP / progress is half normal" + k_EDurationControlNotification_NoProgress = 4, // deprecated - "your XP / progress is zero" + + k_EDurationControlNotification_ExitSoon_3h = 5, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_5h = 6, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_Night = 7,// game running after day period, game should exit - steam will terminate the game soon +}; + + +// +// Specifies a game's online state in relation to duration control +// +enum EDurationControlOnlineState +{ + k_EDurationControlOnlineState_Invalid = 0, // nil value + k_EDurationControlOnlineState_Offline = 1, // currently in offline play - single-player, offline co-op, etc. + k_EDurationControlOnlineState_Online = 2, // currently in online play + k_EDurationControlOnlineState_OnlineHighPri = 3, // currently in online play and requests not to be interrupted +}; + + +enum EBetaBranchFlags +{ + k_EBetaBranch_None = 0, + k_EBetaBranch_Default = 1, // this is the default branch ("public") + k_EBetaBranch_Available = 2, // this branch can be selected (available) + k_EBetaBranch_Private = 4, // this is a private branch (password protected) + k_EBetaBranch_Selected = 8, // this is the currently selected branch (active) + k_EBetaBranch_Installed = 16, // this is the currently installed branch (mounted) +}; + +#pragma pack( push, 1 ) + +#define CSTEAMID_DEFINED + +// Steam ID structure (64 bits total) +class CSteamID +{ +public: + + //----------------------------------------------------------------------------- + // Purpose: Constructor + //----------------------------------------------------------------------------- + CSteamID() + { + m_steamid.m_comp.m_unAccountID = 0; + m_steamid.m_comp.m_EAccountType = k_EAccountTypeInvalid; + m_steamid.m_comp.m_EUniverse = k_EUniverseInvalid; + m_steamid.m_comp.m_unAccountInstance = 0; + } + + + //----------------------------------------------------------------------------- + // Purpose: Constructor + // Input : unAccountID - 32-bit account ID + // eUniverse - Universe this account belongs to + // eAccountType - Type of account + //----------------------------------------------------------------------------- + CSteamID( uint32 unAccountID, EUniverse eUniverse, EAccountType eAccountType ) + { + Set( unAccountID, eUniverse, eAccountType ); + } + + + //----------------------------------------------------------------------------- + // Purpose: Constructor + // Input : unAccountID - 32-bit account ID + // unAccountInstance - instance + // eUniverse - Universe this account belongs to + // eAccountType - Type of account + //----------------------------------------------------------------------------- + CSteamID( uint32 unAccountID, unsigned int unAccountInstance, EUniverse eUniverse, EAccountType eAccountType ) + { +#if defined(_SERVER) && defined(Assert) + Assert( ( k_EAccountTypeIndividual != eAccountType ) || ( unAccountInstance == k_unSteamUserDefaultInstance ) ); // enforce that for individual accounts, instance is always 1 +#endif // _SERVER + InstancedSet( unAccountID, unAccountInstance, eUniverse, eAccountType ); + } + + + //----------------------------------------------------------------------------- + // Purpose: Constructor + // Input : ulSteamID - 64-bit representation of a Steam ID + // Note: Will not accept a uint32 or int32 as input, as that is a probable mistake. + // See the stubbed out overloads in the private: section for more info. + //----------------------------------------------------------------------------- + CSteamID( uint64 ulSteamID ) + { + SetFromUint64( ulSteamID ); + } +#ifdef INT64_DIFFERENT_FROM_INT64_T + CSteamID( uint64_t ulSteamID ) + { + SetFromUint64( (uint64)ulSteamID ); + } +#endif + + + //----------------------------------------------------------------------------- + // Purpose: Sets parameters for steam ID + // Input : unAccountID - 32-bit account ID + // eUniverse - Universe this account belongs to + // eAccountType - Type of account + //----------------------------------------------------------------------------- + void Set( uint32 unAccountID, EUniverse eUniverse, EAccountType eAccountType ) + { + m_steamid.m_comp.m_unAccountID = unAccountID; + m_steamid.m_comp.m_EUniverse = eUniverse; + m_steamid.m_comp.m_EAccountType = eAccountType; + + if ( eAccountType == k_EAccountTypeClan || eAccountType == k_EAccountTypeGameServer ) + { + m_steamid.m_comp.m_unAccountInstance = 0; + } + else + { + m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDefaultInstance; + } + } + + + //----------------------------------------------------------------------------- + // Purpose: Sets parameters for steam ID + // Input : unAccountID - 32-bit account ID + // eUniverse - Universe this account belongs to + // eAccountType - Type of account + //----------------------------------------------------------------------------- + void InstancedSet( uint32 unAccountID, uint32 unInstance, EUniverse eUniverse, EAccountType eAccountType ) + { + m_steamid.m_comp.m_unAccountID = unAccountID; + m_steamid.m_comp.m_EUniverse = eUniverse; + m_steamid.m_comp.m_EAccountType = eAccountType; + m_steamid.m_comp.m_unAccountInstance = unInstance; + } + + + //----------------------------------------------------------------------------- + // Purpose: Initializes a steam ID from its 52 bit parts and universe/type + // Input : ulIdentifier - 52 bits of goodness + //----------------------------------------------------------------------------- + void FullSet( uint64 ulIdentifier, EUniverse eUniverse, EAccountType eAccountType ) + { + m_steamid.m_comp.m_unAccountID = ( ulIdentifier & k_unSteamAccountIDMask ); // account ID is low 32 bits + m_steamid.m_comp.m_unAccountInstance = ( ( ulIdentifier >> 32 ) & k_unSteamAccountInstanceMask ); // account instance is next 20 bits + m_steamid.m_comp.m_EUniverse = eUniverse; + m_steamid.m_comp.m_EAccountType = eAccountType; + } + + + //----------------------------------------------------------------------------- + // Purpose: Initializes a steam ID from its 64-bit representation + // Input : ulSteamID - 64-bit representation of a Steam ID + //----------------------------------------------------------------------------- + void SetFromUint64( uint64 ulSteamID ) + { + m_steamid.m_unAll64Bits = ulSteamID; + } + + + //----------------------------------------------------------------------------- + // Purpose: Clear all fields, leaving an invalid ID. + //----------------------------------------------------------------------------- + void Clear() + { + m_steamid.m_comp.m_unAccountID = 0; + m_steamid.m_comp.m_EAccountType = k_EAccountTypeInvalid; + m_steamid.m_comp.m_EUniverse = k_EUniverseInvalid; + m_steamid.m_comp.m_unAccountInstance = 0; + } + + //----------------------------------------------------------------------------- + // Purpose: Converts steam ID to its 64-bit representation + // Output : 64-bit representation of a Steam ID + //----------------------------------------------------------------------------- + uint64 ConvertToUint64() const + { + return m_steamid.m_unAll64Bits; + } + + + //----------------------------------------------------------------------------- + // Purpose: Converts the static parts of a steam ID to a 64-bit representation. + // For multiseat accounts, all instances of that account will have the + // same static account key, so they can be grouped together by the static + // account key. + // Output : 64-bit static account key + //----------------------------------------------------------------------------- + uint64 GetStaticAccountKey() const + { + // note we do NOT include the account instance (which is a dynamic property) in the static account key + return (uint64) ( ( ( (uint64) m_steamid.m_comp.m_EUniverse ) << 56 ) + ((uint64) m_steamid.m_comp.m_EAccountType << 52 ) + m_steamid.m_comp.m_unAccountID ); + } + + + //----------------------------------------------------------------------------- + // Purpose: create an anonymous game server login to be filled in by the AM + //----------------------------------------------------------------------------- + void CreateBlankAnonLogon( EUniverse eUniverse ) + { + m_steamid.m_comp.m_unAccountID = 0; + m_steamid.m_comp.m_EAccountType = k_EAccountTypeAnonGameServer; + m_steamid.m_comp.m_EUniverse = eUniverse; + m_steamid.m_comp.m_unAccountInstance = 0; + } + + + //----------------------------------------------------------------------------- + // Purpose: create an anonymous game server login to be filled in by the AM + //----------------------------------------------------------------------------- + void CreateBlankAnonUserLogon( EUniverse eUniverse ) + { + m_steamid.m_comp.m_unAccountID = 0; + m_steamid.m_comp.m_EAccountType = k_EAccountTypeAnonUser; + m_steamid.m_comp.m_EUniverse = eUniverse; + m_steamid.m_comp.m_unAccountInstance = 0; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this an anonymous game server login that will be filled in? + //----------------------------------------------------------------------------- + bool BBlankAnonAccount() const + { + return m_steamid.m_comp.m_unAccountID == 0 && BAnonAccount() && m_steamid.m_comp.m_unAccountInstance == 0; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this a game server account id? (Either persistent or anonymous) + //----------------------------------------------------------------------------- + bool BGameServerAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeGameServer || m_steamid.m_comp.m_EAccountType == k_EAccountTypeAnonGameServer; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this a persistent (not anonymous) game server account id? + //----------------------------------------------------------------------------- + bool BPersistentGameServerAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeGameServer; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this an anonymous game server account id? + //----------------------------------------------------------------------------- + bool BAnonGameServerAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeAnonGameServer; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this a content server account id? + //----------------------------------------------------------------------------- + bool BContentServerAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeContentServer; + } + + + //----------------------------------------------------------------------------- + // Purpose: Is this a clan account id? + //----------------------------------------------------------------------------- + bool BClanAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeClan; + } + + + //----------------------------------------------------------------------------- + // Purpose: Is this a chat account id? + //----------------------------------------------------------------------------- + bool BChatAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeChat; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this a chat account id? + //----------------------------------------------------------------------------- + bool IsLobby() const + { + return ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeChat ) + && ( m_steamid.m_comp.m_unAccountInstance & k_EChatInstanceFlagLobby ); + } + + + //----------------------------------------------------------------------------- + // Purpose: Is this an individual user account id? + //----------------------------------------------------------------------------- + bool BIndividualAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual || m_steamid.m_comp.m_EAccountType == k_EAccountTypeConsoleUser; + } + + + //----------------------------------------------------------------------------- + // Purpose: Is this an anonymous account? + //----------------------------------------------------------------------------- + bool BAnonAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeAnonUser || m_steamid.m_comp.m_EAccountType == k_EAccountTypeAnonGameServer; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this an anonymous user account? ( used to create an account or reset a password ) + //----------------------------------------------------------------------------- + bool BAnonUserAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeAnonUser; + } + + //----------------------------------------------------------------------------- + // Purpose: Is this a faked up Steam ID for a PSN friend account? + //----------------------------------------------------------------------------- + bool BConsoleUserAccount() const + { + return m_steamid.m_comp.m_EAccountType == k_EAccountTypeConsoleUser; + } + + // simple accessors + void SetAccountID( uint32 unAccountID ) { m_steamid.m_comp.m_unAccountID = unAccountID; } + void SetAccountInstance( uint32 unInstance ){ m_steamid.m_comp.m_unAccountInstance = unInstance; } + + AccountID_t GetAccountID() const { return m_steamid.m_comp.m_unAccountID; } + uint32 GetUnAccountInstance() const { return m_steamid.m_comp.m_unAccountInstance; } + EAccountType GetEAccountType() const { return ( EAccountType ) m_steamid.m_comp.m_EAccountType; } + EUniverse GetEUniverse() const { return m_steamid.m_comp.m_EUniverse; } + void SetEUniverse( EUniverse eUniverse ) { m_steamid.m_comp.m_EUniverse = eUniverse; } + bool IsValid() const; + + // this set of functions is hidden, will be moved out of class + explicit CSteamID( const char *pchSteamID, EUniverse eDefaultUniverse = k_EUniverseInvalid ); + const char * Render() const; // renders this steam ID to string + static const char * Render( uint64 ulSteamID ); // static method to render a uint64 representation of a steam ID to a string + + void SetFromString( const char *pchSteamID, EUniverse eDefaultUniverse ); + // SetFromString allows many partially-correct strings, constraining how + // we might be able to change things in the future. + // SetFromStringStrict requires the exact string forms that we support + // and is preferred when the caller knows it's safe to be strict. + // Returns whether the string parsed correctly. + bool SetFromStringStrict( const char *pchSteamID, EUniverse eDefaultUniverse ); + + inline bool operator==( const CSteamID &val ) const { return m_steamid.m_unAll64Bits == val.m_steamid.m_unAll64Bits; } + inline bool operator!=( const CSteamID &val ) const { return !operator==( val ); } + inline bool operator<( const CSteamID &val ) const { return m_steamid.m_unAll64Bits < val.m_steamid.m_unAll64Bits; } + inline bool operator>( const CSteamID &val ) const { return m_steamid.m_unAll64Bits > val.m_steamid.m_unAll64Bits; } + + // DEBUG function + bool BValidExternalSteamID() const; + +private: + // These are defined here to prevent accidental implicit conversion of a u32AccountID to a CSteamID. + // If you get a compiler error about an ambiguous constructor/function then it may be because you're + // passing a 32-bit int to a function that takes a CSteamID. You should explicitly create the SteamID + // using the correct Universe and account Type/Instance values. + CSteamID( uint32 ); + CSteamID( int32 ); + + // 64 bits total + union SteamID_t + { + struct SteamIDComponent_t + { +#ifdef VALVE_BIG_ENDIAN + EUniverse m_EUniverse : 8; // universe this account belongs to + unsigned int m_EAccountType : 4; // type of account - can't show as EAccountType, due to signed / unsigned difference + unsigned int m_unAccountInstance : 20; // dynamic instance ID + uint32 m_unAccountID : 32; // unique account identifier +#else + uint32 m_unAccountID : 32; // unique account identifier + unsigned int m_unAccountInstance : 20; // dynamic instance ID + unsigned int m_EAccountType : 4; // type of account - can't show as EAccountType, due to signed / unsigned difference + EUniverse m_EUniverse : 8; // universe this account belongs to +#endif + } m_comp; + + uint64 m_unAll64Bits; + } m_steamid; +}; + +inline bool CSteamID::IsValid() const +{ + if ( m_steamid.m_comp.m_EAccountType <= k_EAccountTypeInvalid || m_steamid.m_comp.m_EAccountType >= k_EAccountTypeMax ) + return false; + + if ( m_steamid.m_comp.m_EUniverse <= k_EUniverseInvalid || m_steamid.m_comp.m_EUniverse >= k_EUniverseMax ) + return false; + + if ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ) + { + if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance != k_unSteamUserDefaultInstance ) + return false; + } + + if ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeClan ) + { + if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance != 0 ) + return false; + } + + if ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeGameServer ) + { + if ( m_steamid.m_comp.m_unAccountID == 0 ) + return false; + // Any limit on instances? We use them for local users and bots + } + return true; +} + +#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) + +//----------------------------------------------------------------------------- +// Purpose: Initializes a steam ID from a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to convert +// eUniverse - universe this ID belongs to +//----------------------------------------------------------------------------- +inline CSteamID SteamIDFromSteam2UserID( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) +{ + uint32 unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + + pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; + + return CSteamID( unAccountID, k_unSteamUserDefaultInstance, eUniverse, k_EAccountTypeIndividual ); +} + +bool SteamIDFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse, CSteamID *pSteamIDOut ); + +//----------------------------------------------------------------------------- +// Purpose: Fills out a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to write to +//----------------------------------------------------------------------------- +inline TSteamGlobalUserID SteamIDToSteam2UserID( CSteamID steamID ) +{ + TSteamGlobalUserID steamGlobalUserID; + + steamGlobalUserID.m_SteamInstanceID = 0; + steamGlobalUserID.m_SteamLocalUserID.Split.High32bits = steamID.GetAccountID() % 2; + steamGlobalUserID.m_SteamLocalUserID.Split.Low32bits = steamID.GetAccountID() / 2; + + return steamGlobalUserID; +} + + +#endif + +// generic invalid CSteamID +#define k_steamIDNil CSteamID() + +// This steamID comes from a user game connection to an out of date GS that hasnt implemented the protocol +// to provide its steamID +#define k_steamIDOutofDateGS CSteamID( 0, 0, k_EUniverseInvalid, k_EAccountTypeInvalid ) +// This steamID comes from a user game connection to an sv_lan GS +#define k_steamIDLanModeGS CSteamID( 0, 0, k_EUniversePublic, k_EAccountTypeInvalid ) +// This steamID can come from a user game connection to a GS that has just booted but hasnt yet even initialized +// its steam3 component and started logging on. +#define k_steamIDNotInitYetGS CSteamID( 1, 0, k_EUniverseInvalid, k_EAccountTypeInvalid ) +// This steamID can come from a user game connection to a GS that isn't using the steam authentication system but still +// wants to support the "Join Game" option in the friends list +#define k_steamIDNonSteamGS CSteamID( 2, 0, k_EUniverseInvalid, k_EAccountTypeInvalid ) + + +#ifdef STEAM +// Returns the matching chat steamID, with the default instance of 0 +// If the steamID passed in is already of type k_EAccountTypeChat it will be returned with the same instance +CSteamID ChatIDFromSteamID( const CSteamID &steamID ); +// Returns the matching clan steamID, with the default instance of 0 +// If the steamID passed in is already of type k_EAccountTypeClan it will be returned with the same instance +CSteamID ClanIDFromSteamID( const CSteamID &steamID ); +// Asserts steamID type before conversion +CSteamID ChatIDFromClanID( const CSteamID &steamIDClan ); +// Asserts steamID type before conversion +CSteamID ClanIDFromChatID( const CSteamID &steamIDChat ); + +#endif // _STEAM + + +//----------------------------------------------------------------------------- +// Purpose: encapsulates an appID/modID pair +//----------------------------------------------------------------------------- +class CGameID +{ +public: + + enum EGameIDType + { + k_EGameIDTypeApp = 0, + k_EGameIDTypeGameMod = 1, + k_EGameIDTypeShortcut = 2, + k_EGameIDTypeP2P = 3, + }; + + CGameID() + { + m_gameID.m_nType = k_EGameIDTypeApp; + m_gameID.m_nAppID = k_uAppIdInvalid; + m_gameID.m_nModID = 0; + } + + explicit CGameID( uint64 ulGameID ) + { + m_ulGameID = ulGameID; + } +#ifdef INT64_DIFFERENT_FROM_INT64_T + CGameID( uint64_t ulGameID ) + { + m_ulGameID = (uint64)ulGameID; + } +#endif + + explicit CGameID( int32 nAppID ) + { + m_ulGameID = 0; + m_gameID.m_nAppID = nAppID; + } + + explicit CGameID( uint32 nAppID ) + { + m_ulGameID = 0; + m_gameID.m_nAppID = nAppID; + } + + // Not validating anything .. use IsValid() + explicit CGameID( uint32 nAppID, uint32 nModID, CGameID::EGameIDType nType ) + { + m_gameID.m_nAppID = nAppID; + m_gameID.m_nModID = nModID; + m_gameID.m_nType = nType; + } + + CGameID( const CGameID &that ) + { + m_ulGameID = that.m_ulGameID; + } + + CGameID& operator=( const CGameID & that ) + { + m_ulGameID = that.m_ulGameID; + return *this; + } + + // Hidden functions used only by Steam + explicit CGameID( const char *pchGameID ); + const char *Render() const; // render this Game ID to string + static const char *Render( uint64 ulGameID ); // static method to render a uint64 representation of a Game ID to a string + + uint64 ToUint64() const + { + return m_ulGameID; + } + + uint64 *GetUint64Ptr() + { + return &m_ulGameID; + } + + void Set( uint64 ulGameID ) + { + m_ulGameID = ulGameID; + } + + bool IsMod() const + { + return ( m_gameID.m_nType == k_EGameIDTypeGameMod ); + } + + bool IsShortcut() const + { + return ( m_gameID.m_nType == k_EGameIDTypeShortcut ); + } + + bool IsP2PFile() const + { + return ( m_gameID.m_nType == k_EGameIDTypeP2P ); + } + + bool IsSteamApp() const + { + return ( m_gameID.m_nType == k_EGameIDTypeApp ); + } + + uint32 ModID() const + { + return m_gameID.m_nModID; + } + +#if !defined(VALVE_SHORTCUT_DEBUG) + uint32 AppID( bool = false ) const + { + return m_gameID.m_nAppID; + } +#else + uint32 AppID( bool bShortcutOK = false ) const; +#endif + + bool operator == ( const CGameID &rhs ) const + { + return m_ulGameID == rhs.m_ulGameID; + } + + bool operator != ( const CGameID &rhs ) const + { + return !(*this == rhs); + } + + bool operator < ( const CGameID &rhs ) const + { + return ( m_ulGameID < rhs.m_ulGameID ); + } + + bool IsValid() const + { + // each type has it's own invalid fixed point: + switch( m_gameID.m_nType ) + { + case k_EGameIDTypeApp: + return m_gameID.m_nAppID != k_uAppIdInvalid; + + case k_EGameIDTypeGameMod: + return m_gameID.m_nAppID != k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); + + case k_EGameIDTypeShortcut: + return m_gameID.m_nAppID == k_uAppIdInvalid + && (m_gameID.m_nModID & 0x80000000) + && m_gameID.m_nModID >= (5000 | 0x80000000); // k_unMaxExpectedLocalAppId - shortcuts are pushed beyond that range + + case k_EGameIDTypeP2P: + return m_gameID.m_nAppID == k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); + + default: + return false; + } + + } + + void Reset() + { + m_ulGameID = 0; + } + +// +// Internal stuff. Use the accessors above if possible +// + + struct GameID_t + { +#ifdef VALVE_BIG_ENDIAN + unsigned int m_nModID : 32; + unsigned int m_nType : 8; + unsigned int m_nAppID : 24; +#else + unsigned int m_nAppID : 24; + unsigned int m_nType : 8; + unsigned int m_nModID : 32; +#endif + }; + + union + { + uint64 m_ulGameID; + GameID_t m_gameID; + }; + + friend CGameID GameIDFromAppAndModPath( uint32 nAppID, const char *pchModPath ); +}; + +#pragma pack( pop ) + +const int k_cchGameExtraInfoMax = 64; + + +//----------------------------------------------------------------------------- +// Purpose: Passed as argument to SteamAPI_UseBreakpadCrashHandler to enable optional callback +// just before minidump file is captured after a crash has occurred. (Allows app to append additional comment data to the dump, etc.) +//----------------------------------------------------------------------------- +typedef void (*PFNPreMinidumpCallback)(void *context); + + +enum ESteamIPv6ConnectivityProtocol +{ + k_ESteamIPv6ConnectivityProtocol_Invalid = 0, + k_ESteamIPv6ConnectivityProtocol_HTTP = 1, // because a proxy may make this different than other protocols + k_ESteamIPv6ConnectivityProtocol_UDP = 2, // test UDP connectivity. Uses a port that is commonly needed for other Steam stuff. If UDP works, TCP probably works. +}; + +// For the above transport protocol, what do we think the local machine's connectivity to the internet over ipv6 is like +enum ESteamIPv6ConnectivityState +{ + k_ESteamIPv6ConnectivityState_Unknown = 0, // We haven't run a test yet + k_ESteamIPv6ConnectivityState_Good = 1, // We have recently been able to make a request on ipv6 for the given protocol + k_ESteamIPv6ConnectivityState_Bad = 2, // We failed to make a request, either because this machine has no ipv6 address assigned, or it has no upstream connectivity +}; + + +// Define compile time assert macros to let us validate the structure sizes. +#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; + +#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) +// The 32-bit version of gcc has the alignment requirement for uint64 and double set to +// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. +// The 64-bit version of gcc has the alignment requirement for these types set to +// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. +// The 64-bit structure packing has to match the 32-bit structure packing for each platform. +#define VALVE_CALLBACK_PACK_SMALL +#else +#define VALVE_CALLBACK_PACK_LARGE +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error ??? +#endif + +typedef struct ValvePackingSentinel_t +{ + uint32 m_u32; + uint64 m_u64; + uint16 m_u16; + double m_d; +} ValvePackingSentinel_t; + +#pragma pack( pop ) + + +#if defined(VALVE_CALLBACK_PACK_SMALL) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) +#elif defined(VALVE_CALLBACK_PACK_LARGE) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) +#else +#error ??? +#endif + +#endif // STEAMCLIENTPUBLIC_H diff --git a/lsteamclient/steamworks_sdk_163/steamencryptedappticket.h b/lsteamclient/steamworks_sdk_163/steamencryptedappticket.h new file mode 100644 index 00000000000..4419a0bec82 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamencryptedappticket.h @@ -0,0 +1,40 @@ +//========= Copyright © 1996-2010, Valve LLC, All rights reserved. ============ +// +// Purpose: utilities to decode/decrypt a ticket from the +// ISteamUser::RequestEncryptedAppTicket, ISteamUser::GetEncryptedAppTicket API +// +// To use: declare CSteamEncryptedAppTicket, then call BDecryptTicket +// if BDecryptTicket returns true, other accessors are valid +// +//============================================================================= + +#include "steam_api.h" + +static const int k_nSteamEncryptedAppTicketSymmetricKeyLen = 32; + + +S_API bool SteamEncryptedAppTicket_BDecryptTicket( const uint8 *rgubTicketEncrypted, uint32 cubTicketEncrypted, + uint8 *rgubTicketDecrypted, uint32 *pcubTicketDecrypted, + const uint8 rgubKey[k_nSteamEncryptedAppTicketSymmetricKeyLen], int cubKey ); + +S_API bool SteamEncryptedAppTicket_BIsTicketForApp( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, AppId_t nAppID ); + +S_API RTime32 SteamEncryptedAppTicket_GetTicketIssueTime( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API void SteamEncryptedAppTicket_GetTicketSteamID( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, CSteamID *psteamID ); + +S_API AppId_t SteamEncryptedAppTicket_GetTicketAppID( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API bool SteamEncryptedAppTicket_BUserOwnsAppInTicket( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, AppId_t nAppID ); + +S_API bool SteamEncryptedAppTicket_BUserIsVacBanned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API bool SteamEncryptedAppTicket_BGetAppDefinedValue( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pValue ); + +S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); + +S_API bool SteamEncryptedAppTicket_BIsTicketSigned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, const uint8 *pubRSAKey, uint32 cubRSAKey ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseBorrowed( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseTemporary( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); diff --git a/lsteamclient/steamworks_sdk_163/steamhttpenums.h b/lsteamclient/steamworks_sdk_163/steamhttpenums.h new file mode 100644 index 00000000000..13a83493545 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamhttpenums.h @@ -0,0 +1,119 @@ +//====== Copyright © 1996-2010, Valve Corporation, All rights reserved. ======= +// +// Purpose: HTTP related enums, stuff that is shared by both clients and servers, and our +// UI projects goes here. +// +//============================================================================= + +#ifndef STEAMHTTPENUMS_H +#define STEAMHTTPENUMS_H +#ifdef _WIN32 +#pragma once +#endif + +// HTTP related types + +// This enum is used in client API methods, do not re-number existing values. +enum EHTTPMethod +{ + k_EHTTPMethodInvalid = 0, + k_EHTTPMethodGET, + k_EHTTPMethodHEAD, + k_EHTTPMethodPOST, + k_EHTTPMethodPUT, + k_EHTTPMethodDELETE, + k_EHTTPMethodOPTIONS, + k_EHTTPMethodPATCH, + + // The remaining HTTP methods are not yet supported, per rfc2616 section 5.1.1 only GET and HEAD are required for + // a compliant general purpose server. We'll likely add more as we find uses for them. + + // k_EHTTPMethodTRACE, + // k_EHTTPMethodCONNECT +}; + + +// HTTP Status codes that the server can send in response to a request, see rfc2616 section 10.3 for descriptions +// of each of these. +enum EHTTPStatusCode +{ + // Invalid status code (this isn't defined in HTTP, used to indicate unset in our code) + k_EHTTPStatusCodeInvalid = 0, + + // Informational codes + k_EHTTPStatusCode100Continue = 100, + k_EHTTPStatusCode101SwitchingProtocols = 101, + + // Success codes + k_EHTTPStatusCode200OK = 200, + k_EHTTPStatusCode201Created = 201, + k_EHTTPStatusCode202Accepted = 202, + k_EHTTPStatusCode203NonAuthoritative = 203, + k_EHTTPStatusCode204NoContent = 204, + k_EHTTPStatusCode205ResetContent = 205, + k_EHTTPStatusCode206PartialContent = 206, + + // Redirection codes + k_EHTTPStatusCode300MultipleChoices = 300, + k_EHTTPStatusCode301MovedPermanently = 301, + k_EHTTPStatusCode302Found = 302, + k_EHTTPStatusCode303SeeOther = 303, + k_EHTTPStatusCode304NotModified = 304, + k_EHTTPStatusCode305UseProxy = 305, + //k_EHTTPStatusCode306Unused = 306, (used in old HTTP spec, now unused in 1.1) + k_EHTTPStatusCode307TemporaryRedirect = 307, + k_EHTTPStatusCode308PermanentRedirect = 308, + + // Error codes + k_EHTTPStatusCode400BadRequest = 400, + k_EHTTPStatusCode401Unauthorized = 401, // You probably want 403 or something else. 401 implies you're sending a WWW-Authenticate header and the client can sent an Authorization header in response. + k_EHTTPStatusCode402PaymentRequired = 402, // This is reserved for future HTTP specs, not really supported by clients + k_EHTTPStatusCode403Forbidden = 403, + k_EHTTPStatusCode404NotFound = 404, + k_EHTTPStatusCode405MethodNotAllowed = 405, + k_EHTTPStatusCode406NotAcceptable = 406, + k_EHTTPStatusCode407ProxyAuthRequired = 407, + k_EHTTPStatusCode408RequestTimeout = 408, + k_EHTTPStatusCode409Conflict = 409, + k_EHTTPStatusCode410Gone = 410, + k_EHTTPStatusCode411LengthRequired = 411, + k_EHTTPStatusCode412PreconditionFailed = 412, + k_EHTTPStatusCode413RequestEntityTooLarge = 413, + k_EHTTPStatusCode414RequestURITooLong = 414, + k_EHTTPStatusCode415UnsupportedMediaType = 415, + k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416, + k_EHTTPStatusCode417ExpectationFailed = 417, + k_EHTTPStatusCode4xxUnknown = 418, // 418 is reserved, so we'll use it to mean unknown + k_EHTTPStatusCode421MisdirectedRequest = 421, + k_EHTTPStatusCode422UnprocessableContent = 422, + k_EHTTPStatusCode423Locked = 423, + k_EHTTPStatusCode424FailedDependency = 424, + k_EHTTPStatusCode425TooEarly = 425, + k_EHTTPStatusCode426UpgradeRequired = 426, + k_EHTTPStatusCode428PreconditionRequired = 428, + k_EHTTPStatusCode429TooManyRequests = 429, + k_EHTTPStatusCode431RequestHeaderFieldsTooLarge = 431, + k_EHTTPStatusCode444ConnectionClosed = 444, // nginx only? + k_EHTTPStatusCode451UnavailableForLegalReasons = 451, + + // Server error codes + k_EHTTPStatusCode500InternalServerError = 500, + k_EHTTPStatusCode501NotImplemented = 501, + k_EHTTPStatusCode502BadGateway = 502, + k_EHTTPStatusCode503ServiceUnavailable = 503, + k_EHTTPStatusCode504GatewayTimeout = 504, + k_EHTTPStatusCode505HTTPVersionNotSupported = 505, + k_EHTTPStatusCode506VariantAlsoNegotiates = 506, + k_EHTTPStatusCode507InsufficientStorage = 507, + k_EHTTPStatusCode508LoopDetected = 508, + k_EHTTPStatusCode510NotExtended = 510, + k_EHTTPStatusCode511NetworkAuthenticationRequired = 511, + k_EHTTPStatusCode5xxUnknown = 599, +}; + +inline bool BIsHTTPStatusSuccess( EHTTPStatusCode eStatus ) +{ + return eStatus >= 200 && eStatus <= 299; +} + +#endif // STEAMHTTPENUMS_H diff --git a/lsteamclient/steamworks_sdk_163/steamnetworkingfakeip.h b/lsteamclient/steamworks_sdk_163/steamnetworkingfakeip.h new file mode 100644 index 00000000000..0b642734fce --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamnetworkingfakeip.h @@ -0,0 +1,135 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef STEAMNETWORKINGFAKEIP_H +#define STEAMNETWORKINGFAKEIP_H + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +// It is HIGHLY recommended to limit messages sent via Fake UDP port to this +// value. The purpose of a Fake UDP port is to make porting ordinary ad-hoc UDP +// code easier. Although the real MTU might be higher than this, this particular +// conservative value is chosen so that fragmentation won't be occurring and +// hiding performance problems from you. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU = 1200; + +// Messages larger than this size are not allowed and cannot be sent +// via Fake UDP port. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize = 4096; + +//----------------------------------------------------------------------------- +/// ISteamNetworkingFakeUDPPort +/// +/// Acts like a UDP port, sending and receiving datagrams addressed using +/// FakeIP addresses. +/// +/// See: ISteamNetworkingSockets::CreateFakeUDPPort + +class ISteamNetworkingFakeUDPPort +{ +public: + /// Destroy the object and cleanup any internal connections. + /// Note that this function call is not threadsafe with respect + /// to any other method of this interface. (However, in general + /// all other operations are threadsafe with respect to each other.) + virtual void DestroyFakeUDPPort() = 0; + + /// Send a datagram to the specified FakeIP. + /// + /// See ISteamNetworkingSockets::SendMessageToConnection for the meaning of + /// nSendFlags and possible return codes. + /// + /// Notes: + /// - datagrams larger than the underlying MTU are supported, but + /// reliable messages (k_nSteamNetworkingSend_Reliable) are not supported. + /// - You will usually want to use k_nSteamNetworkingSend_NoNagle + /// - k_EResultBusy is returned if this is a "server" port and the global + /// allocation has not yet completed. + /// - k_EResultIPNotFound will be returned if the address is a local/ephemeral + /// address and no existing connection can be found. This can happen if + /// the remote host contacted us without having a global address, and we + /// assigned them a random local address, and then the session with + /// that host timed out. + /// - When initiating communications, the first messages may be sent + /// via backend signaling, or otherwise delayed, while a route is found. + /// Expect the ping time to fluctuate during this period, and it's possible + /// that messages will be delivered out of order (which is also possible with + /// ordinary UDP). + virtual EResult SendMessageToFakeIP( const SteamNetworkingIPAddr &remoteAddress, const void *pData, uint32 cbData, int nSendFlags ) = 0; + + /// Receive messages on the port. + /// + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// + /// SteamNetworkingMessage_t::m_identity in the returned message(s) will always contain + /// a FakeIP. See ISteamNetworkingUtils::GetRealIdentityForFakeIP. + virtual int ReceiveMessages( SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Schedule the internal connection for a given peer to be cleaned up in a few seconds. + /// + /// Idle connections automatically time out, and so this is not strictly *necessary*, + /// but if you have reason to believe that you are done talking to a given peer for + /// a while, you can call this to speed up the timeout. If any remaining packets are + /// sent or received from the peer, the cleanup is canceled and the usual timeout + /// value is restored. Thus you will usually call this immediately after sending + /// or receiving application-layer "close connection" packets. + virtual void ScheduleCleanup( const SteamNetworkingIPAddr &remoteAddress ) = 0; +}; +#define STEAMNETWORKINGFAKEUDPPORT_INTERFACE_VERSION "SteamNetworkingFakeUDPPort001" /* for proton codegen */ + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// A struct used to describe a "fake IP" we have been assigned to +/// use as an identifier. This callback is posted when +/// ISteamNetworkingSoockets::BeginAsyncRequestFakeIP completes. +/// See also ISteamNetworkingSockets::GetFakeIP +struct SteamNetworkingFakeIPResult_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 3 }; + + /// Status/result of the allocation request. Possible failure values are: + /// - k_EResultBusy - you called GetFakeIP but the request has not completed. + /// - k_EResultInvalidParam - you called GetFakeIP with an invalid port index + /// - k_EResultLimitExceeded - You asked for too many ports, or made an + /// additional request after one had already succeeded + /// - k_EResultNoMatch - GetFakeIP was called, but no request has been made + /// + /// Note that, with the exception of k_EResultBusy (if you are polling), + /// it is highly recommended to treat all failures as fatal. + EResult m_eResult; + + /// Local identity of the ISteamNetworkingSockets object that made + /// this request and is assigned the IP. This is needed in the callback + /// in the case where there are multiple ISteamNetworkingSockets objects. + /// (E.g. one for the user, and another for the local gameserver). + SteamNetworkingIdentity m_identity; + + /// Fake IPv4 IP address that we have been assigned. NOTE: this + /// IP address is not exclusively ours! Steam tries to avoid sharing + /// IP addresses, but this may not always be possible. The IP address + /// may be currently in use by another host, but with different port(s). + /// The exact same IP:port address may have been used previously. + /// Steam tries to avoid reusing ports until they have not been in use for + /// some time, but this may not always be possible. + uint32 m_unIP; + + /// Port number(s) assigned to us. Only the first entries will contain + /// nonzero values. Entries corresponding to ports beyond what was + /// allocated for you will be zero. + /// + /// (NOTE: At the time of this writing, the maximum number of ports you may + /// request is 4.) + enum { k_nMaxReturnPorts = 8 }; + uint16 m_unPorts[k_nMaxReturnPorts]; +}; + +#pragma pack( pop ) + +#endif // _H diff --git a/lsteamclient/steamworks_sdk_163/steamnetworkingtypes.h b/lsteamclient/steamworks_sdk_163/steamnetworkingtypes.h new file mode 100644 index 00000000000..37d331486c1 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamnetworkingtypes.h @@ -0,0 +1,1919 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef STEAMNETWORKINGTYPES +#define STEAMNETWORKINGTYPES + +#include +#include +#include "steamtypes.h" +#include "steamclientpublic.h" + +//----------------------------------------------------------------------------- +// SteamNetworkingSockets config. +#if !defined(STEAMNETWORKINGSOCKETS_STANDALONELIB) && !defined(STEAMNETWORKINGSOCKETS_STEAMAPI) + #define STEAMNETWORKINGSOCKETS_STEAMAPI +#endif +//----------------------------------------------------------------------------- + +#ifdef NN_NINTENDO_SDK // We always static link on Nintendo + #define STEAMNETWORKINGSOCKETS_STATIC_LINK +#endif +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" +#elif defined( STEAMNETWORKINGSOCKETS_FOREXPORT ) + #if defined( _WIN32 ) || defined( __ORBIS__ ) || defined( __PROSPERO__ ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllexport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __attribute__((visibility("default"))) + #endif +#else + #ifdef _WIN32 + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllimport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" + #endif +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +struct SteamDatagramRelayAuthTicket; +struct SteamDatagramHostedAddress; +struct SteamDatagramGameCoordinatorServerLogin; +struct SteamNetConnectionStatusChangedCallback_t; +struct SteamNetAuthenticationStatus_t; +struct SteamRelayNetworkStatus_t; +struct SteamNetworkingMessagesSessionRequest_t; +struct SteamNetworkingMessagesSessionFailed_t; +struct SteamNetworkingFakeIPResult_t; + +typedef void (*FnSteamNetConnectionStatusChanged)( SteamNetConnectionStatusChangedCallback_t * ); +typedef void (*FnSteamNetAuthenticationStatusChanged)( SteamNetAuthenticationStatus_t * ); +typedef void (*FnSteamRelayNetworkStatusChanged)(SteamRelayNetworkStatus_t *); +typedef void (*FnSteamNetworkingMessagesSessionRequest)(SteamNetworkingMessagesSessionRequest_t *); +typedef void (*FnSteamNetworkingMessagesSessionFailed)(SteamNetworkingMessagesSessionFailed_t *); +typedef void (*FnSteamNetworkingFakeIPResult)(SteamNetworkingFakeIPResult_t *); + +/// Handle used to identify a connection to a remote host. +typedef uint32 HSteamNetConnection; +const HSteamNetConnection k_HSteamNetConnection_Invalid = 0; + +/// Handle used to identify a "listen socket". Unlike traditional +/// Berkeley sockets, a listen socket and a connection are two +/// different abstractions. +typedef uint32 HSteamListenSocket; +const HSteamListenSocket k_HSteamListenSocket_Invalid = 0; + +/// Handle used to identify a poll group, used to query many +/// connections at once efficiently. +typedef uint32 HSteamNetPollGroup; +const HSteamNetPollGroup k_HSteamNetPollGroup_Invalid = 0; + +/// Max length of diagnostic error message +const int k_cchMaxSteamNetworkingErrMsg = 1024; + +/// Used to return English-language diagnostic error messages to caller. +/// (For debugging or spewing to a console, etc. Not intended for UI.) +typedef char SteamNetworkingErrMsg[ k_cchMaxSteamNetworkingErrMsg ]; + +/// Identifier used for a network location point of presence. (E.g. a Valve data center.) +/// Typically you won't need to directly manipulate these. +typedef uint32 SteamNetworkingPOPID; + +/// A local timestamp. You can subtract two timestamps to get the number of elapsed +/// microseconds. This is guaranteed to increase over time during the lifetime +/// of a process, but not globally across runs. You don't need to worry about +/// the value wrapping around. Note that the underlying clock might not actually have +/// microsecond resolution. +typedef int64 SteamNetworkingMicroseconds; + +/// Describe the status of a particular network resource +enum ESteamNetworkingAvailability +{ + // Negative values indicate a problem. + // + // In general, we will not automatically retry unless you take some action that + // depends on of requests this resource, such as querying the status, attempting + // to initiate a connection, receive a connection, etc. If you do not take any + // action at all, we do not automatically retry in the background. + k_ESteamNetworkingAvailability_CannotTry = -102, // A dependent resource is missing, so this service is unavailable. (E.g. we cannot talk to routers because Internet is down or we don't have the network config.) + k_ESteamNetworkingAvailability_Failed = -101, // We have tried for enough time that we would expect to have been successful by now. We have never been successful + k_ESteamNetworkingAvailability_Previously = -100, // We tried and were successful at one time, but now it looks like we have a problem + + k_ESteamNetworkingAvailability_Retrying = -10, // We previously failed and are currently retrying + + // Not a problem, but not ready either + k_ESteamNetworkingAvailability_NeverTried = 1, // We don't know because we haven't ever checked/tried + k_ESteamNetworkingAvailability_Waiting = 2, // We're waiting on a dependent resource to be acquired. (E.g. we cannot obtain a cert until we are logged into Steam. We cannot measure latency to relays until we have the network config.) + k_ESteamNetworkingAvailability_Attempting = 3, // We're actively trying now, but are not yet successful. + + k_ESteamNetworkingAvailability_Current = 100, // Resource is online/available + + + k_ESteamNetworkingAvailability_Unknown = 0, // Internal dummy/sentinel, or value is not applicable in this context + k_ESteamNetworkingAvailability__Force32bit = 0x7fffffff, +}; + +// +// Describing network hosts +// + +/// Different methods of describing the identity of a network host +enum ESteamNetworkingIdentityType +{ + // Dummy/empty/invalid. + // Please note that if we parse a string that we don't recognize + // but that appears reasonable, we will NOT use this type. Instead + // we'll use k_ESteamNetworkingIdentityType_UnknownType. + k_ESteamNetworkingIdentityType_Invalid = 0, + + // + // Basic platform-specific identifiers. + // + k_ESteamNetworkingIdentityType_SteamID = 16, // 64-bit CSteamID + k_ESteamNetworkingIdentityType_XboxPairwiseID = 17, // Publisher-specific user identity, as string + k_ESteamNetworkingIdentityType_SonyPSN = 18, // 64-bit ID + + // + // Special identifiers. + // + + // Use their IP address (and port) as their "identity". + // These types of identities are always unauthenticated. + // They are useful for porting plain sockets code, and other + // situations where you don't care about authentication. In this + // case, the local identity will be "localhost", + // and the remote address will be their network address. + // + // We use the same type for either IPv4 or IPv6, and + // the address is always store as IPv6. We use IPv4 + // mapped addresses to handle IPv4. + k_ESteamNetworkingIdentityType_IPAddress = 1, + + // Generic string/binary blobs. It's up to your app to interpret this. + // This library can tell you if the remote host presented a certificate + // signed by somebody you have chosen to trust, with this identity on it. + // It's up to you to ultimately decide what this identity means. + k_ESteamNetworkingIdentityType_GenericString = 2, + k_ESteamNetworkingIdentityType_GenericBytes = 3, + + // This identity type is used when we parse a string that looks like is a + // valid identity, just of a kind that we don't recognize. In this case, we + // can often still communicate with the peer! Allowing such identities + // for types we do not recognize useful is very useful for forward + // compatibility. + k_ESteamNetworkingIdentityType_UnknownType = 4, + + // Make sure this enum is stored in an int. + k_ESteamNetworkingIdentityType__Force32bit = 0x7fffffff, +}; + +/// "Fake IPs" are assigned to hosts, to make it easier to interface with +/// older code that assumed all hosts will have an IPv4 address +enum ESteamNetworkingFakeIPType +{ + k_ESteamNetworkingFakeIPType_Invalid, // Error, argument was not even an IP address, etc. + k_ESteamNetworkingFakeIPType_NotFake, // Argument was a valid IP, but was not from the reserved "fake" range + k_ESteamNetworkingFakeIPType_GlobalIPv4, // Globally unique (for a given app) IPv4 address. Address space managed by Steam + k_ESteamNetworkingFakeIPType_LocalIPv4, // Locally unique IPv4 address. Address space managed by the local process. For internal use only; should not be shared! + + k_ESteamNetworkingFakeIPType__Force32Bit = 0x7fffffff +}; + +#pragma pack(push,1) + +/// Store an IP and port. IPv6 is always used; IPv4 is represented using +/// "IPv4-mapped" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd +/// (RFC 4291 section 2.5.5.2.) +struct SteamNetworkingIPAddr +{ + void Clear(); // Set everything to zero. E.g. [::]:0 + bool IsIPv6AllZeros() const; // Return true if the IP is ::0. (Doesn't check port.) + void SetIPv6( const uint8 *ipv6, uint16 nPort ); // Set IPv6 address. IP is interpreted as bytes, so there are no endian issues. (Same as inaddr_in6.) The IP can be a mapped IPv4 address + void SetIPv4( uint32 nIP, uint16 nPort ); // Sets to IPv4 mapped address. IP and port are in host byte order. + bool IsIPv4() const; // Return true if IP is mapped IPv4 + uint32 GetIPv4() const; // Returns IP in host byte order (e.g. aa.bb.cc.dd as 0xaabbccdd). Returns 0 if IP is not mapped IPv4. + void SetIPv6LocalHost( uint16 nPort = 0); // Set to the IPv6 localhost address ::1, and the specified port. + bool IsLocalHost() const; // Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + + // Max length of the buffer needed to hold IP formatted using ToString, including '\0' + // ([0123:4567:89ab:cdef:0123:4567:89ab:cdef]:12345) + enum { k_cchMaxString = 48 }; + + /// Print to a string, with or without the port. Mapped IPv4 addresses are printed + /// as dotted decimal (12.34.56.78), otherwise this will print the canonical + /// form according to RFC5952. If you include the port, IPv6 will be surrounded by + /// brackets, e.g. [::1:2]:80. Your buffer should be at least k_cchMaxString bytes + /// to avoid truncation + /// + /// See also SteamNetworkingIdentityRender + inline void ToString( char *buf, size_t cbBuf, bool bWithPort ) const; + + /// Parse an IP address and optional port. If a port is not present, it is set to 0. + /// (This means that you cannot tell if a zero port was explicitly specified.) + inline bool ParseString( const char *pszStr ); + + /// RFC4038, section 4.2 + struct IPv4MappedAddress { + uint64 m_8zeros; + uint16 m_0000; + uint16 m_ffff; + uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order + }; + + union + { + uint8 m_ipv6[ 16 ]; + IPv4MappedAddress m_ipv4; + } data; + uint16 m_port; // Host byte order + + /// See if two addresses are identical + bool operator==(const SteamNetworkingIPAddr &x ) const; + + /// Classify address as FakeIP. This function never returns + /// k_ESteamNetworkingFakeIPType_Invalid. + ESteamNetworkingFakeIPType GetFakeIPType() const; + + /// Return true if we are a FakeIP + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } +}; + +/// An abstract way to represent the identity of a network host. All identities can +/// be represented as simple string. Furthermore, this string representation is actually +/// used on the wire in several places, even though it is less efficient, in order to +/// facilitate forward compatibility. (Old client code can handle an identity type that +/// it doesn't understand.) +struct SteamNetworkingIdentity +{ + /// Type of identity. + ESteamNetworkingIdentityType m_eType; + + // + // Get/Set in various formats. + // + + void Clear(); + bool IsInvalid() const; // Return true if we are the invalid type. Does not make any other validity checks (e.g. is SteamID actually valid) + + void SetSteamID( CSteamID steamID ); + CSteamID GetSteamID() const; // Return black CSteamID (!IsValid()) if identity is not a SteamID + void SetSteamID64( uint64 steamID ); // Takes SteamID as raw 64-bit number + uint64 GetSteamID64() const; // Returns 0 if identity is not SteamID + + bool SetXboxPairwiseID( const char *pszString ); // Returns false if invalid length + const char *GetXboxPairwiseID() const; // Returns nullptr if not Xbox ID + + void SetPSNID( uint64 id ); + uint64 GetPSNID() const; // Returns 0 if not PSN + + void SetIPAddr( const SteamNetworkingIPAddr &addr ); // Set to specified IP:port + const SteamNetworkingIPAddr *GetIPAddr() const; // returns null if we are not an IP address. + void SetIPv4Addr( uint32 nIPv4, uint16 nPort ); // Set to specified IPv4:port + uint32 GetIPv4() const; // returns 0 if we are not an IPv4 address. + + ESteamNetworkingFakeIPType GetFakeIPType() const; + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } + + // "localhost" is equivalent for many purposes to "anonymous." Our remote + // will identify us by the network address we use. + void SetLocalHost(); // Set to localhost. (We always use IPv6 ::1 for this, not 127.0.0.1) + bool IsLocalHost() const; // Return true if this identity is localhost. + + bool SetGenericString( const char *pszString ); // Returns false if invalid length + const char *GetGenericString() const; // Returns nullptr if not generic string type + + bool SetGenericBytes( const void *data, size_t cbLen ); // Returns false if invalid size. + const uint8 *GetGenericBytes( int &cbLen ) const; // Returns null if not generic bytes type + + /// See if two identities are identical + bool operator==(const SteamNetworkingIdentity &x ) const; + + /// Print to a human-readable string. This is suitable for debug messages + /// or any other time you need to encode the identity as a string. It has a + /// URL-like format (type:). Your buffer should be at least + /// k_cchMaxString bytes big to avoid truncation. + /// + /// See also SteamNetworkingIPAddrRender + void ToString( char *buf, size_t cbBuf ) const; + + /// Parse back a string that was generated using ToString. If we don't understand the + /// string, but it looks "reasonable" (it matches the pattern type: and doesn't + /// have any funky characters, etc), then we will return true, and the type is set to + /// k_ESteamNetworkingIdentityType_UnknownType. false will only be returned if the string + /// looks invalid. + bool ParseString( const char *pszStr ); + + // Max sizes + enum { + k_cchMaxString = 128, // Max length of the buffer needed to hold any identity, formatted in string format by ToString + k_cchMaxGenericString = 32, // Max length of the string for generic string identities. Including terminating '\0' + k_cchMaxXboxPairwiseID = 33, // Including terminating '\0' + k_cbMaxGenericBytes = 32, + }; + + // + // Internal representation. Don't access this directly, use the accessors! + // + // Number of bytes that are relevant below. This MUST ALWAYS be + // set. (Use the accessors!) This is important to enable old code to work + // with new identity types. + int m_cbSize; + union { + uint64 m_steamID64; + uint64 m_PSNID; + char m_szGenericString[ k_cchMaxGenericString ]; + char m_szXboxPairwiseID[ k_cchMaxXboxPairwiseID ]; + uint8 m_genericBytes[ k_cbMaxGenericBytes ]; + char m_szUnknownRawString[ k_cchMaxString ]; + SteamNetworkingIPAddr m_ip; + uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion + } data; +}; +#pragma pack(pop) + +// +// Connection status +// + +/// High level connection status +enum ESteamNetworkingConnectionState +{ + + /// Dummy value used to indicate an error condition in the API. + /// Specified connection doesn't exist or has already been closed. + k_ESteamNetworkingConnectionState_None = 0, + + /// We are trying to establish whether peers can talk to each other, + /// whether they WANT to talk to each other, perform basic auth, + /// and exchange crypt keys. + /// + /// - For connections on the "client" side (initiated locally): + /// We're in the process of trying to establish a connection. + /// Depending on the connection type, we might not know who they are. + /// Note that it is not possible to tell if we are waiting on the + /// network to complete handshake packets, or for the application layer + /// to accept the connection. + /// + /// - For connections on the "server" side (accepted through listen socket): + /// We have completed some basic handshake and the client has presented + /// some proof of identity. The connection is ready to be accepted + /// using AcceptConnection(). + /// + /// In either case, any unreliable packets sent now are almost certain + /// to be dropped. Attempts to receive packets are guaranteed to fail. + /// You may send messages if the send mode allows for them to be queued. + /// but if you close the connection before the connection is actually + /// established, any queued messages will be discarded immediately. + /// (We will not attempt to flush the queue and confirm delivery to the + /// remote host, which ordinarily happens when a connection is closed.) + k_ESteamNetworkingConnectionState_Connecting = 1, + + /// Some connection types use a back channel or trusted 3rd party + /// for earliest communication. If the server accepts the connection, + /// then these connections switch into the rendezvous state. During this + /// state, we still have not yet established an end-to-end route (through + /// the relay network), and so if you send any messages unreliable, they + /// are going to be discarded. + k_ESteamNetworkingConnectionState_FindingRoute = 2, + + /// We've received communications from our peer (and we know + /// who they are) and are all good. If you close the connection now, + /// we will make our best effort to flush out any reliable sent data that + /// has not been acknowledged by the peer. (But note that this happens + /// from within the application process, so unlike a TCP connection, you are + /// not totally handing it off to the operating system to deal with it.) + k_ESteamNetworkingConnectionState_Connected = 3, + + /// Connection has been closed by our peer, but not closed locally. + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. If there are any messages in the inbound queue, + /// you may retrieve them. Otherwise, nothing may be done with the connection + /// except to close it. + /// + /// This stats is similar to CLOSE_WAIT in the TCP state machine. + k_ESteamNetworkingConnectionState_ClosedByPeer = 4, + + /// A disruption in the connection has been detected locally. (E.g. timeout, + /// local internet connection disrupted, etc.) + /// + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. + /// + /// Attempts to send further messages will fail. Any remaining received messages + /// in the queue are available. + k_ESteamNetworkingConnectionState_ProblemDetectedLocally = 5, + +// +// The following values are used internally and will not be returned by any API. +// We document them here to provide a little insight into the state machine that is used +// under the hood. +// + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. All reliable data has been flushed, or else + /// we've given up and discarded it. We do not yet know for sure that the peer knows + /// the connection has been closed, however, so we're just hanging around so that if we do + /// get a packet from them, we can send them the appropriate packets so that they can + /// know why the connection was closed (and not have to rely on a timeout, which makes + /// it appear as if something is wrong). + k_ESteamNetworkingConnectionState_FinWait = -1, + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. From a network perspective, however, on the wire, + /// we have not yet given any indication to the peer that the connection is closed. + /// We are in the process of flushing out the last bit of reliable data. Once that is done, + /// we will inform the peer that the connection has been closed, and transition to the + /// FinWait state. + /// + /// Note that no indication is given to the remote host that we have closed the connection, + /// until the data has been flushed. If the remote host attempts to send us data, we will + /// do whatever is necessary to keep the connection alive until it can be closed properly. + /// But in fact the data will be discarded, since there is no way for the application to + /// read it back. Typically this is not a problem, as application protocols that utilize + /// the lingering functionality are designed for the remote host to wait for the response + /// before sending any more data. + k_ESteamNetworkingConnectionState_Linger = -2, + + /// Connection is completely inactive and ready to be destroyed + k_ESteamNetworkingConnectionState_Dead = -3, + + k_ESteamNetworkingConnectionState__Force32Bit = 0x7fffffff +}; + +/// Enumerate various causes of connection termination. These are designed to work similar +/// to HTTP error codes: the numeric range gives you a rough classification as to the source +/// of the problem. +enum ESteamNetConnectionEnd +{ + // Invalid/sentinel value + k_ESteamNetConnectionEnd_Invalid = 0, + + // + // Application codes. These are the values you will pass to + // ISteamNetworkingSockets::CloseConnection. You can use these codes if + // you want to plumb through application-specific reason codes. If you don't + // need this facility, feel free to always pass + // k_ESteamNetConnectionEnd_App_Generic. + // + // The distinction between "normal" and "exceptional" termination is + // one you may use if you find useful, but it's not necessary for you + // to do so. The only place where we distinguish between normal and + // exceptional is in connection analytics. If a significant + // proportion of connections terminates in an exceptional manner, + // this can trigger an alert. + // + + // 1xxx: Application ended the connection in a "usual" manner. + // E.g.: user intentionally disconnected from the server, + // gameplay ended normally, etc + k_ESteamNetConnectionEnd_App_Min = 1000, + k_ESteamNetConnectionEnd_App_Generic = k_ESteamNetConnectionEnd_App_Min, + // Use codes in this range for "normal" disconnection + k_ESteamNetConnectionEnd_App_Max = 1999, + + // 2xxx: Application ended the connection in some sort of exceptional + // or unusual manner that might indicate a bug or configuration + // issue. + // + k_ESteamNetConnectionEnd_AppException_Min = 2000, + k_ESteamNetConnectionEnd_AppException_Generic = k_ESteamNetConnectionEnd_AppException_Min, + // Use codes in this range for "unusual" disconnection + k_ESteamNetConnectionEnd_AppException_Max = 2999, + + // + // System codes. These will be returned by the system when + // the connection state is k_ESteamNetworkingConnectionState_ClosedByPeer + // or k_ESteamNetworkingConnectionState_ProblemDetectedLocally. It is + // illegal to pass a code in this range to ISteamNetworkingSockets::CloseConnection + // + + // 3xxx: Connection failed or ended because of problem with the + // local host or their connection to the Internet. + k_ESteamNetConnectionEnd_Local_Min = 3000, + + // You cannot do what you want to do because you're running in offline mode. + k_ESteamNetConnectionEnd_Local_OfflineMode = 3001, + + // We're having trouble contacting many (perhaps all) relays. + // Since it's unlikely that they all went offline at once, the best + // explanation is that we have a problem on our end. Note that we don't + // bother distinguishing between "many" and "all", because in practice, + // it takes time to detect a connection problem, and by the time + // the connection has timed out, we might not have been able to + // actively probe all of the relay clusters, even if we were able to + // contact them at one time. So this code just means that: + // + // * We don't have any recent successful communication with any relay. + // * We have evidence of recent failures to communicate with multiple relays. + k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity = 3002, + + // A hosted server is having trouble talking to the relay + // that the client was using, so the problem is most likely + // on our end + k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay = 3003, + + // We're not able to get the SDR network config. This is + // *almost* always a local issue, since the network config + // comes from the CDN, which is pretty darn reliable. + k_ESteamNetConnectionEnd_Local_NetworkConfig = 3004, + + // Steam rejected our request because we don't have rights + // to do this. + k_ESteamNetConnectionEnd_Local_Rights = 3005, + + // ICE P2P rendezvous failed because we were not able to + // determine our "public" address (e.g. reflexive address via STUN) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses = 3006, + + k_ESteamNetConnectionEnd_Local_Max = 3999, + + // 4xxx: Connection failed or ended, and it appears that the + // cause does NOT have to do with the local host or their + // connection to the Internet. It could be caused by the + // remote host, or it could be somewhere in between. + k_ESteamNetConnectionEnd_Remote_Min = 4000, + + // The connection was lost, and as far as we can tell our connection + // to relevant services (relays) has not been disrupted. This doesn't + // mean that the problem is "their fault", it just means that it doesn't + // appear that we are having network issues on our end. + k_ESteamNetConnectionEnd_Remote_Timeout = 4001, + + // Something was invalid with the cert or crypt handshake + // info you gave me, I don't understand or like your key types, + // etc. + k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002, + + // You presented me with a cert that was I was able to parse + // and *technically* we could use encrypted communication. + // But there was a problem that prevents me from checking your identity + // or ensuring that somebody int he middle can't observe our communication. + // E.g.: - the CA key was missing (and I don't accept unsigned certs) + // - The CA key isn't one that I trust, + // - The cert doesn't was appropriately restricted by app, user, time, data center, etc. + // - The cert wasn't issued to you. + // - etc + k_ESteamNetConnectionEnd_Remote_BadCert = 4003, + + // These will never be returned + //k_ESteamNetConnectionEnd_Remote_NotLoggedIn_DEPRECATED = 4004, + //k_ESteamNetConnectionEnd_Remote_NotRunningApp_DEPRECATED = 4005, + + // Something wrong with the protocol version you are using. + // (Probably the code you are running is too old.) + k_ESteamNetConnectionEnd_Remote_BadProtocolVersion = 4006, + + // NAT punch failed failed because we never received any public + // addresses from the remote host. (But we did receive some + // signals form them.) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses = 4007, + + k_ESteamNetConnectionEnd_Remote_Max = 4999, + + // 5xxx: Connection failed for some other reason. + k_ESteamNetConnectionEnd_Misc_Min = 5000, + + // A failure that isn't necessarily the result of a software bug, + // but that should happen rarely enough that it isn't worth specifically + // writing UI or making a localized message for. + // The debug string should contain further details. + k_ESteamNetConnectionEnd_Misc_Generic = 5001, + + // Generic failure that is most likely a software bug. + k_ESteamNetConnectionEnd_Misc_InternalError = 5002, + + // The connection to the remote host timed out, but we + // don't know if the problem is on our end, in the middle, + // or on their end. + k_ESteamNetConnectionEnd_Misc_Timeout = 5003, + + //k_ESteamNetConnectionEnd_Misc_RelayConnectivity_DEPRECATED = 5004, + + // There's some trouble talking to Steam. + k_ESteamNetConnectionEnd_Misc_SteamConnectivity = 5005, + + // A server in a dedicated hosting situation has no relay sessions + // active with which to talk back to a client. (It's the client's + // job to open and maintain those sessions.) + k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient = 5006, + + // While trying to initiate a connection, we never received + // *any* communication from the peer. + //k_ESteamNetConnectionEnd_Misc_ServerNeverReplied = 5007, + + // P2P rendezvous failed in a way that we don't have more specific + // information + k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous = 5008, + + // NAT punch failed, probably due to NAT/firewall configuration. + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall = 5009, + + // Our peer replied that it has no record of the connection. + // This should not happen ordinarily, but can happen in a few + // exception cases: + // + // - This is an old connection, and the peer has already cleaned + // up and forgotten about it. (Perhaps it timed out and they + // closed it and were not able to communicate this to us.) + // - A bug or internal protocol error has caused us to try to + // talk to the peer about the connection before we received + // confirmation that the peer has accepted the connection. + // - The peer thinks that we have closed the connection for some + // reason (perhaps a bug), and believes that is it is + // acknowledging our closure. + k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection = 5010, + + k_ESteamNetConnectionEnd_Misc_Max = 5999, + + k_ESteamNetConnectionEnd__Force32Bit = 0x7fffffff +}; + +/// Max length, in bytes (including null terminator) of the reason string +/// when a connection is closed. +const int k_cchSteamNetworkingMaxConnectionCloseReason = 128; + +/// Max length, in bytes (include null terminator) of debug description +/// of a connection. +const int k_cchSteamNetworkingMaxConnectionDescription = 128; + +/// Max length of the app's part of the description +const int k_cchSteamNetworkingMaxConnectionAppName = 32; + +const int k_nSteamNetworkConnectionInfoFlags_Unauthenticated = 1; // We don't have a certificate for the remote host. +const int k_nSteamNetworkConnectionInfoFlags_Unencrypted = 2; // Information is being sent out over a wire unencrypted (by this library) +const int k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers = 4; // Internal loopback buffers. Won't be true for localhost. (You can check the address to determine that.) This implies k_nSteamNetworkConnectionInfoFlags_FastLAN +const int k_nSteamNetworkConnectionInfoFlags_Fast = 8; // The connection is "fast" and "reliable". Either internal/localhost (check the address to find out), or the peer is on the same LAN. (Probably. It's based on the address and the ping time, this is actually hard to determine unambiguously). +const int k_nSteamNetworkConnectionInfoFlags_Relayed = 16; // The connection is relayed somehow (SDR or TURN). +const int k_nSteamNetworkConnectionInfoFlags_DualWifi = 32; // We're taking advantage of dual-wifi multi-path + +/// Describe the state of a connection. +struct SteamNetConnectionInfo_t +{ + + /// Who is on the other end? Depending on the connection type and phase of the connection, we might not know + SteamNetworkingIdentity m_identityRemote; + + /// Arbitrary user data set by the local application code + int64 m_nUserData; + + /// Handle to listen socket this was connected on, or k_HSteamListenSocket_Invalid if we initiated the connection + HSteamListenSocket m_hListenSocket; + + /// Remote address. Might be all 0's if we don't know it, or if this is N/A. + /// (E.g. Basically everything except direct UDP connection.) + SteamNetworkingIPAddr m_addrRemote; + uint16 m__pad1; + + /// What data center is the remote host in? (0 if we don't know.) + SteamNetworkingPOPID m_idPOPRemote; + + /// What relay are we using to communicate with the remote host? + /// (0 if not applicable.) + SteamNetworkingPOPID m_idPOPRelay; + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Basic cause of the connection termination or problem. + /// See ESteamNetConnectionEnd for the values used + int m_eEndReason; + + /// Human-readable, but non-localized explanation for connection + /// termination or problem. This is intended for debugging / + /// diagnostic purposes only, not to display to users. It might + /// have some details specific to the issue. + char m_szEndDebug[ k_cchSteamNetworkingMaxConnectionCloseReason ]; + + /// Debug description. This includes the internal connection ID, + /// connection type (and peer information), and any name + /// given to the connection by the app. This string is used in various + /// internal logging messages. + /// + /// Note that the connection ID *usually* matches the HSteamNetConnection + /// handle, but in certain cases with symmetric connections it might not. + char m_szConnectionDescription[ k_cchSteamNetworkingMaxConnectionDescription ]; + + /// Misc flags. Bitmask of k_nSteamNetworkConnectionInfoFlags_Xxxx + int m_nFlags; + + /// Internal stuff, room to change API easily + uint32 reserved[63]; +}; + +/// Quick connection state, pared down to something you could call +/// more frequently without it being too big of a perf hit. +struct SteamNetConnectionRealTimeStatus_t +{ + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Current ping (ms) + int m_nPing; + + /// Connection quality measured locally, 0...1. (Percentage of packets delivered + /// end-to-end in order). + float m_flConnectionQualityLocal; + + /// Packet delivery success rate as observed from remote host + float m_flConnectionQualityRemote; + + /// Current data rates from recent history. + float m_flOutPacketsPerSec; + float m_flOutBytesPerSec; + float m_flInPacketsPerSec; + float m_flInBytesPerSec; + + /// Estimate rate that we believe that we can send data to our peer. + /// Note that this could be significantly higher than m_flOutBytesPerSec, + /// meaning the capacity of the channel is higher than you are sending data. + /// (That's OK!) + int m_nSendRateBytesPerSecond; + + /// Number of bytes pending to be sent. This is data that you have recently + /// requested to be sent but has not yet actually been put on the wire. The + /// reliable number ALSO includes data that was previously placed on the wire, + /// but has now been scheduled for re-transmission. Thus, it's possible to + /// observe m_cbPendingReliable increasing between two checks, even if no + /// calls were made to send reliable data between the checks. Data that is + /// awaiting the Nagle delay will appear in these numbers. + int m_cbPendingUnreliable; + int m_cbPendingReliable; + + /// Number of bytes of reliable data that has been placed the wire, but + /// for which we have not yet received an acknowledgment, and thus we may + /// have to re-transmit. + int m_cbSentUnackedReliable; + + /// If you queued a message right now, approximately how long would that message + /// wait in the queue before we actually started putting its data on the wire in + /// a packet? + /// + /// In general, data that is sent by the application is limited by the bandwidth + /// of the channel. If you send data faster than this, it must be queued and + /// put on the wire at a metered rate. Even sending a small amount of data (e.g. + /// a few MTU, say ~3k) will require some of the data to be delayed a bit. + /// + /// Ignoring multiple lanes, the estimated delay will be approximately equal to + /// + /// ( m_cbPendingUnreliable+m_cbPendingReliable ) / m_nSendRateBytesPerSecond + /// + /// plus or minus one MTU. It depends on how much time has elapsed since the last + /// packet was put on the wire. For example, the queue might have *just* been emptied, + /// and the last packet placed on the wire, and we are exactly up against the send + /// rate limit. In that case we might need to wait for one packet's worth of time to + /// elapse before we can send again. On the other extreme, the queue might have data + /// in it waiting for Nagle. (This will always be less than one packet, because as + /// soon as we have a complete packet we would send it.) In that case, we might be + /// ready to send data now, and this value will be 0. + /// + /// This value is only valid if multiple lanes are not used. If multiple lanes are + /// in use, then the queue time will be different for each lane, and you must use + /// the value in SteamNetConnectionRealTimeLaneStatus_t. + /// + /// Nagle delay is ignored for the purposes of this calculation. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[16]; +}; + +/// Quick status of a particular lane +struct SteamNetConnectionRealTimeLaneStatus_t +{ + // Counters for this particular lane. See the corresponding variables + // in SteamNetConnectionRealTimeStatus_t + int m_cbPendingUnreliable; + int m_cbPendingReliable; + int m_cbSentUnackedReliable; + int _reservePad1; // Reserved for future use + + /// Lane-specific queue time. This value takes into consideration lane priorities + /// and weights, and how much data is queued in each lane, and attempts to predict + /// how any data currently queued will be sent out. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[10]; +}; + +#pragma pack( pop ) + +// +// Network messages +// + +/// Max size of a single message that we can SEND. +/// Note: We might be wiling to receive larger messages, +/// and our peer might, too. +const int k_cbMaxSteamNetworkingSocketsMessageSizeSend = 512 * 1024; + +/// A message that has been received. +struct SteamNetworkingMessage_t +{ + + /// Message payload + void *m_pData; + + /// Size of the payload. + int m_cbSize; + + /// For messages received on connections: what connection did this come from? + /// For outgoing messages: what connection to send it to? + /// Not used when using the ISteamNetworkingMessages interface + HSteamNetConnection m_conn; + + /// For inbound messages: Who sent this to us? + /// For outbound messages on connections: not used. + /// For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to? + SteamNetworkingIdentity m_identityPeer; + + /// For messages received on connections, this is the user data + /// associated with the connection. + /// + /// This is *usually* the same as calling GetConnection() and then + /// fetching the user data associated with that connection, but for + /// the following subtle differences: + /// + /// - This user data will match the connection's user data at the time + /// is captured at the time the message is returned by the API. + /// If you subsequently change the userdata on the connection, + /// this won't be updated. + /// - This is an inline call, so it's *much* faster. + /// - You might have closed the connection, so fetching the user data + /// would not be possible. + /// + /// Not used when sending messages. + int64 m_nConnUserData; + + /// Local timestamp when the message was received + /// Not used for outbound messages. + SteamNetworkingMicroseconds m_usecTimeReceived; + + /// Message number assigned by the sender. This is not used for outbound + /// messages. Note that if multiple lanes are used, each lane has its own + /// message numbers, which are assigned sequentially, so messages from + /// different lanes will share the same numbers. + int64 m_nMessageNumber; + + /// Function used to free up m_pData. This mechanism exists so that + /// apps can create messages with buffers allocated from their own + /// heap, and pass them into the library. This function will + /// usually be something like: + /// + /// free( pMsg->m_pData ); + void (*m_pfnFreeData)( SteamNetworkingMessage_t *pMsg ); + + /// Function to used to decrement the internal reference count and, if + /// it's zero, release the message. You should not set this function pointer, + /// or need to access this directly! Use the Release() function instead! + void (*m_pfnRelease)( SteamNetworkingMessage_t *pMsg ); + + /// When using ISteamNetworkingMessages, the channel number the message was received on + /// (Not used for messages sent or received on "connections") + int m_nChannel; + + /// Bitmask of k_nSteamNetworkingSend_xxx flags. + /// For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid. + /// For outbound messages, all bits are relevant + int m_nFlags; + + /// Arbitrary user data that you can use when sending messages using + /// ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage. + /// (The callback you set in m_pfnFreeData might use this field.) + /// + /// Not used for received messages. + int64 m_nUserData; + + /// For outbound messages, which lane to use? See ISteamNetworkingSockets::ConfigureConnectionLanes. + /// For inbound messages, what lane was the message received on? + uint16 m_idxLane; + uint16 _pad1__; + + /// You MUST call this when you're done with the object, + /// to free up memory, etc. + inline void Release(); + + // For code compatibility, some accessors +#ifndef API_GEN + inline uint32 GetSize() const { return m_cbSize; } + inline const void *GetData() const { return m_pData; } + inline int GetChannel() const { return m_nChannel; } + inline HSteamNetConnection GetConnection() const { return m_conn; } + inline int64 GetConnectionUserData() const { return m_nConnUserData; } + inline SteamNetworkingMicroseconds GetTimeReceived() const { return m_usecTimeReceived; } + inline int64 GetMessageNumber() const { return m_nMessageNumber; } +#endif +protected: + // Declare destructor protected. You should never need to declare a message + // object on the stack or create one yourself. + // - You will receive a pointer to a message object when you receive messages (e.g. ISteamNetworkingSockets::ReceiveMessagesOnConnection) + // - You can allocate a message object for efficient sending using ISteamNetworkingUtils::AllocateMessage + // - Call Release() to free the object + inline ~SteamNetworkingMessage_t() {} +}; + +// +// Flags used to set options for message sending +// + +// Send the message unreliably. Can be lost. Messages *can* be larger than a +// single MTU (UDP packet), but there is no retransmission, so if any piece +// of the message is lost, the entire message will be dropped. +// +// The sending API does have some knowledge of the underlying connection, so +// if there is no NAT-traversal accomplished or there is a recognized adjustment +// happening on the connection, the packet will be batched until the connection +// is open again. +// +// Migration note: This is not exactly the same as k_EP2PSendUnreliable! You +// probably want k_ESteamNetworkingSendType_UnreliableNoNagle +const int k_nSteamNetworkingSend_Unreliable = 0; + +// Disable Nagle's algorithm. +// By default, Nagle's algorithm is applied to all outbound messages. This means +// that the message will NOT be sent immediately, in case further messages are +// sent soon after you send this, which can be grouped together. Any time there +// is enough buffered data to fill a packet, the packets will be pushed out immediately, +// but partially-full packets not be sent until the Nagle timer expires. See +// ISteamNetworkingSockets::FlushMessagesOnConnection, ISteamNetworkingMessages::FlushMessagesToUser +// +// NOTE: Don't just send every message without Nagle because you want packets to get there +// quicker. Make sure you understand the problem that Nagle is solving before disabling it. +// If you are sending small messages, often many at the same time, then it is very likely that +// it will be more efficient to leave Nagle enabled. A typical proper use of this flag is +// when you are sending what you know will be the last message sent for a while (e.g. the last +// in the server simulation tick to a particular client), and you use this flag to flush all +// messages. +const int k_nSteamNetworkingSend_NoNagle = 1; + +// Send a message unreliably, bypassing Nagle's algorithm for this message and any messages +// currently pending on the Nagle timer. This is equivalent to using k_ESteamNetworkingSend_Unreliable +// and then immediately flushing the messages using ISteamNetworkingSockets::FlushMessagesOnConnection +// or ISteamNetworkingMessages::FlushMessagesToUser. (But using this flag is more efficient since you +// only make one API call.) +const int k_nSteamNetworkingSend_UnreliableNoNagle = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoNagle; + +// If the message cannot be sent very soon (because the connection is still doing some initial +// handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable +// messages. Using this flag on reliable messages is invalid. +const int k_nSteamNetworkingSend_NoDelay = 4; + +// Send an unreliable message, but if it cannot be sent relatively quickly, just drop it instead of queuing it. +// This is useful for messages that are not useful if they are excessively delayed, such as voice data. +// NOTE: The Nagle algorithm is not used, and if the message is not dropped, any messages waiting on the +// Nagle timer are immediately flushed. +// +// A message will be dropped under the following circumstances: +// - the connection is not fully connected. (E.g. the "Connecting" or "FindingRoute" states) +// - there is a sufficiently large number of messages queued up already such that the current message +// will not be placed on the wire in the next ~200ms or so. +// +// If a message is dropped for these reasons, k_EResultIgnored will be returned. +const int k_nSteamNetworkingSend_UnreliableNoDelay = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoDelay|k_nSteamNetworkingSend_NoNagle; + +// Reliable message send. Can send up to k_cbMaxSteamNetworkingSocketsMessageSizeSend bytes in a single message. +// Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for +// efficient sends of large chunks of data. +// +// The Nagle algorithm is used. See notes on k_ESteamNetworkingSendType_Unreliable for more details. +// See k_ESteamNetworkingSendType_ReliableNoNagle, ISteamNetworkingSockets::FlushMessagesOnConnection, +// ISteamNetworkingMessages::FlushMessagesToUser +// +// Migration note: This is NOT the same as k_EP2PSendReliable, it's more like k_EP2PSendReliableWithBuffering +const int k_nSteamNetworkingSend_Reliable = 8; + +// Send a message reliably, but bypass Nagle's algorithm. +// +// Migration note: This is equivalent to k_EP2PSendReliable +const int k_nSteamNetworkingSend_ReliableNoNagle = k_nSteamNetworkingSend_Reliable|k_nSteamNetworkingSend_NoNagle; + +// By default, message sending is queued, and the work of encryption and talking to +// the operating system sockets, etc is done on a service thread. This is usually a +// a performance win when messages are sent from the "main thread". However, if this +// flag is set, and data is ready to be sent immediately (either from this message +// or earlier queued data), then that work will be done in the current thread, before +// the current call returns. If data is not ready to be sent (due to rate limiting +// or Nagle), then this flag has no effect. +// +// This is an advanced flag used to control performance at a very low level. For +// most applications running on modern hardware with more than one CPU core, doing +// the work of sending on a service thread will yield the best performance. Only +// use this flag if you have a really good reason and understand what you are doing. +// Otherwise you will probably just make performance worse. +const int k_nSteamNetworkingSend_UseCurrentThread = 16; + +// When sending a message using ISteamNetworkingMessages, automatically re-establish +// a broken session, without returning k_EResultNoConnection. Without this flag, +// if you attempt to send a message, and the session was proactively closed by the +// peer, or an error occurred that disrupted communications, then you must close the +// session using ISteamNetworkingMessages::CloseSessionWithUser before attempting to +// send another message. (Or you can simply add this flag and retry.) In this way, +// the disruption cannot go unnoticed, and a more clear order of events can be +// ascertained. This is especially important when reliable messages are used, since +// if the connection is disrupted, some of those messages will not have been delivered, +// and it is in general not possible to know which. Although a +// SteamNetworkingMessagesSessionFailed_t callback will be posted when an error occurs +// to notify you that a failure has happened, callbacks are asynchronous, so it is not +// possible to tell exactly when it happened. And because the primary purpose of +// ISteamNetworkingMessages is to be like UDP, there is no notification when a peer closes +// the session. +// +// If you are not using any reliable messages (e.g. you are using ISteamNetworkingMessages +// exactly as a transport replacement for UDP-style datagrams only), you may not need to +// know when an underlying connection fails, and so you may not need this notification. +const int k_nSteamNetworkingSend_AutoRestartBrokenSession = 32; + +// +// Ping location / measurement +// + +/// Object that describes a "location" on the Internet with sufficient +/// detail that we can reasonably estimate an upper bound on the ping between +/// the two hosts, even if a direct route between the hosts is not possible, +/// and the connection must be routed through the Steam Datagram Relay network. +/// This does not contain any information that identifies the host. Indeed, +/// if two hosts are in the same building or otherwise have nearly identical +/// networking characteristics, then it's valid to use the same location +/// object for both of them. +/// +/// NOTE: This object should only be used in the same process! Do not serialize it, +/// send it over the wire, or persist it in a file or database! If you need +/// to do that, convert it to a string representation using the methods in +/// ISteamNetworkingUtils(). +struct SteamNetworkPingLocation_t +{ + uint8 m_data[ 512 ]; +}; + +/// Max possible length of a ping location, in string format. This is +/// an extremely conservative worst case value which leaves room for future +/// syntax enhancements. Most strings in practice are a lot shorter. +/// If you are storing many of these, you will very likely benefit from +/// using dynamic memory. +const int k_cchMaxSteamNetworkingPingLocationString = 1024; + +/// Special values that are returned by some functions that return a ping. +const int k_nSteamNetworkingPing_Failed = -1; +const int k_nSteamNetworkingPing_Unknown = -2; + +// +// Configuration values +// + +/// Configuration values can be applied to different types of objects. +enum ESteamNetworkingConfigScope +{ + + /// Get/set global option, or defaults. Even options that apply to more specific scopes + /// have global scope, and you may be able to just change the global defaults. If you + /// need different settings per connection (for example), then you will need to set those + /// options at the more specific scope. + k_ESteamNetworkingConfig_Global = 1, + + /// Some options are specific to a particular interface. Note that all connection + /// and listen socket settings can also be set at the interface level, and they will + /// apply to objects created through those interfaces. + k_ESteamNetworkingConfig_SocketsInterface = 2, + + /// Options for a listen socket. Listen socket options can be set at the interface layer, + /// if you have multiple listen sockets and they all use the same options. + /// You can also set connection options on a listen socket, and they set the defaults + /// for all connections accepted through this listen socket. (They will be used if you don't + /// set a connection option.) + k_ESteamNetworkingConfig_ListenSocket = 3, + + /// Options for a specific connection. + k_ESteamNetworkingConfig_Connection = 4, + + k_ESteamNetworkingConfigScope__Force32Bit = 0x7fffffff +}; + +// Different configuration values have different data types +enum ESteamNetworkingConfigDataType +{ + k_ESteamNetworkingConfig_Int32 = 1, + k_ESteamNetworkingConfig_Int64 = 2, + k_ESteamNetworkingConfig_Float = 3, + k_ESteamNetworkingConfig_String = 4, + k_ESteamNetworkingConfig_Ptr = 5, + + k_ESteamNetworkingConfigDataType__Force32Bit = 0x7fffffff +}; + +/// Configuration options +enum ESteamNetworkingConfigValue +{ + k_ESteamNetworkingConfig_Invalid = 0, + +// +// Connection options +// + + /// [connection int32] Timeout value (in ms) to use when first connecting + k_ESteamNetworkingConfig_TimeoutInitial = 24, + + /// [connection int32] Timeout value (in ms) to use after connection is established + k_ESteamNetworkingConfig_TimeoutConnected = 25, + + /// [connection int32] Upper limit of buffered pending bytes to be sent, + /// if this is reached SendMessage will return k_EResultLimitExceeded + /// Default is 512k (524288 bytes) + k_ESteamNetworkingConfig_SendBufferSize = 9, + + /// [connection int32] Upper limit on total size (in bytes) of received messages + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can process them. + /// + /// This must be bigger than k_ESteamNetworkingConfig_RecvMaxMessageSize + k_ESteamNetworkingConfig_RecvBufferSize = 47, + + /// [connection int32] Upper limit on the number of received messages that will + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can pull them off the wire. + k_ESteamNetworkingConfig_RecvBufferMessages = 48, + + /// [connection int32] Maximum message size that we are willing to receive. + /// if a client attempts to send us a message larger than this, the connection + /// will be immediately closed. + /// + /// Default is 512k (524288 bytes). Note that the peer needs to be able to + /// send a message this big. (See k_cbMaxSteamNetworkingSocketsMessageSizeSend.) + k_ESteamNetworkingConfig_RecvMaxMessageSize = 49, + + /// [connection int32] Max number of message segments that can be received + /// in a single UDP packet. While decoding a packet, if the number of segments + /// exceeds this, we will abort further packet processing. + /// + /// The default is effectively unlimited. If you know that you very rarely + /// send small packets, you can protect yourself from malicious senders by + /// lowering this number. + /// + /// In particular, if you are NOT using the reliability layer and are only using + /// SteamNetworkingSockets for datagram transport, setting this to a very low + /// number may be beneficial. (We recommend a value of 2.) Make sure your sender + /// disables Nagle! + k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket = 50, + + /// [connection int64] Get/set userdata as a configuration option. + /// The default value is -1. You may want to set the user data as + /// a config value, instead of using ISteamNetworkingSockets::SetConnectionUserData + /// in two specific instances: + /// + /// - You wish to set the userdata atomically when creating + /// an outbound connection, so that the userdata is filled in properly + /// for any callbacks that happen. However, note that this trick + /// only works for connections initiated locally! For incoming + /// connections, multiple state transitions may happen and + /// callbacks be queued, before you are able to service the first + /// callback! Be careful! + /// + /// - You can set the default userdata for all newly created connections + /// by setting this value at a higher level (e.g. on the listen + /// socket or at the global level.) Then this default + /// value will be inherited when the connection is created. + /// This is useful in case -1 is a valid userdata value, and you + /// wish to use something else as the default value so you can + /// tell if it has been set or not. + /// + /// HOWEVER: once a connection is created, the effective value is + /// then bound to the connection. Unlike other connection options, + /// if you change it again at a higher level, the new value will not + /// be inherited by connections. + /// + /// Using the userdata field in callback structs is not advised because + /// of tricky race conditions. Instead, you might try one of these methods: + /// + /// - Use a separate map with the HSteamNetConnection as the key. + /// - Fetch the userdata from the connection in your callback + /// using ISteamNetworkingSockets::GetConnectionUserData, to + // ensure you have the current value. + k_ESteamNetworkingConfig_ConnectionUserData = 40, + + /// [connection int32] Minimum/maximum send rate clamp, in bytes/sec. + /// At the time of this writing these two options should always be set to + /// the same value, to manually configure a specific send rate. The default + /// value is 256K. Eventually we hope to have the library estimate the bandwidth + /// of the channel and set the send rate to that estimated bandwidth, and these + /// values will only set limits on that send rate. + k_ESteamNetworkingConfig_SendRateMin = 10, + k_ESteamNetworkingConfig_SendRateMax = 11, + + /// [connection int32] Nagle time, in microseconds. When SendMessage is called, if + /// the outgoing message is less than the size of the MTU, it will be + /// queued for a delay equal to the Nagle timer value. This is to ensure + /// that if the application sends several small messages rapidly, they are + /// coalesced into a single packet. + /// See historical RFC 896. Value is in microseconds. + /// Default is 5000us (5ms). + k_ESteamNetworkingConfig_NagleTime = 12, + + /// [connection int32] Don't automatically fail IP connections that don't have + /// strong auth. On clients, this means we will attempt the connection even if + /// we don't know our identity or can't get a cert. On the server, it means that + /// we won't automatically reject a connection due to a failure to authenticate. + /// (You can examine the incoming connection and decide whether to accept it.) + /// + /// 0: Don't attempt or accept unauthorized connections + /// 1: Attempt authorization when connecting, and allow unauthorized peers, but emit warnings + /// 2: don't attempt authentication, or complain if peer is unauthenticated + /// + /// This is a dev configuration value, and you should not let users modify it in + /// production. + k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23, + + /// [connection int32] The same as IP_AllowWithoutAuth, but will only apply + /// for connections to/from localhost addresses. Whichever value is larger + /// (more permissive) will be used. + k_ESteamNetworkingConfig_IPLocalHost_AllowWithoutAuth = 52, + + /// [connection int32] Do not send UDP packets with a payload of + /// larger than N bytes. If you set this, k_ESteamNetworkingConfig_MTU_DataSize + /// is automatically adjusted + k_ESteamNetworkingConfig_MTU_PacketSize = 32, + + /// [connection int32] (read only) Maximum message size you can send that + /// will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize + k_ESteamNetworkingConfig_MTU_DataSize = 33, + + /// [connection int32] Allow unencrypted (and unauthenticated) communication. + /// 0: Not allowed (the default) + /// 1: Allowed, but prefer encrypted + /// 2: Allowed, and preferred + /// 3: Required. (Fail the connection if the peer requires encryption.) + /// + /// This is a dev configuration value, since its purpose is to disable encryption. + /// You should not let users modify it in production. (But note that it requires + /// the peer to also modify their value in order for encryption to be disabled.) + k_ESteamNetworkingConfig_Unencrypted = 34, + + /// [connection int32] Set this to 1 on outbound connections and listen sockets, + /// to enable "symmetric connect mode", which is useful in the following + /// common peer-to-peer use case: + /// + /// - The two peers are "equal" to each other. (Neither is clearly the "client" + /// or "server".) + /// - Either peer may initiate the connection, and indeed they may do this + /// at the same time + /// - The peers only desire a single connection to each other, and if both + /// peers initiate connections simultaneously, a protocol is needed for them + /// to resolve the conflict, so that we end up with a single connection. + /// + /// This use case is both common, and involves subtle race conditions and tricky + /// pitfalls, which is why the API has support for dealing with it. + /// + /// If an incoming connection arrives on a listen socket or via custom signaling, + /// and the application has not attempted to make a matching outbound connection + /// in symmetric mode, then the incoming connection can be accepted as usual. + /// A "matching" connection means that the relevant endpoint information matches. + /// (At the time this comment is being written, this is only supported for P2P + /// connections, which means that the peer identities must match, and the virtual + /// port must match. At a later time, symmetric mode may be supported for other + /// connection types.) + /// + /// If connections are initiated by both peers simultaneously, race conditions + /// can arise, but fortunately, most of them are handled internally and do not + /// require any special awareness from the application. However, there + /// is one important case that application code must be aware of: + /// If application code attempts an outbound connection using a ConnectXxx + /// function in symmetric mode, and a matching incoming connection is already + /// waiting on a listen socket, then instead of forming a new connection, + /// the ConnectXxx call will accept the existing incoming connection, and return + /// a connection handle to this accepted connection. + /// IMPORTANT: in this case, a SteamNetConnectionStatusChangedCallback_t + /// has probably *already* been posted to the queue for the incoming connection! + /// (Once callbacks are posted to the queue, they are not modified.) It doesn't + /// matter if the callback has not been consumed by the app. Thus, application + /// code that makes use of symmetric connections must be aware that, when processing a + /// SteamNetConnectionStatusChangedCallback_t for an incoming connection, the + /// m_hConn may refer to a new connection that the app has has not + /// seen before (the usual case), but it may also refer to a connection that + /// has already been accepted implicitly through a call to Connect()! In this + /// case, AcceptConnection() will return k_EResultDuplicateRequest. + /// + /// Only one symmetric connection to a given peer (on a given virtual port) + /// may exist at any given time. If client code attempts to create a connection, + /// and a (live) connection already exists on the local host, then either the + /// existing connection will be accepted as described above, or the attempt + /// to create a new connection will fail. Furthermore, linger mode functionality + /// is not supported on symmetric connections. + /// + /// A more complicated race condition can arise if both peers initiate a connection + /// at roughly the same time. In this situation, each peer will receive an incoming + /// connection from the other peer, when the application code has already initiated + /// an outgoing connection to that peer. The peers must resolve this conflict and + /// decide who is going to act as the "server" and who will act as the "client". + /// Typically the application does not need to be aware of this case as it is handled + /// internally. On both sides, the will observe their outbound connection being + /// "accepted", although one of them one have been converted internally to act + /// as the "server". + /// + /// In general, symmetric mode should be all-or-nothing: do not mix symmetric + /// connections with a non-symmetric connection that it might possible "match" + /// with. If you use symmetric mode on any connections, then both peers should + /// use it on all connections, and the corresponding listen socket, if any. The + /// behaviour when symmetric and ordinary connections are mixed is not defined by + /// this API, and you should not rely on it. (This advice only applies when connections + /// might possibly "match". For example, it's OK to use all symmetric mode + /// connections on one virtual port, and all ordinary, non-symmetric connections + /// on a different virtual port, as there is no potential for ambiguity.) + /// + /// When using the feature, you should set it in the following situations on + /// applicable objects: + /// + /// - When creating an outbound connection using ConnectXxx function + /// - When creating a listen socket. (Note that this will automatically cause + /// any accepted connections to inherit the flag.) + /// - When using custom signaling, before accepting an incoming connection. + /// + /// Setting the flag on listen socket and accepted connections will enable the + /// API to automatically deal with duplicate incoming connections, even if the + /// local host has not made any outbound requests. (In general, such duplicate + /// requests from a peer are ignored internally and will not be visible to the + /// application code. The previous connection must be closed or resolved first.) + k_ESteamNetworkingConfig_SymmetricConnect = 37, + + /// [connection int32] For connection types that use "virtual ports", this can be used + /// to assign a local virtual port. For incoming connections, this will always be the + /// virtual port of the listen socket (or the port requested by the remote host if custom + /// signaling is used and the connection is accepted), and cannot be changed. For + /// connections initiated locally, the local virtual port will default to the same as the + /// requested remote virtual port, if you do not specify a different option when creating + /// the connection. The local port is only relevant for symmetric connections, when + /// determining if two connections "match." In this case, if you need the local and remote + /// port to differ, you can set this value. + /// + /// You can also read back this value on listen sockets. + /// + /// This value should not be read or written in any other context. + k_ESteamNetworkingConfig_LocalVirtualPort = 38, + + /// [connection int32] Enable Dual wifi band support for this connection + /// 0 = no, 1 = yes, 2 = simulate it for debugging, even if dual wifi not available + k_ESteamNetworkingConfig_DualWifi_Enable = 39, + + /// [connection int32] True to enable diagnostics reporting through + /// generic platform UI. (Only available on Steam.) + k_ESteamNetworkingConfig_EnableDiagnosticsUI = 46, + + /// [connection int32] Send of time-since-previous-packet values in each UDP packet. + /// This add a small amount of packet overhead but allows for detailed jitter measurements + /// to be made by the receiver. + /// + /// - 0: disables the sending + /// - 1: enables sending + /// - -1: (the default) Use the default for the connection type. For plain UDP connections, + /// this is disabled, and for relayed connections, it is enabled. Note that relays + /// always send the value. + k_ESteamNetworkingConfig_SendTimeSincePreviousPacket = 59, + +// +// Simulating network conditions +// +// These are global (not per-connection) because they apply at +// a relatively low UDP layer. +// + + /// [global float, 0--100] Randomly discard N pct of packets instead of sending/recv + /// This is a global option only, since it is applied at a low level + /// where we don't have much context + k_ESteamNetworkingConfig_FakePacketLoss_Send = 2, + k_ESteamNetworkingConfig_FakePacketLoss_Recv = 3, + + /// [global int32]. Delay all outbound/inbound packets by N ms + k_ESteamNetworkingConfig_FakePacketLag_Send = 4, + k_ESteamNetworkingConfig_FakePacketLag_Recv = 5, + + /// Simulated jitter/clumping. + /// + /// For each packet, a jitter value is determined (which may + /// be zero). This amount is added as extra delay to the + /// packet. When a subsequent packet is queued, it receives its + /// own random jitter amount from the current time. if this would + /// result in the packets being delivered out of order, the later + /// packet queue time is adjusted to happen after the first packet. + /// Thus simulating jitter by itself will not reorder packets, but it + /// can "clump" them. + /// + /// - Avg: A random jitter time is generated using an exponential + /// distribution using this value as the mean (ms). The default + /// is zero, which disables random jitter. + /// - Max: Limit the random jitter time to this value (ms). + /// - Pct: odds (0-100) that a random jitter value for the packet + /// will be generated. Otherwise, a jitter value of zero + /// is used, and the packet will only be delayed by the jitter + /// system if necessary to retain order, due to the jitter of a + /// previous packet. + /// + /// All values are [global float] + /// + /// Fake jitter is simulated after fake lag, but before reordering. + k_ESteamNetworkingConfig_FakePacketJitter_Send_Avg = 53, + k_ESteamNetworkingConfig_FakePacketJitter_Send_Max = 54, + k_ESteamNetworkingConfig_FakePacketJitter_Send_Pct = 55, + k_ESteamNetworkingConfig_FakePacketJitter_Recv_Avg = 56, + k_ESteamNetworkingConfig_FakePacketJitter_Recv_Max = 57, + k_ESteamNetworkingConfig_FakePacketJitter_Recv_Pct = 58, + + /// [global float] 0-100 Percentage of packets we will add additional + /// delay to. If other packet(s) are sent/received within this delay + /// window (that doesn't also randomly receive the same extra delay), + /// then the packets become reordered. + /// + /// This mechanism is primarily intended to generate out-of-order + /// packets. To simulate random jitter, use the FakePacketJitter. + /// Fake packet reordering is applied after fake lag and jitter + k_ESteamNetworkingConfig_FakePacketReorder_Send = 6, + k_ESteamNetworkingConfig_FakePacketReorder_Recv = 7, + + /// [global int32] Extra delay, in ms, to apply to reordered + /// packets. The same time value is used for sending and receiving. + k_ESteamNetworkingConfig_FakePacketReorder_Time = 8, + + /// [global float 0--100] Globally duplicate some percentage of packets. + k_ESteamNetworkingConfig_FakePacketDup_Send = 26, + k_ESteamNetworkingConfig_FakePacketDup_Recv = 27, + + /// [global int32] Amount of delay, in ms, to delay duplicated packets. + /// (We chose a random delay between 0 and this value) + k_ESteamNetworkingConfig_FakePacketDup_TimeMax = 28, + + /// [global int32] Trace every UDP packet, similar to Wireshark or tcpdump. + /// Value is max number of bytes to dump. -1 disables tracing. + // 0 only traces the info but no actual data bytes + k_ESteamNetworkingConfig_PacketTraceMaxBytes = 41, + + + // [global int32] Global UDP token bucket rate limits. + // "Rate" refers to the steady state rate. (Bytes/sec, the + // rate that tokens are put into the bucket.) "Burst" + // refers to the max amount that could be sent in a single + // burst. (In bytes, the max capacity of the bucket.) + // Rate=0 disables the limiter entirely, which is the default. + // Burst=0 disables burst. (This is not realistic. A + // burst of at least 4K is recommended; the default is higher.) + k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate = 42, + k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst = 43, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate = 44, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst = 45, + + // Timeout used for out-of-order correction. This is used when we see a small + // gap in the sequence number on a packet flow. For example let's say we are + // processing packet 105 when the most recent one was 103. 104 might have dropped, + // but there is also a chance that packets are simply being reordered. It is very + // common on certain types of connections for packet 104 to arrive very soon after 105, + // especially if 104 was large and 104 was small. In this case, when we see packet 105 + // we will shunt it aside and pend it, in the hopes of seeing 104 soon after. If 104 + // arrives before the a timeout occurs, then we can deliver the packets in order to the + // remainder of packet processing, and we will record this as a "correctable" out-of-order + // situation. If the timer expires, then we will process packet 105, and assume for now + // that 104 has dropped. (If 104 later arrives, we will process it, but that will be + // accounted for as uncorrected.) + // + // The default value is 1000 microseconds. Note that the Windows scheduler does not + // have microsecond precision. + // + // Set the value to 0 to disable out of order correction at the packet layer. + // In many cases we are still effectively able to correct the situation because + // reassembly of message fragments is tolerant of fragments packets arriving out of + // order. Also, when messages are decoded and inserted into the queue for the app + // to receive them, we will correct out of order messages that have not been + // dequeued by the app yet. However, when out-of-order packets are corrected + // at the packet layer, they will not reduce the connection quality measure. + // (E.g. SteamNetConnectionRealTimeStatus_t::m_flConnectionQualityLocal) + k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds = 51, + +// +// Callbacks +// + + // On Steam, you may use the default Steam callback dispatch mechanism. If you prefer + // to not use this dispatch mechanism (or you are not running with Steam), or you want + // to associate specific functions with specific listen sockets or connections, you can + // register them as configuration values. + // + // Note also that ISteamNetworkingUtils has some helpers to set these globally. + + /// [connection FnSteamNetConnectionStatusChanged] Callback that will be invoked + /// when the state of a connection changes. + /// + /// IMPORTANT: callbacks are dispatched to the handler that is in effect at the time + /// the event occurs, which might be in another thread. For example, immediately after + /// creating a listen socket, you may receive an incoming connection. And then immediately + /// after this, the remote host may close the connection. All of this could happen + /// before the function to create the listen socket has returned. For this reason, + /// callbacks usually must be in effect at the time of object creation. This means + /// you should set them when you are creating the listen socket or connection, or have + /// them in effect so they will be inherited at the time of object creation. + /// + /// For example: + /// + /// exterm void MyStatusChangedFunc( SteamNetConnectionStatusChangedCallback_t *info ); + /// SteamNetworkingConfigValue_t opt; opt.SetPtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, MyStatusChangedFunc ); + /// SteamNetworkingIPAddr localAddress; localAddress.Clear(); + /// HSteamListenSocket hListenSock = SteamNetworkingSockets()->CreateListenSocketIP( localAddress, 1, &opt ); + /// + /// When accepting an incoming connection, there is no atomic way to switch the + /// callback. However, if the connection is DOA, AcceptConnection() will fail, and + /// you can fetch the state of the connection at that time. + /// + /// If all connections and listen sockets can use the same callback, the simplest + /// method is to set it globally before you create any listen sockets or connections. + k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged = 201, + + /// [global FnSteamNetAuthenticationStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged + k_ESteamNetworkingConfig_Callback_AuthStatusChanged = 202, + + /// [global FnSteamRelayNetworkStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged + k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged = 203, + + /// [global FnSteamNetworkingMessagesSessionRequest] Callback that will be invoked + /// when a peer wants to initiate a SteamNetworkingMessagesSessionRequest. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest + k_ESteamNetworkingConfig_Callback_MessagesSessionRequest = 204, + + /// [global FnSteamNetworkingMessagesSessionFailed] Callback that will be invoked + /// when a session you have initiated, or accepted either fails to connect, or loses + /// connection in some unexpected way. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed + k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205, + + /// [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will + /// be invoked when we need to create a signaling object for a connection + /// initiated locally. See: ISteamNetworkingSockets::ConnectP2P, + /// ISteamNetworkingMessages. + k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206, + + /// [global FnSteamNetworkingFakeIPResult] Callback that's invoked when + /// a FakeIP allocation finishes. See: ISteamNetworkingSockets::BeginAsyncRequestFakeIP, + /// ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult + k_ESteamNetworkingConfig_Callback_FakeIPResult = 207, + +// +// P2P connection settings +// + +// /// [listen socket int32] When you create a P2P listen socket, we will automatically +// /// open up a UDP port to listen for LAN connections. LAN connections can be made +// /// without any signaling: both sides can be disconnected from the Internet. +// /// +// /// This value can be set to zero to disable the feature. +// k_ESteamNetworkingConfig_P2P_Discovery_Server_LocalPort = 101, +// +// /// [connection int32] P2P connections can perform broadcasts looking for the peer +// /// on the LAN. +// k_ESteamNetworkingConfig_P2P_Discovery_Client_RemotePort = 102, + + /// [connection string] Comma-separated list of STUN servers that can be used + /// for NAT piercing. If you set this to an empty string, NAT piercing will + /// not be attempted. Also if "public" candidates are not allowed for + /// P2P_Transport_ICE_Enable, then this is ignored. + k_ESteamNetworkingConfig_P2P_STUN_ServerList = 103, + + /// [connection int32] What types of ICE candidates to share with the peer. + /// See k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_xxx values + k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable = 104, + + /// [connection int32] When selecting P2P transport, add various + /// penalties to the scores for selected transports. (Route selection + /// scores are on a scale of milliseconds. The score begins with the + /// route ping time and is then adjusted.) + k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty = 105, + k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty = 106, + k_ESteamNetworkingConfig_P2P_TURN_ServerList = 107, + k_ESteamNetworkingConfig_P2P_TURN_UserList = 108, + k_ESteamNetworkingConfig_P2P_TURN_PassList = 109, + //k_ESteamNetworkingConfig_P2P_Transport_LANBeacon_Penalty = 107, + k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation = 110, + +// +// Settings for SDR relayed connections +// + + /// [global int32] If the first N pings to a port all fail, mark that port as unavailable for + /// a while, and try a different one. Some ISPs and routers may drop the first + /// packet, so setting this to 1 may greatly disrupt communications. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial = 19, + + /// [global int32] If N consecutive pings to a port fail, after having received successful + /// communication, mark that port as unavailable for a while, and try a + /// different one. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail = 20, + + /// [global int32] Minimum number of lifetime pings we need to send, before we think our estimate + /// is solid. The first ping to each cluster is very often delayed because of NAT, + /// routers not having the best route, etc. Until we've sent a sufficient number + /// of pings, our estimate is often inaccurate. Keep pinging until we get this + /// many pings. + k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate = 21, + + /// [global int32] Set all steam datagram traffic to originate from the same + /// local port. By default, we open up a new UDP socket (on a different local + /// port) for each relay. This is slightly less optimal, but it works around + /// some routers that don't implement NAT properly. If you have intermittent + /// problems talking to relays that might be NAT related, try toggling + /// this flag + k_ESteamNetworkingConfig_SDRClient_SingleSocket = 22, + + /// [global string] Code of relay cluster to force use. If not empty, we will + /// only use relays in that cluster. E.g. 'iad' + k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster = 29, + + /// [connection string] For development, a base-64 encoded ticket generated + /// using the cert tool. This can be used to connect to a gameserver via SDR + /// without a ticket generated using the game coordinator. (You will still + /// need a key that is trusted for your app, however.) + /// + /// This can also be passed using the SDR_DEVTICKET environment variable + k_ESteamNetworkingConfig_SDRClient_DevTicket = 30, + + /// [global string] For debugging. Override list of relays from the config with + /// this set (maybe just one). Comma-separated list. + k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr = 31, + + /// [global string] For debugging. Force ping times to clusters to be the specified + /// values. A comma separated list of = values. E.g. "sto=32,iad=100" + /// + /// This is a dev configuration value, you probably should not let users modify it + /// in production. + k_ESteamNetworkingConfig_SDRClient_FakeClusterPing = 36, + + /// [global int32] When probing the SteamDatagram network, we limit exploration + /// to the closest N POPs, based on our current best approximated ping to that POP. + k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN = 60, + +// +// Log levels for debugging information of various subsystems. +// Higher numeric values will cause more stuff to be printed. +// See ISteamNetworkingUtils::SetDebugOutputFunction for more +// information +// +// The default for all values is k_ESteamNetworkingSocketsDebugOutputType_Warning. +// + k_ESteamNetworkingConfig_LogLevel_AckRTT = 13, // [connection int32] RTT calculations for inline pings and replies + k_ESteamNetworkingConfig_LogLevel_PacketDecode = 14, // [connection int32] log SNP packets send/recv + k_ESteamNetworkingConfig_LogLevel_Message = 15, // [connection int32] log each message send/recv + k_ESteamNetworkingConfig_LogLevel_PacketGaps = 16, // [connection int32] dropped packets + k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17, // [connection int32] P2P rendezvous messages + k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18, // [global int32] Ping relays + + // Experimental. Set the ECN header field on all outbound UDP packets + // -1 = the default, and means "don't set anything". + // 0..3 = set that value. (Even though 0 is the default UDP ECN value, a 0 here means "explicitly set a 0".) + k_ESteamNetworkingConfig_ECN = 999, + + // Deleted, do not use + k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35, + + k_ESteamNetworkingConfigValue__Force32Bit = 0x7fffffff +}; + +// Bitmask of types to share +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default = -1; // Special value - use user defaults +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable = 0; // Do not do any ICE work at all or share any IP addresses with peer +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay = 1; // Relayed connection via TURN server. +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private = 2; // host addresses that appear to be link-local or RFC1918 addresses +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public = 4; // STUN reflexive addresses, or host address that isn't a "private" address +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All = 0x7fffffff; + +/// In a few places we need to set configuration options on listen sockets and connections, and +/// have them take effect *before* the listen socket or connection really starts doing anything. +/// Creating the object and then setting the options "immediately" after creation doesn't work +/// completely, because network packets could be received between the time the object is created and +/// when the options are applied. To set options at creation time in a reliable way, they must be +/// passed to the creation function. This structure is used to pass those options. +/// +/// For the meaning of these fields, see ISteamNetworkingUtils::SetConfigValue. Basically +/// when the object is created, we just iterate over the list of options and call +/// ISteamNetworkingUtils::SetConfigValueStruct, where the scope arguments are supplied by the +/// object being created. +struct SteamNetworkingConfigValue_t +{ + /// Which option is being set + ESteamNetworkingConfigValue m_eValue; + + /// Which field below did you fill in? + ESteamNetworkingConfigDataType m_eDataType; + + /// Option value + union + { + int32_t m_int32; + int64_t m_int64; + float m_float; + const char *m_string; // Points to your '\0'-terminated buffer + void *m_ptr; + } m_val; + + // + // Shortcut helpers to set the type and value in a single call + // + inline void SetInt32( ESteamNetworkingConfigValue eVal, int32_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int32; + m_val.m_int32 = data; + } + inline void SetInt64( ESteamNetworkingConfigValue eVal, int64_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int64; + m_val.m_int64 = data; + } + inline void SetFloat( ESteamNetworkingConfigValue eVal, float data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Float; + m_val.m_float = data; + } + inline void SetPtr( ESteamNetworkingConfigValue eVal, void *data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_ptr = data; + } + inline void SetString( ESteamNetworkingConfigValue eVal, const char *data ) // WARNING - Just saves your pointer. Does NOT make a copy of the string + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_string = data; + } +}; + +/// Return value of ISteamNetworkintgUtils::GetConfigValue +enum ESteamNetworkingGetConfigValueResult +{ + k_ESteamNetworkingGetConfigValue_BadValue = -1, // No such configuration value + k_ESteamNetworkingGetConfigValue_BadScopeObj = -2, // Bad connection handle, etc + k_ESteamNetworkingGetConfigValue_BufferTooSmall = -3, // Couldn't fit the result in your buffer + k_ESteamNetworkingGetConfigValue_OK = 1, + k_ESteamNetworkingGetConfigValue_OKInherited = 2, // A value was not set at this level, but the effective (inherited) value was returned. + + k_ESteamNetworkingGetConfigValueResult__Force32Bit = 0x7fffffff +}; + +// +// Debug output +// + +/// Detail level for diagnostic output callback. +/// See ISteamNetworkingUtils::SetDebugOutputFunction +enum ESteamNetworkingSocketsDebugOutputType +{ + k_ESteamNetworkingSocketsDebugOutputType_None = 0, + k_ESteamNetworkingSocketsDebugOutputType_Bug = 1, // You used the API incorrectly, or an internal error happened + k_ESteamNetworkingSocketsDebugOutputType_Error = 2, // Run-time error condition that isn't the result of a bug. (E.g. we are offline, cannot bind a port, etc) + k_ESteamNetworkingSocketsDebugOutputType_Important = 3, // Nothing is wrong, but this is an important notification + k_ESteamNetworkingSocketsDebugOutputType_Warning = 4, + k_ESteamNetworkingSocketsDebugOutputType_Msg = 5, // Recommended amount + k_ESteamNetworkingSocketsDebugOutputType_Verbose = 6, // Quite a bit + k_ESteamNetworkingSocketsDebugOutputType_Debug = 7, // Practically everything + k_ESteamNetworkingSocketsDebugOutputType_Everything = 8, // Wall of text, detailed packet contents breakdown, etc + + k_ESteamNetworkingSocketsDebugOutputType__Force32Bit = 0x7fffffff +}; + +/// Setup callback for debug output, and the desired verbosity you want. +typedef void (*FSteamNetworkingSocketsDebugOutput)( ESteamNetworkingSocketsDebugOutputType nType, const char *pszMsg ); + +// +// Valve data centers +// + +/// Convert 3- or 4-character ID to 32-bit int. +inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString( const char *pszCode ) +{ + // OK we made a bad decision when we decided how to pack 3-character codes into a uint32. We'd like to support + // 4-character codes, but we don't want to break compatibility. The migration path has some subtleties that make + // this nontrivial, and there are already some IDs stored in SQL. Ug, so the 4 character code "abcd" will + // be encoded with the digits like "0xddaabbcc". + // + // Also: we don't currently use 1- or 2-character codes, but if ever do in the future, let's make sure don't read + // past the end of the string and access uninitialized memory. (And if the string is empty, we always want + // to return 0 and not read bytes past the '\0'.) + // + // There is also extra paranoia to make sure the bytes are not treated as signed. + SteamNetworkingPOPID result = (uint32)(uint8)pszCode[0] << 16U; + if ( result && pszCode[1] ) + { + result |= ( (uint32)(uint8)pszCode[1] << 8U ); + if ( pszCode[2] ) + { + result |= (uint32)(uint8)pszCode[2] | ( (uint32)(uint8)pszCode[3] << 24U ); + } + } + return result; +} + +/// Unpack integer to string representation, including terminating '\0' +/// +/// See also SteamNetworkingPOPIDRender +template +inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, char (&szCode)[N] ) +{ + static_assert( N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID" ); + szCode[0] = char( id >> 16U ); + szCode[1] = char( id >> 8U ); + szCode[2] = char( id ); + szCode[3] = char( id >> 24U ); // See comment above about deep regret and sadness + szCode[4] = 0; +} + +/// The POPID "dev" is used in non-production environments for testing. +const SteamNetworkingPOPID k_SteamDatagramPOPID_dev = ( (uint32)'d' << 16U ) | ( (uint32)'e' << 8U ) | (uint32)'v'; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingPOPID. +struct SteamNetworkingPOPIDRender +{ + SteamNetworkingPOPIDRender( SteamNetworkingPOPID x ) { GetSteamNetworkingLocationPOPStringFromID( x, buf ); } + inline const char *c_str() const { return buf; } +private: + char buf[ 8 ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff +#ifndef API_GEN + +// For code compatibility +typedef SteamNetworkingMessage_t ISteamNetworkingMessage; +typedef SteamNetworkingErrMsg SteamDatagramErrMsg; + +#if 0 +inline void SteamNetworkingIPAddr::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIPAddr::IsIPv6AllZeros() const { const uint64 *q = (const uint64 *)m_ipv6; return q[0] == 0 && q[1] == 0; } +inline void SteamNetworkingIPAddr::SetIPv6( const uint8 *ipv6, uint16 nPort ) { memcpy( m_ipv6, ipv6, 16 ); m_port = nPort; } +inline void SteamNetworkingIPAddr::SetIPv4( uint32 nIP, uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0xffff; m_ipv4.m_ip[0] = uint8(nIP>>24); m_ipv4.m_ip[1] = uint8(nIP>>16); m_ipv4.m_ip[2] = uint8(nIP>>8); m_ipv4.m_ip[3] = uint8(nIP); m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsIPv4() const { return m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0xffff; } +inline uint32 SteamNetworkingIPAddr::GetIPv4() const { return IsIPv4() ? ( (uint32(m_ipv4.m_ip[0])<<24) | (uint32(m_ipv4.m_ip[1])<<16) | (uint32(m_ipv4.m_ip[2])<<8) | uint32(m_ipv4.m_ip[3]) ) : 0; } +inline void SteamNetworkingIPAddr::SetIPv6LocalHost( uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0; m_ipv6[12] = 0; m_ipv6[13] = 0; m_ipv6[14] = 0; m_ipv6[15] = 1; m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsLocalHost() const { return ( m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0 && m_ipv6[12] == 0 && m_ipv6[13] == 0 && m_ipv6[14] == 0 && m_ipv6[15] == 1 ) || ( GetIPv4() == 0x7f000001 ); } +inline bool SteamNetworkingIPAddr::operator==(const SteamNetworkingIPAddr &x ) const { return memcmp( this, &x, sizeof(SteamNetworkingIPAddr) ) == 0; } + +inline void SteamNetworkingIdentity::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIdentity::IsInvalid() const { return m_eType == k_ESteamNetworkingIdentityType_Invalid; } +inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID64( steamID.ConvertToUint64() ); } +inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); } +inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; } +inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; } +inline bool SteamNetworkingIdentity::SetXboxPairwiseID( const char *pszString ) { size_t l = strlen( pszString ); if ( l < 1 || l >= sizeof(m_szXboxPairwiseID) ) return false; + m_eType = k_ESteamNetworkingIdentityType_XboxPairwiseID; m_cbSize = int(l+1); memcpy( m_szXboxPairwiseID, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetXboxPairwiseID() const { return m_eType == k_ESteamNetworkingIdentityType_XboxPairwiseID ? m_szXboxPairwiseID : NULL; } +inline void SteamNetworkingIdentity::SetPSNID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_SonyPSN; m_cbSize = sizeof( m_PSNID ); m_PSNID = id; } +inline uint64 SteamNetworkingIdentity::GetPSNID() const { return m_eType == k_ESteamNetworkingIdentityType_SonyPSN ? m_PSNID : 0; } +inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; } +inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; } +inline void SteamNetworkingIdentity::SetIPv4Addr( uint32 nIPv4, uint16 nPort ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv4( nIPv4, nPort ); } +inline uint32 SteamNetworkingIdentity::GetIPv4() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetIPv4() : 0; } +inline ESteamNetworkingFakeIPType SteamNetworkingIdentity::GetFakeIPType() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetFakeIPType() : k_ESteamNetworkingFakeIPType_Invalid; } +inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); } +inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); } +inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; } +inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; } +inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL; + cbLen = m_cbSize; return m_genericBytes; } +inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; } +inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); } +#endif + +#endif // #ifndef API_GEN + +#endif // #ifndef STEAMNETWORKINGTYPES diff --git a/lsteamclient/steamworks_sdk_163/steamps3params.h b/lsteamclient/steamworks_sdk_163/steamps3params.h new file mode 100644 index 00000000000..c0741b4bb0d --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamps3params.h @@ -0,0 +1,112 @@ +//====== Copyright 1996-2008, Valve Corporation, All rights reserved. ======= +// +// Purpose: +// +//============================================================================= + +#ifndef STEAMPS3PARAMS_H +#define STEAMPS3PARAMS_H +#ifdef _WIN32 +#pragma once +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// PlayStation 3 initialization parameters +// +// The following structure must be passed to when loading steam_api_ps3.prx +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +#define STEAM_PS3_PATH_MAX 1055 +#define STEAM_PS3_SERVICE_ID_MAX 32 +#define STEAM_PS3_COMMUNICATION_ID_MAX 10 +#define STEAM_PS3_COMMUNICATION_SIG_MAX 160 +#define STEAM_PS3_LANGUAGE_MAX 64 +#define STEAM_PS3_REGION_CODE_MAX 16 +#define STEAM_PS3_CURRENT_PARAMS_VER 2 +struct SteamPS3Params_t +{ + uint32 m_unVersion; // set to STEAM_PS3_CURRENT_PARAMS_VER + + void *pReserved; + uint32 m_nAppId; // set to your game's appid + + char m_rgchInstallationPath[ STEAM_PS3_PATH_MAX ]; // directory containing latest steam prx's and sdata. Can be read only (BDVD) + char m_rgchSystemCache[ STEAM_PS3_PATH_MAX ]; // temp working cache, not persistent + char m_rgchGameData[ STEAM_PS3_PATH_MAX ]; // persistent game data path for storing user data + char m_rgchNpServiceID[ STEAM_PS3_SERVICE_ID_MAX ]; + char m_rgchNpCommunicationID[ STEAM_PS3_COMMUNICATION_ID_MAX ]; + char m_rgchNpCommunicationSig[ STEAM_PS3_COMMUNICATION_SIG_MAX ]; + + // Language should be one of the following. must be zero terminated + // danish + // dutch + // english + // finnish + // french + // german + // italian + // korean + // norwegian + // polish + // portuguese + // russian + // schinese + // spanish + // swedish + // tchinese + char m_rgchSteamLanguage[ STEAM_PS3_LANGUAGE_MAX ]; + + // region codes are "SCEA", "SCEE", "SCEJ". must be zero terminated + char m_rgchRegionCode[ STEAM_PS3_REGION_CODE_MAX ]; + + // Should be SYS_TTYP3 through SYS_TTYP10, if it's 0 then Steam won't spawn a + // thread to read console input at all. Using this let's you use Steam console commands + // like: profile_on, profile_off, profile_dump, mem_stats, mem_validate. + unsigned int m_cSteamInputTTY; + + struct Ps3netInit_t + { + bool m_bNeedInit; + void *m_pMemory; + int m_nMemorySize; + int m_flags; + } m_sysNetInitInfo; + + struct Ps3jpgInit_t + { + bool m_bNeedInit; + } m_sysJpgInitInfo; + + struct Ps3pngInit_t + { + bool m_bNeedInit; + } m_sysPngInitInfo; + + struct Ps3sysutilUserInfo_t + { + bool m_bNeedInit; + } m_sysSysUtilUserInfo; + + bool m_bIncludeNewsPage; +}; + + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// PlayStation 3 memory structure +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +#define STEAMPS3_MALLOC_INUSE 0x53D04A51 +#define STEAMPS3_MALLOC_SYSTEM 0x0D102C48 +#define STEAMPS3_MALLOC_OK 0xFFD04A51 +struct SteamPS3Memory_t +{ + bool m_bSingleAllocation; // If true, Steam will request one 6MB allocation and use the returned memory for all future allocations + // If false, Steam will make call malloc for each allocation + + // required function pointers + void* (*m_pfMalloc)(size_t); + void* (*m_pfRealloc)(void *, size_t); + void (*m_pfFree)(void *); + size_t (*m_pUsable_size)(void*); +}; + + +#endif // STEAMPS3PARAMS_H diff --git a/lsteamclient/steamworks_sdk_163/steamtypes.h b/lsteamclient/steamworks_sdk_163/steamtypes.h new file mode 100644 index 00000000000..c929cae2e6c --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamtypes.h @@ -0,0 +1,152 @@ +//========= Copyright 1996-2022, Valve LLC, All rights reserved. ============ + +#ifndef STEAMTYPES_H +#define STEAMTYPES_H + +#define S_CALLTYPE __cdecl +// WARNING: __cdecl is potentially #defined away in steam_api_common.h + +// Steam-specific types. Defined here so this header file can be included in other code bases. +#ifndef WCHARTYPES_H +typedef unsigned char uint8; +#endif + +#if defined( __GNUC__ ) && !defined(POSIX) + #if __GNUC__ < 4 + #error "Steamworks requires GCC 4.X (4.2 or 4.4 have been tested)" + #endif +#endif + +#if defined(__LP64__) || defined(__x86_64__) || defined(_WIN64) || defined(__aarch64__) || defined(__s390x__) +#define X64BITS +#endif + +#if !defined(VALVE_BIG_ENDIAN) +#if defined( __GNUC__ ) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define VALVE_BIG_ENDIAN 1 +#endif +#endif + +typedef unsigned char uint8; +typedef signed char int8; + +#if defined( _WIN32 ) && !defined( __GNUC__ ) + +typedef __int16 int16; +typedef unsigned __int16 uint16; +typedef __int32 int32; +typedef unsigned __int32 uint32; +typedef __int64 int64; +typedef unsigned __int64 uint64; + +typedef int64 lint64; +typedef uint64 ulint64; + +#ifdef X64BITS +typedef __int64 intp; // intp is an integer that can accomodate a pointer +typedef unsigned __int64 uintp; // (ie, sizeof(intp) >= sizeof(int) && sizeof(intp) >= sizeof(void *) +#else +typedef __int32 intp; +typedef unsigned __int32 uintp; +#endif + +#else // _WIN32 + +typedef short int16; +typedef unsigned short uint16; +typedef int int32; +typedef unsigned int uint32; +typedef long long int64; +typedef unsigned long long uint64; + +// [u]int64 are actually defined as 'long long' and gcc 64-bit +// doesn't automatically consider them the same as 'long int'. +// Changing the types for [u]int64 is complicated by +// there being many definitions, so we just +// define a 'long int' here and use it in places that would +// otherwise confuse the compiler. +typedef long int lint64; +typedef unsigned long int ulint64; + +#ifdef X64BITS +typedef long long intp; +typedef unsigned long long uintp; +#else +typedef int intp; +typedef unsigned int uintp; +#endif + +#endif // else _WIN32 + +typedef uint32 AppId_t; +const AppId_t k_uAppIdInvalid = 0x0; + +// AppIds and DepotIDs also presently share the same namespace +typedef uint32 DepotId_t; +const DepotId_t k_uDepotIdInvalid = 0x0; + +// RTime32. Seconds elapsed since Jan 1 1970, i.e. unix timestamp. +// It's the same as time_t, but it is always 32-bit and unsigned. +typedef uint32 RTime32; + +// handle to a Steam API call +typedef uint64 SteamAPICall_t; +const SteamAPICall_t k_uAPICallInvalid = 0x0; + +typedef uint32 AccountID_t; +const AccountID_t k_uAccountIdInvalid = 0; + +// Party Beacon ID +typedef uint64 PartyBeaconID_t; +const PartyBeaconID_t k_ulPartyBeaconIdInvalid = 0; + +enum ESteamIPType +{ + k_ESteamIPTypeIPv4 = 0, + k_ESteamIPTypeIPv6 = 1, +}; + +#pragma pack( push, 1 ) + +struct SteamIPAddress_t +{ + union x { + + uint32 m_unIPv4; // Host order + uint8 m_rgubIPv6[16]; // Network order! Same as inaddr_in6. (0011:2233:4455:6677:8899:aabb:ccdd:eeff) + + // Internal use only + uint64 m_ipv6Qword[2]; // big endian + } x; + + ESteamIPType m_eType; + + bool IsSet() const + { + return true; + } + + static SteamIPAddress_t IPv4Any() + { + return {}; + } + + static SteamIPAddress_t IPv6Any() + { + return {}; + } + + static SteamIPAddress_t IPv4Loopback() + { + return {}; + } + + static SteamIPAddress_t IPv6Loopback() + { + return {}; + } +}; + +#pragma pack( pop ) + +#endif // STEAMTYPES_H diff --git a/lsteamclient/steamworks_sdk_163/steamuniverse.h b/lsteamclient/steamworks_sdk_163/steamuniverse.h new file mode 100644 index 00000000000..dd384dcc4c2 --- /dev/null +++ b/lsteamclient/steamworks_sdk_163/steamuniverse.h @@ -0,0 +1,27 @@ +//========= Copyright � 1996-2008, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +//============================================================================= + +#ifndef STEAMUNIVERSE_H +#define STEAMUNIVERSE_H +#ifdef _WIN32 +#pragma once +#endif + + +// Steam universes. Each universe is a self-contained Steam instance. +enum EUniverse +{ + k_EUniverseInvalid = 0, + k_EUniversePublic = 1, + k_EUniverseBeta = 2, + k_EUniverseInternal = 3, + k_EUniverseDev = 4, + // k_EUniverseRC = 5, // no such universe anymore + k_EUniverseMax +}; + + +#endif // STEAMUNIVERSE_H diff --git a/lsteamclient/unix_private_generated.h b/lsteamclient/unix_private_generated.h index be6a6434540..f16ed942bb3 100644 --- a/lsteamclient/unix_private_generated.h +++ b/lsteamclient/unix_private_generated.h @@ -421,6 +421,55 @@ struct u_ISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION002 #endif /* __cplusplus */ }; +struct u_ISteamBilling_SteamBilling002 +{ +#ifdef __cplusplus + virtual int8_t InitCreditCardPurchase( int32_t, uint32_t, int8_t ) = 0; + virtual int8_t InitPayPalPurchase( int32_t ) = 0; + virtual int8_t GetActivationCodeInfo( const char * ) = 0; + virtual int8_t PurchaseWithActivationCode( const char * ) = 0; + virtual int8_t GetFinalPrice( ) = 0; + virtual int8_t CancelPurchase( ) = 0; + virtual int8_t CompletePurchase( ) = 0; + virtual int8_t UpdateCardInfo( uint32_t ) = 0; + virtual int8_t DeleteCard( uint32_t ) = 0; + virtual int8_t GetCardList( ) = 0; + virtual int8_t Obsolete_GetLicenses( ) = 0; + virtual int8_t CancelLicense( int32_t, int32_t ) = 0; + virtual int8_t GetPurchaseReceipts( int8_t ) = 0; + virtual int8_t SetBillingAddress( uint32_t, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char * ) = 0; + virtual int8_t GetBillingAddress( uint32_t, char *, char *, char *, char *, char *, char *, char *, char *, char * ) = 0; + virtual int8_t SetShippingAddress( const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char * ) = 0; + virtual int8_t GetShippingAddress( char *, char *, char *, char *, char *, char *, char *, char *, char * ) = 0; + virtual int8_t SetCardInfo( uint32_t, int32_t, const char *, const char *, const char *, const char *, const char *, const char * ) = 0; + virtual int8_t GetCardInfo( uint32_t, int32_t *, char *, char *, char *, char *, char *, char * ) = 0; + virtual int32_t GetLicensePackageID( uint32_t ) = 0; + virtual uint32_t GetLicenseTimeCreated( uint32_t ) = 0; + virtual uint32_t GetLicenseTimeNextProcess( uint32_t ) = 0; + virtual int32_t GetLicenseMinuteLimit( uint32_t ) = 0; + virtual int32_t GetLicenseMinutesUsed( uint32_t ) = 0; + virtual int32_t GetLicensePaymentMethod( uint32_t ) = 0; + virtual uint32_t GetLicenseFlags( uint32_t ) = 0; + virtual const char * GetLicensePurchaseCountryCode( uint32_t ) = 0; + virtual int32_t GetReceiptPackageID( uint32_t ) = 0; + virtual int32_t GetReceiptStatus( uint32_t ) = 0; + virtual int32_t GetReceiptResultDetail( uint32_t ) = 0; + virtual uint32_t GetReceiptTransTime( uint32_t ) = 0; + virtual uint64_t GetReceiptTransID( uint32_t ) = 0; + virtual int32_t GetReceiptPaymentMethod( uint32_t ) = 0; + virtual uint32_t GetReceiptBaseCost( uint32_t ) = 0; + virtual uint32_t GetReceiptTotalDiscount( uint32_t ) = 0; + virtual uint32_t GetReceiptTax( uint32_t ) = 0; + virtual uint32_t GetReceiptShipping( uint32_t ) = 0; + virtual const char * GetReceiptCountryCode( uint32_t ) = 0; + virtual uint32_t GetNumLicenses( ) = 0; + virtual uint32_t GetNumReceipts( ) = 0; + virtual int8_t PurchaseWithMachineID( int32_t, const char * ) = 0; + virtual int8_t InitClickAndBuyPurchase( int32_t, int64_t, const char *, const char * ) = 0; + virtual int8_t GetPreviousClickAndBuyAccount( int64_t *, char *, char * ) = 0; +#endif /* __cplusplus */ +}; + struct u_ISteamGameServer_SteamGameServer003 { #ifdef __cplusplus @@ -7490,6 +7539,50 @@ struct u_ISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION003 #endif /* __cplusplus */ }; +struct u_ISteamClient_SteamClient023 +{ +#ifdef __cplusplus + virtual int32_t CreateSteamPipe( ) = 0; + virtual int8_t BReleaseSteamPipe( int32_t ) = 0; + virtual int32_t ConnectToGlobalUser( int32_t ) = 0; + virtual int32_t CreateLocalUser( int32_t *, uint32_t ) = 0; + virtual void ReleaseUser( int32_t, int32_t ) = 0; + virtual void /*ISteamUser*/ * GetISteamUser( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamGameServer*/ * GetISteamGameServer( int32_t, int32_t, const char * ) = 0; + virtual void SetLocalIPBinding( const SteamIPAddress_t *, uint16_t ) = 0; + virtual void /*ISteamFriends*/ * GetISteamFriends( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamUtils*/ * GetISteamUtils( int32_t, const char * ) = 0; + virtual void /*ISteamMatchmaking*/ * GetISteamMatchmaking( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamMatchmakingServers*/ * GetISteamMatchmakingServers( int32_t, int32_t, const char * ) = 0; + virtual void * GetISteamGenericInterface( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamUserStats*/ * GetISteamUserStats( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamGameServerStats*/ * GetISteamGameServerStats( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamApps*/ * GetISteamApps( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamNetworking*/ * GetISteamNetworking( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamRemoteStorage*/ * GetISteamRemoteStorage( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamScreenshots*/ * GetISteamScreenshots( int32_t, int32_t, const char * ) = 0; + virtual void RunFrame( ) = 0; + virtual uint32_t GetIPCCallCount( ) = 0; + virtual void SetWarningMessageHook( void (*U_CDECL )(int32_t, const char *) ) = 0; + virtual int8_t BShutdownIfAllPipesClosed( ) = 0; + virtual void /*ISteamHTTP*/ * GetISteamHTTP( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamController*/ * GetISteamController( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamUGC*/ * GetISteamUGC( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamMusic*/ * GetISteamMusic( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamHTMLSurface*/ * GetISteamHTMLSurface( int32_t, int32_t, const char * ) = 0; + virtual void DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( void (*U_CDECL )(void) ) = 0; + virtual void DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( void (*U_CDECL )(void) ) = 0; + virtual void Set_SteamAPI_CCheckCallbackRegisteredInProcess( uint32_t (*U_CDECL )(int32_t) ) = 0; + virtual void /*ISteamInventory*/ * GetISteamInventory( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamVideo*/ * GetISteamVideo( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamParentalSettings*/ * GetISteamParentalSettings( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamInput*/ * GetISteamInput( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamParties*/ * GetISteamParties( int32_t, int32_t, const char * ) = 0; + virtual void /*ISteamRemotePlay*/ * GetISteamRemotePlay( int32_t, int32_t, const char * ) = 0; + virtual void DestroyAllInterfaces( ) = 0; +#endif /* __cplusplus */ +}; + NTSTATUS ISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001_GetNumInstalledApps( void * ); NTSTATUS wow64_ISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001_GetNumInstalledApps( void * ); @@ -13199,6 +13292,92 @@ NTSTATUS ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFSettings( void * ); NTSTATUS wow64_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFSettings( void * ); NTSTATUS ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFStringForApp( void * ); NTSTATUS wow64_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFStringForApp( void * ); +NTSTATUS ISteamBilling_SteamBilling002_InitCreditCardPurchase( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_InitCreditCardPurchase( void * ); +NTSTATUS ISteamBilling_SteamBilling002_InitPayPalPurchase( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_InitPayPalPurchase( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetActivationCodeInfo( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetActivationCodeInfo( void * ); +NTSTATUS ISteamBilling_SteamBilling002_PurchaseWithActivationCode( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_PurchaseWithActivationCode( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetFinalPrice( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetFinalPrice( void * ); +NTSTATUS ISteamBilling_SteamBilling002_CancelPurchase( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_CancelPurchase( void * ); +NTSTATUS ISteamBilling_SteamBilling002_CompletePurchase( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_CompletePurchase( void * ); +NTSTATUS ISteamBilling_SteamBilling002_UpdateCardInfo( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_UpdateCardInfo( void * ); +NTSTATUS ISteamBilling_SteamBilling002_DeleteCard( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_DeleteCard( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetCardList( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetCardList( void * ); +NTSTATUS ISteamBilling_SteamBilling002_Obsolete_GetLicenses( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_Obsolete_GetLicenses( void * ); +NTSTATUS ISteamBilling_SteamBilling002_CancelLicense( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_CancelLicense( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetPurchaseReceipts( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetPurchaseReceipts( void * ); +NTSTATUS ISteamBilling_SteamBilling002_SetBillingAddress( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_SetBillingAddress( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetBillingAddress( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetBillingAddress( void * ); +NTSTATUS ISteamBilling_SteamBilling002_SetShippingAddress( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_SetShippingAddress( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetShippingAddress( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetShippingAddress( void * ); +NTSTATUS ISteamBilling_SteamBilling002_SetCardInfo( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_SetCardInfo( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetCardInfo( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetCardInfo( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicensePackageID( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicensePackageID( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseTimeCreated( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseTimeCreated( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseMinuteLimit( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseMinutesUsed( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicensePaymentMethod( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicensePaymentMethod( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicenseFlags( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicenseFlags( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptPackageID( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptPackageID( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptStatus( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptStatus( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptResultDetail( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptResultDetail( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTransTime( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTransTime( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTransID( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTransID( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptPaymentMethod( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptBaseCost( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptBaseCost( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTotalDiscount( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptTax( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptTax( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptShipping( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptShipping( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetReceiptCountryCode( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetReceiptCountryCode( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetNumLicenses( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetNumLicenses( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetNumReceipts( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetNumReceipts( void * ); +NTSTATUS ISteamBilling_SteamBilling002_PurchaseWithMachineID( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_PurchaseWithMachineID( void * ); +NTSTATUS ISteamBilling_SteamBilling002_InitClickAndBuyPurchase( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase( void * ); +NTSTATUS ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount( void * ); +NTSTATUS wow64_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount( void * ); NTSTATUS ISteamClient_SteamClient006_CreateSteamPipe( void * ); NTSTATUS wow64_ISteamClient_SteamClient006_CreateSteamPipe( void * ); NTSTATUS ISteamClient_SteamClient006_BReleaseSteamPipe( void * ); @@ -14169,6 +14348,82 @@ NTSTATUS ISteamClient_SteamClient021_GetISteamRemotePlay( void * ); NTSTATUS wow64_ISteamClient_SteamClient021_GetISteamRemotePlay( void * ); NTSTATUS ISteamClient_SteamClient021_DestroyAllInterfaces( void * ); NTSTATUS wow64_ISteamClient_SteamClient021_DestroyAllInterfaces( void * ); +NTSTATUS ISteamClient_SteamClient023_CreateSteamPipe( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_CreateSteamPipe( void * ); +NTSTATUS ISteamClient_SteamClient023_BReleaseSteamPipe( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_BReleaseSteamPipe( void * ); +NTSTATUS ISteamClient_SteamClient023_ConnectToGlobalUser( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_ConnectToGlobalUser( void * ); +NTSTATUS ISteamClient_SteamClient023_CreateLocalUser( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_CreateLocalUser( void * ); +NTSTATUS ISteamClient_SteamClient023_ReleaseUser( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_ReleaseUser( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamUser( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUser( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamGameServer( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamGameServer( void * ); +NTSTATUS ISteamClient_SteamClient023_SetLocalIPBinding( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_SetLocalIPBinding( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamFriends( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamFriends( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamUtils( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUtils( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamMatchmaking( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamMatchmaking( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamMatchmakingServers( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamMatchmakingServers( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamGenericInterface( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamGenericInterface( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamUserStats( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUserStats( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamGameServerStats( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamGameServerStats( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamApps( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamApps( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamNetworking( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamNetworking( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamRemoteStorage( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamRemoteStorage( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamScreenshots( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamScreenshots( void * ); +NTSTATUS ISteamClient_SteamClient023_RunFrame( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_RunFrame( void * ); +NTSTATUS ISteamClient_SteamClient023_GetIPCCallCount( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetIPCCallCount( void * ); +NTSTATUS ISteamClient_SteamClient023_SetWarningMessageHook( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_SetWarningMessageHook( void * ); +NTSTATUS ISteamClient_SteamClient023_BShutdownIfAllPipesClosed( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamHTTP( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamHTTP( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamController( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamController( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamUGC( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamUGC( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamMusic( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamMusic( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamHTMLSurface( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamHTMLSurface( void * ); +NTSTATUS ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess( void * ); +NTSTATUS ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess( void * ); +NTSTATUS ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamInventory( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamInventory( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamVideo( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamVideo( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamParentalSettings( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamParentalSettings( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamInput( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamInput( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamParties( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamParties( void * ); +NTSTATUS ISteamClient_SteamClient023_GetISteamRemotePlay( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_GetISteamRemotePlay( void * ); +NTSTATUS ISteamClient_SteamClient023_DestroyAllInterfaces( void * ); +NTSTATUS wow64_ISteamClient_SteamClient023_DestroyAllInterfaces( void * ); NTSTATUS ISteamController_SteamController003_Init( void * ); NTSTATUS wow64_ISteamController_SteamController003_Init( void * ); NTSTATUS ISteamController_SteamController003_Shutdown( void * ); diff --git a/lsteamclient/unixlib.cpp b/lsteamclient/unixlib.cpp index 90309cf9b85..59f1cd829ad 100644 --- a/lsteamclient/unixlib.cpp +++ b/lsteamclient/unixlib.cpp @@ -270,6 +270,7 @@ static NTSTATUS ISteamClient_Set_SteamAPI_CCheckCallbackRegisteredInProcess( Ifa LSTEAMCLIENT_UNIX_IMPL( ISteamClient, SteamClient020, Set_SteamAPI_CCheckCallbackRegisteredInProcess ); LSTEAMCLIENT_UNIX_IMPL( ISteamClient, SteamClient021, Set_SteamAPI_CCheckCallbackRegisteredInProcess ); +LSTEAMCLIENT_UNIX_IMPL( ISteamClient, SteamClient023, Set_SteamAPI_CCheckCallbackRegisteredInProcess ); template< typename Params > static NTSTATUS steamclient_next_callback( Params *params, bool wow64 ) @@ -340,6 +341,7 @@ static NTSTATUS steamclient_callback_message_receive( Params *params, bool wow64 if (w_msg->m_iCallback == 703 /* SteamAPICallCompleted_t::k_iCallback */) { SteamAPICallCompleted_t_137 *c = (SteamAPICallCompleted_t_137 *)u_msg->m_pubParam; + SteamAPICallCompleted_t_137 *w = (SteamAPICallCompleted_t_137 *)(uint8_t *)w_msg->m_pubParam; if (sizeof(SteamAPICallCompleted_t_137) == w_msg->m_cubParam) { @@ -347,7 +349,7 @@ static NTSTATUS steamclient_callback_message_receive( Params *params, bool wow64 len = callback_len_utow( c->m_iCallback, c->m_cubParam, false ); TRACE( "SteamAPICallCompleted_t id %d, size %d -> %d.\n", c->m_iCallback, c->m_cubParam, len ); - c->m_cubParam = len; + w->m_cubParam = len; } else { @@ -924,10 +926,40 @@ static char *get_unix_file_name( const WCHAR *path ) return buffer; } +static unsigned char hexdigit( WCHAR c ) +{ + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'a' && c <= 'f') return c - 'a' + 10; + if (c >= 'A' && c <= 'F') return c - 'A' + 10; + return 0xff; +} + +static void url_unescape( WCHAR *s ) +{ + unsigned int i, len; + unsigned char c, d1, d2; + + len = wcslen( s ); + if (len < 3) return; + for (i = 0; i < len - 3; ++i) + { + if (s[i] != '%') continue; + if ((d1 = hexdigit( s[i + 1] )) == 0xff || (d2 = hexdigit( s[i + 2] )) == 0xff) + { + ERR( "Invalid escape %s.\n", debugstr_wn( s, 3 ) ); + continue; + } + s[i] = d1 * 0x10 + d2; + len -= 2; + memmove( &s[i + 1], &s[i + 3], (len - i) * sizeof(*s) ); + } +} + char *steamclient_dos_to_unix_path( const char *src, int is_url ) { static const char file_prot[] = "file://"; char buffer[4096], *dst = buffer; + int file_part_len; uint32_t len; TRACE( "src %s, is_url %u\n", debugstr_a(src), is_url ); @@ -954,26 +986,40 @@ char *steamclient_dos_to_unix_path( const char *src, int is_url ) { /* absolute path, use wine conversion */ WCHAR srcW[PATH_MAX] = {'\\', '?', '?', '\\', 0}; - char *unix_path; + char *unix_path = NULL; + const char *p; uint32_t r; if (is_url) while (*src == '/') ++src; - r = ntdll_umbstowcs( src, strlen( src ) + 1, srcW + 4, PATH_MAX - 4 ); - if (r == 0) unix_path = NULL; - else + if (is_url && (p = strpbrk( src, "#?" ))) file_part_len = p - src; + else file_part_len = strlen( src ); + r = ntdll_umbstowcs( src, file_part_len, srcW + 4, PATH_MAX - 4 - 1 ); + if (r) { + srcW[4 + file_part_len] = 0; + if (is_url) url_unescape( srcW + 4 ); collapse_path( srcW, 4 ); unix_path = get_unix_file_name( srcW ); } if (!unix_path) { - WARN( "Unable to convert DOS filename to unix: %s\n", src ); + ERR( "Unable to convert DOS filename to unix: %s\n", src ); goto done; } - lstrcpynA( dst, unix_path, PATH_MAX ); + lstrcpynA( dst, unix_path, sizeof(buffer) - (dst - buffer) ); free( unix_path ); + if (is_url) + { + len = strlen( buffer ) + strlen( src ) - file_part_len; + if (len + 1 > sizeof(buffer)) + { + ERR( "Buffer is too short.\n", src ); + goto done; + } + strcat( dst, src + file_part_len ); + } } else { diff --git a/lsteamclient/unixlib_generated.cpp b/lsteamclient/unixlib_generated.cpp index 5a3a8465399..4efc12fa55a 100644 --- a/lsteamclient/unixlib_generated.cpp +++ b/lsteamclient/unixlib_generated.cpp @@ -2879,6 +2879,49 @@ extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = ISteamVideo_STEAMVIDEO_INTERFACE_V007_IsBroadcasting, ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFSettings, ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFStringForApp, + ISteamBilling_SteamBilling002_InitCreditCardPurchase, + ISteamBilling_SteamBilling002_InitPayPalPurchase, + ISteamBilling_SteamBilling002_GetActivationCodeInfo, + ISteamBilling_SteamBilling002_PurchaseWithActivationCode, + ISteamBilling_SteamBilling002_GetFinalPrice, + ISteamBilling_SteamBilling002_CancelPurchase, + ISteamBilling_SteamBilling002_CompletePurchase, + ISteamBilling_SteamBilling002_UpdateCardInfo, + ISteamBilling_SteamBilling002_DeleteCard, + ISteamBilling_SteamBilling002_GetCardList, + ISteamBilling_SteamBilling002_Obsolete_GetLicenses, + ISteamBilling_SteamBilling002_CancelLicense, + ISteamBilling_SteamBilling002_GetPurchaseReceipts, + ISteamBilling_SteamBilling002_SetBillingAddress, + ISteamBilling_SteamBilling002_GetBillingAddress, + ISteamBilling_SteamBilling002_SetShippingAddress, + ISteamBilling_SteamBilling002_GetShippingAddress, + ISteamBilling_SteamBilling002_SetCardInfo, + ISteamBilling_SteamBilling002_GetCardInfo, + ISteamBilling_SteamBilling002_GetLicensePackageID, + ISteamBilling_SteamBilling002_GetLicenseTimeCreated, + ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess, + ISteamBilling_SteamBilling002_GetLicenseMinuteLimit, + ISteamBilling_SteamBilling002_GetLicenseMinutesUsed, + ISteamBilling_SteamBilling002_GetLicensePaymentMethod, + ISteamBilling_SteamBilling002_GetLicenseFlags, + ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode, + ISteamBilling_SteamBilling002_GetReceiptPackageID, + ISteamBilling_SteamBilling002_GetReceiptStatus, + ISteamBilling_SteamBilling002_GetReceiptResultDetail, + ISteamBilling_SteamBilling002_GetReceiptTransTime, + ISteamBilling_SteamBilling002_GetReceiptTransID, + ISteamBilling_SteamBilling002_GetReceiptPaymentMethod, + ISteamBilling_SteamBilling002_GetReceiptBaseCost, + ISteamBilling_SteamBilling002_GetReceiptTotalDiscount, + ISteamBilling_SteamBilling002_GetReceiptTax, + ISteamBilling_SteamBilling002_GetReceiptShipping, + ISteamBilling_SteamBilling002_GetReceiptCountryCode, + ISteamBilling_SteamBilling002_GetNumLicenses, + ISteamBilling_SteamBilling002_GetNumReceipts, + ISteamBilling_SteamBilling002_PurchaseWithMachineID, + ISteamBilling_SteamBilling002_InitClickAndBuyPurchase, + ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount, ISteamClient_SteamClient006_CreateSteamPipe, ISteamClient_SteamClient006_BReleaseSteamPipe, ISteamClient_SteamClient006_CreateGlobalUser, @@ -3364,6 +3407,44 @@ extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = ISteamClient_SteamClient021_GetISteamParties, ISteamClient_SteamClient021_GetISteamRemotePlay, ISteamClient_SteamClient021_DestroyAllInterfaces, + ISteamClient_SteamClient023_CreateSteamPipe, + ISteamClient_SteamClient023_BReleaseSteamPipe, + ISteamClient_SteamClient023_ConnectToGlobalUser, + ISteamClient_SteamClient023_CreateLocalUser, + ISteamClient_SteamClient023_ReleaseUser, + ISteamClient_SteamClient023_GetISteamUser, + ISteamClient_SteamClient023_GetISteamGameServer, + ISteamClient_SteamClient023_SetLocalIPBinding, + ISteamClient_SteamClient023_GetISteamFriends, + ISteamClient_SteamClient023_GetISteamUtils, + ISteamClient_SteamClient023_GetISteamMatchmaking, + ISteamClient_SteamClient023_GetISteamMatchmakingServers, + ISteamClient_SteamClient023_GetISteamGenericInterface, + ISteamClient_SteamClient023_GetISteamUserStats, + ISteamClient_SteamClient023_GetISteamGameServerStats, + ISteamClient_SteamClient023_GetISteamApps, + ISteamClient_SteamClient023_GetISteamNetworking, + ISteamClient_SteamClient023_GetISteamRemoteStorage, + ISteamClient_SteamClient023_GetISteamScreenshots, + ISteamClient_SteamClient023_RunFrame, + ISteamClient_SteamClient023_GetIPCCallCount, + ISteamClient_SteamClient023_SetWarningMessageHook, + ISteamClient_SteamClient023_BShutdownIfAllPipesClosed, + ISteamClient_SteamClient023_GetISteamHTTP, + ISteamClient_SteamClient023_GetISteamController, + ISteamClient_SteamClient023_GetISteamUGC, + ISteamClient_SteamClient023_GetISteamMusic, + ISteamClient_SteamClient023_GetISteamHTMLSurface, + ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess, + ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess, + ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess, + ISteamClient_SteamClient023_GetISteamInventory, + ISteamClient_SteamClient023_GetISteamVideo, + ISteamClient_SteamClient023_GetISteamParentalSettings, + ISteamClient_SteamClient023_GetISteamInput, + ISteamClient_SteamClient023_GetISteamParties, + ISteamClient_SteamClient023_GetISteamRemotePlay, + ISteamClient_SteamClient023_DestroyAllInterfaces, ISteamController_SteamController003_Init, ISteamController_SteamController003_Shutdown, ISteamController_SteamController003_RunFrame, @@ -9148,6 +9229,49 @@ extern "C" const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_ISteamVideo_STEAMVIDEO_INTERFACE_V007_IsBroadcasting, wow64_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFSettings, wow64_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFStringForApp, + wow64_ISteamBilling_SteamBilling002_InitCreditCardPurchase, + wow64_ISteamBilling_SteamBilling002_InitPayPalPurchase, + wow64_ISteamBilling_SteamBilling002_GetActivationCodeInfo, + wow64_ISteamBilling_SteamBilling002_PurchaseWithActivationCode, + wow64_ISteamBilling_SteamBilling002_GetFinalPrice, + wow64_ISteamBilling_SteamBilling002_CancelPurchase, + wow64_ISteamBilling_SteamBilling002_CompletePurchase, + wow64_ISteamBilling_SteamBilling002_UpdateCardInfo, + wow64_ISteamBilling_SteamBilling002_DeleteCard, + wow64_ISteamBilling_SteamBilling002_GetCardList, + wow64_ISteamBilling_SteamBilling002_Obsolete_GetLicenses, + wow64_ISteamBilling_SteamBilling002_CancelLicense, + wow64_ISteamBilling_SteamBilling002_GetPurchaseReceipts, + wow64_ISteamBilling_SteamBilling002_SetBillingAddress, + wow64_ISteamBilling_SteamBilling002_GetBillingAddress, + wow64_ISteamBilling_SteamBilling002_SetShippingAddress, + wow64_ISteamBilling_SteamBilling002_GetShippingAddress, + wow64_ISteamBilling_SteamBilling002_SetCardInfo, + wow64_ISteamBilling_SteamBilling002_GetCardInfo, + wow64_ISteamBilling_SteamBilling002_GetLicensePackageID, + wow64_ISteamBilling_SteamBilling002_GetLicenseTimeCreated, + wow64_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess, + wow64_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit, + wow64_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed, + wow64_ISteamBilling_SteamBilling002_GetLicensePaymentMethod, + wow64_ISteamBilling_SteamBilling002_GetLicenseFlags, + wow64_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode, + wow64_ISteamBilling_SteamBilling002_GetReceiptPackageID, + wow64_ISteamBilling_SteamBilling002_GetReceiptStatus, + wow64_ISteamBilling_SteamBilling002_GetReceiptResultDetail, + wow64_ISteamBilling_SteamBilling002_GetReceiptTransTime, + wow64_ISteamBilling_SteamBilling002_GetReceiptTransID, + wow64_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod, + wow64_ISteamBilling_SteamBilling002_GetReceiptBaseCost, + wow64_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount, + wow64_ISteamBilling_SteamBilling002_GetReceiptTax, + wow64_ISteamBilling_SteamBilling002_GetReceiptShipping, + wow64_ISteamBilling_SteamBilling002_GetReceiptCountryCode, + wow64_ISteamBilling_SteamBilling002_GetNumLicenses, + wow64_ISteamBilling_SteamBilling002_GetNumReceipts, + wow64_ISteamBilling_SteamBilling002_PurchaseWithMachineID, + wow64_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase, + wow64_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount, wow64_ISteamClient_SteamClient006_CreateSteamPipe, wow64_ISteamClient_SteamClient006_BReleaseSteamPipe, wow64_ISteamClient_SteamClient006_CreateGlobalUser, @@ -9633,6 +9757,44 @@ extern "C" const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_ISteamClient_SteamClient021_GetISteamParties, wow64_ISteamClient_SteamClient021_GetISteamRemotePlay, wow64_ISteamClient_SteamClient021_DestroyAllInterfaces, + wow64_ISteamClient_SteamClient023_CreateSteamPipe, + wow64_ISteamClient_SteamClient023_BReleaseSteamPipe, + wow64_ISteamClient_SteamClient023_ConnectToGlobalUser, + wow64_ISteamClient_SteamClient023_CreateLocalUser, + wow64_ISteamClient_SteamClient023_ReleaseUser, + wow64_ISteamClient_SteamClient023_GetISteamUser, + wow64_ISteamClient_SteamClient023_GetISteamGameServer, + wow64_ISteamClient_SteamClient023_SetLocalIPBinding, + wow64_ISteamClient_SteamClient023_GetISteamFriends, + wow64_ISteamClient_SteamClient023_GetISteamUtils, + wow64_ISteamClient_SteamClient023_GetISteamMatchmaking, + wow64_ISteamClient_SteamClient023_GetISteamMatchmakingServers, + wow64_ISteamClient_SteamClient023_GetISteamGenericInterface, + wow64_ISteamClient_SteamClient023_GetISteamUserStats, + wow64_ISteamClient_SteamClient023_GetISteamGameServerStats, + wow64_ISteamClient_SteamClient023_GetISteamApps, + wow64_ISteamClient_SteamClient023_GetISteamNetworking, + wow64_ISteamClient_SteamClient023_GetISteamRemoteStorage, + wow64_ISteamClient_SteamClient023_GetISteamScreenshots, + wow64_ISteamClient_SteamClient023_RunFrame, + wow64_ISteamClient_SteamClient023_GetIPCCallCount, + wow64_ISteamClient_SteamClient023_SetWarningMessageHook, + wow64_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed, + wow64_ISteamClient_SteamClient023_GetISteamHTTP, + wow64_ISteamClient_SteamClient023_GetISteamController, + wow64_ISteamClient_SteamClient023_GetISteamUGC, + wow64_ISteamClient_SteamClient023_GetISteamMusic, + wow64_ISteamClient_SteamClient023_GetISteamHTMLSurface, + wow64_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess, + wow64_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess, + wow64_ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess, + wow64_ISteamClient_SteamClient023_GetISteamInventory, + wow64_ISteamClient_SteamClient023_GetISteamVideo, + wow64_ISteamClient_SteamClient023_GetISteamParentalSettings, + wow64_ISteamClient_SteamClient023_GetISteamInput, + wow64_ISteamClient_SteamClient023_GetISteamParties, + wow64_ISteamClient_SteamClient023_GetISteamRemotePlay, + wow64_ISteamClient_SteamClient023_DestroyAllInterfaces, wow64_ISteamController_SteamController003_Init, wow64_ISteamController_SteamController003_Shutdown, wow64_ISteamController_SteamController003_RunFrame, @@ -27771,335 +27933,335 @@ u64_SubmitPlayerResultResultCallback_t::operator w32_SubmitPlayerResultResultCal const struct callback_def wow64_callback_data[] = {}; const struct callback_def callback_data[] = { - { 152, 162, 24, 16, []( void *d, const void *s ){ *(w32_MicroTxnAuthorizationResponse_t_123 *)d = *(const u32_MicroTxnAuthorizationResponse_t_123 *)s; } }, + { 152, 163, 24, 16, []( void *d, const void *s ){ *(w32_MicroTxnAuthorizationResponse_t_123 *)d = *(const u32_MicroTxnAuthorizationResponse_t_123 *)s; } }, /*{ 152, 122, 24, 16 },*/ - { 209, 162, 40, 32, []( void *d, const void *s ){ *(w32_GSReputation_t_123 *)d = *(const u32_GSReputation_t_123 *)s; } }, + { 209, 163, 40, 32, []( void *d, const void *s ){ *(w32_GSReputation_t_123 *)d = *(const u32_GSReputation_t_123 *)s; } }, /*{ 209, 122, 40, 32 },*/ - { 513, 162, 16, 12, []( void *d, const void *s ){ *(w32_LobbyCreated_t_123 *)d = *(const u32_LobbyCreated_t_123 *)s; } }, + { 513, 163, 16, 12, []( void *d, const void *s ){ *(w32_LobbyCreated_t_123 *)d = *(const u32_LobbyCreated_t_123 *)s; } }, /*{ 513, 122, 16, 12 },*/ - { 1023, 162, 40, 36, []( void *d, const void *s ){ *(w32_FileDetailsResult_t *)d = *(const u32_FileDetailsResult_t *)s; } }, - { 1106, 162, 32, 28, []( void *d, const void *s ){ *(w32_LeaderboardScoreUploaded_t_123 *)d = *(const u32_LeaderboardScoreUploaded_t_123 *)s; } }, + { 1023, 163, 40, 36, []( void *d, const void *s ){ *(w32_FileDetailsResult_t *)d = *(const u32_FileDetailsResult_t *)s; } }, + { 1106, 163, 32, 28, []( void *d, const void *s ){ *(w32_LeaderboardScoreUploaded_t_123 *)d = *(const u32_LeaderboardScoreUploaded_t_123 *)s; } }, /*{ 1106, 122, 32, 28 },*/ - { 1111, 162, 16, 12, []( void *d, const void *s ){ *(w32_LeaderboardUGCSet_t_123 *)d = *(const u32_LeaderboardUGCSet_t_123 *)s; } }, + { 1111, 163, 16, 12, []( void *d, const void *s ){ *(w32_LeaderboardUGCSet_t_123 *)d = *(const u32_LeaderboardUGCSet_t_123 *)s; } }, /*{ 1111, 122, 16, 12 },*/ { 1112, 161, 24, 20, []( void *d, const void *s ){ *(w32_PS3TrophiesInstalled_t_123 *)d = *(const u32_PS3TrophiesInstalled_t_123 *)s; } }, /*{ 1112, 122, 24, 20 },*/ - { 1221, 162, 712, 704, []( void *d, const void *s ){ *(w32_SteamNetConnectionStatusChangedCallback_t_153a *)d = *(const u32_SteamNetConnectionStatusChangedCallback_t_153a *)s; } }, + { 1221, 163, 712, 704, []( void *d, const void *s ){ *(w32_SteamNetConnectionStatusChangedCallback_t_153a *)d = *(const u32_SteamNetConnectionStatusChangedCallback_t_153a *)s; } }, /*{ 1221, 152, 712, 704 },*/ { 1221, 151, 584, 576, []( void *d, const void *s ){ *(w32_SteamNetConnectionStatusChangedCallback_t_151 *)d = *(const u32_SteamNetConnectionStatusChangedCallback_t_151 *)s; } }, { 1303, 151, 288, 280, []( void *d, const void *s ){ *(w32_RemoteStorageAppSyncProgress_t_123 *)d = *(const u32_RemoteStorageAppSyncProgress_t_123 *)s; } }, /*{ 1303, 122, 288, 280 },*/ - { 1307, 162, 280, 272, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_128x *)d = *(const u32_RemoteStorageFileShareResult_t_128x *)s; } }, + { 1307, 163, 280, 272, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_128x *)d = *(const u32_RemoteStorageFileShareResult_t_128x *)s; } }, { 1307, 128, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_123 *)d = *(const u32_RemoteStorageFileShareResult_t_123 *)s; } }, /*{ 1307, 122, 16, 12 },*/ { 1308, 116, 40, 32, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_111x *)d = *(const u32_RemoteStorageDownloadUGCResult_t_111x *)s; } }, - { 1309, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_125 *)d = *(const u32_RemoteStoragePublishFileResult_t_125 *)s; } }, + { 1309, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_125 *)d = *(const u32_RemoteStoragePublishFileResult_t_125 *)s; } }, { 1309, 124, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_123 *)d = *(const u32_RemoteStoragePublishFileResult_t_123 *)s; } }, /*{ 1309, 122, 16, 12 },*/ { 1310, 117, 1744, 1732, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_116x *)d = *(const u32_RemoteStorageGetPublishedFileDetailsResult_t_116x *)s; } }, - { 1311, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageDeletePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageDeletePublishedFileResult_t_123 *)s; } }, + { 1311, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageDeletePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageDeletePublishedFileResult_t_123 *)s; } }, /*{ 1311, 122, 16, 12 },*/ - { 1312, 162, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)s; } }, + { 1312, 163, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)s; } }, /*{ 1312, 122, 416, 412 },*/ - { 1313, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageSubscribePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageSubscribePublishedFileResult_t_123 *)s; } }, + { 1313, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageSubscribePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageSubscribePublishedFileResult_t_123 *)s; } }, { 1313, 122, 4, 4, []( void *d, const void *s ){ *(w32_RemoteStorageSubscribePublishedFileResult_t_116x *)d = *(const u32_RemoteStorageSubscribePublishedFileResult_t_116x *)s; } }, - { 1314, 162, 616, 612, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)s; } }, + { 1314, 163, 616, 612, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)s; } }, /*{ 1314, 122, 616, 612 },*/ - { 1315, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUnsubscribePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageUnsubscribePublishedFileResult_t_123 *)s; } }, + { 1315, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUnsubscribePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageUnsubscribePublishedFileResult_t_123 *)s; } }, { 1315, 122, 4, 4, []( void *d, const void *s ){ *(w32_RemoteStorageUnsubscribePublishedFileResult_t_116x *)d = *(const u32_RemoteStorageUnsubscribePublishedFileResult_t_116x *)s; } }, - { 1316, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_125 *)d = *(const u32_RemoteStorageUpdatePublishedFileResult_t_125 *)s; } }, + { 1316, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_125 *)d = *(const u32_RemoteStorageUpdatePublishedFileResult_t_125 *)s; } }, { 1316, 124, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_123 *)d = *(const u32_RemoteStorageUpdatePublishedFileResult_t_123 *)s; } }, /*{ 1316, 122, 16, 12 },*/ - { 1317, 162, 296, 288, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_123 *)d = *(const u32_RemoteStorageDownloadUGCResult_t_123 *)s; } }, + { 1317, 163, 296, 288, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_123 *)d = *(const u32_RemoteStorageDownloadUGCResult_t_123 *)s; } }, /*{ 1317, 122, 296, 288 },*/ - { 1318, 162, 9760, 9748, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_126 *)d = *(const u32_RemoteStorageGetPublishedFileDetailsResult_t_126 *)s; } }, + { 1318, 163, 9760, 9748, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_126 *)d = *(const u32_RemoteStorageGetPublishedFileDetailsResult_t_126 *)s; } }, { 1318, 125, 9752, 9744, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_123 *)d = *(const u32_RemoteStorageGetPublishedFileDetailsResult_t_123 *)s; } }, /*{ 1318, 122, 9752, 9744 },*/ { 1318, 119, 9752, 9740, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_119 *)d = *(const u32_RemoteStorageGetPublishedFileDetailsResult_t_119 *)s; } }, { 1318, 118, 9496, 9484, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_118 *)d = *(const u32_RemoteStorageGetPublishedFileDetailsResult_t_118 *)s; } }, - { 1319, 162, 624, 620, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)d = *(const u32_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)s; } }, + { 1319, 163, 624, 620, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)d = *(const u32_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)s; } }, { 1319, 124, 616, 612, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateWorkshopFilesResult_t_123 *)s; } }, /*{ 1319, 122, 616, 612 },*/ - { 1320, 162, 32, 28, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)d = *(const u32_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)s; } }, + { 1320, 163, 32, 28, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)d = *(const u32_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)s; } }, /*{ 1320, 122, 32, 28 },*/ - { 1324, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)d = *(const u32_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)s; } }, + { 1324, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)d = *(const u32_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)s; } }, /*{ 1324, 122, 16, 12 },*/ - { 1325, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUserVoteDetails_t_123 *)d = *(const u32_RemoteStorageUserVoteDetails_t_123 *)s; } }, + { 1325, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUserVoteDetails_t_123 *)d = *(const u32_RemoteStorageUserVoteDetails_t_123 *)s; } }, /*{ 1325, 122, 24, 16 },*/ - { 1326, 162, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)s; } }, + { 1326, 163, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)d = *(const u32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)s; } }, /*{ 1326, 122, 416, 412 },*/ - { 1327, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageSetUserPublishedFileActionResult_t_123 *)d = *(const u32_RemoteStorageSetUserPublishedFileActionResult_t_123 *)s; } }, + { 1327, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageSetUserPublishedFileActionResult_t_123 *)d = *(const u32_RemoteStorageSetUserPublishedFileActionResult_t_123 *)s; } }, /*{ 1327, 122, 24, 16 },*/ - { 1330, 162, 24, 20, []( void *d, const void *s ){ *(w32_RemoteStoragePublishedFileUpdated_t *)d = *(const u32_RemoteStoragePublishedFileUpdated_t *)s; } }, - { 2101, 162, 32, 24, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_132x *)d = *(const u32_HTTPRequestCompleted_t_132x *)s; } }, + { 1330, 163, 24, 20, []( void *d, const void *s ){ *(w32_RemoteStoragePublishedFileUpdated_t *)d = *(const u32_RemoteStoragePublishedFileUpdated_t *)s; } }, + { 2101, 163, 32, 24, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_132x *)d = *(const u32_HTTPRequestCompleted_t_132x *)s; } }, { 2101, 132, 24, 20, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_123 *)d = *(const u32_HTTPRequestCompleted_t_123 *)s; } }, /*{ 2101, 122, 24, 20 },*/ - { 2102, 162, 16, 12, []( void *d, const void *s ){ *(w32_HTTPRequestHeadersReceived_t_123 *)d = *(const u32_HTTPRequestHeadersReceived_t_123 *)s; } }, + { 2102, 163, 16, 12, []( void *d, const void *s ){ *(w32_HTTPRequestHeadersReceived_t_123 *)d = *(const u32_HTTPRequestHeadersReceived_t_123 *)s; } }, /*{ 2102, 122, 16, 12 },*/ - { 2103, 162, 24, 20, []( void *d, const void *s ){ *(w32_HTTPRequestDataReceived_t_123 *)d = *(const u32_HTTPRequestDataReceived_t_123 *)s; } }, + { 2103, 163, 24, 20, []( void *d, const void *s ){ *(w32_HTTPRequestDataReceived_t_123 *)d = *(const u32_HTTPRequestDataReceived_t_123 *)s; } }, /*{ 2103, 122, 24, 20 },*/ - { 2803, 162, 40, 32, []( void *d, const void *s ){ *(w32_SteamInputConfigurationLoaded_t *)d = *(const u32_SteamInputConfigurationLoaded_t *)s; } }, - { 2804, 162, 32, 24, []( void *d, const void *s ){ *(w32_SteamInputGamepadSlotChange_t *)d = *(const u32_SteamInputGamepadSlotChange_t *)s; } }, - { 3402, 162, 9792, 9776, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_160 *)d = *(const u32_SteamUGCRequestUGCDetailsResult_t_160 *)s; } }, + { 2803, 163, 40, 32, []( void *d, const void *s ){ *(w32_SteamInputConfigurationLoaded_t *)d = *(const u32_SteamInputConfigurationLoaded_t *)s; } }, + { 2804, 163, 32, 24, []( void *d, const void *s ){ *(w32_SteamInputGamepadSlotChange_t *)d = *(const u32_SteamInputGamepadSlotChange_t *)s; } }, + { 3402, 163, 9792, 9776, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_160 *)d = *(const u32_SteamUGCRequestUGCDetailsResult_t_160 *)s; } }, { 3402, 159, 9784, 9768, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_128x *)d = *(const u32_SteamUGCRequestUGCDetailsResult_t_128x *)s; } }, { 3402, 129, 9776, 9764, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_129 *)d = *(const u32_SteamUGCRequestUGCDetailsResult_t_129 *)s; } }, { 3402, 128, 9768, 9760, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_126 *)d = *(const u32_SteamUGCRequestUGCDetailsResult_t_126 *)s; } }, - { 3403, 162, 24, 16, []( void *d, const void *s ){ *(w32_CreateItemResult_t *)d = *(const u32_CreateItemResult_t *)s; } }, - { 3405, 162, 32, 28, []( void *d, const void *s ){ *(w32_ItemInstalled_t_160 *)d = *(const u32_ItemInstalled_t_160 *)s; } }, + { 3403, 163, 24, 16, []( void *d, const void *s ){ *(w32_CreateItemResult_t *)d = *(const u32_CreateItemResult_t *)s; } }, + { 3405, 163, 32, 28, []( void *d, const void *s ){ *(w32_ItemInstalled_t_160 *)d = *(const u32_ItemInstalled_t_160 *)s; } }, { 3405, 159, 16, 12, []( void *d, const void *s ){ *(w32_ItemInstalled_t_130 *)d = *(const u32_ItemInstalled_t_130 *)s; } }, - { 3406, 162, 24, 16, []( void *d, const void *s ){ *(w32_DownloadItemResult_t *)d = *(const u32_DownloadItemResult_t *)s; } }, - { 3412, 162, 24, 20, []( void *d, const void *s ){ *(w32_AddUGCDependencyResult_t *)d = *(const u32_AddUGCDependencyResult_t *)s; } }, - { 3413, 162, 24, 20, []( void *d, const void *s ){ *(w32_RemoveUGCDependencyResult_t *)d = *(const u32_RemoveUGCDependencyResult_t *)s; } }, - { 3414, 162, 24, 16, []( void *d, const void *s ){ *(w32_AddAppDependencyResult_t *)d = *(const u32_AddAppDependencyResult_t *)s; } }, - { 3415, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoveAppDependencyResult_t *)d = *(const u32_RemoveAppDependencyResult_t *)s; } }, - { 3416, 162, 152, 148, []( void *d, const void *s ){ *(w32_GetAppDependenciesResult_t *)d = *(const u32_GetAppDependenciesResult_t *)s; } }, - { 3417, 162, 16, 12, []( void *d, const void *s ){ *(w32_DeleteItemResult_t *)d = *(const u32_DeleteItemResult_t *)s; } }, - { 4502, 162, 48, 48, []( void *d, const void *s ){ *(w32_HTML_NeedsPaint_t *)d = *(const u32_HTML_NeedsPaint_t *)s; } }, - { 4503, 162, 20, 20, []( void *d, const void *s ){ *(w32_HTML_StartRequest_t *)d = *(const u32_HTML_StartRequest_t *)s; } }, - { 4505, 162, 24, 24, []( void *d, const void *s ){ *(w32_HTML_URLChanged_t *)d = *(const u32_HTML_URLChanged_t *)s; } }, - { 4506, 162, 12, 12, []( void *d, const void *s ){ *(w32_HTML_FinishedRequest_t *)d = *(const u32_HTML_FinishedRequest_t *)s; } }, - { 4507, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_OpenLinkInNewTab_t *)d = *(const u32_HTML_OpenLinkInNewTab_t *)s; } }, - { 4508, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_ChangedTitle_t *)d = *(const u32_HTML_ChangedTitle_t *)s; } }, - { 4513, 162, 20, 20, []( void *d, const void *s ){ *(w32_HTML_LinkAtPosition_t *)d = *(const u32_HTML_LinkAtPosition_t *)s; } }, - { 4514, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_JSAlert_t *)d = *(const u32_HTML_JSAlert_t *)s; } }, - { 4515, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_JSConfirm_t *)d = *(const u32_HTML_JSConfirm_t *)s; } }, - { 4516, 162, 12, 12, []( void *d, const void *s ){ *(w32_HTML_FileOpenDialog_t *)d = *(const u32_HTML_FileOpenDialog_t *)s; } }, + { 3406, 163, 24, 16, []( void *d, const void *s ){ *(w32_DownloadItemResult_t *)d = *(const u32_DownloadItemResult_t *)s; } }, + { 3412, 163, 24, 20, []( void *d, const void *s ){ *(w32_AddUGCDependencyResult_t *)d = *(const u32_AddUGCDependencyResult_t *)s; } }, + { 3413, 163, 24, 20, []( void *d, const void *s ){ *(w32_RemoveUGCDependencyResult_t *)d = *(const u32_RemoveUGCDependencyResult_t *)s; } }, + { 3414, 163, 24, 16, []( void *d, const void *s ){ *(w32_AddAppDependencyResult_t *)d = *(const u32_AddAppDependencyResult_t *)s; } }, + { 3415, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoveAppDependencyResult_t *)d = *(const u32_RemoveAppDependencyResult_t *)s; } }, + { 3416, 163, 152, 148, []( void *d, const void *s ){ *(w32_GetAppDependenciesResult_t *)d = *(const u32_GetAppDependenciesResult_t *)s; } }, + { 3417, 163, 16, 12, []( void *d, const void *s ){ *(w32_DeleteItemResult_t *)d = *(const u32_DeleteItemResult_t *)s; } }, + { 4502, 163, 48, 48, []( void *d, const void *s ){ *(w32_HTML_NeedsPaint_t *)d = *(const u32_HTML_NeedsPaint_t *)s; } }, + { 4503, 163, 20, 20, []( void *d, const void *s ){ *(w32_HTML_StartRequest_t *)d = *(const u32_HTML_StartRequest_t *)s; } }, + { 4505, 163, 24, 24, []( void *d, const void *s ){ *(w32_HTML_URLChanged_t *)d = *(const u32_HTML_URLChanged_t *)s; } }, + { 4506, 163, 12, 12, []( void *d, const void *s ){ *(w32_HTML_FinishedRequest_t *)d = *(const u32_HTML_FinishedRequest_t *)s; } }, + { 4507, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_OpenLinkInNewTab_t *)d = *(const u32_HTML_OpenLinkInNewTab_t *)s; } }, + { 4508, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_ChangedTitle_t *)d = *(const u32_HTML_ChangedTitle_t *)s; } }, + { 4513, 163, 20, 20, []( void *d, const void *s ){ *(w32_HTML_LinkAtPosition_t *)d = *(const u32_HTML_LinkAtPosition_t *)s; } }, + { 4514, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_JSAlert_t *)d = *(const u32_HTML_JSAlert_t *)s; } }, + { 4515, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_JSConfirm_t *)d = *(const u32_HTML_JSConfirm_t *)s; } }, + { 4516, 163, 12, 12, []( void *d, const void *s ){ *(w32_HTML_FileOpenDialog_t *)d = *(const u32_HTML_FileOpenDialog_t *)s; } }, { 4517, 132, 16, 16, []( void *d, const void *s ){ *(w32_HTML_ComboNeedsPaint_t *)d = *(const u32_HTML_ComboNeedsPaint_t *)s; } }, - { 4521, 162, 28, 28, []( void *d, const void *s ){ *(w32_HTML_NewWindow_t_132x *)d = *(const u32_HTML_NewWindow_t_132x *)s; } }, + { 4521, 163, 28, 28, []( void *d, const void *s ){ *(w32_HTML_NewWindow_t_132x *)d = *(const u32_HTML_NewWindow_t_132x *)s; } }, { 4521, 132, 24, 24, []( void *d, const void *s ){ *(w32_HTML_NewWindow_t_130x *)d = *(const u32_HTML_NewWindow_t_130x *)s; } }, - { 4523, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_StatusText_t *)d = *(const u32_HTML_StatusText_t *)s; } }, - { 4524, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_ShowToolTip_t *)d = *(const u32_HTML_ShowToolTip_t *)s; } }, - { 4525, 162, 8, 8, []( void *d, const void *s ){ *(w32_HTML_UpdateToolTip_t *)d = *(const u32_HTML_UpdateToolTip_t *)s; } }, - { 4704, 162, 24, 20, []( void *d, const void *s ){ *(w32_SteamInventoryStartPurchaseResult_t *)d = *(const u32_SteamInventoryStartPurchaseResult_t *)s; } }, + { 4523, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_StatusText_t *)d = *(const u32_HTML_StatusText_t *)s; } }, + { 4524, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_ShowToolTip_t *)d = *(const u32_HTML_ShowToolTip_t *)s; } }, + { 4525, 163, 8, 8, []( void *d, const void *s ){ *(w32_HTML_UpdateToolTip_t *)d = *(const u32_HTML_UpdateToolTip_t *)s; } }, + { 4704, 163, 24, 20, []( void *d, const void *s ){ *(w32_SteamInventoryStartPurchaseResult_t *)d = *(const u32_SteamInventoryStartPurchaseResult_t *)s; } }, { 5211, 162, 16, 12, []( void *d, const void *s ){ *(w32_RequestPlayersForGameProgressCallback_t *)d = *(const u32_RequestPlayersForGameProgressCallback_t *)s; } }, { 5212, 162, 64, 56, []( void *d, const void *s ){ *(w32_RequestPlayersForGameResultCallback_t *)d = *(const u32_RequestPlayersForGameResultCallback_t *)s; } }, { 5213, 162, 24, 20, []( void *d, const void *s ){ *(w32_RequestPlayersForGameFinalResultCallback_t *)d = *(const u32_RequestPlayersForGameFinalResultCallback_t *)s; } }, { 5214, 162, 24, 20, []( void *d, const void *s ){ *(w32_SubmitPlayerResultResultCallback_t *)d = *(const u32_SubmitPlayerResultResultCallback_t *)s; } }, { 5215, 162, 16, 12, []( void *d, const void *s ){ *(w32_EndGameResultCallback_t *)d = *(const u32_EndGameResultCallback_t *)s; } }, - { 5301, 162, 280, 276, []( void *d, const void *s ){ *(w32_JoinPartyCallback_t *)d = *(const u32_JoinPartyCallback_t *)s; } }, - { 5302, 162, 16, 12, []( void *d, const void *s ){ *(w32_CreateBeaconCallback_t *)d = *(const u32_CreateBeaconCallback_t *)s; } }, + { 5301, 163, 280, 276, []( void *d, const void *s ){ *(w32_JoinPartyCallback_t *)d = *(const u32_JoinPartyCallback_t *)s; } }, + { 5302, 163, 16, 12, []( void *d, const void *s ){ *(w32_CreateBeaconCallback_t *)d = *(const u32_CreateBeaconCallback_t *)s; } }, }; #endif #if defined(__x86_64__) || defined(__aarch64__) const struct callback_def wow64_callback_data[] = { - { 152, 162, 24, 16, []( void *d, const void *s ){ *(w32_MicroTxnAuthorizationResponse_t_123 *)d = *(const u64_MicroTxnAuthorizationResponse_t_123 *)s; } }, + { 152, 163, 24, 16, []( void *d, const void *s ){ *(w32_MicroTxnAuthorizationResponse_t_123 *)d = *(const u64_MicroTxnAuthorizationResponse_t_123 *)s; } }, { 152, 122, 24, 24, []( void *d, const void *s ){ *(w32_MicroTxnAuthorizationResponse_t_109 *)d = *(const u64_MicroTxnAuthorizationResponse_t_109 *)s; } }, - { 209, 162, 40, 32, []( void *d, const void *s ){ *(w32_GSReputation_t_123 *)d = *(const u64_GSReputation_t_123 *)s; } }, + { 209, 163, 40, 32, []( void *d, const void *s ){ *(w32_GSReputation_t_123 *)d = *(const u64_GSReputation_t_123 *)s; } }, { 209, 122, 40, 40, []( void *d, const void *s ){ *(w32_GSReputation_t_108 *)d = *(const u64_GSReputation_t_108 *)s; } }, - { 513, 162, 16, 12, []( void *d, const void *s ){ *(w32_LobbyCreated_t_123 *)d = *(const u64_LobbyCreated_t_123 *)s; } }, + { 513, 163, 16, 12, []( void *d, const void *s ){ *(w32_LobbyCreated_t_123 *)d = *(const u64_LobbyCreated_t_123 *)s; } }, { 513, 122, 16, 16, []( void *d, const void *s ){ *(w32_LobbyCreated_t_099u *)d = *(const u64_LobbyCreated_t_099u *)s; } }, - { 1023, 162, 40, 36, []( void *d, const void *s ){ *(w32_FileDetailsResult_t *)d = *(const u64_FileDetailsResult_t *)s; } }, - { 1106, 162, 32, 28, []( void *d, const void *s ){ *(w32_LeaderboardScoreUploaded_t_123 *)d = *(const u64_LeaderboardScoreUploaded_t_123 *)s; } }, + { 1023, 163, 40, 36, []( void *d, const void *s ){ *(w32_FileDetailsResult_t *)d = *(const u64_FileDetailsResult_t *)s; } }, + { 1106, 163, 32, 28, []( void *d, const void *s ){ *(w32_LeaderboardScoreUploaded_t_123 *)d = *(const u64_LeaderboardScoreUploaded_t_123 *)s; } }, { 1106, 122, 32, 32, []( void *d, const void *s ){ *(w32_LeaderboardScoreUploaded_t_104 *)d = *(const u64_LeaderboardScoreUploaded_t_104 *)s; } }, - { 1111, 162, 16, 12, []( void *d, const void *s ){ *(w32_LeaderboardUGCSet_t_123 *)d = *(const u64_LeaderboardUGCSet_t_123 *)s; } }, + { 1111, 163, 16, 12, []( void *d, const void *s ){ *(w32_LeaderboardUGCSet_t_123 *)d = *(const u64_LeaderboardUGCSet_t_123 *)s; } }, { 1111, 122, 16, 16, []( void *d, const void *s ){ *(w32_LeaderboardUGCSet_t_111x *)d = *(const u64_LeaderboardUGCSet_t_111x *)s; } }, { 1112, 161, 24, 20, []( void *d, const void *s ){ *(w32_PS3TrophiesInstalled_t_123 *)d = *(const u64_PS3TrophiesInstalled_t_123 *)s; } }, { 1112, 122, 24, 24, []( void *d, const void *s ){ *(w32_PS3TrophiesInstalled_t_112x *)d = *(const u64_PS3TrophiesInstalled_t_112x *)s; } }, - { 1221, 162, 712, 704, []( void *d, const void *s ){ *(w32_SteamNetConnectionStatusChangedCallback_t_153a *)d = *(const u64_SteamNetConnectionStatusChangedCallback_t_153a *)s; } }, + { 1221, 163, 712, 704, []( void *d, const void *s ){ *(w32_SteamNetConnectionStatusChangedCallback_t_153a *)d = *(const u64_SteamNetConnectionStatusChangedCallback_t_153a *)s; } }, /*{ 1221, 152, 712, 704 },*/ { 1221, 151, 584, 576, []( void *d, const void *s ){ *(w32_SteamNetConnectionStatusChangedCallback_t_151 *)d = *(const u64_SteamNetConnectionStatusChangedCallback_t_151 *)s; } }, { 1303, 151, 288, 280, []( void *d, const void *s ){ *(w32_RemoteStorageAppSyncProgress_t_123 *)d = *(const u64_RemoteStorageAppSyncProgress_t_123 *)s; } }, { 1303, 122, 288, 288, []( void *d, const void *s ){ *(w32_RemoteStorageAppSyncProgress_t_111x *)d = *(const u64_RemoteStorageAppSyncProgress_t_111x *)s; } }, - { 1307, 162, 280, 272, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_128x *)d = *(const u64_RemoteStorageFileShareResult_t_128x *)s; } }, + { 1307, 163, 280, 272, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_128x *)d = *(const u64_RemoteStorageFileShareResult_t_128x *)s; } }, { 1307, 128, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_123 *)d = *(const u64_RemoteStorageFileShareResult_t_123 *)s; } }, { 1307, 122, 16, 16, []( void *d, const void *s ){ *(w32_RemoteStorageFileShareResult_t_111x *)d = *(const u64_RemoteStorageFileShareResult_t_111x *)s; } }, { 1308, 116, 40, 40, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_111x *)d = *(const u64_RemoteStorageDownloadUGCResult_t_111x *)s; } }, - { 1309, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_125 *)d = *(const u64_RemoteStoragePublishFileResult_t_125 *)s; } }, + { 1309, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_125 *)d = *(const u64_RemoteStoragePublishFileResult_t_125 *)s; } }, { 1309, 124, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_123 *)d = *(const u64_RemoteStoragePublishFileResult_t_123 *)s; } }, { 1309, 122, 16, 16, []( void *d, const void *s ){ *(w32_RemoteStoragePublishFileResult_t_116x *)d = *(const u64_RemoteStoragePublishFileResult_t_116x *)s; } }, { 1310, 117, 1744, 1744, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_116x *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_116x *)s; } }, - { 1311, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageDeletePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageDeletePublishedFileResult_t_123 *)s; } }, + { 1311, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageDeletePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageDeletePublishedFileResult_t_123 *)s; } }, { 1311, 122, 16, 16, []( void *d, const void *s ){ *(w32_RemoteStorageDeletePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageDeletePublishedFileResult_t_116x *)s; } }, - { 1312, 162, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)s; } }, + { 1312, 163, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)s; } }, { 1312, 122, 416, 416, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserPublishedFilesResult_t_116x *)d = *(const u64_RemoteStorageEnumerateUserPublishedFilesResult_t_116x *)s; } }, - { 1313, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageSubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageSubscribePublishedFileResult_t_123 *)s; } }, + { 1313, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageSubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageSubscribePublishedFileResult_t_123 *)s; } }, { 1313, 122, 4, 4, []( void *d, const void *s ){ *(w32_RemoteStorageSubscribePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageSubscribePublishedFileResult_t_116x *)s; } }, - { 1314, 162, 616, 612, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)s; } }, + { 1314, 163, 616, 612, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)s; } }, { 1314, 122, 616, 616, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSubscribedFilesResult_t_116x *)d = *(const u64_RemoteStorageEnumerateUserSubscribedFilesResult_t_116x *)s; } }, - { 1315, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUnsubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageUnsubscribePublishedFileResult_t_123 *)s; } }, + { 1315, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUnsubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageUnsubscribePublishedFileResult_t_123 *)s; } }, { 1315, 122, 4, 4, []( void *d, const void *s ){ *(w32_RemoteStorageUnsubscribePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageUnsubscribePublishedFileResult_t_116x *)s; } }, - { 1316, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_125 *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_125 *)s; } }, + { 1316, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_125 *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_125 *)s; } }, { 1316, 124, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_123 *)s; } }, { 1316, 122, 16, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUpdatePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_116x *)s; } }, - { 1317, 162, 296, 288, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_123 *)d = *(const u64_RemoteStorageDownloadUGCResult_t_123 *)s; } }, + { 1317, 163, 296, 288, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_123 *)d = *(const u64_RemoteStorageDownloadUGCResult_t_123 *)s; } }, { 1317, 122, 296, 296, []( void *d, const void *s ){ *(w32_RemoteStorageDownloadUGCResult_t_116x *)d = *(const u64_RemoteStorageDownloadUGCResult_t_116x *)s; } }, - { 1318, 162, 9760, 9748, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_126 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_126 *)s; } }, + { 1318, 163, 9760, 9748, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_126 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_126 *)s; } }, { 1318, 125, 9752, 9744, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_123 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_123 *)s; } }, { 1318, 122, 9752, 9752, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_119x *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_119x *)s; } }, /*{ 1318, 119, 9752, 9752 },*/ { 1318, 118, 9496, 9496, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedFileDetailsResult_t_118 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_118 *)s; } }, - { 1319, 162, 624, 620, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)s; } }, + { 1319, 163, 624, 620, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)s; } }, { 1319, 124, 616, 612, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_123 *)s; } }, { 1319, 122, 616, 616, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateWorkshopFilesResult_t_119 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_119 *)s; } }, - { 1320, 162, 32, 28, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)d = *(const u64_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)s; } }, + { 1320, 163, 32, 28, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)d = *(const u64_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)s; } }, { 1320, 122, 32, 32, []( void *d, const void *s ){ *(w32_RemoteStorageGetPublishedItemVoteDetailsResult_t_119 *)d = *(const u64_RemoteStorageGetPublishedItemVoteDetailsResult_t_119 *)s; } }, - { 1324, 162, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)d = *(const u64_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)s; } }, + { 1324, 163, 16, 12, []( void *d, const void *s ){ *(w32_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)d = *(const u64_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)s; } }, { 1324, 122, 16, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUpdateUserPublishedItemVoteResult_t_119 *)d = *(const u64_RemoteStorageUpdateUserPublishedItemVoteResult_t_119 *)s; } }, - { 1325, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUserVoteDetails_t_123 *)d = *(const u64_RemoteStorageUserVoteDetails_t_123 *)s; } }, + { 1325, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageUserVoteDetails_t_123 *)d = *(const u64_RemoteStorageUserVoteDetails_t_123 *)s; } }, { 1325, 122, 24, 24, []( void *d, const void *s ){ *(w32_RemoteStorageUserVoteDetails_t_119 *)d = *(const u64_RemoteStorageUserVoteDetails_t_119 *)s; } }, - { 1326, 162, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)s; } }, + { 1326, 163, 416, 412, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)s; } }, { 1326, 122, 416, 416, []( void *d, const void *s ){ *(w32_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_119 *)d = *(const u64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_119 *)s; } }, - { 1327, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageSetUserPublishedFileActionResult_t_123 *)d = *(const u64_RemoteStorageSetUserPublishedFileActionResult_t_123 *)s; } }, + { 1327, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoteStorageSetUserPublishedFileActionResult_t_123 *)d = *(const u64_RemoteStorageSetUserPublishedFileActionResult_t_123 *)s; } }, { 1327, 122, 24, 24, []( void *d, const void *s ){ *(w32_RemoteStorageSetUserPublishedFileActionResult_t_119 *)d = *(const u64_RemoteStorageSetUserPublishedFileActionResult_t_119 *)s; } }, - { 1330, 162, 24, 20, []( void *d, const void *s ){ *(w32_RemoteStoragePublishedFileUpdated_t *)d = *(const u64_RemoteStoragePublishedFileUpdated_t *)s; } }, - { 2101, 162, 32, 24, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_132x *)d = *(const u64_HTTPRequestCompleted_t_132x *)s; } }, + { 1330, 163, 24, 20, []( void *d, const void *s ){ *(w32_RemoteStoragePublishedFileUpdated_t *)d = *(const u64_RemoteStoragePublishedFileUpdated_t *)s; } }, + { 2101, 163, 32, 24, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_132x *)d = *(const u64_HTTPRequestCompleted_t_132x *)s; } }, { 2101, 132, 24, 20, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_123 *)d = *(const u64_HTTPRequestCompleted_t_123 *)s; } }, { 2101, 122, 24, 24, []( void *d, const void *s ){ *(w32_HTTPRequestCompleted_t_115 *)d = *(const u64_HTTPRequestCompleted_t_115 *)s; } }, - { 2102, 162, 16, 12, []( void *d, const void *s ){ *(w32_HTTPRequestHeadersReceived_t_123 *)d = *(const u64_HTTPRequestHeadersReceived_t_123 *)s; } }, + { 2102, 163, 16, 12, []( void *d, const void *s ){ *(w32_HTTPRequestHeadersReceived_t_123 *)d = *(const u64_HTTPRequestHeadersReceived_t_123 *)s; } }, { 2102, 122, 16, 16, []( void *d, const void *s ){ *(w32_HTTPRequestHeadersReceived_t_121x *)d = *(const u64_HTTPRequestHeadersReceived_t_121x *)s; } }, - { 2103, 162, 24, 20, []( void *d, const void *s ){ *(w32_HTTPRequestDataReceived_t_123 *)d = *(const u64_HTTPRequestDataReceived_t_123 *)s; } }, + { 2103, 163, 24, 20, []( void *d, const void *s ){ *(w32_HTTPRequestDataReceived_t_123 *)d = *(const u64_HTTPRequestDataReceived_t_123 *)s; } }, { 2103, 122, 24, 24, []( void *d, const void *s ){ *(w32_HTTPRequestDataReceived_t_121x *)d = *(const u64_HTTPRequestDataReceived_t_121x *)s; } }, - { 2803, 162, 40, 32, []( void *d, const void *s ){ *(w32_SteamInputConfigurationLoaded_t *)d = *(const u64_SteamInputConfigurationLoaded_t *)s; } }, - { 2804, 162, 32, 24, []( void *d, const void *s ){ *(w32_SteamInputGamepadSlotChange_t *)d = *(const u64_SteamInputGamepadSlotChange_t *)s; } }, - { 3402, 162, 9792, 9776, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_160 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_160 *)s; } }, + { 2803, 163, 40, 32, []( void *d, const void *s ){ *(w32_SteamInputConfigurationLoaded_t *)d = *(const u64_SteamInputConfigurationLoaded_t *)s; } }, + { 2804, 163, 32, 24, []( void *d, const void *s ){ *(w32_SteamInputGamepadSlotChange_t *)d = *(const u64_SteamInputGamepadSlotChange_t *)s; } }, + { 3402, 163, 9792, 9776, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_160 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_160 *)s; } }, { 3402, 159, 9784, 9768, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_128x *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_128x *)s; } }, { 3402, 129, 9776, 9764, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_129 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_129 *)s; } }, { 3402, 128, 9768, 9760, []( void *d, const void *s ){ *(w32_SteamUGCRequestUGCDetailsResult_t_126 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_126 *)s; } }, - { 3403, 162, 24, 16, []( void *d, const void *s ){ *(w32_CreateItemResult_t *)d = *(const u64_CreateItemResult_t *)s; } }, - { 3405, 162, 32, 28, []( void *d, const void *s ){ *(w32_ItemInstalled_t_160 *)d = *(const u64_ItemInstalled_t_160 *)s; } }, + { 3403, 163, 24, 16, []( void *d, const void *s ){ *(w32_CreateItemResult_t *)d = *(const u64_CreateItemResult_t *)s; } }, + { 3405, 163, 32, 28, []( void *d, const void *s ){ *(w32_ItemInstalled_t_160 *)d = *(const u64_ItemInstalled_t_160 *)s; } }, { 3405, 159, 16, 12, []( void *d, const void *s ){ *(w32_ItemInstalled_t_130 *)d = *(const u64_ItemInstalled_t_130 *)s; } }, - { 3406, 162, 24, 16, []( void *d, const void *s ){ *(w32_DownloadItemResult_t *)d = *(const u64_DownloadItemResult_t *)s; } }, - { 3412, 162, 24, 20, []( void *d, const void *s ){ *(w32_AddUGCDependencyResult_t *)d = *(const u64_AddUGCDependencyResult_t *)s; } }, - { 3413, 162, 24, 20, []( void *d, const void *s ){ *(w32_RemoveUGCDependencyResult_t *)d = *(const u64_RemoveUGCDependencyResult_t *)s; } }, - { 3414, 162, 24, 16, []( void *d, const void *s ){ *(w32_AddAppDependencyResult_t *)d = *(const u64_AddAppDependencyResult_t *)s; } }, - { 3415, 162, 24, 16, []( void *d, const void *s ){ *(w32_RemoveAppDependencyResult_t *)d = *(const u64_RemoveAppDependencyResult_t *)s; } }, - { 3416, 162, 152, 148, []( void *d, const void *s ){ *(w32_GetAppDependenciesResult_t *)d = *(const u64_GetAppDependenciesResult_t *)s; } }, - { 3417, 162, 16, 12, []( void *d, const void *s ){ *(w32_DeleteItemResult_t *)d = *(const u64_DeleteItemResult_t *)s; } }, - { 4502, 162, 48, 52, []( void *d, const void *s ){ *(w32_HTML_NeedsPaint_t *)d = *(const u64_HTML_NeedsPaint_t *)s; } }, - { 4503, 162, 20, 32, []( void *d, const void *s ){ *(w32_HTML_StartRequest_t *)d = *(const u64_HTML_StartRequest_t *)s; } }, - { 4505, 162, 24, 36, []( void *d, const void *s ){ *(w32_HTML_URLChanged_t *)d = *(const u64_HTML_URLChanged_t *)s; } }, - { 4506, 162, 12, 20, []( void *d, const void *s ){ *(w32_HTML_FinishedRequest_t *)d = *(const u64_HTML_FinishedRequest_t *)s; } }, - { 4507, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_OpenLinkInNewTab_t *)d = *(const u64_HTML_OpenLinkInNewTab_t *)s; } }, - { 4508, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_ChangedTitle_t *)d = *(const u64_HTML_ChangedTitle_t *)s; } }, - { 4513, 162, 20, 24, []( void *d, const void *s ){ *(w32_HTML_LinkAtPosition_t *)d = *(const u64_HTML_LinkAtPosition_t *)s; } }, - { 4514, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_JSAlert_t *)d = *(const u64_HTML_JSAlert_t *)s; } }, - { 4515, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_JSConfirm_t *)d = *(const u64_HTML_JSConfirm_t *)s; } }, - { 4516, 162, 12, 20, []( void *d, const void *s ){ *(w32_HTML_FileOpenDialog_t *)d = *(const u64_HTML_FileOpenDialog_t *)s; } }, + { 3406, 163, 24, 16, []( void *d, const void *s ){ *(w32_DownloadItemResult_t *)d = *(const u64_DownloadItemResult_t *)s; } }, + { 3412, 163, 24, 20, []( void *d, const void *s ){ *(w32_AddUGCDependencyResult_t *)d = *(const u64_AddUGCDependencyResult_t *)s; } }, + { 3413, 163, 24, 20, []( void *d, const void *s ){ *(w32_RemoveUGCDependencyResult_t *)d = *(const u64_RemoveUGCDependencyResult_t *)s; } }, + { 3414, 163, 24, 16, []( void *d, const void *s ){ *(w32_AddAppDependencyResult_t *)d = *(const u64_AddAppDependencyResult_t *)s; } }, + { 3415, 163, 24, 16, []( void *d, const void *s ){ *(w32_RemoveAppDependencyResult_t *)d = *(const u64_RemoveAppDependencyResult_t *)s; } }, + { 3416, 163, 152, 148, []( void *d, const void *s ){ *(w32_GetAppDependenciesResult_t *)d = *(const u64_GetAppDependenciesResult_t *)s; } }, + { 3417, 163, 16, 12, []( void *d, const void *s ){ *(w32_DeleteItemResult_t *)d = *(const u64_DeleteItemResult_t *)s; } }, + { 4502, 163, 48, 52, []( void *d, const void *s ){ *(w32_HTML_NeedsPaint_t *)d = *(const u64_HTML_NeedsPaint_t *)s; } }, + { 4503, 163, 20, 32, []( void *d, const void *s ){ *(w32_HTML_StartRequest_t *)d = *(const u64_HTML_StartRequest_t *)s; } }, + { 4505, 163, 24, 36, []( void *d, const void *s ){ *(w32_HTML_URLChanged_t *)d = *(const u64_HTML_URLChanged_t *)s; } }, + { 4506, 163, 12, 20, []( void *d, const void *s ){ *(w32_HTML_FinishedRequest_t *)d = *(const u64_HTML_FinishedRequest_t *)s; } }, + { 4507, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_OpenLinkInNewTab_t *)d = *(const u64_HTML_OpenLinkInNewTab_t *)s; } }, + { 4508, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_ChangedTitle_t *)d = *(const u64_HTML_ChangedTitle_t *)s; } }, + { 4513, 163, 20, 24, []( void *d, const void *s ){ *(w32_HTML_LinkAtPosition_t *)d = *(const u64_HTML_LinkAtPosition_t *)s; } }, + { 4514, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_JSAlert_t *)d = *(const u64_HTML_JSAlert_t *)s; } }, + { 4515, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_JSConfirm_t *)d = *(const u64_HTML_JSConfirm_t *)s; } }, + { 4516, 163, 12, 20, []( void *d, const void *s ){ *(w32_HTML_FileOpenDialog_t *)d = *(const u64_HTML_FileOpenDialog_t *)s; } }, { 4517, 132, 16, 20, []( void *d, const void *s ){ *(w32_HTML_ComboNeedsPaint_t *)d = *(const u64_HTML_ComboNeedsPaint_t *)s; } }, - { 4521, 162, 28, 32, []( void *d, const void *s ){ *(w32_HTML_NewWindow_t_132x *)d = *(const u64_HTML_NewWindow_t_132x *)s; } }, + { 4521, 163, 28, 32, []( void *d, const void *s ){ *(w32_HTML_NewWindow_t_132x *)d = *(const u64_HTML_NewWindow_t_132x *)s; } }, { 4521, 132, 24, 28, []( void *d, const void *s ){ *(w32_HTML_NewWindow_t_130x *)d = *(const u64_HTML_NewWindow_t_130x *)s; } }, - { 4523, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_StatusText_t *)d = *(const u64_HTML_StatusText_t *)s; } }, - { 4524, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_ShowToolTip_t *)d = *(const u64_HTML_ShowToolTip_t *)s; } }, - { 4525, 162, 8, 12, []( void *d, const void *s ){ *(w32_HTML_UpdateToolTip_t *)d = *(const u64_HTML_UpdateToolTip_t *)s; } }, - { 4704, 162, 24, 20, []( void *d, const void *s ){ *(w32_SteamInventoryStartPurchaseResult_t *)d = *(const u64_SteamInventoryStartPurchaseResult_t *)s; } }, + { 4523, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_StatusText_t *)d = *(const u64_HTML_StatusText_t *)s; } }, + { 4524, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_ShowToolTip_t *)d = *(const u64_HTML_ShowToolTip_t *)s; } }, + { 4525, 163, 8, 12, []( void *d, const void *s ){ *(w32_HTML_UpdateToolTip_t *)d = *(const u64_HTML_UpdateToolTip_t *)s; } }, + { 4704, 163, 24, 20, []( void *d, const void *s ){ *(w32_SteamInventoryStartPurchaseResult_t *)d = *(const u64_SteamInventoryStartPurchaseResult_t *)s; } }, { 5211, 162, 16, 12, []( void *d, const void *s ){ *(w32_RequestPlayersForGameProgressCallback_t *)d = *(const u64_RequestPlayersForGameProgressCallback_t *)s; } }, { 5212, 162, 64, 56, []( void *d, const void *s ){ *(w32_RequestPlayersForGameResultCallback_t *)d = *(const u64_RequestPlayersForGameResultCallback_t *)s; } }, { 5213, 162, 24, 20, []( void *d, const void *s ){ *(w32_RequestPlayersForGameFinalResultCallback_t *)d = *(const u64_RequestPlayersForGameFinalResultCallback_t *)s; } }, { 5214, 162, 24, 20, []( void *d, const void *s ){ *(w32_SubmitPlayerResultResultCallback_t *)d = *(const u64_SubmitPlayerResultResultCallback_t *)s; } }, { 5215, 162, 16, 12, []( void *d, const void *s ){ *(w32_EndGameResultCallback_t *)d = *(const u64_EndGameResultCallback_t *)s; } }, - { 5301, 162, 280, 276, []( void *d, const void *s ){ *(w32_JoinPartyCallback_t *)d = *(const u64_JoinPartyCallback_t *)s; } }, - { 5302, 162, 16, 12, []( void *d, const void *s ){ *(w32_CreateBeaconCallback_t *)d = *(const u64_CreateBeaconCallback_t *)s; } }, + { 5301, 163, 280, 276, []( void *d, const void *s ){ *(w32_JoinPartyCallback_t *)d = *(const u64_JoinPartyCallback_t *)s; } }, + { 5302, 163, 16, 12, []( void *d, const void *s ){ *(w32_CreateBeaconCallback_t *)d = *(const u64_CreateBeaconCallback_t *)s; } }, }; const struct callback_def callback_data[] = { - { 152, 162, 24, 16, []( void *d, const void *s ){ *(w64_MicroTxnAuthorizationResponse_t_123 *)d = *(const u64_MicroTxnAuthorizationResponse_t_123 *)s; } }, + { 152, 163, 24, 16, []( void *d, const void *s ){ *(w64_MicroTxnAuthorizationResponse_t_123 *)d = *(const u64_MicroTxnAuthorizationResponse_t_123 *)s; } }, { 152, 122, 24, 24, []( void *d, const void *s ){ *(w64_MicroTxnAuthorizationResponse_t_109 *)d = *(const u64_MicroTxnAuthorizationResponse_t_109 *)s; } }, - { 209, 162, 40, 32, []( void *d, const void *s ){ *(w64_GSReputation_t_123 *)d = *(const u64_GSReputation_t_123 *)s; } }, + { 209, 163, 40, 32, []( void *d, const void *s ){ *(w64_GSReputation_t_123 *)d = *(const u64_GSReputation_t_123 *)s; } }, { 209, 122, 40, 40, []( void *d, const void *s ){ *(w64_GSReputation_t_108 *)d = *(const u64_GSReputation_t_108 *)s; } }, - { 513, 162, 16, 12, []( void *d, const void *s ){ *(w64_LobbyCreated_t_123 *)d = *(const u64_LobbyCreated_t_123 *)s; } }, + { 513, 163, 16, 12, []( void *d, const void *s ){ *(w64_LobbyCreated_t_123 *)d = *(const u64_LobbyCreated_t_123 *)s; } }, { 513, 122, 16, 16, []( void *d, const void *s ){ *(w64_LobbyCreated_t_099u *)d = *(const u64_LobbyCreated_t_099u *)s; } }, - { 1023, 162, 40, 36, []( void *d, const void *s ){ *(w64_FileDetailsResult_t *)d = *(const u64_FileDetailsResult_t *)s; } }, - { 1106, 162, 32, 28, []( void *d, const void *s ){ *(w64_LeaderboardScoreUploaded_t_123 *)d = *(const u64_LeaderboardScoreUploaded_t_123 *)s; } }, + { 1023, 163, 40, 36, []( void *d, const void *s ){ *(w64_FileDetailsResult_t *)d = *(const u64_FileDetailsResult_t *)s; } }, + { 1106, 163, 32, 28, []( void *d, const void *s ){ *(w64_LeaderboardScoreUploaded_t_123 *)d = *(const u64_LeaderboardScoreUploaded_t_123 *)s; } }, { 1106, 122, 32, 32, []( void *d, const void *s ){ *(w64_LeaderboardScoreUploaded_t_104 *)d = *(const u64_LeaderboardScoreUploaded_t_104 *)s; } }, - { 1111, 162, 16, 12, []( void *d, const void *s ){ *(w64_LeaderboardUGCSet_t_123 *)d = *(const u64_LeaderboardUGCSet_t_123 *)s; } }, + { 1111, 163, 16, 12, []( void *d, const void *s ){ *(w64_LeaderboardUGCSet_t_123 *)d = *(const u64_LeaderboardUGCSet_t_123 *)s; } }, { 1111, 122, 16, 16, []( void *d, const void *s ){ *(w64_LeaderboardUGCSet_t_111x *)d = *(const u64_LeaderboardUGCSet_t_111x *)s; } }, { 1112, 161, 24, 20, []( void *d, const void *s ){ *(w64_PS3TrophiesInstalled_t_123 *)d = *(const u64_PS3TrophiesInstalled_t_123 *)s; } }, { 1112, 122, 24, 24, []( void *d, const void *s ){ *(w64_PS3TrophiesInstalled_t_112x *)d = *(const u64_PS3TrophiesInstalled_t_112x *)s; } }, - { 1221, 162, 712, 704, []( void *d, const void *s ){ *(w64_SteamNetConnectionStatusChangedCallback_t_153a *)d = *(const u64_SteamNetConnectionStatusChangedCallback_t_153a *)s; } }, + { 1221, 163, 712, 704, []( void *d, const void *s ){ *(w64_SteamNetConnectionStatusChangedCallback_t_153a *)d = *(const u64_SteamNetConnectionStatusChangedCallback_t_153a *)s; } }, /*{ 1221, 152, 712, 704 },*/ { 1221, 151, 584, 576, []( void *d, const void *s ){ *(w64_SteamNetConnectionStatusChangedCallback_t_151 *)d = *(const u64_SteamNetConnectionStatusChangedCallback_t_151 *)s; } }, { 1303, 151, 288, 280, []( void *d, const void *s ){ *(w64_RemoteStorageAppSyncProgress_t_123 *)d = *(const u64_RemoteStorageAppSyncProgress_t_123 *)s; } }, { 1303, 122, 288, 288, []( void *d, const void *s ){ *(w64_RemoteStorageAppSyncProgress_t_111x *)d = *(const u64_RemoteStorageAppSyncProgress_t_111x *)s; } }, - { 1307, 162, 280, 272, []( void *d, const void *s ){ *(w64_RemoteStorageFileShareResult_t_128x *)d = *(const u64_RemoteStorageFileShareResult_t_128x *)s; } }, + { 1307, 163, 280, 272, []( void *d, const void *s ){ *(w64_RemoteStorageFileShareResult_t_128x *)d = *(const u64_RemoteStorageFileShareResult_t_128x *)s; } }, { 1307, 128, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageFileShareResult_t_123 *)d = *(const u64_RemoteStorageFileShareResult_t_123 *)s; } }, { 1307, 122, 16, 16, []( void *d, const void *s ){ *(w64_RemoteStorageFileShareResult_t_111x *)d = *(const u64_RemoteStorageFileShareResult_t_111x *)s; } }, { 1308, 116, 40, 40, []( void *d, const void *s ){ *(w64_RemoteStorageDownloadUGCResult_t_111x *)d = *(const u64_RemoteStorageDownloadUGCResult_t_111x *)s; } }, - { 1309, 162, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStoragePublishFileResult_t_125 *)d = *(const u64_RemoteStoragePublishFileResult_t_125 *)s; } }, + { 1309, 163, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStoragePublishFileResult_t_125 *)d = *(const u64_RemoteStoragePublishFileResult_t_125 *)s; } }, { 1309, 124, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStoragePublishFileResult_t_123 *)d = *(const u64_RemoteStoragePublishFileResult_t_123 *)s; } }, { 1309, 122, 16, 16, []( void *d, const void *s ){ *(w64_RemoteStoragePublishFileResult_t_116x *)d = *(const u64_RemoteStoragePublishFileResult_t_116x *)s; } }, { 1310, 117, 1744, 1744, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedFileDetailsResult_t_116x *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_116x *)s; } }, - { 1311, 162, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageDeletePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageDeletePublishedFileResult_t_123 *)s; } }, + { 1311, 163, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageDeletePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageDeletePublishedFileResult_t_123 *)s; } }, { 1311, 122, 16, 16, []( void *d, const void *s ){ *(w64_RemoteStorageDeletePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageDeletePublishedFileResult_t_116x *)s; } }, - { 1312, 162, 416, 412, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)s; } }, + { 1312, 163, 416, 412, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserPublishedFilesResult_t_123 *)s; } }, { 1312, 122, 416, 416, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserPublishedFilesResult_t_116x *)d = *(const u64_RemoteStorageEnumerateUserPublishedFilesResult_t_116x *)s; } }, - { 1313, 162, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageSubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageSubscribePublishedFileResult_t_123 *)s; } }, + { 1313, 163, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageSubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageSubscribePublishedFileResult_t_123 *)s; } }, { 1313, 122, 4, 4, []( void *d, const void *s ){ *(w64_RemoteStorageSubscribePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageSubscribePublishedFileResult_t_116x *)s; } }, - { 1314, 162, 616, 612, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)s; } }, + { 1314, 163, 616, 612, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSubscribedFilesResult_t_123 *)s; } }, { 1314, 122, 616, 616, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserSubscribedFilesResult_t_116x *)d = *(const u64_RemoteStorageEnumerateUserSubscribedFilesResult_t_116x *)s; } }, - { 1315, 162, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageUnsubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageUnsubscribePublishedFileResult_t_123 *)s; } }, + { 1315, 163, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageUnsubscribePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageUnsubscribePublishedFileResult_t_123 *)s; } }, { 1315, 122, 4, 4, []( void *d, const void *s ){ *(w64_RemoteStorageUnsubscribePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageUnsubscribePublishedFileResult_t_116x *)s; } }, - { 1316, 162, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStorageUpdatePublishedFileResult_t_125 *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_125 *)s; } }, + { 1316, 163, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStorageUpdatePublishedFileResult_t_125 *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_125 *)s; } }, { 1316, 124, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageUpdatePublishedFileResult_t_123 *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_123 *)s; } }, { 1316, 122, 16, 16, []( void *d, const void *s ){ *(w64_RemoteStorageUpdatePublishedFileResult_t_116x *)d = *(const u64_RemoteStorageUpdatePublishedFileResult_t_116x *)s; } }, - { 1317, 162, 296, 288, []( void *d, const void *s ){ *(w64_RemoteStorageDownloadUGCResult_t_123 *)d = *(const u64_RemoteStorageDownloadUGCResult_t_123 *)s; } }, + { 1317, 163, 296, 288, []( void *d, const void *s ){ *(w64_RemoteStorageDownloadUGCResult_t_123 *)d = *(const u64_RemoteStorageDownloadUGCResult_t_123 *)s; } }, { 1317, 122, 296, 296, []( void *d, const void *s ){ *(w64_RemoteStorageDownloadUGCResult_t_116x *)d = *(const u64_RemoteStorageDownloadUGCResult_t_116x *)s; } }, - { 1318, 162, 9760, 9748, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedFileDetailsResult_t_126 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_126 *)s; } }, + { 1318, 163, 9760, 9748, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedFileDetailsResult_t_126 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_126 *)s; } }, { 1318, 125, 9752, 9744, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedFileDetailsResult_t_123 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_123 *)s; } }, { 1318, 122, 9752, 9752, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedFileDetailsResult_t_119x *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_119x *)s; } }, /*{ 1318, 119, 9752, 9752 },*/ { 1318, 118, 9496, 9496, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedFileDetailsResult_t_118 *)d = *(const u64_RemoteStorageGetPublishedFileDetailsResult_t_118 *)s; } }, - { 1319, 162, 624, 620, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)s; } }, + { 1319, 163, 624, 620, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_125 *)s; } }, { 1319, 124, 616, 612, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateWorkshopFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_123 *)s; } }, { 1319, 122, 616, 616, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateWorkshopFilesResult_t_119 *)d = *(const u64_RemoteStorageEnumerateWorkshopFilesResult_t_119 *)s; } }, - { 1320, 162, 32, 28, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)d = *(const u64_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)s; } }, + { 1320, 163, 32, 28, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)d = *(const u64_RemoteStorageGetPublishedItemVoteDetailsResult_t_123 *)s; } }, { 1320, 122, 32, 32, []( void *d, const void *s ){ *(w64_RemoteStorageGetPublishedItemVoteDetailsResult_t_119 *)d = *(const u64_RemoteStorageGetPublishedItemVoteDetailsResult_t_119 *)s; } }, - { 1324, 162, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)d = *(const u64_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)s; } }, + { 1324, 163, 16, 12, []( void *d, const void *s ){ *(w64_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)d = *(const u64_RemoteStorageUpdateUserPublishedItemVoteResult_t_123 *)s; } }, { 1324, 122, 16, 16, []( void *d, const void *s ){ *(w64_RemoteStorageUpdateUserPublishedItemVoteResult_t_119 *)d = *(const u64_RemoteStorageUpdateUserPublishedItemVoteResult_t_119 *)s; } }, - { 1325, 162, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStorageUserVoteDetails_t_123 *)d = *(const u64_RemoteStorageUserVoteDetails_t_123 *)s; } }, + { 1325, 163, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStorageUserVoteDetails_t_123 *)d = *(const u64_RemoteStorageUserVoteDetails_t_123 *)s; } }, { 1325, 122, 24, 24, []( void *d, const void *s ){ *(w64_RemoteStorageUserVoteDetails_t_119 *)d = *(const u64_RemoteStorageUserVoteDetails_t_119 *)s; } }, - { 1326, 162, 416, 412, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)s; } }, + { 1326, 163, 416, 412, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)d = *(const u64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_123 *)s; } }, { 1326, 122, 416, 416, []( void *d, const void *s ){ *(w64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_119 *)d = *(const u64_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_119 *)s; } }, - { 1327, 162, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStorageSetUserPublishedFileActionResult_t_123 *)d = *(const u64_RemoteStorageSetUserPublishedFileActionResult_t_123 *)s; } }, + { 1327, 163, 24, 16, []( void *d, const void *s ){ *(w64_RemoteStorageSetUserPublishedFileActionResult_t_123 *)d = *(const u64_RemoteStorageSetUserPublishedFileActionResult_t_123 *)s; } }, { 1327, 122, 24, 24, []( void *d, const void *s ){ *(w64_RemoteStorageSetUserPublishedFileActionResult_t_119 *)d = *(const u64_RemoteStorageSetUserPublishedFileActionResult_t_119 *)s; } }, - { 1330, 162, 24, 20, []( void *d, const void *s ){ *(w64_RemoteStoragePublishedFileUpdated_t *)d = *(const u64_RemoteStoragePublishedFileUpdated_t *)s; } }, - { 2101, 162, 32, 24, []( void *d, const void *s ){ *(w64_HTTPRequestCompleted_t_132x *)d = *(const u64_HTTPRequestCompleted_t_132x *)s; } }, + { 1330, 163, 24, 20, []( void *d, const void *s ){ *(w64_RemoteStoragePublishedFileUpdated_t *)d = *(const u64_RemoteStoragePublishedFileUpdated_t *)s; } }, + { 2101, 163, 32, 24, []( void *d, const void *s ){ *(w64_HTTPRequestCompleted_t_132x *)d = *(const u64_HTTPRequestCompleted_t_132x *)s; } }, { 2101, 132, 24, 20, []( void *d, const void *s ){ *(w64_HTTPRequestCompleted_t_123 *)d = *(const u64_HTTPRequestCompleted_t_123 *)s; } }, { 2101, 122, 24, 24, []( void *d, const void *s ){ *(w64_HTTPRequestCompleted_t_115 *)d = *(const u64_HTTPRequestCompleted_t_115 *)s; } }, - { 2102, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTTPRequestHeadersReceived_t_123 *)d = *(const u64_HTTPRequestHeadersReceived_t_123 *)s; } }, + { 2102, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTTPRequestHeadersReceived_t_123 *)d = *(const u64_HTTPRequestHeadersReceived_t_123 *)s; } }, { 2102, 122, 16, 16, []( void *d, const void *s ){ *(w64_HTTPRequestHeadersReceived_t_121x *)d = *(const u64_HTTPRequestHeadersReceived_t_121x *)s; } }, - { 2103, 162, 24, 20, []( void *d, const void *s ){ *(w64_HTTPRequestDataReceived_t_123 *)d = *(const u64_HTTPRequestDataReceived_t_123 *)s; } }, + { 2103, 163, 24, 20, []( void *d, const void *s ){ *(w64_HTTPRequestDataReceived_t_123 *)d = *(const u64_HTTPRequestDataReceived_t_123 *)s; } }, { 2103, 122, 24, 24, []( void *d, const void *s ){ *(w64_HTTPRequestDataReceived_t_121x *)d = *(const u64_HTTPRequestDataReceived_t_121x *)s; } }, - { 2803, 162, 40, 32, []( void *d, const void *s ){ *(w64_SteamInputConfigurationLoaded_t *)d = *(const u64_SteamInputConfigurationLoaded_t *)s; } }, - { 2804, 162, 32, 24, []( void *d, const void *s ){ *(w64_SteamInputGamepadSlotChange_t *)d = *(const u64_SteamInputGamepadSlotChange_t *)s; } }, - { 3402, 162, 9792, 9776, []( void *d, const void *s ){ *(w64_SteamUGCRequestUGCDetailsResult_t_160 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_160 *)s; } }, + { 2803, 163, 40, 32, []( void *d, const void *s ){ *(w64_SteamInputConfigurationLoaded_t *)d = *(const u64_SteamInputConfigurationLoaded_t *)s; } }, + { 2804, 163, 32, 24, []( void *d, const void *s ){ *(w64_SteamInputGamepadSlotChange_t *)d = *(const u64_SteamInputGamepadSlotChange_t *)s; } }, + { 3402, 163, 9792, 9776, []( void *d, const void *s ){ *(w64_SteamUGCRequestUGCDetailsResult_t_160 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_160 *)s; } }, { 3402, 159, 9784, 9768, []( void *d, const void *s ){ *(w64_SteamUGCRequestUGCDetailsResult_t_128x *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_128x *)s; } }, { 3402, 129, 9776, 9764, []( void *d, const void *s ){ *(w64_SteamUGCRequestUGCDetailsResult_t_129 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_129 *)s; } }, { 3402, 128, 9768, 9760, []( void *d, const void *s ){ *(w64_SteamUGCRequestUGCDetailsResult_t_126 *)d = *(const u64_SteamUGCRequestUGCDetailsResult_t_126 *)s; } }, - { 3403, 162, 24, 16, []( void *d, const void *s ){ *(w64_CreateItemResult_t *)d = *(const u64_CreateItemResult_t *)s; } }, - { 3405, 162, 32, 28, []( void *d, const void *s ){ *(w64_ItemInstalled_t_160 *)d = *(const u64_ItemInstalled_t_160 *)s; } }, + { 3403, 163, 24, 16, []( void *d, const void *s ){ *(w64_CreateItemResult_t *)d = *(const u64_CreateItemResult_t *)s; } }, + { 3405, 163, 32, 28, []( void *d, const void *s ){ *(w64_ItemInstalled_t_160 *)d = *(const u64_ItemInstalled_t_160 *)s; } }, { 3405, 159, 16, 12, []( void *d, const void *s ){ *(w64_ItemInstalled_t_130 *)d = *(const u64_ItemInstalled_t_130 *)s; } }, - { 3406, 162, 24, 16, []( void *d, const void *s ){ *(w64_DownloadItemResult_t *)d = *(const u64_DownloadItemResult_t *)s; } }, - { 3412, 162, 24, 20, []( void *d, const void *s ){ *(w64_AddUGCDependencyResult_t *)d = *(const u64_AddUGCDependencyResult_t *)s; } }, - { 3413, 162, 24, 20, []( void *d, const void *s ){ *(w64_RemoveUGCDependencyResult_t *)d = *(const u64_RemoveUGCDependencyResult_t *)s; } }, - { 3414, 162, 24, 16, []( void *d, const void *s ){ *(w64_AddAppDependencyResult_t *)d = *(const u64_AddAppDependencyResult_t *)s; } }, - { 3415, 162, 24, 16, []( void *d, const void *s ){ *(w64_RemoveAppDependencyResult_t *)d = *(const u64_RemoveAppDependencyResult_t *)s; } }, - { 3416, 162, 152, 148, []( void *d, const void *s ){ *(w64_GetAppDependenciesResult_t *)d = *(const u64_GetAppDependenciesResult_t *)s; } }, - { 3417, 162, 16, 12, []( void *d, const void *s ){ *(w64_DeleteItemResult_t *)d = *(const u64_DeleteItemResult_t *)s; } }, - { 4502, 162, 56, 52, []( void *d, const void *s ){ *(w64_HTML_NeedsPaint_t *)d = *(const u64_HTML_NeedsPaint_t *)s; } }, - { 4503, 162, 40, 32, []( void *d, const void *s ){ *(w64_HTML_StartRequest_t *)d = *(const u64_HTML_StartRequest_t *)s; } }, - { 4505, 162, 48, 36, []( void *d, const void *s ){ *(w64_HTML_URLChanged_t *)d = *(const u64_HTML_URLChanged_t *)s; } }, - { 4506, 162, 24, 20, []( void *d, const void *s ){ *(w64_HTML_FinishedRequest_t *)d = *(const u64_HTML_FinishedRequest_t *)s; } }, - { 4507, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_OpenLinkInNewTab_t *)d = *(const u64_HTML_OpenLinkInNewTab_t *)s; } }, - { 4508, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_ChangedTitle_t *)d = *(const u64_HTML_ChangedTitle_t *)s; } }, - { 4513, 162, 32, 24, []( void *d, const void *s ){ *(w64_HTML_LinkAtPosition_t *)d = *(const u64_HTML_LinkAtPosition_t *)s; } }, - { 4514, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_JSAlert_t *)d = *(const u64_HTML_JSAlert_t *)s; } }, - { 4515, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_JSConfirm_t *)d = *(const u64_HTML_JSConfirm_t *)s; } }, - { 4516, 162, 24, 20, []( void *d, const void *s ){ *(w64_HTML_FileOpenDialog_t *)d = *(const u64_HTML_FileOpenDialog_t *)s; } }, + { 3406, 163, 24, 16, []( void *d, const void *s ){ *(w64_DownloadItemResult_t *)d = *(const u64_DownloadItemResult_t *)s; } }, + { 3412, 163, 24, 20, []( void *d, const void *s ){ *(w64_AddUGCDependencyResult_t *)d = *(const u64_AddUGCDependencyResult_t *)s; } }, + { 3413, 163, 24, 20, []( void *d, const void *s ){ *(w64_RemoveUGCDependencyResult_t *)d = *(const u64_RemoveUGCDependencyResult_t *)s; } }, + { 3414, 163, 24, 16, []( void *d, const void *s ){ *(w64_AddAppDependencyResult_t *)d = *(const u64_AddAppDependencyResult_t *)s; } }, + { 3415, 163, 24, 16, []( void *d, const void *s ){ *(w64_RemoveAppDependencyResult_t *)d = *(const u64_RemoveAppDependencyResult_t *)s; } }, + { 3416, 163, 152, 148, []( void *d, const void *s ){ *(w64_GetAppDependenciesResult_t *)d = *(const u64_GetAppDependenciesResult_t *)s; } }, + { 3417, 163, 16, 12, []( void *d, const void *s ){ *(w64_DeleteItemResult_t *)d = *(const u64_DeleteItemResult_t *)s; } }, + { 4502, 163, 56, 52, []( void *d, const void *s ){ *(w64_HTML_NeedsPaint_t *)d = *(const u64_HTML_NeedsPaint_t *)s; } }, + { 4503, 163, 40, 32, []( void *d, const void *s ){ *(w64_HTML_StartRequest_t *)d = *(const u64_HTML_StartRequest_t *)s; } }, + { 4505, 163, 48, 36, []( void *d, const void *s ){ *(w64_HTML_URLChanged_t *)d = *(const u64_HTML_URLChanged_t *)s; } }, + { 4506, 163, 24, 20, []( void *d, const void *s ){ *(w64_HTML_FinishedRequest_t *)d = *(const u64_HTML_FinishedRequest_t *)s; } }, + { 4507, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_OpenLinkInNewTab_t *)d = *(const u64_HTML_OpenLinkInNewTab_t *)s; } }, + { 4508, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_ChangedTitle_t *)d = *(const u64_HTML_ChangedTitle_t *)s; } }, + { 4513, 163, 32, 24, []( void *d, const void *s ){ *(w64_HTML_LinkAtPosition_t *)d = *(const u64_HTML_LinkAtPosition_t *)s; } }, + { 4514, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_JSAlert_t *)d = *(const u64_HTML_JSAlert_t *)s; } }, + { 4515, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_JSConfirm_t *)d = *(const u64_HTML_JSConfirm_t *)s; } }, + { 4516, 163, 24, 20, []( void *d, const void *s ){ *(w64_HTML_FileOpenDialog_t *)d = *(const u64_HTML_FileOpenDialog_t *)s; } }, { 4517, 132, 24, 20, []( void *d, const void *s ){ *(w64_HTML_ComboNeedsPaint_t *)d = *(const u64_HTML_ComboNeedsPaint_t *)s; } }, - { 4521, 162, 40, 32, []( void *d, const void *s ){ *(w64_HTML_NewWindow_t_132x *)d = *(const u64_HTML_NewWindow_t_132x *)s; } }, + { 4521, 163, 40, 32, []( void *d, const void *s ){ *(w64_HTML_NewWindow_t_132x *)d = *(const u64_HTML_NewWindow_t_132x *)s; } }, { 4521, 132, 32, 28, []( void *d, const void *s ){ *(w64_HTML_NewWindow_t_130x *)d = *(const u64_HTML_NewWindow_t_130x *)s; } }, - { 4523, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_StatusText_t *)d = *(const u64_HTML_StatusText_t *)s; } }, - { 4524, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_ShowToolTip_t *)d = *(const u64_HTML_ShowToolTip_t *)s; } }, - { 4525, 162, 16, 12, []( void *d, const void *s ){ *(w64_HTML_UpdateToolTip_t *)d = *(const u64_HTML_UpdateToolTip_t *)s; } }, - { 4704, 162, 24, 20, []( void *d, const void *s ){ *(w64_SteamInventoryStartPurchaseResult_t *)d = *(const u64_SteamInventoryStartPurchaseResult_t *)s; } }, + { 4523, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_StatusText_t *)d = *(const u64_HTML_StatusText_t *)s; } }, + { 4524, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_ShowToolTip_t *)d = *(const u64_HTML_ShowToolTip_t *)s; } }, + { 4525, 163, 16, 12, []( void *d, const void *s ){ *(w64_HTML_UpdateToolTip_t *)d = *(const u64_HTML_UpdateToolTip_t *)s; } }, + { 4704, 163, 24, 20, []( void *d, const void *s ){ *(w64_SteamInventoryStartPurchaseResult_t *)d = *(const u64_SteamInventoryStartPurchaseResult_t *)s; } }, { 5211, 162, 16, 12, []( void *d, const void *s ){ *(w64_RequestPlayersForGameProgressCallback_t *)d = *(const u64_RequestPlayersForGameProgressCallback_t *)s; } }, { 5212, 162, 64, 56, []( void *d, const void *s ){ *(w64_RequestPlayersForGameResultCallback_t *)d = *(const u64_RequestPlayersForGameResultCallback_t *)s; } }, { 5213, 162, 24, 20, []( void *d, const void *s ){ *(w64_RequestPlayersForGameFinalResultCallback_t *)d = *(const u64_RequestPlayersForGameFinalResultCallback_t *)s; } }, { 5214, 162, 24, 20, []( void *d, const void *s ){ *(w64_SubmitPlayerResultResultCallback_t *)d = *(const u64_SubmitPlayerResultResultCallback_t *)s; } }, { 5215, 162, 16, 12, []( void *d, const void *s ){ *(w64_EndGameResultCallback_t *)d = *(const u64_EndGameResultCallback_t *)s; } }, - { 5301, 162, 280, 276, []( void *d, const void *s ){ *(w64_JoinPartyCallback_t *)d = *(const u64_JoinPartyCallback_t *)s; } }, - { 5302, 162, 16, 12, []( void *d, const void *s ){ *(w64_CreateBeaconCallback_t *)d = *(const u64_CreateBeaconCallback_t *)s; } }, + { 5301, 163, 280, 276, []( void *d, const void *s ){ *(w64_JoinPartyCallback_t *)d = *(const u64_JoinPartyCallback_t *)s; } }, + { 5302, 163, 16, 12, []( void *d, const void *s ){ *(w64_CreateBeaconCallback_t *)d = *(const u64_CreateBeaconCallback_t *)s; } }, }; #endif const unsigned int wow64_callback_data_size = ARRAY_SIZE(wow64_callback_data); diff --git a/lsteamclient/unixlib_generated.h b/lsteamclient/unixlib_generated.h index 73566516008..60db476aace 100644 --- a/lsteamclient/unixlib_generated.h +++ b/lsteamclient/unixlib_generated.h @@ -45901,6 +45901,708 @@ struct wow64_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFStringForApp_params W32_PTR(int32_t *pnBufferSize, pnBufferSize, int32_t *); }; +struct ISteamBilling_SteamBilling002_InitCreditCardPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + uint32_t nCardIndex; + int8_t bStoreCardInfo; +}; + +struct wow64_ISteamBilling_SteamBilling002_InitCreditCardPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + uint32_t nCardIndex; + int8_t bStoreCardInfo; +}; + +struct ISteamBilling_SteamBilling002_InitPayPalPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; +}; + +struct wow64_ISteamBilling_SteamBilling002_InitPayPalPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; +}; + +struct ISteamBilling_SteamBilling002_GetActivationCodeInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchActivationCode; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetActivationCodeInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchActivationCode, pchActivationCode, const char *); +}; + +struct ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchActivationCode; +}; + +struct wow64_ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchActivationCode, pchActivationCode, const char *); +}; + +struct ISteamBilling_SteamBilling002_GetFinalPrice_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetFinalPrice_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct ISteamBilling_SteamBilling002_CancelPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_CancelPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct ISteamBilling_SteamBilling002_CompletePurchase_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_CompletePurchase_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct ISteamBilling_SteamBilling002_UpdateCardInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_UpdateCardInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; +}; + +struct ISteamBilling_SteamBilling002_DeleteCard_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_DeleteCard_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; +}; + +struct ISteamBilling_SteamBilling002_GetCardList_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetCardList_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct ISteamBilling_SteamBilling002_CancelLicense_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + int32_t nCancelReason; +}; + +struct wow64_ISteamBilling_SteamBilling002_CancelLicense_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + int32_t nCancelReason; +}; + +struct ISteamBilling_SteamBilling002_GetPurchaseReceipts_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bUnacknowledgedOnly; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetPurchaseReceipts_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bUnacknowledgedOnly; +}; + +struct ISteamBilling_SteamBilling002_SetBillingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + const char *pchFirstName; + const char *pchLastName; + const char *pchAddress1; + const char *pchAddress2; + const char *pchCity; + const char *pchPostcode; + const char *pchState; + const char *pchCountry; + const char *pchPhone; +}; + +struct wow64_ISteamBilling_SteamBilling002_SetBillingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + W32_PTR(const char *pchFirstName, pchFirstName, const char *); + W32_PTR(const char *pchLastName, pchLastName, const char *); + W32_PTR(const char *pchAddress1, pchAddress1, const char *); + W32_PTR(const char *pchAddress2, pchAddress2, const char *); + W32_PTR(const char *pchCity, pchCity, const char *); + W32_PTR(const char *pchPostcode, pchPostcode, const char *); + W32_PTR(const char *pchState, pchState, const char *); + W32_PTR(const char *pchCountry, pchCountry, const char *); + W32_PTR(const char *pchPhone, pchPhone, const char *); +}; + +struct ISteamBilling_SteamBilling002_GetBillingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + char *pchFirstName; + char *pchLastName; + char *pchAddress1; + char *pchAddress2; + char *pchCity; + char *pchPostcode; + char *pchState; + char *pchCountry; + char *pchPhone; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetBillingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + W32_PTR(char *pchFirstName, pchFirstName, char *); + W32_PTR(char *pchLastName, pchLastName, char *); + W32_PTR(char *pchAddress1, pchAddress1, char *); + W32_PTR(char *pchAddress2, pchAddress2, char *); + W32_PTR(char *pchCity, pchCity, char *); + W32_PTR(char *pchPostcode, pchPostcode, char *); + W32_PTR(char *pchState, pchState, char *); + W32_PTR(char *pchCountry, pchCountry, char *); + W32_PTR(char *pchPhone, pchPhone, char *); +}; + +struct ISteamBilling_SteamBilling002_SetShippingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchFirstName; + const char *pchLastName; + const char *pchAddress1; + const char *pchAddress2; + const char *pchCity; + const char *pchPostcode; + const char *pchState; + const char *pchCountry; + const char *pchPhone; +}; + +struct wow64_ISteamBilling_SteamBilling002_SetShippingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchFirstName, pchFirstName, const char *); + W32_PTR(const char *pchLastName, pchLastName, const char *); + W32_PTR(const char *pchAddress1, pchAddress1, const char *); + W32_PTR(const char *pchAddress2, pchAddress2, const char *); + W32_PTR(const char *pchCity, pchCity, const char *); + W32_PTR(const char *pchPostcode, pchPostcode, const char *); + W32_PTR(const char *pchState, pchState, const char *); + W32_PTR(const char *pchCountry, pchCountry, const char *); + W32_PTR(const char *pchPhone, pchPhone, const char *); +}; + +struct ISteamBilling_SteamBilling002_GetShippingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + char *pchFirstName; + char *pchLastName; + char *pchAddress1; + char *pchAddress2; + char *pchCity; + char *pchPostcode; + char *pchState; + char *pchCountry; + char *pchPhone; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetShippingAddress_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(char *pchFirstName, pchFirstName, char *); + W32_PTR(char *pchLastName, pchLastName, char *); + W32_PTR(char *pchAddress1, pchAddress1, char *); + W32_PTR(char *pchAddress2, pchAddress2, char *); + W32_PTR(char *pchCity, pchCity, char *); + W32_PTR(char *pchPostcode, pchPostcode, char *); + W32_PTR(char *pchState, pchState, char *); + W32_PTR(char *pchCountry, pchCountry, char *); + W32_PTR(char *pchPhone, pchPhone, char *); +}; + +struct ISteamBilling_SteamBilling002_SetCardInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + int32_t eCreditCardType; + const char *pchCardNumber; + const char *pchCardHolderFirstName; + const char *pchCardHolderLastName; + const char *pchCardExpYear; + const char *pchCardExpMonth; + const char *pchCardCVV2; +}; + +struct wow64_ISteamBilling_SteamBilling002_SetCardInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + int32_t eCreditCardType; + W32_PTR(const char *pchCardNumber, pchCardNumber, const char *); + W32_PTR(const char *pchCardHolderFirstName, pchCardHolderFirstName, const char *); + W32_PTR(const char *pchCardHolderLastName, pchCardHolderLastName, const char *); + W32_PTR(const char *pchCardExpYear, pchCardExpYear, const char *); + W32_PTR(const char *pchCardExpMonth, pchCardExpMonth, const char *); + W32_PTR(const char *pchCardCVV2, pchCardCVV2, const char *); +}; + +struct ISteamBilling_SteamBilling002_GetCardInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + int32_t *eCreditCardType; + char *pchCardNumber; + char *pchCardHolderFirstName; + char *pchCardHolderLastName; + char *pchCardExpYear; + char *pchCardExpMonth; + char *pchCardCVV2; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetCardInfo_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t nCardIndex; + W32_PTR(int32_t *eCreditCardType, eCreditCardType, int32_t *); + W32_PTR(char *pchCardNumber, pchCardNumber, char *); + W32_PTR(char *pchCardHolderFirstName, pchCardHolderFirstName, char *); + W32_PTR(char *pchCardHolderLastName, pchCardHolderLastName, char *); + W32_PTR(char *pchCardExpYear, pchCardExpYear, char *); + W32_PTR(char *pchCardExpMonth, pchCardExpMonth, char *); + W32_PTR(char *pchCardCVV2, pchCardCVV2, char *); +}; + +struct ISteamBilling_SteamBilling002_GetLicensePackageID_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicensePackageID_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicenseFlags_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicenseFlags_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t nLicenseIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t nLicenseIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptPackageID_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptPackageID_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptStatus_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptStatus_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptResultDetail_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptResultDetail_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptTransTime_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptTransTime_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptTransID_params +{ + struct u_iface u_iface; + uint64_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptTransID_params +{ + struct u_iface u_iface; + uint64_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params +{ + struct u_iface u_iface; + int32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptBaseCost_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptBaseCost_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptTax_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptTax_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptShipping_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptShipping_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetReceiptCountryCode_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t nReceiptIndex; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetReceiptCountryCode_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t nReceiptIndex; +}; + +struct ISteamBilling_SteamBilling002_GetNumLicenses_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetNumLicenses_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct ISteamBilling_SteamBilling002_GetNumReceipts_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetNumReceipts_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct ISteamBilling_SteamBilling002_PurchaseWithMachineID_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + const char *pchCustomData; +}; + +struct wow64_ISteamBilling_SteamBilling002_PurchaseWithMachineID_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + W32_PTR(const char *pchCustomData, pchCustomData, const char *); +}; + +struct ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + int64_t nAccountNum; + const char *pchState; + const char *pchCountryCode; +}; + +struct wow64_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t nPackageID; + int64_t nAccountNum; + W32_PTR(const char *pchState, pchState, const char *); + W32_PTR(const char *pchCountryCode, pchCountryCode, const char *); +}; + +struct ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params +{ + struct u_iface u_iface; + int8_t _ret; + int64_t *pnAccountNum; + char *pchState; + char *pchCountryCode; +}; + +struct wow64_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(int64_t *pnAccountNum, pnAccountNum, int64_t *); + W32_PTR(char *pchState, pchState, char *); + W32_PTR(char *pchCountryCode, pchCountryCode, char *); +}; + struct ISteamClient_SteamClient006_CreateSteamPipe_params { struct u_iface u_iface; @@ -53689,6 +54391,612 @@ struct wow64_ISteamClient_SteamClient021_DestroyAllInterfaces_params struct u_iface u_iface; }; +struct ISteamClient_SteamClient023_CreateSteamPipe_params +{ + struct u_iface u_iface; + int32_t _ret; +}; + +struct wow64_ISteamClient_SteamClient023_CreateSteamPipe_params +{ + struct u_iface u_iface; + int32_t _ret; +}; + +struct ISteamClient_SteamClient023_BReleaseSteamPipe_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t hSteamPipe; +}; + +struct wow64_ISteamClient_SteamClient023_BReleaseSteamPipe_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t hSteamPipe; +}; + +struct ISteamClient_SteamClient023_ConnectToGlobalUser_params +{ + struct u_iface u_iface; + int32_t _ret; + int32_t hSteamPipe; +}; + +struct wow64_ISteamClient_SteamClient023_ConnectToGlobalUser_params +{ + struct u_iface u_iface; + int32_t _ret; + int32_t hSteamPipe; +}; + +struct ISteamClient_SteamClient023_CreateLocalUser_params +{ + struct u_iface u_iface; + int32_t _ret; + int32_t *phSteamPipe; + uint32_t eAccountType; +}; + +struct wow64_ISteamClient_SteamClient023_CreateLocalUser_params +{ + struct u_iface u_iface; + int32_t _ret; + W32_PTR(int32_t *phSteamPipe, phSteamPipe, int32_t *); + uint32_t eAccountType; +}; + +struct ISteamClient_SteamClient023_ReleaseUser_params +{ + struct u_iface u_iface; + int32_t hSteamPipe; + int32_t hUser; +}; + +struct wow64_ISteamClient_SteamClient023_ReleaseUser_params +{ + struct u_iface u_iface; + int32_t hSteamPipe; + int32_t hUser; +}; + +struct ISteamClient_SteamClient023_GetISteamUser_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamUser_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamGameServer_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamGameServer_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_SetLocalIPBinding_params +{ + struct u_iface u_iface; + const SteamIPAddress_t *unIP; + uint16_t usPort; +}; + +struct wow64_ISteamClient_SteamClient023_SetLocalIPBinding_params +{ + struct u_iface u_iface; + W32_PTR(const SteamIPAddress_t *unIP, unIP, const SteamIPAddress_t *); + uint16_t usPort; +}; + +struct ISteamClient_SteamClient023_GetISteamFriends_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamFriends_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamUtils_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamUtils_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamMatchmaking_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamMatchmaking_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamMatchmakingServers_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamMatchmakingServers_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamGenericInterface_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamGenericInterface_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamUserStats_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamUserStats_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamGameServerStats_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamGameServerStats_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamApps_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamApps_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamNetworking_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamNetworking_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamRemoteStorage_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamRemoteStorage_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamScreenshots_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamScreenshots_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_RunFrame_params +{ + struct u_iface u_iface; +}; + +struct wow64_ISteamClient_SteamClient023_RunFrame_params +{ + struct u_iface u_iface; +}; + +struct ISteamClient_SteamClient023_GetIPCCallCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_ISteamClient_SteamClient023_GetIPCCallCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct ISteamClient_SteamClient023_SetWarningMessageHook_params +{ + struct u_iface u_iface; + void (*W_CDECL pFunction)(int32_t, const char *); +}; + +struct wow64_ISteamClient_SteamClient023_SetWarningMessageHook_params +{ + struct u_iface u_iface; + W32_PTR(void (*W_CDECL pFunction)(int32_t, const char *), pFunction, void (*W_CDECL )(int32_t, const char *)); +}; + +struct ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct ISteamClient_SteamClient023_GetISteamHTTP_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamHTTP_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamController_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamController_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamUGC_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamUGC_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamMusic_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamMusic_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamHTMLSurface_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamHTMLSurface_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params +{ + struct u_iface u_iface; + void (*W_CDECL _a)(void); +}; + +struct wow64_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params +{ + struct u_iface u_iface; + W32_PTR(void (*W_CDECL _a)(void), _a, void (*W_CDECL )(void)); +}; + +struct ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params +{ + struct u_iface u_iface; + void (*W_CDECL _a)(void); +}; + +struct wow64_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params +{ + struct u_iface u_iface; + W32_PTR(void (*W_CDECL _a)(void), _a, void (*W_CDECL )(void)); +}; + +struct ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess_params +{ + struct u_iface u_iface; + uint32_t (*W_CDECL func)(int32_t); +}; + +struct wow64_ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess_params +{ + struct u_iface u_iface; + W32_PTR(uint32_t (*W_CDECL func)(int32_t), func, uint32_t (*W_CDECL )(int32_t)); +}; + +struct ISteamClient_SteamClient023_GetISteamInventory_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamInventory_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamVideo_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamVideo_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamParentalSettings_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamParentalSettings_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamuser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamInput_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamInput_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamParties_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamParties_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_GetISteamRemotePlay_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + const char *pchVersion; +}; + +struct wow64_ISteamClient_SteamClient023_GetISteamRemotePlay_params +{ + struct u_iface u_iface; + struct u_iface _ret; + int32_t hSteamUser; + int32_t hSteamPipe; + W32_PTR(const char *pchVersion, pchVersion, const char *); +}; + +struct ISteamClient_SteamClient023_DestroyAllInterfaces_params +{ + struct u_iface u_iface; +}; + +struct wow64_ISteamClient_SteamClient023_DestroyAllInterfaces_params +{ + struct u_iface u_iface; +}; + struct ISteamController_SteamController003_Init_params { struct u_iface u_iface; @@ -100402,6 +101710,49 @@ enum unix_funcs unix_ISteamVideo_STEAMVIDEO_INTERFACE_V007_IsBroadcasting, unix_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFSettings, unix_ISteamVideo_STEAMVIDEO_INTERFACE_V007_GetOPFStringForApp, + unix_ISteamBilling_SteamBilling002_InitCreditCardPurchase, + unix_ISteamBilling_SteamBilling002_InitPayPalPurchase, + unix_ISteamBilling_SteamBilling002_GetActivationCodeInfo, + unix_ISteamBilling_SteamBilling002_PurchaseWithActivationCode, + unix_ISteamBilling_SteamBilling002_GetFinalPrice, + unix_ISteamBilling_SteamBilling002_CancelPurchase, + unix_ISteamBilling_SteamBilling002_CompletePurchase, + unix_ISteamBilling_SteamBilling002_UpdateCardInfo, + unix_ISteamBilling_SteamBilling002_DeleteCard, + unix_ISteamBilling_SteamBilling002_GetCardList, + unix_ISteamBilling_SteamBilling002_Obsolete_GetLicenses, + unix_ISteamBilling_SteamBilling002_CancelLicense, + unix_ISteamBilling_SteamBilling002_GetPurchaseReceipts, + unix_ISteamBilling_SteamBilling002_SetBillingAddress, + unix_ISteamBilling_SteamBilling002_GetBillingAddress, + unix_ISteamBilling_SteamBilling002_SetShippingAddress, + unix_ISteamBilling_SteamBilling002_GetShippingAddress, + unix_ISteamBilling_SteamBilling002_SetCardInfo, + unix_ISteamBilling_SteamBilling002_GetCardInfo, + unix_ISteamBilling_SteamBilling002_GetLicensePackageID, + unix_ISteamBilling_SteamBilling002_GetLicenseTimeCreated, + unix_ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess, + unix_ISteamBilling_SteamBilling002_GetLicenseMinuteLimit, + unix_ISteamBilling_SteamBilling002_GetLicenseMinutesUsed, + unix_ISteamBilling_SteamBilling002_GetLicensePaymentMethod, + unix_ISteamBilling_SteamBilling002_GetLicenseFlags, + unix_ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode, + unix_ISteamBilling_SteamBilling002_GetReceiptPackageID, + unix_ISteamBilling_SteamBilling002_GetReceiptStatus, + unix_ISteamBilling_SteamBilling002_GetReceiptResultDetail, + unix_ISteamBilling_SteamBilling002_GetReceiptTransTime, + unix_ISteamBilling_SteamBilling002_GetReceiptTransID, + unix_ISteamBilling_SteamBilling002_GetReceiptPaymentMethod, + unix_ISteamBilling_SteamBilling002_GetReceiptBaseCost, + unix_ISteamBilling_SteamBilling002_GetReceiptTotalDiscount, + unix_ISteamBilling_SteamBilling002_GetReceiptTax, + unix_ISteamBilling_SteamBilling002_GetReceiptShipping, + unix_ISteamBilling_SteamBilling002_GetReceiptCountryCode, + unix_ISteamBilling_SteamBilling002_GetNumLicenses, + unix_ISteamBilling_SteamBilling002_GetNumReceipts, + unix_ISteamBilling_SteamBilling002_PurchaseWithMachineID, + unix_ISteamBilling_SteamBilling002_InitClickAndBuyPurchase, + unix_ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount, unix_ISteamClient_SteamClient006_CreateSteamPipe, unix_ISteamClient_SteamClient006_BReleaseSteamPipe, unix_ISteamClient_SteamClient006_CreateGlobalUser, @@ -100887,6 +102238,44 @@ enum unix_funcs unix_ISteamClient_SteamClient021_GetISteamParties, unix_ISteamClient_SteamClient021_GetISteamRemotePlay, unix_ISteamClient_SteamClient021_DestroyAllInterfaces, + unix_ISteamClient_SteamClient023_CreateSteamPipe, + unix_ISteamClient_SteamClient023_BReleaseSteamPipe, + unix_ISteamClient_SteamClient023_ConnectToGlobalUser, + unix_ISteamClient_SteamClient023_CreateLocalUser, + unix_ISteamClient_SteamClient023_ReleaseUser, + unix_ISteamClient_SteamClient023_GetISteamUser, + unix_ISteamClient_SteamClient023_GetISteamGameServer, + unix_ISteamClient_SteamClient023_SetLocalIPBinding, + unix_ISteamClient_SteamClient023_GetISteamFriends, + unix_ISteamClient_SteamClient023_GetISteamUtils, + unix_ISteamClient_SteamClient023_GetISteamMatchmaking, + unix_ISteamClient_SteamClient023_GetISteamMatchmakingServers, + unix_ISteamClient_SteamClient023_GetISteamGenericInterface, + unix_ISteamClient_SteamClient023_GetISteamUserStats, + unix_ISteamClient_SteamClient023_GetISteamGameServerStats, + unix_ISteamClient_SteamClient023_GetISteamApps, + unix_ISteamClient_SteamClient023_GetISteamNetworking, + unix_ISteamClient_SteamClient023_GetISteamRemoteStorage, + unix_ISteamClient_SteamClient023_GetISteamScreenshots, + unix_ISteamClient_SteamClient023_RunFrame, + unix_ISteamClient_SteamClient023_GetIPCCallCount, + unix_ISteamClient_SteamClient023_SetWarningMessageHook, + unix_ISteamClient_SteamClient023_BShutdownIfAllPipesClosed, + unix_ISteamClient_SteamClient023_GetISteamHTTP, + unix_ISteamClient_SteamClient023_GetISteamController, + unix_ISteamClient_SteamClient023_GetISteamUGC, + unix_ISteamClient_SteamClient023_GetISteamMusic, + unix_ISteamClient_SteamClient023_GetISteamHTMLSurface, + unix_ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess, + unix_ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess, + unix_ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess, + unix_ISteamClient_SteamClient023_GetISteamInventory, + unix_ISteamClient_SteamClient023_GetISteamVideo, + unix_ISteamClient_SteamClient023_GetISteamParentalSettings, + unix_ISteamClient_SteamClient023_GetISteamInput, + unix_ISteamClient_SteamClient023_GetISteamParties, + unix_ISteamClient_SteamClient023_GetISteamRemotePlay, + unix_ISteamClient_SteamClient023_DestroyAllInterfaces, unix_ISteamController_SteamController003_Init, unix_ISteamController_SteamController003_Shutdown, unix_ISteamController_SteamController003_RunFrame, diff --git a/lsteamclient/winISteamBilling.c b/lsteamclient/winISteamBilling.c new file mode 100644 index 00000000000..f0fce030aae --- /dev/null +++ b/lsteamclient/winISteamBilling.c @@ -0,0 +1,711 @@ +/* This file is auto-generated, do not edit. */ +#include "steamclient_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(steamclient); + +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_InitCreditCardPurchase, 16) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_InitPayPalPurchase, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetActivationCodeInfo, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_PurchaseWithActivationCode, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetFinalPrice, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_CancelPurchase, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_CompletePurchase, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_UpdateCardInfo, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_DeleteCard, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetCardList, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_Obsolete_GetLicenses, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_CancelLicense, 12) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetPurchaseReceipts, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_SetBillingAddress, 44) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetBillingAddress, 44) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_SetShippingAddress, 40) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetShippingAddress, 40) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_SetCardInfo, 36) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetCardInfo, 36) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicensePackageID, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicenseTimeCreated, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicenseTimeNextProcess, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicenseMinuteLimit, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicenseMinutesUsed, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicensePaymentMethod, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicenseFlags, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptPackageID, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptStatus, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptResultDetail, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptTransTime, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptTransID, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptPaymentMethod, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptBaseCost, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptTotalDiscount, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptTax, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptShipping, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetReceiptCountryCode, 8) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetNumLicenses, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetNumReceipts, 4) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_PurchaseWithMachineID, 12) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_InitClickAndBuyPurchase, 24) +DEFINE_THISCALL_WRAPPER(winISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount, 16) + +int8_t __thiscall winISteamBilling_SteamBilling002_InitCreditCardPurchase(struct w_iface *_this, int32_t nPackageID, uint32_t nCardIndex, int8_t bStoreCardInfo) +{ + struct ISteamBilling_SteamBilling002_InitCreditCardPurchase_params params = + { + .u_iface = _this->u_iface, + .nPackageID = nPackageID, + .nCardIndex = nCardIndex, + .bStoreCardInfo = bStoreCardInfo, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_InitCreditCardPurchase, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_InitPayPalPurchase(struct w_iface *_this, int32_t nPackageID) +{ + struct ISteamBilling_SteamBilling002_InitPayPalPurchase_params params = + { + .u_iface = _this->u_iface, + .nPackageID = nPackageID, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_InitPayPalPurchase, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetActivationCodeInfo(struct w_iface *_this, const char *pchActivationCode) +{ + struct ISteamBilling_SteamBilling002_GetActivationCodeInfo_params params = + { + .u_iface = _this->u_iface, + .pchActivationCode = pchActivationCode, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchActivationCode, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetActivationCodeInfo, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_PurchaseWithActivationCode(struct w_iface *_this, const char *pchActivationCode) +{ + struct ISteamBilling_SteamBilling002_PurchaseWithActivationCode_params params = + { + .u_iface = _this->u_iface, + .pchActivationCode = pchActivationCode, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchActivationCode, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_PurchaseWithActivationCode, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetFinalPrice(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_GetFinalPrice_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetFinalPrice, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_CancelPurchase(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_CancelPurchase_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_CancelPurchase, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_CompletePurchase(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_CompletePurchase_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_CompletePurchase, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_UpdateCardInfo(struct w_iface *_this, uint32_t nCardIndex) +{ + struct ISteamBilling_SteamBilling002_UpdateCardInfo_params params = + { + .u_iface = _this->u_iface, + .nCardIndex = nCardIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_UpdateCardInfo, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_DeleteCard(struct w_iface *_this, uint32_t nCardIndex) +{ + struct ISteamBilling_SteamBilling002_DeleteCard_params params = + { + .u_iface = _this->u_iface, + .nCardIndex = nCardIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_DeleteCard, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetCardList(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_GetCardList_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetCardList, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_Obsolete_GetLicenses(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_Obsolete_GetLicenses_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_Obsolete_GetLicenses, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_CancelLicense(struct w_iface *_this, int32_t nPackageID, int32_t nCancelReason) +{ + struct ISteamBilling_SteamBilling002_CancelLicense_params params = + { + .u_iface = _this->u_iface, + .nPackageID = nPackageID, + .nCancelReason = nCancelReason, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_CancelLicense, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetPurchaseReceipts(struct w_iface *_this, int8_t bUnacknowledgedOnly) +{ + struct ISteamBilling_SteamBilling002_GetPurchaseReceipts_params params = + { + .u_iface = _this->u_iface, + .bUnacknowledgedOnly = bUnacknowledgedOnly, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetPurchaseReceipts, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_SetBillingAddress(struct w_iface *_this, uint32_t nCardIndex, const char *pchFirstName, const char *pchLastName, const char *pchAddress1, const char *pchAddress2, const char *pchCity, const char *pchPostcode, const char *pchState, const char *pchCountry, const char *pchPhone) +{ + struct ISteamBilling_SteamBilling002_SetBillingAddress_params params = + { + .u_iface = _this->u_iface, + .nCardIndex = nCardIndex, + .pchFirstName = pchFirstName, + .pchLastName = pchLastName, + .pchAddress1 = pchAddress1, + .pchAddress2 = pchAddress2, + .pchCity = pchCity, + .pchPostcode = pchPostcode, + .pchState = pchState, + .pchCountry = pchCountry, + .pchPhone = pchPhone, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchFirstName, -1); + IsBadStringPtrA(pchLastName, -1); + IsBadStringPtrA(pchAddress1, -1); + IsBadStringPtrA(pchAddress2, -1); + IsBadStringPtrA(pchCity, -1); + IsBadStringPtrA(pchPostcode, -1); + IsBadStringPtrA(pchState, -1); + IsBadStringPtrA(pchCountry, -1); + IsBadStringPtrA(pchPhone, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_SetBillingAddress, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetBillingAddress(struct w_iface *_this, uint32_t nCardIndex, char *pchFirstName, char *pchLastName, char *pchAddress1, char *pchAddress2, char *pchCity, char *pchPostcode, char *pchState, char *pchCountry, char *pchPhone) +{ + struct ISteamBilling_SteamBilling002_GetBillingAddress_params params = + { + .u_iface = _this->u_iface, + .nCardIndex = nCardIndex, + .pchFirstName = pchFirstName, + .pchLastName = pchLastName, + .pchAddress1 = pchAddress1, + .pchAddress2 = pchAddress2, + .pchCity = pchCity, + .pchPostcode = pchPostcode, + .pchState = pchState, + .pchCountry = pchCountry, + .pchPhone = pchPhone, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetBillingAddress, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_SetShippingAddress(struct w_iface *_this, const char *pchFirstName, const char *pchLastName, const char *pchAddress1, const char *pchAddress2, const char *pchCity, const char *pchPostcode, const char *pchState, const char *pchCountry, const char *pchPhone) +{ + struct ISteamBilling_SteamBilling002_SetShippingAddress_params params = + { + .u_iface = _this->u_iface, + .pchFirstName = pchFirstName, + .pchLastName = pchLastName, + .pchAddress1 = pchAddress1, + .pchAddress2 = pchAddress2, + .pchCity = pchCity, + .pchPostcode = pchPostcode, + .pchState = pchState, + .pchCountry = pchCountry, + .pchPhone = pchPhone, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchFirstName, -1); + IsBadStringPtrA(pchLastName, -1); + IsBadStringPtrA(pchAddress1, -1); + IsBadStringPtrA(pchAddress2, -1); + IsBadStringPtrA(pchCity, -1); + IsBadStringPtrA(pchPostcode, -1); + IsBadStringPtrA(pchState, -1); + IsBadStringPtrA(pchCountry, -1); + IsBadStringPtrA(pchPhone, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_SetShippingAddress, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetShippingAddress(struct w_iface *_this, char *pchFirstName, char *pchLastName, char *pchAddress1, char *pchAddress2, char *pchCity, char *pchPostcode, char *pchState, char *pchCountry, char *pchPhone) +{ + struct ISteamBilling_SteamBilling002_GetShippingAddress_params params = + { + .u_iface = _this->u_iface, + .pchFirstName = pchFirstName, + .pchLastName = pchLastName, + .pchAddress1 = pchAddress1, + .pchAddress2 = pchAddress2, + .pchCity = pchCity, + .pchPostcode = pchPostcode, + .pchState = pchState, + .pchCountry = pchCountry, + .pchPhone = pchPhone, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetShippingAddress, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_SetCardInfo(struct w_iface *_this, uint32_t nCardIndex, int32_t eCreditCardType, const char *pchCardNumber, const char *pchCardHolderFirstName, const char *pchCardHolderLastName, const char *pchCardExpYear, const char *pchCardExpMonth, const char *pchCardCVV2) +{ + struct ISteamBilling_SteamBilling002_SetCardInfo_params params = + { + .u_iface = _this->u_iface, + .nCardIndex = nCardIndex, + .eCreditCardType = eCreditCardType, + .pchCardNumber = pchCardNumber, + .pchCardHolderFirstName = pchCardHolderFirstName, + .pchCardHolderLastName = pchCardHolderLastName, + .pchCardExpYear = pchCardExpYear, + .pchCardExpMonth = pchCardExpMonth, + .pchCardCVV2 = pchCardCVV2, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchCardNumber, -1); + IsBadStringPtrA(pchCardHolderFirstName, -1); + IsBadStringPtrA(pchCardHolderLastName, -1); + IsBadStringPtrA(pchCardExpYear, -1); + IsBadStringPtrA(pchCardExpMonth, -1); + IsBadStringPtrA(pchCardCVV2, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_SetCardInfo, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetCardInfo(struct w_iface *_this, uint32_t nCardIndex, int32_t *eCreditCardType, char *pchCardNumber, char *pchCardHolderFirstName, char *pchCardHolderLastName, char *pchCardExpYear, char *pchCardExpMonth, char *pchCardCVV2) +{ + struct ISteamBilling_SteamBilling002_GetCardInfo_params params = + { + .u_iface = _this->u_iface, + .nCardIndex = nCardIndex, + .eCreditCardType = eCreditCardType, + .pchCardNumber = pchCardNumber, + .pchCardHolderFirstName = pchCardHolderFirstName, + .pchCardHolderLastName = pchCardHolderLastName, + .pchCardExpYear = pchCardExpYear, + .pchCardExpMonth = pchCardExpMonth, + .pchCardCVV2 = pchCardCVV2, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetCardInfo, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetLicensePackageID(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicensePackageID_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicensePackageID, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetLicenseTimeCreated(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicenseTimeCreated_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicenseTimeCreated, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetLicenseTimeNextProcess(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicenseTimeNextProcess, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetLicenseMinuteLimit(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicenseMinuteLimit_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicenseMinuteLimit, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetLicenseMinutesUsed(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicenseMinutesUsed_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicenseMinutesUsed, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetLicensePaymentMethod(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicensePaymentMethod_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicensePaymentMethod, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetLicenseFlags(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicenseFlags_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicenseFlags, ¶ms ); + return params._ret; +} + +const char * __thiscall winISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode(struct w_iface *_this, uint32_t nLicenseIndex) +{ + struct ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode_params params = + { + .u_iface = _this->u_iface, + .nLicenseIndex = nLicenseIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode, ¶ms ); + return get_unix_buffer( params._ret ); +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptPackageID(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptPackageID_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptPackageID, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptStatus(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptStatus_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptStatus, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptResultDetail(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptResultDetail_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptResultDetail, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptTransTime(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTransTime_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptTransTime, ¶ms ); + return params._ret; +} + +uint64_t __thiscall winISteamBilling_SteamBilling002_GetReceiptTransID(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTransID_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptTransID, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptPaymentMethod(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptPaymentMethod_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptPaymentMethod, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptBaseCost(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptBaseCost_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptBaseCost, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptTotalDiscount(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTotalDiscount_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptTotalDiscount, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptTax(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptTax_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptTax, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetReceiptShipping(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptShipping_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptShipping, ¶ms ); + return params._ret; +} + +const char * __thiscall winISteamBilling_SteamBilling002_GetReceiptCountryCode(struct w_iface *_this, uint32_t nReceiptIndex) +{ + struct ISteamBilling_SteamBilling002_GetReceiptCountryCode_params params = + { + .u_iface = _this->u_iface, + .nReceiptIndex = nReceiptIndex, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetReceiptCountryCode, ¶ms ); + return get_unix_buffer( params._ret ); +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetNumLicenses(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_GetNumLicenses_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetNumLicenses, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winISteamBilling_SteamBilling002_GetNumReceipts(struct w_iface *_this) +{ + struct ISteamBilling_SteamBilling002_GetNumReceipts_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetNumReceipts, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_PurchaseWithMachineID(struct w_iface *_this, int32_t nPackageID, const char *pchCustomData) +{ + struct ISteamBilling_SteamBilling002_PurchaseWithMachineID_params params = + { + .u_iface = _this->u_iface, + .nPackageID = nPackageID, + .pchCustomData = pchCustomData, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchCustomData, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_PurchaseWithMachineID, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_InitClickAndBuyPurchase(struct w_iface *_this, int32_t nPackageID, int64_t nAccountNum, const char *pchState, const char *pchCountryCode) +{ + struct ISteamBilling_SteamBilling002_InitClickAndBuyPurchase_params params = + { + .u_iface = _this->u_iface, + .nPackageID = nPackageID, + .nAccountNum = nAccountNum, + .pchState = pchState, + .pchCountryCode = pchCountryCode, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchState, -1); + IsBadStringPtrA(pchCountryCode, -1); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_InitClickAndBuyPurchase, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount(struct w_iface *_this, int64_t *pnAccountNum, char *pchState, char *pchCountryCode) +{ + struct ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount_params params = + { + .u_iface = _this->u_iface, + .pnAccountNum = pnAccountNum, + .pchState = pchState, + .pchCountryCode = pchCountryCode, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount, ¶ms ); + return params._ret; +} + +extern vtable_ptr winISteamBilling_SteamBilling002_vtable; + +DEFINE_RTTI_DATA0(winISteamBilling_SteamBilling002, 0, ".?AVISteamBilling@@") + +__ASM_BLOCK_BEGIN(winISteamBilling_SteamBilling002_vtables) + __ASM_VTABLE(winISteamBilling_SteamBilling002, + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_InitCreditCardPurchase) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_InitPayPalPurchase) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetActivationCodeInfo) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_PurchaseWithActivationCode) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetFinalPrice) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_CancelPurchase) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_CompletePurchase) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_UpdateCardInfo) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_DeleteCard) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetCardList) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_Obsolete_GetLicenses) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_CancelLicense) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetPurchaseReceipts) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_SetBillingAddress) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetBillingAddress) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_SetShippingAddress) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetShippingAddress) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_SetCardInfo) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetCardInfo) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicensePackageID) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicenseTimeCreated) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicenseTimeNextProcess) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicenseMinuteLimit) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicenseMinutesUsed) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicensePaymentMethod) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicenseFlags) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetLicensePurchaseCountryCode) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptPackageID) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptStatus) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptResultDetail) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptTransTime) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptTransID) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptPaymentMethod) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptBaseCost) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptTotalDiscount) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptTax) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptShipping) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetReceiptCountryCode) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetNumLicenses) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetNumReceipts) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_PurchaseWithMachineID) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_InitClickAndBuyPurchase) + VTABLE_ADD_FUNC(winISteamBilling_SteamBilling002_GetPreviousClickAndBuyAccount) + ); +__ASM_BLOCK_END + +struct w_iface *create_winISteamBilling_SteamBilling002( struct u_iface u_iface ) +{ + struct w_iface *r = alloc_mem_for_iface(sizeof(struct w_iface), "SteamBilling002"); + TRACE("-> %p\n", r); + r->vtable = alloc_vtable(&winISteamBilling_SteamBilling002_vtable, 43, "SteamBilling002"); + r->u_iface = u_iface; + return r; +} + +void init_winISteamBilling_rtti( char *base ) +{ +#if defined(__x86_64__) || defined(__aarch64__) + init_winISteamBilling_SteamBilling002_rtti( base ); +#endif /* defined(__x86_64__) || defined(__aarch64__) */ +} diff --git a/lsteamclient/winISteamClient.c b/lsteamclient/winISteamClient.c index bc9e1606482..e3799bdc9f7 100644 --- a/lsteamclient/winISteamClient.c +++ b/lsteamclient/winISteamClient.c @@ -7903,6 +7903,618 @@ struct w_iface *create_winISteamClient_SteamClient021( struct u_iface u_iface ) return r; } +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_CreateSteamPipe, 4) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_BReleaseSteamPipe, 8) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_ConnectToGlobalUser, 8) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_CreateLocalUser, 12) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_ReleaseUser, 12) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamUser, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamGameServer, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_SetLocalIPBinding, 12) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamFriends, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamUtils, 12) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamMatchmaking, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamMatchmakingServers, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamGenericInterface, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamUserStats, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamGameServerStats, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamApps, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamNetworking, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamRemoteStorage, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamScreenshots, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_RunFrame, 4) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetIPCCallCount, 4) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_SetWarningMessageHook, 8) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_BShutdownIfAllPipesClosed, 4) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamHTTP, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamController, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamUGC, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamMusic, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamHTMLSurface, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess, 8) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess, 8) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess, 8) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamInventory, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamVideo, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamParentalSettings, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamInput, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamParties, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_GetISteamRemotePlay, 16) +DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient023_DestroyAllInterfaces, 4) + +int32_t __thiscall winISteamClient_SteamClient023_CreateSteamPipe(struct w_iface *_this) +{ + struct ISteamClient_SteamClient023_CreateSteamPipe_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_CreateSteamPipe, ¶ms ); + return params._ret; +} + +int8_t __thiscall winISteamClient_SteamClient023_BReleaseSteamPipe(struct w_iface *_this, int32_t hSteamPipe) +{ + struct ISteamClient_SteamClient023_BReleaseSteamPipe_params params = + { + .u_iface = _this->u_iface, + .hSteamPipe = hSteamPipe, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_BReleaseSteamPipe, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamClient_SteamClient023_ConnectToGlobalUser(struct w_iface *_this, int32_t hSteamPipe) +{ + struct ISteamClient_SteamClient023_ConnectToGlobalUser_params params = + { + .u_iface = _this->u_iface, + .hSteamPipe = hSteamPipe, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_ConnectToGlobalUser, ¶ms ); + return params._ret; +} + +int32_t __thiscall winISteamClient_SteamClient023_CreateLocalUser(struct w_iface *_this, int32_t *phSteamPipe, uint32_t eAccountType) +{ + struct ISteamClient_SteamClient023_CreateLocalUser_params params = + { + .u_iface = _this->u_iface, + .phSteamPipe = phSteamPipe, + .eAccountType = eAccountType, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_CreateLocalUser, ¶ms ); + return params._ret; +} + +void __thiscall winISteamClient_SteamClient023_ReleaseUser(struct w_iface *_this, int32_t hSteamPipe, int32_t hUser) +{ + struct ISteamClient_SteamClient023_ReleaseUser_params params = + { + .u_iface = _this->u_iface, + .hSteamPipe = hSteamPipe, + .hUser = hUser, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_ReleaseUser, ¶ms ); +} + +void /*ISteamUser*/ * __thiscall winISteamClient_SteamClient023_GetISteamUser(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamUser_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamUser, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamGameServer*/ * __thiscall winISteamClient_SteamClient023_GetISteamGameServer(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamGameServer_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamGameServer, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void __thiscall winISteamClient_SteamClient023_SetLocalIPBinding(struct w_iface *_this, const SteamIPAddress_t *unIP, uint16_t usPort) +{ + struct ISteamClient_SteamClient023_SetLocalIPBinding_params params = + { + .u_iface = _this->u_iface, + .unIP = unIP, + .usPort = usPort, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_SetLocalIPBinding, ¶ms ); +} + +void /*ISteamFriends*/ * __thiscall winISteamClient_SteamClient023_GetISteamFriends(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamFriends_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamFriends, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamUtils*/ * __thiscall winISteamClient_SteamClient023_GetISteamUtils(struct w_iface *_this, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamUtils_params params = + { + .u_iface = _this->u_iface, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamUtils, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamMatchmaking*/ * __thiscall winISteamClient_SteamClient023_GetISteamMatchmaking(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamMatchmaking_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamMatchmaking, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamMatchmakingServers*/ * __thiscall winISteamClient_SteamClient023_GetISteamMatchmakingServers(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamMatchmakingServers_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamMatchmakingServers, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void * __thiscall winISteamClient_SteamClient023_GetISteamGenericInterface(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamGenericInterface_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamGenericInterface, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamUserStats*/ * __thiscall winISteamClient_SteamClient023_GetISteamUserStats(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamUserStats_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamUserStats, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamGameServerStats*/ * __thiscall winISteamClient_SteamClient023_GetISteamGameServerStats(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamGameServerStats_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamGameServerStats, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamApps*/ * __thiscall winISteamClient_SteamClient023_GetISteamApps(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamApps_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamApps, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamNetworking*/ * __thiscall winISteamClient_SteamClient023_GetISteamNetworking(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamNetworking_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamNetworking, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamRemoteStorage*/ * __thiscall winISteamClient_SteamClient023_GetISteamRemoteStorage(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamRemoteStorage_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamRemoteStorage, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamScreenshots*/ * __thiscall winISteamClient_SteamClient023_GetISteamScreenshots(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamScreenshots_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamScreenshots, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void __thiscall winISteamClient_SteamClient023_RunFrame(struct w_iface *_this) +{ + struct ISteamClient_SteamClient023_RunFrame_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_RunFrame, ¶ms ); +} + +uint32_t __thiscall winISteamClient_SteamClient023_GetIPCCallCount(struct w_iface *_this) +{ + struct ISteamClient_SteamClient023_GetIPCCallCount_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetIPCCallCount, ¶ms ); + return params._ret; +} + +void __thiscall winISteamClient_SteamClient023_SetWarningMessageHook(struct w_iface *_this, void (*W_CDECL pFunction)(int32_t, const char *)) +{ + struct ISteamClient_SteamClient023_SetWarningMessageHook_params params = + { + .u_iface = _this->u_iface, + .pFunction = pFunction, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_SetWarningMessageHook, ¶ms ); +} + +int8_t __thiscall winISteamClient_SteamClient023_BShutdownIfAllPipesClosed(struct w_iface *_this) +{ + struct ISteamClient_SteamClient023_BShutdownIfAllPipesClosed_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_BShutdownIfAllPipesClosed, ¶ms ); + return params._ret; +} + +void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient023_GetISteamHTTP(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamHTTP_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamHTTP, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamController*/ * __thiscall winISteamClient_SteamClient023_GetISteamController(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamController_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamController, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamUGC*/ * __thiscall winISteamClient_SteamClient023_GetISteamUGC(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamUGC_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamUGC, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamMusic*/ * __thiscall winISteamClient_SteamClient023_GetISteamMusic(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamMusic_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamMusic, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamHTMLSurface*/ * __thiscall winISteamClient_SteamClient023_GetISteamHTMLSurface(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamHTMLSurface_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamHTMLSurface, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void __thiscall winISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess(struct w_iface *_this, void (*W_CDECL _a)(void)) +{ + struct ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess_params params = + { + .u_iface = _this->u_iface, + ._a = _a, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess, ¶ms ); +} + +void __thiscall winISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess(struct w_iface *_this, void (*W_CDECL _a)(void)) +{ + struct ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess_params params = + { + .u_iface = _this->u_iface, + ._a = _a, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess, ¶ms ); +} + +void __thiscall winISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess(struct w_iface *_this, uint32_t (*W_CDECL func)(int32_t)) +{ + struct ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess_params params = + { + .u_iface = _this->u_iface, + .func = func, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess, ¶ms ); +} + +void /*ISteamInventory*/ * __thiscall winISteamClient_SteamClient023_GetISteamInventory(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamInventory_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamInventory, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamVideo*/ * __thiscall winISteamClient_SteamClient023_GetISteamVideo(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamVideo_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamVideo, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamParentalSettings*/ * __thiscall winISteamClient_SteamClient023_GetISteamParentalSettings(struct w_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamParentalSettings_params params = + { + .u_iface = _this->u_iface, + .hSteamuser = hSteamuser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamParentalSettings, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamInput*/ * __thiscall winISteamClient_SteamClient023_GetISteamInput(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamInput_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamInput, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamParties*/ * __thiscall winISteamClient_SteamClient023_GetISteamParties(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamParties_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamParties, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void /*ISteamRemotePlay*/ * __thiscall winISteamClient_SteamClient023_GetISteamRemotePlay(struct w_iface *_this, int32_t hSteamUser, int32_t hSteamPipe, const char *pchVersion) +{ + struct ISteamClient_SteamClient023_GetISteamRemotePlay_params params = + { + .u_iface = _this->u_iface, + .hSteamUser = hSteamUser, + .hSteamPipe = hSteamPipe, + .pchVersion = pchVersion, + }; + TRACE("%p\n", _this); + IsBadStringPtrA(pchVersion, -1); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_GetISteamRemotePlay, ¶ms ); + return create_win_interface( pchVersion, params._ret ); +} + +void __thiscall winISteamClient_SteamClient023_DestroyAllInterfaces(struct w_iface *_this) +{ + struct ISteamClient_SteamClient023_DestroyAllInterfaces_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + STEAMCLIENT_CALL( ISteamClient_SteamClient023_DestroyAllInterfaces, ¶ms ); +} + +extern vtable_ptr winISteamClient_SteamClient023_vtable; + +DEFINE_RTTI_DATA0(winISteamClient_SteamClient023, 0, ".?AVISteamClient@@") + +__ASM_BLOCK_BEGIN(winISteamClient_SteamClient023_vtables) + __ASM_VTABLE(winISteamClient_SteamClient023, + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_CreateSteamPipe) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_BReleaseSteamPipe) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_ConnectToGlobalUser) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_CreateLocalUser) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_ReleaseUser) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamUser) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamGameServer) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_SetLocalIPBinding) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamFriends) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamUtils) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamMatchmaking) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamMatchmakingServers) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamGenericInterface) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamUserStats) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamGameServerStats) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamApps) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamNetworking) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamRemoteStorage) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamScreenshots) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_RunFrame) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetIPCCallCount) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_SetWarningMessageHook) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_BShutdownIfAllPipesClosed) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamHTTP) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamController) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamUGC) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamMusic) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamHTMLSurface) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_DEPRECATED_Set_SteamAPI_CPostAPIResultInProcess) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_DEPRECATED_Remove_SteamAPI_CPostAPIResultInProcess) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_Set_SteamAPI_CCheckCallbackRegisteredInProcess) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamInventory) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamVideo) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamParentalSettings) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamInput) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamParties) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_GetISteamRemotePlay) + VTABLE_ADD_FUNC(winISteamClient_SteamClient023_DestroyAllInterfaces) + ); +__ASM_BLOCK_END + +struct w_iface *create_winISteamClient_SteamClient023( struct u_iface u_iface ) +{ + struct w_iface *r = alloc_mem_for_iface(sizeof(struct w_iface), "SteamClient023"); + TRACE("-> %p\n", r); + r->vtable = alloc_vtable(&winISteamClient_SteamClient023_vtable, 38, "SteamClient023"); + r->u_iface = u_iface; + return r; +} + void init_winISteamClient_rtti( char *base ) { #if defined(__x86_64__) || defined(__aarch64__) @@ -7922,5 +8534,6 @@ void init_winISteamClient_rtti( char *base ) init_winISteamClient_SteamClient019_rtti( base ); init_winISteamClient_SteamClient020_rtti( base ); init_winISteamClient_SteamClient021_rtti( base ); + init_winISteamClient_SteamClient023_rtti( base ); #endif /* defined(__x86_64__) || defined(__aarch64__) */ } diff --git a/make/rules-cargo.mk b/make/rules-cargo.mk index a8532cb7f4d..e71bb905f30 100644 --- a/make/rules-cargo.mk +++ b/make/rules-cargo.mk @@ -29,6 +29,16 @@ rules-cargo = $(call create-rules-cargo,$(1),$(call toupper,$(1)),$(2),$(3)) i386-unix_CARGO_TARGET := i686-unknown-linux-gnu x86_64-unix_CARGO_TARGET := x86_64-unknown-linux-gnu +aarch64-unix_CARGO_TARGET := aarch64-unknown-linux-gnu i386-unix_CARGO_ARGS := --target $(i386-unix_CARGO_TARGET) x86_64-unix_CARGO_ARGS := --target $(x86_64-unix_CARGO_TARGET) +aarch64-unix_CARGO_ARGS := --target $(aarch64-unix_CARGO_TARGET) + +# Used in rules-common.mk +# We need to specify the linker explicitly for at least --target architecture as +# well as host's architecture - some crates build things on host via build.rs +# +# HACK: forced to gcc-10 because Sniper's (SteamRT) gcc-14 doesn't come with +# shared libgcc_s.so and cargo/rustc (?) forces shared linking with that lib. +CARGO_LINKERS := $(foreach a,$(unix_ARCHS),CARGO_TARGET_$(call toupper,$($(a)-unix_CARGO_TARGET))_LINKER="$($(a)-unix_TARGET)-gcc-10") diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk index d75de57caad..33a11fe4ec5 100644 --- a/make/rules-cmake.mk +++ b/make/rules-cmake.mk @@ -36,7 +36,9 @@ endef i386-unix_CMAKE_ARGS := -DCMAKE_SHARED_LIBRARY_PREFIX_C=lib -DCMAKE_IMPORT_LIBRARY_PREFIX_C=lib x86_64-unix_CMAKE_ARGS := -DCMAKE_SHARED_LIBRARY_PREFIX_C=lib -DCMAKE_IMPORT_LIBRARY_PREFIX_C=lib +aarch64-unix_CMAKE_ARGS := -DCMAKE_SHARED_LIBRARY_PREFIX_C=lib -DCMAKE_IMPORT_LIBRARY_PREFIX_C=lib i386-windows_CMAKE_ARGS := -DCMAKE_SYSTEM_NAME=Windows x86_64-windows_CMAKE_ARGS := -DCMAKE_SYSTEM_NAME=Windows +aarch64-windows_CMAKE_ARGS := -DCMAKE_SYSTEM_NAME=Windows rules-cmake = $(call create-rules-cmake,$(1),$(call toupper,$(1)),$(2),$(3)) diff --git a/make/rules-common.mk b/make/rules-common.mk index 1c8b262a151..95cd086846e 100644 --- a/make/rules-common.mk +++ b/make/rules-common.mk @@ -4,6 +4,7 @@ # $(3): build target arch # $(4): build target os define create-rules-common +ifneq ($$(findstring $(3)-$(4),$$(ARCHS)),) $(2)_$(3)_OBJ := $$(OBJ)/obj-$(1)-$(3) $(2)_$(3)_DST := $$(OBJ)/dst-$(1)-$(3) $(2)_$(3)_DEPS := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_$(3)_DEPENDS)) @@ -45,16 +46,6 @@ all-$(3)-build $(1)-build: $(1)-$(3)-build all-build: $(1)-build .PHONY: all-build - -ifeq ($$(findstring $(3)-$(4),$$(ARCHS)),) -$$(OBJ)/.$(1)-$(3)-configure: - touch $$@ -$$(OBJ)/.$(1)-$(3)-build: - touch $$@ -$$(OBJ)/.$(1)-$(3)-dist: - touch $$@ -else - $$(OBJ)/.$(1)-$(3)-dist: $$(OBJ)/.$(1)-$(3)-build $$(OBJ)/.$(1)-$(3)-dist: $$(OBJ)/.$(1)-$(3)-post-build @@ -72,22 +63,20 @@ $$(OBJ)/.$(1)-$(3)-dist: ifneq ($(UNSTRIPPED_BUILD),) cd $$($(2)_$(3)_LIBDIR) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \ -printf '--only-keep-debug\0%p\0$$(DST_LIBDIR)/%p.debug\0' | \ - xargs $(--verbose?) -0 -r -P$$(J) -n3 objcopy $(OBJCOPY_FLAGS) + xargs $(--verbose?) -0 -r -P$$(J) -n3 $(OBJCOPY) $(OBJCOPY_FLAGS) cd $$($(2)_$(3)_LIBDIR) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \ -printf '--add-gnu-debuglink=$$(DST_LIBDIR)/%p.debug\0--strip-debug\0%p\0$$(DST_LIBDIR)/%p\0' | \ - xargs $(--verbose?) -0 -r -P$$(J) -n4 objcopy $(OBJCOPY_FLAGS) --set-section-flags .text=contents,alloc,load,readonly,code + xargs $(--verbose?) -0 -r -P$$(J) -n4 $(OBJCOPY) $(OBJCOPY_FLAGS) --set-section-flags .text=contents,alloc,load,readonly,code touch $$@ else cd $$($(2)_$(3)_LIBDIR) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \ -printf '$$(DST_LIBDIR)/%p.debug\0' | xargs $(--verbose?) -0 -r -P$$(J) rm -f cd $$($(2)_$(3)_LIBDIR) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \ -printf '--strip-debug\0%p\0$$(DST_LIBDIR)/%p\0' | \ - xargs $(--verbose?) -0 -r -P$$(J) -n3 objcopy $(OBJCOPY_FLAGS) --set-section-flags .text=contents,alloc,load,readonly,code + xargs $(--verbose?) -0 -r -P$$(J) -n3 $(OBJCOPY) $(OBJCOPY_FLAGS) --set-section-flags .text=contents,alloc,load,readonly,code touch $$@ endif -endif - $(1)-$(3)-dist: $$(OBJ)/.$(1)-$(3)-dist .INTERMEDIATE: $(1)-$(3)-dist @@ -118,8 +107,15 @@ $(2)_$(3)-unix_LIBFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-Wl,-rpath-link=$$($$( # RC and WIDL are intentionally always using windows target, as their # unix version doesn't exist. +# HACK: forcing cargo to use gcc-10 as a linker because it's very unhappy about +# Sniper's gcc-14 and lack of libgcc_s. The only version we have guarantee for +# with SteamRT Sniper is the one from gcc 10. +# +# We also always need to specify the linker for the host architecture - a bunch +# of crates build host-native bits via build.rs. + $(2)_$(3)_ENV = \ - CARGO_TARGET_$$(call toupper,$$($(3)-$(4)_CARGO_TARGET))_LINKER="$$($(3)-$(4)_TARGET)-gcc" \ + $$(CARGO_LINKERS) \ CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \ STRIP="$$(STRIP)" \ AR="$$($(3)-$(4)_TARGET)-ar" \ @@ -143,6 +139,7 @@ $(2)_$(3)_ENV = \ ifeq ($(1),wine) +# aarch64 always builds wine with clang directly so build tools do not need to be specified $(2)_$(3)_ENV += \ CROSSCFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)" \ CROSSLDFLAGS="$$($(2)_$(3)-windows_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS)" \ @@ -166,31 +163,42 @@ $(2)_$(3)_ENV += \ x86_64_CXXFLAGS="$$($(2)_x86_64_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)" \ x86_64_LDFLAGS="$$($(2)_x86_64-windows_LIBFLAGS) $$($(2)_x86_64_LIBFLAGS) $$($(2)_LDFLAGS) $$(x86_64_LDFLAGS) $$(LDFLAGS)" \ x86_64_PKG_CONFIG_LIBDIR="/usr/lib/$$(x86_64-windows_LIBDIR)/pkgconfig:/usr/share/pkgconfig" \ + aarch64_CFLAGS="$$($(2)_aarch64_INCFLAGS) $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)" \ + aarch64_CPPFLAGS="$$($(2)_aarch64_INCFLAGS) $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)" \ + aarch64_CXXFLAGS="$$($(2)_aarch64_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)" \ + aarch64_LDFLAGS="$$($(2)_aarch64_LIBFLAGS) $$($(2)_LDFLAGS) $$(aarch64_LDFLAGS) $$(LDFLAGS)" \ endif +endif endef ifneq ($(UNSTRIPPED_BUILD),) -install-strip = objcopy $(OBJCOPY_FLAGS) --only-keep-debug $(1) $(2)/$(notdir $(1)).debug && \ - objcopy $(OBJCOPY_FLAGS) --add-gnu-debuglink=$(2)/$(notdir $(1)).debug --strip-debug $(1) $(2)/$(notdir $(1)) +install-strip = $(OBJCOPY) $(OBJCOPY_FLAGS) --only-keep-debug $(1) $(2)/$(notdir $(1)).debug && \ + $(OBJCOPY) $(OBJCOPY_FLAGS) --add-gnu-debuglink=$(2)/$(notdir $(1)).debug --strip-debug $(1) $(2)/$(notdir $(1)) else -install-strip = objcopy $(OBJCOPY_FLAGS) --strip-debug $(1) $(2)/$(notdir $(1)) && rm -f $(2)/$(notdir $(1)).debug +install-strip = $(OBJCOPY) $(OBJCOPY_FLAGS) --strip-debug $(1) $(2)/$(notdir $(1)) && rm -f $(2)/$(notdir $(1)).debug endif i386-unix_TARGET := i686-linux-gnu x86_64-unix_TARGET := x86_64-linux-gnu +aarch64-unix_TARGET := aarch64-linux-gnu i386-windows_TARGET := i686-w64-mingw32 x86_64-windows_TARGET := x86_64-w64-mingw32 +aarch64-windows_TARGET := arm64ec-w64-mingw32 i386-unix_LIBDIR := i386-linux-gnu x86_64-unix_LIBDIR := x86_64-linux-gnu +aarch64-unix_LIBDIR := aarch64-linux-gnu i386-windows_LIBDIR := i386-w64-mingw32 x86_64-windows_LIBDIR := x86_64-w64-mingw32 +aarch64-windows_LIBDIR := arm64ec-w64-mingw32 $(OBJ)/.%-i386-post-build: touch $@ $(OBJ)/.%-x86_64-post-build: touch $@ +$(OBJ)/.%-aarch64-post-build: + touch $@ rules-common = $(call create-rules-common,$(1),$(call toupper,$(1)),$(2),$(3)) diff --git a/make/rules-makedep.mk b/make/rules-makedep.mk index 524df457b94..5a2208c15b9 100644 --- a/make/rules-makedep.mk +++ b/make/rules-makedep.mk @@ -7,10 +7,21 @@ define create-rules-makedep $(call create-rules-common,$(1),$(2),$(3),unix) ifneq ($(findstring $(3)-unix,$(ARCHS)),) +$(2)_x86_64_DEPS := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_x86_64_DEPENDS)) +$(2)_x86_64_INCFLAGS = $$(foreach d,$$($(2)_x86_64_DEPS),-I$$($$(d)_x86_64_INCDIR)) +$(2)_x86_64-windows_LIBFLAGS = $$(foreach d,$$($(2)_x86_64_DEPS),-L$$($$(d)_x86_64_LIBDIR)/$$(x86_64-windows_LIBDIR)) +$(2)_i386_DEPS := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_i386_DEPENDS)) +$(2)_i386_INCFLAGS = $$(foreach d,$$($(2)_i386_DEPS),-I$$($$(d)_i386_INCDIR)) +$(2)_i386-windows_LIBFLAGS = $$(foreach d,$$($(2)_i386_DEPS),-L$$($$(d)_i386_LIBDIR)/$$(i386-windows_LIBDIR)) +$(2)_aarch64_DEPS := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_aarch64_DEPENDS)) +$(2)_aarch64_INCFLAGS = $$(foreach d,$$($(2)_aarch64_DEPS),-I$$($$(d)_aarch64_INCDIR)) +$(2)_aarch64-windows_LIBFLAGS = $$(foreach d,$$($(2)_aarch64_DEPS),-L$$($$(d)_aarch64_LIBDIR)/$$(aarch64-windows_LIBDIR)) + $$(OBJ)/.$(1)-$(3)-configure: $$(OBJ)/.wine-$$(HOST_ARCH)-tools @echo ":: configuring $(1)-$(3)..." >&2 - sed -e '/^all:$$$$/,$$$$c all:' \ + sed -e '1 i\UNIX_LIBS = $$(WINE_$(3)_LIBDIR)/wine/$(3)-unix/ntdll.so\n' \ + -e '/^all:$$$$/,$$$$c all:' \ -e '/^SUBDIRS/,/[^\\]$$$$/c SUBDIRS = $$($(2)_SRC)' \ -e '/^TOP_INSTALL_LIB/c TOP_INSTALL_LIB = dlls/src-$(1)' \ \ @@ -22,7 +33,7 @@ $$(OBJ)/.$(1)-$(3)-configure: $$(OBJ)/.wine-$$(HOST_ARCH)-tools -e '/^CFLAGS/c CFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)' \ -e '/^CPPFLAGS/c CPPFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)' \ -e '/^CXXFLAGS/c CXXFLAGS = $$($(2)_$(3)_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)' \ - -e '/^LDFLAGS/c LDFLAGS = $$($(2)_$(3)-$(4)_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS) -L$$(WINE_$(3)_LIBDIR)/wine/$(3)-unix -l:ntdll.so' \ + -e '/^LDFLAGS/c LDFLAGS = $$($(2)_$(3)-unix_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS)' \ \ -e '/^x86_64_CC/a x86_64_CXX = $$(x86_64-windows_TARGET)-g++' \ -e '/^x86_64_CFLAGS/c x86_64_CFLAGS = $$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)' \ @@ -36,6 +47,19 @@ $$(OBJ)/.$(1)-$(3)-configure: $$(OBJ)/.wine-$$(HOST_ARCH)-tools -e '/^i386_CXXFLAGS/c i386_CXXFLAGS = $$($(2)_i386_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)' \ -e '/^i386_LDFLAGS/c i386_LDFLAGS = $$($(2)_i386-windows_LIBFLAGS) $$($(2)_i386_LIBFLAGS) $$(i386_LDFLAGS) $$(LDFLAGS)' \ \ + -e '/^aarch64_CC/a aarch64_CXX = $$(aarch64-windows_TARGET)-g++' \ + -e '/^aarch64_CFLAGS/c aarch64_CFLAGS = $$($(2)_aarch64_INCFLAGS) $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)' \ + -e '/^aarch64_CPPFLAGS/c aarch64_CPPFLAGS = $$($(2)_aarch64_INCFLAGS) $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)' \ + -e '/^aarch64_CXXFLAGS/c aarch64_CXXFLAGS = $$($(2)_aarch64_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)' \ + -e '/^aarch64_LDFLAGS/c aarch64_LDFLAGS = $$($(2)_aarch64_LIBFLAGS) $$(aarch64_LDFLAGS) $$(LDFLAGS)' \ + \ + -e '/^arm64ec_CC/a arm64ec_CXX = $$(aarch64-windows_TARGET)-g++' \ + -e '/^arm64ec_CFLAGS/c arm64ec_CFLAGS = $$($(2)_aarch64_INCFLAGS) $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)' \ + -e '/^arm64ec_CPPFLAGS/c arm64ec_CPPFLAGS = $$($(2)_aarch64_INCFLAGS) $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)' \ + -e '/^arm64ec_CXXFLAGS/c arm64ec_CXXFLAGS = $$($(2)_aarch64_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(aarch64_CFLAGS) $$(CFLAGS)' \ + -e '/^arm64ec_LDFLAGS/c arm64ec_LDFLAGS = $$($(2)_aarch64_LIBFLAGS) $$(aarch64_LDFLAGS) $$(LDFLAGS)' \ + \ + -e '/^PE_ARCHS/s/aarch64//' \ $$(WINE_$(3)_OBJ)/Makefile > $$($(2)_$(3)_OBJ)/Makefile cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ diff --git a/make/rules-meson.mk b/make/rules-meson.mk index 4f7b7764270..f8c00c8f9ea 100644 --- a/make/rules-meson.mk +++ b/make/rules-meson.mk @@ -68,6 +68,7 @@ endef i386_MESON_CPU := x86 x86_64_MESON_CPU := x86_64 +aarch64_MESON_CPU := aarch64 unix_MESON_SYSTEM := linux windows_MESON_SYSTEM := windows diff --git a/make/rules-wine-requests.mk b/make/rules-wine-requests.mk index 54be352f488..ce3caa5d15b 100644 --- a/make/rules-wine-requests.mk +++ b/make/rules-wine-requests.mk @@ -21,6 +21,10 @@ $$(OBJ)/.$(1)-x86_64-configure: $$($(2)_SRC)/include/wine/server_protocol.h $$(OBJ)/.$(1)-x86_64-configure: $$($(2)_SRC)/server/request_handlers.h $$(OBJ)/.$(1)-x86_64-configure: $$($(2)_SRC)/server/request_trace.h +$$(OBJ)/.$(1)-aarch64-configure: $$($(2)_SRC)/include/wine/server_protocol.h +$$(OBJ)/.$(1)-aarch64-configure: $$($(2)_SRC)/server/request_handlers.h +$$(OBJ)/.$(1)-aarch64-configure: $$($(2)_SRC)/server/request_trace.h + $$(OBJ)/.$(1)-wine-requests: $$($(2)_SRC)/include/wine/server_protocol.h $$(OBJ)/.$(1)-wine-requests: $$($(2)_SRC)/server/request_handlers.h $$(OBJ)/.$(1)-wine-requests: $$($(2)_SRC)/server/request_trace.h @@ -33,6 +37,7 @@ $$(OBJ)/.$(1)-wine-requests: | $$(OBJ)/.$(1)-post-source $$(OBJ)/.$(1)-i386-build: $$(OBJ)/.$(1)-wine-requests $$(OBJ)/.$(1)-x86_64-build: $$(OBJ)/.$(1)-wine-requests +$$(OBJ)/.$(1)-aarch64-build: $$(OBJ)/.$(1)-wine-requests endef rules-wine-requests = $(call create-rules-wine-requests,$(1),$(call toupper,$(1))) diff --git a/openfst b/openfst new file mode 160000 index 00000000000..18e94e63870 --- /dev/null +++ b/openfst @@ -0,0 +1 @@ +Subproject commit 18e94e63870ebcf79ebb42b7035cd3cb626ec090 diff --git a/proton b/proton index 989e23460a5..254e05d2107 100755 --- a/proton +++ b/proton @@ -41,7 +41,7 @@ from random import randrange #To enable debug logging, copy "user_settings.sample.py" to "user_settings.py" #and edit it if needed. -CURRENT_PREFIX_VERSION="10.0-105" +CURRENT_PREFIX_VERSION="10.1000-200" PFX="Proton: " ld_path_var = "LD_LIBRARY_PATH" @@ -86,6 +86,8 @@ def file_is_wine_builtin_dll(path): '/lib/wine/i386-windows', '/lib/wine/x86_64-unix', '/lib/wine/x86_64-windows', + '/lib/wine/aarch64-unix', + '/lib/wine/aarch64-windows', # old paths '/lib/wine', '/lib/wine/fakedlls', @@ -529,8 +531,19 @@ class Proton: self.wine64_bin = self.bin_dir + "wine64" self.wineserver_bin = self.bin_dir + "wineserver" self.dist_lock = FileLock(self.path("dist.lock"), timeout=-1) - - if os.environ.get("PROTON_USE_WOW64", None) == "1" or not file_exists(self.wine_bin, follow_symlinks=True): + self.host_pe_arch = "x86_64-windows" + self.wow64_pe_arch = "i386-windows" + + if os.environ.get("PROTON_USE_ARM64", "1") == "1" and \ + platform.machine() == 'aarch64' and \ + file_exists(self.path("files/bin-arm64/"), follow_symlinks=True): + self.host_pe_arch = "aarch64-windows" + self.default_pfx_dir = self.path("files/share/default_pfx_arm64/") + self.bin_dir = self.path("files/bin-arm64/") + self.wine_bin = self.bin_dir + "wine" + self.wine64_bin = self.bin_dir + "wine" + self.wineserver_bin = self.bin_dir + "wineserver" + elif os.environ.get("PROTON_USE_WOW64", None) == "1" or not file_exists(self.wine_bin, follow_symlinks=True): self.bin_dir = self.path("files/bin-wow64/") self.wine_bin = self.bin_dir + "wine" self.wine64_bin = self.bin_dir + "wine" @@ -539,6 +552,9 @@ class Proton: def path(self, d): return self.base_dir + d + def arch_pe_dir(self, d, wow64): + return self.lib_dir + d + "/" + (self.wow64_pe_arch if wow64 else self.host_pe_arch) + "/" + def cleanup_legacy_dist(self): old_dist_dir = self.path("dist/") if file_exists(old_dist_dir, follow_symlinks=True): @@ -589,6 +605,7 @@ class CompatData: self.creation_sync_guard = self.path("pfx/creation_sync_guard") self.version_file = self.path("version") self.config_info_file = self.path("config_info") + self.fex_config_file = self.path("proton-fex-config.json") self.tracked_files_file = self.path("tracked_files") self.prefix_lock = FileLock(self.path("pfx.lock"), timeout=-1) self.old_machine_guid = None @@ -779,7 +796,9 @@ class CompatData: def pfx_copy(self, src, dst, dll_copy=False): if os.path.islink(src): contents = os.readlink(src) - if os.path.dirname(contents).endswith(('/lib/wine/i386-unix', '/lib/wine/i386-windows', '/lib/wine/x86_64-unix', '/lib/wine/x86_64-windows', + if os.path.dirname(contents).endswith(('/lib/wine/i386-unix', '/lib/wine/i386-windows', + '/lib/wine/x86_64-unix', '/lib/wine/x86_64-windows', + '/lib/wine/aarch64-unix', '/lib/wine/aarch64-windows', # old paths: '/lib64/wine/x86_64-unix', '/lib64/wine/x86_64-windows')): # wine builtin dll @@ -951,7 +970,8 @@ class CompatData: use_wined3d = "wined3d" in g_session.compat_config use_dxvk_dxgi = not use_wined3d and \ not ("WINEDLLOVERRIDES" in g_session.env and "dxgi=b" in g_session.env["WINEDLLOVERRIDES"]) - use_nvapi = 'disablenvapi' not in g_session.compat_config or 'forcenvapi' in g_session.compat_config + use_nvapi = (('disablenvapi' not in g_session.compat_config or 'forcenvapi' in g_session.compat_config) and + g_proton.host_pe_arch != "aarch64-windows") use_dxvk_d3d8 = "dxvkd3d8" in g_session.compat_config builtin_dll_copy = os.environ.get("PROTON_DLL_COPY", @@ -1069,18 +1089,18 @@ class CompatData: #copy openvr files into place makedirs(self.prefix_dir + "/drive_c/vrclient/bin") - try_copy(g_proton.lib_dir + "wine/i386-windows/vrclient.dll", "drive_c/vrclient/bin", + try_copy(g_proton.arch_pe_dir("wine", True) + "vrclient.dll", "drive_c/vrclient/bin", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) - try_copy(g_proton.lib_dir + "wine/x86_64-windows/vrclient_x64.dll", "drive_c/vrclient/bin", + try_copy(g_proton.arch_pe_dir("wine", False) + "vrclient_x64.dll", "drive_c/vrclient/bin", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) - try_copy(g_proton.lib_dir + "wine/dxvk/x86_64-windows/openvr_api_dxvk.dll", "drive_c/windows/syswow64", + try_copy(g_proton.arch_pe_dir("wine/dxvk", True) + "openvr_api_dxvk.dll", "drive_c/windows/syswow64", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) - try_copy(g_proton.lib_dir + "wine/dxvk/i386-windows/openvr_api_dxvk.dll", "drive_c/windows/system32", + try_copy(g_proton.arch_pe_dir("wine/dxvk", False) + "openvr_api_dxvk.dll", "drive_c/windows/system32", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) makedirs(self.prefix_dir + "/drive_c/openxr") - try_copy(g_proton.default_pfx_dir + "drive_c/openxr/wineopenxr64.json", "drive_c/openxr", + try_copy(g_proton.dist_dir + "share/openxr/wineopenxr64.json", "drive_c/openxr", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) if use_wined3d: @@ -1111,9 +1131,9 @@ class CompatData: prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) for f in dxvkfiles: - try_copy(g_proton.lib_dir + "wine/dxvk/x86_64-windows/" + f + ".dll", "drive_c/windows/system32", + try_copy(g_proton.arch_pe_dir("wine/dxvk", False) + f + ".dll", "drive_c/windows/system32", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) - try_copy(g_proton.lib_dir + "wine/dxvk/i386-windows/" + f + ".dll", "drive_c/windows/syswow64", + try_copy(g_proton.arch_pe_dir("wine/dxvk", True) + f + ".dll", "drive_c/windows/syswow64", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) g_session.dlloverrides[f] = "n" @@ -1121,9 +1141,9 @@ class CompatData: optional = False if f == "d3d12core": optional = True - try_copy(g_proton.lib_dir + "wine/vkd3d-proton/x86_64-windows/" + f + ".dll", "drive_c/windows/system32", + try_copy(g_proton.arch_pe_dir("wine/vkd3d-proton", False) + f + ".dll", "drive_c/windows/system32", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True, optional=optional) - try_copy(g_proton.lib_dir + "wine/vkd3d-proton/i386-windows/" + f + ".dll", "drive_c/windows/syswow64", + try_copy(g_proton.arch_pe_dir("wine/vkd3d-proton", True) + f + ".dll", "drive_c/windows/syswow64", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True, optional=optional) g_session.dlloverrides[f] = "n" @@ -1131,21 +1151,21 @@ class CompatData: dst = "drive_c/windows/system32/" + f + ".dll" if not file_exists(self.prefix_dir + dst, follow_symlinks=False): tracked_files.write(dst + '\n') - self.create_symlink(self.prefix_dir + dst, g_proton.lib_dir + "wine/icu/x86_64-windows/" + f + ".dll") + self.create_symlink(self.prefix_dir + dst, g_proton.arch_pe_dir("wine/icu", False) + f + ".dll") dst = "drive_c/windows/syswow64/" + f + ".dll" if not file_exists(self.prefix_dir + dst, follow_symlinks=False): tracked_files.write(dst + '\n') - self.create_symlink(self.prefix_dir + dst, g_proton.lib_dir + "wine/icu/i386-windows/" + f + ".dll") + self.create_symlink(self.prefix_dir + dst, g_proton.arch_pe_dir("wine/icu", True) + f + ".dll") # If the user requested the NVAPI be available, copy it into place. # If they didn't, clean up any stray nvapi DLLs. if use_nvapi: - try_copy(g_proton.lib_dir + "wine/nvapi/x86_64-windows/nvapi64.dll", "drive_c/windows/system32", + try_copy(g_proton.arch_pe_dir("wine/nvapi", False) + "nvapi64.dll", "drive_c/windows/system32", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) - try_copy(g_proton.lib_dir + "wine/nvapi/x86_64-windows/nvofapi64.dll", "drive_c/windows/system32", + try_copy(g_proton.arch_pe_dir("wine/nvapi", False) + "nvofapi64.dll", "drive_c/windows/system32", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) - try_copy(g_proton.lib_dir + "wine/nvapi/i386-windows/nvapi.dll", "drive_c/windows/syswow64", + try_copy(g_proton.arch_pe_dir("wine/nvapi", True) + "nvapi.dll", "drive_c/windows/syswow64", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) g_session.dlloverrides["nvapi64"] = "n" g_session.dlloverrides["nvofapi64"] = "n" @@ -1179,7 +1199,7 @@ class CompatData: setup_openvr_paths() # add Steam ffmpeg libraries to path - prepend_to_env_str(g_session.env, ld_path_var, steamdir + "/ubuntu12_64/video/:" + steamdir + "/ubuntu12_32/video/", ":") + prepend_to_env_str(g_session.env, ld_path_var, steamdir + "/ubuntu12_64/video/:" + steamdir + "/ubuntu12_32/video/:" + steamdir + "/linuxarm64/video/", ":") def comma_escaped(s): escaped = False @@ -1248,6 +1268,7 @@ def default_compat_config(): # d3dcompiler. "230410", #Warframe "3513350", #Wuthering Waves + "3728370", ]: ret.add("noopwr") @@ -1259,6 +1280,7 @@ def default_compat_config(): if appid in [ "257420", #Serious Sam 4 + "2021880", #Ara: History Untold ]: ret.add("hidevggpu") @@ -1290,6 +1312,7 @@ def default_compat_config(): "2842040", #Star Wars Outlaws "245300", #Disney Epic Mickey 2: The Power of Two "2594920", #Atelier Resleriana: Forgotten Alchemy and the Polar Night Liberator + "2586520", #Atelier Resleriana [JP] "3209830", #Stronghold Crusader: Definitive Edition Demo "3024040", #Stronghold Crusader: Definitive Edition "2433890", #Stronghold: Definitive Edition Demo @@ -1307,6 +1330,10 @@ def default_compat_config(): "2840770", #Avatar: Frontiers of Pandora "429660", #Tales of Berseria "1286220", #Sea Power + "2827230", #Wild Assault + "3159330", #Assassin's Creed Shadows + "367500", #Dragon's Dogma: Dark Arisen + "1890220", #Figmin XR ]: ret.add("gamedrive") @@ -1367,6 +1394,19 @@ def default_compat_config(): ]: ret.add("disablenvapi") + if appid in [ + "1808500", #ARC Raiders + "2073850", #The Finals + ]: + try: + with open('/proc/modules') as f: + drivers = set([line.partition(' ')[0] for line in f.read().splitlines()]) + if not drivers.intersection({'nvidia', 'nouveau', 'nova'}): + ret.add("disablenvapi") + except OSError: + ret.add("disablenvapi") + + if appid in [ "2698940", #The Crew Motorfest ]: @@ -1383,6 +1423,14 @@ def default_compat_config(): ]: ret.add("hideapu") + if appid in [ + "249610", # Galactic Arms Race + "287240", # Eterium Demo + "280200", # Eterium + "1072860", # Real Scary + ]: + ret.add("fnad3d11") + #options to also be enabled for prerequisite setup steps if "STEAM_COMPAT_APP_ID" in os.environ: appid = os.environ["STEAM_COMPAT_APP_ID"] @@ -1394,6 +1442,7 @@ def default_compat_config(): if appid in [ "255960", #Bad Mojo Redux + "2471120", #Rocket Jockey ]: ret.add("gamedrive") @@ -1478,6 +1527,11 @@ class Session: ]: self.env["WINE_HIDE_AMD_GPU"] = "1" + if "WINE_DISABLE_GAMESCOPE_MAX_SIZE_HACK" not in self.env and appid in [ + "3754990", + ]: + self.env["WINE_DISABLE_GAMESCOPE_MAX_SIZE_HACK"] = "1" + def init_wine(self): if "HOST_LC_ALL" in self.env and len(self.env["HOST_LC_ALL"]) > 0: #steam sets LC_ALL=C to help some games, but Wine requires the real value @@ -1497,11 +1551,12 @@ class Session: # Allow wine to restore this when calling an external app. self.env['ORIG_'+ld_path_var] = os.environ.get(ld_path_var, '') - prepend_to_env_str(self.env, ld_path_var, g_proton.lib_dir + "x86_64-linux-gnu:" + g_proton.lib_dir + "i386-linux-gnu", ":") + ld_library_path = [g_proton.lib_dir + "x86_64-linux-gnu", g_proton.lib_dir + "aarch64-linux-gnu", g_proton.lib_dir + "i386-linux-gnu"] + prepend_to_env_str(self.env, ld_path_var, ':'.join(ld_library_path), ":") self.env["WINEDLLPATH"] = ':'.join([g_proton.lib_dir + "vkd3d", g_proton.lib_dir + "wine"]) - self.env["GST_PLUGIN_SYSTEM_PATH_1_0"] = g_proton.lib_dir + "x86_64-linux-gnu/gstreamer-1.0" + ":" + g_proton.lib_dir + "i386-linux-gnu/gstreamer-1.0" + self.env["GST_PLUGIN_SYSTEM_PATH_1_0"] = ':'.join([lib + "/gstreamer-1.0" for lib in ld_library_path]) self.env["WINE_GST_REGISTRY_DIR"] = g_compatdata.path("gstreamer-1.0/") if "STEAM_COMPAT_MEDIA_PATH" in os.environ: @@ -1563,6 +1618,52 @@ class Session: self.log_file = open(lfile_path, "a") return True + def log_enabled_for(self, target: str, default_value: bool = False) -> bool: + log_list = self.env["PROTON_LOG"] + if nonzero(log_list): + for entry in log_list.split(','): + if entry[1:] == target: + if entry.startswith('+'): + return True + elif entry.startswith('-'): + return False + break + return default_value # logging enabled, return specified default when not found + return False # logging disabled, all false + + def generate_fex_app_config(self): + """ + Translate some environment variables into FEX config which is in files. + """ + app_config = { + "Config": {}, + "ThunksDB": {} + } + + # appinfo based environment variable as default + try: + app_config["Config"]["TSOEnabled"] = self.env['STEAM_FEX_TSOENABLED'] + except (KeyError, ValueError): + pass + try: + app_config["Config"]["Multiblock"] = self.env['STEAM_FEX_MULTIBLOCK'] + except (KeyError, ValueError): + pass + + # if user has specified an override, take those values + try: + config_env = self.env['STEAM_COMPAT_FEX_CONFIG'] + if config_env: + app_config["Config"]["TSOEnabled"] = "1" if ("TSOEnabled:1" in config_env) else "0" + app_config["Config"]["Multiblock"] = "1" if ("Multiblock:1" in config_env) else "0" + except KeyError: + pass + + if "PROTON_LOG" in self.env: + app_config["Config"]["SilentLog"] = "0" if self.log_enabled_for("fex", True) else "1" + + return app_config + def init_session(self, update_prefix_files): self.env["WINEPREFIX"] = g_compatdata.prefix_dir @@ -1598,9 +1699,6 @@ class Session: self.env.setdefault("VKD3D_DEBUG", "none") self.env.setdefault("VKD3D_SHADER_DEBUG", "none") - #disable XIM support until libx11 >= 1.7 is widespread - self.env.setdefault("WINE_ALLOW_XIM", "0") - if "wined3d11" in self.compat_config: self.compat_config.add("wined3d") @@ -1630,9 +1728,6 @@ class Session: else: self.env["WINEESYNC"] = "1" - if "noxim" not in self.compat_config: - self.env.pop("WINE_ALLOW_XIM") - if "nofsync" in self.compat_config: self.env.pop("WINEFSYNC", "") else: @@ -1707,6 +1802,14 @@ class Session: if os.environ.get("SteamGameId", 0) == "500810": self.dlloverrides["ddraw"] = "n,b" + # CW Bug 26050 + if os.environ.get("SteamGameId", 0) == "3780660": + self.dlloverrides["dinput"] = "n,b" + + # CW Bug 26133 + if os.environ.get("SteamGameId", 0) == "2471120": + self.dlloverrides["winmm"] = "n,b" + if "PROTON_LIMIT_RESOLUTIONS" not in self.env: if os.environ.get("SteamGameId", 0) in [ "39540", #SpellForce: Platinum Edition @@ -1716,6 +1819,7 @@ class Session: "524220", #NieR: Automata "814380", #Sekiro: Shadows Die Twice "374320", #DARK SOULS III + "357190", #Ultimate Marvel vs Capcom 3 ]: self.env["PROTON_LIMIT_RESOLUTIONS"] = "32" @@ -1779,11 +1883,24 @@ class Session: if "PROTON_CRASH_REPORT_DIR" in self.env: self.env["WINE_CRASH_REPORT_DIR"] = self.env["PROTON_CRASH_REPORT_DIR"] + if "fnad3d11" in self.compat_config and "FNA3D_FORCE_DRIVER" not in self.env: + self.env["FNA3D_FORCE_DRIVER"] = "D3D11" + + if "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE" not in self.env and os.environ.get("SteamGameId", 0) in [ + "205230", # Hell Yeah! + "253430", # CastleMiner Z + "287240", # Eterium Demo + "280200", # Eterium + "434570", # Blood and Bacon + ]: + self.env["SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE"] = "0" + if (os.environ.get("SteamGameId", 0) == "2322010" and # God of War: Ragnarok os.environ.get("SteamDeck", 0) == "1"): # Disable hidraw for Sony DualShock and DualSense controllers. self.env["PROTON_DISABLE_HIDRAW"] = "0x054C/0x05C4,0x054C/0x09CC,0x054C/0x0BA0,0x054C/0x0CE6,0x054C/0x0DF2" + # NVIDIA software may check for the "DriverStore" by querying the # NGXCore\NGXPath registry key via `D3DDDI_QUERYREGISTRY_SERVICEKEY` for # a given adapter. In the case where this path cannot be found, the @@ -1873,6 +1990,19 @@ class Session: self.env["DXVK_NVAPI_DRIVER_VERSION"] = "99999" self.env["WINE_HIDE_AMD_GPU"] = "1" + if not ("WINEDLLOVERRIDES" in g_session.env and "atiadlxx" in g_session.env["WINEDLLOVERRIDES"]) and "SteamAppId" in os.environ: + if os.environ["SteamAppId"] in [ + "2767030", + ]: + g_session.dlloverrides["atiadlxx"] = "b" + + if not ("PROTON_LIMIT_ADDRESS_SPACE" in g_session.env) and "SteamAppId" in os.environ: + if os.environ["SteamAppId"] in [ + "1282270", + "2963870", + ]: + self.env["PROTON_LIMIT_ADDRESS_SPACE"] = "1" + s = "" for dll in self.dlloverrides: setting = self.dlloverrides[dll] @@ -1882,6 +2012,20 @@ class Session: s = dll + "=" + setting append_to_env_str(self.env, "WINEDLLOVERRIDES", s, ";") + if platform.machine() == 'aarch64': + if os.environ.get("SteamGameId", 0) == "1167630": # Teardown + # https://github.com/microsoft/mimalloc/issues/958 + self.env["MIMALLOC_DISABLE_REDIRECT"] = "1" + + if not 'FEX_APP_CONFIG' in self.env: + # custom per-app config driven by Steam env vars + app_config = self.generate_fex_app_config() + with open(g_compatdata.fex_config_file, 'w') as f: + f.write(json.dumps(app_config, indent=2)) + self.env['FEX_APP_CONFIG'] = g_compatdata.fex_config_file + + self.env["FEX_APP_CONFIG_LOCATION"] = os.path.join(g_proton.dist_dir, "share/fex-emu/") + def run_proc(self, args, local_env=None): if local_env is None: local_env = self.env diff --git a/steam_helper/steam.c b/steam_helper/steam.c index a009ba307b6..ce51a884ce9 100644 --- a/steam_helper/steam.c +++ b/steam_helper/steam.c @@ -69,6 +69,26 @@ static void set_active_process_pid(void) REG_DWORD, &pid, sizeof(pid) ); } +/* XBox Game Studios titles run GamingRepair.exe unless it has previously succeeded and set a registry value + * to flag success. The program uses unimplemented AppInstallManager and therefore will not return success. + * It causes a delay of around 20 seconds, so we set the registry key here to prevent it from running. */ +static void set_gamingrepair_succeeded(const char *sgi) +{ + DWORD succeeded = 1; + HKEY appkey, idkey; + + if (RegOpenKeyExW( HKEY_LOCAL_MACHINE, L"SOFTWARE\\Valve\\Steam\\Apps", 0, KEY_ALL_ACCESS | KEY_WOW64_32KEY, &appkey )) + return; + + if (!RegOpenKeyExA( appkey, sgi, 0, KEY_ALL_ACCESS, &idkey )) + { + RegSetValueExW( idkey, L"GamingRepair", 0, REG_DWORD, (BYTE *)&succeeded, sizeof(succeeded) ); + RegCloseKey(idkey); + } + + RegCloseKey(appkey); +} + static DWORD WINAPI create_steam_windows(void *arg) { static WNDCLASSEXW wndclass = { sizeof(WNDCLASSEXW) }; @@ -794,6 +814,7 @@ int main(int argc, char *argv[]) HANDLE event = INVALID_HANDLE_VALUE; HANDLE child = INVALID_HANDLE_VALUE; BOOL game_process = FALSE; + const char *sgi; DWORD rc = 0; WINE_TRACE("\n"); @@ -801,7 +822,7 @@ int main(int argc, char *argv[]) if (steam_command_handler(argc, argv)) return 0; - if (getenv("SteamGameId")) + if ((sgi = getenv("SteamGameId"))) { WCHAR path[MAX_PATH], *p; @@ -814,6 +835,7 @@ int main(int argc, char *argv[]) CreateThread(NULL, 0, create_steam_windows, NULL, 0, NULL); set_active_process_pid(); + set_gamingrepair_succeeded(sgi); SetEnvironmentVariableW(L"SteamPath", L"C:\\Program Files (x86)\\Steam"); *path = 0; diff --git a/toolmanifest_arm64.vdf b/toolmanifest_arm64.vdf new file mode 100644 index 00000000000..99fdf4083c3 --- /dev/null +++ b/toolmanifest_arm64.vdf @@ -0,0 +1,8 @@ +"manifest" +{ + "version" "2" + "commandline" "/proton %verb%" + "require_tool_appid" "3810310" + "use_sessions" "1" + "compatmanager_layer_name" "proton" +} diff --git a/toolmanifest_runtime.vdf b/toolmanifest_x86_64.vdf similarity index 100% rename from toolmanifest_runtime.vdf rename to toolmanifest_x86_64.vdf diff --git a/vkd3d b/vkd3d index 979d7e4b85f..90196f7d015 160000 --- a/vkd3d +++ b/vkd3d @@ -1 +1 @@ -Subproject commit 979d7e4b85f2fb8db60219f4a2673fc807142ebd +Subproject commit 90196f7d015c61d8d31f74f978aa0f45ae8eaf9c diff --git a/vkd3d-proton b/vkd3d-proton index 32bffb836cb..82ddede8764 160000 --- a/vkd3d-proton +++ b/vkd3d-proton @@ -1 +1 @@ -Subproject commit 32bffb836cb03e72caa0b812ac224af1373bbb3c +Subproject commit 82ddede876449380142bbd50bc36a865ae7a727a diff --git a/vosk-api b/vosk-api new file mode 160000 index 00000000000..12f29a3415e --- /dev/null +++ b/vosk-api @@ -0,0 +1 @@ +Subproject commit 12f29a3415e4967e088ed09202bfb0007e5a1787 diff --git a/vrclient_x64/Makefile.in b/vrclient_x64/Makefile.in index 9204020e0a5..8c8e87e81e0 100644 --- a/vrclient_x64/Makefile.in +++ b/vrclient_x64/Makefile.in @@ -5,7 +5,9 @@ IMPORTS = advapi32 x86_64_MODULE = vrclient_x64.dll x86_64_UNIXLIB = vrclient_x64.so aarch64_MODULE = vrclient_x64.dll +arm64ec_MODULE = vrclient_x64.dll aarch64_UNIXLIB = vrclient_x64.so +arm64ec_UNIXLIB = vrclient_x64.so EXTRADEFS = -DGNUC @@ -96,6 +98,7 @@ SOURCES = \ cppIVROverlay_IVROverlay_003.cpp \ cppIVROverlay_IVROverlay_004.cpp \ cppIVROverlay_IVROverlay_005.cpp \ + cppIVROverlay_IVROverlay_006.cpp \ cppIVROverlay_IVROverlay_007.cpp \ cppIVROverlay_IVROverlay_008.cpp \ cppIVROverlay_IVROverlay_010.cpp \ @@ -130,6 +133,7 @@ SOURCES = \ cppIVRSystem_IVRSystem_004.cpp \ cppIVRSystem_IVRSystem_005.cpp \ cppIVRSystem_IVRSystem_006.cpp \ + cppIVRSystem_IVRSystem_007.cpp \ cppIVRSystem_IVRSystem_009.cpp \ cppIVRSystem_IVRSystem_010.cpp \ cppIVRSystem_IVRSystem_011.cpp \ diff --git a/vrclient_x64/cppIVRCompositor_IVRCompositor_008.cpp b/vrclient_x64/cppIVRCompositor_IVRCompositor_008.cpp index 3fc2d061394..f63d41a5967 100644 --- a/vrclient_x64/cppIVRCompositor_IVRCompositor_008.cpp +++ b/vrclient_x64/cppIVRCompositor_IVRCompositor_008.cpp @@ -113,24 +113,6 @@ NTSTATUS wow64_IVRCompositor_IVRCompositor_008_WaitGetPoses( void *args ) } #endif -NTSTATUS IVRCompositor_IVRCompositor_008_Submit( void *args ) -{ - struct IVRCompositor_IVRCompositor_008_Submit_params *params = (struct IVRCompositor_IVRCompositor_008_Submit_params *)args; - struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; - params->_ret = iface->Submit( params->eEye, params->eTextureType, params->pTexture, params->pBounds, params->nSubmitFlags ); - return 0; -} - -#if defined(__x86_64__) || defined(__aarch64__) -NTSTATUS wow64_IVRCompositor_IVRCompositor_008_Submit( void *args ) -{ - struct wow64_IVRCompositor_IVRCompositor_008_Submit_params *params = (struct wow64_IVRCompositor_IVRCompositor_008_Submit_params *)args; - struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; - params->_ret = iface->Submit( params->eEye, params->eTextureType, params->pTexture, params->pBounds, params->nSubmitFlags ); - return 0; -} -#endif - NTSTATUS IVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame( void *args ) { struct IVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame_params *params = (struct IVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame_params *)args; @@ -153,7 +135,7 @@ NTSTATUS IVRCompositor_IVRCompositor_008_GetFrameTiming( void *args ) { struct IVRCompositor_IVRCompositor_008_GetFrameTiming_params *params = (struct IVRCompositor_IVRCompositor_008_GetFrameTiming_params *)args; struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; - u_Compositor_FrameTiming_093 u_pTiming; + u_Compositor_FrameTiming_0911 u_pTiming; if (params->pTiming) u_pTiming = *params->pTiming; params->_ret = iface->GetFrameTiming( params->pTiming ? &u_pTiming : nullptr, params->unFramesAgo ); if (params->pTiming) *params->pTiming = u_pTiming; @@ -165,7 +147,7 @@ NTSTATUS wow64_IVRCompositor_IVRCompositor_008_GetFrameTiming( void *args ) { struct wow64_IVRCompositor_IVRCompositor_008_GetFrameTiming_params *params = (struct wow64_IVRCompositor_IVRCompositor_008_GetFrameTiming_params *)args; struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; - u_Compositor_FrameTiming_093 u_pTiming; + u_Compositor_FrameTiming_0911 u_pTiming; if (params->pTiming) u_pTiming = *params->pTiming; params->_ret = iface->GetFrameTiming( params->pTiming ? &u_pTiming : nullptr, params->unFramesAgo ); if (params->pTiming) *params->pTiming = u_pTiming; @@ -209,24 +191,6 @@ NTSTATUS wow64_IVRCompositor_IVRCompositor_008_FadeGrid( void *args ) } #endif -NTSTATUS IVRCompositor_IVRCompositor_008_SetSkyboxOverride( void *args ) -{ - struct IVRCompositor_IVRCompositor_008_SetSkyboxOverride_params *params = (struct IVRCompositor_IVRCompositor_008_SetSkyboxOverride_params *)args; - struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; - iface->SetSkyboxOverride( params->eTextureType, params->pFront, params->pBack, params->pLeft, params->pRight, params->pTop, params->pBottom ); - return 0; -} - -#if defined(__x86_64__) || defined(__aarch64__) -NTSTATUS wow64_IVRCompositor_IVRCompositor_008_SetSkyboxOverride( void *args ) -{ - struct wow64_IVRCompositor_IVRCompositor_008_SetSkyboxOverride_params *params = (struct wow64_IVRCompositor_IVRCompositor_008_SetSkyboxOverride_params *)args; - struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; - iface->SetSkyboxOverride( params->eTextureType, params->pFront, params->pBack, params->pLeft, params->pRight, params->pTop, params->pBottom ); - return 0; -} -#endif - NTSTATUS IVRCompositor_IVRCompositor_008_ClearSkyboxOverride( void *args ) { struct IVRCompositor_IVRCompositor_008_ClearSkyboxOverride_params *params = (struct IVRCompositor_IVRCompositor_008_ClearSkyboxOverride_params *)args; @@ -479,3 +443,39 @@ NTSTATUS wow64_IVRCompositor_IVRCompositor_008_GetLastFrameRenderer( void *args } #endif +NTSTATUS IVRCompositor_IVRCompositor_008_GetLastPoses( void *args ) +{ + struct IVRCompositor_IVRCompositor_008_GetLastPoses_params *params = (struct IVRCompositor_IVRCompositor_008_GetLastPoses_params *)args; + struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; + params->_ret = iface->GetLastPoses( params->pRenderPoseArray, params->unRenderPoseArrayCount, params->pGamePoseArray, params->unGamePoseArrayCount ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRCompositor_IVRCompositor_008_GetLastPoses( void *args ) +{ + struct wow64_IVRCompositor_IVRCompositor_008_GetLastPoses_params *params = (struct wow64_IVRCompositor_IVRCompositor_008_GetLastPoses_params *)args; + struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; + params->_ret = iface->GetLastPoses( params->pRenderPoseArray, params->unRenderPoseArrayCount, params->pGamePoseArray, params->unGamePoseArrayCount ); + return 0; +} +#endif + +NTSTATUS IVRCompositor_IVRCompositor_008_PostPresentHandoff( void *args ) +{ + struct IVRCompositor_IVRCompositor_008_PostPresentHandoff_params *params = (struct IVRCompositor_IVRCompositor_008_PostPresentHandoff_params *)args; + struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; + iface->PostPresentHandoff( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRCompositor_IVRCompositor_008_PostPresentHandoff( void *args ) +{ + struct wow64_IVRCompositor_IVRCompositor_008_PostPresentHandoff_params *params = (struct wow64_IVRCompositor_IVRCompositor_008_PostPresentHandoff_params *)args; + struct u_IVRCompositor_IVRCompositor_008 *iface = (struct u_IVRCompositor_IVRCompositor_008 *)params->u_iface; + iface->PostPresentHandoff( ); + return 0; +} +#endif + diff --git a/vrclient_x64/cppIVROverlay_IVROverlay_006.cpp b/vrclient_x64/cppIVROverlay_IVROverlay_006.cpp new file mode 100644 index 00000000000..c29d74fbc9d --- /dev/null +++ b/vrclient_x64/cppIVROverlay_IVROverlay_006.cpp @@ -0,0 +1,1025 @@ +/* This file is auto-generated, do not edit. */ +#include "unix_private.h" + +#if 0 +#pragma makedep unix +#endif + +NTSTATUS IVROverlay_IVROverlay_006_FindOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_FindOverlay_params *params = (struct IVROverlay_IVROverlay_006_FindOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->FindOverlay( params->pchOverlayKey, params->pOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_FindOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_FindOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_FindOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->FindOverlay( params->pchOverlayKey, params->pOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_CreateOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_CreateOverlay_params *params = (struct IVROverlay_IVROverlay_006_CreateOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->CreateOverlay( params->pchOverlayKey, params->pchOverlayFriendlyName, params->pOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_CreateOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_CreateOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_CreateOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->CreateOverlay( params->pchOverlayKey, params->pchOverlayFriendlyName, params->pOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_DestroyOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_DestroyOverlay_params *params = (struct IVROverlay_IVROverlay_006_DestroyOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->DestroyOverlay( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_DestroyOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_DestroyOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_DestroyOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->DestroyOverlay( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetHighQualityOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetHighQualityOverlay_params *params = (struct IVROverlay_IVROverlay_006_SetHighQualityOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetHighQualityOverlay( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetHighQualityOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetHighQualityOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetHighQualityOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetHighQualityOverlay( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetHighQualityOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetHighQualityOverlay_params *params = (struct IVROverlay_IVROverlay_006_GetHighQualityOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetHighQualityOverlay( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetHighQualityOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetHighQualityOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetHighQualityOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetHighQualityOverlay( ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayKey( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayKey_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayKey_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayKey( params->ulOverlayHandle, params->pchValue, params->unBufferSize, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayKey( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayKey_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayKey_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayKey( params->ulOverlayHandle, params->pchValue, params->unBufferSize, params->pError ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayName( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayName_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayName_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayName( params->ulOverlayHandle, params->pchValue, params->unBufferSize, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayName( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayName_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayName_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayName( params->ulOverlayHandle, params->pchValue, params->unBufferSize, params->pError ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayImageData( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayImageData_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayImageData_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayImageData( params->ulOverlayHandle, params->pvBuffer, params->unBufferSize, params->punWidth, params->punHeight ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayImageData( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayImageData_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayImageData_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayImageData( params->ulOverlayHandle, params->pvBuffer, params->unBufferSize, params->punWidth, params->punHeight ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayErrorNameFromEnum( params->error ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayErrorNameFromEnum( params->error ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayFlag( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayFlag_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayFlag_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayFlag( params->ulOverlayHandle, params->eOverlayFlag, params->bEnabled ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayFlag( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayFlag_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayFlag_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayFlag( params->ulOverlayHandle, params->eOverlayFlag, params->bEnabled ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayFlag( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayFlag_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayFlag_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayFlag( params->ulOverlayHandle, params->eOverlayFlag, params->pbEnabled ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayFlag( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayFlag_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayFlag_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayFlag( params->ulOverlayHandle, params->eOverlayFlag, params->pbEnabled ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayColor( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayColor_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayColor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayColor( params->ulOverlayHandle, params->fRed, params->fGreen, params->fBlue ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayColor( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayColor_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayColor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayColor( params->ulOverlayHandle, params->fRed, params->fGreen, params->fBlue ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayColor( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayColor_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayColor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayColor( params->ulOverlayHandle, params->pfRed, params->pfGreen, params->pfBlue ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayColor( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayColor_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayColor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayColor( params->ulOverlayHandle, params->pfRed, params->pfGreen, params->pfBlue ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayAlpha( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayAlpha_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayAlpha_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayAlpha( params->ulOverlayHandle, params->fAlpha ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayAlpha( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayAlpha_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayAlpha_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayAlpha( params->ulOverlayHandle, params->fAlpha ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayAlpha( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayAlpha_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayAlpha_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayAlpha( params->ulOverlayHandle, params->pfAlpha ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayAlpha( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayAlpha_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayAlpha_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayAlpha( params->ulOverlayHandle, params->pfAlpha ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayGamma( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayGamma_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayGamma_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayGamma( params->ulOverlayHandle, params->fGamma ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayGamma( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayGamma_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayGamma_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayGamma( params->ulOverlayHandle, params->fGamma ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayGamma( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayGamma_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayGamma_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayGamma( params->ulOverlayHandle, params->pfGamma ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayGamma( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayGamma_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayGamma_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayGamma( params->ulOverlayHandle, params->pfGamma ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayWidthInMeters( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayWidthInMeters( params->ulOverlayHandle, params->fWidthInMeters ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayWidthInMeters( params->ulOverlayHandle, params->fWidthInMeters ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayWidthInMeters( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayWidthInMeters( params->ulOverlayHandle, params->pfWidthInMeters ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayWidthInMeters( params->ulOverlayHandle, params->pfWidthInMeters ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayAutoCurveDistanceRangeInMeters( params->ulOverlayHandle, params->fMinDistanceInMeters, params->fMaxDistanceInMeters ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayAutoCurveDistanceRangeInMeters( params->ulOverlayHandle, params->fMinDistanceInMeters, params->fMaxDistanceInMeters ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayAutoCurveDistanceRangeInMeters( params->ulOverlayHandle, params->pfMinDistanceInMeters, params->pfMaxDistanceInMeters ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayAutoCurveDistanceRangeInMeters( params->ulOverlayHandle, params->pfMinDistanceInMeters, params->pfMaxDistanceInMeters ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTextureBounds( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayTextureBounds( params->ulOverlayHandle, params->pOverlayTextureBounds ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTextureBounds( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayTextureBounds( params->ulOverlayHandle, params->pOverlayTextureBounds ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTextureBounds( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTextureBounds( params->ulOverlayHandle, params->pOverlayTextureBounds ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTextureBounds( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTextureBounds( params->ulOverlayHandle, params->pOverlayTextureBounds ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTransformType( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTransformType_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayTransformType_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTransformType( params->ulOverlayHandle, params->peTransformType ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTransformType( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformType_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformType_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTransformType( params->ulOverlayHandle, params->peTransformType ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayTransformAbsolute( params->ulOverlayHandle, params->eTrackingOrigin, params->pmatTrackingOriginToOverlayTransform ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayTransformAbsolute( params->ulOverlayHandle, params->eTrackingOrigin, params->pmatTrackingOriginToOverlayTransform ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTransformAbsolute( params->ulOverlayHandle, params->peTrackingOrigin, params->pmatTrackingOriginToOverlayTransform ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTransformAbsolute( params->ulOverlayHandle, params->peTrackingOrigin, params->pmatTrackingOriginToOverlayTransform ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayTransformTrackedDeviceRelative( params->ulOverlayHandle, params->unTrackedDevice, params->pmatTrackedDeviceToOverlayTransform ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayTransformTrackedDeviceRelative( params->ulOverlayHandle, params->unTrackedDevice, params->pmatTrackedDeviceToOverlayTransform ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTransformTrackedDeviceRelative( params->ulOverlayHandle, params->punTrackedDevice, params->pmatTrackedDeviceToOverlayTransform ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayTransformTrackedDeviceRelative( params->ulOverlayHandle, params->punTrackedDevice, params->pmatTrackedDeviceToOverlayTransform ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_ShowOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_ShowOverlay_params *params = (struct IVROverlay_IVROverlay_006_ShowOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ShowOverlay( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_ShowOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_ShowOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ShowOverlay( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_HideOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_HideOverlay_params *params = (struct IVROverlay_IVROverlay_006_HideOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->HideOverlay( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_HideOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_HideOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_HideOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->HideOverlay( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_IsOverlayVisible( void *args ) +{ + struct IVROverlay_IVROverlay_006_IsOverlayVisible_params *params = (struct IVROverlay_IVROverlay_006_IsOverlayVisible_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsOverlayVisible( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsOverlayVisible( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_IsOverlayVisible_params *params = (struct wow64_IVROverlay_IVROverlay_006_IsOverlayVisible_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsOverlayVisible( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_PollNextOverlayEvent( void *args ) +{ + struct IVROverlay_IVROverlay_006_PollNextOverlayEvent_params *params = (struct IVROverlay_IVROverlay_006_PollNextOverlayEvent_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + u_VREvent_t_0911 u_pEvent; + if (params->pEvent) u_pEvent = *params->pEvent; + params->_ret = iface->PollNextOverlayEvent( params->ulOverlayHandle, params->pEvent ? &u_pEvent : nullptr ); + if (params->pEvent) *params->pEvent = u_pEvent; + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_PollNextOverlayEvent( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_PollNextOverlayEvent_params *params = (struct wow64_IVROverlay_IVROverlay_006_PollNextOverlayEvent_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + u_VREvent_t_0911 u_pEvent; + if (params->pEvent) u_pEvent = *params->pEvent; + params->_ret = iface->PollNextOverlayEvent( params->ulOverlayHandle, params->pEvent ? &u_pEvent : nullptr ); + if (params->pEvent) *params->pEvent = u_pEvent; + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayInputMethod( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayInputMethod_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayInputMethod_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayInputMethod( params->ulOverlayHandle, params->peInputMethod ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayInputMethod( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayInputMethod_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayInputMethod_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayInputMethod( params->ulOverlayHandle, params->peInputMethod ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayInputMethod( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayInputMethod_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayInputMethod_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayInputMethod( params->ulOverlayHandle, params->eInputMethod ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayInputMethod( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayInputMethod_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayInputMethod_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayInputMethod( params->ulOverlayHandle, params->eInputMethod ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayMouseScale( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetOverlayMouseScale_params *params = (struct IVROverlay_IVROverlay_006_GetOverlayMouseScale_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayMouseScale( params->ulOverlayHandle, params->pvecMouseScale ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayMouseScale( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetOverlayMouseScale_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetOverlayMouseScale_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetOverlayMouseScale( params->ulOverlayHandle, params->pvecMouseScale ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayMouseScale( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayMouseScale_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayMouseScale_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayMouseScale( params->ulOverlayHandle, params->pvecMouseScale ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayMouseScale( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayMouseScale_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayMouseScale_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayMouseScale( params->ulOverlayHandle, params->pvecMouseScale ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_ComputeOverlayIntersection( void *args ) +{ + struct IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params *params = (struct IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ComputeOverlayIntersection( params->ulOverlayHandle, params->pParams, params->pResults ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_ComputeOverlayIntersection( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params *params = (struct wow64_IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ComputeOverlayIntersection( params->ulOverlayHandle, params->pParams, params->pResults ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse( void *args ) +{ + struct IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params *params = (struct IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->HandleControllerOverlayInteractionAsMouse( params->ulOverlayHandle, params->unControllerDeviceIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params *params = (struct wow64_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->HandleControllerOverlayInteractionAsMouse( params->ulOverlayHandle, params->unControllerDeviceIndex ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_IsHoverTargetOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params *params = (struct IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsHoverTargetOverlay( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsHoverTargetOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsHoverTargetOverlay( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetGamepadFocusOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params *params = (struct IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetGamepadFocusOverlay( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetGamepadFocusOverlay( ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetGamepadFocusOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params *params = (struct IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetGamepadFocusOverlay( params->ulNewFocusOverlay ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetGamepadFocusOverlay( params->ulNewFocusOverlay ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayNeighbor( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayNeighbor_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayNeighbor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayNeighbor( params->eDirection, params->ulFrom, params->ulTo ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayNeighbor( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayNeighbor_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayNeighbor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayNeighbor( params->eDirection, params->ulFrom, params->ulTo ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor( void *args ) +{ + struct IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params *params = (struct IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->MoveGamepadFocusToNeighbor( params->eDirection, params->ulFrom ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params *params = (struct wow64_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->MoveGamepadFocusToNeighbor( params->eDirection, params->ulFrom ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_ClearOverlayTexture( void *args ) +{ + struct IVROverlay_IVROverlay_006_ClearOverlayTexture_params *params = (struct IVROverlay_IVROverlay_006_ClearOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ClearOverlayTexture( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_ClearOverlayTexture( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_ClearOverlayTexture_params *params = (struct wow64_IVROverlay_IVROverlay_006_ClearOverlayTexture_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ClearOverlayTexture( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayRaw( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayRaw_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayRaw_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayRaw( params->ulOverlayHandle, params->pvBuffer, params->unWidth, params->unHeight, params->unDepth ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayRaw( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayRaw_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayRaw_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetOverlayRaw( params->ulOverlayHandle, params->pvBuffer, params->unWidth, params->unHeight, params->unDepth ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayFromFile( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetOverlayFromFile_params *params = (struct IVROverlay_IVROverlay_006_SetOverlayFromFile_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + char *u_pchFilePath = vrclient_dos_to_unix_path( params->pchFilePath ); + params->_ret = iface->SetOverlayFromFile( params->ulOverlayHandle, u_pchFilePath ); + vrclient_free_path( u_pchFilePath ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayFromFile( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetOverlayFromFile_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetOverlayFromFile_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + char *u_pchFilePath = vrclient_dos_to_unix_path( params->pchFilePath ); + params->_ret = iface->SetOverlayFromFile( params->ulOverlayHandle, u_pchFilePath ); + vrclient_free_path( u_pchFilePath ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_CreateDashboardOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_CreateDashboardOverlay_params *params = (struct IVROverlay_IVROverlay_006_CreateDashboardOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->CreateDashboardOverlay( params->pchOverlayKey, params->pchOverlayFriendlyName, params->pMainHandle, params->pThumbnailHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_CreateDashboardOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_CreateDashboardOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_CreateDashboardOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->CreateDashboardOverlay( params->pchOverlayKey, params->pchOverlayFriendlyName, params->pMainHandle, params->pThumbnailHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_IsDashboardVisible( void *args ) +{ + struct IVROverlay_IVROverlay_006_IsDashboardVisible_params *params = (struct IVROverlay_IVROverlay_006_IsDashboardVisible_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsDashboardVisible( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsDashboardVisible( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_IsDashboardVisible_params *params = (struct wow64_IVROverlay_IVROverlay_006_IsDashboardVisible_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsDashboardVisible( ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_IsActiveDashboardOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params *params = (struct IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsActiveDashboardOverlay( params->ulOverlayHandle ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->IsActiveDashboardOverlay( params->ulOverlayHandle ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess( void *args ) +{ + struct IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params *params = (struct IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetDashboardOverlaySceneProcess( params->ulOverlayHandle, params->unProcessId ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params *params = (struct wow64_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->SetDashboardOverlaySceneProcess( params->ulOverlayHandle, params->unProcessId ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params *params = (struct IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetDashboardOverlaySceneProcess( params->ulOverlayHandle, params->punProcessId ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetDashboardOverlaySceneProcess( params->ulOverlayHandle, params->punProcessId ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_ShowDashboard( void *args ) +{ + struct IVROverlay_IVROverlay_006_ShowDashboard_params *params = (struct IVROverlay_IVROverlay_006_ShowDashboard_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + iface->ShowDashboard( params->pchOverlayToShow ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowDashboard( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_ShowDashboard_params *params = (struct wow64_IVROverlay_IVROverlay_006_ShowDashboard_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + iface->ShowDashboard( params->pchOverlayToShow ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_ShowKeyboard( void *args ) +{ + struct IVROverlay_IVROverlay_006_ShowKeyboard_params *params = (struct IVROverlay_IVROverlay_006_ShowKeyboard_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ShowKeyboard( params->eInputMode, params->eLineInputMode, params->pchDescription, params->unCharMax, params->pchExistingText, params->bUseMinimalMode, params->uUserValue ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowKeyboard( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_ShowKeyboard_params *params = (struct wow64_IVROverlay_IVROverlay_006_ShowKeyboard_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ShowKeyboard( params->eInputMode, params->eLineInputMode, params->pchDescription, params->unCharMax, params->pchExistingText, params->bUseMinimalMode, params->uUserValue ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_ShowKeyboardForOverlay( void *args ) +{ + struct IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params *params = (struct IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ShowKeyboardForOverlay( params->ulOverlayHandle, params->eInputMode, params->eLineInputMode, params->pchDescription, params->unCharMax, params->pchExistingText, params->bUseMinimalMode, params->uUserValue ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params *params = (struct wow64_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->ShowKeyboardForOverlay( params->ulOverlayHandle, params->eInputMode, params->eLineInputMode, params->pchDescription, params->unCharMax, params->pchExistingText, params->bUseMinimalMode, params->uUserValue ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_GetKeyboardText( void *args ) +{ + struct IVROverlay_IVROverlay_006_GetKeyboardText_params *params = (struct IVROverlay_IVROverlay_006_GetKeyboardText_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetKeyboardText( params->pchText, params->cchText ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetKeyboardText( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_GetKeyboardText_params *params = (struct wow64_IVROverlay_IVROverlay_006_GetKeyboardText_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + params->_ret = iface->GetKeyboardText( params->pchText, params->cchText ); + return 0; +} +#endif + +NTSTATUS IVROverlay_IVROverlay_006_HideKeyboard( void *args ) +{ + struct IVROverlay_IVROverlay_006_HideKeyboard_params *params = (struct IVROverlay_IVROverlay_006_HideKeyboard_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + iface->HideKeyboard( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVROverlay_IVROverlay_006_HideKeyboard( void *args ) +{ + struct wow64_IVROverlay_IVROverlay_006_HideKeyboard_params *params = (struct wow64_IVROverlay_IVROverlay_006_HideKeyboard_params *)args; + struct u_IVROverlay_IVROverlay_006 *iface = (struct u_IVROverlay_IVROverlay_006 *)params->u_iface; + iface->HideKeyboard( ); + return 0; +} +#endif + diff --git a/vrclient_x64/cppIVRRenderModels_IVRRenderModels_001.cpp b/vrclient_x64/cppIVRRenderModels_IVRRenderModels_001.cpp index 869c5d8230f..fe992ff9e79 100644 --- a/vrclient_x64/cppIVRRenderModels_IVRRenderModels_001.cpp +++ b/vrclient_x64/cppIVRRenderModels_IVRRenderModels_001.cpp @@ -89,3 +89,95 @@ NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelCount( void *ar } #endif +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentCount( void *args ) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentCount_params *params = (struct IVRRenderModels_IVRRenderModels_001_GetComponentCount_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentCount( params->pchRenderModelName ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentCount( void *args ) +{ + struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentCount_params *params = (struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentCount_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentCount( params->pchRenderModelName ); + return 0; +} +#endif + +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentName( void *args ) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentName_params *params = (struct IVRRenderModels_IVRRenderModels_001_GetComponentName_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentName( params->pchRenderModelName, params->unComponentIndex, params->pchComponentName, params->unComponentNameLen ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentName( void *args ) +{ + struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentName_params *params = (struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentName_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentName( params->pchRenderModelName, params->unComponentIndex, params->pchComponentName, params->unComponentNameLen ); + return 0; +} +#endif + +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask( void *args ) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params *params = (struct IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentButtonMask( params->pchRenderModelName, params->pchComponentName ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask( void *args ) +{ + struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params *params = (struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentButtonMask( params->pchRenderModelName, params->pchComponentName ); + return 0; +} +#endif + +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName( void *args ) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params *params = (struct IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentRenderModelName( params->pchRenderModelName, params->pchComponentName, params->pchComponentRenderModelName, params->unComponentRenderModelNameLen ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName( void *args ) +{ + struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params *params = (struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + params->_ret = iface->GetComponentRenderModelName( params->pchRenderModelName, params->pchComponentName, params->pchComponentRenderModelName, params->unComponentRenderModelNameLen ); + return 0; +} +#endif + +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentState( void *args ) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentState_params *params = (struct IVRRenderModels_IVRRenderModels_001_GetComponentState_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + u_VRControllerState001_t u_controllerState = params->controllerState; + params->_ret = iface->GetComponentState( params->pchRenderModelName, params->pchComponentName, u_controllerState, params->pComponentState ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentState( void *args ) +{ + struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentState_params *params = (struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentState_params *)args; + struct u_IVRRenderModels_IVRRenderModels_001 *iface = (struct u_IVRRenderModels_IVRRenderModels_001 *)params->u_iface; + u_VRControllerState001_t u_controllerState = params->controllerState; + params->_ret = iface->GetComponentState( params->pchRenderModelName, params->pchComponentName, u_controllerState, params->pComponentState ); + return 0; +} +#endif + diff --git a/vrclient_x64/cppIVRSystem_IVRSystem_007.cpp b/vrclient_x64/cppIVRSystem_IVRSystem_007.cpp new file mode 100644 index 00000000000..ec12c26ab19 --- /dev/null +++ b/vrclient_x64/cppIVRSystem_IVRSystem_007.cpp @@ -0,0 +1,805 @@ +/* This file is auto-generated, do not edit. */ +#include "unix_private.h" + +#if 0 +#pragma makedep unix +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetWindowBounds( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetWindowBounds_params *params = (struct IVRSystem_IVRSystem_007_GetWindowBounds_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetWindowBounds( params->pnX, params->pnY, params->pnWidth, params->pnHeight ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetWindowBounds( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetWindowBounds_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetWindowBounds_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetWindowBounds( params->pnX, params->pnY, params->pnWidth, params->pnHeight ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params *params = (struct IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetRecommendedRenderTargetSize( params->pnWidth, params->pnHeight ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetRecommendedRenderTargetSize( params->pnWidth, params->pnHeight ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetEyeOutputViewport( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetEyeOutputViewport_params *params = (struct IVRSystem_IVRSystem_007_GetEyeOutputViewport_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetEyeOutputViewport( params->eEye, params->pnX, params->pnY, params->pnWidth, params->pnHeight ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetEyeOutputViewport( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetEyeOutputViewport_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetEyeOutputViewport_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetEyeOutputViewport( params->eEye, params->pnX, params->pnY, params->pnWidth, params->pnHeight ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetProjectionMatrix( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetProjectionMatrix_params *params = (struct IVRSystem_IVRSystem_007_GetProjectionMatrix_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetProjectionMatrix( params->eEye, params->fNearZ, params->fFarZ, params->eProjType ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetProjectionMatrix( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetProjectionMatrix_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetProjectionMatrix_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetProjectionMatrix( params->eEye, params->fNearZ, params->fFarZ, params->eProjType ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetProjectionRaw( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetProjectionRaw_params *params = (struct IVRSystem_IVRSystem_007_GetProjectionRaw_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetProjectionRaw( params->eEye, params->pfLeft, params->pfRight, params->pfTop, params->pfBottom ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetProjectionRaw( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetProjectionRaw_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetProjectionRaw_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetProjectionRaw( params->eEye, params->pfLeft, params->pfRight, params->pfTop, params->pfBottom ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_ComputeDistortion( void *args ) +{ + struct IVRSystem_IVRSystem_007_ComputeDistortion_params *params = (struct IVRSystem_IVRSystem_007_ComputeDistortion_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->ComputeDistortion( params->eEye, params->fU, params->fV ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_ComputeDistortion( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_ComputeDistortion_params *params = (struct wow64_IVRSystem_IVRSystem_007_ComputeDistortion_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->ComputeDistortion( params->eEye, params->fU, params->fV ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetEyeToHeadTransform( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params *params = (struct IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetEyeToHeadTransform( params->eEye ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetEyeToHeadTransform( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetEyeToHeadTransform( params->eEye ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetTimeSinceLastVsync( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params *params = (struct IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetTimeSinceLastVsync( params->pfSecondsSinceLastVsync, params->pulFrameCounter ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetTimeSinceLastVsync( params->pfSecondsSinceLastVsync, params->pulFrameCounter ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetD3D9AdapterIndex( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params *params = (struct IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetD3D9AdapterIndex( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetD3D9AdapterIndex( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetDXGIOutputInfo( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetDXGIOutputInfo_params *params = (struct IVRSystem_IVRSystem_007_GetDXGIOutputInfo_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetDXGIOutputInfo( params->pnAdapterIndex, params->pnAdapterOutputIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetDXGIOutputInfo( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetDXGIOutputInfo_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetDXGIOutputInfo_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetDXGIOutputInfo( params->pnAdapterIndex, params->pnAdapterOutputIndex ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_AttachToWindow( void *args ) +{ + struct IVRSystem_IVRSystem_007_AttachToWindow_params *params = (struct IVRSystem_IVRSystem_007_AttachToWindow_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->AttachToWindow( params->hWnd ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_AttachToWindow( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_AttachToWindow_params *params = (struct wow64_IVRSystem_IVRSystem_007_AttachToWindow_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->AttachToWindow( params->hWnd ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params *params = (struct IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetDeviceToAbsoluteTrackingPose( params->eOrigin, params->fPredictedSecondsToPhotonsFromNow, params->pTrackedDevicePoseArray, params->unTrackedDevicePoseArrayCount ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->GetDeviceToAbsoluteTrackingPose( params->eOrigin, params->fPredictedSecondsToPhotonsFromNow, params->pTrackedDevicePoseArray, params->unTrackedDevicePoseArrayCount ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_ResetSeatedZeroPose( void *args ) +{ + struct IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params *params = (struct IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->ResetSeatedZeroPose( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_ResetSeatedZeroPose( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params *params = (struct wow64_IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->ResetSeatedZeroPose( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params *params = (struct IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetSeatedZeroPoseToStandingAbsoluteTrackingPose( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetSeatedZeroPoseToStandingAbsoluteTrackingPose( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params *params = (struct IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetRawZeroPoseToStandingAbsoluteTrackingPose( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetRawZeroPoseToStandingAbsoluteTrackingPose( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params *params = (struct IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetSortedTrackedDeviceIndicesOfClass( params->eTrackedDeviceClass, params->punTrackedDeviceIndexArray, params->unTrackedDeviceIndexArrayCount, params->unRelativeToTrackedDeviceIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetSortedTrackedDeviceIndicesOfClass( params->eTrackedDeviceClass, params->punTrackedDeviceIndexArray, params->unTrackedDeviceIndexArrayCount, params->unRelativeToTrackedDeviceIndex ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params *params = (struct IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetTrackedDeviceActivityLevel( params->unDeviceId ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetTrackedDeviceActivityLevel( params->unDeviceId ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_ApplyTransform( void *args ) +{ + struct IVRSystem_IVRSystem_007_ApplyTransform_params *params = (struct IVRSystem_IVRSystem_007_ApplyTransform_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->ApplyTransform( params->pOutputPose, params->trackedDevicePose, params->transform ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_ApplyTransform( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_ApplyTransform_params *params = (struct wow64_IVRSystem_IVRSystem_007_ApplyTransform_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->ApplyTransform( params->pOutputPose, params->trackedDevicePose, params->transform ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetTrackedDeviceClass( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params *params = (struct IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetTrackedDeviceClass( params->unDeviceIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceClass( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetTrackedDeviceClass( params->unDeviceIndex ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_IsTrackedDeviceConnected( void *args ) +{ + struct IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params *params = (struct IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->IsTrackedDeviceConnected( params->unDeviceIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params *params = (struct wow64_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->IsTrackedDeviceConnected( params->unDeviceIndex ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params *params = (struct IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetBoolTrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetBoolTrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params *params = (struct IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetFloatTrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetFloatTrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params *params = (struct IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetInt32TrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetInt32TrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params *params = (struct IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetUint64TrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetUint64TrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params *params = (struct IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetMatrix34TrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetMatrix34TrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pError ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params *params = (struct IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetStringTrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pchValue, params->unBufferSize, params->pError ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetStringTrackedDeviceProperty( params->unDeviceIndex, params->prop, params->pchValue, params->unBufferSize, params->pError ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params *params = (struct IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetPropErrorNameFromEnum( params->error ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetPropErrorNameFromEnum( params->error ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_PollNextEvent( void *args ) +{ + struct IVRSystem_IVRSystem_007_PollNextEvent_params *params = (struct IVRSystem_IVRSystem_007_PollNextEvent_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VREvent_t_0911 u_pEvent; + if (params->pEvent) u_pEvent = *params->pEvent; + params->_ret = iface->PollNextEvent( params->pEvent ? &u_pEvent : nullptr ); + if (params->pEvent) *params->pEvent = u_pEvent; + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_PollNextEvent( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_PollNextEvent_params *params = (struct wow64_IVRSystem_IVRSystem_007_PollNextEvent_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VREvent_t_0911 u_pEvent; + if (params->pEvent) u_pEvent = *params->pEvent; + params->_ret = iface->PollNextEvent( params->pEvent ? &u_pEvent : nullptr ); + if (params->pEvent) *params->pEvent = u_pEvent; + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_PollNextEventWithPose( void *args ) +{ + struct IVRSystem_IVRSystem_007_PollNextEventWithPose_params *params = (struct IVRSystem_IVRSystem_007_PollNextEventWithPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VREvent_t_0911 u_pEvent; + if (params->pEvent) u_pEvent = *params->pEvent; + params->_ret = iface->PollNextEventWithPose( params->eOrigin, params->pEvent ? &u_pEvent : nullptr, params->pTrackedDevicePose ); + if (params->pEvent) *params->pEvent = u_pEvent; + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_PollNextEventWithPose( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_PollNextEventWithPose_params *params = (struct wow64_IVRSystem_IVRSystem_007_PollNextEventWithPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VREvent_t_0911 u_pEvent; + if (params->pEvent) u_pEvent = *params->pEvent; + params->_ret = iface->PollNextEventWithPose( params->eOrigin, params->pEvent ? &u_pEvent : nullptr, params->pTrackedDevicePose ); + if (params->pEvent) *params->pEvent = u_pEvent; + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params *params = (struct IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetEventTypeNameFromEnum( params->eType ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetEventTypeNameFromEnum( params->eType ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetHiddenAreaMesh( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params *params = (struct IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetHiddenAreaMesh( params->eEye ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetHiddenAreaMesh( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + *params->_ret = iface->GetHiddenAreaMesh( params->eEye ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetControllerState( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetControllerState_params *params = (struct IVRSystem_IVRSystem_007_GetControllerState_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VRControllerState001_t u_pControllerState; + if (params->pControllerState) u_pControllerState = *params->pControllerState; + params->_ret = iface->GetControllerState( params->unControllerDeviceIndex, params->pControllerState ? &u_pControllerState : nullptr ); + if (params->pControllerState) *params->pControllerState = u_pControllerState; + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetControllerState( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetControllerState_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetControllerState_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VRControllerState001_t u_pControllerState; + if (params->pControllerState) u_pControllerState = *params->pControllerState; + params->_ret = iface->GetControllerState( params->unControllerDeviceIndex, params->pControllerState ? &u_pControllerState : nullptr ); + if (params->pControllerState) *params->pControllerState = u_pControllerState; + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetControllerStateWithPose( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetControllerStateWithPose_params *params = (struct IVRSystem_IVRSystem_007_GetControllerStateWithPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VRControllerState001_t u_pControllerState; + if (params->pControllerState) u_pControllerState = *params->pControllerState; + params->_ret = iface->GetControllerStateWithPose( params->eOrigin, params->unControllerDeviceIndex, params->pControllerState ? &u_pControllerState : nullptr, params->pTrackedDevicePose ); + if (params->pControllerState) *params->pControllerState = u_pControllerState; + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetControllerStateWithPose( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetControllerStateWithPose_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetControllerStateWithPose_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + u_VRControllerState001_t u_pControllerState; + if (params->pControllerState) u_pControllerState = *params->pControllerState; + params->_ret = iface->GetControllerStateWithPose( params->eOrigin, params->unControllerDeviceIndex, params->pControllerState ? &u_pControllerState : nullptr, params->pTrackedDevicePose ); + if (params->pControllerState) *params->pControllerState = u_pControllerState; + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_TriggerHapticPulse( void *args ) +{ + struct IVRSystem_IVRSystem_007_TriggerHapticPulse_params *params = (struct IVRSystem_IVRSystem_007_TriggerHapticPulse_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->TriggerHapticPulse( params->unControllerDeviceIndex, params->unAxisId, params->usDurationMicroSec ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_TriggerHapticPulse( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_TriggerHapticPulse_params *params = (struct wow64_IVRSystem_IVRSystem_007_TriggerHapticPulse_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->TriggerHapticPulse( params->unControllerDeviceIndex, params->unAxisId, params->usDurationMicroSec ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params *params = (struct IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetButtonIdNameFromEnum( params->eButtonId ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetButtonIdNameFromEnum( params->eButtonId ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum( void *args ) +{ + struct IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params *params = (struct IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetControllerAxisTypeNameFromEnum( params->eAxisType ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params *params = (struct wow64_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->GetControllerAxisTypeNameFromEnum( params->eAxisType ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_CaptureInputFocus( void *args ) +{ + struct IVRSystem_IVRSystem_007_CaptureInputFocus_params *params = (struct IVRSystem_IVRSystem_007_CaptureInputFocus_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->CaptureInputFocus( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_CaptureInputFocus( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_CaptureInputFocus_params *params = (struct wow64_IVRSystem_IVRSystem_007_CaptureInputFocus_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->CaptureInputFocus( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_ReleaseInputFocus( void *args ) +{ + struct IVRSystem_IVRSystem_007_ReleaseInputFocus_params *params = (struct IVRSystem_IVRSystem_007_ReleaseInputFocus_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->ReleaseInputFocus( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_ReleaseInputFocus( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_ReleaseInputFocus_params *params = (struct wow64_IVRSystem_IVRSystem_007_ReleaseInputFocus_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + iface->ReleaseInputFocus( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess( void *args ) +{ + struct IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params *params = (struct IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->IsInputFocusCapturedByAnotherProcess( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params *params = (struct wow64_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->IsInputFocusCapturedByAnotherProcess( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_DriverDebugRequest( void *args ) +{ + struct IVRSystem_IVRSystem_007_DriverDebugRequest_params *params = (struct IVRSystem_IVRSystem_007_DriverDebugRequest_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->DriverDebugRequest( params->unDeviceIndex, params->pchRequest, params->pchResponseBuffer, params->unResponseBufferSize ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_DriverDebugRequest( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_DriverDebugRequest_params *params = (struct wow64_IVRSystem_IVRSystem_007_DriverDebugRequest_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->DriverDebugRequest( params->unDeviceIndex, params->pchRequest, params->pchResponseBuffer, params->unResponseBufferSize ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_PerformFirmwareUpdate( void *args ) +{ + struct IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params *params = (struct IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->PerformFirmwareUpdate( params->unDeviceIndex ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_PerformFirmwareUpdate( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params *params = (struct wow64_IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->PerformFirmwareUpdate( params->unDeviceIndex ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_IsDisplayOnDesktop( void *args ) +{ + struct IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params *params = (struct IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->IsDisplayOnDesktop( ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_IsDisplayOnDesktop( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params *params = (struct wow64_IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->IsDisplayOnDesktop( ); + return 0; +} +#endif + +NTSTATUS IVRSystem_IVRSystem_007_SetDisplayVisibility( void *args ) +{ + struct IVRSystem_IVRSystem_007_SetDisplayVisibility_params *params = (struct IVRSystem_IVRSystem_007_SetDisplayVisibility_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->SetDisplayVisibility( params->bIsVisibleOnDesktop ); + return 0; +} + +#if defined(__x86_64__) || defined(__aarch64__) +NTSTATUS wow64_IVRSystem_IVRSystem_007_SetDisplayVisibility( void *args ) +{ + struct wow64_IVRSystem_IVRSystem_007_SetDisplayVisibility_params *params = (struct wow64_IVRSystem_IVRSystem_007_SetDisplayVisibility_params *)args; + struct u_IVRSystem_IVRSystem_007 *iface = (struct u_IVRSystem_IVRSystem_007 *)params->u_iface; + params->_ret = iface->SetDisplayVisibility( params->bIsVisibleOnDesktop ); + return 0; +} +#endif + diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py index 81f8f63c986..d01e314f2b0 100755 --- a/vrclient_x64/gen_wrapper.py +++ b/vrclient_x64/gen_wrapper.py @@ -61,7 +61,9 @@ "v0.9.14", "v0.9.13", "v0.9.12", -# "v0.9.11", problematic GetComponentState, may cause crash since we don't implement it + "v0.9.11", + #Interfaces below are not really supported, need handling of texture conversions similar to v0.9.11. But nothing + #is known to use those so far. "v0.9.10", "v0.9.9", "v0.9.8", @@ -244,11 +246,13 @@ "IVRClientCore_Cleanup": lambda ver, abi: abi == 'w', "IVRSystem_GetDXGIOutputInfo": lambda ver, abi: abi == 'w', "IVRSystem_GetOutputDevice": lambda ver, abi: ver > 16, - "IVRCompositor_Submit": lambda ver, abi: ver > 8, + "IVRCompositor_Submit": lambda ver, abi: ver > 7, "IVRCompositor_SubmitWithArrayIndex": lambda ver, abi: ver > 8, - "IVRCompositor_SetSkyboxOverride": lambda ver, abi: ver > 8, + "IVRCompositor_SetSkyboxOverride": lambda ver, abi: ver > 7, + "IVRCompositor_SetExplicitTimingMode": lambda ver, abi: abi == 'w', + "IVRCompositor_SubmitExplicitTimingData": lambda ver, abi: abi == 'w', "IVRCompositor_PostPresentHandoff": lambda ver, abi: abi == 'w', - "IVRCompositor_WaitGetPoses": lambda ver, abi: abi == 'w' and ver > 15, + "IVRCompositor_WaitGetPoses": lambda ver, abi: abi == 'w', "IVRCompositor_GetVulkanDeviceExtensionsRequired": lambda ver, abi: abi == 'u', "IVRCompositor_GetSubmitTexture": lambda ver, abi: abi == 'u', "IVRRenderModels_LoadTextureD3D11_Async": lambda ver, abi: abi == 'w', @@ -844,10 +848,13 @@ def handle_method_cpp(method, classname, out, wow64): out(u' params->_ret = ') def param_call(name, param): - pfx = '&' if param.type.kind == TypeKind.POINTER else '' if name in size_fixup: return f"u_{name}" if name in path_conv_wtou: return f"u_{name}" - if name in need_convert: return f"params->{name} ? {pfx}u_{name} : nullptr" + if name in need_convert: + if param.type.kind == TypeKind.POINTER: + return f"params->{name} ? &u_{name} : nullptr" + else: + return f"u_{name}" if name == OUTSTR_PARAMS.get(method.name, None): return f'params->{name} ? ({declspec(param, "", "u_")})&u_str : nullptr' return f'params->{name}' diff --git a/vrclient_x64/unix_private_generated.h b/vrclient_x64/unix_private_generated.h index e82b24ebe18..7c719df6482 100644 --- a/vrclient_x64/unix_private_generated.h +++ b/vrclient_x64/unix_private_generated.h @@ -214,6 +214,11 @@ struct u_IVRRenderModels_IVRRenderModels_001 virtual void FreeRenderModel( u_RenderModel_t_090 * ) = 0; virtual uint32_t GetRenderModelName( uint32_t, char *, uint32_t ) = 0; virtual uint32_t GetRenderModelCount( ) = 0; + virtual uint32_t GetComponentCount( const char * ) = 0; + virtual uint32_t GetComponentName( const char *, uint32_t, char *, uint32_t ) = 0; + virtual uint64_t GetComponentButtonMask( const char *, const char * ) = 0; + virtual uint32_t GetComponentRenderModelName( const char *, const char *, char *, uint32_t ) = 0; + virtual int8_t GetComponentState( const char *, const char *, u_VRControllerState001_t, ComponentState_t * ) = 0; #endif /* __cplusplus */ }; @@ -552,7 +557,7 @@ struct u_IVRCompositor_IVRCompositor_008 virtual uint32_t WaitGetPoses( TrackedDevicePose_t *, uint32_t, TrackedDevicePose_t *, uint32_t ) = 0; virtual uint32_t Submit( uint32_t, uint32_t, void *, const VRTextureBounds_t *, uint32_t ) = 0; virtual void ClearLastSubmittedFrame( ) = 0; - virtual int8_t GetFrameTiming( u_Compositor_FrameTiming_093 *, uint32_t ) = 0; + virtual int8_t GetFrameTiming( u_Compositor_FrameTiming_0911 *, uint32_t ) = 0; virtual void FadeToColor( float, float, float, float, float, int8_t ) = 0; virtual void FadeGrid( float, int8_t ) = 0; virtual void SetSkyboxOverride( uint32_t, void *, void *, void *, void *, void *, void * ) = 0; @@ -570,6 +575,8 @@ struct u_IVRCompositor_IVRCompositor_008 virtual void CompositorDumpImages( ) = 0; virtual float GetFrameTimeRemaining( ) = 0; virtual uint32_t GetLastFrameRenderer( ) = 0; + virtual uint32_t GetLastPoses( TrackedDevicePose_t *, uint32_t, TrackedDevicePose_t *, uint32_t ) = 0; + virtual void PostPresentHandoff( ) = 0; #endif /* __cplusplus */ }; @@ -631,6 +638,156 @@ struct u_IVROverlay_IVROverlay_005 #endif /* __cplusplus */ }; +struct u_IVRSystem_IVRSystem_007 +{ +#ifdef __cplusplus + virtual void GetWindowBounds( int32_t *, int32_t *, uint32_t *, uint32_t * ) = 0; + virtual void GetRecommendedRenderTargetSize( uint32_t *, uint32_t * ) = 0; + virtual void GetEyeOutputViewport( uint32_t, uint32_t *, uint32_t *, uint32_t *, uint32_t * ) = 0; + virtual HmdMatrix44_t GetProjectionMatrix( uint32_t, float, float, uint32_t ) = 0; + virtual void GetProjectionRaw( uint32_t, float *, float *, float *, float * ) = 0; + virtual DistortionCoordinates_t ComputeDistortion( uint32_t, float, float ) = 0; + virtual HmdMatrix34_t GetEyeToHeadTransform( uint32_t ) = 0; + virtual int8_t GetTimeSinceLastVsync( float *, uint64_t * ) = 0; + virtual int32_t GetD3D9AdapterIndex( ) = 0; + virtual void GetDXGIOutputInfo( int32_t *, int32_t * ) = 0; + virtual int8_t AttachToWindow( void * ) = 0; + virtual void GetDeviceToAbsoluteTrackingPose( uint32_t, float, TrackedDevicePose_t *, uint32_t ) = 0; + virtual void ResetSeatedZeroPose( ) = 0; + virtual HmdMatrix34_t GetSeatedZeroPoseToStandingAbsoluteTrackingPose( ) = 0; + virtual HmdMatrix34_t GetRawZeroPoseToStandingAbsoluteTrackingPose( ) = 0; + virtual uint32_t GetSortedTrackedDeviceIndicesOfClass( uint32_t, uint32_t *, uint32_t, uint32_t ) = 0; + virtual uint32_t GetTrackedDeviceActivityLevel( uint32_t ) = 0; + virtual void ApplyTransform( TrackedDevicePose_t *, const TrackedDevicePose_t *, const HmdMatrix34_t * ) = 0; + virtual uint32_t GetTrackedDeviceClass( uint32_t ) = 0; + virtual int8_t IsTrackedDeviceConnected( uint32_t ) = 0; + virtual int8_t GetBoolTrackedDeviceProperty( uint32_t, uint32_t, uint32_t * ) = 0; + virtual float GetFloatTrackedDeviceProperty( uint32_t, uint32_t, uint32_t * ) = 0; + virtual int32_t GetInt32TrackedDeviceProperty( uint32_t, uint32_t, uint32_t * ) = 0; + virtual uint64_t GetUint64TrackedDeviceProperty( uint32_t, uint32_t, uint32_t * ) = 0; + virtual HmdMatrix34_t GetMatrix34TrackedDeviceProperty( uint32_t, uint32_t, uint32_t * ) = 0; + virtual uint32_t GetStringTrackedDeviceProperty( uint32_t, uint32_t, char *, uint32_t, uint32_t * ) = 0; + virtual const char * GetPropErrorNameFromEnum( uint32_t ) = 0; + virtual int8_t PollNextEvent( u_VREvent_t_0911 * ) = 0; + virtual int8_t PollNextEventWithPose( uint32_t, u_VREvent_t_0911 *, TrackedDevicePose_t * ) = 0; + virtual const char * GetEventTypeNameFromEnum( uint32_t ) = 0; + virtual u_HiddenAreaMesh_t GetHiddenAreaMesh( uint32_t ) = 0; + virtual int8_t GetControllerState( uint32_t, u_VRControllerState001_t * ) = 0; + virtual int8_t GetControllerStateWithPose( uint32_t, uint32_t, u_VRControllerState001_t *, TrackedDevicePose_t * ) = 0; + virtual void TriggerHapticPulse( uint32_t, uint32_t, uint16_t ) = 0; + virtual const char * GetButtonIdNameFromEnum( uint32_t ) = 0; + virtual const char * GetControllerAxisTypeNameFromEnum( uint32_t ) = 0; + virtual int8_t CaptureInputFocus( ) = 0; + virtual void ReleaseInputFocus( ) = 0; + virtual int8_t IsInputFocusCapturedByAnotherProcess( ) = 0; + virtual uint32_t DriverDebugRequest( uint32_t, const char *, char *, uint32_t ) = 0; + virtual uint32_t PerformFirmwareUpdate( uint32_t ) = 0; + virtual int8_t IsDisplayOnDesktop( ) = 0; + virtual int8_t SetDisplayVisibility( int8_t ) = 0; +#endif /* __cplusplus */ +}; + +struct u_IVRChaperone_IVRChaperone_003 +{ +#ifdef __cplusplus + virtual uint32_t GetCalibrationState( ) = 0; + virtual int8_t GetPlayAreaSize( float *, float * ) = 0; + virtual int8_t GetPlayAreaRect( HmdQuad_t * ) = 0; + virtual void ReloadInfo( ) = 0; + virtual void SetSceneColor( HmdColor_t ) = 0; + virtual void GetBoundsColor( HmdColor_t *, int32_t, float, HmdColor_t * ) = 0; + virtual int8_t AreBoundsVisible( ) = 0; + virtual void ForceBoundsVisible( int8_t ) = 0; +#endif /* __cplusplus */ +}; + +struct u_IVROverlay_IVROverlay_006 +{ +#ifdef __cplusplus + virtual uint32_t FindOverlay( const char *, uint64_t * ) = 0; + virtual uint32_t CreateOverlay( const char *, const char *, uint64_t * ) = 0; + virtual uint32_t DestroyOverlay( uint64_t ) = 0; + virtual uint32_t SetHighQualityOverlay( uint64_t ) = 0; + virtual uint64_t GetHighQualityOverlay( ) = 0; + virtual uint32_t GetOverlayKey( uint64_t, char *, uint32_t, uint32_t * ) = 0; + virtual uint32_t GetOverlayName( uint64_t, char *, uint32_t, uint32_t * ) = 0; + virtual uint32_t GetOverlayImageData( uint64_t, void *, uint32_t, uint32_t *, uint32_t * ) = 0; + virtual const char * GetOverlayErrorNameFromEnum( uint32_t ) = 0; + virtual uint32_t SetOverlayFlag( uint64_t, uint32_t, int8_t ) = 0; + virtual uint32_t GetOverlayFlag( uint64_t, uint32_t, int8_t * ) = 0; + virtual uint32_t SetOverlayColor( uint64_t, float, float, float ) = 0; + virtual uint32_t GetOverlayColor( uint64_t, float *, float *, float * ) = 0; + virtual uint32_t SetOverlayAlpha( uint64_t, float ) = 0; + virtual uint32_t GetOverlayAlpha( uint64_t, float * ) = 0; + virtual uint32_t SetOverlayGamma( uint64_t, float ) = 0; + virtual uint32_t GetOverlayGamma( uint64_t, float * ) = 0; + virtual uint32_t SetOverlayWidthInMeters( uint64_t, float ) = 0; + virtual uint32_t GetOverlayWidthInMeters( uint64_t, float * ) = 0; + virtual uint32_t SetOverlayAutoCurveDistanceRangeInMeters( uint64_t, float, float ) = 0; + virtual uint32_t GetOverlayAutoCurveDistanceRangeInMeters( uint64_t, float *, float * ) = 0; + virtual uint32_t SetOverlayTextureBounds( uint64_t, const VRTextureBounds_t * ) = 0; + virtual uint32_t GetOverlayTextureBounds( uint64_t, VRTextureBounds_t * ) = 0; + virtual uint32_t GetOverlayTransformType( uint64_t, uint32_t * ) = 0; + virtual uint32_t SetOverlayTransformAbsolute( uint64_t, uint32_t, const HmdMatrix34_t * ) = 0; + virtual uint32_t GetOverlayTransformAbsolute( uint64_t, uint32_t *, HmdMatrix34_t * ) = 0; + virtual uint32_t SetOverlayTransformTrackedDeviceRelative( uint64_t, uint32_t, const HmdMatrix34_t * ) = 0; + virtual uint32_t GetOverlayTransformTrackedDeviceRelative( uint64_t, uint32_t *, HmdMatrix34_t * ) = 0; + virtual uint32_t ShowOverlay( uint64_t ) = 0; + virtual uint32_t HideOverlay( uint64_t ) = 0; + virtual int8_t IsOverlayVisible( uint64_t ) = 0; + virtual int8_t PollNextOverlayEvent( uint64_t, u_VREvent_t_0911 * ) = 0; + virtual uint32_t GetOverlayInputMethod( uint64_t, uint32_t * ) = 0; + virtual uint32_t SetOverlayInputMethod( uint64_t, uint32_t ) = 0; + virtual uint32_t GetOverlayMouseScale( uint64_t, HmdVector2_t * ) = 0; + virtual uint32_t SetOverlayMouseScale( uint64_t, const HmdVector2_t * ) = 0; + virtual int8_t ComputeOverlayIntersection( uint64_t, const VROverlayIntersectionParams_t *, VROverlayIntersectionResults_t * ) = 0; + virtual int8_t HandleControllerOverlayInteractionAsMouse( uint64_t, uint32_t ) = 0; + virtual int8_t IsHoverTargetOverlay( uint64_t ) = 0; + virtual uint64_t GetGamepadFocusOverlay( ) = 0; + virtual uint32_t SetGamepadFocusOverlay( uint64_t ) = 0; + virtual uint32_t SetOverlayNeighbor( uint32_t, uint64_t, uint64_t ) = 0; + virtual uint32_t MoveGamepadFocusToNeighbor( uint32_t, uint64_t ) = 0; + virtual uint32_t SetOverlayTexture( uint64_t, uint32_t, void * ) = 0; + virtual uint32_t ClearOverlayTexture( uint64_t ) = 0; + virtual uint32_t SetOverlayRaw( uint64_t, void *, uint32_t, uint32_t, uint32_t ) = 0; + virtual uint32_t SetOverlayFromFile( uint64_t, const char * ) = 0; + virtual uint32_t CreateDashboardOverlay( const char *, const char *, uint64_t *, uint64_t * ) = 0; + virtual int8_t IsDashboardVisible( ) = 0; + virtual int8_t IsActiveDashboardOverlay( uint64_t ) = 0; + virtual uint32_t SetDashboardOverlaySceneProcess( uint64_t, uint32_t ) = 0; + virtual uint32_t GetDashboardOverlaySceneProcess( uint64_t, uint32_t * ) = 0; + virtual void ShowDashboard( const char * ) = 0; + virtual uint32_t ShowKeyboard( uint32_t, uint32_t, const char *, uint32_t, const char *, int8_t, uint64_t ) = 0; + virtual uint32_t ShowKeyboardForOverlay( uint64_t, uint32_t, uint32_t, const char *, uint32_t, const char *, int8_t, uint64_t ) = 0; + virtual uint32_t GetKeyboardText( char *, uint32_t ) = 0; + virtual void HideKeyboard( ) = 0; +#endif /* __cplusplus */ +}; + +struct u_IVRTrackedCamera_IVRTrackedCamera_001 +{ +#ifdef __cplusplus + virtual int8_t HasCamera( uint32_t ) = 0; + virtual int8_t GetCameraFirmwareDescription( uint32_t, char *, uint32_t ) = 0; + virtual int8_t GetCameraFrameDimensions( uint32_t, uint32_t, uint32_t *, uint32_t * ) = 0; + virtual int8_t SetCameraVideoStreamFormat( uint32_t, uint32_t ) = 0; + virtual uint32_t GetCameraVideoStreamFormat( uint32_t ) = 0; + virtual int8_t EnableCameraForStreaming( uint32_t, int8_t ) = 0; + virtual int8_t StartVideoStream( uint32_t ) = 0; + virtual int8_t StopVideoStream( uint32_t ) = 0; + virtual int8_t IsVideoStreamActive( uint32_t ) = 0; + virtual float GetVideoStreamElapsedTime( uint32_t ) = 0; + virtual const u_CameraVideoStreamFrame_t_0914 * GetVideoStreamFrame( uint32_t ) = 0; + virtual int8_t ReleaseVideoStreamFrame( uint32_t, const u_CameraVideoStreamFrame_t_0914 * ) = 0; + virtual int8_t SetAutoExposure( uint32_t, int8_t ) = 0; + virtual int8_t PauseVideoStream( uint32_t ) = 0; + virtual int8_t ResumeVideoStream( uint32_t ) = 0; + virtual int8_t IsVideoStreamPaused( uint32_t ) = 0; + virtual int8_t GetCameraDistortion( uint32_t, float, float, float *, float * ) = 0; + virtual int8_t GetCameraProjection( uint32_t, float, float, float, float, HmdMatrix44_t * ) = 0; +#endif /* __cplusplus */ +}; + struct u_IVRSystem_IVRSystem_009 { #ifdef __cplusplus @@ -705,20 +862,6 @@ struct u_IVRApplications_IVRApplications_002 #endif /* __cplusplus */ }; -struct u_IVRChaperone_IVRChaperone_003 -{ -#ifdef __cplusplus - virtual uint32_t GetCalibrationState( ) = 0; - virtual int8_t GetPlayAreaSize( float *, float * ) = 0; - virtual int8_t GetPlayAreaRect( HmdQuad_t * ) = 0; - virtual void ReloadInfo( ) = 0; - virtual void SetSceneColor( HmdColor_t ) = 0; - virtual void GetBoundsColor( HmdColor_t *, int32_t, float, HmdColor_t * ) = 0; - virtual int8_t AreBoundsVisible( ) = 0; - virtual void ForceBoundsVisible( int8_t ) = 0; -#endif /* __cplusplus */ -}; - struct u_IVRChaperoneSetup_IVRChaperoneSetup_004 { #ifdef __cplusplus @@ -860,30 +1003,6 @@ struct u_IVRRenderModels_IVRRenderModels_002 #endif /* __cplusplus */ }; -struct u_IVRTrackedCamera_IVRTrackedCamera_001 -{ -#ifdef __cplusplus - virtual int8_t HasCamera( uint32_t ) = 0; - virtual int8_t GetCameraFirmwareDescription( uint32_t, char *, uint32_t ) = 0; - virtual int8_t GetCameraFrameDimensions( uint32_t, uint32_t, uint32_t *, uint32_t * ) = 0; - virtual int8_t SetCameraVideoStreamFormat( uint32_t, uint32_t ) = 0; - virtual uint32_t GetCameraVideoStreamFormat( uint32_t ) = 0; - virtual int8_t EnableCameraForStreaming( uint32_t, int8_t ) = 0; - virtual int8_t StartVideoStream( uint32_t ) = 0; - virtual int8_t StopVideoStream( uint32_t ) = 0; - virtual int8_t IsVideoStreamActive( uint32_t ) = 0; - virtual float GetVideoStreamElapsedTime( uint32_t ) = 0; - virtual const u_CameraVideoStreamFrame_t_0914 * GetVideoStreamFrame( uint32_t ) = 0; - virtual int8_t ReleaseVideoStreamFrame( uint32_t, const u_CameraVideoStreamFrame_t_0914 * ) = 0; - virtual int8_t SetAutoExposure( uint32_t, int8_t ) = 0; - virtual int8_t PauseVideoStream( uint32_t ) = 0; - virtual int8_t ResumeVideoStream( uint32_t ) = 0; - virtual int8_t IsVideoStreamPaused( uint32_t ) = 0; - virtual int8_t GetCameraDistortion( uint32_t, float, float, float *, float * ) = 0; - virtual int8_t GetCameraProjection( uint32_t, float, float, float, float, HmdMatrix44_t * ) = 0; -#endif /* __cplusplus */ -}; - struct u_IVRExtendedDisplay_IVRExtendedDisplay_001 { #ifdef __cplusplus @@ -5264,6 +5383,10 @@ NTSTATUS IVRCompositor_IVRCompositor_008_GetFrameTimeRemaining( void * ); NTSTATUS wow64_IVRCompositor_IVRCompositor_008_GetFrameTimeRemaining( void * ); NTSTATUS IVRCompositor_IVRCompositor_008_GetLastFrameRenderer( void * ); NTSTATUS wow64_IVRCompositor_IVRCompositor_008_GetLastFrameRenderer( void * ); +NTSTATUS IVRCompositor_IVRCompositor_008_GetLastPoses( void * ); +NTSTATUS wow64_IVRCompositor_IVRCompositor_008_GetLastPoses( void * ); +NTSTATUS IVRCompositor_IVRCompositor_008_PostPresentHandoff( void * ); +NTSTATUS wow64_IVRCompositor_IVRCompositor_008_PostPresentHandoff( void * ); NTSTATUS IVRCompositor_IVRCompositor_009_SetTrackingSpace( void * ); NTSTATUS wow64_IVRCompositor_IVRCompositor_009_SetTrackingSpace( void * ); NTSTATUS IVRCompositor_IVRCompositor_009_GetTrackingSpace( void * ); @@ -7598,6 +7721,120 @@ NTSTATUS IVROverlay_IVROverlay_005_GetKeyboardText( void * ); NTSTATUS wow64_IVROverlay_IVROverlay_005_GetKeyboardText( void * ); NTSTATUS IVROverlay_IVROverlay_005_HideKeyboard( void * ); NTSTATUS wow64_IVROverlay_IVROverlay_005_HideKeyboard( void * ); +NTSTATUS IVROverlay_IVROverlay_006_FindOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_FindOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_CreateOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_CreateOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_DestroyOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_DestroyOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetHighQualityOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetHighQualityOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetHighQualityOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetHighQualityOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayKey( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayKey( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayName( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayName( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayImageData( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayImageData( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayFlag( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayFlag( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayFlag( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayFlag( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayColor( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayColor( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayColor( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayColor( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayAlpha( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayAlpha( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayAlpha( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayAlpha( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayGamma( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayGamma( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayGamma( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayGamma( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayWidthInMeters( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayWidthInMeters( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTextureBounds( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTextureBounds( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTextureBounds( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTextureBounds( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTransformType( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTransformType( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative( void * ); +NTSTATUS IVROverlay_IVROverlay_006_ShowOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_HideOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_HideOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_IsOverlayVisible( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsOverlayVisible( void * ); +NTSTATUS IVROverlay_IVROverlay_006_PollNextOverlayEvent( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_PollNextOverlayEvent( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayInputMethod( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayInputMethod( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayInputMethod( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayInputMethod( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetOverlayMouseScale( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetOverlayMouseScale( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayMouseScale( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayMouseScale( void * ); +NTSTATUS IVROverlay_IVROverlay_006_ComputeOverlayIntersection( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_ComputeOverlayIntersection( void * ); +NTSTATUS IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse( void * ); +NTSTATUS IVROverlay_IVROverlay_006_IsHoverTargetOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsHoverTargetOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetGamepadFocusOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetGamepadFocusOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayNeighbor( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayNeighbor( void * ); +NTSTATUS IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayTexture( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayTexture( void * ); +NTSTATUS IVROverlay_IVROverlay_006_ClearOverlayTexture( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_ClearOverlayTexture( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayRaw( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayRaw( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetOverlayFromFile( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetOverlayFromFile( void * ); +NTSTATUS IVROverlay_IVROverlay_006_CreateDashboardOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_CreateDashboardOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_IsDashboardVisible( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsDashboardVisible( void * ); +NTSTATUS IVROverlay_IVROverlay_006_IsActiveDashboardOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess( void * ); +NTSTATUS IVROverlay_IVROverlay_006_ShowDashboard( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowDashboard( void * ); +NTSTATUS IVROverlay_IVROverlay_006_ShowKeyboard( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowKeyboard( void * ); +NTSTATUS IVROverlay_IVROverlay_006_ShowKeyboardForOverlay( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay( void * ); +NTSTATUS IVROverlay_IVROverlay_006_GetKeyboardText( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_GetKeyboardText( void * ); +NTSTATUS IVROverlay_IVROverlay_006_HideKeyboard( void * ); +NTSTATUS wow64_IVROverlay_IVROverlay_006_HideKeyboard( void * ); NTSTATUS IVROverlay_IVROverlay_007_FindOverlay( void * ); NTSTATUS wow64_IVROverlay_IVROverlay_007_FindOverlay( void * ); NTSTATUS IVROverlay_IVROverlay_007_CreateOverlay( void * ); @@ -10466,6 +10703,16 @@ NTSTATUS IVRRenderModels_IVRRenderModels_001_GetRenderModelName( void * ); NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelName( void * ); NTSTATUS IVRRenderModels_IVRRenderModels_001_GetRenderModelCount( void * ); NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelCount( void * ); +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentCount( void * ); +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentCount( void * ); +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentName( void * ); +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentName( void * ); +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask( void * ); +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask( void * ); +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName( void * ); +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName( void * ); +NTSTATUS IVRRenderModels_IVRRenderModels_001_GetComponentState( void * ); +NTSTATUS wow64_IVRRenderModels_IVRRenderModels_001_GetComponentState( void * ); NTSTATUS IVRRenderModels_IVRRenderModels_002_LoadRenderModel( void * ); NTSTATUS wow64_IVRRenderModels_IVRRenderModels_002_LoadRenderModel( void * ); NTSTATUS IVRRenderModels_IVRRenderModels_002_FreeRenderModel( void * ); @@ -10986,6 +11233,92 @@ NTSTATUS IVRSystem_IVRSystem_006_IsDisplayOnDesktop( void * ); NTSTATUS wow64_IVRSystem_IVRSystem_006_IsDisplayOnDesktop( void * ); NTSTATUS IVRSystem_IVRSystem_006_SetDisplayVisibility( void * ); NTSTATUS wow64_IVRSystem_IVRSystem_006_SetDisplayVisibility( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetWindowBounds( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetWindowBounds( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetEyeOutputViewport( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetEyeOutputViewport( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetProjectionMatrix( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetProjectionMatrix( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetProjectionRaw( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetProjectionRaw( void * ); +NTSTATUS IVRSystem_IVRSystem_007_ComputeDistortion( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_ComputeDistortion( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetEyeToHeadTransform( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetEyeToHeadTransform( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetTimeSinceLastVsync( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetD3D9AdapterIndex( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetDXGIOutputInfo( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetDXGIOutputInfo( void * ); +NTSTATUS IVRSystem_IVRSystem_007_AttachToWindow( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_AttachToWindow( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose( void * ); +NTSTATUS IVRSystem_IVRSystem_007_ResetSeatedZeroPose( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_ResetSeatedZeroPose( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel( void * ); +NTSTATUS IVRSystem_IVRSystem_007_ApplyTransform( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_ApplyTransform( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetTrackedDeviceClass( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceClass( void * ); +NTSTATUS IVRSystem_IVRSystem_007_IsTrackedDeviceConnected( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum( void * ); +NTSTATUS IVRSystem_IVRSystem_007_PollNextEvent( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_PollNextEvent( void * ); +NTSTATUS IVRSystem_IVRSystem_007_PollNextEventWithPose( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_PollNextEventWithPose( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetHiddenAreaMesh( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetHiddenAreaMesh( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetControllerState( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetControllerState( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetControllerStateWithPose( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetControllerStateWithPose( void * ); +NTSTATUS IVRSystem_IVRSystem_007_TriggerHapticPulse( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_TriggerHapticPulse( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum( void * ); +NTSTATUS IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum( void * ); +NTSTATUS IVRSystem_IVRSystem_007_CaptureInputFocus( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_CaptureInputFocus( void * ); +NTSTATUS IVRSystem_IVRSystem_007_ReleaseInputFocus( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_ReleaseInputFocus( void * ); +NTSTATUS IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess( void * ); +NTSTATUS IVRSystem_IVRSystem_007_DriverDebugRequest( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_DriverDebugRequest( void * ); +NTSTATUS IVRSystem_IVRSystem_007_PerformFirmwareUpdate( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_PerformFirmwareUpdate( void * ); +NTSTATUS IVRSystem_IVRSystem_007_IsDisplayOnDesktop( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_IsDisplayOnDesktop( void * ); +NTSTATUS IVRSystem_IVRSystem_007_SetDisplayVisibility( void * ); +NTSTATUS wow64_IVRSystem_IVRSystem_007_SetDisplayVisibility( void * ); NTSTATUS IVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize( void * ); NTSTATUS wow64_IVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize( void * ); NTSTATUS IVRSystem_IVRSystem_009_GetProjectionMatrix( void * ); diff --git a/vrclient_x64/unix_vrcompositor_manual.cpp b/vrclient_x64/unix_vrcompositor_manual.cpp index 7c010488ff2..7b942620c04 100644 --- a/vrclient_x64/unix_vrcompositor_manual.cpp +++ b/vrclient_x64/unix_vrcompositor_manual.cpp @@ -203,6 +203,30 @@ static NTSTATUS IVRCompositor_GetVulkanDeviceExtensionsRequired( Iface *iface, P return 0; } +template< typename Params > +static NTSTATUS IVRCompositor_SetSkyboxOverride( struct u_IVRCompositor_IVRCompositor_008 *iface, Params *params, bool wow64 ) +{ + u_VRVulkanTextureArrayData_t d_front, d_back, d_left, d_right, d_top, d_bottom; + u_Texture_t front, back, left, right, top, bottom; + w_Texture_t w_front = { .handle = params->pFront, .eType = params->eTextureType }; + w_Texture_t w_back = { .handle = params->pBack, .eType = params->eTextureType }; + w_Texture_t w_left = { .handle = params->pLeft, .eType = params->eTextureType }; + w_Texture_t w_right = { .handle = params->pRight, .eType = params->eTextureType }; + w_Texture_t w_top = { .handle = params->pTop, .eType = params->eTextureType }; + w_Texture_t w_bottom = { .handle = params->pBottom, .eType = params->eTextureType }; + + unwrap_texture( &front, &w_front, 0, &d_front ); + unwrap_texture( &back, &w_back, 0, &d_back ); + unwrap_texture( &left, &w_left, 0, &d_left ); + unwrap_texture( &right, &w_right, 0, &d_right ); + unwrap_texture( &top, &w_top, 0, &d_top ); + unwrap_texture( &bottom, &w_bottom, 0, &d_bottom ); + + iface->SetSkyboxOverride( params->eTextureType, front.handle, back.handle, left.handle, right.handle, + top.handle, bottom.handle ); + return 0; +} + template< typename Iface, typename Params > static NTSTATUS IVRCompositor_SetSkyboxOverride( Iface *iface, Params *params, bool wow64 ) { @@ -218,6 +242,23 @@ static NTSTATUS IVRCompositor_SetSkyboxOverride( Iface *iface, Params *params, b return 0; } +template< typename Params > +static NTSTATUS IVRCompositor_Submit( struct u_IVRCompositor_IVRCompositor_008 *iface, Params *params, bool wow64 ) +{ + u_VRTextureWithPoseAndDepth_t u_texture; + u_VRVulkanTextureData_t u_depth_vkdata; + u_VRVulkanTextureArrayData_t u_vkdata; + w_Texture_t texture = + { + .handle = params->pTexture, + .eType = params->eTextureType, + }; + u_Texture_t *submit = unwrap_submit_texture_data( &texture, params->nSubmitFlags, + &u_texture, &u_vkdata, &u_depth_vkdata ); + params->_ret = (uint32_t)iface->Submit( params->eEye, submit->eType, submit->handle, params->pBounds, params->nSubmitFlags ); + return 0; +} + template< typename Iface, typename Params > static NTSTATUS IVRCompositor_Submit( Iface *iface, Params *params, bool wow64 ) { @@ -250,6 +291,8 @@ static NTSTATUS IVRCompositor_GetSubmitTexture( Iface *iface, Params *params, bo return 0; } +VRCLIENT_UNIX_IMPL( IVRCompositor, 008, SetSkyboxOverride ); +VRCLIENT_UNIX_IMPL( IVRCompositor, 008, Submit ); VRCLIENT_UNIX_IMPL( IVRCompositor, 009, SetSkyboxOverride ); VRCLIENT_UNIX_IMPL( IVRCompositor, 009, Submit ); VRCLIENT_UNIX_IMPL( IVRCompositor, 010, SetSkyboxOverride ); diff --git a/vrclient_x64/unix_vroverlay_manual.cpp b/vrclient_x64/unix_vroverlay_manual.cpp index 897b679faaf..8896ef3f7d1 100644 --- a/vrclient_x64/unix_vroverlay_manual.cpp +++ b/vrclient_x64/unix_vroverlay_manual.cpp @@ -60,6 +60,21 @@ static NTSTATUS IVROverlay_SetOverlayTexture( Iface *iface, Params *params, bool return 0; } +template< typename Params > +static NTSTATUS IVROverlay_SetOverlayTexture( u_IVROverlay_IVROverlay_006 *iface, Params *params, bool wow64 ) +{ + w_Texture_t texture = + { + .handle = params->pTexture, + .eType = params->eTextureType, + }; + u_VRVulkanTextureData_t u_vkdata; + u_Texture_t host_texture = unwrap_texture_data( &texture, &u_vkdata ); + + params->_ret = (uint32_t)iface->SetOverlayTexture( params->ulOverlayHandle, host_texture.eType, host_texture.handle ); + return 0; +} + template< typename Iface, typename Params > static NTSTATUS IVROverlay_SetOverlayTexture( Iface *iface, Params *params, bool wow64 ) { @@ -75,6 +90,7 @@ VRCLIENT_UNIX_IMPL( IVROverlay, 002, SetOverlayTexture, false ); VRCLIENT_UNIX_IMPL( IVROverlay, 003, SetOverlayTexture, false ); VRCLIENT_UNIX_IMPL( IVROverlay, 004, SetOverlayTexture, false ); VRCLIENT_UNIX_IMPL( IVROverlay, 005, SetOverlayTexture, false ); +VRCLIENT_UNIX_IMPL( IVROverlay, 006, SetOverlayTexture ); VRCLIENT_UNIX_IMPL( IVROverlay, 007, SetOverlayTexture ); VRCLIENT_UNIX_IMPL( IVROverlay, 008, SetOverlayTexture ); VRCLIENT_UNIX_IMPL( IVROverlay, 010, SetOverlayTexture ); diff --git a/vrclient_x64/unixlib.cpp b/vrclient_x64/unixlib.cpp index 998a360c3d2..e84913c6b10 100644 --- a/vrclient_x64/unixlib.cpp +++ b/vrclient_x64/unixlib.cpp @@ -1,10 +1,12 @@ +#include +#include + #include "unix_private.h" #include #include #include #include -#include #define WINE_VK_HOST #include @@ -319,9 +321,18 @@ static NTSTATUS vrclient_init( Params *params, bool wow64 ) return 0; } - if (!(vrclient = dlopen( params->unix_path, RTLD_NOW ))) +#if defined(__x86_64__) + static const char arch_dir[] = "linux64"; +#elif defined(__aarch64__) + static const char arch_dir[] = "linuxarm64"; +#else + static const char arch_dir[] = "linux"; +#endif + + std::string vrclient_path = std::string( params->runtime_unix_path ) + "/bin/" + arch_dir + "/vrclient.so"; + if (!(vrclient = dlopen( vrclient_path.c_str(), RTLD_NOW ))) { - TRACE( "unable to load %s\n", (const char *)params->unix_path ); + TRACE( "unable to load %s\n", vrclient_path.c_str() ); return 0; } diff --git a/vrclient_x64/unixlib.h b/vrclient_x64/unixlib.h index 15690cb679f..bd0ec6af3e3 100644 --- a/vrclient_x64/unixlib.h +++ b/vrclient_x64/unixlib.h @@ -85,14 +85,14 @@ struct vrclient_init_params { int8_t _ret; HMODULE winevulkan; - char *unix_path; + char *runtime_unix_path; }; struct wow64_vrclient_init_params { int8_t _ret; - HMODULE winevulkan; - W32_PTR(char *unix_path, unix_path, char *); + W32_PTR(HMODULE winevulkan, winevulkan, HMODULE); + W32_PTR(char *runtime_unix_path, runtime_unix_path, char *); }; struct vrclient_init_registry_params diff --git a/vrclient_x64/unixlib_generated.cpp b/vrclient_x64/unixlib_generated.cpp index 309bade125c..5f7d293483d 100644 --- a/vrclient_x64/unixlib_generated.cpp +++ b/vrclient_x64/unixlib_generated.cpp @@ -368,6 +368,8 @@ extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = IVRCompositor_IVRCompositor_008_CompositorDumpImages, IVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, IVRCompositor_IVRCompositor_008_GetLastFrameRenderer, + IVRCompositor_IVRCompositor_008_GetLastPoses, + IVRCompositor_IVRCompositor_008_PostPresentHandoff, IVRCompositor_IVRCompositor_009_SetTrackingSpace, IVRCompositor_IVRCompositor_009_GetTrackingSpace, IVRCompositor_IVRCompositor_009_WaitGetPoses, @@ -1535,6 +1537,63 @@ extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = IVROverlay_IVROverlay_005_ShowKeyboard, IVROverlay_IVROverlay_005_GetKeyboardText, IVROverlay_IVROverlay_005_HideKeyboard, + IVROverlay_IVROverlay_006_FindOverlay, + IVROverlay_IVROverlay_006_CreateOverlay, + IVROverlay_IVROverlay_006_DestroyOverlay, + IVROverlay_IVROverlay_006_SetHighQualityOverlay, + IVROverlay_IVROverlay_006_GetHighQualityOverlay, + IVROverlay_IVROverlay_006_GetOverlayKey, + IVROverlay_IVROverlay_006_GetOverlayName, + IVROverlay_IVROverlay_006_GetOverlayImageData, + IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum, + IVROverlay_IVROverlay_006_SetOverlayFlag, + IVROverlay_IVROverlay_006_GetOverlayFlag, + IVROverlay_IVROverlay_006_SetOverlayColor, + IVROverlay_IVROverlay_006_GetOverlayColor, + IVROverlay_IVROverlay_006_SetOverlayAlpha, + IVROverlay_IVROverlay_006_GetOverlayAlpha, + IVROverlay_IVROverlay_006_SetOverlayGamma, + IVROverlay_IVROverlay_006_GetOverlayGamma, + IVROverlay_IVROverlay_006_SetOverlayWidthInMeters, + IVROverlay_IVROverlay_006_GetOverlayWidthInMeters, + IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters, + IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters, + IVROverlay_IVROverlay_006_SetOverlayTextureBounds, + IVROverlay_IVROverlay_006_GetOverlayTextureBounds, + IVROverlay_IVROverlay_006_GetOverlayTransformType, + IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute, + IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute, + IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative, + IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative, + IVROverlay_IVROverlay_006_ShowOverlay, + IVROverlay_IVROverlay_006_HideOverlay, + IVROverlay_IVROverlay_006_IsOverlayVisible, + IVROverlay_IVROverlay_006_PollNextOverlayEvent, + IVROverlay_IVROverlay_006_GetOverlayInputMethod, + IVROverlay_IVROverlay_006_SetOverlayInputMethod, + IVROverlay_IVROverlay_006_GetOverlayMouseScale, + IVROverlay_IVROverlay_006_SetOverlayMouseScale, + IVROverlay_IVROverlay_006_ComputeOverlayIntersection, + IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse, + IVROverlay_IVROverlay_006_IsHoverTargetOverlay, + IVROverlay_IVROverlay_006_GetGamepadFocusOverlay, + IVROverlay_IVROverlay_006_SetGamepadFocusOverlay, + IVROverlay_IVROverlay_006_SetOverlayNeighbor, + IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor, + IVROverlay_IVROverlay_006_SetOverlayTexture, + IVROverlay_IVROverlay_006_ClearOverlayTexture, + IVROverlay_IVROverlay_006_SetOverlayRaw, + IVROverlay_IVROverlay_006_SetOverlayFromFile, + IVROverlay_IVROverlay_006_CreateDashboardOverlay, + IVROverlay_IVROverlay_006_IsDashboardVisible, + IVROverlay_IVROverlay_006_IsActiveDashboardOverlay, + IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess, + IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess, + IVROverlay_IVROverlay_006_ShowDashboard, + IVROverlay_IVROverlay_006_ShowKeyboard, + IVROverlay_IVROverlay_006_ShowKeyboardForOverlay, + IVROverlay_IVROverlay_006_GetKeyboardText, + IVROverlay_IVROverlay_006_HideKeyboard, IVROverlay_IVROverlay_007_FindOverlay, IVROverlay_IVROverlay_007_CreateOverlay, IVROverlay_IVROverlay_007_DestroyOverlay, @@ -2969,6 +3028,11 @@ extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = IVRRenderModels_IVRRenderModels_001_FreeRenderModel, IVRRenderModels_IVRRenderModels_001_GetRenderModelName, IVRRenderModels_IVRRenderModels_001_GetRenderModelCount, + IVRRenderModels_IVRRenderModels_001_GetComponentCount, + IVRRenderModels_IVRRenderModels_001_GetComponentName, + IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask, + IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName, + IVRRenderModels_IVRRenderModels_001_GetComponentState, IVRRenderModels_IVRRenderModels_002_LoadRenderModel, IVRRenderModels_IVRRenderModels_002_FreeRenderModel, IVRRenderModels_IVRRenderModels_002_LoadTexture, @@ -3229,6 +3293,49 @@ extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = IVRSystem_IVRSystem_006_PerformFirmwareUpdate, IVRSystem_IVRSystem_006_IsDisplayOnDesktop, IVRSystem_IVRSystem_006_SetDisplayVisibility, + IVRSystem_IVRSystem_007_GetWindowBounds, + IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize, + IVRSystem_IVRSystem_007_GetEyeOutputViewport, + IVRSystem_IVRSystem_007_GetProjectionMatrix, + IVRSystem_IVRSystem_007_GetProjectionRaw, + IVRSystem_IVRSystem_007_ComputeDistortion, + IVRSystem_IVRSystem_007_GetEyeToHeadTransform, + IVRSystem_IVRSystem_007_GetTimeSinceLastVsync, + IVRSystem_IVRSystem_007_GetD3D9AdapterIndex, + IVRSystem_IVRSystem_007_GetDXGIOutputInfo, + IVRSystem_IVRSystem_007_AttachToWindow, + IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose, + IVRSystem_IVRSystem_007_ResetSeatedZeroPose, + IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, + IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose, + IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass, + IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel, + IVRSystem_IVRSystem_007_ApplyTransform, + IVRSystem_IVRSystem_007_GetTrackedDeviceClass, + IVRSystem_IVRSystem_007_IsTrackedDeviceConnected, + IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty, + IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty, + IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty, + IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty, + IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty, + IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty, + IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum, + IVRSystem_IVRSystem_007_PollNextEvent, + IVRSystem_IVRSystem_007_PollNextEventWithPose, + IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum, + IVRSystem_IVRSystem_007_GetHiddenAreaMesh, + IVRSystem_IVRSystem_007_GetControllerState, + IVRSystem_IVRSystem_007_GetControllerStateWithPose, + IVRSystem_IVRSystem_007_TriggerHapticPulse, + IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum, + IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum, + IVRSystem_IVRSystem_007_CaptureInputFocus, + IVRSystem_IVRSystem_007_ReleaseInputFocus, + IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess, + IVRSystem_IVRSystem_007_DriverDebugRequest, + IVRSystem_IVRSystem_007_PerformFirmwareUpdate, + IVRSystem_IVRSystem_007_IsDisplayOnDesktop, + IVRSystem_IVRSystem_007_SetDisplayVisibility, IVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize, IVRSystem_IVRSystem_009_GetProjectionMatrix, IVRSystem_IVRSystem_009_GetProjectionRaw, @@ -4262,6 +4369,8 @@ extern "C" const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_IVRCompositor_IVRCompositor_008_CompositorDumpImages, wow64_IVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, wow64_IVRCompositor_IVRCompositor_008_GetLastFrameRenderer, + wow64_IVRCompositor_IVRCompositor_008_GetLastPoses, + wow64_IVRCompositor_IVRCompositor_008_PostPresentHandoff, wow64_IVRCompositor_IVRCompositor_009_SetTrackingSpace, wow64_IVRCompositor_IVRCompositor_009_GetTrackingSpace, wow64_IVRCompositor_IVRCompositor_009_WaitGetPoses, @@ -5429,6 +5538,63 @@ extern "C" const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_IVROverlay_IVROverlay_005_ShowKeyboard, wow64_IVROverlay_IVROverlay_005_GetKeyboardText, wow64_IVROverlay_IVROverlay_005_HideKeyboard, + wow64_IVROverlay_IVROverlay_006_FindOverlay, + wow64_IVROverlay_IVROverlay_006_CreateOverlay, + wow64_IVROverlay_IVROverlay_006_DestroyOverlay, + wow64_IVROverlay_IVROverlay_006_SetHighQualityOverlay, + wow64_IVROverlay_IVROverlay_006_GetHighQualityOverlay, + wow64_IVROverlay_IVROverlay_006_GetOverlayKey, + wow64_IVROverlay_IVROverlay_006_GetOverlayName, + wow64_IVROverlay_IVROverlay_006_GetOverlayImageData, + wow64_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum, + wow64_IVROverlay_IVROverlay_006_SetOverlayFlag, + wow64_IVROverlay_IVROverlay_006_GetOverlayFlag, + wow64_IVROverlay_IVROverlay_006_SetOverlayColor, + wow64_IVROverlay_IVROverlay_006_GetOverlayColor, + wow64_IVROverlay_IVROverlay_006_SetOverlayAlpha, + wow64_IVROverlay_IVROverlay_006_GetOverlayAlpha, + wow64_IVROverlay_IVROverlay_006_SetOverlayGamma, + wow64_IVROverlay_IVROverlay_006_GetOverlayGamma, + wow64_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters, + wow64_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters, + wow64_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters, + wow64_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters, + wow64_IVROverlay_IVROverlay_006_SetOverlayTextureBounds, + wow64_IVROverlay_IVROverlay_006_GetOverlayTextureBounds, + wow64_IVROverlay_IVROverlay_006_GetOverlayTransformType, + wow64_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute, + wow64_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute, + wow64_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative, + wow64_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative, + wow64_IVROverlay_IVROverlay_006_ShowOverlay, + wow64_IVROverlay_IVROverlay_006_HideOverlay, + wow64_IVROverlay_IVROverlay_006_IsOverlayVisible, + wow64_IVROverlay_IVROverlay_006_PollNextOverlayEvent, + wow64_IVROverlay_IVROverlay_006_GetOverlayInputMethod, + wow64_IVROverlay_IVROverlay_006_SetOverlayInputMethod, + wow64_IVROverlay_IVROverlay_006_GetOverlayMouseScale, + wow64_IVROverlay_IVROverlay_006_SetOverlayMouseScale, + wow64_IVROverlay_IVROverlay_006_ComputeOverlayIntersection, + wow64_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse, + wow64_IVROverlay_IVROverlay_006_IsHoverTargetOverlay, + wow64_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay, + wow64_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay, + wow64_IVROverlay_IVROverlay_006_SetOverlayNeighbor, + wow64_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor, + wow64_IVROverlay_IVROverlay_006_SetOverlayTexture, + wow64_IVROverlay_IVROverlay_006_ClearOverlayTexture, + wow64_IVROverlay_IVROverlay_006_SetOverlayRaw, + wow64_IVROverlay_IVROverlay_006_SetOverlayFromFile, + wow64_IVROverlay_IVROverlay_006_CreateDashboardOverlay, + wow64_IVROverlay_IVROverlay_006_IsDashboardVisible, + wow64_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay, + wow64_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess, + wow64_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess, + wow64_IVROverlay_IVROverlay_006_ShowDashboard, + wow64_IVROverlay_IVROverlay_006_ShowKeyboard, + wow64_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay, + wow64_IVROverlay_IVROverlay_006_GetKeyboardText, + wow64_IVROverlay_IVROverlay_006_HideKeyboard, wow64_IVROverlay_IVROverlay_007_FindOverlay, wow64_IVROverlay_IVROverlay_007_CreateOverlay, wow64_IVROverlay_IVROverlay_007_DestroyOverlay, @@ -6863,6 +7029,11 @@ extern "C" const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_IVRRenderModels_IVRRenderModels_001_FreeRenderModel, wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelName, wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelCount, + wow64_IVRRenderModels_IVRRenderModels_001_GetComponentCount, + wow64_IVRRenderModels_IVRRenderModels_001_GetComponentName, + wow64_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask, + wow64_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName, + wow64_IVRRenderModels_IVRRenderModels_001_GetComponentState, wow64_IVRRenderModels_IVRRenderModels_002_LoadRenderModel, wow64_IVRRenderModels_IVRRenderModels_002_FreeRenderModel, wow64_IVRRenderModels_IVRRenderModels_002_LoadTexture, @@ -7123,6 +7294,49 @@ extern "C" const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_IVRSystem_IVRSystem_006_PerformFirmwareUpdate, wow64_IVRSystem_IVRSystem_006_IsDisplayOnDesktop, wow64_IVRSystem_IVRSystem_006_SetDisplayVisibility, + wow64_IVRSystem_IVRSystem_007_GetWindowBounds, + wow64_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize, + wow64_IVRSystem_IVRSystem_007_GetEyeOutputViewport, + wow64_IVRSystem_IVRSystem_007_GetProjectionMatrix, + wow64_IVRSystem_IVRSystem_007_GetProjectionRaw, + wow64_IVRSystem_IVRSystem_007_ComputeDistortion, + wow64_IVRSystem_IVRSystem_007_GetEyeToHeadTransform, + wow64_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync, + wow64_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex, + wow64_IVRSystem_IVRSystem_007_GetDXGIOutputInfo, + wow64_IVRSystem_IVRSystem_007_AttachToWindow, + wow64_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose, + wow64_IVRSystem_IVRSystem_007_ResetSeatedZeroPose, + wow64_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, + wow64_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose, + wow64_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass, + wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel, + wow64_IVRSystem_IVRSystem_007_ApplyTransform, + wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceClass, + wow64_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected, + wow64_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty, + wow64_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty, + wow64_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty, + wow64_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty, + wow64_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty, + wow64_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty, + wow64_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum, + wow64_IVRSystem_IVRSystem_007_PollNextEvent, + wow64_IVRSystem_IVRSystem_007_PollNextEventWithPose, + wow64_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum, + wow64_IVRSystem_IVRSystem_007_GetHiddenAreaMesh, + wow64_IVRSystem_IVRSystem_007_GetControllerState, + wow64_IVRSystem_IVRSystem_007_GetControllerStateWithPose, + wow64_IVRSystem_IVRSystem_007_TriggerHapticPulse, + wow64_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum, + wow64_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum, + wow64_IVRSystem_IVRSystem_007_CaptureInputFocus, + wow64_IVRSystem_IVRSystem_007_ReleaseInputFocus, + wow64_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess, + wow64_IVRSystem_IVRSystem_007_DriverDebugRequest, + wow64_IVRSystem_IVRSystem_007_PerformFirmwareUpdate, + wow64_IVRSystem_IVRSystem_007_IsDisplayOnDesktop, + wow64_IVRSystem_IVRSystem_007_SetDisplayVisibility, wow64_IVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize, wow64_IVRSystem_IVRSystem_009_GetProjectionMatrix, wow64_IVRSystem_IVRSystem_009_GetProjectionRaw, @@ -7890,11 +8104,11 @@ C_ASSERT( sizeof(VREvent_Keyboard_t_2010().uUserValue) >= 8 ); C_ASSERT( offsetof(VREvent_Keyboard_t_2010, overlayHandle) == 16 ); C_ASSERT( sizeof(VREvent_Keyboard_t_2010().overlayHandle) >= 8 ); -C_ASSERT( sizeof(VREvent_Keyboard_t_0912) >= 16 ); -C_ASSERT( offsetof(VREvent_Keyboard_t_0912, cNewInput) == 0 ); -C_ASSERT( sizeof(VREvent_Keyboard_t_0912().cNewInput) >= 8 ); -C_ASSERT( offsetof(VREvent_Keyboard_t_0912, uUserValue) == 8 ); -C_ASSERT( sizeof(VREvent_Keyboard_t_0912().uUserValue) >= 8 ); +C_ASSERT( sizeof(VREvent_Keyboard_t_0911) >= 16 ); +C_ASSERT( offsetof(VREvent_Keyboard_t_0911, cNewInput) == 0 ); +C_ASSERT( sizeof(VREvent_Keyboard_t_0911().cNewInput) >= 8 ); +C_ASSERT( offsetof(VREvent_Keyboard_t_0911, uUserValue) == 8 ); +C_ASSERT( sizeof(VREvent_Keyboard_t_0911().uUserValue) >= 8 ); C_ASSERT( sizeof(VREvent_Keyboard_t_0910) >= 16 ); C_ASSERT( offsetof(VREvent_Keyboard_t_0910, cNewInput) == 0 ); @@ -9138,6 +9352,24 @@ C_ASSERT( sizeof(VREvent_Data_t_0912().ipd) >= 4 ); C_ASSERT( offsetof(VREvent_Data_t_0912, chaperone) == 0 ); C_ASSERT( sizeof(VREvent_Data_t_0912().chaperone) >= 16 ); +C_ASSERT( sizeof(VREvent_Data_t_0911) >= 16 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, reserved) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().reserved) >= 16 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, controller) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().controller) >= 4 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, mouse) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().mouse) >= 12 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, process) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().process) >= 8 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, notification) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().notification) >= 16 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, overlay) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().overlay) >= 8 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, status) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().status) >= 4 ); +C_ASSERT( offsetof(VREvent_Data_t_0911, keyboard) == 0 ); +C_ASSERT( sizeof(VREvent_Data_t_0911().keyboard) >= 16 ); + C_ASSERT( sizeof(VREvent_Data_t_0910) >= 16 ); C_ASSERT( offsetof(VREvent_Data_t_0910, reserved) == 0 ); C_ASSERT( sizeof(VREvent_Data_t_0910().reserved) >= 16 ); @@ -9236,6 +9468,16 @@ C_ASSERT( sizeof(ChaperoneSoftBoundsInfo_t) >= 48 ); C_ASSERT( offsetof(ChaperoneSoftBoundsInfo_t, quadCorners) == 0 ); C_ASSERT( sizeof(ChaperoneSoftBoundsInfo_t().quadCorners) >= 48 ); +C_ASSERT( sizeof(ComponentState_t) >= 100 ); +C_ASSERT( offsetof(ComponentState_t, mTrackingToComponentRenderModel) == 0 ); +C_ASSERT( sizeof(ComponentState_t().mTrackingToComponentRenderModel) >= 48 ); +C_ASSERT( offsetof(ComponentState_t, mTrackingToComponentLocal) == 48 ); +C_ASSERT( sizeof(ComponentState_t().mTrackingToComponentLocal) >= 48 ); +C_ASSERT( offsetof(ComponentState_t, bIsStatic) == 96 ); +C_ASSERT( sizeof(ComponentState_t().bIsStatic) >= 1 ); +C_ASSERT( offsetof(ComponentState_t, bIsVisible) == 97 ); +C_ASSERT( sizeof(ComponentState_t().bIsVisible) >= 1 ); + C_ASSERT( sizeof(Compositor_BenchmarkResults) >= 8 ); C_ASSERT( offsetof(Compositor_BenchmarkResults, m_flMegaPixelsPerSecond) == 0 ); C_ASSERT( sizeof(Compositor_BenchmarkResults().m_flMegaPixelsPerSecond) >= 4 ); @@ -9472,6 +9714,26 @@ C_ASSERT( sizeof(SpatialAnchorPose_t) >= 48 ); C_ASSERT( offsetof(SpatialAnchorPose_t, mAnchorToAbsoluteTracking) == 0 ); C_ASSERT( sizeof(SpatialAnchorPose_t().mAnchorToAbsoluteTracking) >= 48 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t) >= 72 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsFX) == 0 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsFX) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsFY) == 8 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsFY) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsCX) == 16 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsCX) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsCY) == 24 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsCY) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsK1) == 32 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsK1) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsK2) == 40 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsK2) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsP1) == 48 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsP1) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsP2) == 56 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsP2) >= 8 ); +C_ASSERT( offsetof(TrackedCameraCalibrationDevOnly_t, m_flIntrinsicsK3) == 64 ); +C_ASSERT( sizeof(TrackedCameraCalibrationDevOnly_t().m_flIntrinsicsK3) >= 8 ); + C_ASSERT( sizeof(VRActiveActionSet_t_1016) >= 32 ); C_ASSERT( offsetof(VRActiveActionSet_t_1016, ulActionSet) == 0 ); C_ASSERT( sizeof(VRActiveActionSet_t_1016().ulActionSet) >= 8 ); @@ -11836,6 +12098,110 @@ C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0912().m_Pad) >= 16 ); C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0912, m_pImageData) == 116 ); C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0912().m_pImageData) >= 4 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911) >= 120 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nStreamFormat) == 0 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nStreamFormat) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nWidth) == 4 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nWidth) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nHeight) == 8 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nHeight) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nFrameSequence) == 12 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nFrameSequence) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nTimeStamp) == 16 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nTimeStamp) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nBufferIndex) == 20 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nBufferIndex) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nBufferCount) == 24 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nBufferCount) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_nImageDataSize) == 28 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_nImageDataSize) >= 4 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_flFrameTime) == 32 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_flFrameTime) >= 8 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_bPoseValid) == 40 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_bPoseValid) >= 1 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_HMDPoseMatrix) == 44 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_HMDPoseMatrix) >= 64 ); +C_ASSERT( offsetof(w64_CameraVideoStreamFrame_t_0911, m_pImageData) == 112 ); +C_ASSERT( sizeof(w64_CameraVideoStreamFrame_t_0911().m_pImageData) >= 8 ); + +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911) >= 116 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nStreamFormat) == 0 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nStreamFormat) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nWidth) == 4 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nWidth) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nHeight) == 8 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nHeight) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nFrameSequence) == 12 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nFrameSequence) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nTimeStamp) == 16 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nTimeStamp) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nBufferIndex) == 20 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nBufferIndex) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nBufferCount) == 24 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nBufferCount) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_nImageDataSize) == 28 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_nImageDataSize) >= 4 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_flFrameTime) == 32 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_flFrameTime) >= 8 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_bPoseValid) == 40 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_bPoseValid) >= 1 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_HMDPoseMatrix) == 44 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_HMDPoseMatrix) >= 64 ); +C_ASSERT( offsetof(u64_CameraVideoStreamFrame_t_0911, m_pImageData) == 108 ); +C_ASSERT( sizeof(u64_CameraVideoStreamFrame_t_0911().m_pImageData) >= 8 ); + +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911) >= 112 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nStreamFormat) == 0 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nStreamFormat) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nWidth) == 4 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nWidth) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nHeight) == 8 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nHeight) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nFrameSequence) == 12 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nFrameSequence) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nTimeStamp) == 16 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nTimeStamp) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nBufferIndex) == 20 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nBufferIndex) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nBufferCount) == 24 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nBufferCount) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_nImageDataSize) == 28 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_nImageDataSize) >= 4 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_flFrameTime) == 32 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_flFrameTime) >= 8 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_bPoseValid) == 40 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_bPoseValid) >= 1 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_HMDPoseMatrix) == 44 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_HMDPoseMatrix) >= 64 ); +C_ASSERT( offsetof(w32_CameraVideoStreamFrame_t_0911, m_pImageData) == 108 ); +C_ASSERT( sizeof(w32_CameraVideoStreamFrame_t_0911().m_pImageData) >= 4 ); + +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911) >= 112 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nStreamFormat) == 0 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nStreamFormat) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nWidth) == 4 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nWidth) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nHeight) == 8 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nHeight) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nFrameSequence) == 12 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nFrameSequence) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nTimeStamp) == 16 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nTimeStamp) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nBufferIndex) == 20 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nBufferIndex) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nBufferCount) == 24 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nBufferCount) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_nImageDataSize) == 28 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_nImageDataSize) >= 4 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_flFrameTime) == 32 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_flFrameTime) >= 8 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_bPoseValid) == 40 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_bPoseValid) >= 1 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_HMDPoseMatrix) == 44 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_HMDPoseMatrix) >= 64 ); +C_ASSERT( offsetof(u32_CameraVideoStreamFrame_t_0911, m_pImageData) == 108 ); +C_ASSERT( sizeof(u32_CameraVideoStreamFrame_t_0911().m_pImageData) >= 4 ); + #if defined(__x86_64__) || defined(__aarch64__) w64_CameraVideoStreamFrame_t_0914::operator u64_CameraVideoStreamFrame_t_0914() const { @@ -12080,6 +12446,86 @@ u64_CameraVideoStreamFrame_t_0912::operator w32_CameraVideoStreamFrame_t_0912() } #endif +#if defined(__x86_64__) || defined(__aarch64__) +w64_CameraVideoStreamFrame_t_0911::operator u64_CameraVideoStreamFrame_t_0911() const +{ + u64_CameraVideoStreamFrame_t_0911 ret; + ret.m_nStreamFormat = this->m_nStreamFormat; + ret.m_nWidth = this->m_nWidth; + ret.m_nHeight = this->m_nHeight; + ret.m_nFrameSequence = this->m_nFrameSequence; + ret.m_nTimeStamp = this->m_nTimeStamp; + ret.m_nBufferIndex = this->m_nBufferIndex; + ret.m_nBufferCount = this->m_nBufferCount; + ret.m_nImageDataSize = this->m_nImageDataSize; + ret.m_flFrameTime = this->m_flFrameTime; + ret.m_bPoseValid = this->m_bPoseValid; + ret.m_HMDPoseMatrix = this->m_HMDPoseMatrix; + ret.m_pImageData = this->m_pImageData; + return ret; +} +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +u64_CameraVideoStreamFrame_t_0911::operator w64_CameraVideoStreamFrame_t_0911() const +{ + w64_CameraVideoStreamFrame_t_0911 ret; + ret.m_nStreamFormat = this->m_nStreamFormat; + ret.m_nWidth = this->m_nWidth; + ret.m_nHeight = this->m_nHeight; + ret.m_nFrameSequence = this->m_nFrameSequence; + ret.m_nTimeStamp = this->m_nTimeStamp; + ret.m_nBufferIndex = this->m_nBufferIndex; + ret.m_nBufferCount = this->m_nBufferCount; + ret.m_nImageDataSize = this->m_nImageDataSize; + ret.m_flFrameTime = this->m_flFrameTime; + ret.m_bPoseValid = this->m_bPoseValid; + ret.m_HMDPoseMatrix = this->m_HMDPoseMatrix; + ret.m_pImageData = this->m_pImageData; + return ret; +} +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +w32_CameraVideoStreamFrame_t_0911::operator u64_CameraVideoStreamFrame_t_0911() const +{ + u64_CameraVideoStreamFrame_t_0911 ret; + ret.m_nStreamFormat = this->m_nStreamFormat; + ret.m_nWidth = this->m_nWidth; + ret.m_nHeight = this->m_nHeight; + ret.m_nFrameSequence = this->m_nFrameSequence; + ret.m_nTimeStamp = this->m_nTimeStamp; + ret.m_nBufferIndex = this->m_nBufferIndex; + ret.m_nBufferCount = this->m_nBufferCount; + ret.m_nImageDataSize = this->m_nImageDataSize; + ret.m_flFrameTime = this->m_flFrameTime; + ret.m_bPoseValid = this->m_bPoseValid; + ret.m_HMDPoseMatrix = this->m_HMDPoseMatrix; + ret.m_pImageData = this->m_pImageData; + return ret; +} +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +u64_CameraVideoStreamFrame_t_0911::operator w32_CameraVideoStreamFrame_t_0911() const +{ + w32_CameraVideoStreamFrame_t_0911 ret; + ret.m_nStreamFormat = this->m_nStreamFormat; + ret.m_nWidth = this->m_nWidth; + ret.m_nHeight = this->m_nHeight; + ret.m_nFrameSequence = this->m_nFrameSequence; + ret.m_nTimeStamp = this->m_nTimeStamp; + ret.m_nBufferIndex = this->m_nBufferIndex; + ret.m_nBufferCount = this->m_nBufferCount; + ret.m_nImageDataSize = this->m_nImageDataSize; + ret.m_flFrameTime = this->m_flFrameTime; + ret.m_bPoseValid = this->m_bPoseValid; + ret.m_HMDPoseMatrix = this->m_HMDPoseMatrix; + ret.m_pImageData = this->m_pImageData; + return ret; +} +#endif + C_ASSERT( sizeof(w64_Compositor_FrameTiming_251) >= 192 ); C_ASSERT( offsetof(w64_Compositor_FrameTiming_251, m_nSize) == 0 ); C_ASSERT( sizeof(w64_Compositor_FrameTiming_251().m_nSize) >= 4 ); @@ -13584,141 +14030,141 @@ C_ASSERT( sizeof(u32_Compositor_FrameTiming_0913().m_flHandoffEndMs) >= 4 ); C_ASSERT( offsetof(u32_Compositor_FrameTiming_0913, m_flCompositorUpdateCpuMs) == 144 ); C_ASSERT( sizeof(u32_Compositor_FrameTiming_0913().m_flCompositorUpdateCpuMs) >= 4 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912) >= 152 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, size) == 0 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().size) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, frameStart) == 8 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().frameStart) >= 8 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, frameVSync) == 16 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().frameVSync) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, droppedFrames) == 20 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().droppedFrames) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, frameIndex) == 24 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().frameIndex) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, pose) == 28 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().pose) >= 80 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, prediction) == 108 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().prediction) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flFrameIntervalMs) == 112 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flFrameIntervalMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flSceneRenderCpuMs) == 116 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flSceneRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flSceneRenderGpuMs) == 120 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flSceneRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flCompositorRenderCpuMs) == 124 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flCompositorRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flCompositorRenderGpuMs) == 128 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flCompositorRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flPresentCallCpuMs) == 132 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flPresentCallCpuMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flRunningStartMs) == 136 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flRunningStartMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flHandoffStartMs) == 140 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flHandoffStartMs) >= 4 ); -C_ASSERT( offsetof(w64_Compositor_FrameTiming_0912, m_flHandoffEndMs) == 144 ); -C_ASSERT( sizeof(w64_Compositor_FrameTiming_0912().m_flHandoffEndMs) >= 4 ); - -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912) >= 144 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, size) == 0 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().size) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, frameStart) == 4 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().frameStart) >= 8 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, frameVSync) == 12 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().frameVSync) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, droppedFrames) == 16 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().droppedFrames) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, frameIndex) == 20 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().frameIndex) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, pose) == 24 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().pose) >= 80 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, prediction) == 104 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().prediction) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flFrameIntervalMs) == 108 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flFrameIntervalMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flSceneRenderCpuMs) == 112 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flSceneRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flSceneRenderGpuMs) == 116 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flSceneRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flCompositorRenderCpuMs) == 120 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flCompositorRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flCompositorRenderGpuMs) == 124 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flCompositorRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flPresentCallCpuMs) == 128 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flPresentCallCpuMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flRunningStartMs) == 132 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flRunningStartMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flHandoffStartMs) == 136 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flHandoffStartMs) >= 4 ); -C_ASSERT( offsetof(u64_Compositor_FrameTiming_0912, m_flHandoffEndMs) == 140 ); -C_ASSERT( sizeof(u64_Compositor_FrameTiming_0912().m_flHandoffEndMs) >= 4 ); - -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912) >= 152 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, size) == 0 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().size) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, frameStart) == 8 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().frameStart) >= 8 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, frameVSync) == 16 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().frameVSync) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, droppedFrames) == 20 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().droppedFrames) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, frameIndex) == 24 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().frameIndex) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, pose) == 28 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().pose) >= 80 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, prediction) == 108 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().prediction) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flFrameIntervalMs) == 112 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flFrameIntervalMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flSceneRenderCpuMs) == 116 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flSceneRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flSceneRenderGpuMs) == 120 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flSceneRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flCompositorRenderCpuMs) == 124 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flCompositorRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flCompositorRenderGpuMs) == 128 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flCompositorRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flPresentCallCpuMs) == 132 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flPresentCallCpuMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flRunningStartMs) == 136 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flRunningStartMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flHandoffStartMs) == 140 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flHandoffStartMs) >= 4 ); -C_ASSERT( offsetof(w32_Compositor_FrameTiming_0912, m_flHandoffEndMs) == 144 ); -C_ASSERT( sizeof(w32_Compositor_FrameTiming_0912().m_flHandoffEndMs) >= 4 ); - -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912) >= 144 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, size) == 0 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().size) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, frameStart) == 4 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().frameStart) >= 8 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, frameVSync) == 12 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().frameVSync) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, droppedFrames) == 16 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().droppedFrames) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, frameIndex) == 20 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().frameIndex) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, pose) == 24 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().pose) >= 80 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, prediction) == 104 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().prediction) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flFrameIntervalMs) == 108 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flFrameIntervalMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flSceneRenderCpuMs) == 112 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flSceneRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flSceneRenderGpuMs) == 116 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flSceneRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flCompositorRenderCpuMs) == 120 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flCompositorRenderCpuMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flCompositorRenderGpuMs) == 124 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flCompositorRenderGpuMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flPresentCallCpuMs) == 128 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flPresentCallCpuMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flRunningStartMs) == 132 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flRunningStartMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flHandoffStartMs) == 136 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flHandoffStartMs) >= 4 ); -C_ASSERT( offsetof(u32_Compositor_FrameTiming_0912, m_flHandoffEndMs) == 140 ); -C_ASSERT( sizeof(u32_Compositor_FrameTiming_0912().m_flHandoffEndMs) >= 4 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911) >= 152 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, size) == 0 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().size) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, frameStart) == 8 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().frameStart) >= 8 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, frameVSync) == 16 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().frameVSync) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, droppedFrames) == 20 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().droppedFrames) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, frameIndex) == 24 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().frameIndex) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, pose) == 28 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().pose) >= 80 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, prediction) == 108 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().prediction) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flFrameIntervalMs) == 112 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flFrameIntervalMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flSceneRenderCpuMs) == 116 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flSceneRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flSceneRenderGpuMs) == 120 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flSceneRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flCompositorRenderCpuMs) == 124 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flCompositorRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flCompositorRenderGpuMs) == 128 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flCompositorRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flPresentCallCpuMs) == 132 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flPresentCallCpuMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flRunningStartMs) == 136 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flRunningStartMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flHandoffStartMs) == 140 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flHandoffStartMs) >= 4 ); +C_ASSERT( offsetof(w64_Compositor_FrameTiming_0911, m_flHandoffEndMs) == 144 ); +C_ASSERT( sizeof(w64_Compositor_FrameTiming_0911().m_flHandoffEndMs) >= 4 ); + +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911) >= 144 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, size) == 0 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().size) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, frameStart) == 4 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().frameStart) >= 8 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, frameVSync) == 12 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().frameVSync) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, droppedFrames) == 16 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().droppedFrames) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, frameIndex) == 20 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().frameIndex) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, pose) == 24 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().pose) >= 80 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, prediction) == 104 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().prediction) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flFrameIntervalMs) == 108 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flFrameIntervalMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flSceneRenderCpuMs) == 112 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flSceneRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flSceneRenderGpuMs) == 116 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flSceneRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flCompositorRenderCpuMs) == 120 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flCompositorRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flCompositorRenderGpuMs) == 124 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flCompositorRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flPresentCallCpuMs) == 128 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flPresentCallCpuMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flRunningStartMs) == 132 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flRunningStartMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flHandoffStartMs) == 136 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flHandoffStartMs) >= 4 ); +C_ASSERT( offsetof(u64_Compositor_FrameTiming_0911, m_flHandoffEndMs) == 140 ); +C_ASSERT( sizeof(u64_Compositor_FrameTiming_0911().m_flHandoffEndMs) >= 4 ); + +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911) >= 152 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, size) == 0 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().size) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, frameStart) == 8 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().frameStart) >= 8 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, frameVSync) == 16 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().frameVSync) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, droppedFrames) == 20 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().droppedFrames) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, frameIndex) == 24 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().frameIndex) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, pose) == 28 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().pose) >= 80 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, prediction) == 108 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().prediction) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flFrameIntervalMs) == 112 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flFrameIntervalMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flSceneRenderCpuMs) == 116 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flSceneRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flSceneRenderGpuMs) == 120 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flSceneRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flCompositorRenderCpuMs) == 124 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flCompositorRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flCompositorRenderGpuMs) == 128 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flCompositorRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flPresentCallCpuMs) == 132 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flPresentCallCpuMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flRunningStartMs) == 136 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flRunningStartMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flHandoffStartMs) == 140 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flHandoffStartMs) >= 4 ); +C_ASSERT( offsetof(w32_Compositor_FrameTiming_0911, m_flHandoffEndMs) == 144 ); +C_ASSERT( sizeof(w32_Compositor_FrameTiming_0911().m_flHandoffEndMs) >= 4 ); + +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911) >= 144 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, size) == 0 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().size) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, frameStart) == 4 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().frameStart) >= 8 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, frameVSync) == 12 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().frameVSync) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, droppedFrames) == 16 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().droppedFrames) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, frameIndex) == 20 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().frameIndex) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, pose) == 24 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().pose) >= 80 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, prediction) == 104 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().prediction) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flFrameIntervalMs) == 108 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flFrameIntervalMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flSceneRenderCpuMs) == 112 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flSceneRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flSceneRenderGpuMs) == 116 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flSceneRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flCompositorRenderCpuMs) == 120 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flCompositorRenderCpuMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flCompositorRenderGpuMs) == 124 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flCompositorRenderGpuMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flPresentCallCpuMs) == 128 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flPresentCallCpuMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flRunningStartMs) == 132 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flRunningStartMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flHandoffStartMs) == 136 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flHandoffStartMs) >= 4 ); +C_ASSERT( offsetof(u32_Compositor_FrameTiming_0911, m_flHandoffEndMs) == 140 ); +C_ASSERT( sizeof(u32_Compositor_FrameTiming_0911().m_flHandoffEndMs) >= 4 ); C_ASSERT( sizeof(w64_Compositor_FrameTiming_093) >= 144 ); C_ASSERT( offsetof(w64_Compositor_FrameTiming_093, size) == 0 ); @@ -14713,9 +15159,9 @@ u64_Compositor_FrameTiming_0913::operator w32_Compositor_FrameTiming_0913() cons #endif #if defined(__x86_64__) || defined(__aarch64__) -w64_Compositor_FrameTiming_0912::operator u64_Compositor_FrameTiming_0912() const +w64_Compositor_FrameTiming_0911::operator u64_Compositor_FrameTiming_0911() const { - u64_Compositor_FrameTiming_0912 ret; + u64_Compositor_FrameTiming_0911 ret; ret.size = this->size; ret.frameStart = this->frameStart; ret.frameVSync = this->frameVSync; @@ -14737,9 +15183,9 @@ w64_Compositor_FrameTiming_0912::operator u64_Compositor_FrameTiming_0912() cons #endif #if defined(__x86_64__) || defined(__aarch64__) -u64_Compositor_FrameTiming_0912::operator w64_Compositor_FrameTiming_0912() const +u64_Compositor_FrameTiming_0911::operator w64_Compositor_FrameTiming_0911() const { - w64_Compositor_FrameTiming_0912 ret; + w64_Compositor_FrameTiming_0911 ret; ret.size = this->size; ret.frameStart = this->frameStart; ret.frameVSync = this->frameVSync; @@ -14761,9 +15207,9 @@ u64_Compositor_FrameTiming_0912::operator w64_Compositor_FrameTiming_0912() cons #endif #ifdef __i386__ -w32_Compositor_FrameTiming_0912::operator u32_Compositor_FrameTiming_0912() const +w32_Compositor_FrameTiming_0911::operator u32_Compositor_FrameTiming_0911() const { - u32_Compositor_FrameTiming_0912 ret; + u32_Compositor_FrameTiming_0911 ret; ret.size = this->size; ret.frameStart = this->frameStart; ret.frameVSync = this->frameVSync; @@ -14785,9 +15231,9 @@ w32_Compositor_FrameTiming_0912::operator u32_Compositor_FrameTiming_0912() cons #endif #ifdef __i386__ -u32_Compositor_FrameTiming_0912::operator w32_Compositor_FrameTiming_0912() const +u32_Compositor_FrameTiming_0911::operator w32_Compositor_FrameTiming_0911() const { - w32_Compositor_FrameTiming_0912 ret; + w32_Compositor_FrameTiming_0911 ret; ret.size = this->size; ret.frameStart = this->frameStart; ret.frameVSync = this->frameVSync; @@ -14809,9 +15255,9 @@ u32_Compositor_FrameTiming_0912::operator w32_Compositor_FrameTiming_0912() cons #endif #if defined(__x86_64__) || defined(__aarch64__) -w32_Compositor_FrameTiming_0912::operator u64_Compositor_FrameTiming_0912() const +w32_Compositor_FrameTiming_0911::operator u64_Compositor_FrameTiming_0911() const { - u64_Compositor_FrameTiming_0912 ret; + u64_Compositor_FrameTiming_0911 ret; ret.size = this->size; ret.frameStart = this->frameStart; ret.frameVSync = this->frameVSync; @@ -14833,9 +15279,9 @@ w32_Compositor_FrameTiming_0912::operator u64_Compositor_FrameTiming_0912() cons #endif #if defined(__x86_64__) || defined(__aarch64__) -u64_Compositor_FrameTiming_0912::operator w32_Compositor_FrameTiming_0912() const +u64_Compositor_FrameTiming_0911::operator w32_Compositor_FrameTiming_0911() const { - w32_Compositor_FrameTiming_0912 ret; + w32_Compositor_FrameTiming_0911 ret; ret.size = this->size; ret.frameStart = this->frameStart; ret.frameVSync = this->frameVSync; @@ -17240,6 +17686,46 @@ C_ASSERT( sizeof(u32_VREvent_t_0912().data) >= 16 ); C_ASSERT( offsetof(u32_VREvent_t_0912, eventAgeSeconds) == 24 ); C_ASSERT( sizeof(u32_VREvent_t_0912().eventAgeSeconds) >= 4 ); +C_ASSERT( sizeof(w64_VREvent_t_0911) >= 32 ); +C_ASSERT( offsetof(w64_VREvent_t_0911, eventType) == 0 ); +C_ASSERT( sizeof(w64_VREvent_t_0911().eventType) >= 4 ); +C_ASSERT( offsetof(w64_VREvent_t_0911, trackedDeviceIndex) == 4 ); +C_ASSERT( sizeof(w64_VREvent_t_0911().trackedDeviceIndex) >= 4 ); +C_ASSERT( offsetof(w64_VREvent_t_0911, data) == 8 ); +C_ASSERT( sizeof(w64_VREvent_t_0911().data) >= 16 ); +C_ASSERT( offsetof(w64_VREvent_t_0911, eventAgeSeconds) == 24 ); +C_ASSERT( sizeof(w64_VREvent_t_0911().eventAgeSeconds) >= 4 ); + +C_ASSERT( sizeof(u64_VREvent_t_0911) >= 28 ); +C_ASSERT( offsetof(u64_VREvent_t_0911, eventType) == 0 ); +C_ASSERT( sizeof(u64_VREvent_t_0911().eventType) >= 4 ); +C_ASSERT( offsetof(u64_VREvent_t_0911, trackedDeviceIndex) == 4 ); +C_ASSERT( sizeof(u64_VREvent_t_0911().trackedDeviceIndex) >= 4 ); +C_ASSERT( offsetof(u64_VREvent_t_0911, data) == 8 ); +C_ASSERT( sizeof(u64_VREvent_t_0911().data) >= 16 ); +C_ASSERT( offsetof(u64_VREvent_t_0911, eventAgeSeconds) == 24 ); +C_ASSERT( sizeof(u64_VREvent_t_0911().eventAgeSeconds) >= 4 ); + +C_ASSERT( sizeof(w32_VREvent_t_0911) >= 32 ); +C_ASSERT( offsetof(w32_VREvent_t_0911, eventType) == 0 ); +C_ASSERT( sizeof(w32_VREvent_t_0911().eventType) >= 4 ); +C_ASSERT( offsetof(w32_VREvent_t_0911, trackedDeviceIndex) == 4 ); +C_ASSERT( sizeof(w32_VREvent_t_0911().trackedDeviceIndex) >= 4 ); +C_ASSERT( offsetof(w32_VREvent_t_0911, data) == 8 ); +C_ASSERT( sizeof(w32_VREvent_t_0911().data) >= 16 ); +C_ASSERT( offsetof(w32_VREvent_t_0911, eventAgeSeconds) == 24 ); +C_ASSERT( sizeof(w32_VREvent_t_0911().eventAgeSeconds) >= 4 ); + +C_ASSERT( sizeof(u32_VREvent_t_0911) >= 28 ); +C_ASSERT( offsetof(u32_VREvent_t_0911, eventType) == 0 ); +C_ASSERT( sizeof(u32_VREvent_t_0911().eventType) >= 4 ); +C_ASSERT( offsetof(u32_VREvent_t_0911, trackedDeviceIndex) == 4 ); +C_ASSERT( sizeof(u32_VREvent_t_0911().trackedDeviceIndex) >= 4 ); +C_ASSERT( offsetof(u32_VREvent_t_0911, data) == 8 ); +C_ASSERT( sizeof(u32_VREvent_t_0911().data) >= 16 ); +C_ASSERT( offsetof(u32_VREvent_t_0911, eventAgeSeconds) == 24 ); +C_ASSERT( sizeof(u32_VREvent_t_0911().eventAgeSeconds) >= 4 ); + C_ASSERT( sizeof(w64_VREvent_t_0910) >= 32 ); C_ASSERT( offsetof(w64_VREvent_t_0910, eventType) == 0 ); C_ASSERT( sizeof(w64_VREvent_t_0910().eventType) >= 4 ); @@ -19024,6 +19510,78 @@ u64_VREvent_t_0912::operator w32_VREvent_t_0912() const } #endif +#if defined(__x86_64__) || defined(__aarch64__) +w64_VREvent_t_0911::operator u64_VREvent_t_0911() const +{ + u64_VREvent_t_0911 ret; + ret.eventType = this->eventType; + ret.trackedDeviceIndex = this->trackedDeviceIndex; + ret.data = this->data; + ret.eventAgeSeconds = this->eventAgeSeconds; + return ret; +} +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +u64_VREvent_t_0911::operator w64_VREvent_t_0911() const +{ + w64_VREvent_t_0911 ret; + ret.eventType = this->eventType; + ret.trackedDeviceIndex = this->trackedDeviceIndex; + ret.data = this->data; + ret.eventAgeSeconds = this->eventAgeSeconds; + return ret; +} +#endif + +#ifdef __i386__ +w32_VREvent_t_0911::operator u32_VREvent_t_0911() const +{ + u32_VREvent_t_0911 ret; + ret.eventType = this->eventType; + ret.trackedDeviceIndex = this->trackedDeviceIndex; + ret.data = this->data; + ret.eventAgeSeconds = this->eventAgeSeconds; + return ret; +} +#endif + +#ifdef __i386__ +u32_VREvent_t_0911::operator w32_VREvent_t_0911() const +{ + w32_VREvent_t_0911 ret; + ret.eventType = this->eventType; + ret.trackedDeviceIndex = this->trackedDeviceIndex; + ret.data = this->data; + ret.eventAgeSeconds = this->eventAgeSeconds; + return ret; +} +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +w32_VREvent_t_0911::operator u64_VREvent_t_0911() const +{ + u64_VREvent_t_0911 ret; + ret.eventType = this->eventType; + ret.trackedDeviceIndex = this->trackedDeviceIndex; + ret.data = this->data; + ret.eventAgeSeconds = this->eventAgeSeconds; + return ret; +} +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +u64_VREvent_t_0911::operator w32_VREvent_t_0911() const +{ + w32_VREvent_t_0911 ret; + ret.eventType = this->eventType; + ret.trackedDeviceIndex = this->trackedDeviceIndex; + ret.data = this->data; + ret.eventAgeSeconds = this->eventAgeSeconds; + return ret; +} +#endif + #if defined(__x86_64__) || defined(__aarch64__) w64_VREvent_t_0910::operator u64_VREvent_t_0910() const { diff --git a/vrclient_x64/unixlib_generated.h b/vrclient_x64/unixlib_generated.h index 974b855f2d3..36dd67972cc 100644 --- a/vrclient_x64/unixlib_generated.h +++ b/vrclient_x64/unixlib_generated.h @@ -4921,7 +4921,7 @@ struct IVRCompositor_IVRCompositor_008_GetFrameTiming_params { struct u_iface u_iface; int8_t _ret; - w_Compositor_FrameTiming_093 *pTiming; + w_Compositor_FrameTiming_0911 *pTiming; uint32_t unFramesAgo; }; @@ -4929,7 +4929,7 @@ struct wow64_IVRCompositor_IVRCompositor_008_GetFrameTiming_params { struct u_iface u_iface; int8_t _ret; - W32_PTR(w32_Compositor_FrameTiming_093 *pTiming, pTiming, w32_Compositor_FrameTiming_093 *); + W32_PTR(w32_Compositor_FrameTiming_0911 *pTiming, pTiming, w32_Compositor_FrameTiming_0911 *); uint32_t unFramesAgo; }; @@ -5147,6 +5147,36 @@ struct wow64_IVRCompositor_IVRCompositor_008_GetLastFrameRenderer_params uint32_t _ret; }; +struct IVRCompositor_IVRCompositor_008_GetLastPoses_params +{ + struct u_iface u_iface; + uint32_t _ret; + TrackedDevicePose_t *pRenderPoseArray; + uint32_t unRenderPoseArrayCount; + TrackedDevicePose_t *pGamePoseArray; + uint32_t unGamePoseArrayCount; +}; + +struct wow64_IVRCompositor_IVRCompositor_008_GetLastPoses_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(TrackedDevicePose_t *pRenderPoseArray, pRenderPoseArray, TrackedDevicePose_t *); + uint32_t unRenderPoseArrayCount; + W32_PTR(TrackedDevicePose_t *pGamePoseArray, pGamePoseArray, TrackedDevicePose_t *); + uint32_t unGamePoseArrayCount; +}; + +struct IVRCompositor_IVRCompositor_008_PostPresentHandoff_params +{ + struct u_iface u_iface; +}; + +struct wow64_IVRCompositor_IVRCompositor_008_PostPresentHandoff_params +{ + struct u_iface u_iface; +}; + struct IVRCompositor_IVRCompositor_009_SetTrackingSpace_params { struct u_iface u_iface; @@ -22447,7 +22477,7 @@ struct wow64_IVROverlay_IVROverlay_005_HideKeyboard_params struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_007_FindOverlay_params +struct IVROverlay_IVROverlay_006_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -22455,7 +22485,7 @@ struct IVROverlay_IVROverlay_007_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_006_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -22463,7 +22493,7 @@ struct wow64_IVROverlay_IVROverlay_007_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_007_CreateOverlay_params +struct IVROverlay_IVROverlay_006_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -22472,7 +22502,7 @@ struct IVROverlay_IVROverlay_007_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_006_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -22481,47 +22511,47 @@ struct wow64_IVROverlay_IVROverlay_007_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_007_DestroyOverlay_params +struct IVROverlay_IVROverlay_006_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_006_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_006_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_006_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_006_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_007_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_006_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_007_GetOverlayKey_params +struct IVROverlay_IVROverlay_006_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -22531,7 +22561,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -22541,7 +22571,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayName_params +struct IVROverlay_IVROverlay_006_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -22551,7 +22581,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -22561,7 +22591,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayImageData_params +struct IVROverlay_IVROverlay_006_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -22572,7 +22602,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -22583,21 +22613,21 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_007_SetOverlayFlag_params +struct IVROverlay_IVROverlay_006_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -22606,7 +22636,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -22615,7 +22645,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_007_GetOverlayFlag_params +struct IVROverlay_IVROverlay_006_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -22624,7 +22654,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -22633,7 +22663,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_007_SetOverlayColor_params +struct IVROverlay_IVROverlay_006_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -22643,7 +22673,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -22653,7 +22683,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_007_GetOverlayColor_params +struct IVROverlay_IVROverlay_006_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -22663,7 +22693,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -22673,7 +22703,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_007_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_006_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -22681,7 +22711,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -22689,7 +22719,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_007_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_006_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -22697,7 +22727,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -22705,107 +22735,107 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_007_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_006_SetOverlayGamma_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fWidthInMeters; + float fGamma; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayGamma_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fWidthInMeters; + float fGamma; }; -struct IVROverlay_IVROverlay_007_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_006_GetOverlayGamma_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float *pfWidthInMeters; + float *pfGamma; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayGamma_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); + W32_PTR(float *pfGamma, pfGamma, float *); }; -struct IVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fMinDistanceInMeters; - float fMaxDistanceInMeters; + float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fMinDistanceInMeters; - float fMaxDistanceInMeters; + float fWidthInMeters; }; -struct IVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float *pfMinDistanceInMeters; - float *pfMaxDistanceInMeters; + float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(float *pfMinDistanceInMeters, pfMinDistanceInMeters, float *); - W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); + W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_007_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t eTextureColorSpace; + float fMinDistanceInMeters; + float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t eTextureColorSpace; + float fMinDistanceInMeters; + float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_007_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t *peTextureColorSpace; + float *pfMinDistanceInMeters; + float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); + W32_PTR(float *pfMinDistanceInMeters, pfMinDistanceInMeters, float *); + W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_007_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -22813,7 +22843,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -22821,7 +22851,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -22829,7 +22859,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -22837,7 +22867,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_006_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -22845,7 +22875,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -22853,7 +22883,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_007_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -22862,7 +22892,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -22871,7 +22901,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -22880,7 +22910,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -22889,7 +22919,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -22898,7 +22928,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -22907,7 +22937,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -22916,7 +22946,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -22925,65 +22955,65 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_007_ShowOverlay_params +struct IVROverlay_IVROverlay_006_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_006_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_HideOverlay_params +struct IVROverlay_IVROverlay_006_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_006_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_IsOverlayVisible_params +struct IVROverlay_IVROverlay_006_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_006_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_006_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_0912 *pEvent; + w_VREvent_t_0911 *pEvent; }; -struct wow64_IVROverlay_IVROverlay_007_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_006_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_0912 *pEvent, pEvent, w32_VREvent_t_0912 *); + W32_PTR(w32_VREvent_t_0911 *pEvent, pEvent, w32_VREvent_t_0911 *); }; -struct IVROverlay_IVROverlay_007_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_006_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -22991,7 +23021,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -22999,7 +23029,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_007_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_006_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -23007,7 +23037,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -23015,7 +23045,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_007_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_006_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -23023,7 +23053,7 @@ struct IVROverlay_IVROverlay_007_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_007_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_006_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -23031,7 +23061,7 @@ struct wow64_IVROverlay_IVROverlay_007_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_007_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_006_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -23039,7 +23069,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -23047,7 +23077,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_007_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -23056,7 +23086,7 @@ struct IVROverlay_IVROverlay_007_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_007_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -23065,7 +23095,7 @@ struct wow64_IVROverlay_IVROverlay_007_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -23073,7 +23103,7 @@ struct IVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -23081,47 +23111,47 @@ struct wow64_IVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_007_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_007_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_007_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_007_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_007_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_006_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -23130,7 +23160,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -23139,7 +23169,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -23147,7 +23177,7 @@ struct IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -23155,37 +23185,39 @@ struct wow64_IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_007_SetOverlayTexture_params +struct IVROverlay_IVROverlay_006_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - const w_Texture_t *pTexture; + uint32_t eTextureType; + void *pTexture; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); + uint32_t eTextureType; + W32_PTR(void *pTexture, pTexture, void *); }; -struct IVROverlay_IVROverlay_007_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_006_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_006_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_SetOverlayRaw_params +struct IVROverlay_IVROverlay_006_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -23196,7 +23228,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -23207,7 +23239,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_007_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_006_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -23215,7 +23247,7 @@ struct IVROverlay_IVROverlay_007_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_007_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_006_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -23223,7 +23255,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_007_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_006_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23233,7 +23265,7 @@ struct IVROverlay_IVROverlay_007_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_007_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_006_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23243,33 +23275,33 @@ struct wow64_IVROverlay_IVROverlay_007_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_007_IsDashboardVisible_params +struct IVROverlay_IVROverlay_006_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_007_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_006_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_007_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_007_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -23277,7 +23309,7 @@ struct IVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -23285,7 +23317,7 @@ struct wow64_IVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -23293,7 +23325,7 @@ struct IVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -23301,19 +23333,19 @@ struct wow64_IVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_007_ShowDashboard_params +struct IVROverlay_IVROverlay_006_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_007_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_006_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_007_ShowKeyboard_params +struct IVROverlay_IVROverlay_006_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -23326,7 +23358,7 @@ struct IVROverlay_IVROverlay_007_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_007_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_006_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -23339,7 +23371,7 @@ struct wow64_IVROverlay_IVROverlay_007_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_007_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23353,7 +23385,7 @@ struct IVROverlay_IVROverlay_007_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_007_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23367,7 +23399,7 @@ struct wow64_IVROverlay_IVROverlay_007_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_007_GetKeyboardText_params +struct IVROverlay_IVROverlay_006_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -23375,7 +23407,7 @@ struct IVROverlay_IVROverlay_007_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_007_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_006_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -23383,17 +23415,17 @@ struct wow64_IVROverlay_IVROverlay_007_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_007_HideKeyboard_params +struct IVROverlay_IVROverlay_006_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_007_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_006_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_008_FindOverlay_params +struct IVROverlay_IVROverlay_007_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23401,7 +23433,7 @@ struct IVROverlay_IVROverlay_008_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_007_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23409,7 +23441,7 @@ struct wow64_IVROverlay_IVROverlay_008_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_008_CreateOverlay_params +struct IVROverlay_IVROverlay_007_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23418,7 +23450,7 @@ struct IVROverlay_IVROverlay_008_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_007_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -23427,47 +23459,47 @@ struct wow64_IVROverlay_IVROverlay_008_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_008_DestroyOverlay_params +struct IVROverlay_IVROverlay_007_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_007_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_007_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_007_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_007_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_008_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_007_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_008_GetOverlayKey_params +struct IVROverlay_IVROverlay_007_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -23477,7 +23509,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -23487,7 +23519,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayName_params +struct IVROverlay_IVROverlay_007_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -23497,7 +23529,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -23507,7 +23539,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayImageData_params +struct IVROverlay_IVROverlay_007_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -23518,7 +23550,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -23529,21 +23561,21 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_008_SetOverlayFlag_params +struct IVROverlay_IVROverlay_007_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -23552,7 +23584,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -23561,7 +23593,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_008_GetOverlayFlag_params +struct IVROverlay_IVROverlay_007_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -23570,7 +23602,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -23579,7 +23611,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_008_SetOverlayColor_params +struct IVROverlay_IVROverlay_007_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -23589,7 +23621,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -23599,7 +23631,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_008_GetOverlayColor_params +struct IVROverlay_IVROverlay_007_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -23609,7 +23641,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -23619,7 +23651,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_008_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_007_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -23627,7 +23659,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -23635,7 +23667,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_008_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_007_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -23643,7 +23675,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -23651,7 +23683,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_008_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_007_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23659,7 +23691,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23667,7 +23699,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_008_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_007_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23675,7 +23707,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23683,7 +23715,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23692,7 +23724,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23701,7 +23733,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23710,7 +23742,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -23719,7 +23751,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_008_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_007_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -23727,7 +23759,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -23735,7 +23767,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_008_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_007_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -23743,7 +23775,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -23751,7 +23783,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_008_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_007_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -23759,7 +23791,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -23767,7 +23799,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_007_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -23775,7 +23807,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -23783,7 +23815,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_007_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -23791,7 +23823,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -23799,7 +23831,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_008_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_007_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -23808,7 +23840,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -23817,7 +23849,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_007_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -23826,7 +23858,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -23835,7 +23867,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -23844,7 +23876,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -23853,7 +23885,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -23862,7 +23894,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -23871,85 +23903,65 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_008_ShowOverlay_params +struct IVROverlay_IVROverlay_007_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_007_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_HideOverlay_params +struct IVROverlay_IVROverlay_007_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_007_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_IsOverlayVisible_params +struct IVROverlay_IVROverlay_007_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_007_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t eTrackingOrigin; - HmdVector2_t coordinatesInOverlay; - HmdMatrix34_t *pmatTransform; -}; - -struct wow64_IVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t eTrackingOrigin; - HmdVector2_t coordinatesInOverlay; - W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); -}; - -struct IVROverlay_IVROverlay_008_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_007_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_0914 *pEvent; + w_VREvent_t_0912 *pEvent; }; -struct wow64_IVROverlay_IVROverlay_008_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_007_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_0914 *pEvent, pEvent, w32_VREvent_t_0914 *); + W32_PTR(w32_VREvent_t_0912 *pEvent, pEvent, w32_VREvent_t_0912 *); }; -struct IVROverlay_IVROverlay_008_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_007_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -23957,7 +23969,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -23965,7 +23977,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_008_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_007_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -23973,7 +23985,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -23981,7 +23993,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_008_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_007_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -23989,7 +24001,7 @@ struct IVROverlay_IVROverlay_008_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_008_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_007_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -23997,7 +24009,7 @@ struct wow64_IVROverlay_IVROverlay_008_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_008_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_007_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -24005,7 +24017,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -24013,7 +24025,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_008_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_007_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -24022,7 +24034,7 @@ struct IVROverlay_IVROverlay_008_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_008_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_007_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -24031,7 +24043,7 @@ struct wow64_IVROverlay_IVROverlay_008_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -24039,7 +24051,7 @@ struct IVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -24047,47 +24059,47 @@ struct wow64_IVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_008_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_007_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_007_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_007_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_008_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_007_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_008_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_007_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_008_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_007_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_008_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_007_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -24096,7 +24108,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -24105,7 +24117,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -24113,7 +24125,7 @@ struct IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -24121,7 +24133,7 @@ struct wow64_IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_008_SetOverlayTexture_params +struct IVROverlay_IVROverlay_007_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -24129,7 +24141,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -24137,21 +24149,21 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_008_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_007_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_007_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_SetOverlayRaw_params +struct IVROverlay_IVROverlay_007_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -24162,7 +24174,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -24173,7 +24185,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_008_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_007_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -24181,7 +24193,7 @@ struct IVROverlay_IVROverlay_008_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_008_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_007_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -24189,7 +24201,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_008_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_007_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24199,7 +24211,7 @@ struct IVROverlay_IVROverlay_008_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_008_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_007_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24209,33 +24221,33 @@ struct wow64_IVROverlay_IVROverlay_008_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_008_IsDashboardVisible_params +struct IVROverlay_IVROverlay_007_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_008_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_007_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_008_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_007_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_008_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_007_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -24243,7 +24255,7 @@ struct IVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -24251,7 +24263,7 @@ struct wow64_IVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -24259,7 +24271,7 @@ struct IVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -24267,19 +24279,19 @@ struct wow64_IVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_008_ShowDashboard_params +struct IVROverlay_IVROverlay_007_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_008_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_007_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_008_ShowKeyboard_params +struct IVROverlay_IVROverlay_007_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -24292,7 +24304,7 @@ struct IVROverlay_IVROverlay_008_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_008_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_007_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -24305,7 +24317,7 @@ struct wow64_IVROverlay_IVROverlay_008_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_008_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_007_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24319,7 +24331,7 @@ struct IVROverlay_IVROverlay_008_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_008_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_007_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24333,7 +24345,7 @@ struct wow64_IVROverlay_IVROverlay_008_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_008_GetKeyboardText_params +struct IVROverlay_IVROverlay_007_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -24341,7 +24353,7 @@ struct IVROverlay_IVROverlay_008_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_008_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_007_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -24349,45 +24361,17 @@ struct wow64_IVROverlay_IVROverlay_008_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_008_HideKeyboard_params -{ - struct u_iface u_iface; -}; - -struct wow64_IVROverlay_IVROverlay_008_HideKeyboard_params -{ - struct u_iface u_iface; -}; - -struct IVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute_params -{ - struct u_iface u_iface; - uint32_t eTrackingOrigin; - const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; -}; - -struct wow64_IVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute_params -{ - struct u_iface u_iface; - uint32_t eTrackingOrigin; - W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); -}; - -struct IVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_007_HideKeyboard_params { struct u_iface u_iface; - uint64_t ulOverlayHandle; - HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_007_HideKeyboard_params { struct u_iface u_iface; - uint64_t ulOverlayHandle; - HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_010_FindOverlay_params +struct IVROverlay_IVROverlay_008_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24395,7 +24379,7 @@ struct IVROverlay_IVROverlay_010_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_008_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24403,7 +24387,7 @@ struct wow64_IVROverlay_IVROverlay_010_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_010_CreateOverlay_params +struct IVROverlay_IVROverlay_008_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24412,7 +24396,7 @@ struct IVROverlay_IVROverlay_010_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_008_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -24421,47 +24405,47 @@ struct wow64_IVROverlay_IVROverlay_010_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_010_DestroyOverlay_params +struct IVROverlay_IVROverlay_008_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_008_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_008_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_008_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_008_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_010_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_008_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_010_GetOverlayKey_params +struct IVROverlay_IVROverlay_008_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -24471,7 +24455,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -24481,7 +24465,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayName_params +struct IVROverlay_IVROverlay_008_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -24491,7 +24475,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -24501,7 +24485,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayImageData_params +struct IVROverlay_IVROverlay_008_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -24512,7 +24496,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -24523,21 +24507,21 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_010_SetOverlayFlag_params +struct IVROverlay_IVROverlay_008_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -24546,7 +24530,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -24555,7 +24539,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_010_GetOverlayFlag_params +struct IVROverlay_IVROverlay_008_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -24564,7 +24548,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -24573,7 +24557,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayColor_params +struct IVROverlay_IVROverlay_008_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -24583,7 +24567,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -24593,7 +24577,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_010_GetOverlayColor_params +struct IVROverlay_IVROverlay_008_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -24603,7 +24587,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -24613,7 +24597,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_010_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_008_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -24621,7 +24605,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -24629,7 +24613,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_010_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_008_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -24637,7 +24621,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -24645,7 +24629,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_010_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_008_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24653,7 +24637,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24661,7 +24645,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_010_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_008_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24669,7 +24653,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24677,7 +24661,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24686,7 +24670,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24695,7 +24679,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24704,7 +24688,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -24713,7 +24697,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_010_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_008_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -24721,7 +24705,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -24729,7 +24713,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_010_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_008_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -24737,7 +24721,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -24745,7 +24729,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_008_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -24753,7 +24737,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -24761,7 +24745,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_008_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -24769,7 +24753,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -24777,7 +24761,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_008_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -24785,7 +24769,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -24793,7 +24777,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_008_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -24802,7 +24786,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -24811,7 +24795,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_008_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -24820,7 +24804,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -24829,7 +24813,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -24838,7 +24822,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -24847,7 +24831,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -24856,7 +24840,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -24865,87 +24849,49 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t unDeviceIndex; - const char *pchComponentName; -}; - -struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t unDeviceIndex; - W32_PTR(const char *pchComponentName, pchComponentName, const char *); -}; - -struct IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t *punDeviceIndex; - char *pchComponentName; - uint32_t unComponentNameSize; -}; - -struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(uint32_t *punDeviceIndex, punDeviceIndex, uint32_t *); - W32_PTR(char *pchComponentName, pchComponentName, char *); - uint32_t unComponentNameSize; -}; - -struct IVROverlay_IVROverlay_010_ShowOverlay_params +struct IVROverlay_IVROverlay_008_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_008_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_HideOverlay_params +struct IVROverlay_IVROverlay_008_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_008_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_IsOverlayVisible_params +struct IVROverlay_IVROverlay_008_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_008_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -24955,7 +24901,7 @@ struct IVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -24965,25 +24911,23 @@ struct wow64_IVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_010_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_008_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_0918 *pEvent; - uint32_t uncbVREvent; + w_VREvent_t_0914 *pEvent; }; -struct wow64_IVROverlay_IVROverlay_010_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_008_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_0918 *pEvent, pEvent, w32_VREvent_t_0918 *); - uint32_t uncbVREvent; + W32_PTR(w32_VREvent_t_0914 *pEvent, pEvent, w32_VREvent_t_0914 *); }; -struct IVROverlay_IVROverlay_010_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_008_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -24991,7 +24935,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -24999,7 +24943,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_008_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -25007,7 +24951,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -25015,7 +24959,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_010_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_008_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -25023,7 +24967,7 @@ struct IVROverlay_IVROverlay_010_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_010_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_008_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -25031,7 +24975,7 @@ struct wow64_IVROverlay_IVROverlay_010_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_010_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_008_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -25039,7 +24983,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -25047,7 +24991,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_010_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_008_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -25056,7 +25000,7 @@ struct IVROverlay_IVROverlay_010_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_010_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_008_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -25065,7 +25009,7 @@ struct wow64_IVROverlay_IVROverlay_010_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -25073,7 +25017,7 @@ struct IVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -25081,47 +25025,47 @@ struct wow64_IVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_010_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_008_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_008_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_008_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_010_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_008_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_010_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_008_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_010_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_008_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_010_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_008_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -25130,7 +25074,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -25139,7 +25083,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -25147,7 +25091,7 @@ struct IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -25155,7 +25099,7 @@ struct wow64_IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_010_SetOverlayTexture_params +struct IVROverlay_IVROverlay_008_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -25163,7 +25107,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -25171,21 +25115,21 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_010_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_008_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_008_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_SetOverlayRaw_params +struct IVROverlay_IVROverlay_008_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -25196,7 +25140,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -25207,7 +25151,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_010_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_008_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -25215,7 +25159,7 @@ struct IVROverlay_IVROverlay_010_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_010_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_008_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -25223,7 +25167,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_010_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_008_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25233,7 +25177,7 @@ struct IVROverlay_IVROverlay_010_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_010_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_008_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25243,33 +25187,33 @@ struct wow64_IVROverlay_IVROverlay_010_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_010_IsDashboardVisible_params +struct IVROverlay_IVROverlay_008_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_010_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_008_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_010_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_008_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_010_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_008_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -25277,7 +25221,7 @@ struct IVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -25285,7 +25229,7 @@ struct wow64_IVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -25293,7 +25237,7 @@ struct IVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -25301,31 +25245,19 @@ struct wow64_IVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_010_ShowDashboard_params +struct IVROverlay_IVROverlay_008_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_010_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_008_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_010_GetPrimaryDashboardDevice_params -{ - struct u_iface u_iface; - uint32_t _ret; -}; - -struct wow64_IVROverlay_IVROverlay_010_GetPrimaryDashboardDevice_params -{ - struct u_iface u_iface; - uint32_t _ret; -}; - -struct IVROverlay_IVROverlay_010_ShowKeyboard_params +struct IVROverlay_IVROverlay_008_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -25338,7 +25270,7 @@ struct IVROverlay_IVROverlay_010_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_010_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_008_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -25351,7 +25283,7 @@ struct wow64_IVROverlay_IVROverlay_010_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_010_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_008_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25365,7 +25297,7 @@ struct IVROverlay_IVROverlay_010_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_010_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_008_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25379,7 +25311,7 @@ struct wow64_IVROverlay_IVROverlay_010_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_010_GetKeyboardText_params +struct IVROverlay_IVROverlay_008_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -25387,7 +25319,7 @@ struct IVROverlay_IVROverlay_010_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_010_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_008_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -25395,45 +25327,45 @@ struct wow64_IVROverlay_IVROverlay_010_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_010_HideKeyboard_params +struct IVROverlay_IVROverlay_008_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_010_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_008_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_011_FindOverlay_params +struct IVROverlay_IVROverlay_010_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25441,7 +25373,7 @@ struct IVROverlay_IVROverlay_011_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_010_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25449,7 +25381,7 @@ struct wow64_IVROverlay_IVROverlay_011_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_011_CreateOverlay_params +struct IVROverlay_IVROverlay_010_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25458,7 +25390,7 @@ struct IVROverlay_IVROverlay_011_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_010_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -25467,47 +25399,47 @@ struct wow64_IVROverlay_IVROverlay_011_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_011_DestroyOverlay_params +struct IVROverlay_IVROverlay_010_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_010_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_010_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_010_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_010_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_011_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_010_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_011_GetOverlayKey_params +struct IVROverlay_IVROverlay_010_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -25517,7 +25449,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -25527,7 +25459,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayName_params +struct IVROverlay_IVROverlay_010_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -25537,7 +25469,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -25547,7 +25479,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayImageData_params +struct IVROverlay_IVROverlay_010_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -25558,7 +25490,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -25569,51 +25501,21 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_011_SetOverlayRenderingPid_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t unPID; -}; - -struct wow64_IVROverlay_IVROverlay_011_SetOverlayRenderingPid_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t unPID; -}; - -struct IVROverlay_IVROverlay_011_GetOverlayRenderingPid_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; -}; - -struct wow64_IVROverlay_IVROverlay_011_GetOverlayRenderingPid_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; -}; - -struct IVROverlay_IVROverlay_011_SetOverlayFlag_params +struct IVROverlay_IVROverlay_010_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -25622,7 +25524,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -25631,7 +25533,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_011_GetOverlayFlag_params +struct IVROverlay_IVROverlay_010_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -25640,7 +25542,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -25649,7 +25551,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayColor_params +struct IVROverlay_IVROverlay_010_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -25659,7 +25561,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -25669,7 +25571,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_011_GetOverlayColor_params +struct IVROverlay_IVROverlay_010_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -25679,7 +25581,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -25689,7 +25591,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_011_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_010_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -25697,7 +25599,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -25705,7 +25607,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_011_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_010_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -25713,7 +25615,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -25721,7 +25623,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_011_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_010_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25729,7 +25631,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25737,7 +25639,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_011_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_010_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25745,7 +25647,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25753,7 +25655,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25762,7 +25664,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25771,7 +25673,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25780,7 +25682,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -25789,7 +25691,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_011_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_010_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -25797,7 +25699,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -25805,7 +25707,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_011_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_010_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -25813,7 +25715,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -25821,7 +25723,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_010_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -25829,7 +25731,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -25837,7 +25739,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_010_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -25845,7 +25747,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -25853,7 +25755,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_010_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -25861,7 +25763,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -25869,7 +25771,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_010_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -25878,7 +25780,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -25887,7 +25789,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_010_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -25896,7 +25798,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -25905,7 +25807,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -25914,7 +25816,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -25923,7 +25825,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -25932,7 +25834,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -25941,7 +25843,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -25950,7 +25852,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -25959,7 +25861,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -25969,7 +25871,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -25979,49 +25881,49 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_011_ShowOverlay_params +struct IVROverlay_IVROverlay_010_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_010_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_HideOverlay_params +struct IVROverlay_IVROverlay_010_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_010_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_IsOverlayVisible_params +struct IVROverlay_IVROverlay_010_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_010_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -26031,7 +25933,7 @@ struct IVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -26041,7 +25943,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_011_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_010_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -26050,7 +25952,7 @@ struct IVROverlay_IVROverlay_011_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_011_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_010_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -26059,7 +25961,7 @@ struct wow64_IVROverlay_IVROverlay_011_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_011_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_010_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -26067,7 +25969,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -26075,7 +25977,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_010_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -26083,7 +25985,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -26091,7 +25993,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_011_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_010_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -26099,7 +26001,7 @@ struct IVROverlay_IVROverlay_011_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_010_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -26107,7 +26009,7 @@ struct wow64_IVROverlay_IVROverlay_011_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_011_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_010_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -26115,7 +26017,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -26123,7 +26025,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_011_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_010_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -26132,7 +26034,7 @@ struct IVROverlay_IVROverlay_011_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_011_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_010_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -26141,7 +26043,7 @@ struct wow64_IVROverlay_IVROverlay_011_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -26149,7 +26051,7 @@ struct IVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -26157,47 +26059,47 @@ struct wow64_IVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_011_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_010_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_010_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_010_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_011_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_010_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_011_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_010_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_011_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_010_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_011_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_010_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -26206,7 +26108,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -26215,7 +26117,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -26223,7 +26125,7 @@ struct IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -26231,7 +26133,7 @@ struct wow64_IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_011_SetOverlayTexture_params +struct IVROverlay_IVROverlay_010_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -26239,7 +26141,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -26247,21 +26149,21 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_011_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_010_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_010_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_SetOverlayRaw_params +struct IVROverlay_IVROverlay_010_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -26272,7 +26174,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -26283,7 +26185,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_011_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_010_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -26291,7 +26193,7 @@ struct IVROverlay_IVROverlay_011_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_011_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_010_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -26299,97 +26201,53 @@ struct wow64_IVROverlay_IVROverlay_011_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_011_GetOverlayTexture_params +struct IVROverlay_IVROverlay_010_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; - uint64_t ulOverlayHandle; - void **pNativeTextureHandle; - void *pNativeTextureRef; - uint32_t *pWidth; - uint32_t *pHeight; - uint32_t *pNativeFormat; - uint32_t *pAPI; - uint32_t *pColorSpace; + const char *pchOverlayKey; + const char *pchOverlayFriendlyName; + uint64_t *pMainHandle; + uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_011_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_010_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(void **pNativeTextureHandle, pNativeTextureHandle, void **); - W32_PTR(void *pNativeTextureRef, pNativeTextureRef, void *); - W32_PTR(uint32_t *pWidth, pWidth, uint32_t *); - W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); - W32_PTR(uint32_t *pNativeFormat, pNativeFormat, uint32_t *); - W32_PTR(uint32_t *pAPI, pAPI, uint32_t *); - W32_PTR(uint32_t *pColorSpace, pColorSpace, uint32_t *); + W32_PTR(const char *pchOverlayKey, pchOverlayKey, const char *); + W32_PTR(const char *pchOverlayFriendlyName, pchOverlayFriendlyName, const char *); + W32_PTR(uint64_t *pMainHandle, pMainHandle, uint64_t *); + W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_010_IsDashboardVisible_params { struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - void *pNativeTextureHandle; + int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); -}; - -struct IVROverlay_IVROverlay_011_CreateDashboardOverlay_params -{ - struct u_iface u_iface; - uint32_t _ret; - const char *pchOverlayKey; - const char *pchOverlayFriendlyName; - uint64_t *pMainHandle; - uint64_t *pThumbnailHandle; -}; - -struct wow64_IVROverlay_IVROverlay_011_CreateDashboardOverlay_params -{ - struct u_iface u_iface; - uint32_t _ret; - W32_PTR(const char *pchOverlayKey, pchOverlayKey, const char *); - W32_PTR(const char *pchOverlayFriendlyName, pchOverlayFriendlyName, const char *); - W32_PTR(uint64_t *pMainHandle, pMainHandle, uint64_t *); - W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); -}; - -struct IVROverlay_IVROverlay_011_IsDashboardVisible_params -{ - struct u_iface u_iface; - int8_t _ret; -}; - -struct wow64_IVROverlay_IVROverlay_011_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_010_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_011_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_010_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_011_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_010_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -26397,7 +26255,7 @@ struct IVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -26405,7 +26263,7 @@ struct wow64_IVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -26413,7 +26271,7 @@ struct IVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -26421,31 +26279,31 @@ struct wow64_IVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_011_ShowDashboard_params +struct IVROverlay_IVROverlay_010_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_011_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_010_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_011_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_010_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_011_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_010_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_011_ShowKeyboard_params +struct IVROverlay_IVROverlay_010_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -26458,7 +26316,7 @@ struct IVROverlay_IVROverlay_011_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_011_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_010_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -26471,7 +26329,7 @@ struct wow64_IVROverlay_IVROverlay_011_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_011_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_010_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -26485,7 +26343,7 @@ struct IVROverlay_IVROverlay_011_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_011_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_010_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -26499,7 +26357,7 @@ struct wow64_IVROverlay_IVROverlay_011_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_011_GetKeyboardText_params +struct IVROverlay_IVROverlay_010_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -26507,7 +26365,7 @@ struct IVROverlay_IVROverlay_011_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_011_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_010_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -26515,45 +26373,45 @@ struct wow64_IVROverlay_IVROverlay_011_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_011_HideKeyboard_params +struct IVROverlay_IVROverlay_010_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_011_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_010_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_012_FindOverlay_params +struct IVROverlay_IVROverlay_011_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -26561,7 +26419,7 @@ struct IVROverlay_IVROverlay_012_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_011_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -26569,7 +26427,7 @@ struct wow64_IVROverlay_IVROverlay_012_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_012_CreateOverlay_params +struct IVROverlay_IVROverlay_011_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -26578,7 +26436,7 @@ struct IVROverlay_IVROverlay_012_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_011_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -26587,47 +26445,47 @@ struct wow64_IVROverlay_IVROverlay_012_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_012_DestroyOverlay_params +struct IVROverlay_IVROverlay_011_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_011_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_011_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_011_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_011_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_012_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_011_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_012_GetOverlayKey_params +struct IVROverlay_IVROverlay_011_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -26637,7 +26495,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -26647,7 +26505,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayName_params +struct IVROverlay_IVROverlay_011_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -26657,7 +26515,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -26667,7 +26525,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayImageData_params +struct IVROverlay_IVROverlay_011_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -26678,7 +26536,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -26689,21 +26547,21 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_012_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_011_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -26711,7 +26569,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -26719,21 +26577,21 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_012_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_011_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_SetOverlayFlag_params +struct IVROverlay_IVROverlay_011_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -26742,7 +26600,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -26751,7 +26609,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_012_GetOverlayFlag_params +struct IVROverlay_IVROverlay_011_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -26760,7 +26618,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -26769,7 +26627,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayColor_params +struct IVROverlay_IVROverlay_011_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -26779,7 +26637,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -26789,7 +26647,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_012_GetOverlayColor_params +struct IVROverlay_IVROverlay_011_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -26799,7 +26657,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -26809,7 +26667,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_012_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_011_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -26817,7 +26675,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -26825,7 +26683,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_012_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_011_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -26833,7 +26691,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -26841,7 +26699,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_012_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_011_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26849,7 +26707,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26857,7 +26715,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_012_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_011_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26865,7 +26723,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26873,7 +26731,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26882,7 +26740,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26891,7 +26749,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26900,7 +26758,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -26909,7 +26767,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_012_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_011_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -26917,7 +26775,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -26925,7 +26783,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_012_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_011_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -26933,7 +26791,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -26941,7 +26799,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_011_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -26949,7 +26807,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -26957,7 +26815,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_011_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -26965,7 +26823,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -26973,7 +26831,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_011_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -26981,7 +26839,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -26989,7 +26847,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_011_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -26998,7 +26856,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -27007,7 +26865,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_011_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -27016,7 +26874,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -27025,7 +26883,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -27034,7 +26892,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -27043,7 +26901,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -27052,7 +26910,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -27061,7 +26919,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -27070,7 +26928,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -27079,7 +26937,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -27089,7 +26947,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -27099,49 +26957,49 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_012_ShowOverlay_params +struct IVROverlay_IVROverlay_011_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_011_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_HideOverlay_params +struct IVROverlay_IVROverlay_011_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_011_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_IsOverlayVisible_params +struct IVROverlay_IVROverlay_011_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_011_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -27151,7 +27009,7 @@ struct IVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -27161,25 +27019,25 @@ struct wow64_IVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_012_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_011_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_101 *pEvent; + w_VREvent_t_0918 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_012_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_011_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_101 *pEvent, pEvent, w32_VREvent_t_101 *); + W32_PTR(w32_VREvent_t_0918 *pEvent, pEvent, w32_VREvent_t_0918 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_012_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_011_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -27187,7 +27045,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -27195,7 +27053,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_011_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -27203,7 +27061,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -27211,7 +27069,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_012_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_011_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -27219,7 +27077,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -27227,7 +27085,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_012_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_011_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -27235,7 +27093,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -27243,7 +27101,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_012_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_011_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -27252,7 +27110,7 @@ struct IVROverlay_IVROverlay_012_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_012_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_011_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -27261,7 +27119,7 @@ struct wow64_IVROverlay_IVROverlay_012_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -27269,7 +27127,7 @@ struct IVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -27277,47 +27135,47 @@ struct wow64_IVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_012_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_011_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_011_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_011_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_012_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_011_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_012_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_011_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_012_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_011_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_012_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_011_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -27326,7 +27184,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -27335,7 +27193,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -27343,7 +27201,7 @@ struct IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -27351,7 +27209,7 @@ struct wow64_IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_012_SetOverlayTexture_params +struct IVROverlay_IVROverlay_011_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -27359,7 +27217,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -27367,21 +27225,21 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_012_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_011_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_011_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_SetOverlayRaw_params +struct IVROverlay_IVROverlay_011_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -27392,7 +27250,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -27403,7 +27261,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_012_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_011_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -27411,7 +27269,7 @@ struct IVROverlay_IVROverlay_012_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_012_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_011_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -27419,7 +27277,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTexture_params +struct IVROverlay_IVROverlay_011_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -27433,7 +27291,7 @@ struct IVROverlay_IVROverlay_012_GetOverlayTexture_params uint32_t *pColorSpace; }; -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_011_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -27447,7 +27305,7 @@ struct wow64_IVROverlay_IVROverlay_012_GetOverlayTexture_params W32_PTR(uint32_t *pColorSpace, pColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -27455,7 +27313,7 @@ struct IVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -27463,25 +27321,7 @@ struct wow64_IVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_012_GetOverlayTextureSize_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t *pWidth; - uint32_t *pHeight; -}; - -struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureSize_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(uint32_t *pWidth, pWidth, uint32_t *); - W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); -}; - -struct IVROverlay_IVROverlay_012_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_011_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27491,7 +27331,7 @@ struct IVROverlay_IVROverlay_012_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_012_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_011_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27501,33 +27341,33 @@ struct wow64_IVROverlay_IVROverlay_012_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_012_IsDashboardVisible_params +struct IVROverlay_IVROverlay_011_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_012_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_011_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_012_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_011_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_012_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_011_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -27535,7 +27375,7 @@ struct IVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -27543,7 +27383,7 @@ struct wow64_IVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -27551,7 +27391,7 @@ struct IVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -27559,31 +27399,31 @@ struct wow64_IVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_012_ShowDashboard_params +struct IVROverlay_IVROverlay_011_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_012_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_011_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_012_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_011_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_012_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_011_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_012_ShowKeyboard_params +struct IVROverlay_IVROverlay_011_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -27596,7 +27436,7 @@ struct IVROverlay_IVROverlay_012_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_012_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_011_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -27609,7 +27449,7 @@ struct wow64_IVROverlay_IVROverlay_012_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_012_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_011_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27623,7 +27463,7 @@ struct IVROverlay_IVROverlay_012_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_012_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_011_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27637,7 +27477,7 @@ struct wow64_IVROverlay_IVROverlay_012_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_012_GetKeyboardText_params +struct IVROverlay_IVROverlay_011_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -27645,7 +27485,7 @@ struct IVROverlay_IVROverlay_012_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_012_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_011_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -27653,45 +27493,45 @@ struct wow64_IVROverlay_IVROverlay_012_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_012_HideKeyboard_params +struct IVROverlay_IVROverlay_011_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_012_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_011_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_013_FindOverlay_params +struct IVROverlay_IVROverlay_012_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27699,7 +27539,7 @@ struct IVROverlay_IVROverlay_013_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_012_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27707,7 +27547,7 @@ struct wow64_IVROverlay_IVROverlay_013_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_013_CreateOverlay_params +struct IVROverlay_IVROverlay_012_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27716,7 +27556,7 @@ struct IVROverlay_IVROverlay_013_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_012_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -27725,47 +27565,47 @@ struct wow64_IVROverlay_IVROverlay_013_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_013_DestroyOverlay_params +struct IVROverlay_IVROverlay_012_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_012_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_012_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_012_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_012_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_013_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_012_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_013_GetOverlayKey_params +struct IVROverlay_IVROverlay_012_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -27775,7 +27615,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -27785,7 +27625,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_013_GetOverlayName_params +struct IVROverlay_IVROverlay_012_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -27795,7 +27635,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -27805,7 +27645,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_013_GetOverlayImageData_params +struct IVROverlay_IVROverlay_012_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -27816,7 +27656,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -27827,21 +27667,21 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_013_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_012_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -27849,7 +27689,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -27857,21 +27697,21 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_013_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_012_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_SetOverlayFlag_params +struct IVROverlay_IVROverlay_012_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -27880,7 +27720,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -27889,7 +27729,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_013_GetOverlayFlag_params +struct IVROverlay_IVROverlay_012_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -27898,7 +27738,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -27907,7 +27747,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayColor_params +struct IVROverlay_IVROverlay_012_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -27917,7 +27757,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -27927,7 +27767,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_013_GetOverlayColor_params +struct IVROverlay_IVROverlay_012_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -27937,7 +27777,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -27947,7 +27787,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_013_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_012_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -27955,7 +27795,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -27963,7 +27803,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_013_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_012_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -27971,7 +27811,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -27979,211 +27819,147 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_013_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_012_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fTexelAspect; + float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fTexelAspect; + float fWidthInMeters; }; -struct IVROverlay_IVROverlay_013_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_012_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float *pfTexelAspect; + float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); + W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_013_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t unSortOrder; + float fMinDistanceInMeters; + float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t unSortOrder; + float fMinDistanceInMeters; + float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_013_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t *punSortOrder; + float *pfMinDistanceInMeters; + float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); + W32_PTR(float *pfMinDistanceInMeters, pfMinDistanceInMeters, float *); + W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_013_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_012_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fWidthInMeters; + uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fWidthInMeters; + uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_013_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_012_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float *pfWidthInMeters; + uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); + W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_012_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fMinDistanceInMeters; - float fMaxDistanceInMeters; + const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fMinDistanceInMeters; - float fMaxDistanceInMeters; + W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_012_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float *pfMinDistanceInMeters; - float *pfMaxDistanceInMeters; + VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(float *pfMinDistanceInMeters, pfMinDistanceInMeters, float *); - W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); + W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_012_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint32_t eTextureColorSpace; + uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTextureColorSpace_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t eTextureColorSpace; -}; - -struct IVROverlay_IVROverlay_013_GetOverlayTextureColorSpace_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t *peTextureColorSpace; -}; - -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureColorSpace_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); -}; - -struct IVROverlay_IVROverlay_013_SetOverlayTextureBounds_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - const VRTextureBounds_t *pOverlayTextureBounds; -}; - -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTextureBounds_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); -}; - -struct IVROverlay_IVROverlay_013_GetOverlayTextureBounds_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - VRTextureBounds_t *pOverlayTextureBounds; -}; - -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureBounds_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); -}; - -struct IVROverlay_IVROverlay_013_GetOverlayTransformType_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t *peTransformType; -}; - -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -28191,7 +27967,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_012_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -28200,7 +27976,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -28209,7 +27985,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_013_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_012_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -28218,7 +27994,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -28227,7 +28003,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -28236,7 +28012,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -28245,7 +28021,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -28254,7 +28030,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -28263,7 +28039,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -28272,7 +28048,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -28281,7 +28057,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -28291,7 +28067,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -28301,49 +28077,49 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_013_ShowOverlay_params +struct IVROverlay_IVROverlay_012_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_012_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_HideOverlay_params +struct IVROverlay_IVROverlay_012_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_012_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_IsOverlayVisible_params +struct IVROverlay_IVROverlay_012_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_012_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -28353,7 +28129,7 @@ struct IVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -28363,25 +28139,25 @@ struct wow64_IVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_013_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_012_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_103 *pEvent; + w_VREvent_t_101 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_013_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_012_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_103 *pEvent, pEvent, w32_VREvent_t_103 *); + W32_PTR(w32_VREvent_t_101 *pEvent, pEvent, w32_VREvent_t_101 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_013_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_012_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -28389,7 +28165,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -28397,7 +28173,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_012_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -28405,7 +28181,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -28413,7 +28189,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_013_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_012_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -28421,7 +28197,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -28429,7 +28205,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_013_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_012_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -28437,7 +28213,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -28445,7 +28221,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_013_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_012_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -28454,7 +28230,7 @@ struct IVROverlay_IVROverlay_013_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_013_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_012_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -28463,7 +28239,7 @@ struct wow64_IVROverlay_IVROverlay_013_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -28471,7 +28247,7 @@ struct IVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -28479,47 +28255,47 @@ struct wow64_IVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_013_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_012_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_012_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_012_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_013_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_012_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_013_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_012_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_013_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_012_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_013_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_012_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -28528,7 +28304,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -28537,7 +28313,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -28545,7 +28321,7 @@ struct IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -28553,7 +28329,7 @@ struct wow64_IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_013_SetOverlayTexture_params +struct IVROverlay_IVROverlay_012_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -28561,7 +28337,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -28569,21 +28345,21 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_013_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_012_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_012_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_SetOverlayRaw_params +struct IVROverlay_IVROverlay_012_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -28594,7 +28370,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -28605,7 +28381,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_013_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_012_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -28613,7 +28389,7 @@ struct IVROverlay_IVROverlay_013_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_013_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_012_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -28621,7 +28397,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_013_GetOverlayTexture_params +struct IVROverlay_IVROverlay_012_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -28635,7 +28411,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayTexture_params uint32_t *pColorSpace; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -28649,7 +28425,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayTexture_params W32_PTR(uint32_t *pColorSpace, pColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -28657,7 +28433,7 @@ struct IVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -28665,7 +28441,7 @@ struct wow64_IVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_013_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_012_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -28674,7 +28450,7 @@ struct IVROverlay_IVROverlay_013_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_012_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -28683,7 +28459,7 @@ struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_013_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_012_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28693,7 +28469,7 @@ struct IVROverlay_IVROverlay_013_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_013_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_012_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28703,33 +28479,33 @@ struct wow64_IVROverlay_IVROverlay_013_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_013_IsDashboardVisible_params +struct IVROverlay_IVROverlay_012_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_013_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_012_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_013_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_012_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_013_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_012_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -28737,7 +28513,7 @@ struct IVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -28745,7 +28521,7 @@ struct wow64_IVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -28753,7 +28529,7 @@ struct IVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -28761,31 +28537,31 @@ struct wow64_IVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_013_ShowDashboard_params +struct IVROverlay_IVROverlay_012_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_013_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_012_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_013_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_012_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_013_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_012_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_013_ShowKeyboard_params +struct IVROverlay_IVROverlay_012_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -28798,7 +28574,7 @@ struct IVROverlay_IVROverlay_013_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_013_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_012_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -28811,7 +28587,7 @@ struct wow64_IVROverlay_IVROverlay_013_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_013_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_012_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28825,7 +28601,7 @@ struct IVROverlay_IVROverlay_013_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_013_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_012_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28839,7 +28615,7 @@ struct wow64_IVROverlay_IVROverlay_013_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_013_GetKeyboardText_params +struct IVROverlay_IVROverlay_012_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -28847,7 +28623,7 @@ struct IVROverlay_IVROverlay_013_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_013_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_012_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -28855,65 +28631,45 @@ struct wow64_IVROverlay_IVROverlay_013_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_013_HideKeyboard_params +struct IVROverlay_IVROverlay_012_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_013_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_012_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_013_SetOverlayIntersectionMask_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives; - uint32_t unNumMaskPrimitives; - uint32_t unPrimitiveSize; -}; - -struct wow64_IVROverlay_IVROverlay_013_SetOverlayIntersectionMask_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives, pMaskPrimitives, VROverlayIntersectionMaskPrimitive_t *); - uint32_t unNumMaskPrimitives; - uint32_t unPrimitiveSize; -}; - -struct IVROverlay_IVROverlay_014_FindOverlay_params +struct IVROverlay_IVROverlay_013_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28921,7 +28677,7 @@ struct IVROverlay_IVROverlay_014_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_013_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28929,7 +28685,7 @@ struct wow64_IVROverlay_IVROverlay_014_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_014_CreateOverlay_params +struct IVROverlay_IVROverlay_013_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28938,7 +28694,7 @@ struct IVROverlay_IVROverlay_014_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_013_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -28947,47 +28703,47 @@ struct wow64_IVROverlay_IVROverlay_014_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_014_DestroyOverlay_params +struct IVROverlay_IVROverlay_013_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_013_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_013_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_013_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_013_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_014_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_013_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_014_GetOverlayKey_params +struct IVROverlay_IVROverlay_013_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -28997,7 +28753,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -29007,7 +28763,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayName_params +struct IVROverlay_IVROverlay_013_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -29017,7 +28773,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -29027,7 +28783,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayImageData_params +struct IVROverlay_IVROverlay_013_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -29038,7 +28794,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -29049,21 +28805,21 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_014_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_013_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -29071,7 +28827,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -29079,21 +28835,21 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_014_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_013_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_SetOverlayFlag_params +struct IVROverlay_IVROverlay_013_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -29102,7 +28858,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -29111,7 +28867,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_014_GetOverlayFlag_params +struct IVROverlay_IVROverlay_013_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -29120,7 +28876,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -29129,7 +28885,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayColor_params +struct IVROverlay_IVROverlay_013_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -29139,7 +28895,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -29149,7 +28905,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_014_GetOverlayColor_params +struct IVROverlay_IVROverlay_013_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -29159,7 +28915,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -29169,7 +28925,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_014_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_013_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -29177,7 +28933,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -29185,7 +28941,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_014_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_013_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -29193,7 +28949,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -29201,7 +28957,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_014_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_013_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -29209,7 +28965,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -29217,7 +28973,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_014_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_013_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -29225,7 +28981,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -29233,7 +28989,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_014_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_013_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -29241,7 +28997,7 @@ struct IVROverlay_IVROverlay_014_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -29249,7 +29005,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_014_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_013_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -29257,7 +29013,7 @@ struct IVROverlay_IVROverlay_014_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -29265,7 +29021,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_013_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29273,7 +29029,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29281,7 +29037,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_014_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_013_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29289,7 +29045,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29297,7 +29053,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29306,7 +29062,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29315,7 +29071,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29324,7 +29080,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -29333,7 +29089,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_014_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_013_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -29341,7 +29097,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -29349,7 +29105,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_014_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_013_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -29357,7 +29113,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -29365,7 +29121,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_013_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -29373,7 +29129,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -29381,7 +29137,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_013_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -29389,7 +29145,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -29397,7 +29153,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_013_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -29405,7 +29161,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -29413,7 +29169,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_013_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -29422,7 +29178,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -29431,7 +29187,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_013_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -29440,7 +29196,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -29449,7 +29205,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -29458,7 +29214,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -29467,7 +29223,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -29476,7 +29232,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -29485,7 +29241,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -29494,7 +29250,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -29503,7 +29259,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -29513,7 +29269,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -29523,49 +29279,49 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_014_ShowOverlay_params +struct IVROverlay_IVROverlay_013_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_013_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_HideOverlay_params +struct IVROverlay_IVROverlay_013_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_013_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_IsOverlayVisible_params +struct IVROverlay_IVROverlay_013_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_013_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -29575,7 +29331,7 @@ struct IVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -29585,25 +29341,25 @@ struct wow64_IVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_014_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_013_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_106 *pEvent; + w_VREvent_t_103 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_014_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_013_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_106 *pEvent, pEvent, w32_VREvent_t_106 *); + W32_PTR(w32_VREvent_t_103 *pEvent, pEvent, w32_VREvent_t_103 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_014_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_013_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -29611,7 +29367,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -29619,7 +29375,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_013_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -29627,7 +29383,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -29635,7 +29391,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_014_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_013_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -29643,7 +29399,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -29651,7 +29407,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_014_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_013_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -29659,7 +29415,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -29667,7 +29423,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_014_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_013_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -29676,7 +29432,7 @@ struct IVROverlay_IVROverlay_014_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_014_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_013_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -29685,7 +29441,7 @@ struct wow64_IVROverlay_IVROverlay_014_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -29693,7 +29449,7 @@ struct IVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -29701,47 +29457,47 @@ struct wow64_IVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_014_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_013_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_013_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_013_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_014_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_013_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_014_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_013_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_014_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_013_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_014_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_013_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -29750,7 +29506,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -29759,7 +29515,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -29767,7 +29523,7 @@ struct IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -29775,7 +29531,7 @@ struct wow64_IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_014_SetOverlayTexture_params +struct IVROverlay_IVROverlay_013_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -29783,7 +29539,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -29791,21 +29547,21 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_014_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_013_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_013_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_SetOverlayRaw_params +struct IVROverlay_IVROverlay_013_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -29816,7 +29572,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -29827,7 +29583,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_014_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_013_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -29835,7 +29591,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -29843,7 +29599,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTexture_params +struct IVROverlay_IVROverlay_013_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -29853,12 +29609,11 @@ struct IVROverlay_IVROverlay_014_GetOverlayTexture_params uint32_t *pWidth; uint32_t *pHeight; uint32_t *pNativeFormat; - uint32_t *pAPIType; + uint32_t *pAPI; uint32_t *pColorSpace; - VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -29868,12 +29623,11 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTexture_params W32_PTR(uint32_t *pWidth, pWidth, uint32_t *); W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); W32_PTR(uint32_t *pNativeFormat, pNativeFormat, uint32_t *); - W32_PTR(uint32_t *pAPIType, pAPIType, uint32_t *); + W32_PTR(uint32_t *pAPI, pAPI, uint32_t *); W32_PTR(uint32_t *pColorSpace, pColorSpace, uint32_t *); - W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -29881,7 +29635,7 @@ struct IVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -29889,7 +29643,7 @@ struct wow64_IVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_014_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_013_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -29898,7 +29652,7 @@ struct IVROverlay_IVROverlay_014_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_013_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -29907,7 +29661,7 @@ struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_014_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_013_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -29917,7 +29671,7 @@ struct IVROverlay_IVROverlay_014_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_014_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_013_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -29927,33 +29681,33 @@ struct wow64_IVROverlay_IVROverlay_014_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_014_IsDashboardVisible_params +struct IVROverlay_IVROverlay_013_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_014_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_013_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_014_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_013_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_014_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_013_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -29961,7 +29715,7 @@ struct IVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -29969,7 +29723,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -29977,7 +29731,7 @@ struct IVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -29985,31 +29739,31 @@ struct wow64_IVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_014_ShowDashboard_params +struct IVROverlay_IVROverlay_013_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_014_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_013_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_014_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_013_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_014_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_013_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_014_ShowKeyboard_params +struct IVROverlay_IVROverlay_013_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -30022,7 +29776,7 @@ struct IVROverlay_IVROverlay_014_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_014_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_013_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -30035,7 +29789,7 @@ struct wow64_IVROverlay_IVROverlay_014_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_014_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_013_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -30049,7 +29803,7 @@ struct IVROverlay_IVROverlay_014_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_014_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_013_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -30063,7 +29817,7 @@ struct wow64_IVROverlay_IVROverlay_014_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_014_GetKeyboardText_params +struct IVROverlay_IVROverlay_013_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -30071,7 +29825,7 @@ struct IVROverlay_IVROverlay_014_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_014_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_013_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -30079,45 +29833,45 @@ struct wow64_IVROverlay_IVROverlay_014_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_014_HideKeyboard_params +struct IVROverlay_IVROverlay_013_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_014_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_013_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_014_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_013_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -30127,7 +29881,7 @@ struct IVROverlay_IVROverlay_014_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_014_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_013_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -30137,47 +29891,7 @@ struct wow64_IVROverlay_IVROverlay_014_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_014_GetOverlayFlags_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t *pFlags; -}; - -struct wow64_IVROverlay_IVROverlay_014_GetOverlayFlags_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); -}; - -struct IVROverlay_IVROverlay_014_ShowMessageOverlay_params -{ - struct u_iface u_iface; - uint32_t _ret; - const char *pchText; - const char *pchCaption; - const char *pchButton0Text; - const char *pchButton1Text; - const char *pchButton2Text; - const char *pchButton3Text; -}; - -struct wow64_IVROverlay_IVROverlay_014_ShowMessageOverlay_params -{ - struct u_iface u_iface; - uint32_t _ret; - W32_PTR(const char *pchText, pchText, const char *); - W32_PTR(const char *pchCaption, pchCaption, const char *); - W32_PTR(const char *pchButton0Text, pchButton0Text, const char *); - W32_PTR(const char *pchButton1Text, pchButton1Text, const char *); - W32_PTR(const char *pchButton2Text, pchButton2Text, const char *); - W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); -}; - -struct IVROverlay_IVROverlay_016_FindOverlay_params +struct IVROverlay_IVROverlay_014_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -30185,7 +29899,7 @@ struct IVROverlay_IVROverlay_016_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_014_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -30193,65 +29907,65 @@ struct wow64_IVROverlay_IVROverlay_016_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_016_CreateOverlay_params +struct IVROverlay_IVROverlay_014_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; const char *pchOverlayKey; - const char *pchOverlayName; + const char *pchOverlayFriendlyName; uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_014_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; W32_PTR(const char *pchOverlayKey, pchOverlayKey, const char *); - W32_PTR(const char *pchOverlayName, pchOverlayName, const char *); + W32_PTR(const char *pchOverlayFriendlyName, pchOverlayFriendlyName, const char *); W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_016_DestroyOverlay_params +struct IVROverlay_IVROverlay_014_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_014_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_014_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_014_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_014_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_016_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_014_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_016_GetOverlayKey_params +struct IVROverlay_IVROverlay_014_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -30261,7 +29975,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -30271,7 +29985,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_016_GetOverlayName_params +struct IVROverlay_IVROverlay_014_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -30281,7 +29995,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -30291,23 +30005,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayName_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - const char *pchName; -}; - -struct wow64_IVROverlay_IVROverlay_016_SetOverlayName_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(const char *pchName, pchName, const char *); -}; - -struct IVROverlay_IVROverlay_016_GetOverlayImageData_params +struct IVROverlay_IVROverlay_014_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -30318,7 +30016,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -30329,21 +30027,21 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_016_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_014_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -30351,7 +30049,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -30359,21 +30057,21 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_016_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_014_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_SetOverlayFlag_params +struct IVROverlay_IVROverlay_014_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -30382,7 +30080,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -30391,7 +30089,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_016_GetOverlayFlag_params +struct IVROverlay_IVROverlay_014_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -30400,7 +30098,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -30409,7 +30107,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayColor_params +struct IVROverlay_IVROverlay_014_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -30419,7 +30117,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -30429,7 +30127,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_016_GetOverlayColor_params +struct IVROverlay_IVROverlay_014_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -30439,7 +30137,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -30449,7 +30147,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_016_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_014_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -30457,7 +30155,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -30465,7 +30163,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_016_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_014_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -30473,7 +30171,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -30481,7 +30179,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_016_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_014_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -30489,7 +30187,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -30497,7 +30195,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_016_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_014_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -30505,7 +30203,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -30513,7 +30211,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_016_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_014_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -30521,7 +30219,7 @@ struct IVROverlay_IVROverlay_016_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -30529,7 +30227,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_016_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_014_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -30537,7 +30235,7 @@ struct IVROverlay_IVROverlay_016_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -30545,7 +30243,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_014_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30553,7 +30251,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30561,7 +30259,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_016_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_014_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30569,7 +30267,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30577,7 +30275,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30586,7 +30284,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30595,7 +30293,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30604,7 +30302,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -30613,7 +30311,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_016_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_014_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -30621,7 +30319,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -30629,7 +30327,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_016_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_014_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -30637,7 +30335,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -30645,7 +30343,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_014_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -30653,7 +30351,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -30661,7 +30359,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_016_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_014_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -30669,7 +30367,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -30677,47 +30375,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_016_GetOverlayRenderModel_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - char *pchValue; - uint32_t unBufferSize; - HmdColor_t *pColor; - uint32_t *pError; -}; - -struct wow64_IVROverlay_IVROverlay_016_GetOverlayRenderModel_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(char *pchValue, pchValue, char *); - uint32_t unBufferSize; - W32_PTR(HmdColor_t *pColor, pColor, HmdColor_t *); - W32_PTR(uint32_t *pError, pError, uint32_t *); -}; - -struct IVROverlay_IVROverlay_016_SetOverlayRenderModel_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - const char *pchRenderModel; - const HmdColor_t *pColor; -}; - -struct wow64_IVROverlay_IVROverlay_016_SetOverlayRenderModel_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(const char *pchRenderModel, pchRenderModel, const char *); - W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); -}; - -struct IVROverlay_IVROverlay_016_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_014_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -30725,7 +30383,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -30733,7 +30391,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_014_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -30742,7 +30400,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -30751,7 +30409,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_016_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_014_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -30760,7 +30418,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -30769,7 +30427,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -30778,7 +30436,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -30787,7 +30445,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -30796,7 +30454,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -30805,7 +30463,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -30814,7 +30472,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -30823,7 +30481,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -30833,7 +30491,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -30843,85 +30501,49 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint64_t *ulOverlayHandleParent; - HmdMatrix34_t *pmatParentOverlayToOverlayTransform; -}; - -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(uint64_t *ulOverlayHandleParent, ulOverlayHandleParent, uint64_t *); - W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); -}; - -struct IVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint64_t ulOverlayHandleParent; - const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; -}; - -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint64_t ulOverlayHandleParent; - W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); -}; - -struct IVROverlay_IVROverlay_016_ShowOverlay_params +struct IVROverlay_IVROverlay_014_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_014_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_HideOverlay_params +struct IVROverlay_IVROverlay_014_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_014_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_IsOverlayVisible_params +struct IVROverlay_IVROverlay_014_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_014_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -30931,7 +30553,7 @@ struct IVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -30941,7 +30563,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_016_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_014_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -30950,7 +30572,7 @@ struct IVROverlay_IVROverlay_016_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_016_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_014_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -30959,7 +30581,7 @@ struct wow64_IVROverlay_IVROverlay_016_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_016_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_014_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -30967,7 +30589,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -30975,7 +30597,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_014_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -30983,7 +30605,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -30991,7 +30613,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_016_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_014_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -30999,7 +30621,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -31007,7 +30629,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_016_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_014_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -31015,7 +30637,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -31023,7 +30645,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_016_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_014_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -31032,7 +30654,7 @@ struct IVROverlay_IVROverlay_016_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_016_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_014_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -31041,7 +30663,7 @@ struct wow64_IVROverlay_IVROverlay_016_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -31049,7 +30671,7 @@ struct IVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -31057,47 +30679,47 @@ struct wow64_IVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_016_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_014_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_014_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_014_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_016_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_014_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_016_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_014_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_016_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_014_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_016_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_014_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -31106,7 +30728,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -31115,7 +30737,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -31123,7 +30745,7 @@ struct IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -31131,7 +30753,7 @@ struct wow64_IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_016_SetOverlayTexture_params +struct IVROverlay_IVROverlay_014_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -31139,7 +30761,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -31147,21 +30769,21 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_016_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_014_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_014_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_SetOverlayRaw_params +struct IVROverlay_IVROverlay_014_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -31172,7 +30794,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -31183,7 +30805,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_016_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_014_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -31191,7 +30813,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -31199,7 +30821,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_016_GetOverlayTexture_params +struct IVROverlay_IVROverlay_014_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -31214,7 +30836,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -31229,7 +30851,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -31237,7 +30859,7 @@ struct IVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -31245,7 +30867,7 @@ struct wow64_IVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_016_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_014_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -31254,7 +30876,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -31263,7 +30885,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_016_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_014_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31273,7 +30895,7 @@ struct IVROverlay_IVROverlay_016_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_016_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_014_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31283,33 +30905,33 @@ struct wow64_IVROverlay_IVROverlay_016_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_016_IsDashboardVisible_params +struct IVROverlay_IVROverlay_014_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_016_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_014_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_016_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_014_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_016_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_014_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -31317,7 +30939,7 @@ struct IVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -31325,7 +30947,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -31333,7 +30955,7 @@ struct IVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -31341,31 +30963,31 @@ struct wow64_IVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_016_ShowDashboard_params +struct IVROverlay_IVROverlay_014_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_016_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_014_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_016_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_014_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_016_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_014_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_016_ShowKeyboard_params +struct IVROverlay_IVROverlay_014_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -31378,7 +31000,7 @@ struct IVROverlay_IVROverlay_016_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_016_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_014_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -31391,7 +31013,7 @@ struct wow64_IVROverlay_IVROverlay_016_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_016_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_014_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31405,7 +31027,7 @@ struct IVROverlay_IVROverlay_016_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_016_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_014_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31419,7 +31041,7 @@ struct wow64_IVROverlay_IVROverlay_016_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_016_GetKeyboardText_params +struct IVROverlay_IVROverlay_014_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -31427,7 +31049,7 @@ struct IVROverlay_IVROverlay_016_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_016_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_014_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -31435,45 +31057,45 @@ struct wow64_IVROverlay_IVROverlay_016_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_016_HideKeyboard_params +struct IVROverlay_IVROverlay_014_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_016_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_014_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_016_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_014_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -31483,7 +31105,7 @@ struct IVROverlay_IVROverlay_016_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_016_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_014_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -31493,7 +31115,7 @@ struct wow64_IVROverlay_IVROverlay_016_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_016_GetOverlayFlags_params +struct IVROverlay_IVROverlay_014_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -31501,7 +31123,7 @@ struct IVROverlay_IVROverlay_016_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_016_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_014_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -31509,7 +31131,7 @@ struct wow64_IVROverlay_IVROverlay_016_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_016_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_014_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31521,7 +31143,7 @@ struct IVROverlay_IVROverlay_016_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_016_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_014_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31533,17 +31155,7 @@ struct wow64_IVROverlay_IVROverlay_016_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_016_CloseMessageOverlay_params -{ - struct u_iface u_iface; -}; - -struct wow64_IVROverlay_IVROverlay_016_CloseMessageOverlay_params -{ - struct u_iface u_iface; -}; - -struct IVROverlay_IVROverlay_017_FindOverlay_params +struct IVROverlay_IVROverlay_016_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31551,7 +31163,7 @@ struct IVROverlay_IVROverlay_017_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_016_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31559,7 +31171,7 @@ struct wow64_IVROverlay_IVROverlay_017_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_017_CreateOverlay_params +struct IVROverlay_IVROverlay_016_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31568,7 +31180,7 @@ struct IVROverlay_IVROverlay_017_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_016_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -31577,47 +31189,47 @@ struct wow64_IVROverlay_IVROverlay_017_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_017_DestroyOverlay_params +struct IVROverlay_IVROverlay_016_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_016_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_016_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_016_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_016_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_017_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_016_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_017_GetOverlayKey_params +struct IVROverlay_IVROverlay_016_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -31627,7 +31239,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -31637,7 +31249,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayName_params +struct IVROverlay_IVROverlay_016_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -31647,7 +31259,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -31657,7 +31269,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayName_params +struct IVROverlay_IVROverlay_016_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -31665,7 +31277,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -31673,7 +31285,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_017_GetOverlayImageData_params +struct IVROverlay_IVROverlay_016_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -31684,7 +31296,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -31695,21 +31307,21 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_017_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_016_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -31717,7 +31329,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -31725,21 +31337,21 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_017_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_016_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_SetOverlayFlag_params +struct IVROverlay_IVROverlay_016_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -31748,7 +31360,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -31757,7 +31369,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_017_GetOverlayFlag_params +struct IVROverlay_IVROverlay_016_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -31766,7 +31378,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -31775,7 +31387,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayColor_params +struct IVROverlay_IVROverlay_016_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -31785,7 +31397,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -31795,7 +31407,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_017_GetOverlayColor_params +struct IVROverlay_IVROverlay_016_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -31805,7 +31417,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -31815,7 +31427,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_017_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_016_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -31823,7 +31435,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -31831,7 +31443,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_017_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_016_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -31839,7 +31451,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -31847,7 +31459,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_016_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -31855,7 +31467,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -31863,7 +31475,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_017_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_016_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -31871,7 +31483,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -31879,7 +31491,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_017_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_016_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -31887,7 +31499,7 @@ struct IVROverlay_IVROverlay_017_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -31895,7 +31507,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_017_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_016_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -31903,7 +31515,7 @@ struct IVROverlay_IVROverlay_017_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -31911,7 +31523,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_016_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31919,7 +31531,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31927,7 +31539,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_017_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_016_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31935,7 +31547,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31943,7 +31555,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31952,7 +31564,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31961,7 +31573,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31970,7 +31582,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -31979,7 +31591,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_016_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -31987,7 +31599,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -31995,7 +31607,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_017_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_016_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -32003,7 +31615,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -32011,7 +31623,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_016_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -32019,7 +31631,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -32027,7 +31639,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_016_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -32035,7 +31647,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -32043,7 +31655,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayRenderModel_params +struct IVROverlay_IVROverlay_016_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -32054,7 +31666,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayRenderModel_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -32065,7 +31677,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayRenderModel_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayRenderModel_params +struct IVROverlay_IVROverlay_016_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -32074,7 +31686,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayRenderModel_params const HmdColor_t *pColor; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -32083,7 +31695,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayRenderModel_params W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_016_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -32091,7 +31703,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -32099,7 +31711,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_016_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -32108,7 +31720,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -32117,7 +31729,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_016_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -32126,7 +31738,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -32135,7 +31747,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32144,7 +31756,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32153,7 +31765,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32162,7 +31774,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32171,7 +31783,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -32180,7 +31792,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -32189,7 +31801,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -32199,7 +31811,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -32209,7 +31821,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32218,7 +31830,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32227,7 +31839,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32236,7 +31848,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -32245,49 +31857,49 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_ShowOverlay_params +struct IVROverlay_IVROverlay_016_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_016_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_HideOverlay_params +struct IVROverlay_IVROverlay_016_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_016_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_IsOverlayVisible_params +struct IVROverlay_IVROverlay_016_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_016_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -32297,7 +31909,7 @@ struct IVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -32307,25 +31919,25 @@ struct wow64_IVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_016_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_1011 *pEvent; + w_VREvent_t_106 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_017_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_016_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_1011 *pEvent, pEvent, w32_VREvent_t_1011 *); + W32_PTR(w32_VREvent_t_106 *pEvent, pEvent, w32_VREvent_t_106 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_017_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_016_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -32333,7 +31945,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -32341,7 +31953,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_016_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -32349,7 +31961,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -32357,7 +31969,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_017_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_016_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -32365,7 +31977,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -32373,7 +31985,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_017_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_016_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -32381,7 +31993,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -32389,7 +32001,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_017_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_016_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -32398,7 +32010,7 @@ struct IVROverlay_IVROverlay_017_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_017_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_016_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -32407,7 +32019,7 @@ struct wow64_IVROverlay_IVROverlay_017_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse_params +struct IVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -32415,7 +32027,7 @@ struct IVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse_param uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; @@ -32423,47 +32035,47 @@ struct wow64_IVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_017_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_016_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_016_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_016_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_017_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_016_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_017_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_016_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_017_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_016_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_017_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_016_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -32472,7 +32084,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -32481,7 +32093,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -32489,7 +32101,7 @@ struct IVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -32497,47 +32109,7 @@ struct wow64_IVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlay; - uint32_t eWhich; - const HmdVector2_t *vCenter; - float fRadius; -}; - -struct wow64_IVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlay; - uint32_t eWhich; - W32_PTR(const HmdVector2_t *vCenter, vCenter, const HmdVector2_t *); - float fRadius; -}; - -struct IVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlay; - uint32_t eWhich; - HmdVector2_t *pvCenter; - float *pfRadius; -}; - -struct wow64_IVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlay; - uint32_t eWhich; - W32_PTR(HmdVector2_t *pvCenter, pvCenter, HmdVector2_t *); - W32_PTR(float *pfRadius, pfRadius, float *); -}; - -struct IVROverlay_IVROverlay_017_SetOverlayTexture_params +struct IVROverlay_IVROverlay_016_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -32545,7 +32117,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -32553,21 +32125,21 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_017_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_016_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_016_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_SetOverlayRaw_params +struct IVROverlay_IVROverlay_016_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -32578,7 +32150,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -32589,7 +32161,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_017_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_016_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -32597,7 +32169,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -32605,7 +32177,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTexture_params +struct IVROverlay_IVROverlay_016_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -32620,7 +32192,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -32635,7 +32207,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -32643,7 +32215,7 @@ struct IVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -32651,7 +32223,7 @@ struct wow64_IVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_017_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_016_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -32660,7 +32232,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -32669,7 +32241,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_017_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_016_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32679,7 +32251,7 @@ struct IVROverlay_IVROverlay_017_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_017_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_016_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32689,33 +32261,33 @@ struct wow64_IVROverlay_IVROverlay_017_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_017_IsDashboardVisible_params +struct IVROverlay_IVROverlay_016_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_017_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_016_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_017_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_016_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_017_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_016_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -32723,7 +32295,7 @@ struct IVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -32731,7 +32303,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -32739,7 +32311,7 @@ struct IVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -32747,31 +32319,31 @@ struct wow64_IVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_017_ShowDashboard_params +struct IVROverlay_IVROverlay_016_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_017_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_016_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_017_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_016_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_017_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_016_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_017_ShowKeyboard_params +struct IVROverlay_IVROverlay_016_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -32784,7 +32356,7 @@ struct IVROverlay_IVROverlay_017_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_017_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_016_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -32797,7 +32369,7 @@ struct wow64_IVROverlay_IVROverlay_017_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_017_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_016_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32811,7 +32383,7 @@ struct IVROverlay_IVROverlay_017_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_017_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_016_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32825,7 +32397,7 @@ struct wow64_IVROverlay_IVROverlay_017_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_017_GetKeyboardText_params +struct IVROverlay_IVROverlay_016_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -32833,7 +32405,7 @@ struct IVROverlay_IVROverlay_017_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_017_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_016_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -32841,45 +32413,45 @@ struct wow64_IVROverlay_IVROverlay_017_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_017_HideKeyboard_params +struct IVROverlay_IVROverlay_016_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_017_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_016_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_017_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_016_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -32889,7 +32461,7 @@ struct IVROverlay_IVROverlay_017_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_017_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_016_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -32899,7 +32471,7 @@ struct wow64_IVROverlay_IVROverlay_017_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_017_GetOverlayFlags_params +struct IVROverlay_IVROverlay_016_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -32907,7 +32479,7 @@ struct IVROverlay_IVROverlay_017_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_017_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_016_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -32915,7 +32487,7 @@ struct wow64_IVROverlay_IVROverlay_017_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_017_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_016_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32927,7 +32499,7 @@ struct IVROverlay_IVROverlay_017_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_017_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_016_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32939,17 +32511,17 @@ struct wow64_IVROverlay_IVROverlay_017_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_017_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_016_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_017_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_016_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_018_FindOverlay_params +struct IVROverlay_IVROverlay_017_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32957,7 +32529,7 @@ struct IVROverlay_IVROverlay_018_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_017_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32965,7 +32537,7 @@ struct wow64_IVROverlay_IVROverlay_018_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_018_CreateOverlay_params +struct IVROverlay_IVROverlay_017_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32974,7 +32546,7 @@ struct IVROverlay_IVROverlay_018_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_017_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -32983,47 +32555,47 @@ struct wow64_IVROverlay_IVROverlay_018_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_018_DestroyOverlay_params +struct IVROverlay_IVROverlay_017_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_017_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_017_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_017_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_017_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_018_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_017_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_018_GetOverlayKey_params +struct IVROverlay_IVROverlay_017_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -33033,7 +32605,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -33043,7 +32615,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayName_params +struct IVROverlay_IVROverlay_017_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -33053,7 +32625,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -33063,7 +32635,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayName_params +struct IVROverlay_IVROverlay_017_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -33071,7 +32643,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -33079,7 +32651,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_018_GetOverlayImageData_params +struct IVROverlay_IVROverlay_017_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -33090,7 +32662,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -33101,21 +32673,21 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_018_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_017_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -33123,7 +32695,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -33131,21 +32703,21 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_018_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_017_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_SetOverlayFlag_params +struct IVROverlay_IVROverlay_017_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -33154,7 +32726,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -33163,7 +32735,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_018_GetOverlayFlag_params +struct IVROverlay_IVROverlay_017_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -33172,7 +32744,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -33181,7 +32753,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayColor_params +struct IVROverlay_IVROverlay_017_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -33191,7 +32763,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -33201,7 +32773,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_018_GetOverlayColor_params +struct IVROverlay_IVROverlay_017_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -33211,7 +32783,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -33221,7 +32793,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_018_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_017_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -33229,7 +32801,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -33237,7 +32809,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_018_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_017_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -33245,7 +32817,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -33253,7 +32825,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_017_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -33261,7 +32833,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -33269,7 +32841,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_018_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_017_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -33277,7 +32849,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -33285,7 +32857,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_018_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_017_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -33293,7 +32865,7 @@ struct IVROverlay_IVROverlay_018_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -33301,7 +32873,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_018_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_017_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -33309,7 +32881,7 @@ struct IVROverlay_IVROverlay_018_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -33317,7 +32889,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_017_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33325,7 +32897,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33333,7 +32905,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_018_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_017_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33341,7 +32913,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33349,7 +32921,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33358,7 +32930,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33367,7 +32939,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33376,7 +32948,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -33385,7 +32957,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_017_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -33393,7 +32965,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -33401,7 +32973,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_018_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_017_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -33409,7 +32981,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -33417,7 +32989,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_017_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -33425,7 +32997,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -33433,7 +33005,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_017_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -33441,7 +33013,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -33449,7 +33021,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayRenderModel_params +struct IVROverlay_IVROverlay_017_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -33460,7 +33032,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayRenderModel_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -33471,7 +33043,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayRenderModel_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayRenderModel_params +struct IVROverlay_IVROverlay_017_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -33480,7 +33052,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayRenderModel_params const HmdColor_t *pColor; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -33489,7 +33061,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayRenderModel_params W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_017_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -33497,7 +33069,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -33505,7 +33077,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_017_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -33514,7 +33086,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -33523,7 +33095,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_017_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -33532,7 +33104,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -33541,7 +33113,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33550,7 +33122,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33559,7 +33131,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33568,7 +33140,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33577,7 +33149,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -33586,7 +33158,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -33595,7 +33167,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -33605,7 +33177,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -33615,7 +33187,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33624,7 +33196,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33633,7 +33205,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33642,7 +33214,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -33651,49 +33223,49 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_ShowOverlay_params +struct IVROverlay_IVROverlay_017_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_017_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_HideOverlay_params +struct IVROverlay_IVROverlay_017_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_017_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_IsOverlayVisible_params +struct IVROverlay_IVROverlay_017_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_017_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -33703,7 +33275,7 @@ struct IVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -33713,25 +33285,25 @@ struct wow64_IVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_017_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_1016 *pEvent; + w_VREvent_t_1011 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_018_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_017_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_1016 *pEvent, pEvent, w32_VREvent_t_1016 *); + W32_PTR(w32_VREvent_t_1011 *pEvent, pEvent, w32_VREvent_t_1011 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_018_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_017_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -33739,7 +33311,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -33747,7 +33319,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_017_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -33755,7 +33327,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -33763,7 +33335,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_018_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_017_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -33771,7 +33343,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -33779,7 +33351,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_018_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_017_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -33787,7 +33359,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -33795,7 +33367,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_018_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_017_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -33804,7 +33376,7 @@ struct IVROverlay_IVROverlay_018_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_018_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_017_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -33813,47 +33385,63 @@ struct wow64_IVROverlay_IVROverlay_018_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_018_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; + uint32_t unControllerDeviceIndex; }; -struct wow64_IVROverlay_IVROverlay_018_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; + uint32_t unControllerDeviceIndex; }; -struct IVROverlay_IVROverlay_018_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_017_IsHoverTargetOverlay_params +{ + struct u_iface u_iface; + int8_t _ret; + uint64_t ulOverlayHandle; +}; + +struct wow64_IVROverlay_IVROverlay_017_IsHoverTargetOverlay_params +{ + struct u_iface u_iface; + int8_t _ret; + uint64_t ulOverlayHandle; +}; + +struct IVROverlay_IVROverlay_017_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_018_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_017_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_018_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_017_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_018_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_017_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_018_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_017_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -33862,7 +33450,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -33871,7 +33459,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -33879,7 +33467,7 @@ struct IVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -33887,7 +33475,7 @@ struct wow64_IVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -33897,7 +33485,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform_params float fRadius; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -33907,7 +33495,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform_params float fRadius; }; -struct IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -33917,7 +33505,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform_params float *pfRadius; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -33927,7 +33515,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform_params W32_PTR(float *pfRadius, pfRadius, float *); }; -struct IVROverlay_IVROverlay_018_SetOverlayTexture_params +struct IVROverlay_IVROverlay_017_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -33935,7 +33523,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -33943,21 +33531,21 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_018_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_017_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_017_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_SetOverlayRaw_params +struct IVROverlay_IVROverlay_017_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -33968,7 +33556,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -33979,7 +33567,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_018_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_017_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -33987,7 +33575,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -33995,7 +33583,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTexture_params +struct IVROverlay_IVROverlay_017_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -34010,7 +33598,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -34025,7 +33613,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -34033,7 +33621,7 @@ struct IVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -34041,7 +33629,7 @@ struct wow64_IVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_018_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_017_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -34050,7 +33638,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -34059,7 +33647,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_018_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_017_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34069,7 +33657,7 @@ struct IVROverlay_IVROverlay_018_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_018_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_017_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34079,33 +33667,33 @@ struct wow64_IVROverlay_IVROverlay_018_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_018_IsDashboardVisible_params +struct IVROverlay_IVROverlay_017_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_018_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_017_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_018_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_017_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_018_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_017_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -34113,7 +33701,7 @@ struct IVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -34121,7 +33709,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -34129,7 +33717,7 @@ struct IVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -34137,31 +33725,31 @@ struct wow64_IVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_018_ShowDashboard_params +struct IVROverlay_IVROverlay_017_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_018_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_017_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_018_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_017_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_018_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_017_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_018_ShowKeyboard_params +struct IVROverlay_IVROverlay_017_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -34174,7 +33762,7 @@ struct IVROverlay_IVROverlay_018_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_018_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_017_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -34187,7 +33775,7 @@ struct wow64_IVROverlay_IVROverlay_018_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_018_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_017_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34201,7 +33789,7 @@ struct IVROverlay_IVROverlay_018_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_018_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_017_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34215,7 +33803,7 @@ struct wow64_IVROverlay_IVROverlay_018_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_018_GetKeyboardText_params +struct IVROverlay_IVROverlay_017_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -34223,7 +33811,7 @@ struct IVROverlay_IVROverlay_018_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_018_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_017_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -34231,45 +33819,45 @@ struct wow64_IVROverlay_IVROverlay_018_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_018_HideKeyboard_params +struct IVROverlay_IVROverlay_017_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_018_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_017_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_018_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_017_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -34279,7 +33867,7 @@ struct IVROverlay_IVROverlay_018_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_018_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_017_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -34289,7 +33877,7 @@ struct wow64_IVROverlay_IVROverlay_018_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_018_GetOverlayFlags_params +struct IVROverlay_IVROverlay_017_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -34297,7 +33885,7 @@ struct IVROverlay_IVROverlay_018_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_018_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_017_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -34305,7 +33893,7 @@ struct wow64_IVROverlay_IVROverlay_018_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_018_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_017_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34317,7 +33905,7 @@ struct IVROverlay_IVROverlay_018_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_018_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_017_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34329,17 +33917,17 @@ struct wow64_IVROverlay_IVROverlay_018_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_018_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_017_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_018_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_017_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_019_FindOverlay_params +struct IVROverlay_IVROverlay_018_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34347,7 +33935,7 @@ struct IVROverlay_IVROverlay_019_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_018_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34355,7 +33943,7 @@ struct wow64_IVROverlay_IVROverlay_019_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_019_CreateOverlay_params +struct IVROverlay_IVROverlay_018_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34364,7 +33952,7 @@ struct IVROverlay_IVROverlay_019_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_018_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -34373,47 +33961,47 @@ struct wow64_IVROverlay_IVROverlay_019_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_019_DestroyOverlay_params +struct IVROverlay_IVROverlay_018_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_018_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_SetHighQualityOverlay_params +struct IVROverlay_IVROverlay_018_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_SetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_018_SetHighQualityOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_GetHighQualityOverlay_params +struct IVROverlay_IVROverlay_018_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_019_GetHighQualityOverlay_params +struct wow64_IVROverlay_IVROverlay_018_GetHighQualityOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_019_GetOverlayKey_params +struct IVROverlay_IVROverlay_018_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -34423,7 +34011,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -34433,7 +34021,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayName_params +struct IVROverlay_IVROverlay_018_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -34443,7 +34031,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -34453,7 +34041,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayName_params +struct IVROverlay_IVROverlay_018_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -34461,7 +34049,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -34469,7 +34057,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_019_GetOverlayImageData_params +struct IVROverlay_IVROverlay_018_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -34480,7 +34068,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -34491,21 +34079,21 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_019_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_018_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -34513,7 +34101,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -34521,21 +34109,21 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_019_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_018_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_SetOverlayFlag_params +struct IVROverlay_IVROverlay_018_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -34544,7 +34132,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -34553,7 +34141,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_019_GetOverlayFlag_params +struct IVROverlay_IVROverlay_018_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -34562,7 +34150,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -34571,7 +34159,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayColor_params +struct IVROverlay_IVROverlay_018_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -34581,7 +34169,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -34591,7 +34179,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_019_GetOverlayColor_params +struct IVROverlay_IVROverlay_018_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -34601,7 +34189,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -34611,7 +34199,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_019_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_018_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -34619,7 +34207,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -34627,7 +34215,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_019_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_018_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -34635,7 +34223,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -34643,7 +34231,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_018_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -34651,7 +34239,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -34659,7 +34247,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_019_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_018_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -34667,7 +34255,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -34675,7 +34263,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_019_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_018_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -34683,7 +34271,7 @@ struct IVROverlay_IVROverlay_019_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -34691,7 +34279,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_019_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_018_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -34699,7 +34287,7 @@ struct IVROverlay_IVROverlay_019_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -34707,7 +34295,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_018_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34715,7 +34303,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34723,7 +34311,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_019_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_018_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34731,7 +34319,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34739,7 +34327,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34748,7 +34336,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34757,7 +34345,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34766,7 +34354,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -34775,7 +34363,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_018_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -34783,7 +34371,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -34791,7 +34379,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_019_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_018_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -34799,7 +34387,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -34807,7 +34395,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_018_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -34815,7 +34403,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -34823,7 +34411,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_018_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -34831,7 +34419,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -34839,7 +34427,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayRenderModel_params +struct IVROverlay_IVROverlay_018_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -34850,7 +34438,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayRenderModel_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -34861,7 +34449,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayRenderModel_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayRenderModel_params +struct IVROverlay_IVROverlay_018_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -34870,7 +34458,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayRenderModel_params const HmdColor_t *pColor; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -34879,7 +34467,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayRenderModel_params W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_018_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -34887,7 +34475,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -34895,7 +34483,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_018_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -34904,7 +34492,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -34913,7 +34501,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_018_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -34922,7 +34510,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -34931,7 +34519,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -34940,7 +34528,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -34949,7 +34537,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -34958,7 +34546,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -34967,7 +34555,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -34976,7 +34564,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -34985,7 +34573,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -34995,7 +34583,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -35005,7 +34593,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -35014,7 +34602,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -35023,7 +34611,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -35032,7 +34620,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -35041,49 +34629,49 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_ShowOverlay_params +struct IVROverlay_IVROverlay_018_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_018_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_HideOverlay_params +struct IVROverlay_IVROverlay_018_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_018_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_IsOverlayVisible_params +struct IVROverlay_IVROverlay_018_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_018_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -35093,7 +34681,7 @@ struct IVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -35103,25 +34691,25 @@ struct wow64_IVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_018_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_1322 *pEvent; + w_VREvent_t_1016 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_019_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_018_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_1322 *pEvent, pEvent, w32_VREvent_t_1322 *); + W32_PTR(w32_VREvent_t_1016 *pEvent, pEvent, w32_VREvent_t_1016 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_019_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_018_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -35129,7 +34717,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -35137,7 +34725,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_018_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -35145,7 +34733,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -35153,7 +34741,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_019_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_018_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -35161,7 +34749,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -35169,7 +34757,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_019_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_018_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -35177,7 +34765,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -35185,7 +34773,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_019_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_018_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -35194,7 +34782,7 @@ struct IVROverlay_IVROverlay_019_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_019_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_018_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -35203,47 +34791,47 @@ struct wow64_IVROverlay_IVROverlay_019_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_019_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_018_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_018_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_018_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_019_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_018_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_019_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_018_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_019_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_018_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_019_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_018_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -35252,7 +34840,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -35261,7 +34849,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -35269,7 +34857,7 @@ struct IVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -35277,27 +34865,27 @@ struct wow64_IVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlay; uint32_t eWhich; - const HmdVector2_t *pvCenter; + const HmdVector2_t *vCenter; float fRadius; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlay; uint32_t eWhich; - W32_PTR(const HmdVector2_t *pvCenter, pvCenter, const HmdVector2_t *); + W32_PTR(const HmdVector2_t *vCenter, vCenter, const HmdVector2_t *); float fRadius; }; -struct IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -35307,7 +34895,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform_params float *pfRadius; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -35317,7 +34905,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform_params W32_PTR(float *pfRadius, pfRadius, float *); }; -struct IVROverlay_IVROverlay_019_SetOverlayTexture_params +struct IVROverlay_IVROverlay_018_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -35325,7 +34913,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -35333,21 +34921,21 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_019_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_018_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_018_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_SetOverlayRaw_params +struct IVROverlay_IVROverlay_018_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -35358,7 +34946,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -35369,7 +34957,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_019_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_018_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -35377,7 +34965,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -35385,7 +34973,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTexture_params +struct IVROverlay_IVROverlay_018_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -35400,7 +34988,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -35415,7 +35003,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -35423,7 +35011,7 @@ struct IVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -35431,7 +35019,7 @@ struct wow64_IVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_019_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_018_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -35440,7 +35028,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -35449,7 +35037,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_019_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_018_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35459,7 +35047,7 @@ struct IVROverlay_IVROverlay_019_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_019_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_018_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35469,33 +35057,33 @@ struct wow64_IVROverlay_IVROverlay_019_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_019_IsDashboardVisible_params +struct IVROverlay_IVROverlay_018_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_019_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_018_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_019_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_018_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_019_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_018_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -35503,7 +35091,7 @@ struct IVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -35511,7 +35099,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -35519,7 +35107,7 @@ struct IVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -35527,31 +35115,31 @@ struct wow64_IVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_019_ShowDashboard_params +struct IVROverlay_IVROverlay_018_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_019_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_018_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_019_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_018_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_019_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_018_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_019_ShowKeyboard_params +struct IVROverlay_IVROverlay_018_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -35564,7 +35152,7 @@ struct IVROverlay_IVROverlay_019_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_019_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_018_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -35577,7 +35165,7 @@ struct wow64_IVROverlay_IVROverlay_019_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_019_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_018_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35591,7 +35179,7 @@ struct IVROverlay_IVROverlay_019_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_019_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_018_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35605,7 +35193,7 @@ struct wow64_IVROverlay_IVROverlay_019_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_019_GetKeyboardText_params +struct IVROverlay_IVROverlay_018_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -35613,7 +35201,7 @@ struct IVROverlay_IVROverlay_019_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_019_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_018_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -35621,45 +35209,45 @@ struct wow64_IVROverlay_IVROverlay_019_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_019_HideKeyboard_params +struct IVROverlay_IVROverlay_018_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_019_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_018_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_019_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_018_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -35669,7 +35257,7 @@ struct IVROverlay_IVROverlay_019_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_019_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_018_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -35679,7 +35267,7 @@ struct wow64_IVROverlay_IVROverlay_019_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_019_GetOverlayFlags_params +struct IVROverlay_IVROverlay_018_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -35687,7 +35275,7 @@ struct IVROverlay_IVROverlay_019_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_019_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_018_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -35695,7 +35283,7 @@ struct wow64_IVROverlay_IVROverlay_019_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_019_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_018_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35707,7 +35295,7 @@ struct IVROverlay_IVROverlay_019_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_019_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_018_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35719,17 +35307,17 @@ struct wow64_IVROverlay_IVROverlay_019_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_019_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_018_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_019_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_018_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_020_FindOverlay_params +struct IVROverlay_IVROverlay_019_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35737,7 +35325,7 @@ struct IVROverlay_IVROverlay_020_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_019_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35745,7 +35333,7 @@ struct wow64_IVROverlay_IVROverlay_020_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_020_CreateOverlay_params +struct IVROverlay_IVROverlay_019_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35754,7 +35342,7 @@ struct IVROverlay_IVROverlay_020_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_019_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -35763,21 +35351,47 @@ struct wow64_IVROverlay_IVROverlay_020_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_020_DestroyOverlay_params +struct IVROverlay_IVROverlay_019_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_019_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_GetOverlayKey_params +struct IVROverlay_IVROverlay_019_SetHighQualityOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; +}; + +struct wow64_IVROverlay_IVROverlay_019_SetHighQualityOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; +}; + +struct IVROverlay_IVROverlay_019_GetHighQualityOverlay_params +{ + struct u_iface u_iface; + uint64_t _ret; +}; + +struct wow64_IVROverlay_IVROverlay_019_GetHighQualityOverlay_params +{ + struct u_iface u_iface; + uint64_t _ret; +}; + +struct IVROverlay_IVROverlay_019_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -35787,7 +35401,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -35797,7 +35411,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayName_params +struct IVROverlay_IVROverlay_019_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -35807,7 +35421,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -35817,7 +35431,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayName_params +struct IVROverlay_IVROverlay_019_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -35825,7 +35439,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -35833,7 +35447,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_020_GetOverlayImageData_params +struct IVROverlay_IVROverlay_019_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -35844,7 +35458,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -35855,21 +35469,21 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_020_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_019_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -35877,7 +35491,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -35885,21 +35499,21 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_020_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_019_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_SetOverlayFlag_params +struct IVROverlay_IVROverlay_019_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -35908,7 +35522,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -35917,7 +35531,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_020_GetOverlayFlag_params +struct IVROverlay_IVROverlay_019_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -35926,7 +35540,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -35935,7 +35549,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayColor_params +struct IVROverlay_IVROverlay_019_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -35945,7 +35559,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -35955,7 +35569,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_020_GetOverlayColor_params +struct IVROverlay_IVROverlay_019_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -35965,7 +35579,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -35975,7 +35589,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_020_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_019_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -35983,7 +35597,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -35991,7 +35605,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_020_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_019_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -35999,7 +35613,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -36007,7 +35621,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_019_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -36015,7 +35629,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -36023,7 +35637,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_020_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_019_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -36031,7 +35645,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -36039,7 +35653,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_020_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_019_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -36047,7 +35661,7 @@ struct IVROverlay_IVROverlay_020_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -36055,7 +35669,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_020_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_019_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -36063,7 +35677,7 @@ struct IVROverlay_IVROverlay_020_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -36071,7 +35685,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_019_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36079,7 +35693,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36087,7 +35701,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_020_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_019_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36095,7 +35709,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36103,7 +35717,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36112,7 +35726,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters_params float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36121,7 +35735,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters_ float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters_params +struct IVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36130,7 +35744,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters_params float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -36139,7 +35753,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters_ W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_019_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -36147,7 +35761,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -36155,7 +35769,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_020_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_019_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -36163,7 +35777,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -36171,7 +35785,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_019_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -36179,7 +35793,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -36187,7 +35801,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_019_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -36195,7 +35809,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -36203,7 +35817,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayRenderModel_params +struct IVROverlay_IVROverlay_019_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -36214,7 +35828,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayRenderModel_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -36225,7 +35839,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayRenderModel_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayRenderModel_params +struct IVROverlay_IVROverlay_019_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -36234,7 +35848,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayRenderModel_params const HmdColor_t *pColor; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -36243,7 +35857,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayRenderModel_params W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_019_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -36251,7 +35865,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -36259,7 +35873,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_019_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -36268,7 +35882,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -36277,7 +35891,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_019_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -36286,7 +35900,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -36295,7 +35909,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36304,7 +35918,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36313,7 +35927,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36322,7 +35936,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36331,7 +35945,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -36340,7 +35954,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -36349,7 +35963,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -36359,7 +35973,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -36369,7 +35983,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36378,7 +35992,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36387,7 +36001,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36396,7 +36010,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -36405,49 +36019,49 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_ShowOverlay_params +struct IVROverlay_IVROverlay_019_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_019_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_HideOverlay_params +struct IVROverlay_IVROverlay_019_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_019_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_IsOverlayVisible_params +struct IVROverlay_IVROverlay_019_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_019_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -36457,7 +36071,7 @@ struct IVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -36467,7 +36081,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_019_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -36476,7 +36090,7 @@ struct IVROverlay_IVROverlay_020_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_020_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_019_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -36485,7 +36099,7 @@ struct wow64_IVROverlay_IVROverlay_020_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_020_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_019_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -36493,7 +36107,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -36501,7 +36115,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_019_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -36509,7 +36123,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -36517,7 +36131,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_020_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_019_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -36525,7 +36139,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -36533,7 +36147,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_020_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_019_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -36541,7 +36155,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -36549,7 +36163,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_020_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_019_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -36558,7 +36172,7 @@ struct IVROverlay_IVROverlay_020_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_020_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_019_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -36567,47 +36181,47 @@ struct wow64_IVROverlay_IVROverlay_020_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_020_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_019_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_019_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_GetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_019_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct wow64_IVROverlay_IVROverlay_020_GetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_019_GetGamepadFocusOverlay_params { struct u_iface u_iface; uint64_t _ret; }; -struct IVROverlay_IVROverlay_020_SetGamepadFocusOverlay_params +struct IVROverlay_IVROverlay_019_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct wow64_IVROverlay_IVROverlay_020_SetGamepadFocusOverlay_params +struct wow64_IVROverlay_IVROverlay_019_SetGamepadFocusOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulNewFocusOverlay; }; -struct IVROverlay_IVROverlay_020_SetOverlayNeighbor_params +struct IVROverlay_IVROverlay_019_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -36616,7 +36230,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayNeighbor_params uint64_t ulTo; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayNeighbor_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -36625,7 +36239,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayNeighbor_params uint64_t ulTo; }; -struct IVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor_params +struct IVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -36633,7 +36247,7 @@ struct IVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct wow64_IVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor_params +struct wow64_IVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor_params { struct u_iface u_iface; uint32_t _ret; @@ -36641,7 +36255,7 @@ struct wow64_IVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor_params uint64_t ulFrom; }; -struct IVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -36651,7 +36265,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform_params float fRadius; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -36661,7 +36275,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform_params float fRadius; }; -struct IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -36671,7 +36285,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform_params float *pfRadius; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -36681,7 +36295,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform_params W32_PTR(float *pfRadius, pfRadius, float *); }; -struct IVROverlay_IVROverlay_020_SetOverlayTexture_params +struct IVROverlay_IVROverlay_019_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -36689,7 +36303,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -36697,21 +36311,21 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_020_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_019_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_019_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_SetOverlayRaw_params +struct IVROverlay_IVROverlay_019_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -36722,7 +36336,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -36733,7 +36347,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_020_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_019_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -36741,7 +36355,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -36749,7 +36363,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTexture_params +struct IVROverlay_IVROverlay_019_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -36764,7 +36378,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -36779,7 +36393,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -36787,7 +36401,7 @@ struct IVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -36795,7 +36409,7 @@ struct wow64_IVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_020_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_019_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -36804,7 +36418,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -36813,7 +36427,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_020_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_019_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -36823,7 +36437,7 @@ struct IVROverlay_IVROverlay_020_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_020_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_019_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -36833,33 +36447,33 @@ struct wow64_IVROverlay_IVROverlay_020_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_020_IsDashboardVisible_params +struct IVROverlay_IVROverlay_019_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_020_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_019_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_020_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_019_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_020_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_019_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -36867,7 +36481,7 @@ struct IVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -36875,7 +36489,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -36883,7 +36497,7 @@ struct IVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -36891,31 +36505,31 @@ struct wow64_IVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_020_ShowDashboard_params +struct IVROverlay_IVROverlay_019_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_020_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_019_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_020_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_019_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_020_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_019_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_020_ShowKeyboard_params +struct IVROverlay_IVROverlay_019_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -36928,7 +36542,7 @@ struct IVROverlay_IVROverlay_020_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_020_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_019_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -36941,7 +36555,7 @@ struct wow64_IVROverlay_IVROverlay_020_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_020_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_019_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -36955,7 +36569,7 @@ struct IVROverlay_IVROverlay_020_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_020_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_019_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -36969,7 +36583,7 @@ struct wow64_IVROverlay_IVROverlay_020_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_020_GetKeyboardText_params +struct IVROverlay_IVROverlay_019_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -36977,7 +36591,7 @@ struct IVROverlay_IVROverlay_020_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_020_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_019_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -36985,45 +36599,45 @@ struct wow64_IVROverlay_IVROverlay_020_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_020_HideKeyboard_params +struct IVROverlay_IVROverlay_019_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_020_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_019_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_020_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_019_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -37033,7 +36647,7 @@ struct IVROverlay_IVROverlay_020_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_020_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_019_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -37043,7 +36657,7 @@ struct wow64_IVROverlay_IVROverlay_020_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_020_GetOverlayFlags_params +struct IVROverlay_IVROverlay_019_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -37051,7 +36665,7 @@ struct IVROverlay_IVROverlay_020_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_020_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_019_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -37059,7 +36673,7 @@ struct wow64_IVROverlay_IVROverlay_020_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_020_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_019_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -37071,7 +36685,7 @@ struct IVROverlay_IVROverlay_020_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_020_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_019_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -37083,17 +36697,17 @@ struct wow64_IVROverlay_IVROverlay_020_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_020_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_019_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_020_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_019_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_021_FindOverlay_params +struct IVROverlay_IVROverlay_020_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -37101,7 +36715,7 @@ struct IVROverlay_IVROverlay_021_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_020_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -37109,7 +36723,7 @@ struct wow64_IVROverlay_IVROverlay_021_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_021_CreateOverlay_params +struct IVROverlay_IVROverlay_020_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -37118,7 +36732,7 @@ struct IVROverlay_IVROverlay_021_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_020_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -37127,21 +36741,21 @@ struct wow64_IVROverlay_IVROverlay_021_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_021_DestroyOverlay_params +struct IVROverlay_IVROverlay_020_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_020_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_GetOverlayKey_params +struct IVROverlay_IVROverlay_020_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -37151,7 +36765,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -37161,7 +36775,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayName_params +struct IVROverlay_IVROverlay_020_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -37171,7 +36785,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -37181,7 +36795,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayName_params +struct IVROverlay_IVROverlay_020_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -37189,7 +36803,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -37197,7 +36811,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_021_GetOverlayImageData_params +struct IVROverlay_IVROverlay_020_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -37208,7 +36822,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -37219,21 +36833,21 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_021_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_020_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -37241,7 +36855,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -37249,21 +36863,21 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_021_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_020_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_SetOverlayFlag_params +struct IVROverlay_IVROverlay_020_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -37272,7 +36886,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -37281,7 +36895,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_021_GetOverlayFlag_params +struct IVROverlay_IVROverlay_020_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -37290,7 +36904,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -37299,7 +36913,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayColor_params +struct IVROverlay_IVROverlay_020_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -37309,7 +36923,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -37319,7 +36933,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_021_GetOverlayColor_params +struct IVROverlay_IVROverlay_020_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -37329,7 +36943,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -37339,7 +36953,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_021_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_020_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -37347,7 +36961,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -37355,7 +36969,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_021_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_020_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -37363,7 +36977,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -37371,7 +36985,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_020_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -37379,7 +36993,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -37387,7 +37001,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_021_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_020_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -37395,7 +37009,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -37403,7 +37017,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_021_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_020_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -37411,7 +37025,7 @@ struct IVROverlay_IVROverlay_021_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -37419,7 +37033,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_021_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_020_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -37427,7 +37041,7 @@ struct IVROverlay_IVROverlay_021_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -37435,7 +37049,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_020_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -37443,7 +37057,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -37451,7 +37065,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_021_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_020_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -37459,7 +37073,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -37467,39 +37081,43 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_021_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fCurvature; + float fMinDistanceInMeters; + float fMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fCurvature; + float fMinDistanceInMeters; + float fMaxDistanceInMeters; }; -struct IVROverlay_IVROverlay_021_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float *pfCurvature; + float *pfMinDistanceInMeters; + float *pfMaxDistanceInMeters; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(float *pfCurvature, pfCurvature, float *); + W32_PTR(float *pfMinDistanceInMeters, pfMinDistanceInMeters, float *); + W32_PTR(float *pfMaxDistanceInMeters, pfMaxDistanceInMeters, float *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_020_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -37507,7 +37125,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -37515,7 +37133,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_021_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_020_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -37523,7 +37141,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -37531,7 +37149,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_020_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -37539,7 +37157,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -37547,7 +37165,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_020_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -37555,7 +37173,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -37563,7 +37181,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayRenderModel_params +struct IVROverlay_IVROverlay_020_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -37574,7 +37192,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayRenderModel_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -37585,7 +37203,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayRenderModel_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayRenderModel_params +struct IVROverlay_IVROverlay_020_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -37594,7 +37212,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayRenderModel_params const HmdColor_t *pColor; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -37603,7 +37221,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayRenderModel_params W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_020_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -37611,7 +37229,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -37619,7 +37237,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_020_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -37628,7 +37246,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -37637,7 +37255,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_020_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -37646,7 +37264,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -37655,7 +37273,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37664,7 +37282,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37673,7 +37291,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37682,7 +37300,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37691,7 +37309,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -37700,7 +37318,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -37709,7 +37327,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -37719,7 +37337,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -37729,7 +37347,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37738,7 +37356,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37747,7 +37365,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37756,7 +37374,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -37765,49 +37383,49 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_ShowOverlay_params +struct IVROverlay_IVROverlay_020_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_020_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_HideOverlay_params +struct IVROverlay_IVROverlay_020_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_020_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_IsOverlayVisible_params +struct IVROverlay_IVROverlay_020_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_020_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -37817,7 +37435,7 @@ struct IVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -37827,7 +37445,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_020_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -37836,7 +37454,7 @@ struct IVROverlay_IVROverlay_021_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_021_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_020_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -37845,7 +37463,7 @@ struct wow64_IVROverlay_IVROverlay_021_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_021_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_020_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -37853,7 +37471,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -37861,7 +37479,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_020_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -37869,7 +37487,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -37877,7 +37495,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_021_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_020_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -37885,7 +37503,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -37893,7 +37511,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_021_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_020_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -37901,7 +37519,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -37909,7 +37527,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_021_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_020_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -37918,7 +37536,7 @@ struct IVROverlay_IVROverlay_021_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_021_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_020_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -37927,21 +37545,81 @@ struct wow64_IVROverlay_IVROverlay_021_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_021_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_020_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_020_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_020_GetGamepadFocusOverlay_params +{ + struct u_iface u_iface; + uint64_t _ret; +}; + +struct wow64_IVROverlay_IVROverlay_020_GetGamepadFocusOverlay_params +{ + struct u_iface u_iface; + uint64_t _ret; +}; + +struct IVROverlay_IVROverlay_020_SetGamepadFocusOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulNewFocusOverlay; +}; + +struct wow64_IVROverlay_IVROverlay_020_SetGamepadFocusOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulNewFocusOverlay; +}; + +struct IVROverlay_IVROverlay_020_SetOverlayNeighbor_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eDirection; + uint64_t ulFrom; + uint64_t ulTo; +}; + +struct wow64_IVROverlay_IVROverlay_020_SetOverlayNeighbor_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eDirection; + uint64_t ulFrom; + uint64_t ulTo; +}; + +struct IVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eDirection; + uint64_t ulFrom; +}; + +struct wow64_IVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eDirection; + uint64_t ulFrom; +}; + +struct IVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -37951,7 +37629,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform_params float fRadius; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -37961,7 +37639,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform_params float fRadius; }; -struct IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -37971,7 +37649,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform_params float *pfRadius; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -37981,7 +37659,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform_params W32_PTR(float *pfRadius, pfRadius, float *); }; -struct IVROverlay_IVROverlay_021_SetOverlayTexture_params +struct IVROverlay_IVROverlay_020_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -37989,7 +37667,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -37997,21 +37675,21 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_021_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_020_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_020_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_SetOverlayRaw_params +struct IVROverlay_IVROverlay_020_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -38022,7 +37700,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayRaw_params uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -38033,7 +37711,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayRaw_params uint32_t unDepth; }; -struct IVROverlay_IVROverlay_021_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_020_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -38041,7 +37719,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -38049,7 +37727,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTexture_params +struct IVROverlay_IVROverlay_020_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -38064,7 +37742,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -38079,7 +37757,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -38087,7 +37765,7 @@ struct IVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -38095,7 +37773,7 @@ struct wow64_IVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_021_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_020_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -38104,7 +37782,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -38113,7 +37791,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_021_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_020_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38123,7 +37801,7 @@ struct IVROverlay_IVROverlay_021_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_021_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_020_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38133,33 +37811,33 @@ struct wow64_IVROverlay_IVROverlay_021_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_021_IsDashboardVisible_params +struct IVROverlay_IVROverlay_020_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_021_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_020_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_021_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_020_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_021_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_020_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -38167,7 +37845,7 @@ struct IVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -38175,7 +37853,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -38183,7 +37861,7 @@ struct IVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -38191,31 +37869,31 @@ struct wow64_IVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_021_ShowDashboard_params +struct IVROverlay_IVROverlay_020_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_021_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_020_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_021_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_020_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_021_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_020_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_021_ShowKeyboard_params +struct IVROverlay_IVROverlay_020_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -38228,7 +37906,7 @@ struct IVROverlay_IVROverlay_021_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_021_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_020_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -38241,7 +37919,7 @@ struct wow64_IVROverlay_IVROverlay_021_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_021_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_020_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38255,7 +37933,7 @@ struct IVROverlay_IVROverlay_021_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_021_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_020_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38269,7 +37947,7 @@ struct wow64_IVROverlay_IVROverlay_021_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_021_GetKeyboardText_params +struct IVROverlay_IVROverlay_020_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -38277,7 +37955,7 @@ struct IVROverlay_IVROverlay_021_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_021_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_020_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -38285,45 +37963,45 @@ struct wow64_IVROverlay_IVROverlay_021_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_021_HideKeyboard_params +struct IVROverlay_IVROverlay_020_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_021_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_020_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_021_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_020_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -38333,7 +38011,7 @@ struct IVROverlay_IVROverlay_021_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_021_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_020_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -38343,7 +38021,7 @@ struct wow64_IVROverlay_IVROverlay_021_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_021_GetOverlayFlags_params +struct IVROverlay_IVROverlay_020_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -38351,7 +38029,7 @@ struct IVROverlay_IVROverlay_021_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_021_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_020_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -38359,7 +38037,7 @@ struct wow64_IVROverlay_IVROverlay_021_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_021_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_020_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38371,7 +38049,7 @@ struct IVROverlay_IVROverlay_021_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_021_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_020_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38383,17 +38061,17 @@ struct wow64_IVROverlay_IVROverlay_021_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_021_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_020_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_021_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_020_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_022_FindOverlay_params +struct IVROverlay_IVROverlay_021_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38401,7 +38079,7 @@ struct IVROverlay_IVROverlay_022_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_021_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38409,7 +38087,7 @@ struct wow64_IVROverlay_IVROverlay_022_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_022_CreateOverlay_params +struct IVROverlay_IVROverlay_021_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38418,7 +38096,7 @@ struct IVROverlay_IVROverlay_022_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_021_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -38427,21 +38105,21 @@ struct wow64_IVROverlay_IVROverlay_022_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_022_DestroyOverlay_params +struct IVROverlay_IVROverlay_021_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_021_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_GetOverlayKey_params +struct IVROverlay_IVROverlay_021_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -38451,7 +38129,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -38461,7 +38139,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayName_params +struct IVROverlay_IVROverlay_021_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -38471,7 +38149,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -38481,7 +38159,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayName_params +struct IVROverlay_IVROverlay_021_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -38489,7 +38167,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -38497,7 +38175,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_022_GetOverlayImageData_params +struct IVROverlay_IVROverlay_021_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -38508,7 +38186,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -38519,21 +38197,21 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_022_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_021_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -38541,7 +38219,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -38549,21 +38227,21 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_022_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_021_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_SetOverlayFlag_params +struct IVROverlay_IVROverlay_021_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -38572,7 +38250,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -38581,7 +38259,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_022_GetOverlayFlag_params +struct IVROverlay_IVROverlay_021_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -38590,7 +38268,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -38599,23 +38277,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayFlags_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t *pFlags; -}; - -struct wow64_IVROverlay_IVROverlay_022_GetOverlayFlags_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); -}; - -struct IVROverlay_IVROverlay_022_SetOverlayColor_params +struct IVROverlay_IVROverlay_021_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -38625,7 +38287,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -38635,7 +38297,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_022_GetOverlayColor_params +struct IVROverlay_IVROverlay_021_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -38645,7 +38307,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -38655,7 +38317,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_022_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_021_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -38663,7 +38325,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -38671,7 +38333,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_022_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_021_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -38679,7 +38341,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -38687,7 +38349,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_021_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -38695,7 +38357,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -38703,7 +38365,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_022_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_021_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -38711,7 +38373,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -38719,7 +38381,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_022_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_021_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -38727,7 +38389,7 @@ struct IVROverlay_IVROverlay_022_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -38735,7 +38397,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_022_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_021_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -38743,7 +38405,7 @@ struct IVROverlay_IVROverlay_022_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -38751,7 +38413,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_021_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -38759,7 +38421,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -38767,7 +38429,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_022_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_021_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -38775,7 +38437,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -38783,7 +38445,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_022_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_021_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -38791,7 +38453,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayCurvature_params float fCurvature; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -38799,7 +38461,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayCurvature_params float fCurvature; }; -struct IVROverlay_IVROverlay_022_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_021_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -38807,7 +38469,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayCurvature_params float *pfCurvature; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -38815,7 +38477,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayCurvature_params W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_021_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -38823,7 +38485,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -38831,7 +38493,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_022_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_021_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -38839,7 +38501,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -38847,7 +38509,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_021_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -38855,7 +38517,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -38863,7 +38525,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_021_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -38871,7 +38533,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -38879,7 +38541,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayRenderModel_params +struct IVROverlay_IVROverlay_021_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -38890,7 +38552,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayRenderModel_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -38901,7 +38563,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayRenderModel_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayRenderModel_params +struct IVROverlay_IVROverlay_021_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -38910,7 +38572,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayRenderModel_params const HmdColor_t *pColor; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayRenderModel_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayRenderModel_params { struct u_iface u_iface; uint32_t _ret; @@ -38919,7 +38581,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayRenderModel_params W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_021_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -38927,7 +38589,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -38935,7 +38597,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_021_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -38944,7 +38606,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -38953,7 +38615,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_021_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -38962,7 +38624,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -38971,7 +38633,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -38980,7 +38642,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -38989,7 +38651,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -38998,7 +38660,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -39007,7 +38669,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -39016,7 +38678,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -39025,7 +38687,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -39035,7 +38697,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -39045,7 +38707,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -39054,7 +38716,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -39063,7 +38725,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -39072,7 +38734,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -39081,81 +38743,49 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayTransformCursor_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulCursorOverlayHandle; - const HmdVector2_t *pvHotspot; -}; - -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformCursor_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulCursorOverlayHandle; - W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); -}; - -struct IVROverlay_IVROverlay_022_GetOverlayTransformCursor_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - HmdVector2_t *pvHotspot; -}; - -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformCursor_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); -}; - -struct IVROverlay_IVROverlay_022_ShowOverlay_params +struct IVROverlay_IVROverlay_021_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_021_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_HideOverlay_params +struct IVROverlay_IVROverlay_021_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_021_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_IsOverlayVisible_params +struct IVROverlay_IVROverlay_021_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_021_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -39165,7 +38795,7 @@ struct IVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -39175,7 +38805,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_021_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -39184,7 +38814,7 @@ struct IVROverlay_IVROverlay_022_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_022_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_021_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -39193,7 +38823,7 @@ struct wow64_IVROverlay_IVROverlay_022_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_022_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_021_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -39201,7 +38831,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -39209,7 +38839,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_021_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -39217,7 +38847,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -39225,7 +38855,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_022_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_021_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -39233,7 +38863,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -39241,7 +38871,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_022_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_021_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -39249,7 +38879,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -39257,7 +38887,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_022_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_021_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -39266,7 +38896,7 @@ struct IVROverlay_IVROverlay_022_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_022_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_021_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -39275,21 +38905,21 @@ struct wow64_IVROverlay_IVROverlay_022_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_022_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_021_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_021_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -39299,7 +38929,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform_params float fRadius; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -39309,7 +38939,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform_params float fRadius; }; -struct IVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform_params +struct IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -39319,7 +38949,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform_params float *pfRadius; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform_params { struct u_iface u_iface; uint32_t _ret; @@ -39329,145 +38959,59 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform_params W32_PTR(float *pfRadius, pfRadius, float *); }; -struct IVROverlay_IVROverlay_022_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_021_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives; - uint32_t unNumMaskPrimitives; - uint32_t unPrimitiveSize; + const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - W32_PTR(VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives, pMaskPrimitives, VROverlayIntersectionMaskPrimitive_t *); - uint32_t unNumMaskPrimitives; - uint32_t unPrimitiveSize; + W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration_params +struct IVROverlay_IVROverlay_021_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fDurationSeconds; - float fFrequency; - float fAmplitude; }; -struct wow64_IVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration_params +struct wow64_IVROverlay_IVROverlay_021_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - float fDurationSeconds; - float fFrequency; - float fAmplitude; }; -struct IVROverlay_IVROverlay_022_SetOverlayCursor_params +struct IVROverlay_IVROverlay_021_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint64_t ulCursorHandle; + void *pvBuffer; + uint32_t unWidth; + uint32_t unHeight; + uint32_t unDepth; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayCursor_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; - uint64_t ulCursorHandle; + W32_PTR(void *pvBuffer, pvBuffer, void *); + uint32_t unWidth; + uint32_t unHeight; + uint32_t unDepth; }; -struct IVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - const HmdVector2_t *pvCursor; -}; - -struct wow64_IVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); -}; - -struct IVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; -}; - -struct wow64_IVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; -}; - -struct IVROverlay_IVROverlay_022_SetOverlayTexture_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - const w_Texture_t *pTexture; -}; - -struct wow64_IVROverlay_IVROverlay_022_SetOverlayTexture_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); -}; - -struct IVROverlay_IVROverlay_022_ClearOverlayTexture_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; -}; - -struct wow64_IVROverlay_IVROverlay_022_ClearOverlayTexture_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; -}; - -struct IVROverlay_IVROverlay_022_SetOverlayRaw_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - void *pvBuffer; - uint32_t unWidth; - uint32_t unHeight; - uint32_t unBytesPerPixel; -}; - -struct wow64_IVROverlay_IVROverlay_022_SetOverlayRaw_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(void *pvBuffer, pvBuffer, void *); - uint32_t unWidth; - uint32_t unHeight; - uint32_t unBytesPerPixel; -}; - -struct IVROverlay_IVROverlay_022_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_021_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -39475,7 +39019,7 @@ struct IVROverlay_IVROverlay_022_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_022_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_021_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -39483,7 +39027,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTexture_params +struct IVROverlay_IVROverlay_021_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -39498,7 +39042,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -39513,7 +39057,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -39521,7 +39065,7 @@ struct IVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -39529,7 +39073,7 @@ struct wow64_IVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_022_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_021_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -39538,7 +39082,7 @@ struct IVROverlay_IVROverlay_022_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_021_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -39547,7 +39091,7 @@ struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_022_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_021_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39557,7 +39101,7 @@ struct IVROverlay_IVROverlay_022_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_022_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_021_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39567,33 +39111,33 @@ struct wow64_IVROverlay_IVROverlay_022_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_022_IsDashboardVisible_params +struct IVROverlay_IVROverlay_021_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_022_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_021_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_022_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_021_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_022_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_021_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -39601,7 +39145,7 @@ struct IVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -39609,7 +39153,7 @@ struct wow64_IVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -39617,7 +39161,7 @@ struct IVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -39625,31 +39169,31 @@ struct wow64_IVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_022_ShowDashboard_params +struct IVROverlay_IVROverlay_021_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_022_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_021_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_022_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_021_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_022_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_021_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_022_ShowKeyboard_params +struct IVROverlay_IVROverlay_021_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -39662,7 +39206,7 @@ struct IVROverlay_IVROverlay_022_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_022_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_021_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -39675,7 +39219,7 @@ struct wow64_IVROverlay_IVROverlay_022_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_022_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_021_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39689,7 +39233,7 @@ struct IVROverlay_IVROverlay_022_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_022_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_021_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39703,7 +39247,7 @@ struct wow64_IVROverlay_IVROverlay_022_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_022_GetKeyboardText_params +struct IVROverlay_IVROverlay_021_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -39711,7 +39255,7 @@ struct IVROverlay_IVROverlay_022_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_022_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_021_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -39719,45 +39263,81 @@ struct wow64_IVROverlay_IVROverlay_022_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_022_HideKeyboard_params +struct IVROverlay_IVROverlay_021_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_022_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_021_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_022_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_021_SetOverlayIntersectionMask_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives; + uint32_t unNumMaskPrimitives; + uint32_t unPrimitiveSize; +}; + +struct wow64_IVROverlay_IVROverlay_021_SetOverlayIntersectionMask_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives, pMaskPrimitives, VROverlayIntersectionMaskPrimitive_t *); + uint32_t unNumMaskPrimitives; + uint32_t unPrimitiveSize; +}; + +struct IVROverlay_IVROverlay_021_GetOverlayFlags_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *pFlags; +}; + +struct wow64_IVROverlay_IVROverlay_021_GetOverlayFlags_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); +}; + +struct IVROverlay_IVROverlay_021_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39769,7 +39349,7 @@ struct IVROverlay_IVROverlay_022_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_022_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_021_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39781,17 +39361,17 @@ struct wow64_IVROverlay_IVROverlay_022_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_022_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_021_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_022_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_021_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_024_FindOverlay_params +struct IVROverlay_IVROverlay_022_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39799,7 +39379,7 @@ struct IVROverlay_IVROverlay_024_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_022_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39807,7 +39387,7 @@ struct wow64_IVROverlay_IVROverlay_024_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_024_CreateOverlay_params +struct IVROverlay_IVROverlay_022_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39816,7 +39396,7 @@ struct IVROverlay_IVROverlay_024_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_022_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -39825,21 +39405,21 @@ struct wow64_IVROverlay_IVROverlay_024_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_024_DestroyOverlay_params +struct IVROverlay_IVROverlay_022_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_022_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_GetOverlayKey_params +struct IVROverlay_IVROverlay_022_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -39849,7 +39429,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -39859,7 +39439,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayName_params +struct IVROverlay_IVROverlay_022_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -39869,7 +39449,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -39879,7 +39459,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayName_params +struct IVROverlay_IVROverlay_022_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -39887,7 +39467,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -39895,7 +39475,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_024_GetOverlayImageData_params +struct IVROverlay_IVROverlay_022_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -39906,7 +39486,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -39917,21 +39497,21 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_024_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_022_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -39939,7 +39519,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -39947,21 +39527,21 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_024_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_022_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_SetOverlayFlag_params +struct IVROverlay_IVROverlay_022_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -39970,7 +39550,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -39979,7 +39559,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_024_GetOverlayFlag_params +struct IVROverlay_IVROverlay_022_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -39988,7 +39568,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -39997,7 +39577,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayFlags_params +struct IVROverlay_IVROverlay_022_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -40005,7 +39585,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -40013,7 +39593,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayColor_params +struct IVROverlay_IVROverlay_022_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -40023,7 +39603,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -40033,7 +39613,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_024_GetOverlayColor_params +struct IVROverlay_IVROverlay_022_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -40043,7 +39623,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -40053,7 +39633,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_024_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_022_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -40061,7 +39641,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -40069,7 +39649,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_024_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_022_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -40077,7 +39657,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -40085,7 +39665,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_022_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -40093,7 +39673,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -40101,7 +39681,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_024_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_022_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -40109,7 +39689,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -40117,7 +39697,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_024_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_022_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -40125,7 +39705,7 @@ struct IVROverlay_IVROverlay_024_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -40133,7 +39713,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_024_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_022_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -40141,7 +39721,7 @@ struct IVROverlay_IVROverlay_024_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -40149,7 +39729,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_022_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -40157,7 +39737,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -40165,7 +39745,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_024_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_022_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -40173,7 +39753,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -40181,7 +39761,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_024_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_022_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -40189,7 +39769,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayCurvature_params float fCurvature; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -40197,7 +39777,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayCurvature_params float fCurvature; }; -struct IVROverlay_IVROverlay_024_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_022_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -40205,7 +39785,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayCurvature_params float *pfCurvature; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -40213,7 +39793,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayCurvature_params W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_022_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -40221,7 +39801,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -40229,7 +39809,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_024_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_022_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -40237,7 +39817,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -40245,7 +39825,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_022_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -40253,7 +39833,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -40261,7 +39841,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_022_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -40269,7 +39849,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -40277,7 +39857,47 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_022_GetOverlayRenderModel_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + char *pchValue; + uint32_t unBufferSize; + HmdColor_t *pColor; + uint32_t *pError; +}; + +struct wow64_IVROverlay_IVROverlay_022_GetOverlayRenderModel_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(char *pchValue, pchValue, char *); + uint32_t unBufferSize; + W32_PTR(HmdColor_t *pColor, pColor, HmdColor_t *); + W32_PTR(uint32_t *pError, pError, uint32_t *); +}; + +struct IVROverlay_IVROverlay_022_SetOverlayRenderModel_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + const char *pchRenderModel; + const HmdColor_t *pColor; +}; + +struct wow64_IVROverlay_IVROverlay_022_SetOverlayRenderModel_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(const char *pchRenderModel, pchRenderModel, const char *); + W32_PTR(const HmdColor_t *pColor, pColor, const HmdColor_t *); +}; + +struct IVROverlay_IVROverlay_022_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -40285,7 +39905,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -40293,7 +39913,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_022_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -40302,7 +39922,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -40311,7 +39931,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_022_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -40320,7 +39940,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -40329,7 +39949,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40338,7 +39958,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40347,7 +39967,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40356,7 +39976,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40365,7 +39985,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -40374,7 +39994,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -40383,7 +40003,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -40393,7 +40013,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -40403,7 +40023,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40412,7 +40032,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40421,7 +40041,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40430,7 +40050,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -40439,7 +40059,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_022_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -40447,7 +40067,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTransformCursor_params const HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -40455,7 +40075,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformCursor_params W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_022_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -40463,7 +40083,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTransformCursor_params HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -40471,49 +40091,49 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformCursor_params W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_024_ShowOverlay_params +struct IVROverlay_IVROverlay_022_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_022_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_HideOverlay_params +struct IVROverlay_IVROverlay_022_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_022_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_IsOverlayVisible_params +struct IVROverlay_IVROverlay_022_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_022_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -40523,7 +40143,7 @@ struct IVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -40533,25 +40153,25 @@ struct wow64_IVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_022_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_11030 *pEvent; + w_VREvent_t_1322 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_024_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_022_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_11030 *pEvent, pEvent, w32_VREvent_t_11030 *); + W32_PTR(w32_VREvent_t_1322 *pEvent, pEvent, w32_VREvent_t_1322 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_024_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_022_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -40559,7 +40179,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -40567,7 +40187,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_022_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -40575,7 +40195,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -40583,7 +40203,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_024_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_022_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -40591,7 +40211,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -40599,7 +40219,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_024_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_022_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -40607,7 +40227,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -40615,7 +40235,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_024_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_022_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -40624,7 +40244,7 @@ struct IVROverlay_IVROverlay_024_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_024_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_022_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -40633,21 +40253,61 @@ struct wow64_IVROverlay_IVROverlay_024_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_024_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_022_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_022_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlay; + uint32_t eWhich; + const HmdVector2_t *pvCenter; + float fRadius; +}; + +struct wow64_IVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlay; + uint32_t eWhich; + W32_PTR(const HmdVector2_t *pvCenter, pvCenter, const HmdVector2_t *); + float fRadius; +}; + +struct IVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlay; + uint32_t eWhich; + HmdVector2_t *pvCenter; + float *pfRadius; +}; + +struct wow64_IVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlay; + uint32_t eWhich; + W32_PTR(HmdVector2_t *pvCenter, pvCenter, HmdVector2_t *); + W32_PTR(float *pfRadius, pfRadius, float *); +}; + +struct IVROverlay_IVROverlay_022_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -40657,7 +40317,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -40667,7 +40327,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration_params +struct IVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -40677,7 +40337,7 @@ struct IVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct wow64_IVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration_params +struct wow64_IVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -40687,7 +40347,7 @@ struct wow64_IVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct IVROverlay_IVROverlay_024_SetOverlayCursor_params +struct IVROverlay_IVROverlay_022_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -40695,7 +40355,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayCursor_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -40703,7 +40363,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct IVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -40711,7 +40371,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride_params const HmdVector2_t *pvCursor; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -40719,21 +40379,21 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride_params W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_SetOverlayTexture_params +struct IVROverlay_IVROverlay_022_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -40741,7 +40401,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -40749,21 +40409,21 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_024_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_022_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_022_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_SetOverlayRaw_params +struct IVROverlay_IVROverlay_022_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -40774,7 +40434,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -40785,7 +40445,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct IVROverlay_IVROverlay_024_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_022_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -40793,7 +40453,7 @@ struct IVROverlay_IVROverlay_024_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_024_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_022_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -40801,7 +40461,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTexture_params +struct IVROverlay_IVROverlay_022_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -40816,7 +40476,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -40831,7 +40491,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -40839,7 +40499,7 @@ struct IVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -40847,7 +40507,7 @@ struct wow64_IVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_024_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_022_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -40856,7 +40516,7 @@ struct IVROverlay_IVROverlay_024_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_022_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -40865,7 +40525,7 @@ struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_024_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_022_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -40875,7 +40535,7 @@ struct IVROverlay_IVROverlay_024_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_024_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_022_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -40885,33 +40545,33 @@ struct wow64_IVROverlay_IVROverlay_024_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_024_IsDashboardVisible_params +struct IVROverlay_IVROverlay_022_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_024_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_022_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_024_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_022_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_024_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_022_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -40919,7 +40579,7 @@ struct IVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -40927,7 +40587,7 @@ struct wow64_IVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -40935,7 +40595,7 @@ struct IVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -40943,85 +40603,85 @@ struct wow64_IVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_024_ShowDashboard_params +struct IVROverlay_IVROverlay_022_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_024_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_022_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_024_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_022_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_024_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_022_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_024_ShowKeyboard_params +struct IVROverlay_IVROverlay_022_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; uint32_t eInputMode; uint32_t eLineInputMode; - uint32_t unFlags; const char *pchDescription; uint32_t unCharMax; const char *pchExistingText; + int8_t bUseMinimalMode; uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_024_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_022_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; uint32_t eInputMode; uint32_t eLineInputMode; - uint32_t unFlags; W32_PTR(const char *pchDescription, pchDescription, const char *); uint32_t unCharMax; W32_PTR(const char *pchExistingText, pchExistingText, const char *); + int8_t bUseMinimalMode; uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_024_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_022_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; uint32_t eInputMode; uint32_t eLineInputMode; - uint32_t unFlags; const char *pchDescription; uint32_t unCharMax; const char *pchExistingText; + int8_t bUseMinimalMode; uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_024_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_022_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; uint32_t eInputMode; uint32_t eLineInputMode; - uint32_t unFlags; W32_PTR(const char *pchDescription, pchDescription, const char *); uint32_t unCharMax; W32_PTR(const char *pchExistingText, pchExistingText, const char *); + int8_t bUseMinimalMode; uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_024_GetKeyboardText_params +struct IVROverlay_IVROverlay_022_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -41029,7 +40689,7 @@ struct IVROverlay_IVROverlay_024_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_024_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_022_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -41037,45 +40697,45 @@ struct wow64_IVROverlay_IVROverlay_024_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_024_HideKeyboard_params +struct IVROverlay_IVROverlay_022_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_024_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_022_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_024_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_022_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -41087,7 +40747,7 @@ struct IVROverlay_IVROverlay_024_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_024_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_022_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -41099,17 +40759,17 @@ struct wow64_IVROverlay_IVROverlay_024_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_024_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_022_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_024_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_022_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_025_FindOverlay_params +struct IVROverlay_IVROverlay_024_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -41117,7 +40777,7 @@ struct IVROverlay_IVROverlay_025_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_024_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -41125,7 +40785,7 @@ struct wow64_IVROverlay_IVROverlay_025_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_025_CreateOverlay_params +struct IVROverlay_IVROverlay_024_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -41134,7 +40794,7 @@ struct IVROverlay_IVROverlay_025_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_024_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -41143,21 +40803,21 @@ struct wow64_IVROverlay_IVROverlay_025_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_025_DestroyOverlay_params +struct IVROverlay_IVROverlay_024_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_024_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_GetOverlayKey_params +struct IVROverlay_IVROverlay_024_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -41167,7 +40827,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -41177,7 +40837,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayName_params +struct IVROverlay_IVROverlay_024_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -41187,7 +40847,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -41197,7 +40857,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayName_params +struct IVROverlay_IVROverlay_024_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -41205,7 +40865,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -41213,7 +40873,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_025_GetOverlayImageData_params +struct IVROverlay_IVROverlay_024_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -41224,7 +40884,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -41235,21 +40895,21 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_025_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_024_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -41257,7 +40917,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -41265,21 +40925,21 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_025_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_024_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_SetOverlayFlag_params +struct IVROverlay_IVROverlay_024_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -41288,7 +40948,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -41297,7 +40957,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_025_GetOverlayFlag_params +struct IVROverlay_IVROverlay_024_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -41306,7 +40966,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -41315,7 +40975,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayFlags_params +struct IVROverlay_IVROverlay_024_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -41323,7 +40983,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -41331,7 +40991,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayColor_params +struct IVROverlay_IVROverlay_024_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -41341,7 +41001,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -41351,7 +41011,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_025_GetOverlayColor_params +struct IVROverlay_IVROverlay_024_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -41361,7 +41021,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -41371,7 +41031,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_025_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_024_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -41379,7 +41039,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -41387,7 +41047,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_025_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_024_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -41395,7 +41055,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -41403,7 +41063,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_024_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -41411,7 +41071,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -41419,7 +41079,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_025_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_024_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -41427,7 +41087,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -41435,7 +41095,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_025_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_024_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -41443,7 +41103,7 @@ struct IVROverlay_IVROverlay_025_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -41451,7 +41111,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_025_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_024_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -41459,7 +41119,7 @@ struct IVROverlay_IVROverlay_025_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -41467,7 +41127,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_024_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -41475,7 +41135,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -41483,7 +41143,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_025_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_024_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -41491,7 +41151,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -41499,7 +41159,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_025_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_024_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -41507,7 +41167,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayCurvature_params float fCurvature; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -41515,7 +41175,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayCurvature_params float fCurvature; }; -struct IVROverlay_IVROverlay_025_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_024_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -41523,7 +41183,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayCurvature_params float *pfCurvature; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -41531,7 +41191,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayCurvature_params W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_024_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -41539,7 +41199,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -41547,7 +41207,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_025_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_024_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -41555,7 +41215,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -41563,7 +41223,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_024_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -41571,7 +41231,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -41579,7 +41239,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_024_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -41587,7 +41247,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -41595,7 +41255,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_024_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -41603,7 +41263,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -41611,7 +41271,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_024_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -41620,7 +41280,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -41629,7 +41289,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_024_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -41638,7 +41298,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -41647,7 +41307,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41656,7 +41316,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41665,7 +41325,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41674,7 +41334,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41683,7 +41343,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -41692,7 +41352,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -41701,7 +41361,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -41711,7 +41371,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -41721,7 +41381,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41730,7 +41390,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41739,7 +41399,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41748,7 +41408,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -41757,7 +41417,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_024_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -41765,7 +41425,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTransformCursor_params const HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -41773,7 +41433,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformCursor_params W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_024_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -41781,7 +41441,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTransformCursor_params HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -41789,71 +41449,49 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformCursor_params W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayTransformProjection_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t eTrackingOrigin; - const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; - const VROverlayProjection_t *pProjection; - uint32_t eEye; -}; - -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformProjection_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - uint32_t eTrackingOrigin; - W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); - W32_PTR(const VROverlayProjection_t *pProjection, pProjection, const VROverlayProjection_t *); - uint32_t eEye; -}; - -struct IVROverlay_IVROverlay_025_ShowOverlay_params +struct IVROverlay_IVROverlay_024_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_024_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_HideOverlay_params +struct IVROverlay_IVROverlay_024_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_024_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_IsOverlayVisible_params +struct IVROverlay_IVROverlay_024_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_024_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -41863,7 +41501,7 @@ struct IVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -41873,25 +41511,25 @@ struct wow64_IVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_024_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_1168 *pEvent; + w_VREvent_t_11030 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_025_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_024_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_1168 *pEvent, pEvent, w32_VREvent_t_1168 *); + W32_PTR(w32_VREvent_t_11030 *pEvent, pEvent, w32_VREvent_t_11030 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_025_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_024_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -41899,7 +41537,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -41907,7 +41545,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_024_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -41915,7 +41553,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -41923,7 +41561,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_025_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_024_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -41931,7 +41569,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -41939,7 +41577,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_025_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_024_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -41947,7 +41585,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -41955,7 +41593,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_025_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_024_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -41964,7 +41602,7 @@ struct IVROverlay_IVROverlay_025_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_025_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_024_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -41973,21 +41611,21 @@ struct wow64_IVROverlay_IVROverlay_025_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_025_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_024_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_024_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_024_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -41997,7 +41635,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -42007,7 +41645,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration_params +struct IVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -42017,7 +41655,7 @@ struct IVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct wow64_IVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration_params +struct wow64_IVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -42027,7 +41665,7 @@ struct wow64_IVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct IVROverlay_IVROverlay_025_SetOverlayCursor_params +struct IVROverlay_IVROverlay_024_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -42035,7 +41673,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayCursor_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -42043,7 +41681,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct IVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -42051,7 +41689,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride_params const HmdVector2_t *pvCursor; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -42059,21 +41697,21 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride_params W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_SetOverlayTexture_params +struct IVROverlay_IVROverlay_024_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -42081,7 +41719,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -42089,21 +41727,21 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_025_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_024_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_024_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_SetOverlayRaw_params +struct IVROverlay_IVROverlay_024_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -42114,7 +41752,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -42125,7 +41763,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct IVROverlay_IVROverlay_025_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_024_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -42133,7 +41771,7 @@ struct IVROverlay_IVROverlay_025_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_025_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_024_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -42141,7 +41779,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTexture_params +struct IVROverlay_IVROverlay_024_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -42156,7 +41794,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -42171,7 +41809,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -42179,7 +41817,7 @@ struct IVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -42187,7 +41825,7 @@ struct wow64_IVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_025_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_024_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -42196,7 +41834,7 @@ struct IVROverlay_IVROverlay_025_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_024_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -42205,7 +41843,7 @@ struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_025_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_024_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42215,7 +41853,7 @@ struct IVROverlay_IVROverlay_025_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_025_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_024_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42225,33 +41863,33 @@ struct wow64_IVROverlay_IVROverlay_025_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_025_IsDashboardVisible_params +struct IVROverlay_IVROverlay_024_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_025_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_024_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_025_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_024_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_025_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_024_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -42259,7 +41897,7 @@ struct IVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -42267,7 +41905,7 @@ struct wow64_IVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -42275,7 +41913,7 @@ struct IVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -42283,31 +41921,31 @@ struct wow64_IVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_025_ShowDashboard_params +struct IVROverlay_IVROverlay_024_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_025_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_024_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_025_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_024_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_025_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_024_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_025_ShowKeyboard_params +struct IVROverlay_IVROverlay_024_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -42320,7 +41958,7 @@ struct IVROverlay_IVROverlay_025_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_025_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_024_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -42333,7 +41971,7 @@ struct wow64_IVROverlay_IVROverlay_025_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_025_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_024_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42347,7 +41985,7 @@ struct IVROverlay_IVROverlay_025_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_025_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_024_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42361,7 +41999,7 @@ struct wow64_IVROverlay_IVROverlay_025_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_025_GetKeyboardText_params +struct IVROverlay_IVROverlay_024_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -42369,7 +42007,7 @@ struct IVROverlay_IVROverlay_025_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_025_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_024_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -42377,45 +42015,45 @@ struct wow64_IVROverlay_IVROverlay_025_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_025_HideKeyboard_params +struct IVROverlay_IVROverlay_024_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_025_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_024_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_025_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_024_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42427,7 +42065,7 @@ struct IVROverlay_IVROverlay_025_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_025_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_024_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42439,17 +42077,17 @@ struct wow64_IVROverlay_IVROverlay_025_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_025_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_024_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_025_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_024_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_026_FindOverlay_params +struct IVROverlay_IVROverlay_025_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42457,7 +42095,7 @@ struct IVROverlay_IVROverlay_026_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_025_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42465,7 +42103,7 @@ struct wow64_IVROverlay_IVROverlay_026_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_026_CreateOverlay_params +struct IVROverlay_IVROverlay_025_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42474,7 +42112,7 @@ struct IVROverlay_IVROverlay_026_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_025_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -42483,21 +42121,21 @@ struct wow64_IVROverlay_IVROverlay_026_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_026_DestroyOverlay_params +struct IVROverlay_IVROverlay_025_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_025_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_GetOverlayKey_params +struct IVROverlay_IVROverlay_025_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -42507,7 +42145,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -42517,7 +42155,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayName_params +struct IVROverlay_IVROverlay_025_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -42527,7 +42165,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -42537,7 +42175,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayName_params +struct IVROverlay_IVROverlay_025_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -42545,7 +42183,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -42553,7 +42191,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_026_GetOverlayImageData_params +struct IVROverlay_IVROverlay_025_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -42564,7 +42202,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -42575,21 +42213,21 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_026_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_025_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -42597,7 +42235,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -42605,21 +42243,21 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_026_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_025_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_SetOverlayFlag_params +struct IVROverlay_IVROverlay_025_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -42628,7 +42266,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -42637,7 +42275,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_026_GetOverlayFlag_params +struct IVROverlay_IVROverlay_025_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -42646,7 +42284,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -42655,7 +42293,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayFlags_params +struct IVROverlay_IVROverlay_025_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -42663,7 +42301,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -42671,7 +42309,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayColor_params +struct IVROverlay_IVROverlay_025_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -42681,7 +42319,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -42691,7 +42329,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_026_GetOverlayColor_params +struct IVROverlay_IVROverlay_025_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -42701,7 +42339,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -42711,7 +42349,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_026_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_025_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -42719,7 +42357,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -42727,7 +42365,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_026_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_025_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -42735,7 +42373,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -42743,7 +42381,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_025_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -42751,7 +42389,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -42759,7 +42397,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_026_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_025_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -42767,7 +42405,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -42775,7 +42413,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_026_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_025_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -42783,7 +42421,7 @@ struct IVROverlay_IVROverlay_026_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -42791,7 +42429,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_026_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_025_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -42799,7 +42437,7 @@ struct IVROverlay_IVROverlay_026_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -42807,7 +42445,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_025_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -42815,7 +42453,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -42823,7 +42461,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_026_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_025_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -42831,7 +42469,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -42839,7 +42477,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_026_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_025_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -42847,7 +42485,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayCurvature_params float fCurvature; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -42855,7 +42493,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayCurvature_params float fCurvature; }; -struct IVROverlay_IVROverlay_026_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_025_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -42863,7 +42501,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayCurvature_params float *pfCurvature; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -42871,39 +42509,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayCurvature_params W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVROverlay_IVROverlay_026_SetOverlayPreCurvePitch_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - float fRadians; -}; - -struct wow64_IVROverlay_IVROverlay_026_SetOverlayPreCurvePitch_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - float fRadians; -}; - -struct IVROverlay_IVROverlay_026_GetOverlayPreCurvePitch_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - float *pfRadians; -}; - -struct wow64_IVROverlay_IVROverlay_026_GetOverlayPreCurvePitch_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - W32_PTR(float *pfRadians, pfRadians, float *); -}; - -struct IVROverlay_IVROverlay_026_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_025_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -42911,7 +42517,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -42919,7 +42525,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_026_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_025_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -42927,7 +42533,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -42935,7 +42541,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_025_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -42943,7 +42549,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -42951,7 +42557,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_025_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -42959,7 +42565,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -42967,7 +42573,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_025_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -42975,7 +42581,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -42983,7 +42589,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_025_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -42992,7 +42598,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -43001,7 +42607,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_025_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -43010,7 +42616,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -43019,7 +42625,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43028,7 +42634,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43037,7 +42643,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43046,7 +42652,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43055,7 +42661,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -43064,7 +42670,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -43073,7 +42679,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -43083,7 +42689,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -43093,7 +42699,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43102,7 +42708,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative_params HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43111,7 +42717,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative_params W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative_params +struct IVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43120,7 +42726,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative_params const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -43129,7 +42735,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative_params W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_025_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -43137,7 +42743,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTransformCursor_params const HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -43145,7 +42751,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformCursor_params W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_025_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -43153,7 +42759,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTransformCursor_params HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -43161,7 +42767,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformCursor_params W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayTransformProjection_params +struct IVROverlay_IVROverlay_025_SetOverlayTransformProjection_params { struct u_iface u_iface; uint32_t _ret; @@ -43172,7 +42778,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTransformProjection_params uint32_t eEye; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformProjection_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTransformProjection_params { struct u_iface u_iface; uint32_t _ret; @@ -43183,49 +42789,49 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformProjection_params uint32_t eEye; }; -struct IVROverlay_IVROverlay_026_ShowOverlay_params +struct IVROverlay_IVROverlay_025_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_025_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_HideOverlay_params +struct IVROverlay_IVROverlay_025_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_025_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_IsOverlayVisible_params +struct IVROverlay_IVROverlay_025_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_025_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -43235,7 +42841,7 @@ struct IVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -43245,21 +42851,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_WaitFrameSync_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint32_t nTimeoutMs; -}; - -struct wow64_IVROverlay_IVROverlay_026_WaitFrameSync_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint32_t nTimeoutMs; -}; - -struct IVROverlay_IVROverlay_026_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_025_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -43268,7 +42860,7 @@ struct IVROverlay_IVROverlay_026_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_026_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_025_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -43277,7 +42869,7 @@ struct wow64_IVROverlay_IVROverlay_026_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_026_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_025_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -43285,7 +42877,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -43293,7 +42885,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_025_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -43301,7 +42893,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -43309,7 +42901,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_026_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_025_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -43317,7 +42909,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -43325,7 +42917,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_026_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_025_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -43333,7 +42925,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -43341,7 +42933,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_026_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_025_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -43350,7 +42942,7 @@ struct IVROverlay_IVROverlay_026_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_026_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_025_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -43359,21 +42951,21 @@ struct wow64_IVROverlay_IVROverlay_026_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_026_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_025_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_025_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_025_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -43383,7 +42975,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -43393,7 +42985,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration_params +struct IVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -43403,7 +42995,7 @@ struct IVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct wow64_IVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration_params +struct wow64_IVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -43413,7 +43005,7 @@ struct wow64_IVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct IVROverlay_IVROverlay_026_SetOverlayCursor_params +struct IVROverlay_IVROverlay_025_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -43421,7 +43013,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayCursor_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -43429,7 +43021,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct IVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -43437,7 +43029,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride_params const HmdVector2_t *pvCursor; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -43445,21 +43037,21 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride_params W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_SetOverlayTexture_params +struct IVROverlay_IVROverlay_025_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -43467,7 +43059,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -43475,21 +43067,21 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_026_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_025_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_025_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_SetOverlayRaw_params +struct IVROverlay_IVROverlay_025_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -43500,7 +43092,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -43511,7 +43103,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct IVROverlay_IVROverlay_026_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_025_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -43519,7 +43111,7 @@ struct IVROverlay_IVROverlay_026_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_026_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_025_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -43527,7 +43119,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTexture_params +struct IVROverlay_IVROverlay_025_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -43542,7 +43134,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -43557,7 +43149,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -43565,7 +43157,7 @@ struct IVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -43573,7 +43165,7 @@ struct wow64_IVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_026_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_025_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -43582,7 +43174,7 @@ struct IVROverlay_IVROverlay_026_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_025_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -43591,7 +43183,7 @@ struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_026_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_025_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43601,7 +43193,7 @@ struct IVROverlay_IVROverlay_026_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_026_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_025_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43611,33 +43203,33 @@ struct wow64_IVROverlay_IVROverlay_026_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_026_IsDashboardVisible_params +struct IVROverlay_IVROverlay_025_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_026_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_025_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_026_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_025_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_026_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_025_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -43645,7 +43237,7 @@ struct IVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -43653,7 +43245,7 @@ struct wow64_IVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -43661,7 +43253,7 @@ struct IVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -43669,31 +43261,31 @@ struct wow64_IVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_026_ShowDashboard_params +struct IVROverlay_IVROverlay_025_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_026_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_025_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_026_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_025_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_026_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_025_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_026_ShowKeyboard_params +struct IVROverlay_IVROverlay_025_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -43706,7 +43298,7 @@ struct IVROverlay_IVROverlay_026_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_026_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_025_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -43719,7 +43311,7 @@ struct wow64_IVROverlay_IVROverlay_026_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_026_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_025_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43733,7 +43325,7 @@ struct IVROverlay_IVROverlay_026_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_026_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_025_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43747,7 +43339,7 @@ struct wow64_IVROverlay_IVROverlay_026_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_026_GetKeyboardText_params +struct IVROverlay_IVROverlay_025_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -43755,7 +43347,7 @@ struct IVROverlay_IVROverlay_026_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_026_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_025_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -43763,45 +43355,45 @@ struct wow64_IVROverlay_IVROverlay_026_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_026_HideKeyboard_params +struct IVROverlay_IVROverlay_025_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_026_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_025_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_026_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_025_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43813,7 +43405,7 @@ struct IVROverlay_IVROverlay_026_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_026_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_025_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43825,17 +43417,17 @@ struct wow64_IVROverlay_IVROverlay_026_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_026_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_025_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_026_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_025_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_027_FindOverlay_params +struct IVROverlay_IVROverlay_026_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43843,7 +43435,7 @@ struct IVROverlay_IVROverlay_027_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_026_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43851,7 +43443,7 @@ struct wow64_IVROverlay_IVROverlay_027_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_027_CreateOverlay_params +struct IVROverlay_IVROverlay_026_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43860,7 +43452,7 @@ struct IVROverlay_IVROverlay_027_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_026_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -43869,21 +43461,21 @@ struct wow64_IVROverlay_IVROverlay_027_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_027_DestroyOverlay_params +struct IVROverlay_IVROverlay_026_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_026_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_GetOverlayKey_params +struct IVROverlay_IVROverlay_026_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -43893,7 +43485,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -43903,7 +43495,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayName_params +struct IVROverlay_IVROverlay_026_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -43913,7 +43505,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -43923,7 +43515,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayName_params +struct IVROverlay_IVROverlay_026_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -43931,7 +43523,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -43939,7 +43531,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_027_GetOverlayImageData_params +struct IVROverlay_IVROverlay_026_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -43950,7 +43542,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -43961,21 +43553,21 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_027_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_026_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -43983,7 +43575,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -43991,21 +43583,21 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_027_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_026_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_SetOverlayFlag_params +struct IVROverlay_IVROverlay_026_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -44014,7 +43606,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -44023,7 +43615,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_027_GetOverlayFlag_params +struct IVROverlay_IVROverlay_026_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -44032,7 +43624,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -44041,7 +43633,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayFlags_params +struct IVROverlay_IVROverlay_026_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -44049,7 +43641,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -44057,7 +43649,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayColor_params +struct IVROverlay_IVROverlay_026_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -44067,7 +43659,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -44077,7 +43669,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_027_GetOverlayColor_params +struct IVROverlay_IVROverlay_026_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -44087,7 +43679,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -44097,7 +43689,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_027_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_026_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -44105,7 +43697,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -44113,7 +43705,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_027_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_026_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -44121,7 +43713,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -44129,7 +43721,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_026_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -44137,7 +43729,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -44145,7 +43737,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_027_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_026_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -44153,7 +43745,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -44161,7 +43753,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_027_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_026_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -44169,7 +43761,7 @@ struct IVROverlay_IVROverlay_027_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -44177,7 +43769,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_027_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_026_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -44185,7 +43777,7 @@ struct IVROverlay_IVROverlay_027_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -44193,7 +43785,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_026_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -44201,7 +43793,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -44209,7 +43801,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_027_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_026_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -44217,7 +43809,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -44225,7 +43817,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_027_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_026_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -44233,7 +43825,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayCurvature_params float fCurvature; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -44241,7 +43833,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayCurvature_params float fCurvature; }; -struct IVROverlay_IVROverlay_027_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_026_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -44249,7 +43841,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayCurvature_params float *pfCurvature; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -44257,7 +43849,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayCurvature_params W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVROverlay_IVROverlay_027_SetOverlayPreCurvePitch_params +struct IVROverlay_IVROverlay_026_SetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -44265,7 +43857,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayPreCurvePitch_params float fRadians; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayPreCurvePitch_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -44273,7 +43865,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayPreCurvePitch_params float fRadians; }; -struct IVROverlay_IVROverlay_027_GetOverlayPreCurvePitch_params +struct IVROverlay_IVROverlay_026_GetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -44281,7 +43873,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayPreCurvePitch_params float *pfRadians; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayPreCurvePitch_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -44289,7 +43881,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayPreCurvePitch_params W32_PTR(float *pfRadians, pfRadians, float *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_026_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -44297,7 +43889,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -44305,7 +43897,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_027_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_026_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -44313,7 +43905,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -44321,7 +43913,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_026_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -44329,7 +43921,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -44337,7 +43929,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_026_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -44345,7 +43937,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -44353,7 +43945,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_026_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -44361,7 +43953,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -44369,7 +43961,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_026_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -44378,7 +43970,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -44387,7 +43979,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_026_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -44396,7 +43988,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -44405,7 +43997,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -44414,7 +44006,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -44423,7 +44015,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -44432,7 +44024,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -44441,7 +44033,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -44450,7 +44042,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -44459,7 +44051,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -44469,7 +44061,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -44479,7 +44071,43 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_027_SetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint64_t *ulOverlayHandleParent; + HmdMatrix34_t *pmatParentOverlayToOverlayTransform; +}; + +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint64_t *ulOverlayHandleParent, ulOverlayHandleParent, uint64_t *); + W32_PTR(HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, HmdMatrix34_t *); +}; + +struct IVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint64_t ulOverlayHandleParent; + const HmdMatrix34_t *pmatParentOverlayToOverlayTransform; +}; + +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint64_t ulOverlayHandleParent; + W32_PTR(const HmdMatrix34_t *pmatParentOverlayToOverlayTransform, pmatParentOverlayToOverlayTransform, const HmdMatrix34_t *); +}; + +struct IVROverlay_IVROverlay_026_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -44487,7 +44115,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTransformCursor_params const HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -44495,7 +44123,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformCursor_params W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_026_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -44503,7 +44131,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTransformCursor_params HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -44511,7 +44139,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformCursor_params W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayTransformProjection_params +struct IVROverlay_IVROverlay_026_SetOverlayTransformProjection_params { struct u_iface u_iface; uint32_t _ret; @@ -44522,7 +44150,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTransformProjection_params uint32_t eEye; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformProjection_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTransformProjection_params { struct u_iface u_iface; uint32_t _ret; @@ -44533,49 +44161,49 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformProjection_params uint32_t eEye; }; -struct IVROverlay_IVROverlay_027_ShowOverlay_params +struct IVROverlay_IVROverlay_026_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_026_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_HideOverlay_params +struct IVROverlay_IVROverlay_026_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_026_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_IsOverlayVisible_params +struct IVROverlay_IVROverlay_026_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_026_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -44585,7 +44213,7 @@ struct IVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -44595,39 +44223,39 @@ struct wow64_IVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_027_WaitFrameSync_params +struct IVROverlay_IVROverlay_026_WaitFrameSync_params { struct u_iface u_iface; uint32_t _ret; uint32_t nTimeoutMs; }; -struct wow64_IVROverlay_IVROverlay_027_WaitFrameSync_params +struct wow64_IVROverlay_IVROverlay_026_WaitFrameSync_params { struct u_iface u_iface; uint32_t _ret; uint32_t nTimeoutMs; }; -struct IVROverlay_IVROverlay_027_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_026_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - w_VREvent_t_223 *pEvent; + w_VREvent_t_1168 *pEvent; uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_027_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_026_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; - W32_PTR(w32_VREvent_t_223 *pEvent, pEvent, w32_VREvent_t_223 *); + W32_PTR(w32_VREvent_t_1168 *pEvent, pEvent, w32_VREvent_t_1168 *); uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_027_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_026_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -44635,7 +44263,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -44643,7 +44271,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_026_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -44651,7 +44279,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -44659,7 +44287,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_027_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_026_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -44667,7 +44295,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -44675,7 +44303,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_027_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_026_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -44683,7 +44311,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -44691,7 +44319,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_027_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_026_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -44700,7 +44328,7 @@ struct IVROverlay_IVROverlay_027_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_027_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_026_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -44709,21 +44337,21 @@ struct wow64_IVROverlay_IVROverlay_027_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_027_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_026_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_026_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_026_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -44733,7 +44361,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -44743,7 +44371,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration_params +struct IVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -44753,7 +44381,7 @@ struct IVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct wow64_IVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration_params +struct wow64_IVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -44763,7 +44391,7 @@ struct wow64_IVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct IVROverlay_IVROverlay_027_SetOverlayCursor_params +struct IVROverlay_IVROverlay_026_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -44771,7 +44399,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayCursor_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -44779,7 +44407,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct IVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -44787,7 +44415,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride_params const HmdVector2_t *pvCursor; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -44795,21 +44423,21 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride_params W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_SetOverlayTexture_params +struct IVROverlay_IVROverlay_026_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -44817,7 +44445,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -44825,21 +44453,21 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_027_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_026_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_026_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_SetOverlayRaw_params +struct IVROverlay_IVROverlay_026_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -44850,7 +44478,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -44861,7 +44489,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct IVROverlay_IVROverlay_027_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_026_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -44869,7 +44497,7 @@ struct IVROverlay_IVROverlay_027_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_027_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_026_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -44877,7 +44505,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTexture_params +struct IVROverlay_IVROverlay_026_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -44892,7 +44520,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -44907,7 +44535,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -44915,7 +44543,7 @@ struct IVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -44923,7 +44551,7 @@ struct wow64_IVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_027_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_026_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -44932,7 +44560,7 @@ struct IVROverlay_IVROverlay_027_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_026_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -44941,7 +44569,7 @@ struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_027_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_026_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -44951,7 +44579,7 @@ struct IVROverlay_IVROverlay_027_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_027_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_026_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -44961,33 +44589,33 @@ struct wow64_IVROverlay_IVROverlay_027_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_027_IsDashboardVisible_params +struct IVROverlay_IVROverlay_026_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_027_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_026_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_027_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_026_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_027_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_026_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -44995,7 +44623,7 @@ struct IVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -45003,7 +44631,7 @@ struct wow64_IVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -45011,7 +44639,7 @@ struct IVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -45019,31 +44647,31 @@ struct wow64_IVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_027_ShowDashboard_params +struct IVROverlay_IVROverlay_026_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_027_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_026_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_027_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_026_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_027_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_026_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_027_ShowKeyboard_params +struct IVROverlay_IVROverlay_026_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -45056,7 +44684,7 @@ struct IVROverlay_IVROverlay_027_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_027_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_026_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -45069,7 +44697,7 @@ struct wow64_IVROverlay_IVROverlay_027_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_027_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_026_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45083,7 +44711,7 @@ struct IVROverlay_IVROverlay_027_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_027_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_026_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45097,7 +44725,7 @@ struct wow64_IVROverlay_IVROverlay_027_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_027_GetKeyboardText_params +struct IVROverlay_IVROverlay_026_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -45105,7 +44733,7 @@ struct IVROverlay_IVROverlay_027_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_027_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_026_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -45113,45 +44741,45 @@ struct wow64_IVROverlay_IVROverlay_027_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_027_HideKeyboard_params +struct IVROverlay_IVROverlay_026_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_027_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_026_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_027_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_026_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45163,7 +44791,7 @@ struct IVROverlay_IVROverlay_027_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_027_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_026_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45175,17 +44803,17 @@ struct wow64_IVROverlay_IVROverlay_027_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_027_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_026_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_027_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_026_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_028_FindOverlay_params +struct IVROverlay_IVROverlay_027_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45193,7 +44821,7 @@ struct IVROverlay_IVROverlay_028_FindOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_FindOverlay_params +struct wow64_IVROverlay_IVROverlay_027_FindOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45201,7 +44829,7 @@ struct wow64_IVROverlay_IVROverlay_028_FindOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_028_CreateOverlay_params +struct IVROverlay_IVROverlay_027_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45210,7 +44838,7 @@ struct IVROverlay_IVROverlay_028_CreateOverlay_params uint64_t *pOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_CreateOverlay_params +struct wow64_IVROverlay_IVROverlay_027_CreateOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -45219,41 +44847,21 @@ struct wow64_IVROverlay_IVROverlay_028_CreateOverlay_params W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_028_CreateSubviewOverlay_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t parentOverlayHandle; - const char *pchSubviewOverlayKey; - const char *pchSubviewOverlayName; - uint64_t *pSubviewOverlayHandle; -}; - -struct wow64_IVROverlay_IVROverlay_028_CreateSubviewOverlay_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t parentOverlayHandle; - W32_PTR(const char *pchSubviewOverlayKey, pchSubviewOverlayKey, const char *); - W32_PTR(const char *pchSubviewOverlayName, pchSubviewOverlayName, const char *); - W32_PTR(uint64_t *pSubviewOverlayHandle, pSubviewOverlayHandle, uint64_t *); -}; - -struct IVROverlay_IVROverlay_028_DestroyOverlay_params +struct IVROverlay_IVROverlay_027_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_DestroyOverlay_params +struct wow64_IVROverlay_IVROverlay_027_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_GetOverlayKey_params +struct IVROverlay_IVROverlay_027_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -45263,7 +44871,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayKey_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayKey_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayKey_params { struct u_iface u_iface; uint32_t _ret; @@ -45273,7 +44881,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayKey_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayName_params +struct IVROverlay_IVROverlay_027_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -45283,7 +44891,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayName_params uint32_t *pError; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayName_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -45293,7 +44901,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayName_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayName_params +struct IVROverlay_IVROverlay_027_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -45301,7 +44909,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayName_params const char *pchName; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayName_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayName_params { struct u_iface u_iface; uint32_t _ret; @@ -45309,7 +44917,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayName_params W32_PTR(const char *pchName, pchName, const char *); }; -struct IVROverlay_IVROverlay_028_GetOverlayImageData_params +struct IVROverlay_IVROverlay_027_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -45320,7 +44928,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayImageData_params uint32_t *punHeight; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayImageData_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayImageData_params { struct u_iface u_iface; uint32_t _ret; @@ -45331,21 +44939,21 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayImageData_params W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayErrorNameFromEnum_params +struct IVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVROverlay_IVROverlay_028_SetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_027_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -45353,7 +44961,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayRenderingPid_params uint32_t unPID; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; @@ -45361,21 +44969,21 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayRenderingPid_params uint32_t unPID; }; -struct IVROverlay_IVROverlay_028_GetOverlayRenderingPid_params +struct IVROverlay_IVROverlay_027_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayRenderingPid_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_SetOverlayFlag_params +struct IVROverlay_IVROverlay_027_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -45384,7 +44992,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayFlag_params int8_t bEnabled; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -45393,7 +45001,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayFlag_params int8_t bEnabled; }; -struct IVROverlay_IVROverlay_028_GetOverlayFlag_params +struct IVROverlay_IVROverlay_027_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -45402,7 +45010,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayFlag_params int8_t *pbEnabled; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayFlag_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; @@ -45411,7 +45019,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayFlag_params W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayFlags_params +struct IVROverlay_IVROverlay_027_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -45419,7 +45027,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayFlags_params uint32_t *pFlags; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayFlags_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; @@ -45427,7 +45035,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayFlags_params W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayColor_params +struct IVROverlay_IVROverlay_027_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -45437,7 +45045,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayColor_params float fBlue; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -45447,7 +45055,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayColor_params float fBlue; }; -struct IVROverlay_IVROverlay_028_GetOverlayColor_params +struct IVROverlay_IVROverlay_027_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -45457,7 +45065,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayColor_params float *pfBlue; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayColor_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayColor_params { struct u_iface u_iface; uint32_t _ret; @@ -45467,7 +45075,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayColor_params W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVROverlay_IVROverlay_028_SetOverlayAlpha_params +struct IVROverlay_IVROverlay_027_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -45475,7 +45083,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayAlpha_params float fAlpha; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -45483,7 +45091,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayAlpha_params float fAlpha; }; -struct IVROverlay_IVROverlay_028_GetOverlayAlpha_params +struct IVROverlay_IVROverlay_027_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -45491,7 +45099,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayAlpha_params float *pfAlpha; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayAlpha_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; @@ -45499,7 +45107,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayAlpha_params W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_027_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -45507,7 +45115,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTexelAspect_params float fTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -45515,7 +45123,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTexelAspect_params float fTexelAspect; }; -struct IVROverlay_IVROverlay_028_GetOverlayTexelAspect_params +struct IVROverlay_IVROverlay_027_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -45523,7 +45131,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTexelAspect_params float *pfTexelAspect; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTexelAspect_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; @@ -45531,7 +45139,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTexelAspect_params W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVROverlay_IVROverlay_028_SetOverlaySortOrder_params +struct IVROverlay_IVROverlay_027_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -45539,7 +45147,7 @@ struct IVROverlay_IVROverlay_028_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -45547,7 +45155,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlaySortOrder_params uint32_t unSortOrder; }; -struct IVROverlay_IVROverlay_028_GetOverlaySortOrder_params +struct IVROverlay_IVROverlay_027_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -45555,7 +45163,7 @@ struct IVROverlay_IVROverlay_028_GetOverlaySortOrder_params uint32_t *punSortOrder; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlaySortOrder_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; @@ -45563,7 +45171,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlaySortOrder_params W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_027_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -45571,7 +45179,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -45579,7 +45187,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayWidthInMeters_params float fWidthInMeters; }; -struct IVROverlay_IVROverlay_028_GetOverlayWidthInMeters_params +struct IVROverlay_IVROverlay_027_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -45587,7 +45195,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayWidthInMeters_params float *pfWidthInMeters; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayWidthInMeters_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; @@ -45595,7 +45203,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayWidthInMeters_params W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVROverlay_IVROverlay_028_SetOverlayCurvature_params +struct IVROverlay_IVROverlay_027_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -45603,7 +45211,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayCurvature_params float fCurvature; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -45611,7 +45219,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayCurvature_params float fCurvature; }; -struct IVROverlay_IVROverlay_028_GetOverlayCurvature_params +struct IVROverlay_IVROverlay_027_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -45619,7 +45227,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayCurvature_params float *pfCurvature; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayCurvature_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; @@ -45627,7 +45235,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayCurvature_params W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVROverlay_IVROverlay_028_SetOverlayPreCurvePitch_params +struct IVROverlay_IVROverlay_027_SetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -45635,7 +45243,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayPreCurvePitch_params float fRadians; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayPreCurvePitch_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -45643,7 +45251,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayPreCurvePitch_params float fRadians; }; -struct IVROverlay_IVROverlay_028_GetOverlayPreCurvePitch_params +struct IVROverlay_IVROverlay_027_GetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -45651,7 +45259,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayPreCurvePitch_params float *pfRadians; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayPreCurvePitch_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; @@ -45659,7 +45267,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayPreCurvePitch_params W32_PTR(float *pfRadians, pfRadians, float *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_027_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -45667,7 +45275,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -45675,7 +45283,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTextureColorSpace_params uint32_t eTextureColorSpace; }; -struct IVROverlay_IVROverlay_028_GetOverlayTextureColorSpace_params +struct IVROverlay_IVROverlay_027_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -45683,7 +45291,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTextureColorSpace_params uint32_t *peTextureColorSpace; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureColorSpace_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureColorSpace_params { struct u_iface u_iface; uint32_t _ret; @@ -45691,7 +45299,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureColorSpace_params W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_027_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -45699,7 +45307,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTextureBounds_params const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -45707,7 +45315,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTextureBounds_params W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTextureBounds_params +struct IVROverlay_IVROverlay_027_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -45715,7 +45323,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTextureBounds_params VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureBounds_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; @@ -45723,7 +45331,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureBounds_params W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTransformType_params +struct IVROverlay_IVROverlay_027_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -45731,7 +45339,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTransformType_params uint32_t *peTransformType; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformType_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; @@ -45739,7 +45347,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformType_params W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_027_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -45748,7 +45356,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTransformAbsolute_params const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -45757,7 +45365,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformAbsolute_params W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTransformAbsolute_params +struct IVROverlay_IVROverlay_027_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -45766,7 +45374,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTransformAbsolute_params HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; @@ -45775,7 +45383,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformAbsolute_params W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -45784,7 +45392,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceRelative_params const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -45793,7 +45401,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceRelative_ W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceRelative_params +struct IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -45802,7 +45410,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceRelative_params HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceRelative_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; @@ -45811,7 +45419,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceRelative_ W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -45820,7 +45428,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceComponent_param const char *pchComponentName; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -45829,7 +45437,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceComponent W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceComponent_params +struct IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -45839,7 +45447,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceComponent_param uint32_t unComponentNameSize; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceComponent_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; @@ -45849,7 +45457,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceComponent uint32_t unComponentNameSize; }; -struct IVROverlay_IVROverlay_028_SetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_027_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -45857,7 +45465,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTransformCursor_params const HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -45865,7 +45473,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformCursor_params W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTransformCursor_params +struct IVROverlay_IVROverlay_027_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -45873,7 +45481,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTransformCursor_params HmdVector2_t *pvHotspot; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformCursor_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -45881,7 +45489,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformCursor_params W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayTransformProjection_params +struct IVROverlay_IVROverlay_027_SetOverlayTransformProjection_params { struct u_iface u_iface; uint32_t _ret; @@ -45892,7 +45500,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTransformProjection_params uint32_t eEye; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformProjection_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTransformProjection_params { struct u_iface u_iface; uint32_t _ret; @@ -45903,67 +45511,49 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformProjection_params uint32_t eEye; }; -struct IVROverlay_IVROverlay_028_SetSubviewPosition_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - float fX; - float fY; -}; - -struct wow64_IVROverlay_IVROverlay_028_SetSubviewPosition_params -{ - struct u_iface u_iface; - uint32_t _ret; - uint64_t ulOverlayHandle; - float fX; - float fY; -}; - -struct IVROverlay_IVROverlay_028_ShowOverlay_params +struct IVROverlay_IVROverlay_027_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_ShowOverlay_params +struct wow64_IVROverlay_IVROverlay_027_ShowOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_HideOverlay_params +struct IVROverlay_IVROverlay_027_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_HideOverlay_params +struct wow64_IVROverlay_IVROverlay_027_HideOverlay_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_IsOverlayVisible_params +struct IVROverlay_IVROverlay_027_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_IsOverlayVisible_params +struct wow64_IVROverlay_IVROverlay_027_IsOverlayVisible_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_GetTransformForOverlayCoordinates_params +struct IVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -45973,7 +45563,7 @@ struct IVROverlay_IVROverlay_028_GetTransformForOverlayCoordinates_params HmdMatrix34_t *pmatTransform; }; -struct wow64_IVROverlay_IVROverlay_028_GetTransformForOverlayCoordinates_params +struct wow64_IVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; @@ -45983,21 +45573,21 @@ struct wow64_IVROverlay_IVROverlay_028_GetTransformForOverlayCoordinates_params W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_028_WaitFrameSync_params +struct IVROverlay_IVROverlay_027_WaitFrameSync_params { struct u_iface u_iface; uint32_t _ret; uint32_t nTimeoutMs; }; -struct wow64_IVROverlay_IVROverlay_028_WaitFrameSync_params +struct wow64_IVROverlay_IVROverlay_027_WaitFrameSync_params { struct u_iface u_iface; uint32_t _ret; uint32_t nTimeoutMs; }; -struct IVROverlay_IVROverlay_028_PollNextOverlayEvent_params +struct IVROverlay_IVROverlay_027_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -46006,7 +45596,7 @@ struct IVROverlay_IVROverlay_028_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct wow64_IVROverlay_IVROverlay_028_PollNextOverlayEvent_params +struct wow64_IVROverlay_IVROverlay_027_PollNextOverlayEvent_params { struct u_iface u_iface; int8_t _ret; @@ -46015,7 +45605,7 @@ struct wow64_IVROverlay_IVROverlay_028_PollNextOverlayEvent_params uint32_t uncbVREvent; }; -struct IVROverlay_IVROverlay_028_GetOverlayInputMethod_params +struct IVROverlay_IVROverlay_027_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -46023,7 +45613,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayInputMethod_params uint32_t *peInputMethod; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -46031,7 +45621,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayInputMethod_params W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayInputMethod_params +struct IVROverlay_IVROverlay_027_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -46039,7 +45629,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayInputMethod_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; @@ -46047,7 +45637,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayInputMethod_params uint32_t eInputMethod; }; -struct IVROverlay_IVROverlay_028_GetOverlayMouseScale_params +struct IVROverlay_IVROverlay_027_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -46055,7 +45645,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayMouseScale_params HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -46063,7 +45653,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayMouseScale_params W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVROverlay_IVROverlay_028_SetOverlayMouseScale_params +struct IVROverlay_IVROverlay_027_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -46071,7 +45661,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayMouseScale_params const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayMouseScale_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; @@ -46079,7 +45669,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayMouseScale_params W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_028_ComputeOverlayIntersection_params +struct IVROverlay_IVROverlay_027_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -46088,7 +45678,7 @@ struct IVROverlay_IVROverlay_028_ComputeOverlayIntersection_params VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVROverlay_IVROverlay_028_ComputeOverlayIntersection_params +struct wow64_IVROverlay_IVROverlay_027_ComputeOverlayIntersection_params { struct u_iface u_iface; int8_t _ret; @@ -46097,21 +45687,21 @@ struct wow64_IVROverlay_IVROverlay_028_ComputeOverlayIntersection_params W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVROverlay_IVROverlay_028_IsHoverTargetOverlay_params +struct IVROverlay_IVROverlay_027_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_IsHoverTargetOverlay_params +struct wow64_IVROverlay_IVROverlay_027_IsHoverTargetOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_SetOverlayIntersectionMask_params +struct IVROverlay_IVROverlay_027_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -46121,7 +45711,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayIntersectionMask_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; @@ -46131,7 +45721,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayIntersectionMask_params uint32_t unPrimitiveSize; }; -struct IVROverlay_IVROverlay_028_TriggerLaserMouseHapticVibration_params +struct IVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -46141,7 +45731,7 @@ struct IVROverlay_IVROverlay_028_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct wow64_IVROverlay_IVROverlay_028_TriggerLaserMouseHapticVibration_params +struct wow64_IVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; @@ -46151,7 +45741,7 @@ struct wow64_IVROverlay_IVROverlay_028_TriggerLaserMouseHapticVibration_params float fAmplitude; }; -struct IVROverlay_IVROverlay_028_SetOverlayCursor_params +struct IVROverlay_IVROverlay_027_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -46159,7 +45749,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayCursor_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; @@ -46167,7 +45757,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayCursor_params uint64_t ulCursorHandle; }; -struct IVROverlay_IVROverlay_028_SetOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -46175,7 +45765,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayCursorPositionOverride_params const HmdVector2_t *pvCursor; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; @@ -46183,21 +45773,21 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayCursorPositionOverride_params W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); }; -struct IVROverlay_IVROverlay_028_ClearOverlayCursorPositionOverride_params +struct IVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_ClearOverlayCursorPositionOverride_params +struct wow64_IVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_SetOverlayTexture_params +struct IVROverlay_IVROverlay_027_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -46205,7 +45795,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayTexture_params const w_Texture_t *pTexture; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -46213,21 +45803,21 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayTexture_params W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVROverlay_IVROverlay_028_ClearOverlayTexture_params +struct IVROverlay_IVROverlay_027_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_ClearOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_027_ClearOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_SetOverlayRaw_params +struct IVROverlay_IVROverlay_027_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -46238,7 +45828,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayRaw_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayRaw_params { struct u_iface u_iface; uint32_t _ret; @@ -46249,7 +45839,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayRaw_params uint32_t unBytesPerPixel; }; -struct IVROverlay_IVROverlay_028_SetOverlayFromFile_params +struct IVROverlay_IVROverlay_027_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -46257,7 +45847,7 @@ struct IVROverlay_IVROverlay_028_SetOverlayFromFile_params const char *pchFilePath; }; -struct wow64_IVROverlay_IVROverlay_028_SetOverlayFromFile_params +struct wow64_IVROverlay_IVROverlay_027_SetOverlayFromFile_params { struct u_iface u_iface; uint32_t _ret; @@ -46265,7 +45855,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetOverlayFromFile_params W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTexture_params +struct IVROverlay_IVROverlay_027_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -46280,7 +45870,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTexture_params VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTexture_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; @@ -46295,7 +45885,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTexture_params W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVROverlay_IVROverlay_028_ReleaseNativeOverlayHandle_params +struct IVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -46303,7 +45893,7 @@ struct IVROverlay_IVROverlay_028_ReleaseNativeOverlayHandle_params void *pNativeTextureHandle; }; -struct wow64_IVROverlay_IVROverlay_028_ReleaseNativeOverlayHandle_params +struct wow64_IVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; @@ -46311,7 +45901,7 @@ struct wow64_IVROverlay_IVROverlay_028_ReleaseNativeOverlayHandle_params W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVROverlay_IVROverlay_028_GetOverlayTextureSize_params +struct IVROverlay_IVROverlay_027_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -46320,7 +45910,7 @@ struct IVROverlay_IVROverlay_028_GetOverlayTextureSize_params uint32_t *pHeight; }; -struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureSize_params +struct wow64_IVROverlay_IVROverlay_027_GetOverlayTextureSize_params { struct u_iface u_iface; uint32_t _ret; @@ -46329,7 +45919,7 @@ struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureSize_params W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVROverlay_IVROverlay_028_CreateDashboardOverlay_params +struct IVROverlay_IVROverlay_027_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -46339,7 +45929,7 @@ struct IVROverlay_IVROverlay_028_CreateDashboardOverlay_params uint64_t *pThumbnailHandle; }; -struct wow64_IVROverlay_IVROverlay_028_CreateDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_027_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -46349,33 +45939,33 @@ struct wow64_IVROverlay_IVROverlay_028_CreateDashboardOverlay_params W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVROverlay_IVROverlay_028_IsDashboardVisible_params +struct IVROverlay_IVROverlay_027_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVROverlay_IVROverlay_028_IsDashboardVisible_params +struct wow64_IVROverlay_IVROverlay_027_IsDashboardVisible_params { struct u_iface u_iface; int8_t _ret; }; -struct IVROverlay_IVROverlay_028_IsActiveDashboardOverlay_params +struct IVROverlay_IVROverlay_027_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct wow64_IVROverlay_IVROverlay_028_IsActiveDashboardOverlay_params +struct wow64_IVROverlay_IVROverlay_027_IsActiveDashboardOverlay_params { struct u_iface u_iface; int8_t _ret; uint64_t ulOverlayHandle; }; -struct IVROverlay_IVROverlay_028_SetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -46383,7 +45973,7 @@ struct IVROverlay_IVROverlay_028_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct wow64_IVROverlay_IVROverlay_028_SetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -46391,7 +45981,7 @@ struct wow64_IVROverlay_IVROverlay_028_SetDashboardOverlaySceneProcess_params uint32_t unProcessId; }; -struct IVROverlay_IVROverlay_028_GetDashboardOverlaySceneProcess_params +struct IVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -46399,7 +45989,7 @@ struct IVROverlay_IVROverlay_028_GetDashboardOverlaySceneProcess_params uint32_t *punProcessId; }; -struct wow64_IVROverlay_IVROverlay_028_GetDashboardOverlaySceneProcess_params +struct wow64_IVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess_params { struct u_iface u_iface; uint32_t _ret; @@ -46407,31 +45997,31 @@ struct wow64_IVROverlay_IVROverlay_028_GetDashboardOverlaySceneProcess_params W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); }; -struct IVROverlay_IVROverlay_028_ShowDashboard_params +struct IVROverlay_IVROverlay_027_ShowDashboard_params { struct u_iface u_iface; const char *pchOverlayToShow; }; -struct wow64_IVROverlay_IVROverlay_028_ShowDashboard_params +struct wow64_IVROverlay_IVROverlay_027_ShowDashboard_params { struct u_iface u_iface; W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); }; -struct IVROverlay_IVROverlay_028_GetPrimaryDashboardDevice_params +struct IVROverlay_IVROverlay_027_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct wow64_IVROverlay_IVROverlay_028_GetPrimaryDashboardDevice_params +struct wow64_IVROverlay_IVROverlay_027_GetPrimaryDashboardDevice_params { struct u_iface u_iface; uint32_t _ret; }; -struct IVROverlay_IVROverlay_028_ShowKeyboard_params +struct IVROverlay_IVROverlay_027_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -46444,7 +46034,7 @@ struct IVROverlay_IVROverlay_028_ShowKeyboard_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_028_ShowKeyboard_params +struct wow64_IVROverlay_IVROverlay_027_ShowKeyboard_params { struct u_iface u_iface; uint32_t _ret; @@ -46457,7 +46047,7 @@ struct wow64_IVROverlay_IVROverlay_028_ShowKeyboard_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_028_ShowKeyboardForOverlay_params +struct IVROverlay_IVROverlay_027_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -46471,7 +46061,7 @@ struct IVROverlay_IVROverlay_028_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct wow64_IVROverlay_IVROverlay_028_ShowKeyboardForOverlay_params +struct wow64_IVROverlay_IVROverlay_027_ShowKeyboardForOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -46485,7 +46075,7 @@ struct wow64_IVROverlay_IVROverlay_028_ShowKeyboardForOverlay_params uint64_t uUserValue; }; -struct IVROverlay_IVROverlay_028_GetKeyboardText_params +struct IVROverlay_IVROverlay_027_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -46493,7 +46083,7 @@ struct IVROverlay_IVROverlay_028_GetKeyboardText_params uint32_t cchText; }; -struct wow64_IVROverlay_IVROverlay_028_GetKeyboardText_params +struct wow64_IVROverlay_IVROverlay_027_GetKeyboardText_params { struct u_iface u_iface; uint32_t _ret; @@ -46501,45 +46091,45 @@ struct wow64_IVROverlay_IVROverlay_028_GetKeyboardText_params uint32_t cchText; }; -struct IVROverlay_IVROverlay_028_HideKeyboard_params +struct IVROverlay_IVROverlay_027_HideKeyboard_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_028_HideKeyboard_params +struct wow64_IVROverlay_IVROverlay_027_HideKeyboard_params { struct u_iface u_iface; }; -struct IVROverlay_IVROverlay_028_SetKeyboardTransformAbsolute_params +struct IVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; }; -struct wow64_IVROverlay_IVROverlay_028_SetKeyboardTransformAbsolute_params +struct wow64_IVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute_params { struct u_iface u_iface; uint32_t eTrackingOrigin; W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); }; -struct IVROverlay_IVROverlay_028_SetKeyboardPositionForOverlay_params +struct IVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct wow64_IVROverlay_IVROverlay_028_SetKeyboardPositionForOverlay_params +struct wow64_IVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay_params { struct u_iface u_iface; uint64_t ulOverlayHandle; HmdRect2_t avoidRect; }; -struct IVROverlay_IVROverlay_028_ShowMessageOverlay_params +struct IVROverlay_IVROverlay_027_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -46551,7 +46141,7 @@ struct IVROverlay_IVROverlay_028_ShowMessageOverlay_params const char *pchButton3Text; }; -struct wow64_IVROverlay_IVROverlay_028_ShowMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_027_ShowMessageOverlay_params { struct u_iface u_iface; uint32_t _ret; @@ -46563,1133 +46153,2611 @@ struct wow64_IVROverlay_IVROverlay_028_ShowMessageOverlay_params W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); }; -struct IVROverlay_IVROverlay_028_CloseMessageOverlay_params +struct IVROverlay_IVROverlay_027_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct wow64_IVROverlay_IVROverlay_028_CloseMessageOverlay_params +struct wow64_IVROverlay_IVROverlay_027_CloseMessageOverlay_params { struct u_iface u_iface; }; -struct IVRRenderModels_IVRRenderModels_001_LoadRenderModel_params +struct IVROverlay_IVROverlay_028_FindOverlay_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - w_RenderModel_t_090 *pRenderModel; + uint32_t _ret; + const char *pchOverlayKey; + uint64_t *pOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_001_LoadRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_FindOverlay_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); + uint32_t _ret; + W32_PTR(const char *pchOverlayKey, pchOverlayKey, const char *); + W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVRRenderModels_IVRRenderModels_001_FreeRenderModel_params +struct IVROverlay_IVROverlay_028_CreateOverlay_params { struct u_iface u_iface; - w_RenderModel_t_090 *pRenderModel; + uint32_t _ret; + const char *pchOverlayKey; + const char *pchOverlayName; + uint64_t *pOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_001_FreeRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_CreateOverlay_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); + uint32_t _ret; + W32_PTR(const char *pchOverlayKey, pchOverlayKey, const char *); + W32_PTR(const char *pchOverlayName, pchOverlayName, const char *); + W32_PTR(uint64_t *pOverlayHandle, pOverlayHandle, uint64_t *); }; -struct IVRRenderModels_IVRRenderModels_001_GetRenderModelName_params +struct IVROverlay_IVROverlay_028_CreateSubviewOverlay_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - char *pchRenderModelName; - uint32_t unRenderModelNameLen; + uint64_t parentOverlayHandle; + const char *pchSubviewOverlayKey; + const char *pchSubviewOverlayName; + uint64_t *pSubviewOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_CreateSubviewOverlay_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); - uint32_t unRenderModelNameLen; + uint64_t parentOverlayHandle; + W32_PTR(const char *pchSubviewOverlayKey, pchSubviewOverlayKey, const char *); + W32_PTR(const char *pchSubviewOverlayName, pchSubviewOverlayName, const char *); + W32_PTR(uint64_t *pSubviewOverlayHandle, pSubviewOverlayHandle, uint64_t *); }; -struct IVRRenderModels_IVRRenderModels_001_GetRenderModelCount_params +struct IVROverlay_IVROverlay_028_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelCount_params +struct wow64_IVROverlay_IVROverlay_028_DestroyOverlay_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_002_LoadRenderModel_params +struct IVROverlay_IVROverlay_028_GetOverlayKey_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - w_RenderModel_t_0912 **ppRenderModel; + uint32_t _ret; + uint64_t ulOverlayHandle; + char *pchValue; + uint32_t unBufferSize; + uint32_t *pError; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_LoadRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayKey_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(char *pchValue, pchValue, char *); + uint32_t unBufferSize; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_002_FreeRenderModel_params +struct IVROverlay_IVROverlay_028_GetOverlayName_params { struct u_iface u_iface; - w_RenderModel_t_0912 *pRenderModel; + uint32_t _ret; + uint64_t ulOverlayHandle; + char *pchValue; + uint32_t unBufferSize; + uint32_t *pError; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_FreeRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayName_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(char *pchValue, pchValue, char *); + uint32_t unBufferSize; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_002_LoadTexture_params +struct IVROverlay_IVROverlay_028_SetOverlayName_params { struct u_iface u_iface; - int8_t _ret; - int32_t textureId; - w_RenderModel_TextureMap_t_090 **ppTexture; + uint32_t _ret; + uint64_t ulOverlayHandle; + const char *pchName; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_LoadTexture_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayName_params { struct u_iface u_iface; - int8_t _ret; - int32_t textureId; - W32_PTR(w32_RenderModel_TextureMap_t_090 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_090 **); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(const char *pchName, pchName, const char *); }; -struct IVRRenderModels_IVRRenderModels_002_FreeTexture_params +struct IVROverlay_IVROverlay_028_GetOverlayImageData_params { struct u_iface u_iface; - w_RenderModel_TextureMap_t_090 *pTexture; + uint32_t _ret; + uint64_t ulOverlayHandle; + void *pvBuffer; + uint32_t unBufferSize; + uint32_t *punWidth; + uint32_t *punHeight; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_FreeTexture_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayImageData_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_TextureMap_t_090 *pTexture, pTexture, w32_RenderModel_TextureMap_t_090 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(void *pvBuffer, pvBuffer, void *); + uint32_t unBufferSize; + W32_PTR(uint32_t *punWidth, punWidth, uint32_t *); + W32_PTR(uint32_t *punHeight, punHeight, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_002_GetRenderModelName_params +struct IVROverlay_IVROverlay_028_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t unRenderModelIndex; - char *pchRenderModelName; - uint32_t unRenderModelNameLen; + struct u_buffer _ret; + uint32_t error; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayErrorNameFromEnum_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t unRenderModelIndex; - W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); - uint32_t unRenderModelNameLen; + struct u_buffer _ret; + uint32_t error; }; -struct IVRRenderModels_IVRRenderModels_002_GetRenderModelCount_params +struct IVROverlay_IVROverlay_028_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t unPID; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetRenderModelCount_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t unPID; }; -struct IVRRenderModels_IVRRenderModels_002_GetComponentCount_params +struct IVROverlay_IVROverlay_028_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentCount_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayRenderingPid_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_002_GetComponentName_params +struct IVROverlay_IVROverlay_028_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - uint32_t unComponentIndex; - char *pchComponentName; - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + uint32_t eOverlayFlag; + int8_t bEnabled; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentName_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayFlag_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - uint32_t unComponentIndex; - W32_PTR(char *pchComponentName, pchComponentName, char *); - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + uint32_t eOverlayFlag; + int8_t bEnabled; }; -struct IVRRenderModels_IVRRenderModels_002_GetComponentButtonMask_params +struct IVROverlay_IVROverlay_028_GetOverlayFlag_params { struct u_iface u_iface; - uint64_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eOverlayFlag; + int8_t *pbEnabled; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentButtonMask_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayFlag_params { struct u_iface u_iface; - uint64_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eOverlayFlag; + W32_PTR(int8_t *pbEnabled, pbEnabled, int8_t *); }; -struct IVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName_params +struct IVROverlay_IVROverlay_028_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - char *pchComponentRenderModelName; - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + uint32_t *pFlags; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayFlags_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *pFlags, pFlags, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_002_GetComponentState_params +struct IVROverlay_IVROverlay_028_SetOverlayColor_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - const w_VRControllerState001_t *pControllerState; - RenderModel_ComponentState_t *pComponentState; + uint32_t _ret; + uint64_t ulOverlayHandle; + float fRed; + float fGreen; + float fBlue; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentState_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayColor_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); - W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); + uint32_t _ret; + uint64_t ulOverlayHandle; + float fRed; + float fGreen; + float fBlue; }; -struct IVRRenderModels_IVRRenderModels_002_RenderModelHasComponent_params +struct IVROverlay_IVROverlay_028_GetOverlayColor_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; + float *pfRed; + float *pfGreen; + float *pfBlue; }; -struct wow64_IVRRenderModels_IVRRenderModels_002_RenderModelHasComponent_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayColor_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(float *pfRed, pfRed, float *); + W32_PTR(float *pfGreen, pfGreen, float *); + W32_PTR(float *pfBlue, pfBlue, float *); }; -struct IVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async_params +struct IVROverlay_IVROverlay_028_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - w_RenderModel_t_0912 **ppRenderModel; + uint64_t ulOverlayHandle; + float fAlpha; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayAlpha_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); + uint64_t ulOverlayHandle; + float fAlpha; }; -struct IVRRenderModels_IVRRenderModels_004_FreeRenderModel_params +struct IVROverlay_IVROverlay_028_GetOverlayAlpha_params { struct u_iface u_iface; - w_RenderModel_t_0912 *pRenderModel; + uint32_t _ret; + uint64_t ulOverlayHandle; + float *pfAlpha; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_FreeRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayAlpha_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(float *pfAlpha, pfAlpha, float *); }; -struct IVRRenderModels_IVRRenderModels_004_LoadTexture_Async_params +struct IVROverlay_IVROverlay_028_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - w_RenderModel_TextureMap_t_090 **ppTexture; + uint64_t ulOverlayHandle; + float fTexelAspect; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_LoadTexture_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTexelAspect_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(w32_RenderModel_TextureMap_t_090 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_090 **); + uint64_t ulOverlayHandle; + float fTexelAspect; }; -struct IVRRenderModels_IVRRenderModels_004_FreeTexture_params +struct IVROverlay_IVROverlay_028_GetOverlayTexelAspect_params { struct u_iface u_iface; - w_RenderModel_TextureMap_t_090 *pTexture; + uint32_t _ret; + uint64_t ulOverlayHandle; + float *pfTexelAspect; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_FreeTexture_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTexelAspect_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_TextureMap_t_090 *pTexture, pTexture, w32_RenderModel_TextureMap_t_090 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(float *pfTexelAspect, pfTexelAspect, float *); }; -struct IVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async_params +struct IVROverlay_IVROverlay_028_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - void *pD3D11Device; - void **ppD3D11Texture2D; + uint64_t ulOverlayHandle; + uint32_t unSortOrder; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlaySortOrder_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(void *pD3D11Device, pD3D11Device, void *); - W32_PTR(void **ppD3D11Texture2D, ppD3D11Texture2D, void **); + uint64_t ulOverlayHandle; + uint32_t unSortOrder; }; -struct IVRRenderModels_IVRRenderModels_004_FreeTextureD3D11_params +struct IVROverlay_IVROverlay_028_GetOverlaySortOrder_params { struct u_iface u_iface; - void *pD3D11Texture2D; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *punSortOrder; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_FreeTextureD3D11_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlaySortOrder_params { struct u_iface u_iface; - W32_PTR(void *pD3D11Texture2D, pD3D11Texture2D, void *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *punSortOrder, punSortOrder, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_004_GetRenderModelName_params +struct IVROverlay_IVROverlay_028_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - char *pchRenderModelName; - uint32_t unRenderModelNameLen; + uint64_t ulOverlayHandle; + float fWidthInMeters; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); - uint32_t unRenderModelNameLen; + uint64_t ulOverlayHandle; + float fWidthInMeters; }; -struct IVRRenderModels_IVRRenderModels_004_GetRenderModelCount_params +struct IVROverlay_IVROverlay_028_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + float *pfWidthInMeters; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetRenderModelCount_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayWidthInMeters_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(float *pfWidthInMeters, pfWidthInMeters, float *); }; -struct IVRRenderModels_IVRRenderModels_004_GetComponentCount_params +struct IVROverlay_IVROverlay_028_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; + uint64_t ulOverlayHandle; + float fCurvature; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentCount_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint64_t ulOverlayHandle; + float fCurvature; }; -struct IVRRenderModels_IVRRenderModels_004_GetComponentName_params +struct IVROverlay_IVROverlay_028_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - uint32_t unComponentIndex; - char *pchComponentName; - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + float *pfCurvature; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentName_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayCurvature_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - uint32_t unComponentIndex; - W32_PTR(char *pchComponentName, pchComponentName, char *); - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + W32_PTR(float *pfCurvature, pfCurvature, float *); }; -struct IVRRenderModels_IVRRenderModels_004_GetComponentButtonMask_params +struct IVROverlay_IVROverlay_028_SetOverlayPreCurvePitch_params { struct u_iface u_iface; - uint64_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; + float fRadians; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentButtonMask_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayPreCurvePitch_params { struct u_iface u_iface; - uint64_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; + float fRadians; }; -struct IVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName_params +struct IVROverlay_IVROverlay_028_GetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - char *pchComponentRenderModelName; - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + float *pfRadians; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayPreCurvePitch_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + W32_PTR(float *pfRadians, pfRadians, float *); }; -struct IVRRenderModels_IVRRenderModels_004_GetComponentState_params +struct IVROverlay_IVROverlay_028_SetOverlayTextureColorSpace_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - const w_VRControllerState001_t *pControllerState; - const RenderModel_ControllerMode_State_t *pState; - RenderModel_ComponentState_t *pComponentState; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eTextureColorSpace; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentState_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTextureColorSpace_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); - W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); - W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eTextureColorSpace; }; -struct IVRRenderModels_IVRRenderModels_004_RenderModelHasComponent_params +struct IVROverlay_IVROverlay_028_GetOverlayTextureColorSpace_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *peTextureColorSpace; }; -struct wow64_IVRRenderModels_IVRRenderModels_004_RenderModelHasComponent_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureColorSpace_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *peTextureColorSpace, peTextureColorSpace, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async_params +struct IVROverlay_IVROverlay_028_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - w_RenderModel_t_0912 **ppRenderModel; + uint64_t ulOverlayHandle; + const VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTextureBounds_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); + uint64_t ulOverlayHandle; + W32_PTR(const VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, const VRTextureBounds_t *); }; -struct IVRRenderModels_IVRRenderModels_005_FreeRenderModel_params +struct IVROverlay_IVROverlay_028_GetOverlayTextureBounds_params { struct u_iface u_iface; - w_RenderModel_t_0912 *pRenderModel; + uint32_t _ret; + uint64_t ulOverlayHandle; + VRTextureBounds_t *pOverlayTextureBounds; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_FreeRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureBounds_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(VRTextureBounds_t *pOverlayTextureBounds, pOverlayTextureBounds, VRTextureBounds_t *); }; -struct IVRRenderModels_IVRRenderModels_005_LoadTexture_Async_params +struct IVROverlay_IVROverlay_028_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - w_RenderModel_TextureMap_t_090 **ppTexture; + uint64_t ulOverlayHandle; + uint32_t *peTransformType; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_LoadTexture_Async_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformType_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(w32_RenderModel_TextureMap_t_090 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_090 **); + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *peTransformType, peTransformType, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_005_FreeTexture_params +struct IVROverlay_IVROverlay_028_SetOverlayTransformAbsolute_params { struct u_iface u_iface; - w_RenderModel_TextureMap_t_090 *pTexture; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eTrackingOrigin; + const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_FreeTexture_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformAbsolute_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_TextureMap_t_090 *pTexture, pTexture, w32_RenderModel_TextureMap_t_090 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eTrackingOrigin; + W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); }; -struct IVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async_params +struct IVROverlay_IVROverlay_028_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - void *pD3D11Device; - void **ppD3D11Texture2D; + uint64_t ulOverlayHandle; + uint32_t *peTrackingOrigin; + HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformAbsolute_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(void *pD3D11Device, pD3D11Device, void *); - W32_PTR(void **ppD3D11Texture2D, ppD3D11Texture2D, void **); + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *peTrackingOrigin, peTrackingOrigin, uint32_t *); + W32_PTR(HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, HmdMatrix34_t *); }; -struct IVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async_params +struct IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - void *pDstTexture; + uint64_t ulOverlayHandle; + uint32_t unTrackedDevice; + const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(void *pDstTexture, pDstTexture, void *); + uint64_t ulOverlayHandle; + uint32_t unTrackedDevice; + W32_PTR(const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, const HmdMatrix34_t *); }; -struct IVRRenderModels_IVRRenderModels_005_FreeTextureD3D11_params +struct IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; - void *pD3D11Texture2D; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *punTrackedDevice; + HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_FreeTextureD3D11_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceRelative_params { struct u_iface u_iface; - W32_PTR(void *pD3D11Texture2D, pD3D11Texture2D, void *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *punTrackedDevice, punTrackedDevice, uint32_t *); + W32_PTR(HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform, pmatTrackedDeviceToOverlayTransform, HmdMatrix34_t *); }; -struct IVRRenderModels_IVRRenderModels_005_GetRenderModelName_params +struct IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - char *pchRenderModelName; - uint32_t unRenderModelNameLen; -}; + uint64_t ulOverlayHandle; + uint32_t unDeviceIndex; + const char *pchComponentName; +}; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); - uint32_t unRenderModelNameLen; + uint64_t ulOverlayHandle; + uint32_t unDeviceIndex; + W32_PTR(const char *pchComponentName, pchComponentName, const char *); }; -struct IVRRenderModels_IVRRenderModels_005_GetRenderModelCount_params +struct IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *punDeviceIndex; + char *pchComponentName; + uint32_t unComponentNameSize; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelCount_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformTrackedDeviceComponent_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *punDeviceIndex, punDeviceIndex, uint32_t *); + W32_PTR(char *pchComponentName, pchComponentName, char *); + uint32_t unComponentNameSize; }; -struct IVRRenderModels_IVRRenderModels_005_GetComponentCount_params +struct IVROverlay_IVROverlay_028_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; + uint64_t ulCursorOverlayHandle; + const HmdVector2_t *pvHotspot; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentCount_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint64_t ulCursorOverlayHandle; + W32_PTR(const HmdVector2_t *pvHotspot, pvHotspot, const HmdVector2_t *); }; -struct IVRRenderModels_IVRRenderModels_005_GetComponentName_params +struct IVROverlay_IVROverlay_028_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - uint32_t unComponentIndex; - char *pchComponentName; - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + HmdVector2_t *pvHotspot; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentName_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTransformCursor_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - uint32_t unComponentIndex; - W32_PTR(char *pchComponentName, pchComponentName, char *); - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + W32_PTR(HmdVector2_t *pvHotspot, pvHotspot, HmdVector2_t *); }; -struct IVRRenderModels_IVRRenderModels_005_GetComponentButtonMask_params +struct IVROverlay_IVROverlay_028_SetOverlayTransformProjection_params { struct u_iface u_iface; - uint64_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eTrackingOrigin; + const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform; + const VROverlayProjection_t *pProjection; + uint32_t eEye; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentButtonMask_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTransformProjection_params { struct u_iface u_iface; - uint64_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eTrackingOrigin; + W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform, pmatTrackingOriginToOverlayTransform, const HmdMatrix34_t *); + W32_PTR(const VROverlayProjection_t *pProjection, pProjection, const VROverlayProjection_t *); + uint32_t eEye; }; -struct IVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName_params +struct IVROverlay_IVROverlay_028_SetSubviewPosition_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - char *pchComponentRenderModelName; - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + float fX; + float fY; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_SetSubviewPosition_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + float fX; + float fY; }; -struct IVRRenderModels_IVRRenderModels_005_GetComponentState_params +struct IVROverlay_IVROverlay_028_ShowOverlay_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - const w_VRControllerState001_t *pControllerState; - const RenderModel_ControllerMode_State_t *pState; - RenderModel_ComponentState_t *pComponentState; + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentState_params +struct wow64_IVROverlay_IVROverlay_028_ShowOverlay_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); - W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); - W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_005_RenderModelHasComponent_params +struct IVROverlay_IVROverlay_028_HideOverlay_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_RenderModelHasComponent_params +struct wow64_IVROverlay_IVROverlay_028_HideOverlay_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL_params +struct IVROverlay_IVROverlay_028_IsOverlayVisible_params { struct u_iface u_iface; - uint32_t _ret; - const char *pchRenderModelName; - char *pchThumbnailURL; - uint32_t unThumbnailURLLen; - uint32_t *peError; + int8_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL_params +struct wow64_IVROverlay_IVROverlay_028_IsOverlayVisible_params { struct u_iface u_iface; - uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(char *pchThumbnailURL, pchThumbnailURL, char *); - uint32_t unThumbnailURLLen; - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath_params +struct IVROverlay_IVROverlay_028_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - char *pchOriginalPath; - uint32_t unOriginalPathLen; - uint32_t *peError; + uint64_t ulOverlayHandle; + uint32_t eTrackingOrigin; + HmdVector2_t coordinatesInOverlay; + HmdMatrix34_t *pmatTransform; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath_params +struct wow64_IVROverlay_IVROverlay_028_GetTransformForOverlayCoordinates_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(char *pchOriginalPath, pchOriginalPath, char *); - uint32_t unOriginalPathLen; - W32_PTR(uint32_t *peError, peError, uint32_t *); + uint64_t ulOverlayHandle; + uint32_t eTrackingOrigin; + HmdVector2_t coordinatesInOverlay; + W32_PTR(HmdMatrix34_t *pmatTransform, pmatTransform, HmdMatrix34_t *); }; -struct IVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum_params +struct IVROverlay_IVROverlay_028_WaitFrameSync_params { struct u_iface u_iface; - struct u_buffer _ret; - uint32_t error; + uint32_t _ret; + uint32_t nTimeoutMs; }; -struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_028_WaitFrameSync_params { struct u_iface u_iface; - struct u_buffer _ret; - uint32_t error; + uint32_t _ret; + uint32_t nTimeoutMs; }; -struct IVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async_params +struct IVROverlay_IVROverlay_028_PollNextOverlayEvent_params { struct u_iface u_iface; - uint32_t _ret; - const char *pchRenderModelName; - w_RenderModel_t_0912 **ppRenderModel; + int8_t _ret; + uint64_t ulOverlayHandle; + w_VREvent_t_223 *pEvent; + uint32_t uncbVREvent; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async_params +struct wow64_IVROverlay_IVROverlay_028_PollNextOverlayEvent_params { struct u_iface u_iface; - uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); + int8_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(w32_VREvent_t_223 *pEvent, pEvent, w32_VREvent_t_223 *); + uint32_t uncbVREvent; }; -struct IVRRenderModels_IVRRenderModels_006_FreeRenderModel_params +struct IVROverlay_IVROverlay_028_GetOverlayInputMethod_params { struct u_iface u_iface; - w_RenderModel_t_0912 *pRenderModel; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *peInputMethod; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_FreeRenderModel_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayInputMethod_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *peInputMethod, peInputMethod, uint32_t *); }; -struct IVRRenderModels_IVRRenderModels_006_LoadTexture_Async_params +struct IVROverlay_IVROverlay_028_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - w_RenderModel_TextureMap_t_1237 **ppTexture; + uint64_t ulOverlayHandle; + uint32_t eInputMethod; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_LoadTexture_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayInputMethod_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(w32_RenderModel_TextureMap_t_1237 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_1237 **); + uint64_t ulOverlayHandle; + uint32_t eInputMethod; }; -struct IVRRenderModels_IVRRenderModels_006_FreeTexture_params +struct IVROverlay_IVROverlay_028_GetOverlayMouseScale_params { struct u_iface u_iface; - w_RenderModel_TextureMap_t_1237 *pTexture; + uint32_t _ret; + uint64_t ulOverlayHandle; + HmdVector2_t *pvecMouseScale; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_FreeTexture_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayMouseScale_params { struct u_iface u_iface; - W32_PTR(w32_RenderModel_TextureMap_t_1237 *pTexture, pTexture, w32_RenderModel_TextureMap_t_1237 *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(HmdVector2_t *pvecMouseScale, pvecMouseScale, HmdVector2_t *); }; -struct IVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async_params +struct IVROverlay_IVROverlay_028_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - void *pD3D11Device; - void **ppD3D11Texture2D; + uint64_t ulOverlayHandle; + const HmdVector2_t *pvecMouseScale; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayMouseScale_params { struct u_iface u_iface; uint32_t _ret; - int32_t textureId; - W32_PTR(void *pD3D11Device, pD3D11Device, void *); - W32_PTR(void **ppD3D11Texture2D, ppD3D11Texture2D, void **); + uint64_t ulOverlayHandle; + W32_PTR(const HmdVector2_t *pvecMouseScale, pvecMouseScale, const HmdVector2_t *); }; -struct IVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async_params +struct IVROverlay_IVROverlay_028_ComputeOverlayIntersection_params { struct u_iface u_iface; - uint32_t _ret; - int32_t textureId; - void *pDstTexture; + int8_t _ret; + uint64_t ulOverlayHandle; + const VROverlayIntersectionParams_t *pParams; + VROverlayIntersectionResults_t *pResults; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async_params +struct wow64_IVROverlay_IVROverlay_028_ComputeOverlayIntersection_params { struct u_iface u_iface; - uint32_t _ret; - int32_t textureId; - W32_PTR(void *pDstTexture, pDstTexture, void *); + int8_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(const VROverlayIntersectionParams_t *pParams, pParams, const VROverlayIntersectionParams_t *); + W32_PTR(VROverlayIntersectionResults_t *pResults, pResults, VROverlayIntersectionResults_t *); }; -struct IVRRenderModels_IVRRenderModels_006_FreeTextureD3D11_params +struct IVROverlay_IVROverlay_028_IsHoverTargetOverlay_params { struct u_iface u_iface; - void *pD3D11Texture2D; + int8_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_FreeTextureD3D11_params +struct wow64_IVROverlay_IVROverlay_028_IsHoverTargetOverlay_params { struct u_iface u_iface; - W32_PTR(void *pD3D11Texture2D, pD3D11Texture2D, void *); + int8_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_006_GetRenderModelName_params +struct IVROverlay_IVROverlay_028_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - char *pchRenderModelName; - uint32_t unRenderModelNameLen; + uint64_t ulOverlayHandle; + VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives; + uint32_t unNumMaskPrimitives; + uint32_t unPrimitiveSize; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayIntersectionMask_params { struct u_iface u_iface; uint32_t _ret; - uint32_t unRenderModelIndex; - W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); - uint32_t unRenderModelNameLen; + uint64_t ulOverlayHandle; + W32_PTR(VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives, pMaskPrimitives, VROverlayIntersectionMaskPrimitive_t *); + uint32_t unNumMaskPrimitives; + uint32_t unPrimitiveSize; }; -struct IVRRenderModels_IVRRenderModels_006_GetRenderModelCount_params +struct IVROverlay_IVROverlay_028_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + float fDurationSeconds; + float fFrequency; + float fAmplitude; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelCount_params +struct wow64_IVROverlay_IVROverlay_028_TriggerLaserMouseHapticVibration_params { struct u_iface u_iface; uint32_t _ret; + uint64_t ulOverlayHandle; + float fDurationSeconds; + float fFrequency; + float fAmplitude; }; -struct IVRRenderModels_IVRRenderModels_006_GetComponentCount_params +struct IVROverlay_IVROverlay_028_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; + uint64_t ulOverlayHandle; + uint64_t ulCursorHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentCount_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayCursor_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint64_t ulOverlayHandle; + uint64_t ulCursorHandle; }; -struct IVRRenderModels_IVRRenderModels_006_GetComponentName_params +struct IVROverlay_IVROverlay_028_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - uint32_t unComponentIndex; - char *pchComponentName; - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + const HmdVector2_t *pvCursor; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentName_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayCursorPositionOverride_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - uint32_t unComponentIndex; - W32_PTR(char *pchComponentName, pchComponentName, char *); - uint32_t unComponentNameLen; + uint64_t ulOverlayHandle; + W32_PTR(const HmdVector2_t *pvCursor, pvCursor, const HmdVector2_t *); }; -struct IVRRenderModels_IVRRenderModels_006_GetComponentButtonMask_params +struct IVROverlay_IVROverlay_028_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; - uint64_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentButtonMask_params +struct wow64_IVROverlay_IVROverlay_028_ClearOverlayCursorPositionOverride_params { struct u_iface u_iface; - uint64_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName_params +struct IVROverlay_IVROverlay_028_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - char *pchComponentRenderModelName; - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + const w_Texture_t *pTexture; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); - uint32_t unComponentRenderModelNameLen; + uint64_t ulOverlayHandle; + W32_PTR(const w32_Texture_t *pTexture, pTexture, const w32_Texture_t *); }; -struct IVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath_params +struct IVROverlay_IVROverlay_028_ClearOverlayTexture_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - uint64_t devicePath; - const RenderModel_ControllerMode_State_t *pState; - RenderModel_ComponentState_t *pComponentState; + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath_params +struct wow64_IVROverlay_IVROverlay_028_ClearOverlayTexture_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - uint64_t devicePath; - W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); - W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); + uint32_t _ret; + uint64_t ulOverlayHandle; }; -struct IVRRenderModels_IVRRenderModels_006_GetComponentState_params +struct IVROverlay_IVROverlay_028_SetOverlayRaw_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; - const w_VRControllerState001_t *pControllerState; - const RenderModel_ControllerMode_State_t *pState; - RenderModel_ComponentState_t *pComponentState; + uint32_t _ret; + uint64_t ulOverlayHandle; + void *pvBuffer; + uint32_t unWidth; + uint32_t unHeight; + uint32_t unBytesPerPixel; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentState_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayRaw_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); - W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); - W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); - W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(void *pvBuffer, pvBuffer, void *); + uint32_t unWidth; + uint32_t unHeight; + uint32_t unBytesPerPixel; }; -struct IVRRenderModels_IVRRenderModels_006_RenderModelHasComponent_params +struct IVROverlay_IVROverlay_028_SetOverlayFromFile_params { struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - const char *pchComponentName; + uint32_t _ret; + uint64_t ulOverlayHandle; + const char *pchFilePath; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_RenderModelHasComponent_params +struct wow64_IVROverlay_IVROverlay_028_SetOverlayFromFile_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(const char *pchFilePath, pchFilePath, const char *); }; -struct IVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL_params +struct IVROverlay_IVROverlay_028_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - char *pchThumbnailURL; - uint32_t unThumbnailURLLen; - uint32_t *peError; + uint64_t ulOverlayHandle; + void **pNativeTextureHandle; + void *pNativeTextureRef; + uint32_t *pWidth; + uint32_t *pHeight; + uint32_t *pNativeFormat; + uint32_t *pAPIType; + uint32_t *pColorSpace; + VRTextureBounds_t *pTextureBounds; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTexture_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(char *pchThumbnailURL, pchThumbnailURL, char *); - uint32_t unThumbnailURLLen; - W32_PTR(uint32_t *peError, peError, uint32_t *); + uint64_t ulOverlayHandle; + W32_PTR(void **pNativeTextureHandle, pNativeTextureHandle, void **); + W32_PTR(void *pNativeTextureRef, pNativeTextureRef, void *); + W32_PTR(uint32_t *pWidth, pWidth, uint32_t *); + W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); + W32_PTR(uint32_t *pNativeFormat, pNativeFormat, uint32_t *); + W32_PTR(uint32_t *pAPIType, pAPIType, uint32_t *); + W32_PTR(uint32_t *pColorSpace, pColorSpace, uint32_t *); + W32_PTR(VRTextureBounds_t *pTextureBounds, pTextureBounds, VRTextureBounds_t *); }; -struct IVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath_params +struct IVROverlay_IVROverlay_028_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; - const char *pchRenderModelName; - char *pchOriginalPath; - uint32_t unOriginalPathLen; - uint32_t *peError; + uint64_t ulOverlayHandle; + void *pNativeTextureHandle; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath_params +struct wow64_IVROverlay_IVROverlay_028_ReleaseNativeOverlayHandle_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(char *pchOriginalPath, pchOriginalPath, char *); - uint32_t unOriginalPathLen; - W32_PTR(uint32_t *peError, peError, uint32_t *); + uint64_t ulOverlayHandle; + W32_PTR(void *pNativeTextureHandle, pNativeTextureHandle, void *); }; -struct IVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum_params +struct IVROverlay_IVROverlay_028_GetOverlayTextureSize_params { struct u_iface u_iface; - struct u_buffer _ret; - uint32_t error; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *pWidth; + uint32_t *pHeight; }; -struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum_params +struct wow64_IVROverlay_IVROverlay_028_GetOverlayTextureSize_params { struct u_iface u_iface; - struct u_buffer _ret; - uint32_t error; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *pWidth, pWidth, uint32_t *); + W32_PTR(uint32_t *pHeight, pHeight, uint32_t *); }; -struct IVRResources_IVRResources_001_LoadSharedResource_params +struct IVROverlay_IVROverlay_028_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; - const char *pchResourceName; - char *pchBuffer; - uint32_t unBufferLen; + const char *pchOverlayKey; + const char *pchOverlayFriendlyName; + uint64_t *pMainHandle; + uint64_t *pThumbnailHandle; }; -struct wow64_IVRResources_IVRResources_001_LoadSharedResource_params +struct wow64_IVROverlay_IVROverlay_028_CreateDashboardOverlay_params { struct u_iface u_iface; uint32_t _ret; - W32_PTR(const char *pchResourceName, pchResourceName, const char *); - W32_PTR(char *pchBuffer, pchBuffer, char *); - uint32_t unBufferLen; + W32_PTR(const char *pchOverlayKey, pchOverlayKey, const char *); + W32_PTR(const char *pchOverlayFriendlyName, pchOverlayFriendlyName, const char *); + W32_PTR(uint64_t *pMainHandle, pMainHandle, uint64_t *); + W32_PTR(uint64_t *pThumbnailHandle, pThumbnailHandle, uint64_t *); }; -struct IVRResources_IVRResources_001_GetResourceFullPath_params +struct IVROverlay_IVROverlay_028_IsDashboardVisible_params { struct u_iface u_iface; - uint32_t _ret; - const char *pchResourceName; - const char *pchResourceTypeDirectory; - char *pchPathBuffer; - uint32_t unBufferLen; + int8_t _ret; }; -struct wow64_IVRResources_IVRResources_001_GetResourceFullPath_params +struct wow64_IVROverlay_IVROverlay_028_IsDashboardVisible_params { struct u_iface u_iface; - uint32_t _ret; - W32_PTR(const char *pchResourceName, pchResourceName, const char *); + int8_t _ret; +}; + +struct IVROverlay_IVROverlay_028_IsActiveDashboardOverlay_params +{ + struct u_iface u_iface; + int8_t _ret; + uint64_t ulOverlayHandle; +}; + +struct wow64_IVROverlay_IVROverlay_028_IsActiveDashboardOverlay_params +{ + struct u_iface u_iface; + int8_t _ret; + uint64_t ulOverlayHandle; +}; + +struct IVROverlay_IVROverlay_028_SetDashboardOverlaySceneProcess_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t unProcessId; +}; + +struct wow64_IVROverlay_IVROverlay_028_SetDashboardOverlaySceneProcess_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t unProcessId; +}; + +struct IVROverlay_IVROverlay_028_GetDashboardOverlaySceneProcess_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t *punProcessId; +}; + +struct wow64_IVROverlay_IVROverlay_028_GetDashboardOverlaySceneProcess_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + W32_PTR(uint32_t *punProcessId, punProcessId, uint32_t *); +}; + +struct IVROverlay_IVROverlay_028_ShowDashboard_params +{ + struct u_iface u_iface; + const char *pchOverlayToShow; +}; + +struct wow64_IVROverlay_IVROverlay_028_ShowDashboard_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchOverlayToShow, pchOverlayToShow, const char *); +}; + +struct IVROverlay_IVROverlay_028_GetPrimaryDashboardDevice_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_IVROverlay_IVROverlay_028_GetPrimaryDashboardDevice_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct IVROverlay_IVROverlay_028_ShowKeyboard_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eInputMode; + uint32_t eLineInputMode; + uint32_t unFlags; + const char *pchDescription; + uint32_t unCharMax; + const char *pchExistingText; + uint64_t uUserValue; +}; + +struct wow64_IVROverlay_IVROverlay_028_ShowKeyboard_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eInputMode; + uint32_t eLineInputMode; + uint32_t unFlags; + W32_PTR(const char *pchDescription, pchDescription, const char *); + uint32_t unCharMax; + W32_PTR(const char *pchExistingText, pchExistingText, const char *); + uint64_t uUserValue; +}; + +struct IVROverlay_IVROverlay_028_ShowKeyboardForOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eInputMode; + uint32_t eLineInputMode; + uint32_t unFlags; + const char *pchDescription; + uint32_t unCharMax; + const char *pchExistingText; + uint64_t uUserValue; +}; + +struct wow64_IVROverlay_IVROverlay_028_ShowKeyboardForOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint64_t ulOverlayHandle; + uint32_t eInputMode; + uint32_t eLineInputMode; + uint32_t unFlags; + W32_PTR(const char *pchDescription, pchDescription, const char *); + uint32_t unCharMax; + W32_PTR(const char *pchExistingText, pchExistingText, const char *); + uint64_t uUserValue; +}; + +struct IVROverlay_IVROverlay_028_GetKeyboardText_params +{ + struct u_iface u_iface; + uint32_t _ret; + char *pchText; + uint32_t cchText; +}; + +struct wow64_IVROverlay_IVROverlay_028_GetKeyboardText_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(char *pchText, pchText, char *); + uint32_t cchText; +}; + +struct IVROverlay_IVROverlay_028_HideKeyboard_params +{ + struct u_iface u_iface; +}; + +struct wow64_IVROverlay_IVROverlay_028_HideKeyboard_params +{ + struct u_iface u_iface; +}; + +struct IVROverlay_IVROverlay_028_SetKeyboardTransformAbsolute_params +{ + struct u_iface u_iface; + uint32_t eTrackingOrigin; + const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform; +}; + +struct wow64_IVROverlay_IVROverlay_028_SetKeyboardTransformAbsolute_params +{ + struct u_iface u_iface; + uint32_t eTrackingOrigin; + W32_PTR(const HmdMatrix34_t *pmatTrackingOriginToKeyboardTransform, pmatTrackingOriginToKeyboardTransform, const HmdMatrix34_t *); +}; + +struct IVROverlay_IVROverlay_028_SetKeyboardPositionForOverlay_params +{ + struct u_iface u_iface; + uint64_t ulOverlayHandle; + HmdRect2_t avoidRect; +}; + +struct wow64_IVROverlay_IVROverlay_028_SetKeyboardPositionForOverlay_params +{ + struct u_iface u_iface; + uint64_t ulOverlayHandle; + HmdRect2_t avoidRect; +}; + +struct IVROverlay_IVROverlay_028_ShowMessageOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchText; + const char *pchCaption; + const char *pchButton0Text; + const char *pchButton1Text; + const char *pchButton2Text; + const char *pchButton3Text; +}; + +struct wow64_IVROverlay_IVROverlay_028_ShowMessageOverlay_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchText, pchText, const char *); + W32_PTR(const char *pchCaption, pchCaption, const char *); + W32_PTR(const char *pchButton0Text, pchButton0Text, const char *); + W32_PTR(const char *pchButton1Text, pchButton1Text, const char *); + W32_PTR(const char *pchButton2Text, pchButton2Text, const char *); + W32_PTR(const char *pchButton3Text, pchButton3Text, const char *); +}; + +struct IVROverlay_IVROverlay_028_CloseMessageOverlay_params +{ + struct u_iface u_iface; +}; + +struct wow64_IVROverlay_IVROverlay_028_CloseMessageOverlay_params +{ + struct u_iface u_iface; +}; + +struct IVRRenderModels_IVRRenderModels_001_LoadRenderModel_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + w_RenderModel_t_090 *pRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_LoadRenderModel_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); +}; + +struct IVRRenderModels_IVRRenderModels_001_FreeRenderModel_params +{ + struct u_iface u_iface; + w_RenderModel_t_090 *pRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_FreeRenderModel_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); +}; + +struct IVRRenderModels_IVRRenderModels_001_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + char *pchRenderModelName; + uint32_t unRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); + uint32_t unRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_001_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct IVRRenderModels_IVRRenderModels_001_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_001_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + uint32_t unComponentIndex; + char *pchComponentName; + uint32_t unComponentNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint32_t unComponentIndex; + W32_PTR(char *pchComponentName, pchComponentName, char *); + uint32_t unComponentNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + char *pchComponentRenderModelName; + uint32_t unComponentRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); + uint32_t unComponentRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_001_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + w_VRControllerState001_t controllerState; + ComponentState_t *pComponentState; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_001_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + w32_VRControllerState001_t controllerState; + W32_PTR(ComponentState_t *pComponentState, pComponentState, ComponentState_t *); +}; + +struct IVRRenderModels_IVRRenderModels_002_LoadRenderModel_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + w_RenderModel_t_0912 **ppRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_LoadRenderModel_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); +}; + +struct IVRRenderModels_IVRRenderModels_002_FreeRenderModel_params +{ + struct u_iface u_iface; + w_RenderModel_t_0912 *pRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_FreeRenderModel_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); +}; + +struct IVRRenderModels_IVRRenderModels_002_LoadTexture_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t textureId; + w_RenderModel_TextureMap_t_090 **ppTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_LoadTexture_params +{ + struct u_iface u_iface; + int8_t _ret; + int32_t textureId; + W32_PTR(w32_RenderModel_TextureMap_t_090 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_090 **); +}; + +struct IVRRenderModels_IVRRenderModels_002_FreeTexture_params +{ + struct u_iface u_iface; + w_RenderModel_TextureMap_t_090 *pTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_FreeTexture_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_TextureMap_t_090 *pTexture, pTexture, w32_RenderModel_TextureMap_t_090 *); +}; + +struct IVRRenderModels_IVRRenderModels_002_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + char *pchRenderModelName; + uint32_t unRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); + uint32_t unRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_002_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct IVRRenderModels_IVRRenderModels_002_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_002_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + uint32_t unComponentIndex; + char *pchComponentName; + uint32_t unComponentNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint32_t unComponentIndex; + W32_PTR(char *pchComponentName, pchComponentName, char *); + uint32_t unComponentNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_002_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + char *pchComponentRenderModelName; + uint32_t unComponentRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); + uint32_t unComponentRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_002_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + const w_VRControllerState001_t *pControllerState; + RenderModel_ComponentState_t *pComponentState; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); + W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); +}; + +struct IVRRenderModels_IVRRenderModels_002_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_002_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + w_RenderModel_t_0912 **ppRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); +}; + +struct IVRRenderModels_IVRRenderModels_004_FreeRenderModel_params +{ + struct u_iface u_iface; + w_RenderModel_t_0912 *pRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_FreeRenderModel_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); +}; + +struct IVRRenderModels_IVRRenderModels_004_LoadTexture_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + w_RenderModel_TextureMap_t_090 **ppTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_LoadTexture_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(w32_RenderModel_TextureMap_t_090 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_090 **); +}; + +struct IVRRenderModels_IVRRenderModels_004_FreeTexture_params +{ + struct u_iface u_iface; + w_RenderModel_TextureMap_t_090 *pTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_FreeTexture_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_TextureMap_t_090 *pTexture, pTexture, w32_RenderModel_TextureMap_t_090 *); +}; + +struct IVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + void *pD3D11Device; + void **ppD3D11Texture2D; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(void *pD3D11Device, pD3D11Device, void *); + W32_PTR(void **ppD3D11Texture2D, ppD3D11Texture2D, void **); +}; + +struct IVRRenderModels_IVRRenderModels_004_FreeTextureD3D11_params +{ + struct u_iface u_iface; + void *pD3D11Texture2D; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_FreeTextureD3D11_params +{ + struct u_iface u_iface; + W32_PTR(void *pD3D11Texture2D, pD3D11Texture2D, void *); +}; + +struct IVRRenderModels_IVRRenderModels_004_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + char *pchRenderModelName; + uint32_t unRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); + uint32_t unRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_004_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct IVRRenderModels_IVRRenderModels_004_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_004_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + uint32_t unComponentIndex; + char *pchComponentName; + uint32_t unComponentNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint32_t unComponentIndex; + W32_PTR(char *pchComponentName, pchComponentName, char *); + uint32_t unComponentNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_004_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + char *pchComponentRenderModelName; + uint32_t unComponentRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); + uint32_t unComponentRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_004_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + const w_VRControllerState001_t *pControllerState; + const RenderModel_ControllerMode_State_t *pState; + RenderModel_ComponentState_t *pComponentState; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); + W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); + W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); +}; + +struct IVRRenderModels_IVRRenderModels_004_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_004_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + w_RenderModel_t_0912 **ppRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); +}; + +struct IVRRenderModels_IVRRenderModels_005_FreeRenderModel_params +{ + struct u_iface u_iface; + w_RenderModel_t_0912 *pRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_FreeRenderModel_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); +}; + +struct IVRRenderModels_IVRRenderModels_005_LoadTexture_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + w_RenderModel_TextureMap_t_090 **ppTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_LoadTexture_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(w32_RenderModel_TextureMap_t_090 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_090 **); +}; + +struct IVRRenderModels_IVRRenderModels_005_FreeTexture_params +{ + struct u_iface u_iface; + w_RenderModel_TextureMap_t_090 *pTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_FreeTexture_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_TextureMap_t_090 *pTexture, pTexture, w32_RenderModel_TextureMap_t_090 *); +}; + +struct IVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + void *pD3D11Device; + void **ppD3D11Texture2D; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(void *pD3D11Device, pD3D11Device, void *); + W32_PTR(void **ppD3D11Texture2D, ppD3D11Texture2D, void **); +}; + +struct IVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + void *pDstTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(void *pDstTexture, pDstTexture, void *); +}; + +struct IVRRenderModels_IVRRenderModels_005_FreeTextureD3D11_params +{ + struct u_iface u_iface; + void *pD3D11Texture2D; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_FreeTextureD3D11_params +{ + struct u_iface u_iface; + W32_PTR(void *pD3D11Texture2D, pD3D11Texture2D, void *); +}; + +struct IVRRenderModels_IVRRenderModels_005_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + char *pchRenderModelName; + uint32_t unRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); + uint32_t unRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_005_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct IVRRenderModels_IVRRenderModels_005_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_005_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + uint32_t unComponentIndex; + char *pchComponentName; + uint32_t unComponentNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint32_t unComponentIndex; + W32_PTR(char *pchComponentName, pchComponentName, char *); + uint32_t unComponentNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_005_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + char *pchComponentRenderModelName; + uint32_t unComponentRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); + uint32_t unComponentRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_005_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + const w_VRControllerState001_t *pControllerState; + const RenderModel_ControllerMode_State_t *pState; + RenderModel_ComponentState_t *pComponentState; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); + W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); + W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); +}; + +struct IVRRenderModels_IVRRenderModels_005_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + char *pchThumbnailURL; + uint32_t unThumbnailURLLen; + uint32_t *peError; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(char *pchThumbnailURL, pchThumbnailURL, char *); + uint32_t unThumbnailURLLen; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + char *pchOriginalPath; + uint32_t unOriginalPathLen; + uint32_t *peError; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(char *pchOriginalPath, pchOriginalPath, char *); + uint32_t unOriginalPathLen; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t error; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t error; +}; + +struct IVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + w_RenderModel_t_0912 **ppRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(w32_RenderModel_t_0912 **ppRenderModel, ppRenderModel, w32_RenderModel_t_0912 **); +}; + +struct IVRRenderModels_IVRRenderModels_006_FreeRenderModel_params +{ + struct u_iface u_iface; + w_RenderModel_t_0912 *pRenderModel; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_FreeRenderModel_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_t_0912 *pRenderModel, pRenderModel, w32_RenderModel_t_0912 *); +}; + +struct IVRRenderModels_IVRRenderModels_006_LoadTexture_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + w_RenderModel_TextureMap_t_1237 **ppTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_LoadTexture_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(w32_RenderModel_TextureMap_t_1237 **ppTexture, ppTexture, w32_RenderModel_TextureMap_t_1237 **); +}; + +struct IVRRenderModels_IVRRenderModels_006_FreeTexture_params +{ + struct u_iface u_iface; + w_RenderModel_TextureMap_t_1237 *pTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_FreeTexture_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_TextureMap_t_1237 *pTexture, pTexture, w32_RenderModel_TextureMap_t_1237 *); +}; + +struct IVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + void *pD3D11Device; + void **ppD3D11Texture2D; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(void *pD3D11Device, pD3D11Device, void *); + W32_PTR(void **ppD3D11Texture2D, ppD3D11Texture2D, void **); +}; + +struct IVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + void *pDstTexture; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async_params +{ + struct u_iface u_iface; + uint32_t _ret; + int32_t textureId; + W32_PTR(void *pDstTexture, pDstTexture, void *); +}; + +struct IVRRenderModels_IVRRenderModels_006_FreeTextureD3D11_params +{ + struct u_iface u_iface; + void *pD3D11Texture2D; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_FreeTextureD3D11_params +{ + struct u_iface u_iface; + W32_PTR(void *pD3D11Texture2D, pD3D11Texture2D, void *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + char *pchRenderModelName; + uint32_t unRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unRenderModelIndex; + W32_PTR(char *pchRenderModelName, pchRenderModelName, char *); + uint32_t unRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_006_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelCount_params +{ + struct u_iface u_iface; + uint32_t _ret; +}; + +struct IVRRenderModels_IVRRenderModels_006_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentCount_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + uint32_t unComponentIndex; + char *pchComponentName; + uint32_t unComponentNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + uint32_t unComponentIndex; + W32_PTR(char *pchComponentName, pchComponentName, char *); + uint32_t unComponentNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_006_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentButtonMask_params +{ + struct u_iface u_iface; + uint64_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + char *pchComponentRenderModelName; + uint32_t unComponentRenderModelNameLen; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(char *pchComponentRenderModelName, pchComponentRenderModelName, char *); + uint32_t unComponentRenderModelNameLen; +}; + +struct IVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + uint64_t devicePath; + const RenderModel_ControllerMode_State_t *pState; + RenderModel_ComponentState_t *pComponentState; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + uint64_t devicePath; + W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); + W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; + const w_VRControllerState001_t *pControllerState; + const RenderModel_ControllerMode_State_t *pState; + RenderModel_ComponentState_t *pComponentState; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetComponentState_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); + W32_PTR(const w32_VRControllerState001_t *pControllerState, pControllerState, const w32_VRControllerState001_t *); + W32_PTR(const RenderModel_ControllerMode_State_t *pState, pState, const RenderModel_ControllerMode_State_t *); + W32_PTR(RenderModel_ComponentState_t *pComponentState, pComponentState, RenderModel_ComponentState_t *); +}; + +struct IVRRenderModels_IVRRenderModels_006_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + const char *pchComponentName; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_RenderModelHasComponent_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(const char *pchComponentName, pchComponentName, const char *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + char *pchThumbnailURL; + uint32_t unThumbnailURLLen; + uint32_t *peError; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(char *pchThumbnailURL, pchThumbnailURL, char *); + uint32_t unThumbnailURLLen; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchRenderModelName; + char *pchOriginalPath; + uint32_t unOriginalPathLen; + uint32_t *peError; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(char *pchOriginalPath, pchOriginalPath, char *); + uint32_t unOriginalPathLen; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t error; +}; + +struct wow64_IVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t error; +}; + +struct IVRResources_IVRResources_001_LoadSharedResource_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchResourceName; + char *pchBuffer; + uint32_t unBufferLen; +}; + +struct wow64_IVRResources_IVRResources_001_LoadSharedResource_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchResourceName, pchResourceName, const char *); + W32_PTR(char *pchBuffer, pchBuffer, char *); + uint32_t unBufferLen; +}; + +struct IVRResources_IVRResources_001_GetResourceFullPath_params +{ + struct u_iface u_iface; + uint32_t _ret; + const char *pchResourceName; + const char *pchResourceTypeDirectory; + char *pchPathBuffer; + uint32_t unBufferLen; +}; + +struct wow64_IVRResources_IVRResources_001_GetResourceFullPath_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(const char *pchResourceName, pchResourceName, const char *); W32_PTR(const char *pchResourceTypeDirectory, pchResourceTypeDirectory, const char *); W32_PTR(char *pchPathBuffer, pchPathBuffer, char *); uint32_t unBufferLen; @@ -47705,735 +48773,1333 @@ struct IVRScreenshots_IVRScreenshots_001_RequestScreenshot_params const char *pchVRFilename; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_RequestScreenshot_params +struct wow64_IVRScreenshots_IVRScreenshots_001_RequestScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(uint32_t *pOutScreenshotHandle, pOutScreenshotHandle, uint32_t *); + uint32_t type; + W32_PTR(const char *pchPreviewFilename, pchPreviewFilename, const char *); + W32_PTR(const char *pchVRFilename, pchVRFilename, const char *); +}; + +struct IVRScreenshots_IVRScreenshots_001_HookScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t *pSupportedTypes; + int32_t numTypes; +}; + +struct wow64_IVRScreenshots_IVRScreenshots_001_HookScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(uint32_t *pSupportedTypes, pSupportedTypes, uint32_t *); + int32_t numTypes; +}; + +struct IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + uint32_t *pError; +}; + +struct wow64_IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + W32_PTR(uint32_t *pError, pError, uint32_t *); +}; + +struct IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + uint32_t filenameType; + char *pchFilename; + uint32_t cchFilename; + uint32_t *pError; +}; + +struct wow64_IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + uint32_t filenameType; + W32_PTR(char *pchFilename, pchFilename, char *); + uint32_t cchFilename; + W32_PTR(uint32_t *pError, pError, uint32_t *); +}; + +struct IVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + float flProgress; +}; + +struct wow64_IVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + float flProgress; +}; + +struct IVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t *pOutScreenshotHandle; + const char *pchPreviewFilename; + const char *pchVRFilename; +}; + +struct wow64_IVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + W32_PTR(uint32_t *pOutScreenshotHandle, pOutScreenshotHandle, uint32_t *); + W32_PTR(const char *pchPreviewFilename, pchPreviewFilename, const char *); + W32_PTR(const char *pchVRFilename, pchVRFilename, const char *); +}; + +struct IVRScreenshots_IVRScreenshots_001_SubmitScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + uint32_t type; + const char *pchSourcePreviewFilename; + const char *pchSourceVRFilename; +}; + +struct wow64_IVRScreenshots_IVRScreenshots_001_SubmitScreenshot_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t screenshotHandle; + uint32_t type; + W32_PTR(const char *pchSourcePreviewFilename, pchSourcePreviewFilename, const char *); + W32_PTR(const char *pchSourceVRFilename, pchSourceVRFilename, const char *); +}; + +struct IVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t eError; +}; + +struct wow64_IVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t eError; +}; + +struct IVRSettings_IVRSettings_001_Sync_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bForce; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_Sync_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bForce; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_GetBool_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchSection; + const char *pchSettingsKey; + int8_t bDefaultValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_GetBool_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int8_t bDefaultValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_SetBool_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + int8_t bValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_SetBool_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int8_t bValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_GetInt32_params +{ + struct u_iface u_iface; + int32_t _ret; + const char *pchSection; + const char *pchSettingsKey; + int32_t nDefaultValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_GetInt32_params +{ + struct u_iface u_iface; + int32_t _ret; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int32_t nDefaultValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_SetInt32_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + int32_t nValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_SetInt32_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int32_t nValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_GetFloat_params +{ + struct u_iface u_iface; + float _ret; + const char *pchSection; + const char *pchSettingsKey; + float flDefaultValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_GetFloat_params +{ + struct u_iface u_iface; + float _ret; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + float flDefaultValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_SetFloat_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + float flValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_SetFloat_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + float flValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_GetString_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + char *pchValue; + uint32_t unValueLen; + const char *pchDefaultValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_GetString_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(char *pchValue, pchValue, char *); + uint32_t unValueLen; + W32_PTR(const char *pchDefaultValue, pchDefaultValue, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_SetString_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + const char *pchValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_SetString_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(const char *pchValue, pchValue, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_RemoveSection_params +{ + struct u_iface u_iface; + const char *pchSection; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_RemoveSection_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_001_RemoveKeyInSection_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_001_RemoveKeyInSection_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t eError; +}; + +struct wow64_IVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum_params +{ + struct u_iface u_iface; + struct u_buffer _ret; + uint32_t eError; +}; + +struct IVRSettings_IVRSettings_002_Sync_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bForce; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_002_Sync_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bForce; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_002_SetBool_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + int8_t bValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_002_SetBool_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int8_t bValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_002_SetInt32_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + int32_t nValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_002_SetInt32_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int32_t nValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_002_SetFloat_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + float flValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_002_SetFloat_params +{ + struct u_iface u_iface; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + float flValue; + W32_PTR(uint32_t *peError, peError, uint32_t *); +}; + +struct IVRSettings_IVRSettings_002_SetString_params +{ + struct u_iface u_iface; + const char *pchSection; + const char *pchSettingsKey; + const char *pchValue; + uint32_t *peError; +}; + +struct wow64_IVRSettings_IVRSettings_002_SetString_params { struct u_iface u_iface; - uint32_t _ret; - W32_PTR(uint32_t *pOutScreenshotHandle, pOutScreenshotHandle, uint32_t *); - uint32_t type; - W32_PTR(const char *pchPreviewFilename, pchPreviewFilename, const char *); - W32_PTR(const char *pchVRFilename, pchVRFilename, const char *); + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(const char *pchValue, pchValue, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRScreenshots_IVRScreenshots_001_HookScreenshot_params +struct IVRSettings_IVRSettings_002_GetBool_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t *pSupportedTypes; - int32_t numTypes; + int8_t _ret; + const char *pchSection; + const char *pchSettingsKey; + uint32_t *peError; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_HookScreenshot_params +struct wow64_IVRSettings_IVRSettings_002_GetBool_params { struct u_iface u_iface; - uint32_t _ret; - W32_PTR(uint32_t *pSupportedTypes, pSupportedTypes, uint32_t *); - int32_t numTypes; + int8_t _ret; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType_params +struct IVRSettings_IVRSettings_002_GetInt32_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - uint32_t *pError; + int32_t _ret; + const char *pchSection; + const char *pchSettingsKey; + uint32_t *peError; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType_params +struct wow64_IVRSettings_IVRSettings_002_GetInt32_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - W32_PTR(uint32_t *pError, pError, uint32_t *); + int32_t _ret; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename_params +struct IVRSettings_IVRSettings_002_GetFloat_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - uint32_t filenameType; - char *pchFilename; - uint32_t cchFilename; - uint32_t *pError; + float _ret; + const char *pchSection; + const char *pchSettingsKey; + uint32_t *peError; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename_params +struct wow64_IVRSettings_IVRSettings_002_GetFloat_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - uint32_t filenameType; - W32_PTR(char *pchFilename, pchFilename, char *); - uint32_t cchFilename; - W32_PTR(uint32_t *pError, pError, uint32_t *); + float _ret; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress_params +struct IVRSettings_IVRSettings_002_GetString_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - float flProgress; + const char *pchSection; + const char *pchSettingsKey; + char *pchValue; + uint32_t unValueLen; + uint32_t *peError; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress_params +struct wow64_IVRSettings_IVRSettings_002_GetString_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - float flProgress; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(char *pchValue, pchValue, char *); + uint32_t unValueLen; + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot_params +struct IVRSettings_IVRSettings_002_RemoveSection_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t *pOutScreenshotHandle; - const char *pchPreviewFilename; - const char *pchVRFilename; + const char *pchSection; + uint32_t *peError; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot_params +struct wow64_IVRSettings_IVRSettings_002_RemoveSection_params { struct u_iface u_iface; - uint32_t _ret; - W32_PTR(uint32_t *pOutScreenshotHandle, pOutScreenshotHandle, uint32_t *); - W32_PTR(const char *pchPreviewFilename, pchPreviewFilename, const char *); - W32_PTR(const char *pchVRFilename, pchVRFilename, const char *); + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRScreenshots_IVRScreenshots_001_SubmitScreenshot_params +struct IVRSettings_IVRSettings_002_RemoveKeyInSection_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - uint32_t type; - const char *pchSourcePreviewFilename; - const char *pchSourceVRFilename; + const char *pchSection; + const char *pchSettingsKey; + uint32_t *peError; }; -struct wow64_IVRScreenshots_IVRScreenshots_001_SubmitScreenshot_params +struct wow64_IVRSettings_IVRSettings_002_RemoveKeyInSection_params { struct u_iface u_iface; - uint32_t _ret; - uint32_t screenshotHandle; - uint32_t type; - W32_PTR(const char *pchSourcePreviewFilename, pchSourcePreviewFilename, const char *); - W32_PTR(const char *pchSourceVRFilename, pchSourceVRFilename, const char *); + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum_params +struct IVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eError; }; -struct wow64_IVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum_params +struct wow64_IVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eError; }; -struct IVRSettings_IVRSettings_001_Sync_params +struct IVRSettings_IVRSettings_003_SetBool_params { struct u_iface u_iface; - int8_t _ret; - int8_t bForce; + const char *pchSection; + const char *pchSettingsKey; + int8_t bValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_Sync_params +struct wow64_IVRSettings_IVRSettings_003_SetBool_params { struct u_iface u_iface; - int8_t _ret; - int8_t bForce; + W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); + int8_t bValue; W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_GetBool_params +struct IVRSettings_IVRSettings_003_SetInt32_params { struct u_iface u_iface; - int8_t _ret; const char *pchSection; const char *pchSettingsKey; - int8_t bDefaultValue; + int32_t nValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_GetBool_params +struct wow64_IVRSettings_IVRSettings_003_SetInt32_params { struct u_iface u_iface; - int8_t _ret; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int8_t bDefaultValue; + int32_t nValue; W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_SetBool_params +struct IVRSettings_IVRSettings_003_SetFloat_params { struct u_iface u_iface; const char *pchSection; const char *pchSettingsKey; - int8_t bValue; + float flValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_SetBool_params +struct wow64_IVRSettings_IVRSettings_003_SetFloat_params { struct u_iface u_iface; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int8_t bValue; + float flValue; W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_GetInt32_params +struct IVRSettings_IVRSettings_003_SetString_params { struct u_iface u_iface; - int32_t _ret; const char *pchSection; const char *pchSettingsKey; - int32_t nDefaultValue; + const char *pchValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_GetInt32_params +struct wow64_IVRSettings_IVRSettings_003_SetString_params { struct u_iface u_iface; - int32_t _ret; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int32_t nDefaultValue; + W32_PTR(const char *pchValue, pchValue, const char *); W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_SetInt32_params +struct IVRSettings_IVRSettings_003_GetBool_params { struct u_iface u_iface; + int8_t _ret; const char *pchSection; const char *pchSettingsKey; - int32_t nValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_SetInt32_params +struct wow64_IVRSettings_IVRSettings_003_GetBool_params { struct u_iface u_iface; + int8_t _ret; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int32_t nValue; W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_GetFloat_params +struct IVRSettings_IVRSettings_003_GetInt32_params { struct u_iface u_iface; - float _ret; + int32_t _ret; const char *pchSection; const char *pchSettingsKey; - float flDefaultValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_GetFloat_params +struct wow64_IVRSettings_IVRSettings_003_GetInt32_params { struct u_iface u_iface; - float _ret; + int32_t _ret; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - float flDefaultValue; W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_SetFloat_params +struct IVRSettings_IVRSettings_003_GetFloat_params { struct u_iface u_iface; + float _ret; const char *pchSection; const char *pchSettingsKey; - float flValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_SetFloat_params +struct wow64_IVRSettings_IVRSettings_003_GetFloat_params { struct u_iface u_iface; + float _ret; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - float flValue; W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_GetString_params +struct IVRSettings_IVRSettings_003_GetString_params { struct u_iface u_iface; const char *pchSection; const char *pchSettingsKey; char *pchValue; uint32_t unValueLen; - const char *pchDefaultValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_GetString_params +struct wow64_IVRSettings_IVRSettings_003_GetString_params { struct u_iface u_iface; W32_PTR(const char *pchSection, pchSection, const char *); W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); W32_PTR(char *pchValue, pchValue, char *); uint32_t unValueLen; - W32_PTR(const char *pchDefaultValue, pchDefaultValue, const char *); W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_SetString_params +struct IVRSettings_IVRSettings_003_RemoveSection_params { struct u_iface u_iface; const char *pchSection; - const char *pchSettingsKey; - const char *pchValue; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_SetString_params +struct wow64_IVRSettings_IVRSettings_003_RemoveSection_params { struct u_iface u_iface; W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(const char *pchValue, pchValue, const char *); W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_RemoveSection_params +struct IVRSettings_IVRSettings_003_RemoveKeyInSection_params { struct u_iface u_iface; const char *pchSection; + const char *pchSettingsKey; uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_001_RemoveSection_params +struct wow64_IVRSettings_IVRSettings_003_RemoveKeyInSection_params { struct u_iface u_iface; W32_PTR(const char *pchSection, pchSection, const char *); + W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_001_RemoveKeyInSection_params +struct IVRSystem_IVRSystem_003_GetWindowBounds_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + int32_t *pnX; + int32_t *pnY; + uint32_t *pnWidth; + uint32_t *pnHeight; }; -struct wow64_IVRSettings_IVRSettings_001_RemoveKeyInSection_params +struct wow64_IVRSystem_IVRSystem_003_GetWindowBounds_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + W32_PTR(int32_t *pnX, pnX, int32_t *); + W32_PTR(int32_t *pnY, pnY, int32_t *); + W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); + W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum_params +struct IVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; - struct u_buffer _ret; - uint32_t eError; + uint32_t *pnWidth; + uint32_t *pnHeight; }; -struct wow64_IVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; - struct u_buffer _ret; - uint32_t eError; + W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); + W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSettings_IVRSettings_002_Sync_params +struct IVRSystem_IVRSystem_003_GetEyeOutputViewport_params +{ + struct u_iface u_iface; + uint32_t eEye; + uint32_t *pnX; + uint32_t *pnY; + uint32_t *pnWidth; + uint32_t *pnHeight; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetEyeOutputViewport_params +{ + struct u_iface u_iface; + uint32_t eEye; + W32_PTR(uint32_t *pnX, pnX, uint32_t *); + W32_PTR(uint32_t *pnY, pnY, uint32_t *); + W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); + W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); +}; + +struct IVRSystem_IVRSystem_003_GetProjectionMatrix_params +{ + struct u_iface u_iface; + HmdMatrix44_t *_ret; + uint32_t eEye; + float fNearZ; + float fFarZ; + uint32_t eProjType; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetProjectionMatrix_params +{ + struct u_iface u_iface; + W32_PTR(HmdMatrix44_t *_ret, _ret, HmdMatrix44_t *); + uint32_t eEye; + float fNearZ; + float fFarZ; + uint32_t eProjType; +}; + +struct IVRSystem_IVRSystem_003_GetProjectionRaw_params +{ + struct u_iface u_iface; + uint32_t eEye; + float *pfLeft; + float *pfRight; + float *pfTop; + float *pfBottom; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetProjectionRaw_params +{ + struct u_iface u_iface; + uint32_t eEye; + W32_PTR(float *pfLeft, pfLeft, float *); + W32_PTR(float *pfRight, pfRight, float *); + W32_PTR(float *pfTop, pfTop, float *); + W32_PTR(float *pfBottom, pfBottom, float *); +}; + +struct IVRSystem_IVRSystem_003_ComputeDistortion_params +{ + struct u_iface u_iface; + DistortionCoordinates_t *_ret; + uint32_t eEye; + float fU; + float fV; +}; + +struct wow64_IVRSystem_IVRSystem_003_ComputeDistortion_params +{ + struct u_iface u_iface; + W32_PTR(DistortionCoordinates_t *_ret, _ret, DistortionCoordinates_t *); + uint32_t eEye; + float fU; + float fV; +}; + +struct IVRSystem_IVRSystem_003_GetEyeToHeadTransform_params +{ + struct u_iface u_iface; + HmdMatrix34_t *_ret; + uint32_t eEye; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetEyeToHeadTransform_params +{ + struct u_iface u_iface; + W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); + uint32_t eEye; +}; + +struct IVRSystem_IVRSystem_003_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; - int8_t bForce; - uint32_t *peError; + float *pfSecondsSinceLastVsync; + uint64_t *pulFrameCounter; }; -struct wow64_IVRSettings_IVRSettings_002_Sync_params +struct wow64_IVRSystem_IVRSystem_003_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; - int8_t bForce; - W32_PTR(uint32_t *peError, peError, uint32_t *); + W32_PTR(float *pfSecondsSinceLastVsync, pfSecondsSinceLastVsync, float *); + W32_PTR(uint64_t *pulFrameCounter, pulFrameCounter, uint64_t *); }; -struct IVRSettings_IVRSettings_002_SetBool_params +struct IVRSystem_IVRSystem_003_GetD3D9AdapterIndex_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - int8_t bValue; - uint32_t *peError; + int32_t _ret; }; -struct wow64_IVRSettings_IVRSettings_002_SetBool_params +struct wow64_IVRSystem_IVRSystem_003_GetD3D9AdapterIndex_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int8_t bValue; - W32_PTR(uint32_t *peError, peError, uint32_t *); + int32_t _ret; }; -struct IVRSettings_IVRSettings_002_SetInt32_params +struct IVRSystem_IVRSystem_003_GetDXGIOutputInfo_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - int32_t nValue; - uint32_t *peError; + int32_t *pnAdapterIndex; + int32_t *pnAdapterOutputIndex; }; -struct wow64_IVRSettings_IVRSettings_002_SetInt32_params +struct wow64_IVRSystem_IVRSystem_003_GetDXGIOutputInfo_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int32_t nValue; - W32_PTR(uint32_t *peError, peError, uint32_t *); + W32_PTR(int32_t *pnAdapterIndex, pnAdapterIndex, int32_t *); + W32_PTR(int32_t *pnAdapterOutputIndex, pnAdapterOutputIndex, int32_t *); +}; + +struct IVRSystem_IVRSystem_003_AttachToWindow_params +{ + struct u_iface u_iface; + int8_t _ret; + void *hWnd; +}; + +struct wow64_IVRSystem_IVRSystem_003_AttachToWindow_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(void *hWnd, hWnd, void *); +}; + +struct IVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose_params +{ + struct u_iface u_iface; + uint32_t eOrigin; + float fPredictedSecondsToPhotonsFromNow; + TrackedDevicePose_t *pTrackedDevicePoseArray; + uint32_t unTrackedDevicePoseArrayCount; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose_params +{ + struct u_iface u_iface; + uint32_t eOrigin; + float fPredictedSecondsToPhotonsFromNow; + W32_PTR(TrackedDevicePose_t *pTrackedDevicePoseArray, pTrackedDevicePoseArray, TrackedDevicePose_t *); + uint32_t unTrackedDevicePoseArrayCount; +}; + +struct IVRSystem_IVRSystem_003_ResetSeatedZeroPose_params +{ + struct u_iface u_iface; +}; + +struct wow64_IVRSystem_IVRSystem_003_ResetSeatedZeroPose_params +{ + struct u_iface u_iface; +}; + +struct IVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +{ + struct u_iface u_iface; + HmdMatrix34_t *_ret; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +{ + struct u_iface u_iface; + W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); +}; + +struct IVRSystem_IVRSystem_003_LoadRenderModel_params +{ + struct u_iface u_iface; + int8_t _ret; + const char *pchRenderModelName; + w_RenderModel_t_090 *pRenderModel; +}; + +struct wow64_IVRSystem_IVRSystem_003_LoadRenderModel_params +{ + struct u_iface u_iface; + int8_t _ret; + W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); + W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); +}; + +struct IVRSystem_IVRSystem_003_FreeRenderModel_params +{ + struct u_iface u_iface; + w_RenderModel_t_090 *pRenderModel; +}; + +struct wow64_IVRSystem_IVRSystem_003_FreeRenderModel_params +{ + struct u_iface u_iface; + W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); +}; + +struct IVRSystem_IVRSystem_003_GetTrackedDeviceClass_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unDeviceIndex; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetTrackedDeviceClass_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unDeviceIndex; +}; + +struct IVRSystem_IVRSystem_003_IsTrackedDeviceConnected_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t unDeviceIndex; +}; + +struct wow64_IVRSystem_IVRSystem_003_IsTrackedDeviceConnected_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t unDeviceIndex; +}; + +struct IVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + uint32_t *pError; +}; + +struct wow64_IVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty_params +{ + struct u_iface u_iface; + int8_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSettings_IVRSettings_002_SetFloat_params +struct IVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - float flValue; - uint32_t *peError; + float _ret; + uint32_t unDeviceIndex; + uint32_t prop; + uint32_t *pError; }; -struct wow64_IVRSettings_IVRSettings_002_SetFloat_params +struct wow64_IVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - float flValue; - W32_PTR(uint32_t *peError, peError, uint32_t *); + float _ret; + uint32_t unDeviceIndex; + uint32_t prop; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSettings_IVRSettings_002_SetString_params +struct IVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - const char *pchValue; - uint32_t *peError; + int32_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + uint32_t *pError; }; -struct wow64_IVRSettings_IVRSettings_002_SetString_params +struct wow64_IVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(const char *pchValue, pchValue, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + int32_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSettings_IVRSettings_002_GetBool_params +struct IVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; - int8_t _ret; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + uint64_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + uint32_t *pError; }; -struct wow64_IVRSettings_IVRSettings_002_GetBool_params +struct wow64_IVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + uint64_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSettings_IVRSettings_002_GetInt32_params +struct IVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; - int32_t _ret; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + HmdMatrix34_t *_ret; + uint32_t unDeviceIndex; + uint32_t prop; + uint32_t *pError; }; -struct wow64_IVRSettings_IVRSettings_002_GetInt32_params +struct wow64_IVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; - int32_t _ret; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); + uint32_t unDeviceIndex; + uint32_t prop; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSettings_IVRSettings_002_GetFloat_params +struct IVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; - float _ret; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + uint32_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + char *pchValue; + uint32_t unBufferSize; + uint32_t *pError; }; -struct wow64_IVRSettings_IVRSettings_002_GetFloat_params +struct wow64_IVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; - float _ret; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + uint32_t _ret; + uint32_t unDeviceIndex; + uint32_t prop; + W32_PTR(char *pchValue, pchValue, char *); + uint32_t unBufferSize; + W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSettings_IVRSettings_002_GetString_params +struct IVRSystem_IVRSystem_003_GetPropErrorNameFromEnum_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - char *pchValue; - uint32_t unValueLen; - uint32_t *peError; + struct u_buffer _ret; + uint32_t error; }; -struct wow64_IVRSettings_IVRSettings_002_GetString_params +struct wow64_IVRSystem_IVRSystem_003_GetPropErrorNameFromEnum_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(char *pchValue, pchValue, char *); - uint32_t unValueLen; - W32_PTR(uint32_t *peError, peError, uint32_t *); + struct u_buffer _ret; + uint32_t error; }; -struct IVRSettings_IVRSettings_002_RemoveSection_params +struct IVRSystem_IVRSystem_003_PollNextEvent_params { struct u_iface u_iface; - const char *pchSection; - uint32_t *peError; + int8_t _ret; + w_VREvent_t_090 *pEvent; }; -struct wow64_IVRSettings_IVRSettings_002_RemoveSection_params +struct wow64_IVRSystem_IVRSystem_003_PollNextEvent_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; + W32_PTR(w32_VREvent_t_090 *pEvent, pEvent, w32_VREvent_t_090 *); }; -struct IVRSettings_IVRSettings_002_RemoveKeyInSection_params +struct IVRSystem_IVRSystem_003_PollNextEventWithPose_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + int8_t _ret; + uint32_t eOrigin; + w_VREvent_t_090 *pEvent; + TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSettings_IVRSettings_002_RemoveKeyInSection_params +struct wow64_IVRSystem_IVRSystem_003_PollNextEventWithPose_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; + uint32_t eOrigin; + W32_PTR(w32_VREvent_t_090 *pEvent, pEvent, w32_VREvent_t_090 *); + W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum_params +struct IVRSystem_IVRSystem_003_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; - uint32_t eError; + uint32_t eType; }; -struct wow64_IVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_003_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; - uint32_t eError; + uint32_t eType; }; -struct IVRSettings_IVRSettings_003_SetBool_params +struct IVRSystem_IVRSystem_003_GetHiddenAreaMesh_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - int8_t bValue; - uint32_t *peError; + w_HiddenAreaMesh_t *_ret; + uint32_t eEye; }; -struct wow64_IVRSettings_IVRSettings_003_SetBool_params +struct wow64_IVRSystem_IVRSystem_003_GetHiddenAreaMesh_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int8_t bValue; - W32_PTR(uint32_t *peError, peError, uint32_t *); + W32_PTR(w32_HiddenAreaMesh_t *_ret, _ret, w32_HiddenAreaMesh_t *); + uint32_t eEye; }; -struct IVRSettings_IVRSettings_003_SetInt32_params +struct IVRSystem_IVRSystem_003_GetControllerState_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - int32_t nValue; - uint32_t *peError; + int8_t _ret; + uint32_t unControllerDeviceIndex; + w_VRControllerState001_t *pControllerState; }; -struct wow64_IVRSettings_IVRSettings_003_SetInt32_params +struct wow64_IVRSystem_IVRSystem_003_GetControllerState_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - int32_t nValue; - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; + uint32_t unControllerDeviceIndex; + W32_PTR(w32_VRControllerState001_t *pControllerState, pControllerState, w32_VRControllerState001_t *); }; -struct IVRSettings_IVRSettings_003_SetFloat_params +struct IVRSystem_IVRSystem_003_GetControllerStateWithPose_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - float flValue; - uint32_t *peError; + int8_t _ret; + uint32_t eOrigin; + uint32_t unControllerDeviceIndex; + w_VRControllerState001_t *pControllerState; + TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSettings_IVRSettings_003_SetFloat_params +struct wow64_IVRSystem_IVRSystem_003_GetControllerStateWithPose_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - float flValue; - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; + uint32_t eOrigin; + uint32_t unControllerDeviceIndex; + W32_PTR(w32_VRControllerState001_t *pControllerState, pControllerState, w32_VRControllerState001_t *); + W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSettings_IVRSettings_003_SetString_params +struct IVRSystem_IVRSystem_003_TriggerHapticPulse_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - const char *pchValue; - uint32_t *peError; + uint32_t unControllerDeviceIndex; + uint32_t unAxisId; + uint16_t usDurationMicroSec; }; -struct wow64_IVRSettings_IVRSettings_003_SetString_params +struct wow64_IVRSystem_IVRSystem_003_TriggerHapticPulse_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(const char *pchValue, pchValue, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + uint32_t unControllerDeviceIndex; + uint32_t unAxisId; + uint16_t usDurationMicroSec; }; -struct IVRSettings_IVRSettings_003_GetBool_params +struct IVRSystem_IVRSystem_003_GetButtonIdNameFromEnum_params { struct u_iface u_iface; - int8_t _ret; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + struct u_buffer _ret; + uint32_t eButtonId; }; -struct wow64_IVRSettings_IVRSettings_003_GetBool_params +struct wow64_IVRSystem_IVRSystem_003_GetButtonIdNameFromEnum_params { struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + struct u_buffer _ret; + uint32_t eButtonId; }; -struct IVRSettings_IVRSettings_003_GetInt32_params +struct IVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; - int32_t _ret; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + struct u_buffer _ret; + uint32_t eAxisType; }; -struct wow64_IVRSettings_IVRSettings_003_GetInt32_params +struct wow64_IVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; - int32_t _ret; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + struct u_buffer _ret; + uint32_t eAxisType; }; -struct IVRSettings_IVRSettings_003_GetFloat_params +struct IVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; - float _ret; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + int8_t _ret; + const Compositor_OverlaySettings *overlaySettings; + HmdVector2_t vecWindowClientPositionOnScreen; + HmdVector2_t vecWindowClientSize; + uint32_t unControllerDeviceIndex; + uint32_t eOutputType; }; -struct wow64_IVRSettings_IVRSettings_003_GetFloat_params +struct wow64_IVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse_params { struct u_iface u_iface; - float _ret; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; + W32_PTR(const Compositor_OverlaySettings *overlaySettings, overlaySettings, const Compositor_OverlaySettings *); + HmdVector2_t vecWindowClientPositionOnScreen; + HmdVector2_t vecWindowClientSize; + uint32_t unControllerDeviceIndex; + uint32_t eOutputType; }; -struct IVRSettings_IVRSettings_003_GetString_params +struct IVRSystem_IVRSystem_003_CaptureInputFocus_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - char *pchValue; - uint32_t unValueLen; - uint32_t *peError; + int8_t _ret; }; -struct wow64_IVRSettings_IVRSettings_003_GetString_params +struct wow64_IVRSystem_IVRSystem_003_CaptureInputFocus_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(char *pchValue, pchValue, char *); - uint32_t unValueLen; - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; }; -struct IVRSettings_IVRSettings_003_RemoveSection_params +struct IVRSystem_IVRSystem_003_ReleaseInputFocus_params { struct u_iface u_iface; - const char *pchSection; - uint32_t *peError; }; -struct wow64_IVRSettings_IVRSettings_003_RemoveSection_params +struct wow64_IVRSystem_IVRSystem_003_ReleaseInputFocus_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); }; -struct IVRSettings_IVRSettings_003_RemoveKeyInSection_params +struct IVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; - const char *pchSection; - const char *pchSettingsKey; - uint32_t *peError; + int8_t _ret; }; -struct wow64_IVRSettings_IVRSettings_003_RemoveKeyInSection_params +struct wow64_IVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; - W32_PTR(const char *pchSection, pchSection, const char *); - W32_PTR(const char *pchSettingsKey, pchSettingsKey, const char *); - W32_PTR(uint32_t *peError, peError, uint32_t *); + int8_t _ret; }; -struct IVRSystem_IVRSystem_003_GetWindowBounds_params +struct IVRSystem_IVRSystem_004_GetWindowBounds_params { struct u_iface u_iface; int32_t *pnX; @@ -48442,7 +50108,7 @@ struct IVRSystem_IVRSystem_003_GetWindowBounds_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_003_GetWindowBounds_params +struct wow64_IVRSystem_IVRSystem_004_GetWindowBounds_params { struct u_iface u_iface; W32_PTR(int32_t *pnX, pnX, int32_t *); @@ -48451,21 +50117,21 @@ struct wow64_IVRSystem_IVRSystem_003_GetWindowBounds_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize_params +struct IVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; uint32_t *pnWidth; uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize_params +struct wow64_IVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetEyeOutputViewport_params +struct IVRSystem_IVRSystem_004_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -48475,7 +50141,7 @@ struct IVRSystem_IVRSystem_003_GetEyeOutputViewport_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_003_GetEyeOutputViewport_params +struct wow64_IVRSystem_IVRSystem_004_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -48485,7 +50151,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetEyeOutputViewport_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetProjectionMatrix_params +struct IVRSystem_IVRSystem_004_GetProjectionMatrix_params { struct u_iface u_iface; HmdMatrix44_t *_ret; @@ -48495,7 +50161,7 @@ struct IVRSystem_IVRSystem_003_GetProjectionMatrix_params uint32_t eProjType; }; -struct wow64_IVRSystem_IVRSystem_003_GetProjectionMatrix_params +struct wow64_IVRSystem_IVRSystem_004_GetProjectionMatrix_params { struct u_iface u_iface; W32_PTR(HmdMatrix44_t *_ret, _ret, HmdMatrix44_t *); @@ -48505,7 +50171,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetProjectionMatrix_params uint32_t eProjType; }; -struct IVRSystem_IVRSystem_003_GetProjectionRaw_params +struct IVRSystem_IVRSystem_004_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -48515,7 +50181,7 @@ struct IVRSystem_IVRSystem_003_GetProjectionRaw_params float *pfBottom; }; -struct wow64_IVRSystem_IVRSystem_003_GetProjectionRaw_params +struct wow64_IVRSystem_IVRSystem_004_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -48525,7 +50191,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetProjectionRaw_params W32_PTR(float *pfBottom, pfBottom, float *); }; -struct IVRSystem_IVRSystem_003_ComputeDistortion_params +struct IVRSystem_IVRSystem_004_ComputeDistortion_params { struct u_iface u_iface; DistortionCoordinates_t *_ret; @@ -48534,7 +50200,7 @@ struct IVRSystem_IVRSystem_003_ComputeDistortion_params float fV; }; -struct wow64_IVRSystem_IVRSystem_003_ComputeDistortion_params +struct wow64_IVRSystem_IVRSystem_004_ComputeDistortion_params { struct u_iface u_iface; W32_PTR(DistortionCoordinates_t *_ret, _ret, DistortionCoordinates_t *); @@ -48543,21 +50209,21 @@ struct wow64_IVRSystem_IVRSystem_003_ComputeDistortion_params float fV; }; -struct IVRSystem_IVRSystem_003_GetEyeToHeadTransform_params +struct IVRSystem_IVRSystem_004_GetEyeToHeadTransform_params { struct u_iface u_iface; HmdMatrix34_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_003_GetEyeToHeadTransform_params +struct wow64_IVRSystem_IVRSystem_004_GetEyeToHeadTransform_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_003_GetTimeSinceLastVsync_params +struct IVRSystem_IVRSystem_004_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -48565,7 +50231,7 @@ struct IVRSystem_IVRSystem_003_GetTimeSinceLastVsync_params uint64_t *pulFrameCounter; }; -struct wow64_IVRSystem_IVRSystem_003_GetTimeSinceLastVsync_params +struct wow64_IVRSystem_IVRSystem_004_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -48573,47 +50239,47 @@ struct wow64_IVRSystem_IVRSystem_003_GetTimeSinceLastVsync_params W32_PTR(uint64_t *pulFrameCounter, pulFrameCounter, uint64_t *); }; -struct IVRSystem_IVRSystem_003_GetD3D9AdapterIndex_params +struct IVRSystem_IVRSystem_004_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct wow64_IVRSystem_IVRSystem_003_GetD3D9AdapterIndex_params +struct wow64_IVRSystem_IVRSystem_004_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct IVRSystem_IVRSystem_003_GetDXGIOutputInfo_params +struct IVRSystem_IVRSystem_004_GetDXGIOutputInfo_params { struct u_iface u_iface; int32_t *pnAdapterIndex; int32_t *pnAdapterOutputIndex; }; -struct wow64_IVRSystem_IVRSystem_003_GetDXGIOutputInfo_params +struct wow64_IVRSystem_IVRSystem_004_GetDXGIOutputInfo_params { struct u_iface u_iface; W32_PTR(int32_t *pnAdapterIndex, pnAdapterIndex, int32_t *); W32_PTR(int32_t *pnAdapterOutputIndex, pnAdapterOutputIndex, int32_t *); }; -struct IVRSystem_IVRSystem_003_AttachToWindow_params +struct IVRSystem_IVRSystem_004_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; void *hWnd; }; -struct wow64_IVRSystem_IVRSystem_003_AttachToWindow_params +struct wow64_IVRSystem_IVRSystem_004_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; W32_PTR(void *hWnd, hWnd, void *); }; -struct IVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -48622,7 +50288,7 @@ struct IVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct wow64_IVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -48631,85 +50297,57 @@ struct wow64_IVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct IVRSystem_IVRSystem_003_ResetSeatedZeroPose_params +struct IVRSystem_IVRSystem_004_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_003_ResetSeatedZeroPose_params +struct wow64_IVRSystem_IVRSystem_004_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; HmdMatrix34_t *_ret; }; -struct wow64_IVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); }; -struct IVRSystem_IVRSystem_003_LoadRenderModel_params -{ - struct u_iface u_iface; - int8_t _ret; - const char *pchRenderModelName; - w_RenderModel_t_090 *pRenderModel; -}; - -struct wow64_IVRSystem_IVRSystem_003_LoadRenderModel_params -{ - struct u_iface u_iface; - int8_t _ret; - W32_PTR(const char *pchRenderModelName, pchRenderModelName, const char *); - W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); -}; - -struct IVRSystem_IVRSystem_003_FreeRenderModel_params -{ - struct u_iface u_iface; - w_RenderModel_t_090 *pRenderModel; -}; - -struct wow64_IVRSystem_IVRSystem_003_FreeRenderModel_params -{ - struct u_iface u_iface; - W32_PTR(w32_RenderModel_t_090 *pRenderModel, pRenderModel, w32_RenderModel_t_090 *); -}; - -struct IVRSystem_IVRSystem_003_GetTrackedDeviceClass_params +struct IVRSystem_IVRSystem_004_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_003_GetTrackedDeviceClass_params +struct wow64_IVRSystem_IVRSystem_004_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_003_IsTrackedDeviceConnected_params +struct IVRSystem_IVRSystem_004_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_003_IsTrackedDeviceConnected_params +struct wow64_IVRSystem_IVRSystem_004_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -48718,7 +50356,7 @@ struct IVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -48727,7 +50365,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -48736,7 +50374,7 @@ struct IVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -48745,7 +50383,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -48754,7 +50392,7 @@ struct IVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -48763,7 +50401,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -48772,7 +50410,7 @@ struct IVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -48781,7 +50419,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; HmdMatrix34_t *_ret; @@ -48790,7 +50428,7 @@ struct IVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); @@ -48799,7 +50437,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -48810,7 +50448,7 @@ struct IVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -48821,81 +50459,81 @@ struct wow64_IVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_003_GetPropErrorNameFromEnum_params +struct IVRSystem_IVRSystem_004_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVRSystem_IVRSystem_003_GetPropErrorNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_004_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVRSystem_IVRSystem_003_PollNextEvent_params +struct IVRSystem_IVRSystem_004_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - w_VREvent_t_090 *pEvent; + w_VREvent_t_092 *pEvent; }; -struct wow64_IVRSystem_IVRSystem_003_PollNextEvent_params +struct wow64_IVRSystem_IVRSystem_004_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - W32_PTR(w32_VREvent_t_090 *pEvent, pEvent, w32_VREvent_t_090 *); + W32_PTR(w32_VREvent_t_092 *pEvent, pEvent, w32_VREvent_t_092 *); }; -struct IVRSystem_IVRSystem_003_PollNextEventWithPose_params +struct IVRSystem_IVRSystem_004_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - w_VREvent_t_090 *pEvent; + w_VREvent_t_092 *pEvent; TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_003_PollNextEventWithPose_params +struct wow64_IVRSystem_IVRSystem_004_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - W32_PTR(w32_VREvent_t_090 *pEvent, pEvent, w32_VREvent_t_090 *); + W32_PTR(w32_VREvent_t_092 *pEvent, pEvent, w32_VREvent_t_092 *); W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_003_GetEventTypeNameFromEnum_params +struct IVRSystem_IVRSystem_004_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct wow64_IVRSystem_IVRSystem_003_GetEventTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_004_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct IVRSystem_IVRSystem_003_GetHiddenAreaMesh_params +struct IVRSystem_IVRSystem_004_GetHiddenAreaMesh_params { struct u_iface u_iface; w_HiddenAreaMesh_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_003_GetHiddenAreaMesh_params +struct wow64_IVRSystem_IVRSystem_004_GetHiddenAreaMesh_params { struct u_iface u_iface; W32_PTR(w32_HiddenAreaMesh_t *_ret, _ret, w32_HiddenAreaMesh_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_003_GetControllerState_params +struct IVRSystem_IVRSystem_004_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -48903,7 +50541,7 @@ struct IVRSystem_IVRSystem_003_GetControllerState_params w_VRControllerState001_t *pControllerState; }; -struct wow64_IVRSystem_IVRSystem_003_GetControllerState_params +struct wow64_IVRSystem_IVRSystem_004_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -48911,7 +50549,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetControllerState_params W32_PTR(w32_VRControllerState001_t *pControllerState, pControllerState, w32_VRControllerState001_t *); }; -struct IVRSystem_IVRSystem_003_GetControllerStateWithPose_params +struct IVRSystem_IVRSystem_004_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -48921,7 +50559,7 @@ struct IVRSystem_IVRSystem_003_GetControllerStateWithPose_params TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_003_GetControllerStateWithPose_params +struct wow64_IVRSystem_IVRSystem_004_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -48931,7 +50569,7 @@ struct wow64_IVRSystem_IVRSystem_003_GetControllerStateWithPose_params W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_003_TriggerHapticPulse_params +struct IVRSystem_IVRSystem_004_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -48939,7 +50577,7 @@ struct IVRSystem_IVRSystem_003_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct wow64_IVRSystem_IVRSystem_003_TriggerHapticPulse_params +struct wow64_IVRSystem_IVRSystem_004_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -48947,91 +50585,89 @@ struct wow64_IVRSystem_IVRSystem_003_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct IVRSystem_IVRSystem_003_GetButtonIdNameFromEnum_params +struct IVRSystem_IVRSystem_004_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct wow64_IVRSystem_IVRSystem_003_GetButtonIdNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_004_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct IVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum_params +struct IVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct wow64_IVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct IVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse_params +struct IVRSystem_IVRSystem_004_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; - const Compositor_OverlaySettings *overlaySettings; - HmdVector2_t vecWindowClientPositionOnScreen; - HmdVector2_t vecWindowClientSize; - uint32_t unControllerDeviceIndex; - uint32_t eOutputType; }; -struct wow64_IVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse_params +struct wow64_IVRSystem_IVRSystem_004_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; - W32_PTR(const Compositor_OverlaySettings *overlaySettings, overlaySettings, const Compositor_OverlaySettings *); - HmdVector2_t vecWindowClientPositionOnScreen; - HmdVector2_t vecWindowClientSize; - uint32_t unControllerDeviceIndex; - uint32_t eOutputType; }; -struct IVRSystem_IVRSystem_003_CaptureInputFocus_params +struct IVRSystem_IVRSystem_004_ReleaseInputFocus_params { struct u_iface u_iface; - int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_003_CaptureInputFocus_params +struct wow64_IVRSystem_IVRSystem_004_ReleaseInputFocus_params { struct u_iface u_iface; - int8_t _ret; }; -struct IVRSystem_IVRSystem_003_ReleaseInputFocus_params +struct IVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; + int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_003_ReleaseInputFocus_params +struct wow64_IVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; + int8_t _ret; }; -struct IVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess_params +struct IVRSystem_IVRSystem_004_DriverDebugRequest_params { struct u_iface u_iface; - int8_t _ret; + uint32_t _ret; + uint32_t unDeviceIndex; + const char *pchRequest; + char *pchResponseBuffer; + uint32_t unResponseBufferSize; }; -struct wow64_IVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess_params +struct wow64_IVRSystem_IVRSystem_004_DriverDebugRequest_params { struct u_iface u_iface; - int8_t _ret; + uint32_t _ret; + uint32_t unDeviceIndex; + W32_PTR(const char *pchRequest, pchRequest, const char *); + W32_PTR(char *pchResponseBuffer, pchResponseBuffer, char *); + uint32_t unResponseBufferSize; }; -struct IVRSystem_IVRSystem_004_GetWindowBounds_params +struct IVRSystem_IVRSystem_005_GetWindowBounds_params { struct u_iface u_iface; int32_t *pnX; @@ -49040,7 +50676,7 @@ struct IVRSystem_IVRSystem_004_GetWindowBounds_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_004_GetWindowBounds_params +struct wow64_IVRSystem_IVRSystem_005_GetWindowBounds_params { struct u_iface u_iface; W32_PTR(int32_t *pnX, pnX, int32_t *); @@ -49049,21 +50685,21 @@ struct wow64_IVRSystem_IVRSystem_004_GetWindowBounds_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize_params +struct IVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; uint32_t *pnWidth; uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize_params +struct wow64_IVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetEyeOutputViewport_params +struct IVRSystem_IVRSystem_005_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -49073,7 +50709,7 @@ struct IVRSystem_IVRSystem_004_GetEyeOutputViewport_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_004_GetEyeOutputViewport_params +struct wow64_IVRSystem_IVRSystem_005_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -49083,7 +50719,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetEyeOutputViewport_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetProjectionMatrix_params +struct IVRSystem_IVRSystem_005_GetProjectionMatrix_params { struct u_iface u_iface; HmdMatrix44_t *_ret; @@ -49093,7 +50729,7 @@ struct IVRSystem_IVRSystem_004_GetProjectionMatrix_params uint32_t eProjType; }; -struct wow64_IVRSystem_IVRSystem_004_GetProjectionMatrix_params +struct wow64_IVRSystem_IVRSystem_005_GetProjectionMatrix_params { struct u_iface u_iface; W32_PTR(HmdMatrix44_t *_ret, _ret, HmdMatrix44_t *); @@ -49103,7 +50739,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetProjectionMatrix_params uint32_t eProjType; }; -struct IVRSystem_IVRSystem_004_GetProjectionRaw_params +struct IVRSystem_IVRSystem_005_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -49113,7 +50749,7 @@ struct IVRSystem_IVRSystem_004_GetProjectionRaw_params float *pfBottom; }; -struct wow64_IVRSystem_IVRSystem_004_GetProjectionRaw_params +struct wow64_IVRSystem_IVRSystem_005_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -49123,7 +50759,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetProjectionRaw_params W32_PTR(float *pfBottom, pfBottom, float *); }; -struct IVRSystem_IVRSystem_004_ComputeDistortion_params +struct IVRSystem_IVRSystem_005_ComputeDistortion_params { struct u_iface u_iface; DistortionCoordinates_t *_ret; @@ -49132,7 +50768,7 @@ struct IVRSystem_IVRSystem_004_ComputeDistortion_params float fV; }; -struct wow64_IVRSystem_IVRSystem_004_ComputeDistortion_params +struct wow64_IVRSystem_IVRSystem_005_ComputeDistortion_params { struct u_iface u_iface; W32_PTR(DistortionCoordinates_t *_ret, _ret, DistortionCoordinates_t *); @@ -49141,21 +50777,21 @@ struct wow64_IVRSystem_IVRSystem_004_ComputeDistortion_params float fV; }; -struct IVRSystem_IVRSystem_004_GetEyeToHeadTransform_params +struct IVRSystem_IVRSystem_005_GetEyeToHeadTransform_params { struct u_iface u_iface; HmdMatrix34_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_004_GetEyeToHeadTransform_params +struct wow64_IVRSystem_IVRSystem_005_GetEyeToHeadTransform_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_004_GetTimeSinceLastVsync_params +struct IVRSystem_IVRSystem_005_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -49163,7 +50799,7 @@ struct IVRSystem_IVRSystem_004_GetTimeSinceLastVsync_params uint64_t *pulFrameCounter; }; -struct wow64_IVRSystem_IVRSystem_004_GetTimeSinceLastVsync_params +struct wow64_IVRSystem_IVRSystem_005_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -49171,47 +50807,47 @@ struct wow64_IVRSystem_IVRSystem_004_GetTimeSinceLastVsync_params W32_PTR(uint64_t *pulFrameCounter, pulFrameCounter, uint64_t *); }; -struct IVRSystem_IVRSystem_004_GetD3D9AdapterIndex_params +struct IVRSystem_IVRSystem_005_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct wow64_IVRSystem_IVRSystem_004_GetD3D9AdapterIndex_params +struct wow64_IVRSystem_IVRSystem_005_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct IVRSystem_IVRSystem_004_GetDXGIOutputInfo_params +struct IVRSystem_IVRSystem_005_GetDXGIOutputInfo_params { struct u_iface u_iface; int32_t *pnAdapterIndex; int32_t *pnAdapterOutputIndex; }; -struct wow64_IVRSystem_IVRSystem_004_GetDXGIOutputInfo_params +struct wow64_IVRSystem_IVRSystem_005_GetDXGIOutputInfo_params { struct u_iface u_iface; W32_PTR(int32_t *pnAdapterIndex, pnAdapterIndex, int32_t *); W32_PTR(int32_t *pnAdapterOutputIndex, pnAdapterOutputIndex, int32_t *); }; -struct IVRSystem_IVRSystem_004_AttachToWindow_params +struct IVRSystem_IVRSystem_005_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; void *hWnd; }; -struct wow64_IVRSystem_IVRSystem_004_AttachToWindow_params +struct wow64_IVRSystem_IVRSystem_005_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; W32_PTR(void *hWnd, hWnd, void *); }; -struct IVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -49220,7 +50856,7 @@ struct IVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct wow64_IVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -49229,57 +50865,77 @@ struct wow64_IVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct IVRSystem_IVRSystem_004_ResetSeatedZeroPose_params +struct IVRSystem_IVRSystem_005_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_004_ResetSeatedZeroPose_params +struct wow64_IVRSystem_IVRSystem_005_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; HmdMatrix34_t *_ret; }; -struct wow64_IVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); }; -struct IVRSystem_IVRSystem_004_GetTrackedDeviceClass_params +struct IVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eTrackedDeviceClass; + uint32_t *punTrackedDeviceIndexArray; + uint32_t unTrackedDeviceIndexArrayCount; + uint32_t unRelativeToTrackedDeviceIndex; +}; + +struct wow64_IVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t eTrackedDeviceClass; + W32_PTR(uint32_t *punTrackedDeviceIndexArray, punTrackedDeviceIndexArray, uint32_t *); + uint32_t unTrackedDeviceIndexArrayCount; + uint32_t unRelativeToTrackedDeviceIndex; +}; + +struct IVRSystem_IVRSystem_005_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_004_GetTrackedDeviceClass_params +struct wow64_IVRSystem_IVRSystem_005_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_004_IsTrackedDeviceConnected_params +struct IVRSystem_IVRSystem_005_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_004_IsTrackedDeviceConnected_params +struct wow64_IVRSystem_IVRSystem_005_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -49288,7 +50944,7 @@ struct IVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -49297,7 +50953,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -49306,7 +50962,7 @@ struct IVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -49315,7 +50971,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -49324,7 +50980,7 @@ struct IVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -49333,7 +50989,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -49342,7 +50998,7 @@ struct IVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -49351,7 +51007,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; HmdMatrix34_t *_ret; @@ -49360,7 +51016,7 @@ struct IVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); @@ -49369,7 +51025,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -49380,7 +51036,7 @@ struct IVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -49391,81 +51047,81 @@ struct wow64_IVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_004_GetPropErrorNameFromEnum_params +struct IVRSystem_IVRSystem_005_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVRSystem_IVRSystem_004_GetPropErrorNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_005_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVRSystem_IVRSystem_004_PollNextEvent_params +struct IVRSystem_IVRSystem_005_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - w_VREvent_t_092 *pEvent; + w_VREvent_t_097 *pEvent; }; -struct wow64_IVRSystem_IVRSystem_004_PollNextEvent_params +struct wow64_IVRSystem_IVRSystem_005_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - W32_PTR(w32_VREvent_t_092 *pEvent, pEvent, w32_VREvent_t_092 *); + W32_PTR(w32_VREvent_t_097 *pEvent, pEvent, w32_VREvent_t_097 *); }; -struct IVRSystem_IVRSystem_004_PollNextEventWithPose_params +struct IVRSystem_IVRSystem_005_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - w_VREvent_t_092 *pEvent; + w_VREvent_t_097 *pEvent; TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_004_PollNextEventWithPose_params +struct wow64_IVRSystem_IVRSystem_005_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - W32_PTR(w32_VREvent_t_092 *pEvent, pEvent, w32_VREvent_t_092 *); + W32_PTR(w32_VREvent_t_097 *pEvent, pEvent, w32_VREvent_t_097 *); W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_004_GetEventTypeNameFromEnum_params +struct IVRSystem_IVRSystem_005_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct wow64_IVRSystem_IVRSystem_004_GetEventTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_005_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct IVRSystem_IVRSystem_004_GetHiddenAreaMesh_params +struct IVRSystem_IVRSystem_005_GetHiddenAreaMesh_params { struct u_iface u_iface; w_HiddenAreaMesh_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_004_GetHiddenAreaMesh_params +struct wow64_IVRSystem_IVRSystem_005_GetHiddenAreaMesh_params { struct u_iface u_iface; W32_PTR(w32_HiddenAreaMesh_t *_ret, _ret, w32_HiddenAreaMesh_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_004_GetControllerState_params +struct IVRSystem_IVRSystem_005_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -49473,7 +51129,7 @@ struct IVRSystem_IVRSystem_004_GetControllerState_params w_VRControllerState001_t *pControllerState; }; -struct wow64_IVRSystem_IVRSystem_004_GetControllerState_params +struct wow64_IVRSystem_IVRSystem_005_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -49481,7 +51137,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetControllerState_params W32_PTR(w32_VRControllerState001_t *pControllerState, pControllerState, w32_VRControllerState001_t *); }; -struct IVRSystem_IVRSystem_004_GetControllerStateWithPose_params +struct IVRSystem_IVRSystem_005_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -49491,7 +51147,7 @@ struct IVRSystem_IVRSystem_004_GetControllerStateWithPose_params TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_004_GetControllerStateWithPose_params +struct wow64_IVRSystem_IVRSystem_005_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -49501,7 +51157,7 @@ struct wow64_IVRSystem_IVRSystem_004_GetControllerStateWithPose_params W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_004_TriggerHapticPulse_params +struct IVRSystem_IVRSystem_005_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -49509,7 +51165,7 @@ struct IVRSystem_IVRSystem_004_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct wow64_IVRSystem_IVRSystem_004_TriggerHapticPulse_params +struct wow64_IVRSystem_IVRSystem_005_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -49517,69 +51173,69 @@ struct wow64_IVRSystem_IVRSystem_004_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct IVRSystem_IVRSystem_004_GetButtonIdNameFromEnum_params +struct IVRSystem_IVRSystem_005_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct wow64_IVRSystem_IVRSystem_004_GetButtonIdNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_005_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct IVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum_params +struct IVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct wow64_IVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct IVRSystem_IVRSystem_004_CaptureInputFocus_params +struct IVRSystem_IVRSystem_005_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_004_CaptureInputFocus_params +struct wow64_IVRSystem_IVRSystem_005_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_004_ReleaseInputFocus_params +struct IVRSystem_IVRSystem_005_ReleaseInputFocus_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_004_ReleaseInputFocus_params +struct wow64_IVRSystem_IVRSystem_005_ReleaseInputFocus_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess_params +struct IVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess_params +struct wow64_IVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_004_DriverDebugRequest_params +struct IVRSystem_IVRSystem_005_DriverDebugRequest_params { struct u_iface u_iface; uint32_t _ret; @@ -49589,7 +51245,7 @@ struct IVRSystem_IVRSystem_004_DriverDebugRequest_params uint32_t unResponseBufferSize; }; -struct wow64_IVRSystem_IVRSystem_004_DriverDebugRequest_params +struct wow64_IVRSystem_IVRSystem_005_DriverDebugRequest_params { struct u_iface u_iface; uint32_t _ret; @@ -49599,7 +51255,7 @@ struct wow64_IVRSystem_IVRSystem_004_DriverDebugRequest_params uint32_t unResponseBufferSize; }; -struct IVRSystem_IVRSystem_005_GetWindowBounds_params +struct IVRSystem_IVRSystem_006_GetWindowBounds_params { struct u_iface u_iface; int32_t *pnX; @@ -49608,7 +51264,7 @@ struct IVRSystem_IVRSystem_005_GetWindowBounds_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_005_GetWindowBounds_params +struct wow64_IVRSystem_IVRSystem_006_GetWindowBounds_params { struct u_iface u_iface; W32_PTR(int32_t *pnX, pnX, int32_t *); @@ -49617,21 +51273,21 @@ struct wow64_IVRSystem_IVRSystem_005_GetWindowBounds_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize_params +struct IVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; uint32_t *pnWidth; uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize_params +struct wow64_IVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetEyeOutputViewport_params +struct IVRSystem_IVRSystem_006_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -49641,7 +51297,7 @@ struct IVRSystem_IVRSystem_005_GetEyeOutputViewport_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_005_GetEyeOutputViewport_params +struct wow64_IVRSystem_IVRSystem_006_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -49651,7 +51307,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetEyeOutputViewport_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetProjectionMatrix_params +struct IVRSystem_IVRSystem_006_GetProjectionMatrix_params { struct u_iface u_iface; HmdMatrix44_t *_ret; @@ -49661,7 +51317,7 @@ struct IVRSystem_IVRSystem_005_GetProjectionMatrix_params uint32_t eProjType; }; -struct wow64_IVRSystem_IVRSystem_005_GetProjectionMatrix_params +struct wow64_IVRSystem_IVRSystem_006_GetProjectionMatrix_params { struct u_iface u_iface; W32_PTR(HmdMatrix44_t *_ret, _ret, HmdMatrix44_t *); @@ -49671,7 +51327,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetProjectionMatrix_params uint32_t eProjType; }; -struct IVRSystem_IVRSystem_005_GetProjectionRaw_params +struct IVRSystem_IVRSystem_006_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -49681,7 +51337,7 @@ struct IVRSystem_IVRSystem_005_GetProjectionRaw_params float *pfBottom; }; -struct wow64_IVRSystem_IVRSystem_005_GetProjectionRaw_params +struct wow64_IVRSystem_IVRSystem_006_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -49691,7 +51347,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetProjectionRaw_params W32_PTR(float *pfBottom, pfBottom, float *); }; -struct IVRSystem_IVRSystem_005_ComputeDistortion_params +struct IVRSystem_IVRSystem_006_ComputeDistortion_params { struct u_iface u_iface; DistortionCoordinates_t *_ret; @@ -49700,7 +51356,7 @@ struct IVRSystem_IVRSystem_005_ComputeDistortion_params float fV; }; -struct wow64_IVRSystem_IVRSystem_005_ComputeDistortion_params +struct wow64_IVRSystem_IVRSystem_006_ComputeDistortion_params { struct u_iface u_iface; W32_PTR(DistortionCoordinates_t *_ret, _ret, DistortionCoordinates_t *); @@ -49709,21 +51365,21 @@ struct wow64_IVRSystem_IVRSystem_005_ComputeDistortion_params float fV; }; -struct IVRSystem_IVRSystem_005_GetEyeToHeadTransform_params +struct IVRSystem_IVRSystem_006_GetEyeToHeadTransform_params { struct u_iface u_iface; HmdMatrix34_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_005_GetEyeToHeadTransform_params +struct wow64_IVRSystem_IVRSystem_006_GetEyeToHeadTransform_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_005_GetTimeSinceLastVsync_params +struct IVRSystem_IVRSystem_006_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -49731,7 +51387,7 @@ struct IVRSystem_IVRSystem_005_GetTimeSinceLastVsync_params uint64_t *pulFrameCounter; }; -struct wow64_IVRSystem_IVRSystem_005_GetTimeSinceLastVsync_params +struct wow64_IVRSystem_IVRSystem_006_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -49739,47 +51395,47 @@ struct wow64_IVRSystem_IVRSystem_005_GetTimeSinceLastVsync_params W32_PTR(uint64_t *pulFrameCounter, pulFrameCounter, uint64_t *); }; -struct IVRSystem_IVRSystem_005_GetD3D9AdapterIndex_params +struct IVRSystem_IVRSystem_006_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct wow64_IVRSystem_IVRSystem_005_GetD3D9AdapterIndex_params +struct wow64_IVRSystem_IVRSystem_006_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct IVRSystem_IVRSystem_005_GetDXGIOutputInfo_params +struct IVRSystem_IVRSystem_006_GetDXGIOutputInfo_params { struct u_iface u_iface; int32_t *pnAdapterIndex; int32_t *pnAdapterOutputIndex; }; -struct wow64_IVRSystem_IVRSystem_005_GetDXGIOutputInfo_params +struct wow64_IVRSystem_IVRSystem_006_GetDXGIOutputInfo_params { struct u_iface u_iface; W32_PTR(int32_t *pnAdapterIndex, pnAdapterIndex, int32_t *); W32_PTR(int32_t *pnAdapterOutputIndex, pnAdapterOutputIndex, int32_t *); }; -struct IVRSystem_IVRSystem_005_AttachToWindow_params +struct IVRSystem_IVRSystem_006_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; void *hWnd; }; -struct wow64_IVRSystem_IVRSystem_005_AttachToWindow_params +struct wow64_IVRSystem_IVRSystem_006_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; W32_PTR(void *hWnd, hWnd, void *); }; -struct IVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -49788,7 +51444,7 @@ struct IVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct wow64_IVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -49797,29 +51453,41 @@ struct wow64_IVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct IVRSystem_IVRSystem_005_ResetSeatedZeroPose_params +struct IVRSystem_IVRSystem_006_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_005_ResetSeatedZeroPose_params +struct wow64_IVRSystem_IVRSystem_006_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; HmdMatrix34_t *_ret; }; -struct wow64_IVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); }; -struct IVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass_params +struct IVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose_params +{ + struct u_iface u_iface; + HmdMatrix34_t *_ret; +}; + +struct wow64_IVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose_params +{ + struct u_iface u_iface; + W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); +}; + +struct IVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass_params { struct u_iface u_iface; uint32_t _ret; @@ -49829,7 +51497,7 @@ struct IVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass_params uint32_t unRelativeToTrackedDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass_params +struct wow64_IVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass_params { struct u_iface u_iface; uint32_t _ret; @@ -49839,35 +51507,49 @@ struct wow64_IVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass_params uint32_t unRelativeToTrackedDeviceIndex; }; -struct IVRSystem_IVRSystem_005_GetTrackedDeviceClass_params +struct IVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unDeviceId; +}; + +struct wow64_IVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unDeviceId; +}; + +struct IVRSystem_IVRSystem_006_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_005_GetTrackedDeviceClass_params +struct wow64_IVRSystem_IVRSystem_006_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_005_IsTrackedDeviceConnected_params +struct IVRSystem_IVRSystem_006_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_005_IsTrackedDeviceConnected_params +struct wow64_IVRSystem_IVRSystem_006_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -49876,7 +51558,7 @@ struct IVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -49885,7 +51567,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -49894,7 +51576,7 @@ struct IVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -49903,7 +51585,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -49912,7 +51594,7 @@ struct IVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -49921,7 +51603,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -49930,7 +51612,7 @@ struct IVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -49939,7 +51621,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; HmdMatrix34_t *_ret; @@ -49948,7 +51630,7 @@ struct IVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); @@ -49957,7 +51639,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -49968,7 +51650,7 @@ struct IVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -49979,81 +51661,81 @@ struct wow64_IVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_005_GetPropErrorNameFromEnum_params +struct IVRSystem_IVRSystem_006_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVRSystem_IVRSystem_005_GetPropErrorNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_006_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVRSystem_IVRSystem_005_PollNextEvent_params +struct IVRSystem_IVRSystem_006_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - w_VREvent_t_097 *pEvent; + w_VREvent_t_0910 *pEvent; }; -struct wow64_IVRSystem_IVRSystem_005_PollNextEvent_params +struct wow64_IVRSystem_IVRSystem_006_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - W32_PTR(w32_VREvent_t_097 *pEvent, pEvent, w32_VREvent_t_097 *); + W32_PTR(w32_VREvent_t_0910 *pEvent, pEvent, w32_VREvent_t_0910 *); }; -struct IVRSystem_IVRSystem_005_PollNextEventWithPose_params +struct IVRSystem_IVRSystem_006_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - w_VREvent_t_097 *pEvent; + w_VREvent_t_0910 *pEvent; TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_005_PollNextEventWithPose_params +struct wow64_IVRSystem_IVRSystem_006_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - W32_PTR(w32_VREvent_t_097 *pEvent, pEvent, w32_VREvent_t_097 *); + W32_PTR(w32_VREvent_t_0910 *pEvent, pEvent, w32_VREvent_t_0910 *); W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_005_GetEventTypeNameFromEnum_params +struct IVRSystem_IVRSystem_006_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct wow64_IVRSystem_IVRSystem_005_GetEventTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_006_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct IVRSystem_IVRSystem_005_GetHiddenAreaMesh_params +struct IVRSystem_IVRSystem_006_GetHiddenAreaMesh_params { struct u_iface u_iface; w_HiddenAreaMesh_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_005_GetHiddenAreaMesh_params +struct wow64_IVRSystem_IVRSystem_006_GetHiddenAreaMesh_params { struct u_iface u_iface; W32_PTR(w32_HiddenAreaMesh_t *_ret, _ret, w32_HiddenAreaMesh_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_005_GetControllerState_params +struct IVRSystem_IVRSystem_006_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -50061,7 +51743,7 @@ struct IVRSystem_IVRSystem_005_GetControllerState_params w_VRControllerState001_t *pControllerState; }; -struct wow64_IVRSystem_IVRSystem_005_GetControllerState_params +struct wow64_IVRSystem_IVRSystem_006_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -50069,7 +51751,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetControllerState_params W32_PTR(w32_VRControllerState001_t *pControllerState, pControllerState, w32_VRControllerState001_t *); }; -struct IVRSystem_IVRSystem_005_GetControllerStateWithPose_params +struct IVRSystem_IVRSystem_006_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -50079,7 +51761,7 @@ struct IVRSystem_IVRSystem_005_GetControllerStateWithPose_params TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_005_GetControllerStateWithPose_params +struct wow64_IVRSystem_IVRSystem_006_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -50089,7 +51771,7 @@ struct wow64_IVRSystem_IVRSystem_005_GetControllerStateWithPose_params W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_005_TriggerHapticPulse_params +struct IVRSystem_IVRSystem_006_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -50097,7 +51779,7 @@ struct IVRSystem_IVRSystem_005_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct wow64_IVRSystem_IVRSystem_005_TriggerHapticPulse_params +struct wow64_IVRSystem_IVRSystem_006_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -50105,69 +51787,69 @@ struct wow64_IVRSystem_IVRSystem_005_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct IVRSystem_IVRSystem_005_GetButtonIdNameFromEnum_params +struct IVRSystem_IVRSystem_006_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct wow64_IVRSystem_IVRSystem_005_GetButtonIdNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_006_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct IVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum_params +struct IVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct wow64_IVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct IVRSystem_IVRSystem_005_CaptureInputFocus_params +struct IVRSystem_IVRSystem_006_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_005_CaptureInputFocus_params +struct wow64_IVRSystem_IVRSystem_006_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_005_ReleaseInputFocus_params +struct IVRSystem_IVRSystem_006_ReleaseInputFocus_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_005_ReleaseInputFocus_params +struct wow64_IVRSystem_IVRSystem_006_ReleaseInputFocus_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess_params +struct IVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess_params +struct wow64_IVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_005_DriverDebugRequest_params +struct IVRSystem_IVRSystem_006_DriverDebugRequest_params { struct u_iface u_iface; uint32_t _ret; @@ -50177,7 +51859,7 @@ struct IVRSystem_IVRSystem_005_DriverDebugRequest_params uint32_t unResponseBufferSize; }; -struct wow64_IVRSystem_IVRSystem_005_DriverDebugRequest_params +struct wow64_IVRSystem_IVRSystem_006_DriverDebugRequest_params { struct u_iface u_iface; uint32_t _ret; @@ -50187,7 +51869,47 @@ struct wow64_IVRSystem_IVRSystem_005_DriverDebugRequest_params uint32_t unResponseBufferSize; }; -struct IVRSystem_IVRSystem_006_GetWindowBounds_params +struct IVRSystem_IVRSystem_006_PerformFirmwareUpdate_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unDeviceIndex; +}; + +struct wow64_IVRSystem_IVRSystem_006_PerformFirmwareUpdate_params +{ + struct u_iface u_iface; + uint32_t _ret; + uint32_t unDeviceIndex; +}; + +struct IVRSystem_IVRSystem_006_IsDisplayOnDesktop_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct wow64_IVRSystem_IVRSystem_006_IsDisplayOnDesktop_params +{ + struct u_iface u_iface; + int8_t _ret; +}; + +struct IVRSystem_IVRSystem_006_SetDisplayVisibility_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bIsVisibleOnDesktop; +}; + +struct wow64_IVRSystem_IVRSystem_006_SetDisplayVisibility_params +{ + struct u_iface u_iface; + int8_t _ret; + int8_t bIsVisibleOnDesktop; +}; + +struct IVRSystem_IVRSystem_007_GetWindowBounds_params { struct u_iface u_iface; int32_t *pnX; @@ -50196,7 +51918,7 @@ struct IVRSystem_IVRSystem_006_GetWindowBounds_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_006_GetWindowBounds_params +struct wow64_IVRSystem_IVRSystem_007_GetWindowBounds_params { struct u_iface u_iface; W32_PTR(int32_t *pnX, pnX, int32_t *); @@ -50205,21 +51927,21 @@ struct wow64_IVRSystem_IVRSystem_006_GetWindowBounds_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize_params +struct IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; uint32_t *pnWidth; uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize_params +struct wow64_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params { struct u_iface u_iface; W32_PTR(uint32_t *pnWidth, pnWidth, uint32_t *); W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetEyeOutputViewport_params +struct IVRSystem_IVRSystem_007_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -50229,7 +51951,7 @@ struct IVRSystem_IVRSystem_006_GetEyeOutputViewport_params uint32_t *pnHeight; }; -struct wow64_IVRSystem_IVRSystem_006_GetEyeOutputViewport_params +struct wow64_IVRSystem_IVRSystem_007_GetEyeOutputViewport_params { struct u_iface u_iface; uint32_t eEye; @@ -50239,7 +51961,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetEyeOutputViewport_params W32_PTR(uint32_t *pnHeight, pnHeight, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetProjectionMatrix_params +struct IVRSystem_IVRSystem_007_GetProjectionMatrix_params { struct u_iface u_iface; HmdMatrix44_t *_ret; @@ -50249,7 +51971,7 @@ struct IVRSystem_IVRSystem_006_GetProjectionMatrix_params uint32_t eProjType; }; -struct wow64_IVRSystem_IVRSystem_006_GetProjectionMatrix_params +struct wow64_IVRSystem_IVRSystem_007_GetProjectionMatrix_params { struct u_iface u_iface; W32_PTR(HmdMatrix44_t *_ret, _ret, HmdMatrix44_t *); @@ -50259,7 +51981,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetProjectionMatrix_params uint32_t eProjType; }; -struct IVRSystem_IVRSystem_006_GetProjectionRaw_params +struct IVRSystem_IVRSystem_007_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -50269,7 +51991,7 @@ struct IVRSystem_IVRSystem_006_GetProjectionRaw_params float *pfBottom; }; -struct wow64_IVRSystem_IVRSystem_006_GetProjectionRaw_params +struct wow64_IVRSystem_IVRSystem_007_GetProjectionRaw_params { struct u_iface u_iface; uint32_t eEye; @@ -50279,7 +52001,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetProjectionRaw_params W32_PTR(float *pfBottom, pfBottom, float *); }; -struct IVRSystem_IVRSystem_006_ComputeDistortion_params +struct IVRSystem_IVRSystem_007_ComputeDistortion_params { struct u_iface u_iface; DistortionCoordinates_t *_ret; @@ -50288,7 +52010,7 @@ struct IVRSystem_IVRSystem_006_ComputeDistortion_params float fV; }; -struct wow64_IVRSystem_IVRSystem_006_ComputeDistortion_params +struct wow64_IVRSystem_IVRSystem_007_ComputeDistortion_params { struct u_iface u_iface; W32_PTR(DistortionCoordinates_t *_ret, _ret, DistortionCoordinates_t *); @@ -50297,21 +52019,21 @@ struct wow64_IVRSystem_IVRSystem_006_ComputeDistortion_params float fV; }; -struct IVRSystem_IVRSystem_006_GetEyeToHeadTransform_params +struct IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params { struct u_iface u_iface; HmdMatrix34_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_006_GetEyeToHeadTransform_params +struct wow64_IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_006_GetTimeSinceLastVsync_params +struct IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -50319,7 +52041,7 @@ struct IVRSystem_IVRSystem_006_GetTimeSinceLastVsync_params uint64_t *pulFrameCounter; }; -struct wow64_IVRSystem_IVRSystem_006_GetTimeSinceLastVsync_params +struct wow64_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params { struct u_iface u_iface; int8_t _ret; @@ -50327,47 +52049,47 @@ struct wow64_IVRSystem_IVRSystem_006_GetTimeSinceLastVsync_params W32_PTR(uint64_t *pulFrameCounter, pulFrameCounter, uint64_t *); }; -struct IVRSystem_IVRSystem_006_GetD3D9AdapterIndex_params +struct IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct wow64_IVRSystem_IVRSystem_006_GetD3D9AdapterIndex_params +struct wow64_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params { struct u_iface u_iface; int32_t _ret; }; -struct IVRSystem_IVRSystem_006_GetDXGIOutputInfo_params +struct IVRSystem_IVRSystem_007_GetDXGIOutputInfo_params { struct u_iface u_iface; int32_t *pnAdapterIndex; int32_t *pnAdapterOutputIndex; }; -struct wow64_IVRSystem_IVRSystem_006_GetDXGIOutputInfo_params +struct wow64_IVRSystem_IVRSystem_007_GetDXGIOutputInfo_params { struct u_iface u_iface; W32_PTR(int32_t *pnAdapterIndex, pnAdapterIndex, int32_t *); W32_PTR(int32_t *pnAdapterOutputIndex, pnAdapterOutputIndex, int32_t *); }; -struct IVRSystem_IVRSystem_006_AttachToWindow_params +struct IVRSystem_IVRSystem_007_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; void *hWnd; }; -struct wow64_IVRSystem_IVRSystem_006_AttachToWindow_params +struct wow64_IVRSystem_IVRSystem_007_AttachToWindow_params { struct u_iface u_iface; int8_t _ret; W32_PTR(void *hWnd, hWnd, void *); }; -struct IVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -50376,7 +52098,7 @@ struct IVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct wow64_IVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params { struct u_iface u_iface; uint32_t eOrigin; @@ -50385,41 +52107,41 @@ struct wow64_IVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose_params uint32_t unTrackedDevicePoseArrayCount; }; -struct IVRSystem_IVRSystem_006_ResetSeatedZeroPose_params +struct IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_006_ResetSeatedZeroPose_params +struct wow64_IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; HmdMatrix34_t *_ret; }; -struct wow64_IVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); }; -struct IVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose_params +struct IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; HmdMatrix34_t *_ret; }; -struct wow64_IVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose_params +struct wow64_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); }; -struct IVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass_params +struct IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params { struct u_iface u_iface; uint32_t _ret; @@ -50429,7 +52151,7 @@ struct IVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass_params uint32_t unRelativeToTrackedDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass_params +struct wow64_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params { struct u_iface u_iface; uint32_t _ret; @@ -50439,49 +52161,65 @@ struct wow64_IVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass_params uint32_t unRelativeToTrackedDeviceIndex; }; -struct IVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel_params +struct IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceId; }; -struct wow64_IVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel_params +struct wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceId; }; -struct IVRSystem_IVRSystem_006_GetTrackedDeviceClass_params +struct IVRSystem_IVRSystem_007_ApplyTransform_params +{ + struct u_iface u_iface; + TrackedDevicePose_t *pOutputPose; + const TrackedDevicePose_t *trackedDevicePose; + const HmdMatrix34_t *transform; +}; + +struct wow64_IVRSystem_IVRSystem_007_ApplyTransform_params +{ + struct u_iface u_iface; + W32_PTR(TrackedDevicePose_t *pOutputPose, pOutputPose, TrackedDevicePose_t *); + W32_PTR(const TrackedDevicePose_t *trackedDevicePose, trackedDevicePose, const TrackedDevicePose_t *); + W32_PTR(const HmdMatrix34_t *transform, transform, const HmdMatrix34_t *); +}; + +struct IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_006_GetTrackedDeviceClass_params +struct wow64_IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_006_IsTrackedDeviceConnected_params +struct IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_006_IsTrackedDeviceConnected_params +struct wow64_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params { struct u_iface u_iface; int8_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -50490,7 +52228,7 @@ struct IVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params { struct u_iface u_iface; int8_t _ret; @@ -50499,7 +52237,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -50508,7 +52246,7 @@ struct IVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params { struct u_iface u_iface; float _ret; @@ -50517,7 +52255,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -50526,7 +52264,7 @@ struct IVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params { struct u_iface u_iface; int32_t _ret; @@ -50535,7 +52273,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -50544,7 +52282,7 @@ struct IVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params { struct u_iface u_iface; uint64_t _ret; @@ -50553,7 +52291,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty_params +struct IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; HmdMatrix34_t *_ret; @@ -50562,7 +52300,7 @@ struct IVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params { struct u_iface u_iface; W32_PTR(HmdMatrix34_t *_ret, _ret, HmdMatrix34_t *); @@ -50571,7 +52309,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty_params +struct IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -50582,7 +52320,7 @@ struct IVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty_params uint32_t *pError; }; -struct wow64_IVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty_params +struct wow64_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params { struct u_iface u_iface; uint32_t _ret; @@ -50593,81 +52331,81 @@ struct wow64_IVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty_params W32_PTR(uint32_t *pError, pError, uint32_t *); }; -struct IVRSystem_IVRSystem_006_GetPropErrorNameFromEnum_params +struct IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct wow64_IVRSystem_IVRSystem_006_GetPropErrorNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t error; }; -struct IVRSystem_IVRSystem_006_PollNextEvent_params +struct IVRSystem_IVRSystem_007_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - w_VREvent_t_0910 *pEvent; + w_VREvent_t_0911 *pEvent; }; -struct wow64_IVRSystem_IVRSystem_006_PollNextEvent_params +struct wow64_IVRSystem_IVRSystem_007_PollNextEvent_params { struct u_iface u_iface; int8_t _ret; - W32_PTR(w32_VREvent_t_0910 *pEvent, pEvent, w32_VREvent_t_0910 *); + W32_PTR(w32_VREvent_t_0911 *pEvent, pEvent, w32_VREvent_t_0911 *); }; -struct IVRSystem_IVRSystem_006_PollNextEventWithPose_params +struct IVRSystem_IVRSystem_007_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - w_VREvent_t_0910 *pEvent; + w_VREvent_t_0911 *pEvent; TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_006_PollNextEventWithPose_params +struct wow64_IVRSystem_IVRSystem_007_PollNextEventWithPose_params { struct u_iface u_iface; int8_t _ret; uint32_t eOrigin; - W32_PTR(w32_VREvent_t_0910 *pEvent, pEvent, w32_VREvent_t_0910 *); + W32_PTR(w32_VREvent_t_0911 *pEvent, pEvent, w32_VREvent_t_0911 *); W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_006_GetEventTypeNameFromEnum_params +struct IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct wow64_IVRSystem_IVRSystem_006_GetEventTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eType; }; -struct IVRSystem_IVRSystem_006_GetHiddenAreaMesh_params +struct IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params { struct u_iface u_iface; w_HiddenAreaMesh_t *_ret; uint32_t eEye; }; -struct wow64_IVRSystem_IVRSystem_006_GetHiddenAreaMesh_params +struct wow64_IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params { struct u_iface u_iface; W32_PTR(w32_HiddenAreaMesh_t *_ret, _ret, w32_HiddenAreaMesh_t *); uint32_t eEye; }; -struct IVRSystem_IVRSystem_006_GetControllerState_params +struct IVRSystem_IVRSystem_007_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -50675,7 +52413,7 @@ struct IVRSystem_IVRSystem_006_GetControllerState_params w_VRControllerState001_t *pControllerState; }; -struct wow64_IVRSystem_IVRSystem_006_GetControllerState_params +struct wow64_IVRSystem_IVRSystem_007_GetControllerState_params { struct u_iface u_iface; int8_t _ret; @@ -50683,7 +52421,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetControllerState_params W32_PTR(w32_VRControllerState001_t *pControllerState, pControllerState, w32_VRControllerState001_t *); }; -struct IVRSystem_IVRSystem_006_GetControllerStateWithPose_params +struct IVRSystem_IVRSystem_007_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -50693,7 +52431,7 @@ struct IVRSystem_IVRSystem_006_GetControllerStateWithPose_params TrackedDevicePose_t *pTrackedDevicePose; }; -struct wow64_IVRSystem_IVRSystem_006_GetControllerStateWithPose_params +struct wow64_IVRSystem_IVRSystem_007_GetControllerStateWithPose_params { struct u_iface u_iface; int8_t _ret; @@ -50703,7 +52441,7 @@ struct wow64_IVRSystem_IVRSystem_006_GetControllerStateWithPose_params W32_PTR(TrackedDevicePose_t *pTrackedDevicePose, pTrackedDevicePose, TrackedDevicePose_t *); }; -struct IVRSystem_IVRSystem_006_TriggerHapticPulse_params +struct IVRSystem_IVRSystem_007_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -50711,7 +52449,7 @@ struct IVRSystem_IVRSystem_006_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct wow64_IVRSystem_IVRSystem_006_TriggerHapticPulse_params +struct wow64_IVRSystem_IVRSystem_007_TriggerHapticPulse_params { struct u_iface u_iface; uint32_t unControllerDeviceIndex; @@ -50719,69 +52457,69 @@ struct wow64_IVRSystem_IVRSystem_006_TriggerHapticPulse_params uint16_t usDurationMicroSec; }; -struct IVRSystem_IVRSystem_006_GetButtonIdNameFromEnum_params +struct IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct wow64_IVRSystem_IVRSystem_006_GetButtonIdNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eButtonId; }; -struct IVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum_params +struct IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct wow64_IVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum_params +struct wow64_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params { struct u_iface u_iface; struct u_buffer _ret; uint32_t eAxisType; }; -struct IVRSystem_IVRSystem_006_CaptureInputFocus_params +struct IVRSystem_IVRSystem_007_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_006_CaptureInputFocus_params +struct wow64_IVRSystem_IVRSystem_007_CaptureInputFocus_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_006_ReleaseInputFocus_params +struct IVRSystem_IVRSystem_007_ReleaseInputFocus_params { struct u_iface u_iface; }; -struct wow64_IVRSystem_IVRSystem_006_ReleaseInputFocus_params +struct wow64_IVRSystem_IVRSystem_007_ReleaseInputFocus_params { struct u_iface u_iface; }; -struct IVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess_params +struct IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess_params +struct wow64_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_006_DriverDebugRequest_params +struct IVRSystem_IVRSystem_007_DriverDebugRequest_params { struct u_iface u_iface; uint32_t _ret; @@ -50791,7 +52529,7 @@ struct IVRSystem_IVRSystem_006_DriverDebugRequest_params uint32_t unResponseBufferSize; }; -struct wow64_IVRSystem_IVRSystem_006_DriverDebugRequest_params +struct wow64_IVRSystem_IVRSystem_007_DriverDebugRequest_params { struct u_iface u_iface; uint32_t _ret; @@ -50801,40 +52539,40 @@ struct wow64_IVRSystem_IVRSystem_006_DriverDebugRequest_params uint32_t unResponseBufferSize; }; -struct IVRSystem_IVRSystem_006_PerformFirmwareUpdate_params +struct IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct wow64_IVRSystem_IVRSystem_006_PerformFirmwareUpdate_params +struct wow64_IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params { struct u_iface u_iface; uint32_t _ret; uint32_t unDeviceIndex; }; -struct IVRSystem_IVRSystem_006_IsDisplayOnDesktop_params +struct IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params { struct u_iface u_iface; int8_t _ret; }; -struct wow64_IVRSystem_IVRSystem_006_IsDisplayOnDesktop_params +struct wow64_IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params { struct u_iface u_iface; int8_t _ret; }; -struct IVRSystem_IVRSystem_006_SetDisplayVisibility_params +struct IVRSystem_IVRSystem_007_SetDisplayVisibility_params { struct u_iface u_iface; int8_t _ret; int8_t bIsVisibleOnDesktop; }; -struct wow64_IVRSystem_IVRSystem_006_SetDisplayVisibility_params +struct wow64_IVRSystem_IVRSystem_007_SetDisplayVisibility_params { struct u_iface u_iface; int8_t _ret; @@ -61658,6 +63396,8 @@ enum unix_funcs unix_IVRCompositor_IVRCompositor_008_CompositorDumpImages, unix_IVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, unix_IVRCompositor_IVRCompositor_008_GetLastFrameRenderer, + unix_IVRCompositor_IVRCompositor_008_GetLastPoses, + unix_IVRCompositor_IVRCompositor_008_PostPresentHandoff, unix_IVRCompositor_IVRCompositor_009_SetTrackingSpace, unix_IVRCompositor_IVRCompositor_009_GetTrackingSpace, unix_IVRCompositor_IVRCompositor_009_WaitGetPoses, @@ -62825,6 +64565,63 @@ enum unix_funcs unix_IVROverlay_IVROverlay_005_ShowKeyboard, unix_IVROverlay_IVROverlay_005_GetKeyboardText, unix_IVROverlay_IVROverlay_005_HideKeyboard, + unix_IVROverlay_IVROverlay_006_FindOverlay, + unix_IVROverlay_IVROverlay_006_CreateOverlay, + unix_IVROverlay_IVROverlay_006_DestroyOverlay, + unix_IVROverlay_IVROverlay_006_SetHighQualityOverlay, + unix_IVROverlay_IVROverlay_006_GetHighQualityOverlay, + unix_IVROverlay_IVROverlay_006_GetOverlayKey, + unix_IVROverlay_IVROverlay_006_GetOverlayName, + unix_IVROverlay_IVROverlay_006_GetOverlayImageData, + unix_IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum, + unix_IVROverlay_IVROverlay_006_SetOverlayFlag, + unix_IVROverlay_IVROverlay_006_GetOverlayFlag, + unix_IVROverlay_IVROverlay_006_SetOverlayColor, + unix_IVROverlay_IVROverlay_006_GetOverlayColor, + unix_IVROverlay_IVROverlay_006_SetOverlayAlpha, + unix_IVROverlay_IVROverlay_006_GetOverlayAlpha, + unix_IVROverlay_IVROverlay_006_SetOverlayGamma, + unix_IVROverlay_IVROverlay_006_GetOverlayGamma, + unix_IVROverlay_IVROverlay_006_SetOverlayWidthInMeters, + unix_IVROverlay_IVROverlay_006_GetOverlayWidthInMeters, + unix_IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters, + unix_IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters, + unix_IVROverlay_IVROverlay_006_SetOverlayTextureBounds, + unix_IVROverlay_IVROverlay_006_GetOverlayTextureBounds, + unix_IVROverlay_IVROverlay_006_GetOverlayTransformType, + unix_IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute, + unix_IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute, + unix_IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative, + unix_IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative, + unix_IVROverlay_IVROverlay_006_ShowOverlay, + unix_IVROverlay_IVROverlay_006_HideOverlay, + unix_IVROverlay_IVROverlay_006_IsOverlayVisible, + unix_IVROverlay_IVROverlay_006_PollNextOverlayEvent, + unix_IVROverlay_IVROverlay_006_GetOverlayInputMethod, + unix_IVROverlay_IVROverlay_006_SetOverlayInputMethod, + unix_IVROverlay_IVROverlay_006_GetOverlayMouseScale, + unix_IVROverlay_IVROverlay_006_SetOverlayMouseScale, + unix_IVROverlay_IVROverlay_006_ComputeOverlayIntersection, + unix_IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse, + unix_IVROverlay_IVROverlay_006_IsHoverTargetOverlay, + unix_IVROverlay_IVROverlay_006_GetGamepadFocusOverlay, + unix_IVROverlay_IVROverlay_006_SetGamepadFocusOverlay, + unix_IVROverlay_IVROverlay_006_SetOverlayNeighbor, + unix_IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor, + unix_IVROverlay_IVROverlay_006_SetOverlayTexture, + unix_IVROverlay_IVROverlay_006_ClearOverlayTexture, + unix_IVROverlay_IVROverlay_006_SetOverlayRaw, + unix_IVROverlay_IVROverlay_006_SetOverlayFromFile, + unix_IVROverlay_IVROverlay_006_CreateDashboardOverlay, + unix_IVROverlay_IVROverlay_006_IsDashboardVisible, + unix_IVROverlay_IVROverlay_006_IsActiveDashboardOverlay, + unix_IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess, + unix_IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess, + unix_IVROverlay_IVROverlay_006_ShowDashboard, + unix_IVROverlay_IVROverlay_006_ShowKeyboard, + unix_IVROverlay_IVROverlay_006_ShowKeyboardForOverlay, + unix_IVROverlay_IVROverlay_006_GetKeyboardText, + unix_IVROverlay_IVROverlay_006_HideKeyboard, unix_IVROverlay_IVROverlay_007_FindOverlay, unix_IVROverlay_IVROverlay_007_CreateOverlay, unix_IVROverlay_IVROverlay_007_DestroyOverlay, @@ -64259,6 +66056,11 @@ enum unix_funcs unix_IVRRenderModels_IVRRenderModels_001_FreeRenderModel, unix_IVRRenderModels_IVRRenderModels_001_GetRenderModelName, unix_IVRRenderModels_IVRRenderModels_001_GetRenderModelCount, + unix_IVRRenderModels_IVRRenderModels_001_GetComponentCount, + unix_IVRRenderModels_IVRRenderModels_001_GetComponentName, + unix_IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask, + unix_IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName, + unix_IVRRenderModels_IVRRenderModels_001_GetComponentState, unix_IVRRenderModels_IVRRenderModels_002_LoadRenderModel, unix_IVRRenderModels_IVRRenderModels_002_FreeRenderModel, unix_IVRRenderModels_IVRRenderModels_002_LoadTexture, @@ -64519,6 +66321,49 @@ enum unix_funcs unix_IVRSystem_IVRSystem_006_PerformFirmwareUpdate, unix_IVRSystem_IVRSystem_006_IsDisplayOnDesktop, unix_IVRSystem_IVRSystem_006_SetDisplayVisibility, + unix_IVRSystem_IVRSystem_007_GetWindowBounds, + unix_IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize, + unix_IVRSystem_IVRSystem_007_GetEyeOutputViewport, + unix_IVRSystem_IVRSystem_007_GetProjectionMatrix, + unix_IVRSystem_IVRSystem_007_GetProjectionRaw, + unix_IVRSystem_IVRSystem_007_ComputeDistortion, + unix_IVRSystem_IVRSystem_007_GetEyeToHeadTransform, + unix_IVRSystem_IVRSystem_007_GetTimeSinceLastVsync, + unix_IVRSystem_IVRSystem_007_GetD3D9AdapterIndex, + unix_IVRSystem_IVRSystem_007_GetDXGIOutputInfo, + unix_IVRSystem_IVRSystem_007_AttachToWindow, + unix_IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose, + unix_IVRSystem_IVRSystem_007_ResetSeatedZeroPose, + unix_IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, + unix_IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose, + unix_IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass, + unix_IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel, + unix_IVRSystem_IVRSystem_007_ApplyTransform, + unix_IVRSystem_IVRSystem_007_GetTrackedDeviceClass, + unix_IVRSystem_IVRSystem_007_IsTrackedDeviceConnected, + unix_IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty, + unix_IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty, + unix_IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty, + unix_IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty, + unix_IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty, + unix_IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty, + unix_IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum, + unix_IVRSystem_IVRSystem_007_PollNextEvent, + unix_IVRSystem_IVRSystem_007_PollNextEventWithPose, + unix_IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum, + unix_IVRSystem_IVRSystem_007_GetHiddenAreaMesh, + unix_IVRSystem_IVRSystem_007_GetControllerState, + unix_IVRSystem_IVRSystem_007_GetControllerStateWithPose, + unix_IVRSystem_IVRSystem_007_TriggerHapticPulse, + unix_IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum, + unix_IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum, + unix_IVRSystem_IVRSystem_007_CaptureInputFocus, + unix_IVRSystem_IVRSystem_007_ReleaseInputFocus, + unix_IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess, + unix_IVRSystem_IVRSystem_007_DriverDebugRequest, + unix_IVRSystem_IVRSystem_007_PerformFirmwareUpdate, + unix_IVRSystem_IVRSystem_007_IsDisplayOnDesktop, + unix_IVRSystem_IVRSystem_007_SetDisplayVisibility, unix_IVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize, unix_IVRSystem_IVRSystem_009_GetProjectionMatrix, unix_IVRSystem_IVRSystem_009_GetProjectionRaw, diff --git a/vrclient_x64/vkd3d-proton-interop.h b/vrclient_x64/vkd3d-proton-interop.h index d88fb9b222b..34251e73509 100644 --- a/vrclient_x64/vkd3d-proton-interop.h +++ b/vrclient_x64/vkd3d-proton-interop.h @@ -10,6 +10,11 @@ typedef interface ID3D12DXVKInteropDevice ID3D12DXVKInteropDevice; #endif +#ifndef __ID3D12DXVKInteropDevice2_FWD_DEFINED__ +#define __ID3D12DXVKInteropDevice2_FWD_DEFINED__ +typedef interface ID3D12DXVKInteropDevice2 ID3D12DXVKInteropDevice2; +#endif + #ifndef __ID3D12DXVKInteropDevice_INTERFACE_DEFINED__ #define __ID3D12DXVKInteropDevice_INTERFACE_DEFINED__ @@ -87,4 +92,118 @@ typedef struct ID3D12DXVKInteropDeviceVtbl { interface ID3D12DXVKInteropDevice { CONST_VTBL ID3D12DXVKInteropDeviceVtbl* lpVtbl; }; + +DEFINE_GUID(IID_ID3D12DXVKInteropDevice2, 0x90ecf26e, 0xb212, 0x43f5, 0xb6,0x2a, 0x82,0x5a,0xd7,0xb1,0x38,0x5e); +typedef struct ID3D12DXVKInteropDevice2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ID3D12DXVKInteropDevice2 *This, + REFIID riid, + void **object); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ID3D12DXVKInteropDevice2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ID3D12DXVKInteropDevice2 *This); + + /*** ID3D12DXVKInteropDevice methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDXGIAdapter)( + ID3D12DXVKInteropDevice2 *This, + REFIID iid, + void **object); + + HRESULT (STDMETHODCALLTYPE *GetInstanceExtensions)( + ID3D12DXVKInteropDevice2 *This, + UINT *extension_count, + const char **extensions); + + HRESULT (STDMETHODCALLTYPE *GetDeviceExtensions)( + ID3D12DXVKInteropDevice2 *This, + UINT *extension_count, + const char **extensions); + + HRESULT (STDMETHODCALLTYPE *GetDeviceFeatures)( + ID3D12DXVKInteropDevice2 *This, + const VkPhysicalDeviceFeatures2 **features); + + HRESULT (STDMETHODCALLTYPE *GetVulkanHandles)( + ID3D12DXVKInteropDevice2 *This, + VkInstance *vk_instance, + VkPhysicalDevice *vk_physical_device, + VkDevice *vk_device); + + HRESULT (STDMETHODCALLTYPE *GetVulkanQueueInfo)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue, + VkQueue *vk_queue, + UINT32 *vk_queue_family); + + void (STDMETHODCALLTYPE *GetVulkanImageLayout)( + ID3D12DXVKInteropDevice2 *This, + ID3D12Resource *resource, + D3D12_RESOURCE_STATES state, + VkImageLayout *vk_layout); + + HRESULT (STDMETHODCALLTYPE *GetVulkanResourceInfo)( + ID3D12DXVKInteropDevice2 *This, + ID3D12Resource *resource, + UINT64 *vk_handle, + UINT64 *buffer_offset); + + HRESULT (STDMETHODCALLTYPE *LockCommandQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + HRESULT (STDMETHODCALLTYPE *UnlockCommandQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + /*** ID3D12DXVKInteropDevice1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetVulkanResourceInfo1)( + ID3D12DXVKInteropDevice2 *This, + ID3D12Resource *resource, + UINT64 *vk_handle, + UINT64 *buffer_offset, + VkFormat *format); + + HRESULT (STDMETHODCALLTYPE *CreateInteropCommandQueue)( + ID3D12DXVKInteropDevice2 *This, + const D3D12_COMMAND_QUEUE_DESC *pDesc, + UINT32 vk_queue_family_index, + ID3D12CommandQueue **ppQueue); + + HRESULT (STDMETHODCALLTYPE *CreateInteropCommandAllocator)( + ID3D12DXVKInteropDevice2 *This, + D3D12_COMMAND_LIST_TYPE type, + UINT32 vk_queue_family_index, + ID3D12CommandAllocator **ppAllocator); + + HRESULT (STDMETHODCALLTYPE *BeginVkCommandBufferInterop)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandList *pCmdList, + VkCommandBuffer *pCommandBuffer); + + HRESULT (STDMETHODCALLTYPE *EndVkCommandBufferInterop)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandList *pCmdList); + + /*** ID3D12DXVKInteropDevice2 methods ***/ + HRESULT (STDMETHODCALLTYPE *LockVulkanQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + HRESULT (STDMETHODCALLTYPE *UnlockVulkanQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + END_INTERFACE +} ID3D12DXVKInteropDevice2Vtbl; + +interface ID3D12DXVKInteropDevice2 { + CONST_VTBL ID3D12DXVKInteropDevice2Vtbl* lpVtbl; +}; + #endif diff --git a/vrclient_x64/vrclient.spec b/vrclient_x64/vrclient.spec index db5cdd6bc5e..051038ecf6b 100644 --- a/vrclient_x64/vrclient.spec +++ b/vrclient_x64/vrclient.spec @@ -1,6 +1,6 @@ # Generated from vrclient.dll by winedump -1 stdcall HmdSystemFactory(ptr ptr) -2 stdcall VRClientCoreFactory(ptr ptr) +1 cdecl HmdSystemFactory(ptr ptr) +2 cdecl VRClientCoreFactory(ptr ptr) @ cdecl -private vrclient_init_registry() diff --git a/vrclient_x64/vrclient_generated.c b/vrclient_x64/vrclient_generated.c index dbb1f86cb9c..2b0bc8bb9b6 100644 --- a/vrclient_x64/vrclient_generated.c +++ b/vrclient_x64/vrclient_generated.c @@ -122,6 +122,8 @@ static const struct { const char *iface_version; iface_constructor ctor; } const {"FnTable:IVROverlay_004", create_winIVROverlay_IVROverlay_004_FnTable}, {"IVROverlay_005", create_winIVROverlay_IVROverlay_005}, {"FnTable:IVROverlay_005", create_winIVROverlay_IVROverlay_005_FnTable}, + {"IVROverlay_006", create_winIVROverlay_IVROverlay_006}, + {"FnTable:IVROverlay_006", create_winIVROverlay_IVROverlay_006_FnTable}, {"IVROverlay_007", create_winIVROverlay_IVROverlay_007}, {"FnTable:IVROverlay_007", create_winIVROverlay_IVROverlay_007_FnTable}, {"IVROverlay_008", create_winIVROverlay_IVROverlay_008}, @@ -188,6 +190,8 @@ static const struct { const char *iface_version; iface_constructor ctor; } const {"FnTable:IVRSystem_005", create_winIVRSystem_IVRSystem_005_FnTable}, {"IVRSystem_006", create_winIVRSystem_IVRSystem_006}, {"FnTable:IVRSystem_006", create_winIVRSystem_IVRSystem_006_FnTable}, + {"IVRSystem_007", create_winIVRSystem_IVRSystem_007}, + {"FnTable:IVRSystem_007", create_winIVRSystem_IVRSystem_007_FnTable}, {"IVRSystem_009", create_winIVRSystem_IVRSystem_009}, {"FnTable:IVRSystem_009", create_winIVRSystem_IVRSystem_009_FnTable}, {"IVRSystem_010", create_winIVRSystem_IVRSystem_010}, @@ -357,6 +361,8 @@ static const struct { const char *iface_version; iface_destructor dtor; } destru {"FnTable:IVROverlay_004", destroy_winIVROverlay_IVROverlay_004_FnTable}, {"IVROverlay_005", destroy_winIVROverlay_IVROverlay_005}, {"FnTable:IVROverlay_005", destroy_winIVROverlay_IVROverlay_005_FnTable}, + {"IVROverlay_006", destroy_winIVROverlay_IVROverlay_006}, + {"FnTable:IVROverlay_006", destroy_winIVROverlay_IVROverlay_006_FnTable}, {"IVROverlay_007", destroy_winIVROverlay_IVROverlay_007}, {"FnTable:IVROverlay_007", destroy_winIVROverlay_IVROverlay_007_FnTable}, {"IVROverlay_008", destroy_winIVROverlay_IVROverlay_008}, @@ -423,6 +429,8 @@ static const struct { const char *iface_version; iface_destructor dtor; } destru {"FnTable:IVRSystem_005", destroy_winIVRSystem_IVRSystem_005_FnTable}, {"IVRSystem_006", destroy_winIVRSystem_IVRSystem_006}, {"FnTable:IVRSystem_006", destroy_winIVRSystem_IVRSystem_006_FnTable}, + {"IVRSystem_007", destroy_winIVRSystem_IVRSystem_007}, + {"FnTable:IVRSystem_007", destroy_winIVRSystem_IVRSystem_007_FnTable}, {"IVRSystem_009", destroy_winIVRSystem_IVRSystem_009}, {"FnTable:IVRSystem_009", destroy_winIVRSystem_IVRSystem_009_FnTable}, {"IVRSystem_010", destroy_winIVRSystem_IVRSystem_010}, diff --git a/vrclient_x64/vrclient_generated.h b/vrclient_x64/vrclient_generated.h index ec5e6d94b4d..87b21c92a25 100644 --- a/vrclient_x64/vrclient_generated.h +++ b/vrclient_x64/vrclient_generated.h @@ -236,6 +236,10 @@ extern struct w_iface *create_winIVROverlay_IVROverlay_005( struct u_iface ); extern struct w_iface *create_winIVROverlay_IVROverlay_005_FnTable( struct u_iface ); extern void destroy_winIVROverlay_IVROverlay_005(struct w_iface *); extern void destroy_winIVROverlay_IVROverlay_005_FnTable(struct w_iface *); +extern struct w_iface *create_winIVROverlay_IVROverlay_006( struct u_iface ); +extern struct w_iface *create_winIVROverlay_IVROverlay_006_FnTable( struct u_iface ); +extern void destroy_winIVROverlay_IVROverlay_006(struct w_iface *); +extern void destroy_winIVROverlay_IVROverlay_006_FnTable(struct w_iface *); extern struct w_iface *create_winIVROverlay_IVROverlay_007( struct u_iface ); extern struct w_iface *create_winIVROverlay_IVROverlay_007_FnTable( struct u_iface ); extern void destroy_winIVROverlay_IVROverlay_007(struct w_iface *); @@ -368,6 +372,10 @@ extern struct w_iface *create_winIVRSystem_IVRSystem_006( struct u_iface ); extern struct w_iface *create_winIVRSystem_IVRSystem_006_FnTable( struct u_iface ); extern void destroy_winIVRSystem_IVRSystem_006(struct w_iface *); extern void destroy_winIVRSystem_IVRSystem_006_FnTable(struct w_iface *); +extern struct w_iface *create_winIVRSystem_IVRSystem_007( struct u_iface ); +extern struct w_iface *create_winIVRSystem_IVRSystem_007_FnTable( struct u_iface ); +extern void destroy_winIVRSystem_IVRSystem_007(struct w_iface *); +extern void destroy_winIVRSystem_IVRSystem_007_FnTable(struct w_iface *); extern struct w_iface *create_winIVRSystem_IVRSystem_009( struct u_iface ); extern struct w_iface *create_winIVRSystem_IVRSystem_009_FnTable( struct u_iface ); extern void destroy_winIVRSystem_IVRSystem_009(struct w_iface *); diff --git a/vrclient_x64/vrclient_main.c b/vrclient_x64/vrclient_main.c index 5cb6252985f..f994fbb9ae7 100644 --- a/vrclient_x64/vrclient_main.c +++ b/vrclient_x64/vrclient_main.c @@ -200,14 +200,6 @@ static int load_vrclient( BOOL initializing_registry ) WCHAR pathW[PATH_MAX]; DWORD sz; -#if defined(__x86_64__) && !defined(__arm64ec__) - static const char append_path[] = "/bin/linux64/vrclient.so"; -#elif defined(__arm64ec__) - static const char append_path[] = "/bin/linuxarm64/vrclient.so"; -#else - static const char append_path[] = "/bin/vrclient.so"; -#endif - if (vrclient_loaded) return 1; if (!(initializing_registry || get_vulkan_extensions_from_registry())) @@ -252,24 +244,22 @@ static int load_vrclient( BOOL initializing_registry ) return 0; } - params.unix_path = HeapAlloc( GetProcessHeap(), 0, sz + sizeof(append_path) ); + params.runtime_unix_path = HeapAlloc( GetProcessHeap(), 0, sz ); - sz = WideCharToMultiByte( CP_UNIXCP, 0, pathW, -1, params.unix_path, sz, NULL, NULL ); + sz = WideCharToMultiByte( CP_UNIXCP, 0, pathW, -1, params.runtime_unix_path, sz, NULL, NULL ); if(!sz) { ERR("Can't convert path to unixcp! %s\n", wine_dbgstr_w(pathW)); - HeapFree(GetProcessHeap(), 0, params.unix_path); + HeapFree(GetProcessHeap(), 0, params.runtime_unix_path); return 0; } - strcat( params.unix_path, append_path ); - - TRACE( "got openvr runtime path: %s\n", params.unix_path ); + TRACE( "got openvr runtime path: %s\n", params.runtime_unix_path ); VRCLIENT_CALL( vrclient_init, ¶ms ); if (params._ret) vrclient_loaded = TRUE; - HeapFree( GetProcessHeap(), 0, params.unix_path ); + HeapFree( GetProcessHeap(), 0, params.runtime_unix_path ); return vrclient_loaded; } @@ -613,6 +603,7 @@ w_Texture_t vrclient_translate_texture_d3d12( const w_Texture_t *texture, w_VRVu { case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: vk_format = VK_FORMAT_R8G8B8A8_SRGB; break; case DXGI_FORMAT_R8G8B8A8_UNORM: vk_format = VK_FORMAT_R8G8B8A8_UNORM; break; + case DXGI_FORMAT_B8G8R8A8_TYPELESS: vk_format = VK_FORMAT_B8G8R8A8_UNORM; break; default: ERR("Unsupported DXGI format %#x.\n", resource_desc.Format); return *texture; diff --git a/vrclient_x64/vrclient_private.h b/vrclient_x64/vrclient_private.h index 9099a26308e..cf2b936d6df 100644 --- a/vrclient_x64/vrclient_private.h +++ b/vrclient_x64/vrclient_private.h @@ -20,6 +20,7 @@ void *create_LinuxMatchmakingServerListResponse(void *win); typedef struct ID3D11Device ID3D11Device; typedef struct IDXGIVkInteropDevice IDXGIVkInteropDevice; typedef struct ID3D12DXVKInteropDevice ID3D12DXVKInteropDevice; +typedef struct ID3D12DXVKInteropDevice2 ID3D12DXVKInteropDevice2; typedef struct ID3D12CommandQueue ID3D12CommandQueue; struct client_core_data @@ -54,8 +55,11 @@ struct compositor_data * IDXGIVkInteropDevice or ID3D12DXVKInteropDevice interfaces. */ IDXGIVkInteropDevice *dxvk_device; ID3D12DXVKInteropDevice *d3d12_device; + ID3D12DXVKInteropDevice2 *d3d12_device2; /* if not NULL, d3d12_device points to the same interface; + * d3d12_device is referenced counted and d3d12_device2 is not. */ ID3D12CommandQueue *d3d12_queue; BOOL d3d11_explicit_handoff, handoff_called; + int32_t explicit_timing_mode; struct u_iface u_client_core_iface; #define X(proc) PFN_##proc p_##proc; diff --git a/vrclient_x64/vrclient_structs_generated.h b/vrclient_x64/vrclient_structs_generated.h index 2cb601c1a46..8fe27dd2887 100644 --- a/vrclient_x64/vrclient_structs_generated.h +++ b/vrclient_x64/vrclient_structs_generated.h @@ -133,9 +133,9 @@ struct VREvent_Keyboard_t_2010 }; #pragma pack( pop ) -typedef struct VREvent_Keyboard_t_0912 VREvent_Keyboard_t_0912; +typedef struct VREvent_Keyboard_t_0911 VREvent_Keyboard_t_0911; #pragma pack( push, 8 ) -struct VREvent_Keyboard_t_0912 +struct VREvent_Keyboard_t_0911 { char (cNewInput)[8]; uint64_t uUserValue; @@ -548,7 +548,7 @@ union VREvent_Data_t_1168 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1168 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -584,7 +584,7 @@ union VREvent_Data_t_11030 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -620,7 +620,7 @@ union VREvent_Data_t_1322 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -657,7 +657,7 @@ union VREvent_Data_t_1210 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -692,7 +692,7 @@ union VREvent_Data_t_113b VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -727,7 +727,7 @@ union VREvent_Data_t_1016 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -760,7 +760,7 @@ union VREvent_Data_t_1015 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -791,7 +791,7 @@ union VREvent_Data_t_1014 VREvent_Notification_t_093 notification; VREvent_Overlay_t_1014 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -821,7 +821,7 @@ union VREvent_Data_t_1013 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -850,7 +850,7 @@ union VREvent_Data_t_1012 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -879,7 +879,7 @@ union VREvent_Data_t_1011 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -907,7 +907,7 @@ union VREvent_Data_t_106 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -934,7 +934,7 @@ union VREvent_Data_t_105 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -960,7 +960,7 @@ union VREvent_Data_t_103 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -985,7 +985,7 @@ union VREvent_Data_t_102 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -1009,7 +1009,7 @@ union VREvent_Data_t_101 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -1031,7 +1031,7 @@ union VREvent_Data_t_0918 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -1052,7 +1052,7 @@ union VREvent_Data_t_0915 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -1071,7 +1071,7 @@ union VREvent_Data_t_0914 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; VREvent_PerformanceTest_t performanceTest; @@ -1089,12 +1089,27 @@ union VREvent_Data_t_0912 VREvent_Notification_t_093 notification; VREvent_Overlay_t_092 overlay; VREvent_Status_t status; - VREvent_Keyboard_t_0912 keyboard; + VREvent_Keyboard_t_0911 keyboard; VREvent_Ipd_t ipd; VREvent_Chaperone_t chaperone; }; #pragma pack( pop ) +typedef union VREvent_Data_t_0911 VREvent_Data_t_0911; +#pragma pack( push, 8 ) +union VREvent_Data_t_0911 +{ + VREvent_Reserved_t_090 reserved; + VREvent_Controller_t controller; + VREvent_Mouse_t_090 mouse; + VREvent_Process_t_090 process; + VREvent_Notification_t_093 notification; + VREvent_Overlay_t_092 overlay; + VREvent_Status_t status; + VREvent_Keyboard_t_0911 keyboard; +}; +#pragma pack( pop ) + typedef union VREvent_Data_t_0910 VREvent_Data_t_0910; #pragma pack( push, 8 ) union VREvent_Data_t_0910 @@ -1198,6 +1213,18 @@ struct ChaperoneSoftBoundsInfo_t }; #pragma pack( pop ) +typedef struct ComponentState_t ComponentState_t; +#pragma pack( push, 4 ) +struct ComponentState_t +{ + HmdMatrix34_t mTrackingToComponentRenderModel; + HmdMatrix34_t mTrackingToComponentLocal; + int8_t bIsStatic; + int8_t bIsVisible; + uint8_t __pad_98[2]; +}; +#pragma pack( pop ) + typedef struct Compositor_BenchmarkResults Compositor_BenchmarkResults; #pragma pack( push, 4 ) struct Compositor_BenchmarkResults @@ -1428,6 +1455,22 @@ struct SpatialAnchorPose_t }; #pragma pack( pop ) +typedef struct TrackedCameraCalibrationDevOnly_t TrackedCameraCalibrationDevOnly_t; +#pragma pack( push, 8 ) +struct TrackedCameraCalibrationDevOnly_t +{ + double m_flIntrinsicsFX; + double m_flIntrinsicsFY; + double m_flIntrinsicsCX; + double m_flIntrinsicsCY; + double m_flIntrinsicsK1; + double m_flIntrinsicsK2; + double m_flIntrinsicsP1; + double m_flIntrinsicsP2; + double m_flIntrinsicsK3; +}; +#pragma pack( pop ) + typedef struct VRActiveActionSet_t_1016 VRActiveActionSet_t_1016; #pragma pack( push, 8 ) struct VRActiveActionSet_t_1016 @@ -1615,6 +1658,10 @@ typedef struct u64_CameraVideoStreamFrame_t_0912 u64_CameraVideoStreamFrame_t_09 typedef struct w64_CameraVideoStreamFrame_t_0912 w64_CameraVideoStreamFrame_t_0912; typedef struct w32_CameraVideoStreamFrame_t_0912 u32_CameraVideoStreamFrame_t_0912; typedef struct w32_CameraVideoStreamFrame_t_0912 w32_CameraVideoStreamFrame_t_0912; +typedef struct u64_CameraVideoStreamFrame_t_0911 u64_CameraVideoStreamFrame_t_0911; +typedef struct w64_CameraVideoStreamFrame_t_0911 w64_CameraVideoStreamFrame_t_0911; +typedef struct w32_CameraVideoStreamFrame_t_0911 u32_CameraVideoStreamFrame_t_0911; +typedef struct w32_CameraVideoStreamFrame_t_0911 w32_CameraVideoStreamFrame_t_0911; typedef struct w64_Compositor_FrameTiming_251 u64_Compositor_FrameTiming_251; typedef struct w64_Compositor_FrameTiming_251 w64_Compositor_FrameTiming_251; typedef struct w32_Compositor_FrameTiming_251 u32_Compositor_FrameTiming_251; @@ -1647,10 +1694,10 @@ typedef struct u64_Compositor_FrameTiming_0913 u64_Compositor_FrameTiming_0913; typedef struct w64_Compositor_FrameTiming_0913 w64_Compositor_FrameTiming_0913; typedef struct u32_Compositor_FrameTiming_0913 u32_Compositor_FrameTiming_0913; typedef struct w32_Compositor_FrameTiming_0913 w32_Compositor_FrameTiming_0913; -typedef struct u64_Compositor_FrameTiming_0912 u64_Compositor_FrameTiming_0912; -typedef struct w64_Compositor_FrameTiming_0912 w64_Compositor_FrameTiming_0912; -typedef struct u32_Compositor_FrameTiming_0912 u32_Compositor_FrameTiming_0912; -typedef struct w32_Compositor_FrameTiming_0912 w32_Compositor_FrameTiming_0912; +typedef struct u64_Compositor_FrameTiming_0911 u64_Compositor_FrameTiming_0911; +typedef struct w64_Compositor_FrameTiming_0911 w64_Compositor_FrameTiming_0911; +typedef struct u32_Compositor_FrameTiming_0911 u32_Compositor_FrameTiming_0911; +typedef struct w32_Compositor_FrameTiming_0911 w32_Compositor_FrameTiming_0911; typedef struct u64_Compositor_FrameTiming_093 u64_Compositor_FrameTiming_093; typedef struct w64_Compositor_FrameTiming_093 w64_Compositor_FrameTiming_093; typedef struct u32_Compositor_FrameTiming_093 u32_Compositor_FrameTiming_093; @@ -1825,6 +1872,10 @@ typedef struct u64_VREvent_t_0912 u64_VREvent_t_0912; typedef struct w64_VREvent_t_0912 w64_VREvent_t_0912; typedef struct u32_VREvent_t_0912 u32_VREvent_t_0912; typedef struct w32_VREvent_t_0912 w32_VREvent_t_0912; +typedef struct u64_VREvent_t_0911 u64_VREvent_t_0911; +typedef struct w64_VREvent_t_0911 w64_VREvent_t_0911; +typedef struct u32_VREvent_t_0911 u32_VREvent_t_0911; +typedef struct w32_VREvent_t_0911 w32_VREvent_t_0911; typedef struct u64_VREvent_t_0910 u64_VREvent_t_0910; typedef struct w64_VREvent_t_0910 w64_VREvent_t_0910; typedef struct u32_VREvent_t_0910 u32_VREvent_t_0910; @@ -3075,6 +3126,85 @@ typedef w64_CameraVideoStreamFrame_t_0912 w_CameraVideoStreamFrame_t_0912; typedef u64_CameraVideoStreamFrame_t_0912 u_CameraVideoStreamFrame_t_0912; #endif +#pragma pack( push, 8 ) +struct w64_CameraVideoStreamFrame_t_0911 +{ + uint32_t m_nStreamFormat; + uint32_t m_nWidth; + uint32_t m_nHeight; + uint32_t m_nFrameSequence; + uint32_t m_nTimeStamp; + uint32_t m_nBufferIndex; + uint32_t m_nBufferCount; + uint32_t m_nImageDataSize; + double m_flFrameTime; + int8_t m_bPoseValid; + uint8_t __pad_41[3]; + W64_ARRAY(float, 16, m_HMDPoseMatrix); + uint8_t __pad_108[4]; + W64_PTR(void *m_pImageData, m_pImageData, void *); +#ifdef __cplusplus + operator u64_CameraVideoStreamFrame_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#pragma pack( push, 4 ) +struct u64_CameraVideoStreamFrame_t_0911 +{ + uint32_t m_nStreamFormat; + uint32_t m_nWidth; + uint32_t m_nHeight; + uint32_t m_nFrameSequence; + uint32_t m_nTimeStamp; + uint32_t m_nBufferIndex; + uint32_t m_nBufferCount; + uint32_t m_nImageDataSize; + double m_flFrameTime; + int8_t m_bPoseValid; + uint8_t __pad_41[3]; + U64_ARRAY(float, 16, m_HMDPoseMatrix); + U64_PTR(void *m_pImageData, m_pImageData, void *); +#ifdef __cplusplus + operator w64_CameraVideoStreamFrame_t_0911() const; +#endif /* __cplusplus */ +#ifdef __cplusplus + operator w32_CameraVideoStreamFrame_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#pragma pack( push, 8 ) +struct w32_CameraVideoStreamFrame_t_0911 +{ + uint32_t m_nStreamFormat; + uint32_t m_nWidth; + uint32_t m_nHeight; + uint32_t m_nFrameSequence; + uint32_t m_nTimeStamp; + uint32_t m_nBufferIndex; + uint32_t m_nBufferCount; + uint32_t m_nImageDataSize; + double m_flFrameTime; + int8_t m_bPoseValid; + uint8_t __pad_41[3]; + W32_ARRAY(float, 16, m_HMDPoseMatrix); + W32_PTR(void *m_pImageData, m_pImageData, void *); +#ifdef __cplusplus + operator u64_CameraVideoStreamFrame_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#ifdef __i386__ +typedef w32_CameraVideoStreamFrame_t_0911 w_CameraVideoStreamFrame_t_0911; +typedef u32_CameraVideoStreamFrame_t_0911 u_CameraVideoStreamFrame_t_0911; +#endif +#if defined(__x86_64__) || defined(__aarch64__) +typedef w64_CameraVideoStreamFrame_t_0911 w_CameraVideoStreamFrame_t_0911; +typedef u64_CameraVideoStreamFrame_t_0911 u_CameraVideoStreamFrame_t_0911; +#endif + #pragma pack( push, 8 ) struct w64_Compositor_FrameTiming_251 { @@ -3852,7 +3982,7 @@ typedef u64_Compositor_FrameTiming_0913 u_Compositor_FrameTiming_0913; #endif #pragma pack( push, 8 ) -struct w64_Compositor_FrameTiming_0912 +struct w64_Compositor_FrameTiming_0911 { uint32_t size; uint8_t __pad_4[4]; @@ -3873,13 +4003,13 @@ struct w64_Compositor_FrameTiming_0912 float m_flHandoffEndMs; uint8_t __pad_148[4]; #ifdef __cplusplus - operator u64_Compositor_FrameTiming_0912() const; + operator u64_Compositor_FrameTiming_0911() const; #endif /* __cplusplus */ }; #pragma pack( pop ) #pragma pack( push, 4 ) -struct u64_Compositor_FrameTiming_0912 +struct u64_Compositor_FrameTiming_0911 { uint32_t size; double frameStart; @@ -3898,16 +4028,16 @@ struct u64_Compositor_FrameTiming_0912 float m_flHandoffStartMs; float m_flHandoffEndMs; #ifdef __cplusplus - operator w64_Compositor_FrameTiming_0912() const; + operator w64_Compositor_FrameTiming_0911() const; #endif /* __cplusplus */ #ifdef __cplusplus - operator w32_Compositor_FrameTiming_0912() const; + operator w32_Compositor_FrameTiming_0911() const; #endif /* __cplusplus */ }; #pragma pack( pop ) #pragma pack( push, 8 ) -struct w32_Compositor_FrameTiming_0912 +struct w32_Compositor_FrameTiming_0911 { uint32_t size; uint8_t __pad_4[4]; @@ -3928,16 +4058,16 @@ struct w32_Compositor_FrameTiming_0912 float m_flHandoffEndMs; uint8_t __pad_148[4]; #ifdef __cplusplus - operator u32_Compositor_FrameTiming_0912() const; + operator u32_Compositor_FrameTiming_0911() const; #endif /* __cplusplus */ #ifdef __cplusplus - operator u64_Compositor_FrameTiming_0912() const; + operator u64_Compositor_FrameTiming_0911() const; #endif /* __cplusplus */ }; #pragma pack( pop ) #pragma pack( push, 4 ) -struct u32_Compositor_FrameTiming_0912 +struct u32_Compositor_FrameTiming_0911 { uint32_t size; double frameStart; @@ -3956,18 +4086,18 @@ struct u32_Compositor_FrameTiming_0912 float m_flHandoffStartMs; float m_flHandoffEndMs; #ifdef __cplusplus - operator w32_Compositor_FrameTiming_0912() const; + operator w32_Compositor_FrameTiming_0911() const; #endif /* __cplusplus */ }; #pragma pack( pop ) #ifdef __i386__ -typedef w32_Compositor_FrameTiming_0912 w_Compositor_FrameTiming_0912; -typedef u32_Compositor_FrameTiming_0912 u_Compositor_FrameTiming_0912; +typedef w32_Compositor_FrameTiming_0911 w_Compositor_FrameTiming_0911; +typedef u32_Compositor_FrameTiming_0911 u_Compositor_FrameTiming_0911; #endif #if defined(__x86_64__) || defined(__aarch64__) -typedef w64_Compositor_FrameTiming_0912 w_Compositor_FrameTiming_0912; -typedef u64_Compositor_FrameTiming_0912 u_Compositor_FrameTiming_0912; +typedef w64_Compositor_FrameTiming_0911 w_Compositor_FrameTiming_0911; +typedef u64_Compositor_FrameTiming_0911 u_Compositor_FrameTiming_0911; #endif #pragma pack( push, 8 ) @@ -6504,6 +6634,75 @@ typedef w64_VREvent_t_0912 w_VREvent_t_0912; typedef u64_VREvent_t_0912 u_VREvent_t_0912; #endif +#pragma pack( push, 8 ) +struct w64_VREvent_t_0911 +{ + uint32_t eventType; + uint32_t trackedDeviceIndex; + VREvent_Data_t_0911 data; + float eventAgeSeconds; + uint8_t __pad_28[4]; +#ifdef __cplusplus + operator u64_VREvent_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#pragma pack( push, 4 ) +struct u64_VREvent_t_0911 +{ + uint32_t eventType; + uint32_t trackedDeviceIndex; + VREvent_Data_t_0911 data; + float eventAgeSeconds; +#ifdef __cplusplus + operator w64_VREvent_t_0911() const; +#endif /* __cplusplus */ +#ifdef __cplusplus + operator w32_VREvent_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#pragma pack( push, 8 ) +struct w32_VREvent_t_0911 +{ + uint32_t eventType; + uint32_t trackedDeviceIndex; + VREvent_Data_t_0911 data; + float eventAgeSeconds; + uint8_t __pad_28[4]; +#ifdef __cplusplus + operator u32_VREvent_t_0911() const; +#endif /* __cplusplus */ +#ifdef __cplusplus + operator u64_VREvent_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#pragma pack( push, 4 ) +struct u32_VREvent_t_0911 +{ + uint32_t eventType; + uint32_t trackedDeviceIndex; + VREvent_Data_t_0911 data; + float eventAgeSeconds; +#ifdef __cplusplus + operator w32_VREvent_t_0911() const; +#endif /* __cplusplus */ +}; +#pragma pack( pop ) + +#ifdef __i386__ +typedef w32_VREvent_t_0911 w_VREvent_t_0911; +typedef u32_VREvent_t_0911 u_VREvent_t_0911; +#endif +#if defined(__x86_64__) || defined(__aarch64__) +typedef w64_VREvent_t_0911 w_VREvent_t_0911; +typedef u64_VREvent_t_0911 u_VREvent_t_0911; +#endif + #pragma pack( push, 8 ) struct w64_VREvent_t_0910 { diff --git a/vrclient_x64/vrcompositor_manual.c b/vrclient_x64/vrcompositor_manual.c index bf444a05261..8feaa9864e9 100644 --- a/vrclient_x64/vrcompositor_manual.c +++ b/vrclient_x64/vrcompositor_manual.c @@ -25,6 +25,7 @@ struct submit_state IDXGIVkInteropSurface *dxvk_surface; IDXGIVkInteropDevice *dxvk_device; ID3D12DXVKInteropDevice *d3d12_device; + ID3D12DXVKInteropDevice2 *d3d12_device2; ID3D12CommandQueue *d3d12_queue; }; @@ -127,9 +128,11 @@ void free_compositor_data_d3d12_device(void) compositor_data.p_vkFreeCommandBuffers(compositor_data.vk_device, compositor_data.vk_command_pool, 3, compositor_data.vk_command_buffers); compositor_data.p_vkDestroyCommandPool(compositor_data.vk_device, compositor_data.vk_command_pool, NULL); + assert( !compositor_data.d3d12_device2 || (void *)compositor_data.d3d12_device2 == (void *)compositor_data.d3d12_device ); IUnknown_Release(compositor_data.d3d12_device); IUnknown_Release(compositor_data.d3d12_queue); compositor_data.d3d12_device = NULL; + compositor_data.d3d12_device2 = NULL; compositor_data.d3d12_queue = NULL; compositor_data.vk_device = VK_NULL_HANDLE; compositor_data.vk_queue = VK_NULL_HANDLE; @@ -138,7 +141,8 @@ void free_compositor_data_d3d12_device(void) memset(compositor_data.vk_command_buffers, 0, sizeof(compositor_data.vk_command_buffers)); } -static void compositor_data_set_d3d12_device(ID3D12DXVKInteropDevice *d3d12_device, ID3D12CommandQueue *d3d12_queue, const w_VRVulkanTextureData_t *vkdata) +static void compositor_data_set_d3d12_device( ID3D12DXVKInteropDevice *d3d12_device, ID3D12DXVKInteropDevice2 *d3d12_device2, + ID3D12CommandQueue *d3d12_queue, const w_VRVulkanTextureData_t *vkdata) { const WCHAR winevulkan_dll[] = L"winevulkan.dll"; HMODULE winevulkan = NULL; @@ -157,6 +161,7 @@ static void compositor_data_set_d3d12_device(ID3D12DXVKInteropDevice *d3d12_devi if (compositor_data.d3d12_device == d3d12_device) { + assert( compositor_data.d3d12_device2 == d3d12_device2 ); if (compositor_data.d3d12_queue != d3d12_queue) { IUnknown_Release(compositor_data.d3d12_queue); @@ -169,6 +174,7 @@ static void compositor_data_set_d3d12_device(ID3D12DXVKInteropDevice *d3d12_devi free_compositor_data_d3d12_device(); compositor_data.d3d12_device = d3d12_device; + compositor_data.d3d12_device2 = d3d12_device2; compositor_data.d3d12_queue = d3d12_queue; IUnknown_AddRef(compositor_data.d3d12_device); IUnknown_AddRef(compositor_data.d3d12_queue); @@ -263,7 +269,12 @@ static const w_Texture_t *load_compositor_texture_d3d12( uint32_t eye, const w_T return texture; } - hr = queue_iface->lpVtbl->GetDevice( queue_iface, &IID_ID3D12DXVKInteropDevice, (void **)&state->d3d12_device ); + state->d3d12_device2 = NULL; + hr = queue_iface->lpVtbl->GetDevice( queue_iface, &IID_ID3D12DXVKInteropDevice2, (void **)&state->d3d12_device2 ); + if (SUCCEEDED(hr)) + state->d3d12_device = (ID3D12DXVKInteropDevice *)state->d3d12_device2; + else + hr = queue_iface->lpVtbl->GetDevice( queue_iface, &IID_ID3D12DXVKInteropDevice, (void **)&state->d3d12_device ); if (FAILED(hr)) { WARN( "Failed to get vkd3d-proton device.\n" ); @@ -298,7 +309,7 @@ static const w_Texture_t *load_compositor_texture_d3d12( uint32_t eye, const w_T if (*flags & ~supported_flags) FIXME( "Unhandled flags %#x.\n", *flags ); state->d3d12_queue = queue_iface; - compositor_data_set_d3d12_device(state->d3d12_device, state->d3d12_queue, &vkdata); + compositor_data_set_d3d12_device(state->d3d12_device, state->d3d12_device2, state->d3d12_queue, &vkdata); IUnknown_Release(state->d3d12_device); if (image_info.arrayLayers > 1 || array_index != ~0u) @@ -350,8 +361,19 @@ static void free_compositor_texture( uint32_t type, struct submit_state *state ) struct set_skybox_override_state { + int texture_type; w_Texture_t textures[6]; w_VRVulkanTextureData_t vkdata[6]; + ID3D12DXVKInteropDevice *d3d12_device; /* reference counted. */ + ID3D12CommandQueue *d3d12_queue; /* app provided for call, not reference counted. */ + struct + { + uint64_t image; + VkImageSubresourceRange subresources; + VkImageLayout layout; + } + images[6]; + unsigned int image_count; }; static const w_Texture_t *set_skybox_override_d3d11_init( const w_Texture_t *textures, uint32_t count, struct set_skybox_override_state *state ) @@ -416,11 +438,97 @@ static const w_Texture_t *set_skybox_override_d3d11_init( const w_Texture_t *tex compositor_data.dxvk_device->lpVtbl->FlushRenderingCommands( compositor_data.dxvk_device ); compositor_data.dxvk_device->lpVtbl->LockSubmissionQueue( compositor_data.dxvk_device ); + state->texture_type = TextureType_DirectX; + return state->textures; +} + +static const w_Texture_t *set_skybox_override_d3d12_init( const w_Texture_t *textures, uint32_t count, struct set_skybox_override_state *state ) +{ + ID3D12DXVKInteropDevice2 *d3d12_device2; + ID3D12DXVKInteropDevice *d3d12_device; + w_D3D12TextureData_t *texture_data; + ID3D12CommandQueue *d3d12_queue; + ID3D12Resource *d3d12_resource; + VkImageSubresourceRange *range; + VkImageCreateInfo image_info; + VkImageLayout image_layout; + unsigned int i, j; + HRESULT hr; + + for (i = 0; i < count; ++i) + { + const w_Texture_t *texture = &textures[i]; + + if (!texture->handle) + { + ERR( "No D3D11 texture %p.\n", texture ); + return textures; + } + if (textures[i].eType != TextureType_DirectX12) + { + FIXME( "Mixing texture types is not supported.\n" ); + return textures; + } + texture_data = texture->handle; + if (!(d3d12_resource = texture_data->m_pResource) || !(d3d12_queue = texture_data->m_pCommandQueue)) + { + ERR( "Invalid D3D12 texture %p.\n", texture ); + return texture; + } + d3d12_device2 = NULL; + hr = d3d12_queue->lpVtbl->GetDevice( d3d12_queue, &IID_ID3D12DXVKInteropDevice2, (void **)&d3d12_device2 ); + if (SUCCEEDED(hr)) + d3d12_device = (ID3D12DXVKInteropDevice *)d3d12_device2; + else + hr = d3d12_queue->lpVtbl->GetDevice( d3d12_queue, &IID_ID3D12DXVKInteropDevice, (void **)&d3d12_device ); + if (FAILED(hr)) + { + ERR( "Failed to get vkd3d-proton device.\n" ); + return texture; + } + if ((state->d3d12_queue && state->d3d12_queue != d3d12_queue) + || (state->d3d12_device && state->d3d12_device != d3d12_device)) + { + FIXME( "Varying queues or devices are not supported.\n" ); + return textures; + } + state->textures[i] = vrclient_translate_texture_d3d12( texture, &state->vkdata[i], d3d12_device, d3d12_resource, + d3d12_queue, &image_layout, &image_info ); + state->d3d12_device = d3d12_device; + state->d3d12_queue = d3d12_queue; + compositor_data_set_d3d12_device( d3d12_device, d3d12_device2, d3d12_queue, &state->vkdata[i] ); + + for (j = 0; j < state->image_count; ++j) + { + if (state->images[j].image == state->vkdata[i].m_nImage) + { + WARN( "Duplicate image index %u.\n", i ); + break; + } + } + if (j < state->image_count) continue; + state->images[j].image = state->vkdata[i].m_nImage; + range = &state->images[j].subresources; + range->aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + range->baseMipLevel = 0; + range->levelCount = image_info.mipLevels; + range->baseArrayLayer = 0; + range->layerCount = image_info.arrayLayers; + state->images[j].layout = image_layout; + ++state->image_count; + } + state->d3d12_device->lpVtbl->LockCommandQueue( state->d3d12_device, state->d3d12_queue ); + for (i = 0; i < state->image_count; ++i) + transition_image_layout( (VkImage)state->images[i].image, &state->images[i].subresources, + state->images[i].layout, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL ); + + state->texture_type = TextureType_DirectX12; return state->textures; } static const w_Texture_t *set_skybox_override_init( const w_Texture_t *textures, uint32_t count, struct set_skybox_override_state *state ) { + state->texture_type = -1; if (!count || count > 6) { WARN( "Invalid texture count %u.\n", count ); @@ -429,51 +537,244 @@ static const w_Texture_t *set_skybox_override_init( const w_Texture_t *textures, if (textures[0].eType == TextureType_DirectX) return set_skybox_override_d3d11_init( textures, count, state ); + if (textures[0].eType == TextureType_DirectX12) + return set_skybox_override_d3d12_init( textures, count, state ); if (textures[0].eType != TextureType_Vulkan) FIXME( "Conversion for type %u is not supported.\n", textures[0].eType ); return textures; } -static void set_skybox_override_done( const w_Texture_t *textures, uint32_t count ) +static void set_skybox_override_done( struct set_skybox_override_state *state ) { - if (!count || count > 6) return; - while (count--) if (!textures[count].handle || textures[count].eType != TextureType_DirectX) return; - compositor_data.dxvk_device->lpVtbl->ReleaseSubmissionQueue( compositor_data.dxvk_device ); + unsigned int i; + + if (state->texture_type == TextureType_DirectX) + { + compositor_data.dxvk_device->lpVtbl->ReleaseSubmissionQueue( compositor_data.dxvk_device ); + } + else if (state->texture_type == TextureType_DirectX12) + { + for (i = 0; i < state->image_count; ++i) + { + transition_image_layout( (VkImage)state->images[i].image, &state->images[i].subresources, + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, state->images[i].layout); + } + state->d3d12_device->lpVtbl->UnlockCommandQueue( state->d3d12_device, state->d3d12_queue ); + state->d3d12_device->lpVtbl->Release( state->d3d12_device ); + } } -static void post_present_handoff_init( struct u_iface u_iface, unsigned int version ) +static void lock_queue(void) { - /* I sure hope no application will submit both D3D11 and D3D12 textures... */ if (compositor_data.dxvk_device) compositor_data.dxvk_device->lpVtbl->LockSubmissionQueue( compositor_data.dxvk_device ); - if (compositor_data.d3d12_device) + + if (compositor_data.d3d12_device2) + compositor_data.d3d12_device2->lpVtbl->LockVulkanQueue( compositor_data.d3d12_device2, compositor_data.d3d12_queue ); + else if (compositor_data.d3d12_device) compositor_data.d3d12_device->lpVtbl->LockCommandQueue( compositor_data.d3d12_device, compositor_data.d3d12_queue ); } -static void post_present_handoff_done(void) +static void unlock_queue(void) { - compositor_data.handoff_called = TRUE; if (compositor_data.dxvk_device) compositor_data.dxvk_device->lpVtbl->ReleaseSubmissionQueue( compositor_data.dxvk_device ); - if (compositor_data.d3d12_device) + + if (compositor_data.d3d12_device2) + compositor_data.d3d12_device2->lpVtbl->UnlockVulkanQueue( compositor_data.d3d12_device2, compositor_data.d3d12_queue ); + else if (compositor_data.d3d12_device) compositor_data.d3d12_device->lpVtbl->UnlockCommandQueue( compositor_data.d3d12_device, compositor_data.d3d12_queue ); } +static void post_present_handoff_init( struct u_iface u_iface, unsigned int version ) +{ + lock_queue(); +} + +static void post_present_handoff_done(void) +{ + compositor_data.handoff_called = TRUE; + unlock_queue(); +} + +static BOOL need_lock_for_wait_get_poses(void) +{ + if (compositor_data.dxvk_device && compositor_data.d3d11_explicit_handoff) return TRUE; + if (compositor_data.explicit_timing_mode == 2 && compositor_data.handoff_called) return FALSE; + return TRUE; +} + +static BOOL wait_get_poses_locked_queue; + static void wait_get_poses_init( struct u_iface u_iface ) { - if (compositor_data.dxvk_device) - compositor_data.dxvk_device->lpVtbl->LockSubmissionQueue( compositor_data.dxvk_device ); - if (compositor_data.d3d12_device) - compositor_data.d3d12_device->lpVtbl->LockCommandQueue( compositor_data.d3d12_device, compositor_data.d3d12_queue ); + if ((wait_get_poses_locked_queue = need_lock_for_wait_get_poses())) lock_queue(); } static void wait_get_poses_done( struct u_iface u_iface ) { - if (compositor_data.dxvk_device) - compositor_data.dxvk_device->lpVtbl->ReleaseSubmissionQueue( compositor_data.dxvk_device ); - if (compositor_data.d3d12_device) - compositor_data.d3d12_device->lpVtbl->UnlockCommandQueue( compositor_data.d3d12_device, compositor_data.d3d12_queue ); + if (wait_get_poses_locked_queue) unlock_queue(); +} + +void __thiscall winIVRCompositor_IVRCompositor_005_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pPoseArray, uint32_t unPoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_005_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pPoseArray = pPoseArray, + .unPoseArrayCount = unPoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_005_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_006_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_006_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_006_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_007_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_007_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_007_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_008_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_008_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_008_Submit( struct w_iface *_this, + uint32_t eEye, int32_t eTextureType, void *pTexture, + const VRTextureBounds_t *pBounds, uint32_t nSubmitFlags ) +{ + struct submit_state state = {0}; + struct IVRCompositor_IVRCompositor_008_Submit_params params = + { + .u_iface = _this->u_iface, + .eEye = eEye, + .pBounds = pBounds, + .nSubmitFlags = nSubmitFlags, + }; + w_Texture_t texture = + { + .handle = pTexture, + .eType = eTextureType, + }; + const w_Texture_t *conv_texture; + TRACE( "_this %p, eEye %u, eTextureType %d, pTexture %p, pBounds %p, nSubmitFlags %#x\n", _this, eEye, eTextureType, pTexture, pBounds, nSubmitFlags ); + + compositor_data.handoff_called = FALSE; + conv_texture = load_compositor_texture( eEye, &texture, ¶ms.nSubmitFlags, &state, ~0u ); + params.eTextureType = conv_texture->eType; + params.pTexture = conv_texture->handle; + VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_Submit, ¶ms ); + free_compositor_texture( texture.eType, &state ); + return params._ret; +} + +void __thiscall winIVRCompositor_IVRCompositor_008_PostPresentHandoff( struct w_iface *_this ) +{ + struct IVRCompositor_IVRCompositor_008_PostPresentHandoff_params params = {.u_iface = _this->u_iface}; + TRACE( "%p\n", _this ); + post_present_handoff_init( _this->u_iface, 8 ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_PostPresentHandoff, ¶ms ); + post_present_handoff_done(); +} + +void __thiscall winIVRCompositor_IVRCompositor_008_SetSkyboxOverride( struct w_iface *_this, int32_t eTextureType, + void *pFront, void *pBack, void *pLeft, void *pRight, void *pTop, void *pBottom ) +{ + struct set_skybox_override_state state = {0}; + w_Texture_t textures[6] = + { + { .handle = pFront, .eType = eTextureType, }, + { .handle = pBack, .eType = eTextureType, }, + { .handle = pLeft, .eType = eTextureType, }, + { .handle = pRight, .eType = eTextureType, }, + { .handle = pTop, .eType = eTextureType, }, + { .handle = pBottom, .eType = eTextureType, }, + }; + const w_Texture_t *conv_textures = set_skybox_override_init( textures, 6, &state ); + struct IVRCompositor_IVRCompositor_008_SetSkyboxOverride_params params = + { + .u_iface = _this->u_iface, + .eTextureType = conv_textures[0].eType, + .pFront = conv_textures[0].handle, + .pBack = conv_textures[1].handle, + .pLeft = conv_textures[2].handle, + .pRight = conv_textures[3].handle, + .pTop = conv_textures[4].handle, + .pBottom = conv_textures[5].handle, + }; + + TRACE( "%p\n", _this ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_SetSkyboxOverride, ¶ms ); + set_skybox_override_done( &state ); +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_009_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_009_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_009_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); + return params._ret; } uint32_t __thiscall winIVRCompositor_IVRCompositor_009_Submit( struct w_iface *_this, @@ -519,7 +820,26 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_009_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_009_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_010_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_010_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_010_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); return params._ret; } @@ -566,7 +886,26 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_010_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_010_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_011_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_011_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_011_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); return params._ret; } @@ -613,7 +952,26 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_011_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_011_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_012_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_012_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_012_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); return params._ret; } @@ -660,7 +1018,26 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_012_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_012_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_013_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_013_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_013_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); return params._ret; } @@ -707,7 +1084,26 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_013_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_013_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_014_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_014_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_014_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); return params._ret; } @@ -754,7 +1150,26 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_014_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_014_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); + return params._ret; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_015_WaitGetPoses( struct w_iface *_this, + TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, + TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) +{ + struct IVRCompositor_IVRCompositor_015_WaitGetPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE( "%p\n", _this ); + wait_get_poses_init( _this->u_iface ); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_015_WaitGetPoses, ¶ms ); + wait_get_poses_done( _this->u_iface ); return params._ret; } @@ -801,7 +1216,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_015_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_015_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -867,7 +1282,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_016_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_016_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -933,7 +1348,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_017_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_017_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -999,7 +1414,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_018_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_018_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1065,7 +1480,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_019_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_019_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1131,7 +1546,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_020_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_020_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1211,12 +1626,38 @@ void __thiscall winIVRCompositor_IVRCompositor_021_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = TRUE; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode(struct w_iface *_this, int8_t bExplicitTimingMode) +{ + struct IVRCompositor_IVRCompositor_021_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .bExplicitTimingMode = bExplicitTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = bExplicitTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_021_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_021_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_021_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1229,7 +1670,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_021_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1309,12 +1750,38 @@ void __thiscall winIVRCompositor_IVRCompositor_022_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) +{ + struct IVRCompositor_IVRCompositor_022_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .eTimingMode = eTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = eTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_022_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_022_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1327,7 +1794,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_022_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1407,12 +1874,38 @@ void __thiscall winIVRCompositor_IVRCompositor_024_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) +{ + struct IVRCompositor_IVRCompositor_024_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .eTimingMode = eTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = eTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_024_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_024_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1425,7 +1918,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_024_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1505,12 +1998,38 @@ void __thiscall winIVRCompositor_IVRCompositor_026_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) +{ + struct IVRCompositor_IVRCompositor_026_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .eTimingMode = eTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = eTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_026_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1523,7 +2042,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1603,12 +2122,38 @@ void __thiscall winIVRCompositor_IVRCompositor_027_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) +{ + struct IVRCompositor_IVRCompositor_027_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .eTimingMode = eTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = eTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_027_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_027_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1621,7 +2166,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_027_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1761,12 +2306,38 @@ void __thiscall winIVRCompositor_IVRCompositor_028_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_028_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) +{ + struct IVRCompositor_IVRCompositor_028_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .eTimingMode = eTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = eTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_028_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_028_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_028_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1779,7 +2350,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_028_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } @@ -1920,12 +2491,38 @@ void __thiscall winIVRCompositor_IVRCompositor_029_PostPresentHandoff( struct w_ * in lockups and crashes. */ VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_SetExplicitTimingMode, ¶ms ); compositor_data.d3d11_explicit_handoff = TRUE; + compositor_data.explicit_timing_mode = VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff; } VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_PostPresentHandoff, ¶ms ); post_present_handoff_done(); } +void __thiscall winIVRCompositor_IVRCompositor_029_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) +{ + struct IVRCompositor_IVRCompositor_029_SetExplicitTimingMode_params params = + { + .u_iface = _this->u_iface, + .eTimingMode = eTimingMode, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_SetExplicitTimingMode, ¶ms ); + compositor_data.explicit_timing_mode = eTimingMode; +} + +uint32_t __thiscall winIVRCompositor_IVRCompositor_029_SubmitExplicitTimingData(struct w_iface *_this) +{ + struct IVRCompositor_IVRCompositor_029_SubmitExplicitTimingData_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + lock_queue(); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_SubmitExplicitTimingData, ¶ms ); + unlock_queue(); + return params._ret; +} + uint32_t __thiscall winIVRCompositor_IVRCompositor_029_SetSkyboxOverride( struct w_iface *_this, const w_Texture_t *pTextures, uint32_t unTextureCount ) { @@ -1938,6 +2535,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_029_SetSkyboxOverride( struct }; TRACE( "%p\n", _this ); VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_SetSkyboxOverride, ¶ms ); - set_skybox_override_done( pTextures, unTextureCount ); + set_skybox_override_done( &state ); return params._ret; } diff --git a/vrclient_x64/vroverlay_manual.c b/vrclient_x64/vroverlay_manual.c index b7d6b2b01d0..ee444729223 100644 --- a/vrclient_x64/vroverlay_manual.c +++ b/vrclient_x64/vroverlay_manual.c @@ -70,7 +70,6 @@ static void free_unix_overlay_texture_dxvk( struct set_overlay_texture_state *st uint32_t __thiscall winIVROverlay_IVROverlay_001_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, void *pTexture ) { - /* probably no one actually uses this old interface... */ FIXME( "unimplemented!\n" ); return VROverlayError_InvalidHandle; } @@ -78,8 +77,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_001_SetOverlayTexture( struct w_ifa uint32_t __thiscall winIVROverlay_IVROverlay_002_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eTextureType, void *pTexture ) { - /* hopefully no one actually uses this old interface... Vulkan support - * wasn't added until later; how can we pass in a DirectX texture? */ FIXME( "unimplemented!\n" ); return VROverlayError_InvalidHandle; } @@ -87,8 +84,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_002_SetOverlayTexture( struct w_ifa uint32_t __thiscall winIVROverlay_IVROverlay_003_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eTextureType, void *pTexture ) { - /* hopefully no one actually uses this old interface... Vulkan support - * wasn't added until later; how can we pass in a DirectX texture? */ FIXME( "unimplemented!\n" ); return VROverlayError_InvalidHandle; } @@ -96,8 +91,6 @@ uint32_t __thiscall winIVROverlay_IVROverlay_003_SetOverlayTexture( struct w_ifa uint32_t __thiscall winIVROverlay_IVROverlay_004_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eTextureType, void *pTexture ) { - /* hopefully no one actually uses this old interface... Vulkan support - * wasn't added until later; how can we pass in a DirectX texture? */ FIXME( "unimplemented!\n" ); return VROverlayError_InvalidHandle; } @@ -105,12 +98,36 @@ uint32_t __thiscall winIVROverlay_IVROverlay_004_SetOverlayTexture( struct w_ifa uint32_t __thiscall winIVROverlay_IVROverlay_005_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eTextureType, void *pTexture ) { - /* hopefully no one actually uses this old interface... Vulkan support - * wasn't added until later; how can we pass in a DirectX texture? */ FIXME( "unimplemented!\n" ); return VROverlayError_InvalidHandle; } +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, + uint32_t eTextureType, void *pTexture ) +{ + w_Texture_t texture = + { + .handle = pTexture, + .eType = eTextureType, + }; + struct set_overlay_texture_state state = { .texture = texture }; + struct IVROverlay_IVROverlay_006_SetOverlayTexture_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + + TRACE( "%p %#I64x %d %p.\n", _this, ulOverlayHandle, eTextureType, pTexture ); + + if (eTextureType == TextureType_DirectX) load_overlay_texture_dxvk( &texture, &state ); + params.eTextureType = state.texture.eType; + params.pTexture = state.texture.handle; + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayTexture, ¶ms ); + if (eTextureType == TextureType_DirectX) free_unix_overlay_texture_dxvk( &state ); + + return params._ret; +} + uint32_t __thiscall winIVROverlay_IVROverlay_007_SetOverlayTexture( struct w_iface *_this, uint64_t ulOverlayHandle, const w_Texture_t *pTexture ) { diff --git a/vrclient_x64/vrsystem_manual.c b/vrclient_x64/vrsystem_manual.c index 84ffb145f77..d7ea576f3e9 100644 --- a/vrclient_x64/vrsystem_manual.c +++ b/vrclient_x64/vrsystem_manual.c @@ -148,6 +148,14 @@ void __thiscall winIVRSystem_IVRSystem_006_GetDXGIOutputInfo( struct w_iface *_t *pnAdapterOutputIndex = 0; } +void __thiscall winIVRSystem_IVRSystem_007_GetDXGIOutputInfo( struct w_iface *_this, int32_t *pnAdapterIndex, + int32_t *pnAdapterOutputIndex ) +{ + FIXME( "%p\n", _this ); + *pnAdapterIndex = 0; + *pnAdapterOutputIndex = 0; +} + void __thiscall winIVRSystem_IVRSystem_009_GetDXGIOutputInfo( struct w_iface *_this, int32_t *pnAdapterIndex ) { FIXME( "%p\n", _this ); diff --git a/vrclient_x64/winIVRCompositor.c b/vrclient_x64/winIVRCompositor.c index 5f6753735be..af787758b58 100644 --- a/vrclient_x64/winIVRCompositor.c +++ b/vrclient_x64/winIVRCompositor.c @@ -102,17 +102,7 @@ void __thiscall winIVRCompositor_IVRCompositor_005_SetGraphicsDevice(struct w_if VRCLIENT_CALL( IVRCompositor_IVRCompositor_005_SetGraphicsDevice, ¶ms ); } -void __thiscall winIVRCompositor_IVRCompositor_005_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pPoseArray, uint32_t unPoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_005_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pPoseArray = pPoseArray, - .unPoseArrayCount = unPoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_005_WaitGetPoses, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_005_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pPoseArray, uint32_t unPoseArrayCount); void __thiscall winIVRCompositor_IVRCompositor_005_Submit(struct w_iface *_this, uint32_t eEye, void *pTexture, Compositor_TextureBounds *pBounds) { @@ -504,20 +494,7 @@ void __thiscall winIVRCompositor_IVRCompositor_006_SetGraphicsDevice(struct w_if VRCLIENT_CALL( IVRCompositor_IVRCompositor_006_SetGraphicsDevice, ¶ms ); } -uint32_t __thiscall winIVRCompositor_IVRCompositor_006_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_006_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_006_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_006_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_006_Submit(struct w_iface *_this, uint32_t eEye, void *pTexture, VRTextureBounds_t *pBounds) { @@ -833,20 +810,7 @@ float __thiscall winIVRCompositor_IVRCompositor_007_GetGamma(struct w_iface *_th return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_007_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_007_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_007_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_007_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_007_Submit(struct w_iface *_this, uint32_t eEye, uint32_t eTextureType, void *pTexture, const VRTextureBounds_t *pBounds) { @@ -1111,6 +1075,8 @@ DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_HideMirrorWindow, 4) DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorDumpImages, 4) DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, 4) DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer, 4) +DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetLastPoses, 20) +DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_PostPresentHandoff, 4) uint32_t __thiscall winIVRCompositor_IVRCompositor_008_GetLastError(struct w_iface *_this, char *pchBuffer, uint32_t unBufferSize) { @@ -1169,37 +1135,9 @@ float __thiscall winIVRCompositor_IVRCompositor_008_GetGamma(struct w_iface *_th return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_008_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_008_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_008_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); -uint32_t __thiscall winIVRCompositor_IVRCompositor_008_Submit(struct w_iface *_this, uint32_t eEye, uint32_t eTextureType, void *pTexture, const VRTextureBounds_t *pBounds, uint32_t nSubmitFlags) -{ - struct IVRCompositor_IVRCompositor_008_Submit_params params = - { - .u_iface = _this->u_iface, - .eEye = eEye, - .eTextureType = eTextureType, - .pTexture = pTexture, - .pBounds = pBounds, - .nSubmitFlags = nSubmitFlags, - }; - TRACE("%p\n", _this); - if (eTextureType == TextureType_DirectX) FIXME( "Not implemented Direct3D API!\n" ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_Submit, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_008_Submit(struct w_iface *_this, uint32_t eEye, uint32_t eTextureType, void *pTexture, const VRTextureBounds_t *pBounds, uint32_t nSubmitFlags); void __thiscall winIVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame(struct w_iface *_this) { @@ -1211,7 +1149,7 @@ void __thiscall winIVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame(struc VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame, ¶ms ); } -int8_t __thiscall winIVRCompositor_IVRCompositor_008_GetFrameTiming(struct w_iface *_this, w_Compositor_FrameTiming_093 *pTiming, uint32_t unFramesAgo) +int8_t __thiscall winIVRCompositor_IVRCompositor_008_GetFrameTiming(struct w_iface *_this, w_Compositor_FrameTiming_0911 *pTiming, uint32_t unFramesAgo) { struct IVRCompositor_IVRCompositor_008_GetFrameTiming_params params = { @@ -1252,23 +1190,7 @@ void __thiscall winIVRCompositor_IVRCompositor_008_FadeGrid(struct w_iface *_thi VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_FadeGrid, ¶ms ); } -void __thiscall winIVRCompositor_IVRCompositor_008_SetSkyboxOverride(struct w_iface *_this, uint32_t eTextureType, void *pFront, void *pBack, void *pLeft, void *pRight, void *pTop, void *pBottom) -{ - struct IVRCompositor_IVRCompositor_008_SetSkyboxOverride_params params = - { - .u_iface = _this->u_iface, - .eTextureType = eTextureType, - .pFront = pFront, - .pBack = pBack, - .pLeft = pLeft, - .pRight = pRight, - .pTop = pTop, - .pBottom = pBottom, - }; - TRACE("%p\n", _this); - if (eTextureType == TextureType_DirectX) FIXME( "Not implemented Direct3D API!\n" ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_SetSkyboxOverride, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_008_SetSkyboxOverride(struct w_iface *_this, uint32_t eTextureType, void *pFront, void *pBack, void *pLeft, void *pRight, void *pTop, void *pBottom); void __thiscall winIVRCompositor_IVRCompositor_008_ClearSkyboxOverride(struct w_iface *_this) { @@ -1417,6 +1339,23 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer(stru return params._ret; } +uint32_t __thiscall winIVRCompositor_IVRCompositor_008_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) +{ + struct IVRCompositor_IVRCompositor_008_GetLastPoses_params params = + { + .u_iface = _this->u_iface, + .pRenderPoseArray = pRenderPoseArray, + .unRenderPoseArrayCount = unRenderPoseArrayCount, + .pGamePoseArray = pGamePoseArray, + .unGamePoseArrayCount = unGamePoseArrayCount, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_008_GetLastPoses, ¶ms ); + return params._ret; +} + +extern void __thiscall winIVRCompositor_IVRCompositor_008_PostPresentHandoff(struct w_iface *_this); + extern vtable_ptr winIVRCompositor_IVRCompositor_008_vtable; DEFINE_RTTI_DATA0(winIVRCompositor_IVRCompositor_008, 0, ".?AVIVRCompositor@@") @@ -1449,6 +1388,8 @@ __ASM_BLOCK_BEGIN(winIVRCompositor_IVRCompositor_008_vtables) VTABLE_ADD_FUNC(winIVRCompositor_IVRCompositor_008_CompositorDumpImages) VTABLE_ADD_FUNC(winIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining) VTABLE_ADD_FUNC(winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer) + VTABLE_ADD_FUNC(winIVRCompositor_IVRCompositor_008_GetLastPoses) + VTABLE_ADD_FUNC(winIVRCompositor_IVRCompositor_008_PostPresentHandoff) ); __ASM_BLOCK_END @@ -1470,8 +1411,8 @@ void destroy_winIVRCompositor_IVRCompositor_008(struct w_iface *object) struct w_iface *create_winIVRCompositor_IVRCompositor_008_FnTable( struct u_iface u_iface ) { struct w_iface *r = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*r)); - struct thunk *thunks = alloc_thunks(26); - struct thunk **vtable = HeapAlloc(GetProcessHeap(), 0, 26 * sizeof(*vtable)); + struct thunk *thunks = alloc_thunks(28); + struct thunk **vtable = HeapAlloc(GetProcessHeap(), 0, 28 * sizeof(*vtable)); int i; TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks); @@ -1501,7 +1442,9 @@ struct w_iface *create_winIVRCompositor_IVRCompositor_008_FnTable( struct u_ifac init_thunk(&thunks[23], r, winIVRCompositor_IVRCompositor_008_CompositorDumpImages, 0, FALSE, FALSE); init_thunk(&thunks[24], r, winIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, 0, FALSE, FALSE); init_thunk(&thunks[25], r, winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer, 0, FALSE, FALSE); - for (i = 0; i < 26; i++) + init_thunk(&thunks[26], r, winIVRCompositor_IVRCompositor_008_GetLastPoses, 4, FALSE, FALSE); + init_thunk(&thunks[27], r, winIVRCompositor_IVRCompositor_008_PostPresentHandoff, 0, FALSE, FALSE); + for (i = 0; i < 28; i++) vtable[i] = &thunks[i]; r->u_iface = u_iface; r->vtable = (void *)vtable; @@ -1563,20 +1506,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_009_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_009_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_009_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_009_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_009_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_009_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -1928,20 +1858,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_010_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_010_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_010_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_010_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_010_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_010_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -2293,20 +2210,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_011_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_011_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_011_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_011_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_011_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_011_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -2660,20 +2564,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_012_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_012_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_012_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_012_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_012_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_012_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -3057,20 +2948,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_013_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_013_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_013_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_013_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_013_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_013_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -3469,20 +3347,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_014_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_014_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_014_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_014_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_014_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_014_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -3914,20 +3779,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_015_GetTrackingSpace(struct w return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_015_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) -{ - struct IVRCompositor_IVRCompositor_015_WaitGetPoses_params params = - { - .u_iface = _this->u_iface, - .pRenderPoseArray = pRenderPoseArray, - .unRenderPoseArrayCount = unRenderPoseArrayCount, - .pGamePoseArray = pGamePoseArray, - .unGamePoseArrayCount = unGamePoseArrayCount, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_015_WaitGetPoses, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_015_WaitGetPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount); uint32_t __thiscall winIVRCompositor_IVRCompositor_015_GetLastPoses(struct w_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount) { @@ -7717,27 +7569,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode(struct w_iface *_this, int8_t bExplicitTimingMode) -{ - struct IVRCompositor_IVRCompositor_021_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .bExplicitTimingMode = bExplicitTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode(struct w_iface *_this, int8_t bExplicitTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_021_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_021_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_021_SubmitExplicitTimingData(struct w_iface *_this); extern vtable_ptr winIVRCompositor_IVRCompositor_021_vtable; @@ -8358,27 +8192,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) -{ - struct IVRCompositor_IVRCompositor_022_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .eTimingMode = eTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_022_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData(struct w_iface *_this); int8_t __thiscall winIVRCompositor_IVRCompositor_022_IsMotionSmoothingEnabled(struct w_iface *_this) { @@ -9040,27 +8856,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) -{ - struct IVRCompositor_IVRCompositor_024_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .eTimingMode = eTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_024_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData(struct w_iface *_this); int8_t __thiscall winIVRCompositor_IVRCompositor_024_IsMotionSmoothingEnabled(struct w_iface *_this) { @@ -9754,27 +9552,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) -{ - struct IVRCompositor_IVRCompositor_026_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .eTimingMode = eTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_026_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData(struct w_iface *_this); int8_t __thiscall winIVRCompositor_IVRCompositor_026_IsMotionSmoothingEnabled(struct w_iface *_this) { @@ -10514,27 +10294,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) -{ - struct IVRCompositor_IVRCompositor_027_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .eTimingMode = eTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_027_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData(struct w_iface *_this); int8_t __thiscall winIVRCompositor_IVRCompositor_027_IsMotionSmoothingEnabled(struct w_iface *_this) { @@ -11277,27 +11039,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_028_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_028_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) -{ - struct IVRCompositor_IVRCompositor_028_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .eTimingMode = eTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_028_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_028_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_028_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_028_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_028_SubmitExplicitTimingData(struct w_iface *_this); int8_t __thiscall winIVRCompositor_IVRCompositor_028_IsMotionSmoothingEnabled(struct w_iface *_this) { @@ -12060,27 +11804,9 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_029_GetVulkanDeviceExtensions return params._ret; } -void __thiscall winIVRCompositor_IVRCompositor_029_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode) -{ - struct IVRCompositor_IVRCompositor_029_SetExplicitTimingMode_params params = - { - .u_iface = _this->u_iface, - .eTimingMode = eTimingMode, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_SetExplicitTimingMode, ¶ms ); -} +extern void __thiscall winIVRCompositor_IVRCompositor_029_SetExplicitTimingMode(struct w_iface *_this, uint32_t eTimingMode); -uint32_t __thiscall winIVRCompositor_IVRCompositor_029_SubmitExplicitTimingData(struct w_iface *_this) -{ - struct IVRCompositor_IVRCompositor_029_SubmitExplicitTimingData_params params = - { - .u_iface = _this->u_iface, - }; - TRACE("%p\n", _this); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_029_SubmitExplicitTimingData, ¶ms ); - return params._ret; -} +extern uint32_t __thiscall winIVRCompositor_IVRCompositor_029_SubmitExplicitTimingData(struct w_iface *_this); int8_t __thiscall winIVRCompositor_IVRCompositor_029_IsMotionSmoothingEnabled(struct w_iface *_this) { diff --git a/vrclient_x64/winIVROverlay.c b/vrclient_x64/winIVROverlay.c index b5bf60c3927..42867c57348 100644 --- a/vrclient_x64/winIVROverlay.c +++ b/vrclient_x64/winIVROverlay.c @@ -3880,6 +3880,972 @@ void destroy_winIVROverlay_IVROverlay_005_FnTable(struct w_iface *object) HeapFree(GetProcessHeap(), 0, object); } +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_FindOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_CreateOverlay, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_DestroyOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetHighQualityOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetHighQualityOverlay, 4) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayKey, 24) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayName, 24) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayImageData, 28) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum, 8) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayFlag, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayFlag, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayColor, 24) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayColor, 24) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayAlpha, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayAlpha, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayGamma, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayGamma, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayWidthInMeters, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayWidthInMeters, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayTextureBounds, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayTextureBounds, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayTransformType, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayTransformAbsolute, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayTransformAbsolute, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_ShowOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_HideOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_IsOverlayVisible, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_PollNextOverlayEvent, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayInputMethod, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayInputMethod, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetOverlayMouseScale, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayMouseScale, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_ComputeOverlayIntersection, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_IsHoverTargetOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetGamepadFocusOverlay, 4) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetGamepadFocusOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayNeighbor, 24) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayTexture, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_ClearOverlayTexture, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayRaw, 28) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetOverlayFromFile, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_CreateDashboardOverlay, 20) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_IsDashboardVisible, 4) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_IsActiveDashboardOverlay, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess, 16) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_ShowDashboard, 8) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_ShowKeyboard, 36) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_ShowKeyboardForOverlay, 44) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_GetKeyboardText, 12) +DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_006_HideKeyboard, 4) + +uint32_t __thiscall winIVROverlay_IVROverlay_006_FindOverlay(struct w_iface *_this, const char *pchOverlayKey, uint64_t *pOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_FindOverlay_params params = + { + .u_iface = _this->u_iface, + .pchOverlayKey = pchOverlayKey, + .pOverlayHandle = pOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_FindOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_CreateOverlay(struct w_iface *_this, const char *pchOverlayKey, const char *pchOverlayFriendlyName, uint64_t *pOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_CreateOverlay_params params = + { + .u_iface = _this->u_iface, + .pchOverlayKey = pchOverlayKey, + .pchOverlayFriendlyName = pchOverlayFriendlyName, + .pOverlayHandle = pOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_CreateOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_DestroyOverlay(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_DestroyOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_DestroyOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetHighQualityOverlay(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_SetHighQualityOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetHighQualityOverlay, ¶ms ); + return params._ret; +} + +uint64_t __thiscall winIVROverlay_IVROverlay_006_GetHighQualityOverlay(struct w_iface *_this) +{ + struct IVROverlay_IVROverlay_006_GetHighQualityOverlay_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetHighQualityOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayKey(struct w_iface *_this, uint64_t ulOverlayHandle, char *pchValue, uint32_t unBufferSize, uint32_t *pError) +{ + struct IVROverlay_IVROverlay_006_GetOverlayKey_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayKey, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayName(struct w_iface *_this, uint64_t ulOverlayHandle, char *pchValue, uint32_t unBufferSize, uint32_t *pError) +{ + struct IVROverlay_IVROverlay_006_GetOverlayName_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayName, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayImageData(struct w_iface *_this, uint64_t ulOverlayHandle, void *pvBuffer, uint32_t unBufferSize, uint32_t *punWidth, uint32_t *punHeight) +{ + struct IVROverlay_IVROverlay_006_GetOverlayImageData_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pvBuffer = pvBuffer, + .unBufferSize = unBufferSize, + .punWidth = punWidth, + .punHeight = punHeight, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayImageData, ¶ms ); + return params._ret; +} + +const char * __thiscall winIVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum(struct w_iface *_this, uint32_t error) +{ + struct IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum_params params = + { + .u_iface = _this->u_iface, + .error = error, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum, ¶ms ); + return get_unix_buffer( params._ret ); +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayFlag(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eOverlayFlag, int8_t bEnabled) +{ + struct IVROverlay_IVROverlay_006_SetOverlayFlag_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .eOverlayFlag = eOverlayFlag, + .bEnabled = bEnabled, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayFlag, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayFlag(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eOverlayFlag, int8_t *pbEnabled) +{ + struct IVROverlay_IVROverlay_006_GetOverlayFlag_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .eOverlayFlag = eOverlayFlag, + .pbEnabled = pbEnabled, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayFlag, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayColor(struct w_iface *_this, uint64_t ulOverlayHandle, float fRed, float fGreen, float fBlue) +{ + struct IVROverlay_IVROverlay_006_SetOverlayColor_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .fRed = fRed, + .fGreen = fGreen, + .fBlue = fBlue, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayColor, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayColor(struct w_iface *_this, uint64_t ulOverlayHandle, float *pfRed, float *pfGreen, float *pfBlue) +{ + struct IVROverlay_IVROverlay_006_GetOverlayColor_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pfRed = pfRed, + .pfGreen = pfGreen, + .pfBlue = pfBlue, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayColor, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayAlpha(struct w_iface *_this, uint64_t ulOverlayHandle, float fAlpha) +{ + struct IVROverlay_IVROverlay_006_SetOverlayAlpha_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .fAlpha = fAlpha, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayAlpha, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayAlpha(struct w_iface *_this, uint64_t ulOverlayHandle, float *pfAlpha) +{ + struct IVROverlay_IVROverlay_006_GetOverlayAlpha_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pfAlpha = pfAlpha, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayAlpha, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayGamma(struct w_iface *_this, uint64_t ulOverlayHandle, float fGamma) +{ + struct IVROverlay_IVROverlay_006_SetOverlayGamma_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .fGamma = fGamma, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayGamma, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayGamma(struct w_iface *_this, uint64_t ulOverlayHandle, float *pfGamma) +{ + struct IVROverlay_IVROverlay_006_GetOverlayGamma_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pfGamma = pfGamma, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayGamma, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayWidthInMeters(struct w_iface *_this, uint64_t ulOverlayHandle, float fWidthInMeters) +{ + struct IVROverlay_IVROverlay_006_SetOverlayWidthInMeters_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .fWidthInMeters = fWidthInMeters, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayWidthInMeters, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayWidthInMeters(struct w_iface *_this, uint64_t ulOverlayHandle, float *pfWidthInMeters) +{ + struct IVROverlay_IVROverlay_006_GetOverlayWidthInMeters_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pfWidthInMeters = pfWidthInMeters, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayWidthInMeters, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters(struct w_iface *_this, uint64_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters) +{ + struct IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .fMinDistanceInMeters = fMinDistanceInMeters, + .fMaxDistanceInMeters = fMaxDistanceInMeters, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters(struct w_iface *_this, uint64_t ulOverlayHandle, float *pfMinDistanceInMeters, float *pfMaxDistanceInMeters) +{ + struct IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pfMinDistanceInMeters = pfMinDistanceInMeters, + .pfMaxDistanceInMeters = pfMaxDistanceInMeters, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayTextureBounds(struct w_iface *_this, uint64_t ulOverlayHandle, const VRTextureBounds_t *pOverlayTextureBounds) +{ + struct IVROverlay_IVROverlay_006_SetOverlayTextureBounds_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pOverlayTextureBounds = pOverlayTextureBounds, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayTextureBounds, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayTextureBounds(struct w_iface *_this, uint64_t ulOverlayHandle, VRTextureBounds_t *pOverlayTextureBounds) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTextureBounds_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pOverlayTextureBounds = pOverlayTextureBounds, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayTextureBounds, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayTransformType(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t *peTransformType) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTransformType_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .peTransformType = peTransformType, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayTransformType, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayTransformAbsolute(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eTrackingOrigin, const HmdMatrix34_t *pmatTrackingOriginToOverlayTransform) +{ + struct IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .eTrackingOrigin = eTrackingOrigin, + .pmatTrackingOriginToOverlayTransform = pmatTrackingOriginToOverlayTransform, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayTransformAbsolute, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayTransformAbsolute(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t *peTrackingOrigin, HmdMatrix34_t *pmatTrackingOriginToOverlayTransform) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .peTrackingOrigin = peTrackingOrigin, + .pmatTrackingOriginToOverlayTransform = pmatTrackingOriginToOverlayTransform, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayTransformAbsolute, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t unTrackedDevice, const HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform) +{ + struct IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .unTrackedDevice = unTrackedDevice, + .pmatTrackedDeviceToOverlayTransform = pmatTrackedDeviceToOverlayTransform, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t *punTrackedDevice, HmdMatrix34_t *pmatTrackedDeviceToOverlayTransform) +{ + struct IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .punTrackedDevice = punTrackedDevice, + .pmatTrackedDeviceToOverlayTransform = pmatTrackedDeviceToOverlayTransform, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_ShowOverlay(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_ShowOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_ShowOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_HideOverlay(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_HideOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_HideOverlay, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_IsOverlayVisible(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_IsOverlayVisible_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_IsOverlayVisible, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_PollNextOverlayEvent(struct w_iface *_this, uint64_t ulOverlayHandle, w_VREvent_t_0911 *pEvent) +{ + struct IVROverlay_IVROverlay_006_PollNextOverlayEvent_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pEvent = pEvent, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_PollNextOverlayEvent, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayInputMethod(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t *peInputMethod) +{ + struct IVROverlay_IVROverlay_006_GetOverlayInputMethod_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .peInputMethod = peInputMethod, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayInputMethod, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayInputMethod(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eInputMethod) +{ + struct IVROverlay_IVROverlay_006_SetOverlayInputMethod_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .eInputMethod = eInputMethod, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayInputMethod, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetOverlayMouseScale(struct w_iface *_this, uint64_t ulOverlayHandle, HmdVector2_t *pvecMouseScale) +{ + struct IVROverlay_IVROverlay_006_GetOverlayMouseScale_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pvecMouseScale = pvecMouseScale, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetOverlayMouseScale, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayMouseScale(struct w_iface *_this, uint64_t ulOverlayHandle, const HmdVector2_t *pvecMouseScale) +{ + struct IVROverlay_IVROverlay_006_SetOverlayMouseScale_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pvecMouseScale = pvecMouseScale, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayMouseScale, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_ComputeOverlayIntersection(struct w_iface *_this, uint64_t ulOverlayHandle, const VROverlayIntersectionParams_t *pParams, VROverlayIntersectionResults_t *pResults) +{ + struct IVROverlay_IVROverlay_006_ComputeOverlayIntersection_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pParams = pParams, + .pResults = pResults, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_ComputeOverlayIntersection, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t unControllerDeviceIndex) +{ + struct IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .unControllerDeviceIndex = unControllerDeviceIndex, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_IsHoverTargetOverlay(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_IsHoverTargetOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_IsHoverTargetOverlay, ¶ms ); + return params._ret; +} + +uint64_t __thiscall winIVROverlay_IVROverlay_006_GetGamepadFocusOverlay(struct w_iface *_this) +{ + struct IVROverlay_IVROverlay_006_GetGamepadFocusOverlay_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetGamepadFocusOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetGamepadFocusOverlay(struct w_iface *_this, uint64_t ulNewFocusOverlay) +{ + struct IVROverlay_IVROverlay_006_SetGamepadFocusOverlay_params params = + { + .u_iface = _this->u_iface, + .ulNewFocusOverlay = ulNewFocusOverlay, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetGamepadFocusOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayNeighbor(struct w_iface *_this, uint32_t eDirection, uint64_t ulFrom, uint64_t ulTo) +{ + struct IVROverlay_IVROverlay_006_SetOverlayNeighbor_params params = + { + .u_iface = _this->u_iface, + .eDirection = eDirection, + .ulFrom = ulFrom, + .ulTo = ulTo, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayNeighbor, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor(struct w_iface *_this, uint32_t eDirection, uint64_t ulFrom) +{ + struct IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor_params params = + { + .u_iface = _this->u_iface, + .eDirection = eDirection, + .ulFrom = ulFrom, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor, ¶ms ); + return params._ret; +} + +extern uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayTexture(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eTextureType, void *pTexture); + +uint32_t __thiscall winIVROverlay_IVROverlay_006_ClearOverlayTexture(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_ClearOverlayTexture_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_ClearOverlayTexture, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayRaw(struct w_iface *_this, uint64_t ulOverlayHandle, void *pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth) +{ + struct IVROverlay_IVROverlay_006_SetOverlayRaw_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pvBuffer = pvBuffer, + .unWidth = unWidth, + .unHeight = unHeight, + .unDepth = unDepth, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayRaw, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetOverlayFromFile(struct w_iface *_this, uint64_t ulOverlayHandle, const char *pchFilePath) +{ + struct IVROverlay_IVROverlay_006_SetOverlayFromFile_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .pchFilePath = pchFilePath, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetOverlayFromFile, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_CreateDashboardOverlay(struct w_iface *_this, const char *pchOverlayKey, const char *pchOverlayFriendlyName, uint64_t *pMainHandle, uint64_t *pThumbnailHandle) +{ + struct IVROverlay_IVROverlay_006_CreateDashboardOverlay_params params = + { + .u_iface = _this->u_iface, + .pchOverlayKey = pchOverlayKey, + .pchOverlayFriendlyName = pchOverlayFriendlyName, + .pMainHandle = pMainHandle, + .pThumbnailHandle = pThumbnailHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_CreateDashboardOverlay, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_IsDashboardVisible(struct w_iface *_this) +{ + struct IVROverlay_IVROverlay_006_IsDashboardVisible_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_IsDashboardVisible, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVROverlay_IVROverlay_006_IsActiveDashboardOverlay(struct w_iface *_this, uint64_t ulOverlayHandle) +{ + struct IVROverlay_IVROverlay_006_IsActiveDashboardOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_IsActiveDashboardOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t unProcessId) +{ + struct IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .unProcessId = unProcessId, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t *punProcessId) +{ + struct IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .punProcessId = punProcessId, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess, ¶ms ); + return params._ret; +} + +void __thiscall winIVROverlay_IVROverlay_006_ShowDashboard(struct w_iface *_this, const char *pchOverlayToShow) +{ + struct IVROverlay_IVROverlay_006_ShowDashboard_params params = + { + .u_iface = _this->u_iface, + .pchOverlayToShow = pchOverlayToShow, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_ShowDashboard, ¶ms ); +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_ShowKeyboard(struct w_iface *_this, uint32_t eInputMode, uint32_t eLineInputMode, const char *pchDescription, uint32_t unCharMax, const char *pchExistingText, int8_t bUseMinimalMode, uint64_t uUserValue) +{ + struct IVROverlay_IVROverlay_006_ShowKeyboard_params params = + { + .u_iface = _this->u_iface, + .eInputMode = eInputMode, + .eLineInputMode = eLineInputMode, + .pchDescription = pchDescription, + .unCharMax = unCharMax, + .pchExistingText = pchExistingText, + .bUseMinimalMode = bUseMinimalMode, + .uUserValue = uUserValue, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_ShowKeyboard, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_ShowKeyboardForOverlay(struct w_iface *_this, uint64_t ulOverlayHandle, uint32_t eInputMode, uint32_t eLineInputMode, const char *pchDescription, uint32_t unCharMax, const char *pchExistingText, int8_t bUseMinimalMode, uint64_t uUserValue) +{ + struct IVROverlay_IVROverlay_006_ShowKeyboardForOverlay_params params = + { + .u_iface = _this->u_iface, + .ulOverlayHandle = ulOverlayHandle, + .eInputMode = eInputMode, + .eLineInputMode = eLineInputMode, + .pchDescription = pchDescription, + .unCharMax = unCharMax, + .pchExistingText = pchExistingText, + .bUseMinimalMode = bUseMinimalMode, + .uUserValue = uUserValue, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_ShowKeyboardForOverlay, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVROverlay_IVROverlay_006_GetKeyboardText(struct w_iface *_this, char *pchText, uint32_t cchText) +{ + struct IVROverlay_IVROverlay_006_GetKeyboardText_params params = + { + .u_iface = _this->u_iface, + .pchText = pchText, + .cchText = cchText, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_GetKeyboardText, ¶ms ); + return params._ret; +} + +void __thiscall winIVROverlay_IVROverlay_006_HideKeyboard(struct w_iface *_this) +{ + struct IVROverlay_IVROverlay_006_HideKeyboard_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVROverlay_IVROverlay_006_HideKeyboard, ¶ms ); +} + +extern vtable_ptr winIVROverlay_IVROverlay_006_vtable; + +DEFINE_RTTI_DATA0(winIVROverlay_IVROverlay_006, 0, ".?AVIVROverlay@@") + +__ASM_BLOCK_BEGIN(winIVROverlay_IVROverlay_006_vtables) + __ASM_VTABLE(winIVROverlay_IVROverlay_006, + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_FindOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_CreateOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_DestroyOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetHighQualityOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetHighQualityOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayKey) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayName) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayImageData) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayFlag) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayFlag) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayColor) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayColor) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayAlpha) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayAlpha) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayGamma) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayGamma) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayWidthInMeters) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayWidthInMeters) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayTextureBounds) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayTextureBounds) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayTransformType) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayTransformAbsolute) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayTransformAbsolute) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_ShowOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_HideOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_IsOverlayVisible) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_PollNextOverlayEvent) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayInputMethod) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayInputMethod) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetOverlayMouseScale) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayMouseScale) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_ComputeOverlayIntersection) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_IsHoverTargetOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetGamepadFocusOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetGamepadFocusOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayNeighbor) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayTexture) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_ClearOverlayTexture) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayRaw) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetOverlayFromFile) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_CreateDashboardOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_IsDashboardVisible) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_IsActiveDashboardOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_ShowDashboard) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_ShowKeyboard) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_ShowKeyboardForOverlay) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_GetKeyboardText) + VTABLE_ADD_FUNC(winIVROverlay_IVROverlay_006_HideKeyboard) + ); +__ASM_BLOCK_END + +struct w_iface *create_winIVROverlay_IVROverlay_006( struct u_iface u_iface ) +{ + struct w_iface *r = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*r)); + TRACE("-> %p\n", r); + r->vtable = &winIVROverlay_IVROverlay_006_vtable; + r->u_iface = u_iface; + return r; +} + +void destroy_winIVROverlay_IVROverlay_006(struct w_iface *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + +struct w_iface *create_winIVROverlay_IVROverlay_006_FnTable( struct u_iface u_iface ) +{ + struct w_iface *r = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*r)); + struct thunk *thunks = alloc_thunks(57); + struct thunk **vtable = HeapAlloc(GetProcessHeap(), 0, 57 * sizeof(*vtable)); + int i; + + TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks); + init_thunk(&thunks[0], r, winIVROverlay_IVROverlay_006_FindOverlay, 2, FALSE, FALSE); + init_thunk(&thunks[1], r, winIVROverlay_IVROverlay_006_CreateOverlay, 3, FALSE, FALSE); + init_thunk(&thunks[2], r, winIVROverlay_IVROverlay_006_DestroyOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[3], r, winIVROverlay_IVROverlay_006_SetHighQualityOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[4], r, winIVROverlay_IVROverlay_006_GetHighQualityOverlay, 0, FALSE, FALSE); + init_thunk(&thunks[5], r, winIVROverlay_IVROverlay_006_GetOverlayKey, 4, FALSE, FALSE); + init_thunk(&thunks[6], r, winIVROverlay_IVROverlay_006_GetOverlayName, 4, FALSE, FALSE); + init_thunk(&thunks[7], r, winIVROverlay_IVROverlay_006_GetOverlayImageData, 5, FALSE, FALSE); + init_thunk(&thunks[8], r, winIVROverlay_IVROverlay_006_GetOverlayErrorNameFromEnum, 1, FALSE, FALSE); + init_thunk(&thunks[9], r, winIVROverlay_IVROverlay_006_SetOverlayFlag, 3, FALSE, FALSE); + init_thunk(&thunks[10], r, winIVROverlay_IVROverlay_006_GetOverlayFlag, 3, FALSE, FALSE); + init_thunk(&thunks[11], r, winIVROverlay_IVROverlay_006_SetOverlayColor, 4, TRUE, TRUE); + init_thunk(&thunks[12], r, winIVROverlay_IVROverlay_006_GetOverlayColor, 4, FALSE, FALSE); + init_thunk(&thunks[13], r, winIVROverlay_IVROverlay_006_SetOverlayAlpha, 2, TRUE, FALSE); + init_thunk(&thunks[14], r, winIVROverlay_IVROverlay_006_GetOverlayAlpha, 2, FALSE, FALSE); + init_thunk(&thunks[15], r, winIVROverlay_IVROverlay_006_SetOverlayGamma, 2, TRUE, FALSE); + init_thunk(&thunks[16], r, winIVROverlay_IVROverlay_006_GetOverlayGamma, 2, FALSE, FALSE); + init_thunk(&thunks[17], r, winIVROverlay_IVROverlay_006_SetOverlayWidthInMeters, 2, TRUE, FALSE); + init_thunk(&thunks[18], r, winIVROverlay_IVROverlay_006_GetOverlayWidthInMeters, 2, FALSE, FALSE); + init_thunk(&thunks[19], r, winIVROverlay_IVROverlay_006_SetOverlayAutoCurveDistanceRangeInMeters, 3, TRUE, FALSE); + init_thunk(&thunks[20], r, winIVROverlay_IVROverlay_006_GetOverlayAutoCurveDistanceRangeInMeters, 3, FALSE, FALSE); + init_thunk(&thunks[21], r, winIVROverlay_IVROverlay_006_SetOverlayTextureBounds, 2, FALSE, FALSE); + init_thunk(&thunks[22], r, winIVROverlay_IVROverlay_006_GetOverlayTextureBounds, 2, FALSE, FALSE); + init_thunk(&thunks[23], r, winIVROverlay_IVROverlay_006_GetOverlayTransformType, 2, FALSE, FALSE); + init_thunk(&thunks[24], r, winIVROverlay_IVROverlay_006_SetOverlayTransformAbsolute, 3, FALSE, FALSE); + init_thunk(&thunks[25], r, winIVROverlay_IVROverlay_006_GetOverlayTransformAbsolute, 3, FALSE, FALSE); + init_thunk(&thunks[26], r, winIVROverlay_IVROverlay_006_SetOverlayTransformTrackedDeviceRelative, 3, FALSE, FALSE); + init_thunk(&thunks[27], r, winIVROverlay_IVROverlay_006_GetOverlayTransformTrackedDeviceRelative, 3, FALSE, FALSE); + init_thunk(&thunks[28], r, winIVROverlay_IVROverlay_006_ShowOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[29], r, winIVROverlay_IVROverlay_006_HideOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[30], r, winIVROverlay_IVROverlay_006_IsOverlayVisible, 1, FALSE, FALSE); + init_thunk(&thunks[31], r, winIVROverlay_IVROverlay_006_PollNextOverlayEvent, 2, FALSE, FALSE); + init_thunk(&thunks[32], r, winIVROverlay_IVROverlay_006_GetOverlayInputMethod, 2, FALSE, FALSE); + init_thunk(&thunks[33], r, winIVROverlay_IVROverlay_006_SetOverlayInputMethod, 2, FALSE, FALSE); + init_thunk(&thunks[34], r, winIVROverlay_IVROverlay_006_GetOverlayMouseScale, 2, FALSE, FALSE); + init_thunk(&thunks[35], r, winIVROverlay_IVROverlay_006_SetOverlayMouseScale, 2, FALSE, FALSE); + init_thunk(&thunks[36], r, winIVROverlay_IVROverlay_006_ComputeOverlayIntersection, 3, FALSE, FALSE); + init_thunk(&thunks[37], r, winIVROverlay_IVROverlay_006_HandleControllerOverlayInteractionAsMouse, 2, FALSE, FALSE); + init_thunk(&thunks[38], r, winIVROverlay_IVROverlay_006_IsHoverTargetOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[39], r, winIVROverlay_IVROverlay_006_GetGamepadFocusOverlay, 0, FALSE, FALSE); + init_thunk(&thunks[40], r, winIVROverlay_IVROverlay_006_SetGamepadFocusOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[41], r, winIVROverlay_IVROverlay_006_SetOverlayNeighbor, 3, FALSE, FALSE); + init_thunk(&thunks[42], r, winIVROverlay_IVROverlay_006_MoveGamepadFocusToNeighbor, 2, FALSE, FALSE); + init_thunk(&thunks[43], r, winIVROverlay_IVROverlay_006_SetOverlayTexture, 3, FALSE, FALSE); + init_thunk(&thunks[44], r, winIVROverlay_IVROverlay_006_ClearOverlayTexture, 1, FALSE, FALSE); + init_thunk(&thunks[45], r, winIVROverlay_IVROverlay_006_SetOverlayRaw, 5, FALSE, FALSE); + init_thunk(&thunks[46], r, winIVROverlay_IVROverlay_006_SetOverlayFromFile, 2, FALSE, FALSE); + init_thunk(&thunks[47], r, winIVROverlay_IVROverlay_006_CreateDashboardOverlay, 4, FALSE, FALSE); + init_thunk(&thunks[48], r, winIVROverlay_IVROverlay_006_IsDashboardVisible, 0, FALSE, FALSE); + init_thunk(&thunks[49], r, winIVROverlay_IVROverlay_006_IsActiveDashboardOverlay, 1, FALSE, FALSE); + init_thunk(&thunks[50], r, winIVROverlay_IVROverlay_006_SetDashboardOverlaySceneProcess, 2, FALSE, FALSE); + init_thunk(&thunks[51], r, winIVROverlay_IVROverlay_006_GetDashboardOverlaySceneProcess, 2, FALSE, FALSE); + init_thunk(&thunks[52], r, winIVROverlay_IVROverlay_006_ShowDashboard, 1, FALSE, FALSE); + init_thunk(&thunks[53], r, winIVROverlay_IVROverlay_006_ShowKeyboard, 7, FALSE, FALSE); + init_thunk(&thunks[54], r, winIVROverlay_IVROverlay_006_ShowKeyboardForOverlay, 8, FALSE, FALSE); + init_thunk(&thunks[55], r, winIVROverlay_IVROverlay_006_GetKeyboardText, 2, FALSE, FALSE); + init_thunk(&thunks[56], r, winIVROverlay_IVROverlay_006_HideKeyboard, 0, FALSE, FALSE); + for (i = 0; i < 57; i++) + vtable[i] = &thunks[i]; + r->u_iface = u_iface; + r->vtable = (void *)vtable; + return r; +} + +void destroy_winIVROverlay_IVROverlay_006_FnTable(struct w_iface *object) +{ + TRACE("%p\n", object); + VirtualFree(object->vtable[0], 0, MEM_RELEASE); + HeapFree(GetProcessHeap(), 0, object->vtable); + HeapFree(GetProcessHeap(), 0, object); +} + DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_FindOverlay, 12) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_CreateOverlay, 16) DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_DestroyOverlay, 12) @@ -28162,6 +29128,7 @@ void init_winIVROverlay_rtti( char *base ) init_winIVROverlay_IVROverlay_003_rtti( base ); init_winIVROverlay_IVROverlay_004_rtti( base ); init_winIVROverlay_IVROverlay_005_rtti( base ); + init_winIVROverlay_IVROverlay_006_rtti( base ); init_winIVROverlay_IVROverlay_007_rtti( base ); init_winIVROverlay_IVROverlay_008_rtti( base ); init_winIVROverlay_IVROverlay_010_rtti( base ); diff --git a/vrclient_x64/winIVRRenderModels.c b/vrclient_x64/winIVRRenderModels.c index f829fd3d88f..1a2dd55bc6c 100644 --- a/vrclient_x64/winIVRRenderModels.c +++ b/vrclient_x64/winIVRRenderModels.c @@ -12,6 +12,11 @@ DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_LoadRenderModel, DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_FreeRenderModel, 8) DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetRenderModelName, 16) DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount, 4) +DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetComponentCount, 8) +DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetComponentName, 20) +DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetComponentButtonMask, 12) +DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName, 20) +DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetComponentState, 76) int8_t __thiscall winIVRRenderModels_IVRRenderModels_001_LoadRenderModel(struct w_iface *_this, const char *pchRenderModelName, w_RenderModel_t_090 *pRenderModel) { @@ -62,6 +67,76 @@ uint32_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount(s return params._ret; } +uint32_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetComponentCount(struct w_iface *_this, const char *pchRenderModelName) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentCount_params params = + { + .u_iface = _this->u_iface, + .pchRenderModelName = pchRenderModelName, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRRenderModels_IVRRenderModels_001_GetComponentCount, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetComponentName(struct w_iface *_this, const char *pchRenderModelName, uint32_t unComponentIndex, char *pchComponentName, uint32_t unComponentNameLen) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentName_params params = + { + .u_iface = _this->u_iface, + .pchRenderModelName = pchRenderModelName, + .unComponentIndex = unComponentIndex, + .pchComponentName = pchComponentName, + .unComponentNameLen = unComponentNameLen, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRRenderModels_IVRRenderModels_001_GetComponentName, ¶ms ); + return params._ret; +} + +uint64_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetComponentButtonMask(struct w_iface *_this, const char *pchRenderModelName, const char *pchComponentName) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask_params params = + { + .u_iface = _this->u_iface, + .pchRenderModelName = pchRenderModelName, + .pchComponentName = pchComponentName, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRRenderModels_IVRRenderModels_001_GetComponentButtonMask, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName(struct w_iface *_this, const char *pchRenderModelName, const char *pchComponentName, char *pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName_params params = + { + .u_iface = _this->u_iface, + .pchRenderModelName = pchRenderModelName, + .pchComponentName = pchComponentName, + .pchComponentRenderModelName = pchComponentRenderModelName, + .unComponentRenderModelNameLen = unComponentRenderModelNameLen, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetComponentState(struct w_iface *_this, const char *pchRenderModelName, const char *pchComponentName, w_VRControllerState001_t controllerState, ComponentState_t *pComponentState) +{ + struct IVRRenderModels_IVRRenderModels_001_GetComponentState_params params = + { + .u_iface = _this->u_iface, + .pchRenderModelName = pchRenderModelName, + .pchComponentName = pchComponentName, + .controllerState = controllerState, + .pComponentState = pComponentState, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRRenderModels_IVRRenderModels_001_GetComponentState, ¶ms ); + return params._ret; +} + extern vtable_ptr winIVRRenderModels_IVRRenderModels_001_vtable; DEFINE_RTTI_DATA0(winIVRRenderModels_IVRRenderModels_001, 0, ".?AVIVRRenderModels@@") @@ -72,6 +147,11 @@ __ASM_BLOCK_BEGIN(winIVRRenderModels_IVRRenderModels_001_vtables) VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_FreeRenderModel) VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetRenderModelName) VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount) + VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetComponentCount) + VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetComponentName) + VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetComponentButtonMask) + VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName) + VTABLE_ADD_FUNC(winIVRRenderModels_IVRRenderModels_001_GetComponentState) ); __ASM_BLOCK_END @@ -93,8 +173,8 @@ void destroy_winIVRRenderModels_IVRRenderModels_001(struct w_iface *object) struct w_iface *create_winIVRRenderModels_IVRRenderModels_001_FnTable( struct u_iface u_iface ) { struct w_iface *r = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*r)); - struct thunk *thunks = alloc_thunks(4); - struct thunk **vtable = HeapAlloc(GetProcessHeap(), 0, 4 * sizeof(*vtable)); + struct thunk *thunks = alloc_thunks(9); + struct thunk **vtable = HeapAlloc(GetProcessHeap(), 0, 9 * sizeof(*vtable)); int i; TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks); @@ -102,7 +182,12 @@ struct w_iface *create_winIVRRenderModels_IVRRenderModels_001_FnTable( struct u_ init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_001_FreeRenderModel, 1, FALSE, FALSE); init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_001_GetRenderModelName, 3, FALSE, FALSE); init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount, 0, FALSE, FALSE); - for (i = 0; i < 4; i++) + init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_001_GetComponentCount, 1, FALSE, FALSE); + init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_001_GetComponentName, 4, FALSE, FALSE); + init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_001_GetComponentButtonMask, 2, FALSE, FALSE); + init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_001_GetComponentRenderModelName, 4, FALSE, FALSE); + init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_001_GetComponentState, 4, FALSE, FALSE); + for (i = 0; i < 9; i++) vtable[i] = &thunks[i]; r->u_iface = u_iface; r->vtable = (void *)vtable; diff --git a/vrclient_x64/winIVRSystem.c b/vrclient_x64/winIVRSystem.c index 5eb298d7add..4822b1d6289 100644 --- a/vrclient_x64/winIVRSystem.c +++ b/vrclient_x64/winIVRSystem.c @@ -2613,6 +2613,730 @@ void destroy_winIVRSystem_IVRSystem_006_FnTable(struct w_iface *object) HeapFree(GetProcessHeap(), 0, object); } +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetWindowBounds, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize, 12) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetEyeOutputViewport, 24) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetProjectionMatrix, 24) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetProjectionRaw, 24) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_ComputeDistortion, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetEyeToHeadTransform, 12) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetTimeSinceLastVsync, 12) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetD3D9AdapterIndex, 4) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetDXGIOutputInfo, 12) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_AttachToWindow, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_ResetSeatedZeroPose, 4) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_ApplyTransform, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetTrackedDeviceClass, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_IsTrackedDeviceConnected, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty, 24) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetPropErrorNameFromEnum, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_PollNextEvent, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_PollNextEventWithPose, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetEventTypeNameFromEnum, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetHiddenAreaMesh, 12) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetControllerState, 12) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetControllerStateWithPose, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_TriggerHapticPulse, 16) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetButtonIdNameFromEnum, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_CaptureInputFocus, 4) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_ReleaseInputFocus, 4) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess, 4) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_DriverDebugRequest, 20) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_PerformFirmwareUpdate, 8) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_IsDisplayOnDesktop, 4) +DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_007_SetDisplayVisibility, 8) + +void __thiscall winIVRSystem_IVRSystem_007_GetWindowBounds(struct w_iface *_this, int32_t *pnX, int32_t *pnY, uint32_t *pnWidth, uint32_t *pnHeight) +{ + struct IVRSystem_IVRSystem_007_GetWindowBounds_params params = + { + .u_iface = _this->u_iface, + .pnX = pnX, + .pnY = pnY, + .pnWidth = pnWidth, + .pnHeight = pnHeight, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetWindowBounds, ¶ms ); +} + +void __thiscall winIVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize(struct w_iface *_this, uint32_t *pnWidth, uint32_t *pnHeight) +{ + struct IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize_params params = + { + .u_iface = _this->u_iface, + .pnWidth = pnWidth, + .pnHeight = pnHeight, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize, ¶ms ); +} + +void __thiscall winIVRSystem_IVRSystem_007_GetEyeOutputViewport(struct w_iface *_this, uint32_t eEye, uint32_t *pnX, uint32_t *pnY, uint32_t *pnWidth, uint32_t *pnHeight) +{ + struct IVRSystem_IVRSystem_007_GetEyeOutputViewport_params params = + { + .u_iface = _this->u_iface, + .eEye = eEye, + .pnX = pnX, + .pnY = pnY, + .pnWidth = pnWidth, + .pnHeight = pnHeight, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetEyeOutputViewport, ¶ms ); +} + +HmdMatrix44_t * __thiscall winIVRSystem_IVRSystem_007_GetProjectionMatrix(struct w_iface *_this, HmdMatrix44_t *_ret, uint32_t eEye, float fNearZ, float fFarZ, uint32_t eProjType) +{ + struct IVRSystem_IVRSystem_007_GetProjectionMatrix_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + .eEye = eEye, + .fNearZ = fNearZ, + .fFarZ = fFarZ, + .eProjType = eProjType, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetProjectionMatrix, ¶ms ); + return params._ret; +} + +void __thiscall winIVRSystem_IVRSystem_007_GetProjectionRaw(struct w_iface *_this, uint32_t eEye, float *pfLeft, float *pfRight, float *pfTop, float *pfBottom) +{ + struct IVRSystem_IVRSystem_007_GetProjectionRaw_params params = + { + .u_iface = _this->u_iface, + .eEye = eEye, + .pfLeft = pfLeft, + .pfRight = pfRight, + .pfTop = pfTop, + .pfBottom = pfBottom, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetProjectionRaw, ¶ms ); +} + +DistortionCoordinates_t * __thiscall winIVRSystem_IVRSystem_007_ComputeDistortion(struct w_iface *_this, DistortionCoordinates_t *_ret, uint32_t eEye, float fU, float fV) +{ + struct IVRSystem_IVRSystem_007_ComputeDistortion_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + .eEye = eEye, + .fU = fU, + .fV = fV, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_ComputeDistortion, ¶ms ); + return params._ret; +} + +HmdMatrix34_t * __thiscall winIVRSystem_IVRSystem_007_GetEyeToHeadTransform(struct w_iface *_this, HmdMatrix34_t *_ret, uint32_t eEye) +{ + struct IVRSystem_IVRSystem_007_GetEyeToHeadTransform_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + .eEye = eEye, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetEyeToHeadTransform, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_GetTimeSinceLastVsync(struct w_iface *_this, float *pfSecondsSinceLastVsync, uint64_t *pulFrameCounter) +{ + struct IVRSystem_IVRSystem_007_GetTimeSinceLastVsync_params params = + { + .u_iface = _this->u_iface, + .pfSecondsSinceLastVsync = pfSecondsSinceLastVsync, + .pulFrameCounter = pulFrameCounter, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetTimeSinceLastVsync, ¶ms ); + return params._ret; +} + +int32_t __thiscall winIVRSystem_IVRSystem_007_GetD3D9AdapterIndex(struct w_iface *_this) +{ + struct IVRSystem_IVRSystem_007_GetD3D9AdapterIndex_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetD3D9AdapterIndex, ¶ms ); + return params._ret; +} + +extern void __thiscall winIVRSystem_IVRSystem_007_GetDXGIOutputInfo(struct w_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex); + +int8_t __thiscall winIVRSystem_IVRSystem_007_AttachToWindow(struct w_iface *_this, void *hWnd) +{ + struct IVRSystem_IVRSystem_007_AttachToWindow_params params = + { + .u_iface = _this->u_iface, + .hWnd = hWnd, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_AttachToWindow, ¶ms ); + return params._ret; +} + +void __thiscall winIVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose(struct w_iface *_this, uint32_t eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t *pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount) +{ + struct IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose_params params = + { + .u_iface = _this->u_iface, + .eOrigin = eOrigin, + .fPredictedSecondsToPhotonsFromNow = fPredictedSecondsToPhotonsFromNow, + .pTrackedDevicePoseArray = pTrackedDevicePoseArray, + .unTrackedDevicePoseArrayCount = unTrackedDevicePoseArrayCount, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose, ¶ms ); +} + +void __thiscall winIVRSystem_IVRSystem_007_ResetSeatedZeroPose(struct w_iface *_this) +{ + struct IVRSystem_IVRSystem_007_ResetSeatedZeroPose_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_ResetSeatedZeroPose, ¶ms ); +} + +HmdMatrix34_t * __thiscall winIVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(struct w_iface *_this, HmdMatrix34_t *_ret) +{ + struct IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, ¶ms ); + return params._ret; +} + +HmdMatrix34_t * __thiscall winIVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose(struct w_iface *_this, HmdMatrix34_t *_ret) +{ + struct IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass(struct w_iface *_this, uint32_t eTrackedDeviceClass, uint32_t *punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, uint32_t unRelativeToTrackedDeviceIndex) +{ + struct IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass_params params = + { + .u_iface = _this->u_iface, + .eTrackedDeviceClass = eTrackedDeviceClass, + .punTrackedDeviceIndexArray = punTrackedDeviceIndexArray, + .unTrackedDeviceIndexArrayCount = unTrackedDeviceIndexArrayCount, + .unRelativeToTrackedDeviceIndex = unRelativeToTrackedDeviceIndex, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel(struct w_iface *_this, uint32_t unDeviceId) +{ + struct IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel_params params = + { + .u_iface = _this->u_iface, + .unDeviceId = unDeviceId, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel, ¶ms ); + return params._ret; +} + +void __thiscall winIVRSystem_IVRSystem_007_ApplyTransform(struct w_iface *_this, TrackedDevicePose_t *pOutputPose, const TrackedDevicePose_t *trackedDevicePose, const HmdMatrix34_t *transform) +{ + struct IVRSystem_IVRSystem_007_ApplyTransform_params params = + { + .u_iface = _this->u_iface, + .pOutputPose = pOutputPose, + .trackedDevicePose = trackedDevicePose, + .transform = transform, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_ApplyTransform, ¶ms ); +} + +uint32_t __thiscall winIVRSystem_IVRSystem_007_GetTrackedDeviceClass(struct w_iface *_this, uint32_t unDeviceIndex) +{ + struct IVRSystem_IVRSystem_007_GetTrackedDeviceClass_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetTrackedDeviceClass, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_IsTrackedDeviceConnected(struct w_iface *_this, uint32_t unDeviceIndex) +{ + struct IVRSystem_IVRSystem_007_IsTrackedDeviceConnected_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_IsTrackedDeviceConnected, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty(struct w_iface *_this, uint32_t unDeviceIndex, uint32_t prop, uint32_t *pError) +{ + struct IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + .prop = prop, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty, ¶ms ); + return params._ret; +} + +float __thiscall winIVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty(struct w_iface *_this, uint32_t unDeviceIndex, uint32_t prop, uint32_t *pError) +{ + struct IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + .prop = prop, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty, ¶ms ); + return params._ret; +} + +int32_t __thiscall winIVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty(struct w_iface *_this, uint32_t unDeviceIndex, uint32_t prop, uint32_t *pError) +{ + struct IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + .prop = prop, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty, ¶ms ); + return params._ret; +} + +uint64_t __thiscall winIVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty(struct w_iface *_this, uint32_t unDeviceIndex, uint32_t prop, uint32_t *pError) +{ + struct IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + .prop = prop, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty, ¶ms ); + return params._ret; +} + +HmdMatrix34_t * __thiscall winIVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty(struct w_iface *_this, HmdMatrix34_t *_ret, uint32_t unDeviceIndex, uint32_t prop, uint32_t *pError) +{ + struct IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + .unDeviceIndex = unDeviceIndex, + .prop = prop, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty(struct w_iface *_this, uint32_t unDeviceIndex, uint32_t prop, char *pchValue, uint32_t unBufferSize, uint32_t *pError) +{ + struct IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + .prop = prop, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + .pError = pError, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty, ¶ms ); + return params._ret; +} + +const char * __thiscall winIVRSystem_IVRSystem_007_GetPropErrorNameFromEnum(struct w_iface *_this, uint32_t error) +{ + struct IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum_params params = + { + .u_iface = _this->u_iface, + .error = error, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetPropErrorNameFromEnum, ¶ms ); + return get_unix_buffer( params._ret ); +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_PollNextEvent(struct w_iface *_this, w_VREvent_t_0911 *pEvent) +{ + struct IVRSystem_IVRSystem_007_PollNextEvent_params params = + { + .u_iface = _this->u_iface, + .pEvent = pEvent, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_PollNextEvent, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_PollNextEventWithPose(struct w_iface *_this, uint32_t eOrigin, w_VREvent_t_0911 *pEvent, TrackedDevicePose_t *pTrackedDevicePose) +{ + struct IVRSystem_IVRSystem_007_PollNextEventWithPose_params params = + { + .u_iface = _this->u_iface, + .eOrigin = eOrigin, + .pEvent = pEvent, + .pTrackedDevicePose = pTrackedDevicePose, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_PollNextEventWithPose, ¶ms ); + return params._ret; +} + +const char * __thiscall winIVRSystem_IVRSystem_007_GetEventTypeNameFromEnum(struct w_iface *_this, uint32_t eType) +{ + struct IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum_params params = + { + .u_iface = _this->u_iface, + .eType = eType, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetEventTypeNameFromEnum, ¶ms ); + return get_unix_buffer( params._ret ); +} + +w_HiddenAreaMesh_t * __thiscall winIVRSystem_IVRSystem_007_GetHiddenAreaMesh(struct w_iface *_this, w_HiddenAreaMesh_t *_ret, uint32_t eEye) +{ + struct IVRSystem_IVRSystem_007_GetHiddenAreaMesh_params params = + { + .u_iface = _this->u_iface, + ._ret = _ret, + .eEye = eEye, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetHiddenAreaMesh, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_GetControllerState(struct w_iface *_this, uint32_t unControllerDeviceIndex, w_VRControllerState001_t *pControllerState) +{ + struct IVRSystem_IVRSystem_007_GetControllerState_params params = + { + .u_iface = _this->u_iface, + .unControllerDeviceIndex = unControllerDeviceIndex, + .pControllerState = pControllerState, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetControllerState, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_GetControllerStateWithPose(struct w_iface *_this, uint32_t eOrigin, uint32_t unControllerDeviceIndex, w_VRControllerState001_t *pControllerState, TrackedDevicePose_t *pTrackedDevicePose) +{ + struct IVRSystem_IVRSystem_007_GetControllerStateWithPose_params params = + { + .u_iface = _this->u_iface, + .eOrigin = eOrigin, + .unControllerDeviceIndex = unControllerDeviceIndex, + .pControllerState = pControllerState, + .pTrackedDevicePose = pTrackedDevicePose, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetControllerStateWithPose, ¶ms ); + return params._ret; +} + +void __thiscall winIVRSystem_IVRSystem_007_TriggerHapticPulse(struct w_iface *_this, uint32_t unControllerDeviceIndex, uint32_t unAxisId, uint16_t usDurationMicroSec) +{ + struct IVRSystem_IVRSystem_007_TriggerHapticPulse_params params = + { + .u_iface = _this->u_iface, + .unControllerDeviceIndex = unControllerDeviceIndex, + .unAxisId = unAxisId, + .usDurationMicroSec = usDurationMicroSec, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_TriggerHapticPulse, ¶ms ); +} + +const char * __thiscall winIVRSystem_IVRSystem_007_GetButtonIdNameFromEnum(struct w_iface *_this, uint32_t eButtonId) +{ + struct IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum_params params = + { + .u_iface = _this->u_iface, + .eButtonId = eButtonId, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetButtonIdNameFromEnum, ¶ms ); + return get_unix_buffer( params._ret ); +} + +const char * __thiscall winIVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum(struct w_iface *_this, uint32_t eAxisType) +{ + struct IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum_params params = + { + .u_iface = _this->u_iface, + .eAxisType = eAxisType, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum, ¶ms ); + return get_unix_buffer( params._ret ); +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_CaptureInputFocus(struct w_iface *_this) +{ + struct IVRSystem_IVRSystem_007_CaptureInputFocus_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_CaptureInputFocus, ¶ms ); + return params._ret; +} + +void __thiscall winIVRSystem_IVRSystem_007_ReleaseInputFocus(struct w_iface *_this) +{ + struct IVRSystem_IVRSystem_007_ReleaseInputFocus_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_ReleaseInputFocus, ¶ms ); +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess(struct w_iface *_this) +{ + struct IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRSystem_IVRSystem_007_DriverDebugRequest(struct w_iface *_this, uint32_t unDeviceIndex, const char *pchRequest, char *pchResponseBuffer, uint32_t unResponseBufferSize) +{ + struct IVRSystem_IVRSystem_007_DriverDebugRequest_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + .pchRequest = pchRequest, + .pchResponseBuffer = pchResponseBuffer, + .unResponseBufferSize = unResponseBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_DriverDebugRequest, ¶ms ); + return params._ret; +} + +uint32_t __thiscall winIVRSystem_IVRSystem_007_PerformFirmwareUpdate(struct w_iface *_this, uint32_t unDeviceIndex) +{ + struct IVRSystem_IVRSystem_007_PerformFirmwareUpdate_params params = + { + .u_iface = _this->u_iface, + .unDeviceIndex = unDeviceIndex, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_PerformFirmwareUpdate, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_IsDisplayOnDesktop(struct w_iface *_this) +{ + struct IVRSystem_IVRSystem_007_IsDisplayOnDesktop_params params = + { + .u_iface = _this->u_iface, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_IsDisplayOnDesktop, ¶ms ); + return params._ret; +} + +int8_t __thiscall winIVRSystem_IVRSystem_007_SetDisplayVisibility(struct w_iface *_this, int8_t bIsVisibleOnDesktop) +{ + struct IVRSystem_IVRSystem_007_SetDisplayVisibility_params params = + { + .u_iface = _this->u_iface, + .bIsVisibleOnDesktop = bIsVisibleOnDesktop, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_007_SetDisplayVisibility, ¶ms ); + return params._ret; +} + +extern vtable_ptr winIVRSystem_IVRSystem_007_vtable; + +DEFINE_RTTI_DATA0(winIVRSystem_IVRSystem_007, 0, ".?AVIVRSystem@@") + +__ASM_BLOCK_BEGIN(winIVRSystem_IVRSystem_007_vtables) + __ASM_VTABLE(winIVRSystem_IVRSystem_007, + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetWindowBounds) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetEyeOutputViewport) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetProjectionMatrix) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetProjectionRaw) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_ComputeDistortion) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetEyeToHeadTransform) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetTimeSinceLastVsync) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetD3D9AdapterIndex) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetDXGIOutputInfo) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_AttachToWindow) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_ResetSeatedZeroPose) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_ApplyTransform) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetTrackedDeviceClass) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_IsTrackedDeviceConnected) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetPropErrorNameFromEnum) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_PollNextEvent) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_PollNextEventWithPose) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetEventTypeNameFromEnum) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetHiddenAreaMesh) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetControllerState) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetControllerStateWithPose) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_TriggerHapticPulse) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetButtonIdNameFromEnum) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_CaptureInputFocus) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_ReleaseInputFocus) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_DriverDebugRequest) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_PerformFirmwareUpdate) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_IsDisplayOnDesktop) + VTABLE_ADD_FUNC(winIVRSystem_IVRSystem_007_SetDisplayVisibility) + ); +__ASM_BLOCK_END + +struct w_iface *create_winIVRSystem_IVRSystem_007( struct u_iface u_iface ) +{ + struct w_iface *r = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*r)); + TRACE("-> %p\n", r); + r->vtable = &winIVRSystem_IVRSystem_007_vtable; + r->u_iface = u_iface; + return r; +} + +void destroy_winIVRSystem_IVRSystem_007(struct w_iface *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + +struct w_iface *create_winIVRSystem_IVRSystem_007_FnTable( struct u_iface u_iface ) +{ + struct w_iface *r = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*r)); + struct thunk *thunks = alloc_thunks(43); + struct thunk **vtable = HeapAlloc(GetProcessHeap(), 0, 43 * sizeof(*vtable)); + int i; + + TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks); + init_thunk(&thunks[0], r, winIVRSystem_IVRSystem_007_GetWindowBounds, 4, FALSE, FALSE); + init_thunk(&thunks[1], r, winIVRSystem_IVRSystem_007_GetRecommendedRenderTargetSize, 2, FALSE, FALSE); + init_thunk(&thunks[2], r, winIVRSystem_IVRSystem_007_GetEyeOutputViewport, 5, FALSE, FALSE); + init_thunk(&thunks[3], r, winIVRSystem_IVRSystem_007_GetProjectionMatrix, 5, TRUE, TRUE); + init_thunk(&thunks[4], r, winIVRSystem_IVRSystem_007_GetProjectionRaw, 5, FALSE, FALSE); + init_thunk(&thunks[5], r, winIVRSystem_IVRSystem_007_ComputeDistortion, 4, TRUE, TRUE); + init_thunk(&thunks[6], r, winIVRSystem_IVRSystem_007_GetEyeToHeadTransform, 2, FALSE, FALSE); + init_thunk(&thunks[7], r, winIVRSystem_IVRSystem_007_GetTimeSinceLastVsync, 2, FALSE, FALSE); + init_thunk(&thunks[8], r, winIVRSystem_IVRSystem_007_GetD3D9AdapterIndex, 0, FALSE, FALSE); + init_thunk(&thunks[9], r, winIVRSystem_IVRSystem_007_GetDXGIOutputInfo, 2, FALSE, FALSE); + init_thunk(&thunks[10], r, winIVRSystem_IVRSystem_007_AttachToWindow, 1, FALSE, FALSE); + init_thunk(&thunks[11], r, winIVRSystem_IVRSystem_007_GetDeviceToAbsoluteTrackingPose, 4, TRUE, FALSE); + init_thunk(&thunks[12], r, winIVRSystem_IVRSystem_007_ResetSeatedZeroPose, 0, FALSE, FALSE); + init_thunk(&thunks[13], r, winIVRSystem_IVRSystem_007_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 1, FALSE, FALSE); + init_thunk(&thunks[14], r, winIVRSystem_IVRSystem_007_GetRawZeroPoseToStandingAbsoluteTrackingPose, 1, FALSE, FALSE); + init_thunk(&thunks[15], r, winIVRSystem_IVRSystem_007_GetSortedTrackedDeviceIndicesOfClass, 4, FALSE, FALSE); + init_thunk(&thunks[16], r, winIVRSystem_IVRSystem_007_GetTrackedDeviceActivityLevel, 1, FALSE, FALSE); + init_thunk(&thunks[17], r, winIVRSystem_IVRSystem_007_ApplyTransform, 3, FALSE, FALSE); + init_thunk(&thunks[18], r, winIVRSystem_IVRSystem_007_GetTrackedDeviceClass, 1, FALSE, FALSE); + init_thunk(&thunks[19], r, winIVRSystem_IVRSystem_007_IsTrackedDeviceConnected, 1, FALSE, FALSE); + init_thunk(&thunks[20], r, winIVRSystem_IVRSystem_007_GetBoolTrackedDeviceProperty, 3, FALSE, FALSE); + init_thunk(&thunks[21], r, winIVRSystem_IVRSystem_007_GetFloatTrackedDeviceProperty, 3, FALSE, FALSE); + init_thunk(&thunks[22], r, winIVRSystem_IVRSystem_007_GetInt32TrackedDeviceProperty, 3, FALSE, FALSE); + init_thunk(&thunks[23], r, winIVRSystem_IVRSystem_007_GetUint64TrackedDeviceProperty, 3, FALSE, FALSE); + init_thunk(&thunks[24], r, winIVRSystem_IVRSystem_007_GetMatrix34TrackedDeviceProperty, 4, FALSE, FALSE); + init_thunk(&thunks[25], r, winIVRSystem_IVRSystem_007_GetStringTrackedDeviceProperty, 5, FALSE, FALSE); + init_thunk(&thunks[26], r, winIVRSystem_IVRSystem_007_GetPropErrorNameFromEnum, 1, FALSE, FALSE); + init_thunk(&thunks[27], r, winIVRSystem_IVRSystem_007_PollNextEvent, 1, FALSE, FALSE); + init_thunk(&thunks[28], r, winIVRSystem_IVRSystem_007_PollNextEventWithPose, 3, FALSE, FALSE); + init_thunk(&thunks[29], r, winIVRSystem_IVRSystem_007_GetEventTypeNameFromEnum, 1, FALSE, FALSE); + init_thunk(&thunks[30], r, winIVRSystem_IVRSystem_007_GetHiddenAreaMesh, 2, FALSE, FALSE); + init_thunk(&thunks[31], r, winIVRSystem_IVRSystem_007_GetControllerState, 2, FALSE, FALSE); + init_thunk(&thunks[32], r, winIVRSystem_IVRSystem_007_GetControllerStateWithPose, 4, FALSE, FALSE); + init_thunk(&thunks[33], r, winIVRSystem_IVRSystem_007_TriggerHapticPulse, 3, FALSE, FALSE); + init_thunk(&thunks[34], r, winIVRSystem_IVRSystem_007_GetButtonIdNameFromEnum, 1, FALSE, FALSE); + init_thunk(&thunks[35], r, winIVRSystem_IVRSystem_007_GetControllerAxisTypeNameFromEnum, 1, FALSE, FALSE); + init_thunk(&thunks[36], r, winIVRSystem_IVRSystem_007_CaptureInputFocus, 0, FALSE, FALSE); + init_thunk(&thunks[37], r, winIVRSystem_IVRSystem_007_ReleaseInputFocus, 0, FALSE, FALSE); + init_thunk(&thunks[38], r, winIVRSystem_IVRSystem_007_IsInputFocusCapturedByAnotherProcess, 0, FALSE, FALSE); + init_thunk(&thunks[39], r, winIVRSystem_IVRSystem_007_DriverDebugRequest, 4, FALSE, FALSE); + init_thunk(&thunks[40], r, winIVRSystem_IVRSystem_007_PerformFirmwareUpdate, 1, FALSE, FALSE); + init_thunk(&thunks[41], r, winIVRSystem_IVRSystem_007_IsDisplayOnDesktop, 0, FALSE, FALSE); + init_thunk(&thunks[42], r, winIVRSystem_IVRSystem_007_SetDisplayVisibility, 1, FALSE, FALSE); + for (i = 0; i < 43; i++) + vtable[i] = &thunks[i]; + r->u_iface = u_iface; + r->vtable = (void *)vtable; + return r; +} + +void destroy_winIVRSystem_IVRSystem_007_FnTable(struct w_iface *object) +{ + TRACE("%p\n", object); + VirtualFree(object->vtable[0], 0, MEM_RELEASE); + HeapFree(GetProcessHeap(), 0, object->vtable); + HeapFree(GetProcessHeap(), 0, object); +} + DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize, 12) DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetProjectionMatrix, 24) DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetProjectionRaw, 24) @@ -12563,6 +13287,7 @@ void init_winIVRSystem_rtti( char *base ) init_winIVRSystem_IVRSystem_004_rtti( base ); init_winIVRSystem_IVRSystem_005_rtti( base ); init_winIVRSystem_IVRSystem_006_rtti( base ); + init_winIVRSystem_IVRSystem_007_rtti( base ); init_winIVRSystem_IVRSystem_009_rtti( base ); init_winIVRSystem_IVRSystem_010_rtti( base ); init_winIVRSystem_IVRSystem_011_rtti( base ); diff --git a/wine b/wine index eb63de9c3c0..b372d5f2542 160000 --- a/wine +++ b/wine @@ -1 +1 @@ -Subproject commit eb63de9c3c08bb222dd439e1cea3be4217d3d0f9 +Subproject commit b372d5f2542fd3756e0fbc3826b881f5a7900bf8 diff --git a/wineopenxr/loader_thunks.c b/wineopenxr/loader_thunks.c index ea05bbce7a6..253d84b9ffb 100644 --- a/wineopenxr/loader_thunks.c +++ b/wineopenxr/loader_thunks.c @@ -1438,6 +1438,18 @@ XrResult WINAPI xrDestroyWorldMeshDetectorML(XrWorldMeshDetectorML detector) return params.result; } +XrResult WINAPI xrDiscoverSpacesMETA(XrSession session, const XrSpaceDiscoveryInfoMETA *info, XrAsyncRequestIdFB *requestId) +{ + struct xrDiscoverSpacesMETA_params params; + NTSTATUS _status; + params.session = session; + params.info = info; + params.requestId = requestId; + _status = UNIX_CALL(xrDiscoverSpacesMETA, ¶ms); + assert(!_status && "xrDiscoverSpacesMETA"); + return params.result; +} + XrResult WINAPI xrDownloadSharedSpatialAnchorAsyncBD(XrSenseDataProviderBD provider, const XrSharedSpatialAnchorDownloadInfoBD *info, XrFutureEXT *future) { struct xrDownloadSharedSpatialAnchorAsyncBD_params params; @@ -3732,6 +3744,18 @@ XrResult WINAPI xrResumeSimultaneousHandsAndControllersTrackingMETA(XrSession se return params.result; } +XrResult WINAPI xrRetrieveSpaceDiscoveryResultsMETA(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceDiscoveryResultsMETA *results) +{ + struct xrRetrieveSpaceDiscoveryResultsMETA_params params; + NTSTATUS _status; + params.session = session; + params.requestId = requestId; + params.results = results; + _status = UNIX_CALL(xrRetrieveSpaceDiscoveryResultsMETA, ¶ms); + assert(!_status && "xrRetrieveSpaceDiscoveryResultsMETA"); + return params.result; +} + XrResult WINAPI xrRetrieveSpaceQueryResultsFB(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB *results) { struct xrRetrieveSpaceQueryResultsFB_params params; @@ -4640,6 +4664,7 @@ static const struct openxr_func xr_instance_dispatch_table[] = {"xrDestroyTriangleMeshFB", xrDestroyTriangleMeshFB}, {"xrDestroyVirtualKeyboardMETA", xrDestroyVirtualKeyboardMETA}, {"xrDestroyWorldMeshDetectorML", xrDestroyWorldMeshDetectorML}, + {"xrDiscoverSpacesMETA", xrDiscoverSpacesMETA}, {"xrDownloadSharedSpatialAnchorAsyncBD", xrDownloadSharedSpatialAnchorAsyncBD}, {"xrDownloadSharedSpatialAnchorCompleteBD", xrDownloadSharedSpatialAnchorCompleteBD}, {"xrEnableLocalizationEventsML", xrEnableLocalizationEventsML}, @@ -4838,6 +4863,7 @@ static const struct openxr_func xr_instance_dispatch_table[] = {"xrResetBodyTrackingCalibrationMETA", xrResetBodyTrackingCalibrationMETA}, {"xrResultToString", xrResultToString}, {"xrResumeSimultaneousHandsAndControllersTrackingMETA", xrResumeSimultaneousHandsAndControllersTrackingMETA}, + {"xrRetrieveSpaceDiscoveryResultsMETA", xrRetrieveSpaceDiscoveryResultsMETA}, {"xrRetrieveSpaceQueryResultsFB", xrRetrieveSpaceQueryResultsFB}, {"xrSaveSpaceFB", xrSaveSpaceFB}, {"xrSaveSpaceListFB", xrSaveSpaceListFB}, diff --git a/wineopenxr/loader_thunks.h b/wineopenxr/loader_thunks.h index 4bc7a35be8c..52aec91c897 100644 --- a/wineopenxr/loader_thunks.h +++ b/wineopenxr/loader_thunks.h @@ -25,6 +25,7 @@ enum unix_call { unix_init, + unix_is_available_instance_function, unix_xrAcquireEnvironmentDepthImageMETA, unix_xrAcquireSwapchainImage, unix_xrAllocateWorldMeshBufferML, @@ -159,6 +160,7 @@ enum unix_call unix_xrDestroyTriangleMeshFB, unix_xrDestroyVirtualKeyboardMETA, unix_xrDestroyWorldMeshDetectorML, + unix_xrDiscoverSpacesMETA, unix_xrDownloadSharedSpatialAnchorAsyncBD, unix_xrDownloadSharedSpatialAnchorCompleteBD, unix_xrEnableLocalizationEventsML, @@ -353,6 +355,7 @@ enum unix_call unix_xrResetBodyTrackingCalibrationMETA, unix_xrResultToString, unix_xrResumeSimultaneousHandsAndControllersTrackingMETA, + unix_xrRetrieveSpaceDiscoveryResultsMETA, unix_xrRetrieveSpaceQueryResultsFB, unix_xrSaveSpaceFB, unix_xrSaveSpaceListFB, @@ -1389,6 +1392,14 @@ struct xrDestroyWorldMeshDetectorML_params XrResult result; }; +struct xrDiscoverSpacesMETA_params +{ + XrSession session; + const XrSpaceDiscoveryInfoMETA *info; + XrAsyncRequestIdFB *requestId; + XrResult result; +}; + struct xrDownloadSharedSpatialAnchorAsyncBD_params { XrSenseDataProviderBD provider; @@ -2992,6 +3003,14 @@ struct xrResumeSimultaneousHandsAndControllersTrackingMETA_params XrResult result; }; +struct xrRetrieveSpaceDiscoveryResultsMETA_params +{ + XrSession session; + XrAsyncRequestIdFB requestId; + XrSpaceDiscoveryResultsMETA *results; + XrResult result; +}; + struct xrRetrieveSpaceQueryResultsFB_params { XrSession session; diff --git a/wineopenxr/make_openxr b/wineopenxr/make_openxr index 331a7ce9ef0..ff0d387dbb1 100755 --- a/wineopenxr/make_openxr +++ b/wineopenxr/make_openxr @@ -64,7 +64,7 @@ from enum import Enum LOGGER = logging.Logger("openxr") LOGGER.addHandler(logging.StreamHandler()) -XR_XML_VERSION = "1.1.51" +XR_XML_VERSION = "1.1.52" WINE_XR_VERSION = (1, 1) # Filenames to create. @@ -2666,6 +2666,7 @@ class XrGenerator(object): f.write("const unixlib_entry_t __wine_unix_call_funcs[] =\n") f.write("{\n") f.write(" init_openxr,\n") + f.write(" is_available_instance_function_openxr,\n") for xr_func in self.registry.funcs.values(): if not xr_func.needs_exposing(): continue @@ -2777,6 +2778,7 @@ class XrGenerator(object): f.write("enum unix_call\n") f.write("{\n") f.write(" unix_init,\n") + f.write(" unix_is_available_instance_function,\n") for xr_func in self.registry.funcs.values(): if not xr_func.needs_exposing(): continue diff --git a/wineopenxr/openxr.c b/wineopenxr/openxr.c index f73d4d77717..a37eceb0516 100644 --- a/wineopenxr/openxr.c +++ b/wineopenxr/openxr.c @@ -380,3 +380,30 @@ NTSTATUS init_openxr(void *args) { return STATUS_SUCCESS; } + +NTSTATUS is_available_instance_function_openxr(void *args) +{ + struct is_available_instance_function_openxr_params *params = args; + static const char *always_supported[] = + { + "xrGetD3D11GraphicsRequirementsKHR", + "xrGetD3D12GraphicsRequirementsKHR", + "xrConvertTimeToWin32PerformanceCounterKHR", + "xrConvertWin32PerformanceCounterToTimeKHR", + }; + wine_XrInstance *wine_instance = wine_instance_from_handle(params->instance); + PFN_xrVoidFunction fn; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(always_supported); ++i) + { + if (!strcmp(params->name, always_supported[i])) + { + params->ret = XR_SUCCESS; + return STATUS_SUCCESS; + } + } + + params->ret = xrGetInstanceProcAddr(wine_instance ? wine_instance->host_instance : NULL, params->name, &fn); + return STATUS_SUCCESS; +} diff --git a/wineopenxr/openxr_loader.c b/wineopenxr/openxr_loader.c index 0c330fd46be..2a3dcfdfb64 100644 --- a/wineopenxr/openxr_loader.c +++ b/wineopenxr/openxr_loader.c @@ -499,6 +499,7 @@ XrResult WINAPI xrDestroyInstance(XrInstance instance) { if (wine_instance->d3d12_device) { vkDestroyCommandPool(wine_instance->vk_device, wine_instance->vk_command_pool, NULL); + assert(!wine_instance->d3d12_device2 || (void *)wine_instance->d3d12_device2 == (void *)wine_instance->d3d12_device); wine_instance->d3d12_device->lpVtbl->Release(wine_instance->d3d12_device); wine_instance->d3d12_queue->lpVtbl->Release(wine_instance->d3d12_queue); } @@ -624,8 +625,13 @@ XrResult WINAPI xrCreateSession(XrInstance instance, const XrSessionCreateInfo * UINT32 queue_index; VkQueueFlags queue_flags; ID3D12DeviceExt1 *device_ext; - hr = ID3D12Device_QueryInterface(their_d3d12_binding->device, &IID_ID3D12DXVKInteropDevice, - (void **)&wine_instance->d3d12_device); + hr = ID3D12Device_QueryInterface(their_d3d12_binding->device, &IID_ID3D12DXVKInteropDevice2, + (void **)&wine_instance->d3d12_device2); + if (SUCCEEDED(hr)) + wine_instance->d3d12_device = (ID3D12DXVKInteropDevice *)wine_instance->d3d12_device2; + else + hr = ID3D12Device_QueryInterface(their_d3d12_binding->device, &IID_ID3D12DXVKInteropDevice, + (void **)&wine_instance->d3d12_device); if (FAILED(hr)) { WARN("Given ID3D12Device doesn't support ID3D12DXVKInteropDevice. Only vkd3d-proton is supported.\n"); return XR_ERROR_VALIDATION_FAILURE; @@ -1327,13 +1333,35 @@ XrResult WINAPI xrEnumerateSwapchainImages(XrSwapchain swapchain, return XR_SUCCESS; } +static void lock_d3d_queue(wine_XrInstance *instance, BOOL drain_queue) +{ + if (instance->dxvk_device) + { + if (drain_queue) + instance->dxvk_device->lpVtbl->FlushRenderingCommands(instance->dxvk_device); + instance->dxvk_device->lpVtbl->LockSubmissionQueue(instance->dxvk_device); + } + else if (!drain_queue && instance->d3d12_device2) + instance->d3d12_device2->lpVtbl->LockVulkanQueue(instance->d3d12_device2, instance->d3d12_queue); + else if (instance->d3d12_device) + instance->d3d12_device->lpVtbl->LockCommandQueue(instance->d3d12_device, instance->d3d12_queue); +} + +static void unlock_d3d_queue(wine_XrInstance *instance, BOOL drain_queue) +{ + if (instance->dxvk_device) + instance->dxvk_device->lpVtbl->ReleaseSubmissionQueue(instance->dxvk_device); + else if (!drain_queue && instance->d3d12_device2) + instance->d3d12_device2->lpVtbl->UnlockVulkanQueue(instance->d3d12_device2, instance->d3d12_queue); + else if (instance->d3d12_device) + instance->d3d12_device->lpVtbl->UnlockCommandQueue(instance->d3d12_device, instance->d3d12_queue); +} + XrResult WINAPI xrAcquireSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageAcquireInfo *acquireInfo, uint32_t *index) { wine_XrSwapchain *wine_swapchain = wine_swapchain_from_handle(swapchain); wine_XrInstance *wine_instance = wine_swapchain->session->instance; - IDXGIVkInteropDevice2 *dxvk_device; - ID3D12DXVKInteropDevice *d3d12_device; struct xrAcquireSwapchainImage_params params = { .swapchain = swapchain, .acquireInfo = acquireInfo, @@ -1344,25 +1372,19 @@ XrResult WINAPI xrAcquireSwapchainImage(XrSwapchain swapchain, TRACE("%p, %p, %p image count %d, acquired %d\n", swapchain, acquireInfo, index, wine_swapchain->image_count, wine_swapchain->acquired_count); - if ((dxvk_device = wine_instance->dxvk_device)) { - dxvk_device->lpVtbl->LockSubmissionQueue(dxvk_device); - } else if ((d3d12_device = wine_instance->d3d12_device)) { - if (wine_swapchain->acquired_count >= wine_swapchain->image_count) { + if (wine_instance->d3d12_device && wine_swapchain->acquired_count >= wine_swapchain->image_count) + { WARN("Application has acquired all images but still tries to acquire more.\n"); return XR_ERROR_CALL_ORDER_INVALID; - } - d3d12_device->lpVtbl->LockCommandQueue(d3d12_device, wine_instance->d3d12_queue); } + lock_d3d_queue(wine_instance, FALSE); + _status = UNIX_CALL(xrAcquireSwapchainImage, ¶ms); assert(!_status && "xrAcquireSwapchainImage"); - if (dxvk_device) { - dxvk_device->lpVtbl->ReleaseSubmissionQueue(dxvk_device); - return params.result; - } - - if (!d3d12_device) { + if (!wine_instance->d3d12_device) { + unlock_d3d_queue(wine_instance, FALSE); return params.result; } @@ -1376,6 +1398,7 @@ XrResult WINAPI xrAcquireSwapchainImage(XrSwapchain swapchain, vkQueueSubmit(wine_instance->vk_queue, 1, &submit_info, VK_NULL_HANDLE); } + if (!wine_swapchain->acquired[*index]) { uint32_t next = (wine_swapchain->acquired_start + wine_swapchain->acquired_count) % wine_swapchain->image_count; wine_swapchain->acquired[*index] = TRUE; @@ -1385,16 +1408,14 @@ XrResult WINAPI xrAcquireSwapchainImage(XrSwapchain swapchain, WARN("the application acquired the same image (index %d) again!?", *index); } } - d3d12_device->lpVtbl->UnlockCommandQueue(d3d12_device, wine_instance->d3d12_queue); + unlock_d3d_queue(wine_instance, FALSE); return params.result; } XrResult WINAPI xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo *releaseInfo) { wine_XrSwapchain *wine_swapchain = wine_swapchain_from_handle(swapchain); wine_XrInstance *wine_instance = wine_swapchain->session->instance; - IDXGIVkInteropDevice2 *dxvk_device; - ID3D12DXVKInteropDevice *d3d12_device = wine_instance->d3d12_device; - uint32_t index; + uint32_t index = ~0u; struct xrReleaseSwapchainImage_params params = { .swapchain = swapchain, .releaseInfo = releaseInfo, @@ -1403,16 +1424,16 @@ XrResult WINAPI xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchain TRACE("%p, %p\n", swapchain, releaseInfo); - if ((dxvk_device = wine_instance->dxvk_device)) { - dxvk_device->lpVtbl->LockSubmissionQueue(dxvk_device); - } else if (d3d12_device) { - if (wine_swapchain->acquired_count == 0) { - WARN("Application tried to release a swapchain image without having acquired it first.\n"); - return XR_ERROR_CALL_ORDER_INVALID; - } + if (wine_instance->d3d12_device && !wine_swapchain->acquired_count) + { + WARN("Application tried to release a swapchain image without having acquired it first.\n"); + return XR_ERROR_CALL_ORDER_INVALID; + } - d3d12_device->lpVtbl->LockCommandQueue(d3d12_device, wine_instance->d3d12_queue); + lock_d3d_queue(wine_instance, TRUE); + if (wine_instance->d3d12_device) + { index = wine_swapchain->acquired_indices[wine_swapchain->acquired_start]; if (wine_swapchain->cmd_release[index] != VK_NULL_HANDLE) { VkSubmitInfo submit_info = { @@ -1427,11 +1448,8 @@ XrResult WINAPI xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchain _status = UNIX_CALL(xrReleaseSwapchainImage, ¶ms); assert(!_status && "xrReleaseSwapchainImage"); - if (dxvk_device) { - dxvk_device->lpVtbl->ReleaseSubmissionQueue(dxvk_device); - return params.result; - } - if (!d3d12_device) { + if (!wine_instance->d3d12_device) { + unlock_d3d_queue(wine_instance, TRUE); return params.result; } @@ -1449,7 +1467,7 @@ XrResult WINAPI xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchain wine_swapchain->acquired_start = (wine_swapchain->acquired_start + 1) % wine_swapchain->image_count; wine_swapchain->acquired_count -= 1; } - d3d12_device->lpVtbl->UnlockCommandQueue(d3d12_device, wine_instance->d3d12_queue); + unlock_d3d_queue(wine_instance, TRUE); return params.result; } @@ -1459,26 +1477,14 @@ XrResult WINAPI xrBeginFrame(XrSession session, const XrFrameBeginInfo *frameBeg .session = session, .frameBeginInfo = frameBeginInfo, }; - IDXGIVkInteropDevice2 *dxvk_device; - ID3D12DXVKInteropDevice *d3d12_device; NTSTATUS _status; TRACE("%p, %p\n", session, frameBeginInfo); - if ((dxvk_device = wine_session->instance->dxvk_device)) { - dxvk_device->lpVtbl->LockSubmissionQueue(dxvk_device); - } else if ((d3d12_device = wine_session->instance->d3d12_device)) { - d3d12_device->lpVtbl->LockCommandQueue(d3d12_device, wine_session->instance->d3d12_queue); - } - + lock_d3d_queue(wine_session->instance, FALSE); _status = UNIX_CALL(xrBeginFrame, ¶ms); assert(!_status && "xrBeginFrame"); - - if (dxvk_device) { - dxvk_device->lpVtbl->ReleaseSubmissionQueue(dxvk_device); - } else if (d3d12_device) { - d3d12_device->lpVtbl->UnlockCommandQueue(d3d12_device, wine_session->instance->d3d12_queue); - } + unlock_d3d_queue(wine_session->instance, FALSE); return params.result; } @@ -1622,8 +1628,6 @@ XrResult WINAPI xrEndFrame(XrSession session, const XrFrameEndInfo *frameEndInfo .session = session, .frameEndInfo = &our_frameEndInfo, }; - IDXGIVkInteropDevice2 *dxvk_device; - ID3D12DXVKInteropDevice *d3d12_device; uint32_t i, view_idx = 0, view_info_idx = 0; NTSTATUS _status; @@ -1646,24 +1650,11 @@ XrResult WINAPI xrEndFrame(XrSession session, const XrFrameEndInfo *frameEndInfo our_frameEndInfo = *frameEndInfo; our_frameEndInfo.layers = (const XrCompositionLayerBaseHeader *const *)wine_session->composition_layer_ptrs; - if ((dxvk_device = wine_session->instance->dxvk_device)) { - TRACE("Locking submission queue.\n"); - dxvk_device->lpVtbl->FlushRenderingCommands(dxvk_device); - dxvk_device->lpVtbl->LockSubmissionQueue(dxvk_device); - } else if ((d3d12_device = wine_session->instance->d3d12_device)) { - TRACE("Locking vkd3d-proton submission queue.\n"); - d3d12_device->lpVtbl->LockCommandQueue(d3d12_device, wine_session->instance->d3d12_queue); - } - + lock_d3d_queue(wine_session->instance, FALSE); _status = UNIX_CALL(xrEndFrame, ¶ms); assert(!_status && "xrEndFrame"); - if (dxvk_device) { - dxvk_device->lpVtbl->ReleaseSubmissionQueue(dxvk_device); - } else if (d3d12_device) { - d3d12_device->lpVtbl->UnlockCommandQueue(d3d12_device, wine_session->instance->d3d12_queue); - } - + unlock_d3d_queue(wine_session->instance, FALSE); return params.result; } @@ -1792,7 +1783,7 @@ XrResult WINAPI xrCreateVulkanInstanceKHR(XrInstance instance, vulkan_create_info = *createInfo->vulkanCreateInfo; callback.sType = VK_STRUCTURE_TYPE_CREATE_INFO_WINE_INSTANCE_CALLBACK; - callback.native_create_callback = (PFN_native_vkCreateInstance)g_vk_create_instance_callback; + callback.native_create_callback = g_vk_create_instance_callback; callback.context = &context; callback.pNext = vulkan_create_info.pNext; vulkan_create_info.pNext = &callback; @@ -1827,7 +1818,7 @@ XrResult WINAPI xrCreateVulkanDeviceKHR(XrInstance instance, vulkan_create_info = *createInfo->vulkanCreateInfo; callback.sType = VK_STRUCTURE_TYPE_CREATE_INFO_WINE_DEVICE_CALLBACK; - callback.native_create_callback = (PFN_native_vkCreateDevice)g_vk_create_device_callback; + callback.native_create_callback = g_vk_create_device_callback; callback.context = &context; callback.pNext = vulkan_create_info.pNext; vulkan_create_info.pNext = &callback; @@ -1844,8 +1835,24 @@ XrResult WINAPI xrCreateVulkanDeviceKHR(XrInstance instance, } XrResult WINAPI xrGetInstanceProcAddr(XrInstance instance, const char *fn_name, PFN_xrVoidFunction *out_fn) { + struct is_available_instance_function_openxr_params params = + { + .instance = instance, + .name = fn_name, + }; + NTSTATUS _status; + TRACE("%s\n", fn_name); + _status = UNIX_CALL(is_available_instance_function, ¶ms); + assert(!_status && "is_available_instance_function"); + + if (params.ret) + { + WARN("is_available_instance_function failed for %s, ret %d\n", fn_name, params.ret); + return params.ret; + } + *out_fn = wine_xr_get_instance_proc_addr(fn_name); if (!*out_fn) { WARN("Unable to find requested function: %s\n", fn_name); diff --git a/wineopenxr/openxr_loader.h b/wineopenxr/openxr_loader.h index 7b5c720d7c1..6ff476eb0b6 100644 --- a/wineopenxr/openxr_loader.h +++ b/wineopenxr/openxr_loader.h @@ -30,6 +30,7 @@ static const char WINE_VULKAN_DEVICE_VARIABLE[] = "__WINE_OPENXR_VK_DEVICE_EXTEN struct IDXGIVkInteropDevice2; typedef struct IDXGIVkInteropDevice2 IDXGIVkInteropDevice2; typedef struct ID3D12DXVKInteropDevice ID3D12DXVKInteropDevice; +typedef struct ID3D12DXVKInteropDevice2 ID3D12DXVKInteropDevice2; struct vk_create_callback_context { XrInstance wine_instance; @@ -43,6 +44,12 @@ struct init_openxr_params { UINT64 create_device_callback; }; +struct is_available_instance_function_openxr_params { + XrInstance instance; + const char *name; + XrResult ret; +}; + typedef struct { XrInstance host_instance; VkInstance vk_instance; @@ -52,6 +59,7 @@ typedef struct { IDXGIVkInteropDevice2 *dxvk_device; ID3D12DXVKInteropDevice *d3d12_device; + ID3D12DXVKInteropDevice2 *d3d12_device2; ID3D12CommandQueue *d3d12_queue; VkDevice vk_device; diff --git a/wineopenxr/openxr_private.h b/wineopenxr/openxr_private.h index 647b70837ac..18e064a77a1 100644 --- a/wineopenxr/openxr_private.h +++ b/wineopenxr/openxr_private.h @@ -44,6 +44,7 @@ static inline void *conversion_context_alloc(struct conversion_context *pool, si } NTSTATUS init_openxr(void *args); +NTSTATUS is_available_instance_function_openxr(void *args); NTSTATUS get_vk_create_callback_ptrs(void *args); extern void register_dispatchable_handle(uint64_t handle, struct openxr_instance_funcs *funcs); extern void unregister_dispatchable_handle(uint64_t handle); diff --git a/wineopenxr/openxr_thunks.c b/wineopenxr/openxr_thunks.c index c0fd7b8e440..4773fbb692c 100644 --- a/wineopenxr/openxr_thunks.c +++ b/wineopenxr/openxr_thunks.c @@ -1685,6 +1685,18 @@ static NTSTATUS thunk64_xrDestroyWorldMeshDetectorML(void *args) } #endif /* _WIN64 */ +#ifdef _WIN64 +static NTSTATUS thunk64_xrDiscoverSpacesMETA(void *args) +{ + struct xrDiscoverSpacesMETA_params *params = args; + + TRACE("%p, %p, %p\n", params->session, params->info, params->requestId); + + params->result = g_xr_host_instance_dispatch_table.p_xrDiscoverSpacesMETA(wine_session_from_handle(params->session)->host_session, params->info, params->requestId); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + #ifdef _WIN64 static NTSTATUS thunk64_xrDownloadSharedSpatialAnchorAsyncBD(void *args) { @@ -4013,6 +4025,18 @@ static NTSTATUS thunk64_xrResumeSimultaneousHandsAndControllersTrackingMETA(void } #endif /* _WIN64 */ +#ifdef _WIN64 +static NTSTATUS thunk64_xrRetrieveSpaceDiscoveryResultsMETA(void *args) +{ + struct xrRetrieveSpaceDiscoveryResultsMETA_params *params = args; + + TRACE("%p, 0x%s, %p\n", params->session, wine_dbgstr_longlong(params->requestId), params->results); + + params->result = g_xr_host_instance_dispatch_table.p_xrRetrieveSpaceDiscoveryResultsMETA(wine_session_from_handle(params->session)->host_session, params->requestId, params->results); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + #ifdef _WIN64 static NTSTATUS thunk64_xrRetrieveSpaceQueryResultsFB(void *args) { @@ -4914,6 +4938,7 @@ static const char * const xr_extensions[] = "XR_KHR_composition_layer_equirect", "XR_KHR_composition_layer_equirect2", "XR_KHR_extended_struct_name_lengths", + "XR_KHR_generic_controller", "XR_KHR_locate_spaces", "XR_KHR_maintenance1", "XR_KHR_opengl_enable", @@ -4940,6 +4965,7 @@ static const char * const xr_extensions[] = "XR_META_performance_metrics", "XR_META_recommended_layer_resolution", "XR_META_simultaneous_hands_and_controllers", + "XR_META_spatial_entity_discovery", "XR_META_spatial_entity_group_sharing", "XR_META_spatial_entity_mesh", "XR_META_spatial_entity_persistence", @@ -5017,6 +5043,7 @@ BOOL wine_xr_is_type_wrapped(XrObjectType type) const unixlib_entry_t __wine_unix_call_funcs[] = { init_openxr, + is_available_instance_function_openxr, thunk64_xrAcquireEnvironmentDepthImageMETA, thunk64_xrAcquireSwapchainImage, thunk64_xrAllocateWorldMeshBufferML, @@ -5151,6 +5178,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_xrDestroyTriangleMeshFB, thunk64_xrDestroyVirtualKeyboardMETA, thunk64_xrDestroyWorldMeshDetectorML, + thunk64_xrDiscoverSpacesMETA, thunk64_xrDownloadSharedSpatialAnchorAsyncBD, thunk64_xrDownloadSharedSpatialAnchorCompleteBD, thunk64_xrEnableLocalizationEventsML, @@ -5345,6 +5373,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_xrResetBodyTrackingCalibrationMETA, thunk64_xrResultToString, thunk64_xrResumeSimultaneousHandsAndControllersTrackingMETA, + thunk64_xrRetrieveSpaceDiscoveryResultsMETA, thunk64_xrRetrieveSpaceQueryResultsFB, thunk64_xrSaveSpaceFB, thunk64_xrSaveSpaceListFB, diff --git a/wineopenxr/openxr_thunks.h b/wineopenxr/openxr_thunks.h index ef753ffb4e1..f487f96df6a 100644 --- a/wineopenxr/openxr_thunks.h +++ b/wineopenxr/openxr_thunks.h @@ -172,6 +172,7 @@ struct openxr_instance_funcs XrResult (*p_xrDestroyTriangleMeshFB)(XrTriangleMeshFB); XrResult (*p_xrDestroyVirtualKeyboardMETA)(XrVirtualKeyboardMETA); XrResult (*p_xrDestroyWorldMeshDetectorML)(XrWorldMeshDetectorML); + XrResult (*p_xrDiscoverSpacesMETA)(XrSession, const XrSpaceDiscoveryInfoMETA *, XrAsyncRequestIdFB *); XrResult (*p_xrDownloadSharedSpatialAnchorAsyncBD)(XrSenseDataProviderBD, const XrSharedSpatialAnchorDownloadInfoBD *, XrFutureEXT *); XrResult (*p_xrDownloadSharedSpatialAnchorCompleteBD)(XrSenseDataProviderBD, XrFutureEXT, XrFutureCompletionEXT *); XrResult (*p_xrEnableLocalizationEventsML)(XrSession, const XrLocalizationEnableEventsInfoML *); @@ -366,6 +367,7 @@ struct openxr_instance_funcs XrResult (*p_xrResetBodyTrackingCalibrationMETA)(XrBodyTrackerFB); XrResult (*p_xrResultToString)(XrInstance, XrResult, char[]); XrResult (*p_xrResumeSimultaneousHandsAndControllersTrackingMETA)(XrSession, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA *); + XrResult (*p_xrRetrieveSpaceDiscoveryResultsMETA)(XrSession, XrAsyncRequestIdFB, XrSpaceDiscoveryResultsMETA *); XrResult (*p_xrRetrieveSpaceQueryResultsFB)(XrSession, XrAsyncRequestIdFB, XrSpaceQueryResultsFB *); XrResult (*p_xrSaveSpaceFB)(XrSession, const XrSpaceSaveInfoFB *, XrAsyncRequestIdFB *); XrResult (*p_xrSaveSpaceListFB)(XrSession, const XrSpaceListSaveInfoFB *, XrAsyncRequestIdFB *); @@ -571,6 +573,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrDestroyTriangleMeshFB) \ USE_XR_FUNC(xrDestroyVirtualKeyboardMETA) \ USE_XR_FUNC(xrDestroyWorldMeshDetectorML) \ + USE_XR_FUNC(xrDiscoverSpacesMETA) \ USE_XR_FUNC(xrDownloadSharedSpatialAnchorAsyncBD) \ USE_XR_FUNC(xrDownloadSharedSpatialAnchorCompleteBD) \ USE_XR_FUNC(xrEnableLocalizationEventsML) \ @@ -765,6 +768,7 @@ struct openxr_instance_funcs USE_XR_FUNC(xrResetBodyTrackingCalibrationMETA) \ USE_XR_FUNC(xrResultToString) \ USE_XR_FUNC(xrResumeSimultaneousHandsAndControllersTrackingMETA) \ + USE_XR_FUNC(xrRetrieveSpaceDiscoveryResultsMETA) \ USE_XR_FUNC(xrRetrieveSpaceQueryResultsFB) \ USE_XR_FUNC(xrSaveSpaceFB) \ USE_XR_FUNC(xrSaveSpaceListFB) \ diff --git a/wineopenxr/vkd3d-proton-interop.h b/wineopenxr/vkd3d-proton-interop.h index 27a26e86529..d948090ba80 100644 --- a/wineopenxr/vkd3d-proton-interop.h +++ b/wineopenxr/vkd3d-proton-interop.h @@ -19,6 +19,11 @@ typedef interface ID3D12DeviceExt1 ID3D12DeviceExt1; typedef interface ID3D12DXVKInteropDevice ID3D12DXVKInteropDevice; #endif +#ifndef __ID3D12DXVKInteropDevice2_FWD_DEFINED__ +#define __ID3D12DXVKInteropDevice2_FWD_DEFINED__ +typedef interface ID3D12DXVKInteropDevice2 ID3D12DXVKInteropDevice2; +#endif + /***************************************************************************** * ID3D12DeviceExt1 interface */ @@ -187,4 +192,117 @@ typedef struct ID3D12DXVKInteropDeviceVtbl { interface ID3D12DXVKInteropDevice { CONST_VTBL ID3D12DXVKInteropDeviceVtbl* lpVtbl; }; + +DEFINE_GUID(IID_ID3D12DXVKInteropDevice2, 0x90ecf26e, 0xb212, 0x43f5, 0xb6,0x2a, 0x82,0x5a,0xd7,0xb1,0x38,0x5e); +typedef struct ID3D12DXVKInteropDevice2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ID3D12DXVKInteropDevice2 *This, + REFIID riid, + void **object); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ID3D12DXVKInteropDevice2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ID3D12DXVKInteropDevice2 *This); + + /*** ID3D12DXVKInteropDevice methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDXGIAdapter)( + ID3D12DXVKInteropDevice2 *This, + REFIID iid, + void **object); + + HRESULT (STDMETHODCALLTYPE *GetInstanceExtensions)( + ID3D12DXVKInteropDevice2 *This, + UINT *extension_count, + const char **extensions); + + HRESULT (STDMETHODCALLTYPE *GetDeviceExtensions)( + ID3D12DXVKInteropDevice2 *This, + UINT *extension_count, + const char **extensions); + + HRESULT (STDMETHODCALLTYPE *GetDeviceFeatures)( + ID3D12DXVKInteropDevice2 *This, + const VkPhysicalDeviceFeatures2 **features); + + HRESULT (STDMETHODCALLTYPE *GetVulkanHandles)( + ID3D12DXVKInteropDevice2 *This, + VkInstance *vk_instance, + VkPhysicalDevice *vk_physical_device, + VkDevice *vk_device); + + HRESULT (STDMETHODCALLTYPE *GetVulkanQueueInfo)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue, + VkQueue *vk_queue, + UINT32 *vk_queue_family); + + void (STDMETHODCALLTYPE *GetVulkanImageLayout)( + ID3D12DXVKInteropDevice2 *This, + ID3D12Resource *resource, + D3D12_RESOURCE_STATES state, + VkImageLayout *vk_layout); + + HRESULT (STDMETHODCALLTYPE *GetVulkanResourceInfo)( + ID3D12DXVKInteropDevice2 *This, + ID3D12Resource *resource, + UINT64 *vk_handle, + UINT64 *buffer_offset); + + HRESULT (STDMETHODCALLTYPE *LockCommandQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + HRESULT (STDMETHODCALLTYPE *UnlockCommandQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + /*** ID3D12DXVKInteropDevice1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetVulkanResourceInfo1)( + ID3D12DXVKInteropDevice2 *This, + ID3D12Resource *resource, + UINT64 *vk_handle, + UINT64 *buffer_offset, + VkFormat *format); + + HRESULT (STDMETHODCALLTYPE *CreateInteropCommandQueue)( + ID3D12DXVKInteropDevice2 *This, + const D3D12_COMMAND_QUEUE_DESC *pDesc, + UINT32 vk_queue_family_index, + ID3D12CommandQueue **ppQueue); + + HRESULT (STDMETHODCALLTYPE *CreateInteropCommandAllocator)( + ID3D12DXVKInteropDevice2 *This, + D3D12_COMMAND_LIST_TYPE type, + UINT32 vk_queue_family_index, + ID3D12CommandAllocator **ppAllocator); + + HRESULT (STDMETHODCALLTYPE *BeginVkCommandBufferInterop)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandList *pCmdList, + VkCommandBuffer *pCommandBuffer); + + HRESULT (STDMETHODCALLTYPE *EndVkCommandBufferInterop)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandList *pCmdList); + + /*** ID3D12DXVKInteropDevice2 methods ***/ + HRESULT (STDMETHODCALLTYPE *LockVulkanQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + HRESULT (STDMETHODCALLTYPE *UnlockVulkanQueue)( + ID3D12DXVKInteropDevice2 *This, + ID3D12CommandQueue *queue); + + END_INTERFACE +} ID3D12DXVKInteropDevice2Vtbl; + +interface ID3D12DXVKInteropDevice2 { + CONST_VTBL ID3D12DXVKInteropDevice2Vtbl* lpVtbl; +}; #endif diff --git a/wineopenxr/wineopenxr.h b/wineopenxr/wineopenxr.h index ea5d5f9cacf..412cc7cd11d 100644 --- a/wineopenxr/wineopenxr.h +++ b/wineopenxr/wineopenxr.h @@ -323,6 +323,8 @@ #define XR_FB_SPATIAL_ENTITY_USER_EXTENSION_NAME "XR_FB_spatial_entity_user" #define XR_META_headset_id_SPEC_VERSION 2 #define XR_META_HEADSET_ID_EXTENSION_NAME "XR_META_headset_id" +#define XR_META_spatial_entity_discovery_SPEC_VERSION 1 +#define XR_META_SPATIAL_ENTITY_DISCOVERY_EXTENSION_NAME "XR_META_spatial_entity_discovery" #define XR_META_hand_tracking_microgestures_SPEC_VERSION 1 #define XR_META_HAND_TRACKING_MICROGESTURES_EXTENSION_NAME "XR_META_hand_tracking_microgestures" #define XR_META_recommended_layer_resolution_SPEC_VERSION 1 @@ -359,7 +361,7 @@ #define XR_MAX_RENDER_MODEL_ASSET_NODE_NAME_SIZE_EXT 64 #define XR_EXT_interaction_render_model_SPEC_VERSION 1 #define XR_EXT_INTERACTION_RENDER_MODEL_EXTENSION_NAME "XR_EXT_interaction_render_model" -#define XR_EXT_hand_interaction_SPEC_VERSION 1 +#define XR_EXT_hand_interaction_SPEC_VERSION 2 #define XR_EXT_HAND_INTERACTION_EXTENSION_NAME "XR_EXT_hand_interaction" #define XR_QCOM_tracking_optimization_settings_SPEC_VERSION 1 #define XR_QCOM_TRACKING_OPTIMIZATION_SETTINGS_EXTENSION_NAME "XR_QCOM_tracking_optimization_settings" @@ -400,7 +402,7 @@ #define XR_EXT_PLANE_DETECTION_EXTENSION_NAME "XR_EXT_plane_detection" #define XR_OPPO_controller_interaction_SPEC_VERSION 1 #define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_OPPO_controller_interaction" -#define XR_ANDROID_trackables_SPEC_VERSION 1 +#define XR_ANDROID_trackables_SPEC_VERSION 2 #define XR_ANDROID_TRACKABLES_EXTENSION_NAME "XR_ANDROID_trackables" #define XR_ANDROID_device_anchor_persistence_SPEC_VERSION 1 #define XR_ANDROID_DEVICE_ANCHOR_PERSISTENCE_EXTENSION_NAME "XR_ANDROID_device_anchor_persistence" @@ -440,6 +442,8 @@ #define XR_ANDROID_TRACKABLES_MARKER_EXTENSION_NAME "XR_ANDROID_trackables_marker" #define XR_KHR_maintenance1_SPEC_VERSION 1 #define XR_KHR_MAINTENANCE1_EXTENSION_NAME "XR_KHR_maintenance1" +#define XR_KHR_generic_controller_SPEC_VERSION 1 +#define XR_KHR_GENERIC_CONTROLLER_EXTENSION_NAME "XR_KHR_generic_controller" #define XR_EXT_spatial_entity_SPEC_VERSION 1 #define XR_EXT_SPATIAL_ENTITY_EXTENSION_NAME "XR_EXT_spatial_entity" #define XR_EXT_spatial_plane_tracking_SPEC_VERSION 1 @@ -468,7 +472,7 @@ #define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 51) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 52) #define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION)) @@ -2894,6 +2898,14 @@ typedef enum XrStructureType XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB = 1000238001, XR_TYPE_SPACE_USER_CREATE_INFO_FB = 1000241001, XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META = 1000245000, + XR_TYPE_SYSTEM_SPACE_DISCOVERY_PROPERTIES_META = 1000247000, + XR_TYPE_SPACE_DISCOVERY_INFO_META = 1000247001, + XR_TYPE_SPACE_FILTER_UUID_META = 1000247003, + XR_TYPE_SPACE_FILTER_COMPONENT_META = 1000247004, + XR_TYPE_SPACE_DISCOVERY_RESULT_META = 1000247005, + XR_TYPE_SPACE_DISCOVERY_RESULTS_META = 1000247006, + XR_TYPE_EVENT_DATA_SPACE_DISCOVERY_RESULTS_AVAILABLE_META = 1000247007, + XR_TYPE_EVENT_DATA_SPACE_DISCOVERY_COMPLETE_META = 1000247008, XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META = 1000254000, XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META = 1000254001, XR_TYPE_SYSTEM_SPACE_PERSISTENCE_PROPERTIES_META = 1000259000, @@ -3949,6 +3961,21 @@ typedef struct XrEventDataShareSpacesCompleteMETA XrResult result; } XrEventDataShareSpacesCompleteMETA; +typedef struct XrEventDataSpaceDiscoveryCompleteMETA +{ + XrStructureType type; + const void *next; + XrAsyncRequestIdFB requestId; + XrResult result; +} XrEventDataSpaceDiscoveryCompleteMETA; + +typedef struct XrEventDataSpaceDiscoveryResultsAvailableMETA +{ + XrStructureType type; + const void *next; + XrAsyncRequestIdFB requestId; +} XrEventDataSpaceDiscoveryResultsAvailableMETA; + typedef struct XrEventDataSpaceListSaveCompleteFB { XrStructureType type; @@ -5474,6 +5501,19 @@ typedef struct XrSpaceEraseInfoFB XrSpaceStorageLocationFB location; } XrSpaceEraseInfoFB; +typedef struct XrSpaceFilterBaseHeaderMETA +{ + XrStructureType type; + const void *next; +} XrSpaceFilterBaseHeaderMETA; + +typedef struct XrSpaceFilterComponentMETA +{ + XrStructureType type; + const void *next; + XrSpaceComponentTypeFB componentType; +} XrSpaceFilterComponentMETA; + typedef struct XrSpaceFilterInfoBaseHeaderFB { XrStructureType type; @@ -6295,6 +6335,13 @@ typedef struct XrSystemSimultaneousHandsAndControllersPropertiesMETA XrBool32 supportsSimultaneousHandsAndControllers; } XrSystemSimultaneousHandsAndControllersPropertiesMETA; +typedef struct XrSystemSpaceDiscoveryPropertiesMETA +{ + XrStructureType type; + const void *next; + XrBool32 supportsSpaceDiscovery; +} XrSystemSpaceDiscoveryPropertiesMETA; + typedef struct XrSystemSpacePersistencePropertiesMETA { XrStructureType type; @@ -7242,6 +7289,37 @@ typedef struct XrSpaceContainerFB XrUuidEXT *uuids; } XrSpaceContainerFB; +typedef struct XrSpaceDiscoveryInfoMETA +{ + XrStructureType type; + const void *next; + uint32_t filterCount; + const XrSpaceFilterBaseHeaderMETA * const *filters; +} XrSpaceDiscoveryInfoMETA; + +typedef struct XrSpaceDiscoveryResultMETA +{ + XrSpace space; + XrUuidEXT uuid; +} XrSpaceDiscoveryResultMETA; + +typedef struct XrSpaceDiscoveryResultsMETA +{ + XrStructureType type; + const void *next; + uint32_t resultCapacityInput; + uint32_t resultCountOutput; + XrSpaceDiscoveryResultMETA *results; +} XrSpaceDiscoveryResultsMETA; + +typedef struct XrSpaceFilterUuidMETA +{ + XrStructureType type; + const void *next; + uint32_t uuidCount; + const XrUuidEXT *uuids; +} XrSpaceFilterUuidMETA; + typedef struct XrSpaceGroupUuidFilterInfoMETA { XrStructureType type; @@ -7701,7 +7779,7 @@ typedef struct XrTrackablePlaneANDROID XrTrackableANDROID subsumedByPlane; XrTime lastUpdatedTime; uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; + uint32_t *vertexCountOutput; XrVector2f *vertices; } XrTrackablePlaneANDROID; @@ -8508,6 +8586,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrDestroyTrackableTrackerANDROID)(XrTrackableTr typedef XrResult (XRAPI_PTR *PFN_xrDestroyTriangleMeshFB)(XrTriangleMeshFB); typedef XrResult (XRAPI_PTR *PFN_xrDestroyVirtualKeyboardMETA)(XrVirtualKeyboardMETA); typedef XrResult (XRAPI_PTR *PFN_xrDestroyWorldMeshDetectorML)(XrWorldMeshDetectorML); +typedef XrResult (XRAPI_PTR *PFN_xrDiscoverSpacesMETA)(XrSession, const XrSpaceDiscoveryInfoMETA *, XrAsyncRequestIdFB *); typedef XrResult (XRAPI_PTR *PFN_xrDownloadSharedSpatialAnchorAsyncBD)(XrSenseDataProviderBD, const XrSharedSpatialAnchorDownloadInfoBD *, XrFutureEXT *); typedef XrResult (XRAPI_PTR *PFN_xrDownloadSharedSpatialAnchorCompleteBD)(XrSenseDataProviderBD, XrFutureEXT, XrFutureCompletionEXT *); typedef XrResult (XRAPI_PTR *PFN_xrEnableLocalizationEventsML)(XrSession, const XrLocalizationEnableEventsInfoML *); @@ -8707,6 +8786,7 @@ typedef XrResult (XRAPI_PTR *PFN_xrRequestWorldMeshStateCompleteML)(XrWorldMeshD typedef XrResult (XRAPI_PTR *PFN_xrResetBodyTrackingCalibrationMETA)(XrBodyTrackerFB); typedef XrResult (XRAPI_PTR *PFN_xrResultToString)(XrInstance, XrResult, char[]); typedef XrResult (XRAPI_PTR *PFN_xrResumeSimultaneousHandsAndControllersTrackingMETA)(XrSession, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA *); +typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceDiscoveryResultsMETA)(XrSession, XrAsyncRequestIdFB, XrSpaceDiscoveryResultsMETA *); typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceQueryResultsFB)(XrSession, XrAsyncRequestIdFB, XrSpaceQueryResultsFB *); typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceFB)(XrSession, const XrSpaceSaveInfoFB *, XrAsyncRequestIdFB *); typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceListFB)(XrSession, const XrSpaceListSaveInfoFB *, XrAsyncRequestIdFB *); @@ -8914,6 +8994,7 @@ XrResult XRAPI_CALL xrDestroyTrackableTrackerANDROID(XrTrackableTrackerANDROID t XrResult XRAPI_CALL xrDestroyTriangleMeshFB(XrTriangleMeshFB mesh); XrResult XRAPI_CALL xrDestroyVirtualKeyboardMETA(XrVirtualKeyboardMETA keyboard); XrResult XRAPI_CALL xrDestroyWorldMeshDetectorML(XrWorldMeshDetectorML detector); +XrResult XRAPI_CALL xrDiscoverSpacesMETA(XrSession session, const XrSpaceDiscoveryInfoMETA *info, XrAsyncRequestIdFB *requestId); XrResult XRAPI_CALL xrDownloadSharedSpatialAnchorAsyncBD(XrSenseDataProviderBD provider, const XrSharedSpatialAnchorDownloadInfoBD *info, XrFutureEXT *future); XrResult XRAPI_CALL xrDownloadSharedSpatialAnchorCompleteBD(XrSenseDataProviderBD provider, XrFutureEXT future, XrFutureCompletionEXT *completion); XrResult XRAPI_CALL xrEnableLocalizationEventsML(XrSession session, const XrLocalizationEnableEventsInfoML *info); @@ -9113,6 +9194,7 @@ XrResult XRAPI_CALL xrRequestWorldMeshStateCompleteML(XrWorldMeshDetectorML dete XrResult XRAPI_CALL xrResetBodyTrackingCalibrationMETA(XrBodyTrackerFB bodyTracker); XrResult XRAPI_CALL xrResultToString(XrInstance instance, XrResult value, char buffer[]); XrResult XRAPI_CALL xrResumeSimultaneousHandsAndControllersTrackingMETA(XrSession session, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA *resumeInfo); +XrResult XRAPI_CALL xrRetrieveSpaceDiscoveryResultsMETA(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceDiscoveryResultsMETA *results); XrResult XRAPI_CALL xrRetrieveSpaceQueryResultsFB(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB *results); XrResult XRAPI_CALL xrSaveSpaceFB(XrSession session, const XrSpaceSaveInfoFB *info, XrAsyncRequestIdFB *requestId); XrResult XRAPI_CALL xrSaveSpaceListFB(XrSession session, const XrSpaceListSaveInfoFB *info, XrAsyncRequestIdFB *requestId); diff --git a/wineopenxr/wineopenxr.json b/wineopenxr/wineopenxr.json index 735fc319440..8d12c7f044c 100644 --- a/wineopenxr/wineopenxr.json +++ b/wineopenxr/wineopenxr.json @@ -2,6 +2,6 @@ "file_format_version": "1.0.0", "ICD": { "library_path": ".\\wineopenxr.dll", - "api_version": "1.1.51" + "api_version": "1.1.52" } } diff --git a/xalia-fixups.gudl b/xalia-fixups.gudl index 2923b0fdd60..7ee2f02fbdb 100644 --- a/xalia-fixups.gudl +++ b/xalia-fixups.gudl @@ -8,8 +8,8 @@ if (win32_class_name == "Rockstar Games Launcher Installer") { application_supports_gamepad: true; } -if (win32_class_name >= "WindowsForms10." and win32_class_name < "WindowsForms10/") { - // Controls that delegate IEnumVariant in winforms can crash in Wine Mono when queried, don't touch them for now. - recurse: false; - interactable: false; +dialog (child_matches(edit and readonly and multiline and autovscroll and autohscroll and win32_control_id == 1005)) +{ + // GPU driver warning from Embark Studios games (ARC Raiders and THE FINALS) - BM_CLICK dismisses dialog but doesn't start the game + manual_buttons: true; }