On Wed, Mar 25, 2020 at 7:17 PM Connor McAdams <conmanx360(a)gmail.com> wrote:
+ hr = ID3D10Device_CreateTexture2D(device, &tex_desc, NULL, tex); + ok(SUCCEEDED(hr), "Failed to create a 2D texture, hr %#x.\n", hr); + hr = ID3D10Device_CreateShaderResourceView(device, (ID3D10Resource *)*tex, NULL, srv); + ok(SUCCEEDED(hr), "Failed to create a shader resource view, hr %#x.\n", hr);
Please use the same style as the previous tests: ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+} + +static void get_effect_shader_resource_variable(ID3D10EffectVariable *var, + ID3D10EffectShaderResourceVariable **srv) +{ + D3D10_EFFECT_TYPE_DESC type_desc; + ID3D10EffectType *type; + HRESULT hr; + + type = var->lpVtbl->GetType(var); + hr = type->lpVtbl->GetDesc(type, &type_desc); + ok(SUCCEEDED(hr), "GetDesc failed (%x).\n", hr);
Same.
+ ok(type_desc.Type == D3D10_SVT_TEXTURE2D, "Type is %x, expected %x.\n", type_desc.Type, D3D10_SVT_TEXTURE2D); + *srv = var->lpVtbl->AsShaderResource(var); +} + +static void test_effect_resource_variable(void) +{ + ID3D10ShaderResourceView *srv0, *srv_a[2], *srv_tmp[2]; + ID3D10EffectShaderResourceVariable *t0, *t_a, *t_a_0; + ID3D10EffectTechnique *technique; + ID3D10Texture2D *tex0, *tex_a[2]; + ID3D10EffectVariable *var; + ID3D10EffectPass *pass; + ID3D10Device *device; + ID3D10Effect *effect; + unsigned int i; + ULONG refcount; + HRESULT hr; + + if (!(device = create_device())) + { + skip("Failed to create device, skipping tests.\n"); + return; + } + + hr = create_effect(fx_test_resource_variable, 0, device, NULL, &effect); + ok(SUCCEEDED(hr), "D3D10CreateEffectFromMemory failed (%x).\n", hr); + + var = effect->lpVtbl->GetVariableByName(effect, "t0"); + get_effect_shader_resource_variable(var, &t0); + create_effect_texture_resource(device, &srv0, &tex0); + hr = t0->lpVtbl->SetResource(t0, srv0); + ok(hr == S_OK, "Failed to SetResource, hr %#x.\n", hr);
Same, here and elsewhere below.