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
3d6154aa
Commit
3d6154aa
authored
Sep 25, 2005
by
Christian Costa
Committed by
Alexandre Julliard
Sep 25, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement Begin/Vertex/End rendering functions.
parent
240e7624
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
61 additions
and
21 deletions
+61
-21
d3d_private.h
dlls/ddraw/d3d_private.h
+15
-4
device_main.c
dlls/ddraw/device_main.c
+38
-10
device_opengl.c
dlls/ddraw/device_opengl.c
+8
-7
No files found.
dlls/ddraw/d3d_private.h
View file @
3d6154aa
/* Direct3D private include file
/*
* Copyright (c) 1998-2004 Lionel ULMER
* Direct3D private include file
* Copyright (c) 2002-2004 Christian Costa
*
* Copyright (c) 1998-2004 Lionel Ulmer
* Copyright (c) 2002-2005 Christian Costa
*
*
* This file contains all the structure that are not exported
* This file contains all the structure that are not exported
* through d3d.h and all common macros.
* through d3d.h and all common macros.
...
@@ -230,7 +232,7 @@ struct IDirect3DDeviceImpl
...
@@ -230,7 +232,7 @@ struct IDirect3DDeviceImpl
LPD3DLIGHT7
light_parameters
;
LPD3DLIGHT7
light_parameters
;
DWORD
*
active_lights
;
DWORD
*
active_lights
;
/*
c
lipping planes */
/*
C
lipping planes */
DWORD
max_clipping_planes
;
DWORD
max_clipping_planes
;
d3d7clippingplane
*
clipping_planes
;
d3d7clippingplane
*
clipping_planes
;
...
@@ -251,6 +253,15 @@ struct IDirect3DDeviceImpl
...
@@ -251,6 +253,15 @@ struct IDirect3DDeviceImpl
/* Used to prevent locks and rendering to overlap */
/* Used to prevent locks and rendering to overlap */
CRITICAL_SECTION
crit
;
CRITICAL_SECTION
crit
;
/* Rendering functions */
D3DPRIMITIVETYPE
primitive_type
;
DWORD
vertex_type
;
DWORD
render_flags
;
DWORD
nb_vertices
;
LPBYTE
vertex_buffer
;
DWORD
vertex_size
;
DWORD
buffer_size
;
};
};
/*****************************************************************************
/*****************************************************************************
...
...
dlls/ddraw/device_main.c
View file @
3d6154aa
/* Direct3D Device
/*
* Copyright (c) 1998-2004 Lionel ULMER
* Direct3D Device
* Copyright (c) 2002-2004 Christian Costa
*
* Copyright (c) 1998-2004 Lionel Ulmer
* Copyright (c) 2002-2005 Christian Costa
*
*
* This file contains all the common stuff for D3D devices.
* This file contains all the common stuff for D3D devices.
*
*
...
@@ -284,7 +286,7 @@ Main_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface)
...
@@ -284,7 +286,7 @@ Main_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface)
if
(
This
->
current_texture
[
i
]
!=
NULL
)
if
(
This
->
current_texture
[
i
]
!=
NULL
)
IDirect3DTexture2_Release
(
ICOM_INTERFACE
(
This
->
current_texture
[
i
],
IDirect3DTexture2
));
IDirect3DTexture2_Release
(
ICOM_INTERFACE
(
This
->
current_texture
[
i
],
IDirect3DTexture2
));
}
}
HeapFree
(
GetProcessHeap
(),
0
,
This
->
vertex_buffer
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
return
0
;
return
0
;
}
}
...
@@ -1175,8 +1177,15 @@ Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface,
...
@@ -1175,8 +1177,15 @@ Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface,
DWORD
dwFlags
)
DWORD
dwFlags
)
{
{
ICOM_THIS_FROM
(
IDirect3DDeviceImpl
,
IDirect3DDevice3
,
iface
);
ICOM_THIS_FROM
(
IDirect3DDeviceImpl
,
IDirect3DDevice3
,
iface
);
FIXME
(
"(%p/%p)->(%08x,%08lx,%08lx): stub!
\n
"
,
This
,
iface
,
d3dptPrimitiveType
,
dwVertexTypeDesc
,
dwFlags
);
TRACE
(
"(%p/%p)->(%08x,%08lx,%08lx)
\n
"
,
This
,
iface
,
d3dptPrimitiveType
,
dwVertexTypeDesc
,
dwFlags
);
return
DD_OK
;
This
->
primitive_type
=
d3dptPrimitiveType
;
This
->
vertex_type
=
dwVertexTypeDesc
;
This
->
render_flags
=
dwFlags
;
This
->
vertex_size
=
get_flexible_vertex_size
(
This
->
vertex_type
);
This
->
nb_vertices
=
0
;
return
D3D_OK
;
}
}
HRESULT
WINAPI
HRESULT
WINAPI
...
@@ -1197,8 +1206,24 @@ Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface,
...
@@ -1197,8 +1206,24 @@ Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface,
LPVOID
lpVertexType
)
LPVOID
lpVertexType
)
{
{
ICOM_THIS_FROM
(
IDirect3DDeviceImpl
,
IDirect3DDevice3
,
iface
);
ICOM_THIS_FROM
(
IDirect3DDeviceImpl
,
IDirect3DDevice3
,
iface
);
FIXME
(
"(%p/%p)->(%p): stub!
\n
"
,
This
,
iface
,
lpVertexType
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
lpVertexType
);
return
DD_OK
;
if
((
This
->
nb_vertices
+
1
)
*
This
->
vertex_size
>
This
->
buffer_size
)
{
LPBYTE
old_buffer
;
This
->
buffer_size
=
This
->
buffer_size
?
This
->
buffer_size
*
2
:
This
->
vertex_size
*
3
;
old_buffer
=
This
->
vertex_buffer
;
This
->
vertex_buffer
=
HeapAlloc
(
GetProcessHeap
(),
0
,
This
->
buffer_size
);
if
(
old_buffer
)
{
CopyMemory
(
This
->
vertex_buffer
,
old_buffer
,
This
->
nb_vertices
*
This
->
vertex_size
);
HeapFree
(
GetProcessHeap
(),
0
,
old_buffer
);
}
}
CopyMemory
(
This
->
vertex_buffer
+
This
->
nb_vertices
++
*
This
->
vertex_size
,
lpVertexType
,
This
->
vertex_size
);
return
D3D_OK
;
}
}
HRESULT
WINAPI
HRESULT
WINAPI
...
@@ -1215,8 +1240,11 @@ Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface,
...
@@ -1215,8 +1240,11 @@ Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface,
DWORD
dwFlags
)
DWORD
dwFlags
)
{
{
ICOM_THIS_FROM
(
IDirect3DDeviceImpl
,
IDirect3DDevice3
,
iface
);
ICOM_THIS_FROM
(
IDirect3DDeviceImpl
,
IDirect3DDevice3
,
iface
);
FIXME
(
"(%p/%p)->(%08lx): stub!
\n
"
,
This
,
iface
,
dwFlags
);
TRACE
(
"(%p/%p)->(%08lx)
\n
"
,
This
,
iface
,
dwFlags
);
return
DD_OK
;
IDirect3DDevice3_DrawPrimitive
(
iface
,
This
->
primitive_type
,
This
->
vertex_type
,
This
->
vertex_buffer
,
This
->
nb_vertices
,
This
->
render_flags
);
return
D3D_OK
;
}
}
HRESULT
WINAPI
HRESULT
WINAPI
...
...
dlls/ddraw/device_opengl.c
View file @
3d6154aa
/* Direct3D Device
/*
* Copyright (c) 1998-2004 Lionel ULMER
* Direct3D Device
* Copyright (c) 2002-2004 Christian Costa
*
* Copyright (c) 1998-2004 Lionel Ulmer
* Copyright (c) 2002-2005 Christian Costa
*
*
* This file contains the MESA implementation of all the D3D devices that
* This file contains the MESA implementation of all the D3D devices that
* Wine supports.
* Wine supports.
...
@@ -427,16 +429,14 @@ GL_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface)
...
@@ -427,16 +429,14 @@ GL_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface)
This
->
d3d
->
d3d_removed_device
(
This
->
d3d
,
This
);
This
->
d3d
->
d3d_removed_device
(
This
->
d3d
,
This
);
/* Free light arrays */
/* Free light arrays */
if
(
This
->
light_parameters
)
HeapFree
(
GetProcessHeap
(),
0
,
This
->
light_parameters
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
light_parameters
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
active_lights
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
active_lights
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
world_mat
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
world_mat
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
view_mat
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
view_mat
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
proj_mat
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
proj_mat
);
if
(
glThis
->
surface_ptr
)
HeapFree
(
GetProcessHeap
(),
0
,
glThis
->
surface_ptr
);
HeapFree
(
GetProcessHeap
(),
0
,
glThis
->
surface_ptr
);
DeleteCriticalSection
(
&
(
This
->
crit
));
DeleteCriticalSection
(
&
(
This
->
crit
));
...
@@ -446,6 +446,7 @@ GL_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface)
...
@@ -446,6 +446,7 @@ GL_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface)
glXDestroyContext
(
glThis
->
display
,
glThis
->
gl_context
);
glXDestroyContext
(
glThis
->
display
,
glThis
->
gl_context
);
LEAVE_GL
();
LEAVE_GL
();
HeapFree
(
GetProcessHeap
(),
0
,
This
->
clipping_planes
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
clipping_planes
);
HeapFree
(
GetProcessHeap
(),
0
,
This
->
vertex_buffer
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
return
0
;
return
0
;
...
...
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