[1/2] d3dx9/test: Add UpdateSemantics test.

Michael Mc Donnell michael at mcdonnell.dk
Thu Jun 9 06:01:17 CDT 2011


On Wed, Jun 8, 2011 at 8:32 PM, Stefan Dösinger <stefandoesinger at gmx.at> wrote:
> On Wednesday 08 June 2011 18:51:41 Michael Mc Donnell wrote:
>>    unsigned int faces[] = {0, 1, 2};
>>    unsigned int num_faces = sizeof(faces) / 3;
> Does this do what you want? As far as I can see you want ARRAY_SIZE(faces) /
> 3.

You're right that was a bug

>
>> +    struct {
>> +        D3DXVECTOR3 position0;
>> +        D3DXVECTOR3 position1;
>> +        D3DXVECTOR3 normal;
>> +        DWORD color;
>> +    } vertices[] = {
>> ...
> Another style nitpick: Bracket placing.

Change it to brackets on new lines? I actually copied the style from
the method above mine. Is this better?:

+    struct
+    {
+        D3DXVECTOR3 position0;
+        D3DXVECTOR3 position1;
+        D3DXVECTOR3 normal;
+        DWORD color;
+    } vertices[] =
+    {
+        { { 0.0f,  1.0f,  0.f}, { 1.0f,  0.0f,  0.f}, {0.0f, 0.0f,
1.0f}, 0xffff0000 },
+        { { 1.0f, -1.0f,  0.f}, {-1.0f, -1.0f,  0.f}, {0.0f, 0.0f,
1.0f}, 0xff00ff00 },
+        { {-1.0f, -1.0f,  0.f}, {-1.0f,  1.0f,  0.f}, {0.0f, 0.0f,
1.0f}, 0xff0000ff },
+    };

>
>> +    /* Two null pointers. Setting only the mesh to null will result in an
>> +     * exception on Windows.
>> +     */
>> +    hr = mesh->lpVtbl->UpdateSemantics(NULL, NULL);
> I think setting the instance pointer to NULL when invoking a method doesn't
> need a test, it will give you odd results. What you show here is that native
> checks the only method parameter before it accesses the object instance.
> Remember, usually apps will invoke this via C++:
>
> mesh->UpdateSemantics(declaration);
>
> Similarly it isn't necessary to check iface or This against NULL in the
> implementations.

Ok, I've removed that check. That wasn't what was causing the
exception though. The problem was that it failed to get a device on
the testbot. I had forgotten to set the mesh to NULL, so in the
cleanup part it tried to release a random pointer, which caused an
exception.

On a side note, failing to get a device means that the d3dx tests are
always skipped on the testbot?

> Otherwise this looks OK

Ok, I'll try again later.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-d3dx9-test-Add-UpdateSemantics-test.patch
Type: text/x-patch
Size: 11508 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110609/a8facdae/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-d3dx9-Implement-UpdateSemantics-mesh-method.patch
Type: text/x-patch
Size: 8181 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110609/a8facdae/attachment-0003.bin>


More information about the wine-devel mailing list