Commit a8a126c4 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

d3drm: Implement IDirect3DRMTexture3::{Get,Set}DecalSize().

parent 66c8cb3e
...@@ -69,6 +69,8 @@ struct d3drm_texture ...@@ -69,6 +69,8 @@ struct d3drm_texture
DWORD max_colors; DWORD max_colors;
DWORD max_shades; DWORD max_shades;
BOOL transparency; BOOL transparency;
D3DVALUE decal_width;
D3DVALUE decal_height;
}; };
struct d3drm_frame struct d3drm_frame
......
...@@ -2713,6 +2713,7 @@ static void test_Texture(void) ...@@ -2713,6 +2713,7 @@ static void test_Texture(void)
LONG decalx, decaly; LONG decalx, decaly;
DWORD colors, shades; DWORD colors, shades;
BOOL transparency; BOOL transparency;
D3DVALUE width, height;
D3DRMIMAGE initimg = D3DRMIMAGE initimg =
{ {
...@@ -2920,6 +2921,22 @@ static void test_Texture(void) ...@@ -2920,6 +2921,22 @@ static void test_Texture(void)
hr = IDirect3DRMTexture_SetShades(texture1, 8); hr = IDirect3DRMTexture_SetShades(texture1, 8);
ok(hr == S_OK, "got %#lx.\n", hr); ok(hr == S_OK, "got %#lx.\n", hr);
hr = IDirect3DRMTexture_GetDecalSize(texture1, &width, &height);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(width == 1.0f, "Got %.8e.\n", width);
ok(height == 1.0f, "Got %.8e.\n", height);
hr = IDirect3DRMTexture_SetDecalSize(texture1, 8.0f, 7.0f);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IDirect3DRMTexture_GetDecalSize(texture1, &width, &height);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(width == 8.0f, "Got %.8e.\n", width);
ok(height == 7.0f, "Got %.8e.\n", height);
hr = IDirect3DRMTexture_SetDecalSize(texture1, 1.0f, 1.0f);
ok(hr == S_OK, "got %#lx.\n", hr);
transparency = IDirect3DRMTexture_GetDecalTransparency(texture1); transparency = IDirect3DRMTexture_GetDecalTransparency(texture1);
ok(transparency == FALSE, "Got %d.\n", transparency); ok(transparency == FALSE, "Got %d.\n", transparency);
......
...@@ -1193,9 +1193,14 @@ static HRESULT WINAPI d3drm_texture3_SetShades(IDirect3DRMTexture3 *iface, DWORD ...@@ -1193,9 +1193,14 @@ static HRESULT WINAPI d3drm_texture3_SetShades(IDirect3DRMTexture3 *iface, DWORD
static HRESULT WINAPI d3drm_texture3_SetDecalSize(IDirect3DRMTexture3 *iface, D3DVALUE width, D3DVALUE height) static HRESULT WINAPI d3drm_texture3_SetDecalSize(IDirect3DRMTexture3 *iface, D3DVALUE width, D3DVALUE height)
{ {
FIXME("iface %p, width %.8e, height %.8e stub!\n", iface, width, height); struct d3drm_texture *texture = impl_from_IDirect3DRMTexture3(iface);
return E_NOTIMPL; TRACE("iface %p, width %.8e, height %.8e.\n", iface, width, height);
texture->decal_width = width;
texture->decal_height = height;
return S_OK;
} }
static HRESULT WINAPI d3drm_texture3_SetDecalOrigin(IDirect3DRMTexture3 *iface, LONG x, LONG y) static HRESULT WINAPI d3drm_texture3_SetDecalOrigin(IDirect3DRMTexture3 *iface, LONG x, LONG y)
...@@ -1237,9 +1242,14 @@ static HRESULT WINAPI d3drm_texture3_SetDecalTransparentColor(IDirect3DRMTexture ...@@ -1237,9 +1242,14 @@ static HRESULT WINAPI d3drm_texture3_SetDecalTransparentColor(IDirect3DRMTexture
static HRESULT WINAPI d3drm_texture3_GetDecalSize(IDirect3DRMTexture3 *iface, D3DVALUE *width, D3DVALUE *height) static HRESULT WINAPI d3drm_texture3_GetDecalSize(IDirect3DRMTexture3 *iface, D3DVALUE *width, D3DVALUE *height)
{ {
FIXME("iface %p, width %p, height %p stub!\n", iface, width, height); struct d3drm_texture *texture = impl_from_IDirect3DRMTexture3(iface);
return E_NOTIMPL; TRACE("iface %p, width %p, height %p.\n", iface, width, height);
*width = texture->decal_width;
*height = texture->decal_height;
return S_OK;
} }
static HRESULT WINAPI d3drm_texture3_GetDecalOrigin(IDirect3DRMTexture3 *iface, LONG *x, LONG *y) static HRESULT WINAPI d3drm_texture3_GetDecalOrigin(IDirect3DRMTexture3 *iface, LONG *x, LONG *y)
...@@ -1448,6 +1458,8 @@ HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm) ...@@ -1448,6 +1458,8 @@ HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm)
object->max_colors = 8; object->max_colors = 8;
object->max_shades = 16; object->max_shades = 16;
object->transparency = FALSE; object->transparency = FALSE;
object->decal_width = 1.0f;
object->decal_height = 1.0f;
d3drm_object_init(&object->obj, classname); d3drm_object_init(&object->obj, classname);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment