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
e3ecfa59
Commit
e3ecfa59
authored
May 22, 2012
by
Henri Verbeet
Committed by
Alexandre Julliard
May 22, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Store user clip planes as 4-component float vectors.
parent
481514ea
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
41 additions
and
43 deletions
+41
-43
device.c
dlls/d3d8/device.c
+2
-2
device.c
dlls/d3d9/device.c
+6
-8
device.c
dlls/ddraw/device.c
+2
-2
device.c
dlls/wined3d/device.c
+7
-14
state.c
dlls/wined3d/state.c
+8
-5
stateblock.c
dlls/wined3d/stateblock.c
+3
-9
wined3d_private.h
dlls/wined3d/wined3d_private.h
+1
-1
wined3d.h
include/wine/wined3d.h
+12
-2
No files found.
dlls/d3d8/device.c
View file @
e3ecfa59
...
...
@@ -1413,7 +1413,7 @@ static HRESULT WINAPI d3d8_device_SetClipPlane(IDirect3DDevice8 *iface, DWORD in
TRACE
(
"iface %p, index %u, plane %p.
\n
"
,
iface
,
index
,
plane
);
wined3d_mutex_lock
();
hr
=
wined3d_device_set_clip_plane
(
device
->
wined3d_device
,
index
,
plane
);
hr
=
wined3d_device_set_clip_plane
(
device
->
wined3d_device
,
index
,
(
const
struct
wined3d_vec4
*
)
plane
);
wined3d_mutex_unlock
();
return
hr
;
...
...
@@ -1427,7 +1427,7 @@ static HRESULT WINAPI d3d8_device_GetClipPlane(IDirect3DDevice8 *iface, DWORD in
TRACE
(
"iface %p, index %u, plane %p.
\n
"
,
iface
,
index
,
plane
);
wined3d_mutex_lock
();
hr
=
wined3d_device_get_clip_plane
(
device
->
wined3d_device
,
index
,
plane
);
hr
=
wined3d_device_get_clip_plane
(
device
->
wined3d_device
,
index
,
(
struct
wined3d_vec4
*
)
plane
);
wined3d_mutex_unlock
();
return
hr
;
...
...
dlls/d3d9/device.c
View file @
e3ecfa59
...
...
@@ -1500,31 +1500,29 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetLightEnable(IDirect3DDevice9Ex *if
return
hr
;
}
static
HRESULT
WINAPI
IDirect3DDevice9Impl_SetClipPlane
(
IDirect3DDevice9Ex
*
iface
,
DWORD
Index
,
const
float
*
pPlane
)
static
HRESULT
WINAPI
IDirect3DDevice9Impl_SetClipPlane
(
IDirect3DDevice9Ex
*
iface
,
DWORD
index
,
const
float
*
plane
)
{
IDirect3DDevice9Impl
*
This
=
impl_from_IDirect3DDevice9Ex
(
iface
);
HRESULT
hr
;
TRACE
(
"iface %p, index %u, plane %p.
\n
"
,
iface
,
Index
,
pP
lane
);
TRACE
(
"iface %p, index %u, plane %p.
\n
"
,
iface
,
index
,
p
lane
);
wined3d_mutex_lock
();
hr
=
wined3d_device_set_clip_plane
(
This
->
wined3d_device
,
Index
,
pP
lane
);
hr
=
wined3d_device_set_clip_plane
(
This
->
wined3d_device
,
index
,
(
const
struct
wined3d_vec4
*
)
p
lane
);
wined3d_mutex_unlock
();
return
hr
;
}
static
HRESULT
WINAPI
IDirect3DDevice9Impl_GetClipPlane
(
IDirect3DDevice9Ex
*
iface
,
DWORD
Index
,
float
*
pPlane
)
static
HRESULT
WINAPI
IDirect3DDevice9Impl_GetClipPlane
(
IDirect3DDevice9Ex
*
iface
,
DWORD
index
,
float
*
plane
)
{
IDirect3DDevice9Impl
*
This
=
impl_from_IDirect3DDevice9Ex
(
iface
);
HRESULT
hr
;
TRACE
(
"iface %p, index %u, plane %p.
\n
"
,
iface
,
Index
,
pP
lane
);
TRACE
(
"iface %p, index %u, plane %p.
\n
"
,
iface
,
index
,
p
lane
);
wined3d_mutex_lock
();
hr
=
wined3d_device_get_clip_plane
(
This
->
wined3d_device
,
Index
,
pP
lane
);
hr
=
wined3d_device_get_clip_plane
(
This
->
wined3d_device
,
index
,
(
struct
wined3d_vec4
*
)
p
lane
);
wined3d_mutex_unlock
();
return
hr
;
...
...
dlls/ddraw/device.c
View file @
e3ecfa59
...
...
@@ -6162,7 +6162,7 @@ static HRESULT d3d_device7_SetClipPlane(IDirect3DDevice7 *iface, DWORD idx, D3DV
return
DDERR_INVALIDPARAMS
;
wined3d_mutex_lock
();
hr
=
wined3d_device_set_clip_plane
(
device
->
wined3d_device
,
idx
,
plane
);
hr
=
wined3d_device_set_clip_plane
(
device
->
wined3d_device
,
idx
,
(
struct
wined3d_vec4
*
)
plane
);
wined3d_mutex_unlock
();
return
hr
;
...
...
@@ -6211,7 +6211,7 @@ static HRESULT d3d_device7_GetClipPlane(IDirect3DDevice7 *iface, DWORD idx, D3DV
return
DDERR_INVALIDPARAMS
;
wined3d_mutex_lock
();
hr
=
wined3d_device_get_clip_plane
(
device
->
wined3d_device
,
idx
,
plane
);
hr
=
wined3d_device_get_clip_plane
(
device
->
wined3d_device
,
idx
,
(
struct
wined3d_vec4
*
)
plane
);
wined3d_mutex_unlock
();
return
hr
;
...
...
dlls/wined3d/device.c
View file @
e3ecfa59
...
...
@@ -2180,7 +2180,8 @@ HRESULT CDECL wined3d_device_get_light_enable(const struct wined3d_device *devic
return
WINED3D_OK
;
}
HRESULT
CDECL
wined3d_device_set_clip_plane
(
struct
wined3d_device
*
device
,
UINT
plane_idx
,
const
float
*
plane
)
HRESULT
CDECL
wined3d_device_set_clip_plane
(
struct
wined3d_device
*
device
,
UINT
plane_idx
,
const
struct
wined3d_vec4
*
plane
)
{
TRACE
(
"device %p, plane_idx %u, plane %p.
\n
"
,
device
,
plane_idx
,
plane
);
...
...
@@ -2193,19 +2194,13 @@ HRESULT CDECL wined3d_device_set_clip_plane(struct wined3d_device *device, UINT
device
->
updateStateBlock
->
changed
.
clipplane
|=
1
<<
plane_idx
;
if
(
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
0
]
==
plane
[
0
]
&&
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
1
]
==
plane
[
1
]
&&
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
2
]
==
plane
[
2
]
&&
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
3
]
==
plane
[
3
])
if
(
!
memcmp
(
&
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
],
plane
,
sizeof
(
*
plane
)))
{
TRACE
(
"Application is setting old values over, nothing to do.
\n
"
);
return
WINED3D_OK
;
}
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
0
]
=
plane
[
0
];
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
1
]
=
plane
[
1
];
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
2
]
=
plane
[
2
];
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
][
3
]
=
plane
[
3
];
device
->
updateStateBlock
->
state
.
clip_planes
[
plane_idx
]
=
*
plane
;
/* Handle recording of state blocks. */
if
(
device
->
isRecordingState
)
...
...
@@ -2219,7 +2214,8 @@ HRESULT CDECL wined3d_device_set_clip_plane(struct wined3d_device *device, UINT
return
WINED3D_OK
;
}
HRESULT
CDECL
wined3d_device_get_clip_plane
(
const
struct
wined3d_device
*
device
,
UINT
plane_idx
,
float
*
plane
)
HRESULT
CDECL
wined3d_device_get_clip_plane
(
const
struct
wined3d_device
*
device
,
UINT
plane_idx
,
struct
wined3d_vec4
*
plane
)
{
TRACE
(
"device %p, plane_idx %u, plane %p.
\n
"
,
device
,
plane_idx
,
plane
);
...
...
@@ -2230,10 +2226,7 @@ HRESULT CDECL wined3d_device_get_clip_plane(const struct wined3d_device *device,
return
WINED3DERR_INVALIDCALL
;
}
plane
[
0
]
=
(
float
)
device
->
stateBlock
->
state
.
clip_planes
[
plane_idx
][
0
];
plane
[
1
]
=
(
float
)
device
->
stateBlock
->
state
.
clip_planes
[
plane_idx
][
1
];
plane
[
2
]
=
(
float
)
device
->
stateBlock
->
state
.
clip_planes
[
plane_idx
][
2
];
plane
[
3
]
=
(
float
)
device
->
stateBlock
->
state
.
clip_planes
[
plane_idx
][
3
];
*
plane
=
device
->
stateBlock
->
state
.
clip_planes
[
plane_idx
];
return
WINED3D_OK
;
}
...
...
dlls/wined3d/state.c
View file @
e3ecfa59
...
...
@@ -3766,6 +3766,7 @@ static void transform_world(struct wined3d_context *context, const struct wined3
static
void
clipplane
(
struct
wined3d_context
*
context
,
const
struct
wined3d_state
*
state
,
DWORD
state_id
)
{
UINT
index
=
state_id
-
STATE_CLIPPLANE
(
0
);
GLdouble
plane
[
4
];
if
(
isStateDirty
(
context
,
STATE_TRANSFORM
(
WINED3D_TS_VIEW
))
||
index
>=
context
->
gl_info
->
limits
.
clipplanes
)
return
;
...
...
@@ -3782,12 +3783,14 @@ static void clipplane(struct wined3d_context *context, const struct wined3d_stat
*/
glLoadIdentity
();
plane
[
0
]
=
state
->
clip_planes
[
index
].
x
;
plane
[
1
]
=
state
->
clip_planes
[
index
].
y
;
plane
[
2
]
=
state
->
clip_planes
[
index
].
z
;
plane
[
3
]
=
state
->
clip_planes
[
index
].
w
;
TRACE
(
"Clipplane [%.8e, %.8e, %.8e, %.8e]
\n
"
,
state
->
clip_planes
[
index
][
0
],
state
->
clip_planes
[
index
][
1
],
state
->
clip_planes
[
index
][
2
],
state
->
clip_planes
[
index
][
3
]);
glClipPlane
(
GL_CLIP_PLANE0
+
index
,
state
->
clip_planes
[
index
]);
plane
[
0
],
plane
[
1
],
plane
[
2
],
plane
[
3
]);
glClipPlane
(
GL_CLIP_PLANE0
+
index
,
plane
);
checkGLcall
(
"glClipPlane"
);
glPopMatrix
();
...
...
dlls/wined3d/stateblock.c
View file @
e3ecfa59
...
...
@@ -828,10 +828,10 @@ HRESULT CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock)
{
if
(
!
(
map
&
1
))
continue
;
if
(
memcmp
(
src_state
->
clip_planes
[
i
],
stateblock
->
state
.
clip_planes
[
i
],
sizeof
(
*
stateblock
->
state
.
clip_planes
)))
if
(
memcmp
(
&
stateblock
->
state
.
clip_planes
[
i
],
&
src_state
->
clip_planes
[
i
],
sizeof
(
src_state
->
clip_planes
[
i
]
)))
{
TRACE
(
"Updating clipplane %u.
\n
"
,
i
);
memcpy
(
stateblock
->
state
.
clip_planes
[
i
],
src_state
->
clip_planes
[
i
],
sizeof
(
*
stateblock
->
state
.
clip_planes
))
;
stateblock
->
state
.
clip_planes
[
i
]
=
src_state
->
clip_planes
[
i
]
;
}
}
...
...
@@ -1057,15 +1057,9 @@ HRESULT CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblo
map
=
stateblock
->
changed
.
clipplane
;
for
(
i
=
0
;
map
;
map
>>=
1
,
++
i
)
{
float
clip
[
4
];
if
(
!
(
map
&
1
))
continue
;
clip
[
0
]
=
(
float
)
stateblock
->
state
.
clip_planes
[
i
][
0
];
clip
[
1
]
=
(
float
)
stateblock
->
state
.
clip_planes
[
i
][
1
];
clip
[
2
]
=
(
float
)
stateblock
->
state
.
clip_planes
[
i
][
2
];
clip
[
3
]
=
(
float
)
stateblock
->
state
.
clip_planes
[
i
][
3
];
wined3d_device_set_clip_plane
(
device
,
i
,
clip
);
wined3d_device_set_clip_plane
(
device
,
i
,
&
stateblock
->
state
.
clip_planes
[
i
]);
}
stateblock
->
device
->
stateBlock
->
state
.
lowest_disabled_stage
=
MAX_TEXTURES
-
1
;
...
...
dlls/wined3d/wined3d_private.h
View file @
e3ecfa59
...
...
@@ -2282,7 +2282,7 @@ struct wined3d_state
DWORD
lowest_disabled_stage
;
struct
wined3d_matrix
transforms
[
HIGHEST_TRANSFORMSTATE
+
1
];
double
clip_planes
[
MAX_CLIPPLANES
][
4
];
struct
wined3d_vec4
clip_planes
[
MAX_CLIPPLANES
];
struct
wined3d_material
material
;
struct
wined3d_viewport
viewport
;
RECT
scissor_rect
;
...
...
include/wine/wined3d.h
View file @
e3ecfa59
...
...
@@ -1505,6 +1505,14 @@ struct wined3d_vec3
float
z
;
};
struct
wined3d_vec4
{
float
x
;
float
y
;
float
z
;
float
w
;
};
struct
wined3d_matrix
{
union
...
...
@@ -2081,7 +2089,8 @@ UINT __cdecl wined3d_device_get_available_texture_mem(const struct wined3d_devic
HRESULT
__cdecl
wined3d_device_get_back_buffer
(
const
struct
wined3d_device
*
device
,
UINT
swapchain_idx
,
UINT
backbuffer_idx
,
enum
wined3d_backbuffer_type
backbuffer_type
,
struct
wined3d_surface
**
backbuffer
);
INT
__cdecl
wined3d_device_get_base_vertex_index
(
const
struct
wined3d_device
*
device
);
HRESULT
__cdecl
wined3d_device_get_clip_plane
(
const
struct
wined3d_device
*
device
,
UINT
plane_idx
,
float
*
plane
);
HRESULT
__cdecl
wined3d_device_get_clip_plane
(
const
struct
wined3d_device
*
device
,
UINT
plane_idx
,
struct
wined3d_vec4
*
plane
);
HRESULT
__cdecl
wined3d_device_get_clip_status
(
const
struct
wined3d_device
*
device
,
struct
wined3d_clip_status
*
clip_status
);
HRESULT
__cdecl
wined3d_device_get_creation_parameters
(
const
struct
wined3d_device
*
device
,
...
...
@@ -2162,7 +2171,8 @@ HRESULT __cdecl wined3d_device_reset(struct wined3d_device *device,
const
struct
wined3d_swapchain_desc
*
swapchain_desc
,
wined3d_device_reset_cb
callback
);
void
__cdecl
wined3d_device_restore_fullscreen_window
(
struct
wined3d_device
*
device
,
HWND
window
);
HRESULT
__cdecl
wined3d_device_set_base_vertex_index
(
struct
wined3d_device
*
device
,
INT
base_index
);
HRESULT
__cdecl
wined3d_device_set_clip_plane
(
struct
wined3d_device
*
device
,
UINT
plane_idx
,
const
float
*
plane
);
HRESULT
__cdecl
wined3d_device_set_clip_plane
(
struct
wined3d_device
*
device
,
UINT
plane_idx
,
const
struct
wined3d_vec4
*
plane
);
HRESULT
__cdecl
wined3d_device_set_clip_status
(
struct
wined3d_device
*
device
,
const
struct
wined3d_clip_status
*
clip_status
);
void
__cdecl
wined3d_device_set_cursor_position
(
struct
wined3d_device
*
device
,
...
...
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