1
0
mirror of https://github.com/djhackersdev/bemanitools.git synced 2024-11-24 06:40:11 +01:00

feat(d3d9-util): Add separate module for d3d9 utils/helpers

Currently includes:

* dx9 error formatting helpers. Turn error codes into readable
  text
* Vertex struct and helper function
This commit is contained in:
icex2 2023-04-15 15:48:10 +02:00 committed by icex2
parent 6dea29ec6a
commit 6ea099fd9e
6 changed files with 2950 additions and 0 deletions

View File

@ -99,6 +99,7 @@ include src/main/bstio/Module.mk
include src/main/camhook/Module.mk include src/main/camhook/Module.mk
include src/main/cconfig/Module.mk include src/main/cconfig/Module.mk
include src/main/config/Module.mk include src/main/config/Module.mk
include src/main/d3d9-util/Module.mk
include src/main/d3d9exhook/Module.mk include src/main/d3d9exhook/Module.mk
include src/main/ddrhook-util/Module.mk include src/main/ddrhook-util/Module.mk
include src/main/ddrhook1/Module.mk include src/main/ddrhook1/Module.mk

View File

@ -0,0 +1,6 @@
libs += d3d9-util
libs_d3d9-util := \
src_d3d9-util := \
dxerr9.c \

2830
src/main/d3d9-util/dxerr.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
// Source:
// https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-crt/libsrc/dxerr9.c
/*
dxerr9.c - DirectX 9 Error Functions
Written by Filip Navara <xnavara@volny.cz>
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
#define DXGetErrorString DXGetErrorString9A
#define DXGetErrorDescription DXGetErrorDescription9A
#define DXTrace DXTraceA
#define DXERROR9(v, n, d) {v, n, d},
#define DXERROR9LAST(v, n, d) \
{ \
v, n, d \
}
#include "dxerr.c"

View File

@ -0,0 +1,67 @@
// Source:
// https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-headers/direct-x/include/dxerr9.h
/*
* Copyright (C) 2004 Robert Reif
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_DXERR9_H
#define __WINE_DXERR9_H
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
const char *WINAPI DXGetErrorString9A(HRESULT hr);
const WCHAR *WINAPI DXGetErrorString9W(HRESULT hr);
#define DXGetErrorString9 __MINGW_NAME_AW(DXGetErrorString9)
const char *WINAPI DXGetErrorDescription9A(HRESULT hr);
const WCHAR *WINAPI DXGetErrorDescription9W(HRESULT hr);
#define DXGetErrorDescription9 __MINGW_NAME_AW(DXGetErrorDescription9)
HRESULT WINAPI DXTraceA(
const char *strFile,
DWORD dwLine,
HRESULT hr,
const char *strMsg,
WINBOOL bPopMsgBox);
HRESULT WINAPI DXTraceW(
const char *strFile,
DWORD dwLine,
HRESULT hr,
const WCHAR *strMsg,
WINBOOL bPopMsgBox);
#define DXTrace __MINGW_NAME_AW(DXTrace)
#if defined(DEBUG) || defined(_DEBUG)
#define DXTRACE_MSG(str) DXTrace(__FILE__, (DWORD) __LINE__, 0, str, FALSE)
#define DXTRACE_ERR(str, hr) DXTrace(__FILE__, (DWORD) __LINE__, hr, str, TRUE)
#define DXTRACE_ERR_NOMSGBOX(str, hr) \
DXTrace(__FILE__, (DWORD) __LINE__, hr, str, FALSE)
#else
#define DXTRACE_MSG(str) __MSABI_LONG(0)
#define DXTRACE_ERR(str, hr) (hr)
#define DXTRACE_ERR_NOMSGBOX(str, hr) (hr)
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_DXERR9_H */

View File

@ -0,0 +1,23 @@
#ifndef D3D9_UTIL_H
#define D3D9_UTIL_H
#include <stdbool.h>
#include <stdint.h>
struct d3d9_util_vertex {
float x;
float y;
float z;
uint32_t color;
uint32_t unknown;
float tu;
float tv;
};
inline bool
d3d9_util_vertex_in_range(float v, float lower_bound_inc, float upper_bound_inc)
{
return v >= lower_bound_inc && v <= upper_bound_inc;
}
#endif