Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
785e6fa6
Commit
785e6fa6
authored
Mar 09, 2008
by
Alexander Dorofeyev
Committed by
Alexandre Julliard
Mar 10, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3d8/tests: Cover one more case in p8_texture_test.
Test if a P8 texture gets properly updated if there was a palette change while this texture wasn't bound to any stage.
parent
8f8076c3
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
5 deletions
+54
-5
visual.c
dlls/d3d8/tests/visual.c
+54
-5
No files found.
dlls/d3d8/tests/visual.c
View file @
785e6fa6
...
@@ -914,7 +914,7 @@ static void p8_texture_test(IDirect3DDevice8 *device)
...
@@ -914,7 +914,7 @@ static void p8_texture_test(IDirect3DDevice8 *device)
{
{
IDirect3D8
*
d3d
=
NULL
;
IDirect3D8
*
d3d
=
NULL
;
HRESULT
hr
;
HRESULT
hr
;
IDirect3DTexture8
*
texture
=
NULL
;
IDirect3DTexture8
*
texture
=
NULL
,
*
texture2
=
NULL
;
D3DLOCKED_RECT
lr
;
D3DLOCKED_RECT
lr
;
unsigned
char
*
data
;
unsigned
char
*
data
;
DWORD
color
,
red
,
green
,
blue
;
DWORD
color
,
red
,
green
,
blue
;
...
@@ -943,6 +943,23 @@ static void p8_texture_test(IDirect3DDevice8 *device)
...
@@ -943,6 +943,23 @@ static void p8_texture_test(IDirect3DDevice8 *device)
}
}
hr
=
IDirect3DDevice8_CreateTexture
(
device
,
1
,
1
,
1
,
0
,
D3DFMT_P8
,
hr
=
IDirect3DDevice8_CreateTexture
(
device
,
1
,
1
,
1
,
0
,
D3DFMT_P8
,
D3DPOOL_MANAGED
,
&
texture2
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_CreateTexture failed, hr = %08x
\n
"
,
hr
);
if
(
!
texture2
)
{
skip
(
"Failed to create D3DFMT_P8 texture
\n
"
);
goto
out
;
}
memset
(
&
lr
,
0
,
sizeof
(
lr
));
hr
=
IDirect3DTexture8_LockRect
(
texture2
,
0
,
&
lr
,
NULL
,
0
);
ok
(
hr
==
D3D_OK
,
"IDirect3DTexture8_LockRect failed, hr = %08x
\n
"
,
hr
);
data
=
lr
.
pBits
;
*
data
=
1
;
hr
=
IDirect3DTexture8_UnlockRect
(
texture2
,
0
);
ok
(
hr
==
D3D_OK
,
"IDirect3DTexture8_UnlockRect failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_CreateTexture
(
device
,
1
,
1
,
1
,
0
,
D3DFMT_P8
,
D3DPOOL_MANAGED
,
&
texture
);
D3DPOOL_MANAGED
,
&
texture
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_CreateTexture failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_CreateTexture failed, hr = %08x
\n
"
,
hr
);
if
(
!
texture
)
{
if
(
!
texture
)
{
...
@@ -959,9 +976,6 @@ static void p8_texture_test(IDirect3DDevice8 *device)
...
@@ -959,9 +976,6 @@ static void p8_texture_test(IDirect3DDevice8 *device)
hr
=
IDirect3DTexture8_UnlockRect
(
texture
,
0
);
hr
=
IDirect3DTexture8_UnlockRect
(
texture
,
0
);
ok
(
hr
==
D3D_OK
,
"IDirect3DTexture8_UnlockRect failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DTexture8_UnlockRect failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_SetTexture
(
device
,
0
,
(
IDirect3DBaseTexture8
*
)
texture
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetTexture failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_Clear
(
device
,
0
,
NULL
,
D3DCLEAR_TARGET
,
0xff000000
,
0
.
0
,
0
);
hr
=
IDirect3DDevice8_Clear
(
device
,
0
,
NULL
,
D3DCLEAR_TARGET
,
0xff000000
,
0
.
0
,
0
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_Clear failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_Clear failed, hr = %08x
\n
"
,
hr
);
...
@@ -998,12 +1012,18 @@ static void p8_texture_test(IDirect3DDevice8 *device)
...
@@ -998,12 +1012,18 @@ static void p8_texture_test(IDirect3DDevice8 *device)
hr
=
IDirect3DDevice8_SetCurrentTexturePalette
(
device
,
0
);
hr
=
IDirect3DDevice8_SetCurrentTexturePalette
(
device
,
0
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetCurrentTexturePalette failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetCurrentTexturePalette failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_SetTexture
(
device
,
0
,
(
IDirect3DBaseTexture8
*
)
texture2
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetTexture failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_DrawPrimitiveUP
(
device
,
D3DPT_TRIANGLESTRIP
,
2
,
quad
,
5
*
sizeof
(
float
));
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_DrawPrimitiveUP failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_SetTexture
(
device
,
0
,
(
IDirect3DBaseTexture8
*
)
texture
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetTexture failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_DrawPrimitiveUP
(
device
,
D3DPT_TRIANGLESTRIP
,
2
,
quad
,
5
*
sizeof
(
float
));
hr
=
IDirect3DDevice8_DrawPrimitiveUP
(
device
,
D3DPT_TRIANGLESTRIP
,
2
,
quad
,
5
*
sizeof
(
float
));
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_DrawPrimitiveUP failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_DrawPrimitiveUP failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_SetCurrentTexturePalette
(
device
,
1
);
hr
=
IDirect3DDevice8_SetCurrentTexturePalette
(
device
,
1
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetCurrentTexturePalette failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetCurrentTexturePalette failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_DrawPrimitiveUP
(
device
,
D3DPT_TRIANGLESTRIP
,
2
,
quad2
,
5
*
sizeof
(
float
));
hr
=
IDirect3DDevice8_DrawPrimitiveUP
(
device
,
D3DPT_TRIANGLESTRIP
,
2
,
quad2
,
5
*
sizeof
(
float
));
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_DrawPrimitiveUP failed, hr = %08x
\n
"
,
hr
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_DrawPrimitiveUP failed, hr = %08x
\n
"
,
hr
);
...
@@ -1030,6 +1050,34 @@ static void p8_texture_test(IDirect3DDevice8 *device)
...
@@ -1030,6 +1050,34 @@ static void p8_texture_test(IDirect3DDevice8 *device)
"got color %08x, expected 0x000000ff
\n
"
,
color
);
"got color %08x, expected 0x000000ff
\n
"
,
color
);
}
}
hr
=
IDirect3DDevice8_Clear
(
device
,
0
,
NULL
,
D3DCLEAR_TARGET
,
0xff000000
,
0
.
0
,
0
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_Clear failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_BeginScene
(
device
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_BeginScene failed, hr = %08x
\n
"
,
hr
);
if
(
SUCCEEDED
(
hr
))
{
hr
=
IDirect3DDevice8_SetTexture
(
device
,
0
,
(
IDirect3DBaseTexture8
*
)
texture2
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_SetTexture failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_DrawPrimitiveUP
(
device
,
D3DPT_TRIANGLESTRIP
,
2
,
quad
,
5
*
sizeof
(
float
));
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_DrawPrimitiveUP failed, hr = %08x
\n
"
,
hr
);
hr
=
IDirect3DDevice8_EndScene
(
device
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_EndScene failed, hr = %08x
\n
"
,
hr
);
}
hr
=
IDirect3DDevice8_Present
(
device
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
hr
==
D3D_OK
,
"IDirect3DDevice8_Present failed, hr = %08x
\n
"
,
hr
);
todo_wine
{
color
=
getPixelColor
(
device
,
32
,
32
);
red
=
(
color
&
0x00ff0000
)
>>
16
;
green
=
(
color
&
0x0000ff00
)
>>
8
;
blue
=
(
color
&
0x000000ff
)
>>
0
;
ok
(
red
==
0
&&
blue
==
0xff
&&
green
==
0
,
"got color %08x, expected 0x000000ff
\n
"
,
color
);
}
/* Test palettes with alpha */
/* Test palettes with alpha */
IDirect3DDevice8_GetDeviceCaps
(
device
,
&
caps
);
IDirect3DDevice8_GetDeviceCaps
(
device
,
&
caps
);
if
(
!
(
caps
.
TextureCaps
&
D3DPTEXTURECAPS_ALPHAPALETTE
))
{
if
(
!
(
caps
.
TextureCaps
&
D3DPTEXTURECAPS_ALPHAPALETTE
))
{
...
@@ -1110,6 +1158,7 @@ static void p8_texture_test(IDirect3DDevice8 *device)
...
@@ -1110,6 +1158,7 @@ static void p8_texture_test(IDirect3DDevice8 *device)
out:
out:
if
(
texture
)
IDirect3DTexture8_Release
(
texture
);
if
(
texture
)
IDirect3DTexture8_Release
(
texture
);
if
(
texture2
)
IDirect3DTexture8_Release
(
texture2
);
IDirect3D8_Release
(
d3d
);
IDirect3D8_Release
(
d3d
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment