Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
ac8f2c03
Commit
ac8f2c03
authored
Jul 23, 2006
by
Jason Green
Committed by
Alexandre Julliard
Jul 24, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Improve traces for D3DTRANSFORMSTATETYPE.
Added debug function for WINED3DTRANSFORMSTATETYPE and changed all references from D3DTS_* to WINED3DTS_*.
parent
e325efbd
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
70 additions
and
23 deletions
+70
-23
device.c
dlls/wined3d/device.c
+15
-15
drawprim.c
dlls/wined3d/drawprim.c
+4
-4
stateblock.c
dlls/wined3d/stateblock.c
+4
-4
utils.c
dlls/wined3d/utils.c
+25
-0
wined3d_private.h
dlls/wined3d/wined3d_private.h
+1
-0
wined3d_types.h
include/wine/wined3d_types.h
+21
-0
No files found.
dlls/wined3d/device.c
View file @
ac8f2c03
...
...
@@ -156,7 +156,7 @@ static void setup_light(IWineD3DDevice *iface, LONG Index, PLIGHTINFOEL *lightIn
/* Light settings are affected by the model view in OpenGL, the View transform in direct3d*/
glMatrixMode
(
GL_MODELVIEW
);
glPushMatrix
();
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_VIEW
].
u
.
m
[
0
][
0
]);
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_VIEW
].
u
.
m
[
0
][
0
]);
/* Diffuse: */
colRGBA
[
0
]
=
lightInfo
->
OriginalParms
.
Diffuse
.
r
;
...
...
@@ -2450,7 +2450,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTransform(IWineD3DDevice *iface, D
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
/* Most of this routine, comments included copied from ddraw tree initially: */
TRACE
(
"(%p) : Transform State=%
d
\n
"
,
This
,
d3dts
);
TRACE
(
"(%p) : Transform State=%
s
\n
"
,
This
,
debug_d3dtstype
(
d3dts
)
);
/* Handle recording of state blocks */
if
(
This
->
isRecordingState
)
{
...
...
@@ -2485,27 +2485,27 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTransform(IWineD3DDevice *iface, D
*/
/* Capture the times we can just ignore the change for now */
if
(
d3dts
==
D3DTS_WORLDMATRIX
(
0
))
{
if
(
d3dts
==
WINE
D3DTS_WORLDMATRIX
(
0
))
{
This
->
modelview_valid
=
FALSE
;
return
WINED3D_OK
;
}
else
if
(
d3dts
==
D3DTS_PROJECTION
)
{
}
else
if
(
d3dts
==
WINE
D3DTS_PROJECTION
)
{
This
->
proj_valid
=
FALSE
;
return
WINED3D_OK
;
}
else
if
(
d3dts
>=
D3DTS_WORLDMATRIX
(
1
)
&&
d3dts
<=
D3DTS_WORLDMATRIX
(
255
))
{
}
else
if
(
d3dts
>=
WINED3DTS_WORLDMATRIX
(
1
)
&&
d3dts
<=
WINE
D3DTS_WORLDMATRIX
(
255
))
{
/* Indexed Vertex Blending Matrices 256 -> 511 */
/* Use arb_vertex_blend or NV_VERTEX_WEIGHTING? */
FIXME
(
"D3DTS_WORLDMATRIX(1..255) not handled
\n
"
);
FIXME
(
"
WINE
D3DTS_WORLDMATRIX(1..255) not handled
\n
"
);
return
WINED3D_OK
;
}
/* Now we really are going to have to change a matrix */
ENTER_GL
();
if
(
d3dts
>=
D3DTS_TEXTURE0
&&
d3dts
<=
D3DTS_TEXTURE7
)
{
/* handle texture matrices */
if
(
d3dts
>=
WINED3DTS_TEXTURE0
&&
d3dts
<=
WINE
D3DTS_TEXTURE7
)
{
/* handle texture matrices */
/* This is now set with the texture unit states, it may be a good idea to flag the change though! */
}
else
if
(
d3dts
==
D3DTS_VIEW
)
{
/* handle the VIEW matrice */
}
else
if
(
d3dts
==
WINE
D3DTS_VIEW
)
{
/* handle the VIEW matrice */
unsigned
int
k
;
/* If we are changing the View matrix, reset the light and clipping planes to the new view
...
...
@@ -2552,7 +2552,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTransform(IWineD3DDevice *iface, D
}
static
HRESULT
WINAPI
IWineD3DDeviceImpl_GetTransform
(
IWineD3DDevice
*
iface
,
D3DTRANSFORMSTATETYPE
State
,
D3DMATRIX
*
pMatrix
)
{
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
TRACE
(
"(%p) : for Transform State %
d
\n
"
,
This
,
State
);
TRACE
(
"(%p) : for Transform State %
s
\n
"
,
This
,
debug_d3dtstype
(
State
)
);
memcpy
(
pMatrix
,
&
This
->
stateBlock
->
transforms
[
State
],
sizeof
(
D3DMATRIX
));
return
WINED3D_OK
;
}
...
...
@@ -2567,7 +2567,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_MultiplyTransform(IWineD3DDevice *iface
* If this is found to be wrong, change to StateBlock.
*/
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
TRACE
(
"(%p) : For state %
u
\n
"
,
This
,
State
);
TRACE
(
"(%p) : For state %
s
\n
"
,
This
,
debug_d3dtstype
(
State
)
);
if
(
State
<
HIGHEST_TRANSFORMSTATE
)
{
...
...
@@ -3016,7 +3016,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetClipPlane(IWineD3DDevice *iface, DWO
/* Clip Plane settings are affected by the model view in OpenGL, the View transform in direct3d */
glMatrixMode
(
GL_MODELVIEW
);
glPushMatrix
();
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_VIEW
].
u
.
m
[
0
][
0
]);
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_VIEW
].
u
.
m
[
0
][
0
]);
TRACE
(
"Clipplane [%f,%f,%f,%f]
\n
"
,
This
->
updateStateBlock
->
clipplane
[
Index
][
0
],
...
...
@@ -5024,13 +5024,13 @@ process_vertices_strided(IWineD3DDeviceImpl *This, DWORD dwDestIndex, DWORD dwCo
}
IWineD3DDevice_GetTransform
(
(
IWineD3DDevice
*
)
This
,
D3DTS_VIEW
,
WINE
D3DTS_VIEW
,
&
view_mat
);
IWineD3DDevice_GetTransform
(
(
IWineD3DDevice
*
)
This
,
D3DTS_PROJECTION
,
WINE
D3DTS_PROJECTION
,
&
proj_mat
);
IWineD3DDevice_GetTransform
(
(
IWineD3DDevice
*
)
This
,
D3DTS_WORLDMATRIX
(
0
),
WINE
D3DTS_WORLDMATRIX
(
0
),
&
world_mat
);
TRACE
(
"View mat:
\n
"
);
...
...
@@ -5520,7 +5520,7 @@ static void WINAPI IWineD3DDeviceImpl_ApplyTextureUnitState(IWineD3DDevice *ifac
/* Unhandled */
case
WINED3DTSS_TEXTURETRANSFORMFLAGS
:
set_texture_matrix
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_TEXTURE0
+
Stage
].
u
.
m
[
0
][
0
],
Value
,
(
This
->
stateBlock
->
textureState
[
Stage
][
WINED3DTSS_TEXCOORDINDEX
]
&
0xFFFF0000
)
!=
D3DTSS_TCI_PASSTHRU
);
set_texture_matrix
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_TEXTURE0
+
Stage
].
u
.
m
[
0
][
0
],
Value
,
(
This
->
stateBlock
->
textureState
[
Stage
][
WINED3DTSS_TEXCOORDINDEX
]
&
0xFFFF0000
)
!=
D3DTSS_TCI_PASSTHRU
);
break
;
case
WINED3DTSS_BUMPENVMAT00
:
...
...
dlls/wined3d/drawprim.c
View file @
ac8f2c03
...
...
@@ -267,12 +267,12 @@ static void primitiveInitState(
/* In the general case, the view matrix is the identity matrix */
if
(
This
->
view_ident
)
{
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_WORLDMATRIX
(
0
)].
u
.
m
[
0
][
0
]);
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_WORLDMATRIX
(
0
)].
u
.
m
[
0
][
0
]);
checkGLcall
(
"glLoadMatrixf"
);
}
else
{
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_VIEW
].
u
.
m
[
0
][
0
]);
glLoadMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_VIEW
].
u
.
m
[
0
][
0
]);
checkGLcall
(
"glLoadMatrixf"
);
glMultMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_WORLDMATRIX
(
0
)].
u
.
m
[
0
][
0
]);
glMultMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_WORLDMATRIX
(
0
)].
u
.
m
[
0
][
0
]);
checkGLcall
(
"glMultMatrixf"
);
}
}
...
...
@@ -299,7 +299,7 @@ static void primitiveInitState(
glMultMatrixf
(
invymat
);
checkGLcall
(
"glMultMatrixf(invymat)"
);
}
glMultMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
D3DTS_PROJECTION
].
u
.
m
[
0
][
0
]);
glMultMatrixf
((
float
*
)
&
This
->
stateBlock
->
transforms
[
WINE
D3DTS_PROJECTION
].
u
.
m
[
0
][
0
]);
checkGLcall
(
"glLoadMatrixf"
);
}
...
...
dlls/wined3d/stateblock.c
View file @
ac8f2c03
...
...
@@ -816,10 +816,10 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat
This
->
blockType
=
WINED3DSBT_INIT
;
/* Set some of the defaults for lights, transforms etc */
memcpy
(
&
This
->
transforms
[
D3DTS_PROJECTION
],
&
identity
,
sizeof
(
identity
));
memcpy
(
&
This
->
transforms
[
D3DTS_VIEW
],
&
identity
,
sizeof
(
identity
));
memcpy
(
&
This
->
transforms
[
WINE
D3DTS_PROJECTION
],
&
identity
,
sizeof
(
identity
));
memcpy
(
&
This
->
transforms
[
WINE
D3DTS_VIEW
],
&
identity
,
sizeof
(
identity
));
for
(
i
=
0
;
i
<
256
;
++
i
)
{
memcpy
(
&
This
->
transforms
[
D3DTS_WORLDMATRIX
(
i
)],
&
identity
,
sizeof
(
identity
));
memcpy
(
&
This
->
transforms
[
WINE
D3DTS_WORLDMATRIX
(
i
)],
&
identity
,
sizeof
(
identity
));
}
TRACE
(
"Render states
\n
"
);
...
...
@@ -970,7 +970,7 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat
/* Texture Stage States - Put directly into state block, we will call function below */
for
(
i
=
0
;
i
<
GL_LIMITS
(
texture_stages
);
i
++
)
{
TRACE
(
"Setting up default texture states for texture Stage %d
\n
"
,
i
);
memcpy
(
&
This
->
transforms
[
D3DTS_TEXTURE0
+
i
],
&
identity
,
sizeof
(
identity
));
memcpy
(
&
This
->
transforms
[
WINE
D3DTS_TEXTURE0
+
i
],
&
identity
,
sizeof
(
identity
));
This
->
textureState
[
i
][
D3DTSS_COLOROP
]
=
(
i
==
0
)
?
D3DTOP_MODULATE
:
D3DTOP_DISABLE
;
This
->
textureState
[
i
][
D3DTSS_COLORARG1
]
=
D3DTA_TEXTURE
;
This
->
textureState
[
i
][
D3DTSS_COLORARG2
]
=
D3DTA_CURRENT
;
...
...
dlls/wined3d/utils.c
View file @
ac8f2c03
...
...
@@ -542,6 +542,31 @@ const char* debug_d3dtop(D3DTEXTUREOP d3dtop) {
}
}
const
char
*
debug_d3dtstype
(
WINED3DTRANSFORMSTATETYPE
tstype
)
{
switch
(
tstype
)
{
#define TSTYPE_TO_STR(tstype) case tstype: return #tstype
TSTYPE_TO_STR
(
WINED3DTS_VIEW
);
TSTYPE_TO_STR
(
WINED3DTS_PROJECTION
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE0
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE1
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE2
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE3
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE4
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE5
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE6
);
TSTYPE_TO_STR
(
WINED3DTS_TEXTURE7
);
TSTYPE_TO_STR
(
WINED3DTS_WORLDMATRIX
(
0
));
#undef TSTYPE_TO_STR
default:
if
(
tstype
>
256
&&
tstype
<
512
)
{
FIXME
(
"WINED3DTS_WORLDMATRIX(%u). 1..255 not currently supported
\n
"
,
tstype
);
return
(
"WINED3DTS_WORLDMATRIX > 0"
);
}
FIXME
(
"Unrecognized %u WINED3DTS
\n
"
,
tstype
);
return
"unrecognized"
;
}
}
const
char
*
debug_d3dpool
(
WINED3DPOOL
Pool
)
{
switch
(
Pool
)
{
#define POOL_TO_STR(p) case p: return #p;
...
...
dlls/wined3d/wined3d_private.h
View file @
ac8f2c03
...
...
@@ -1215,6 +1215,7 @@ const char* debug_d3dprimitivetype(D3DPRIMITIVETYPE PrimitiveType);
const
char
*
debug_d3drenderstate
(
DWORD
state
);
const
char
*
debug_d3dsamplerstate
(
DWORD
state
);
const
char
*
debug_d3dtexturestate
(
DWORD
state
);
const
char
*
debug_d3dtstype
(
WINED3DTRANSFORMSTATETYPE
tstype
);
const
char
*
debug_d3dpool
(
WINED3DPOOL
pool
);
/* Routines for GL <-> D3D values */
...
...
include/wine/wined3d_types.h
View file @
ac8f2c03
...
...
@@ -455,6 +455,27 @@ typedef enum _WINED3DTEXTURESTAGESTATETYPE {
#define WINED3D_HIGHEST_TEXTURE_STATE WINED3DTSS_CONSTANT
typedef
enum
_WINED3DTRANSFORMSTATETYPE
{
WINED3DTS_VIEW
=
2
,
WINED3DTS_PROJECTION
=
3
,
WINED3DTS_TEXTURE0
=
16
,
WINED3DTS_TEXTURE1
=
17
,
WINED3DTS_TEXTURE2
=
18
,
WINED3DTS_TEXTURE3
=
19
,
WINED3DTS_TEXTURE4
=
20
,
WINED3DTS_TEXTURE5
=
21
,
WINED3DTS_TEXTURE6
=
22
,
WINED3DTS_TEXTURE7
=
23
,
WINED3DTS_FORCE_DWORD
=
0x7fffffff
}
WINED3DTRANSFORMSTATETYPE
;
#define WINED3DTS_WORLD WINED3DTS_WORLDMATRIX(0)
#define WINED3DTS_WORLD1 WINED3DTS_WORLDMATRIX(1)
#define WINED3DTS_WORLD2 WINED3DTS_WORLDMATRIX(2)
#define WINED3DTS_WORLD3 WINED3DTS_WORLDMATRIX(3)
#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)
typedef
enum
_WINED3DBASISTYPE
{
WINED3DBASIS_BEZIER
=
0
,
WINED3DBASIS_BSPLINE
=
1
,
...
...
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