mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-03 01:51:48 +00:00
d3dx9: Check for tx_1_0 blob magic earlier in D3DXCreateTextureShader().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
parent
0e44c658b6
commit
f690784338
|
@ -32,6 +32,8 @@
|
|||
|
||||
#define ULONG64_MAX (~(ULONG64)0)
|
||||
|
||||
#define FOURCC_TX_1 0x54580100
|
||||
|
||||
struct vec4
|
||||
{
|
||||
float x, y, z, w;
|
||||
|
|
|
@ -144,7 +144,6 @@ static double pres_div(double *args, int n) {return 0.0;}
|
|||
#define FOURCC_CLIT 0x54494c43
|
||||
#define FOURCC_FXLC 0x434c5846
|
||||
#define FOURCC_PRSI 0x49535250
|
||||
#define FOURCC_TX_1 0x54580100
|
||||
#define PRES_SIGN 0x46580000
|
||||
|
||||
struct op_info
|
||||
|
|
|
@ -2653,6 +2653,9 @@ HRESULT WINAPI D3DXCreateTextureShader(const DWORD *function, ID3DXTextureShader
|
|||
if (!function || !texture_shader)
|
||||
return D3DERR_INVALIDCALL;
|
||||
|
||||
if (*function != FOURCC_TX_1)
|
||||
return D3DXERR_INVALIDDATA;
|
||||
|
||||
if (!(size = D3DXGetShaderSize(function)))
|
||||
return D3DXERR_INVALIDDATA;
|
||||
|
||||
|
|
|
@ -2475,17 +2475,25 @@ float4 main(float3 pos : POSITION, float3 size : PSIZE) : COLOR
|
|||
hr = D3DXCreateTextureShader(NULL, NULL);
|
||||
ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#lx.\n", hr);
|
||||
|
||||
tx = (void *)0xdeadbeef;
|
||||
hr = D3DXCreateTextureShader(NULL, &tx);
|
||||
ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(tx == (void *)0xdeadbeef, "Unexpected pointer %p.\n", tx);
|
||||
|
||||
tx = (void *)0xdeadbeef;
|
||||
hr = D3DXCreateTextureShader(shader_invalid, &tx);
|
||||
todo_wine ok(hr == D3DXERR_INVALIDDATA, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(hr == D3DXERR_INVALIDDATA, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(tx == (void *)0xdeadbeef, "Unexpected pointer %p.\n", tx);
|
||||
|
||||
tx = (void *)0xdeadbeef;
|
||||
hr = D3DXCreateTextureShader(shader_zero, &tx);
|
||||
todo_wine ok(hr == D3DXERR_INVALIDDATA, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(hr == D3DXERR_INVALIDDATA, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(tx == (void *)0xdeadbeef, "Unexpected pointer %p.\n", tx);
|
||||
|
||||
tx = (void *)0xdeadbeef;
|
||||
hr = D3DXCreateTextureShader(shader_empty, &tx);
|
||||
todo_wine ok(hr == D3DXERR_INVALIDDATA, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(hr == D3DXERR_INVALIDDATA, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(tx == (void *)0xdeadbeef, "Unexpected pointer %p.\n", tx);
|
||||
|
||||
hr = D3DXCreateTextureShader(shader_code, &tx);
|
||||
ok(SUCCEEDED(hr), "Got unexpected hr %#lx.\n", hr);
|
||||
|
|
Loading…
Reference in a new issue