Commit Graph

317 Commits

Author SHA1 Message Date
Ričardas Barkauskas bd530d3aba ddraw: Rename device_from_device3 to impl_from_IDirect3DDevice3. 2011-10-17 18:24:10 +02:00
Ričardas Barkauskas a90b2ad002 ddraw: Use unsafe_impl_from_IDirect3DDevice3 for application provided interfaces. 2011-10-17 18:23:51 +02:00
Ričardas Barkauskas d32df839ac ddraw: COM cleanup for IDirect3DDevice2 interface. 2011-10-17 18:23:42 +02:00
Ričardas Barkauskas 1c045cbb28 ddraw: Rename device_from_device2 to impl_from_IDirect3DDevice2. 2011-10-17 18:23:33 +02:00
Ričardas Barkauskas a870753dba ddraw: Use unsafe_impl_from_IDirect3DDevice2 for application provided interfaces. 2011-10-17 18:23:18 +02:00
Ričardas Barkauskas d5912c533f ddraw: COM cleanup for IDirect3DDevice interface. 2011-10-17 18:23:09 +02:00
Ričardas Barkauskas a0c9ab7894 ddraw: Rename device_from_device1 to impl_from_IDirect3DDevice. 2011-10-17 18:22:56 +02:00
Ričardas Barkauskas d19e416dee ddraw: Use unsafe_impl_from_IDirect3DDevice for application provided interfaces. 2011-10-17 18:22:44 +02:00
Ričardas Barkauskas 38982ddf11 ddraw: Use unsafe_impl_from_IDirect3DViewport2 for application provided interfaces. 2011-10-04 15:25:31 -05:00
Ričardas Barkauskas 25bf0e914c ddraw: Use unsafe_impl_from_IDirect3DViewport for application provided interfaces. 2011-10-04 15:25:25 -05:00
Ričardas Barkauskas 6253d319cb ddraw: COM cleanup for IDirect3DViewport3 interface. 2011-10-04 15:25:20 -05:00
Ričardas Barkauskas f44734b724 ddraw: Use unsafe_impl_from_IDirect3DViewport3 for application provided interfaces. 2011-10-04 15:25:00 -05:00
Ričardas Barkauskas c1aaacd58c ddraw: Change IDirect3DTexture2_vtbl to IDirect3DTexture2_iface. 2011-07-29 19:19:32 +02:00
Ričardas Barkauskas 15f16e8f5e ddraw: Use unsafe_impl_from_IDirect3DTexture2 for application provided interfaces. 2011-07-29 19:19:11 +02:00
Ričardas Barkauskas 0a3582865e ddraw: Use unsafe_impl_from_IDirect3DTexture() for application provided interfaces. 2011-07-29 19:18:59 +02:00
Ričardas Barkauskas f5c46b01f4 ddraw: Do not increase wined3d texture refcount in IDirect3DDevice7_GetTexture. 2011-07-29 18:47:18 +02:00
Michael Stefaniuc faa269c42a ddraw: Use unsafe_impl_from_IDirect3DExecuteBuffer for an app provided iface. 2011-07-08 14:45:23 +02:00
Michael Stefaniuc 663483e16e ddraw: COM cleanup for the IDirect3DExecuteBuffer iface. 2011-07-08 14:45:19 +02:00
Henri Verbeet ddc29c40e6 wined3d: Make D3DRS_ZBIAS work.
D3DRS_ZBIAS is poorly defined, but it makes sense that the bias should be
format independent. Looking at application behaviour, it seems to include a
slope scale factor as well. This fixes a couple of regressions introduced by
96b758f7b3, although it was broken before as
well, just in a different way.
2011-07-05 13:46:07 +02:00
Ričardas Barkauskas 5f6d7021aa ddraw: Separate IDirectDrawSurface and IDirectDrawSurface7 reference counts. 2011-06-28 11:57:50 -05:00
Ričardas Barkauskas 9190d349d2 ddraw: Separate IDirectDrawSurface4 reference count. 2011-06-28 11:57:50 -05:00
Ričardas Barkauskas 3b50ad82ad ddraw: Fix SetRenderTarget behaviour on failure. 2011-06-28 11:57:50 -05:00
Michael Stefaniuc d7768739ec ddraw: COM cleanup for the IDirect3DVertexBuffer7 iface. 2011-06-15 20:04:39 +02:00
Michael Stefaniuc 8e27274163 ddraw: Use unsafe_impl_from_IDirect3DVertexBuffer() for app provided ifaces. 2011-06-15 20:04:39 +02:00
Ričardas Barkauskas f3ae1b99f6 ddraw: Separate IDirectDrawSurface vtable. 2011-06-10 15:26:52 +02:00
Ričardas Barkauskas 27063ffeaa ddraw: Use unsafe_impl_from_IDirectDrawSurface() for application provided interfaces. 2011-06-10 15:26:29 +02:00
Ričardas Barkauskas bb063b994c ddraw: Separate IDirectDrawSurface4 vtable. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 4582562f55 ddraw: Use unsafe_impl_from_IDirectDrawSurface4. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 2f02bbb41f ddraw: Change lpVtbl to IDirectDrawSurface7_iface. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 4074dd7615 ddraw: Avoid IDirectDrawSurfaceX to IDirectDrawSurface7 casts. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 93dfe5afc3 ddraw: Use impl_from_IDirectDrawSurface7() instead of casts. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 705548a6ef ddraw: Separate conversion from IDirectDrawSurface7 iface to object and conversion to other iface. 2011-06-06 21:49:22 +02:00
Ričardas Barkauskas 28ce1c00a7 ddraw: Use unsafe_impl_from_IDirectDrawSurface7() for application provided interfaces. 2011-06-06 21:49:22 +02:00
Ričardas Barkauskas 6d5be5033e ddraw: Change IDirectDrawSurface3_vtbl to IDirectDrawSurface3_iface. 2011-05-31 19:24:10 +02:00
Henri Verbeet 8d4ca1f815 wined3d: Remove COM from the device implementation. 2011-05-17 10:06:18 +02:00
Henri Verbeet 979e3744f7 wined3d: Remove state management methods from the IWineD3DDevice interface. 2011-05-17 10:06:15 +02:00
Henri Verbeet 00a5f38595 wined3d: Remove object creation methods from the IWineD3DDevice interface. 2011-05-11 14:56:48 +02:00
Stefan Dösinger a1519e62f4 ddraw: Map ZBIAS values to a smaller depth range. 2011-05-10 14:04:55 +02:00
Marcus Meissner 6d144cf012 ddraw: Added missing break (Coverity). 2011-05-02 12:37:25 +02:00
Henri Verbeet 1c1de920e3 wined3d: Remove COM from the surface implementation. 2011-04-29 16:52:13 +02:00
Stefan Dösinger 96b758f7b3 d3d: Map D3DRS_ZBIAS to WINED3DRS_DEPTHBIAS.
ZBIAS was removed in d3d9 and replaced with DEPTHBIAS. Currently
wined3d implements both independently which will cause trouble if we
want to set the depthbias value depending on the depth stencil format.
2011-04-22 17:51:29 +02:00
Henri Verbeet fd1aac3e75 ddraw: Replace the viewport list with a standard Wine list. 2011-04-20 13:07:00 +02:00
Henri Verbeet f1de9ad621 ddraw: Unset the viewports active device in IDirect3DDeviceImpl_3_DeleteViewport(). 2011-04-20 13:06:49 +02:00
Henri Verbeet d429aaa9e9 ddraw: Verify the viewport belongs to the device on execute buffer execution. 2011-04-19 13:29:42 +02:00
Henri Verbeet 9edeb22c34 ddraw: Verify the viewport belongs to the device in IDirect3DDeviceImpl_3_SetCurrentViewport(). 2011-04-19 13:29:39 +02:00
Henri Verbeet 358f14ee20 ddraw: Fix a typo in a comment. 2011-04-04 11:53:39 +02:00
Henri Verbeet 024b5c2245 ddraw: Do not unset the index buffer on D3D device destruction. 2011-04-04 11:53:35 +02:00
Henri Verbeet fd8e18bd2b wined3d: Remove COM from the texture implementation. 2011-03-28 17:08:52 +02:00
Henri Verbeet adb1e10979 wined3d: Get rid of wined3d_buffer_get_desc(). 2011-03-11 11:40:47 +01:00
Henri Verbeet 4fd03150f6 wined3d: Get rid of IWineD3DBaseTexture::GetSubResourceDesc(). 2011-03-10 12:53:13 +01:00
Henri Verbeet 63b72d789d wined3d: Move the GetLevelDesc() functions to the IWineD3DBaseTexture interface. 2011-03-09 12:29:04 +01:00
Henri Verbeet 756fdb7c5a wined3d: Merge the various resource desc structures. 2011-03-09 12:28:58 +01:00
Henri Verbeet a27ee75ed2 wined3d: Remove COM from the buffer implementation. 2011-03-04 16:25:58 +01:00
Henri Verbeet b7c427b483 ddraw: Just pass NULL as index buffer parent.
Since the parent is just an opaque pointer instead of a COM object now, it can
just be NULL instead of needing IParent hacks.
2011-03-04 16:25:58 +01:00
Henri Verbeet 36d4268e3c wined3d: Remove COM from IWineD3D. 2011-02-02 12:22:42 +01:00
Henri Verbeet 4b109ff1f8 wined3d: Remove COM from the stateblock. 2011-01-31 12:24:58 +01:00
Michael Stefaniuc 4a2ac6c8bd ddraw: Drop "Thunk_" from the names of the IDirect3DDevice3 methods. 2011-01-20 12:22:16 +01:00
Michael Stefaniuc 120678c261 ddraw: Drop "Thunk_" from the names of the IDirect3DDevice2 methods. 2011-01-20 12:22:10 +01:00
Michael Stefaniuc f4acb9bb53 ddraw: Drop "Thunk_" from the names of the IDirect3DDevice methods. 2011-01-20 12:22:04 +01:00
Michael Stefaniuc 9745108096 ddraw: COM cleanup for the IDirectDraw7 iface. 2011-01-19 12:32:06 +01:00
Michael Stefaniuc cd8c18e83c ddraw: COM cleanup for the IDirectDraw4 iface. 2011-01-19 12:32:00 +01:00
Michael Stefaniuc 4202f09100 ddraw: COM cleanup for the IDirectDraw2 iface. 2011-01-19 12:31:45 +01:00
Michael Stefaniuc a59347fcd2 ddraw: COM cleanup for the IDirectDraw iface. 2011-01-19 12:31:12 +01:00
Michael Stefaniuc 497944f2bd ddraw: COM cleanup for the IDirect3D7 iface. 2011-01-19 12:31:04 +01:00
Michael Stefaniuc 97f9b02a26 ddraw: COM cleanup for the IDirect3D3 iface. 2011-01-19 12:30:58 +01:00
Michael Stefaniuc 2b80213578 ddraw: COM cleanup for the IDirect3D2 iface. 2011-01-18 13:29:59 +01:00
Michael Stefaniuc 8255d464db ddraw: COM cleanup for the IDirect3D iface. 2011-01-18 13:29:58 +01:00
Michael Stefaniuc b3ced2fa8a ddraw: Avoid some unsafe IDirect3D7 iface to IDirectDrawImpl transitions. 2011-01-18 13:29:57 +01:00
David Adam f8690a6bda ddraw: Remove a useless function. 2010-10-21 16:18:05 +02:00
Henri Verbeet 70f4e66f84 wined3d: IWineD3DBuffer_Unmap() can't fail. 2010-10-15 16:19:54 +02:00
Stefan Dösinger 7cfaf611d0 ddraw: Don't try to enumerate WINED3DFMT_R8G8B8A8_SNORM.
There is no ddraw equivalent for this format, as ddraw only supports 2
bump channels. Trying to enumerate this format will only lead to a
confusing (but correct) ERR message
2010-10-06 16:12:02 +02:00
Henri Verbeet 5fa84c56c3 ddraw: Remove another hack.
It breaks actual front buffer / back buffer flips.
2010-10-05 15:16:52 +02:00
Rico Schüller e6d52c0c8b wined3d: Add argument check for Type to Get/SetTextureStageState(). 2010-09-14 13:32:00 -05:00
Henri Verbeet fd7c1cbf05 wined3d: IWineD3DBuffer_GetDesc() should never fail. 2010-09-14 09:43:22 -05:00
Henri Verbeet b1a385db11 ddraw: Remove some stray tabs. 2010-09-08 13:32:00 +02:00
Henri Verbeet 83ff5b5041 ddraw: Handle D3DRENDERSTATE_TEXTUREHANDLE and D3DRENDERSTATE_TEXTUREMAPBLEND in d3d7. 2010-09-03 11:05:35 +02:00
Henri Verbeet 6c4c351791 wined3d: Don't require wined3d object parents to be COM objects. 2010-09-01 14:01:02 +02:00
Henri Verbeet 4005eb2a18 wined3d: Get rid of WINED3DRECT. 2010-08-31 14:23:47 +02:00
Henri Verbeet cc5271d1b7 wined3d: Rename WINED3DFORMAT to wined3d_format_id. 2010-08-24 12:25:01 +02:00
Henri Verbeet c3cdebcf44 ddraw: Make some lookup tables const. 2010-08-23 12:04:31 +02:00
Henri Verbeet 20a42b4c98 ddraw: Add / improve TRACEs. 2010-08-20 13:21:24 +02:00
Henri Verbeet 584cb331a9 ddraw: Add a separate function for execute buffer initialization. 2010-08-20 13:21:22 +02:00
Henri Verbeet a60c493986 ddraw: Add a separate function for device initialization. 2010-08-20 13:21:21 +02:00
Henri Verbeet c5a14085d4 ddraw: Remove unused / redundant includes. 2010-08-19 11:17:41 +02:00
Henri Verbeet fee9c1f2b5 ddraw: Remove a useless viewport callback. 2010-08-18 09:41:01 +02:00
Henri Verbeet 14399f6130 ddraw: Remove a useless material callback. 2010-08-18 09:40:55 +02:00
Henri Verbeet 3ad82a82bb wined3d: The stateblock doesn't have a parent. 2010-07-30 11:36:03 +02:00
Henri Verbeet 51a315386e ddraw: Use a less offensive handle table implementation for surfaces. 2010-07-30 11:36:03 +02:00
Henri Verbeet 91193b6eec ddraw: Use a less offensive handle table implementation for stateblocks. 2010-07-30 11:36:02 +02:00
Henri Verbeet 941aeade01 ddraw: Use a less offensive handle table implementation for matrices. 2010-07-29 17:33:36 +02:00
Henri Verbeet 0cb4de4542 ddraw: Use a less offensive handle table implementation for materials. 2010-07-29 17:33:35 +02:00
Henri Verbeet 6fb9ee0ee7 ddraw: Merge the ddraw thunks into ddraw.c.
Note how both ddraw 1 and ddraw 7 used the same IDirectDrawImpl_XXX naming
convention.
2010-07-20 13:13:04 +02:00
Mikko Rasa f18cb4c2f4 ddraw: Grow index buffer as needed. 2010-06-30 16:19:13 +02:00
Henri Verbeet f97a9e3c0f ddraw: Fix and clarify texture filter state mappings. 2010-04-06 11:48:59 +02:00
Henri Verbeet 1289842da3 wined3d: Move handling of the unimplemented WINED3DRS_STIPPLEPATTERN states to ddraw. 2010-04-02 10:36:06 +02:00
Henri Verbeet 2e5976a8c5 wined3d: Move handling of the unimplemented WINED3DRS_BORDERCOLOR state to ddraw. 2010-04-02 10:35:54 +02:00
Christian Costa 720aa5bf23 ddraw: Fix D3DTBLEND_MODULATE emulation.
Alpha source should be selected with WINED3DTSS_ALPHAOP and not by changing the source itself.
2010-02-15 12:51:09 +01:00
Stefan Dösinger 90e443758a wined3d: Add a parameter for SetRenderTarget viewport setup. 2009-11-03 21:21:30 +01:00
Stefan Dösinger e80144c403 d3d: Make EndScene calls hookable. 2009-10-14 12:21:06 +02:00
Henri Verbeet 47c84f4f7f wined3d: Use the DXGI naming convention for all formats. 2009-09-25 15:15:44 +02:00
Henri Verbeet 60e32659a7 wined3d: Rename IWineD3DDevice::SetIndices() to IWineD3DDevice::SetIndexBuffer(). 2009-09-25 15:14:44 +02:00
Henri Verbeet 2b2fc827ce wined3d: Remove unused parameters to drawPrimitive(). 2009-09-11 12:09:14 +02:00
Henri Verbeet ee60e5fd71 ddraw: Remove trailing spaces. 2009-09-01 14:06:03 +02:00
Henri Verbeet 7165bd19c1 wined3d: WINED3DTEXF_NONE only makes sense as a mip filter. 2009-08-05 11:20:43 +02:00
Andrew Talbot 99139d9671 ddraw: Constify some variables. 2009-07-24 11:44:17 +02:00
Gerald Pfeifer d1e5b3bf62 ddraw: Fix two bounds checks. 2009-06-22 11:44:19 +02:00
Henri Verbeet 88162fabb8 wined3d: Get rid of the pointers in WINED3DSURFACE_DESC. 2009-06-15 13:42:29 +02:00
David Adam 8681d49030 ddraw: Remove useless comments. 2009-04-21 16:30:04 +02:00
Stefan Dösinger cb1c9dcda9 d3d: Remove the format from index buffers. 2009-04-09 16:28:25 +02:00
Stefan Dösinger fd9b574e4e ddraw: Store the fvf in the ddraw buffer.
WineD3D buffer FVFs will go away soon.
2009-04-09 16:27:35 +02:00
Stefan Dösinger 513a493f00 wined3d: Merge IWineD3DIndexBuffer and IWineD3DBuffer. 2009-04-08 11:37:29 +02:00
Stefan Dösinger 3ed94329a3 wined3d: Use Map and Unmap for index buffers.
Just a change in name to prepare for the next patch
2009-04-08 11:36:18 +02:00
Stefan Dösinger dc80a3ede5 d3d: Unify WINED3DVERTEXBUFFER_DESC and WINED3DINDEXBUFFER_DESC. 2009-04-08 11:36:02 +02:00
Henri Verbeet 4194d8040f ddraw: Filter invalid texture stage states passed by the application. 2009-04-01 14:23:38 +02:00
Henri Verbeet 4434d00f84 wined3d: Unify vertex and texture formats.
Some fields should be redundant now, eg. gl_vtx_type and glType. I'll leave
that for a different patch to fix though.
2009-03-27 15:51:25 +01:00
Henri Verbeet d7c7c76850 wined3d: Use separate structures for ddraw style strided data and wined3d's internal stream info. 2009-03-27 15:51:25 +01:00
Henri Verbeet aa3027a604 wined3d: Merge IWineD3DVertexBuffer with IWineD3DBuffer.
That still leaves IWineD3DIndexBuffer, but that code is also mostly similar,
except for the conversion code (which will be unused there).
2009-03-06 15:35:58 +01:00
Henri Verbeet 702eeb6b0c wined3d: Add separate methods for setting the primitive type. 2009-03-05 16:16:25 +01:00
Henri Verbeet 602bb1f551 wined3d: Pass the vertex count rather than the primitive count to wined3d draw methods. 2009-03-05 16:16:24 +01:00
David Adam 22bfd1396c ddraw: Implement ComputeSphereVisibility. 2009-02-26 15:13:25 +01:00
Henri Verbeet 8cefc47d81 wined3d: Add DXGI formats to WINED3DFORMAT. 2009-02-20 11:10:37 +01:00
Vincent Pelletier f879176b99 ddraw: Use ddraw_from_d3d7 to make a (IDirectDrawImpl *) from a (IDirect3D7 *). 2009-02-10 12:31:50 +01:00
Henri Verbeet 9b5f3ed8f3 ddraw: Rename the main vtables to lpVtbl. 2009-01-22 15:28:22 +01:00
Henri Verbeet b09b0fbf95 ddraw: Get rid of ddcomimpl.h. 2009-01-22 12:05:14 +01:00
Henri Verbeet 802f9c7e29 ddraw: Get rid of ICOM_OBJECT. 2009-01-22 12:05:07 +01:00
Henri Verbeet 8c4cc2af46 ddraw: Get rid of ICOM_THIS_FROM. 2009-01-22 12:05:03 +01:00
Henri Verbeet 9a0c885e63 ddraw: Get rid of ICOM_INTERFACE. 2009-01-21 11:17:25 +01:00
Henri Verbeet ad171b143f ddraw: Get rid of ICOM_INIT_INTERFACE. 2009-01-21 11:16:51 +01:00
Henri Verbeet ba771f0fac ddraw: Fix Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(). 2009-01-20 12:34:20 +01:00
Michael Stefaniuc 5ee7a104c9 ddraw: Remove superfluous pointer casts. 2009-01-14 12:21:02 +01:00
Alexandre Julliard 149259d49f ddraw: Fix an uninitialized variable warning on non-i386. 2009-01-08 17:30:22 +01:00
Henri Verbeet cc447eac55 wined3d: Move position_transformed out of u.s in struct WineDirect3DVertexStridedData. 2009-01-08 13:21:31 +01:00
Henri Verbeet 352e60e6ed d3d: Explicitly translate texture stage states.
Ddraw and d3d8 already translate half of them, it turns out the lookup
table actually saves lines there.
2009-01-06 12:45:32 +01:00
Henri Verbeet c51bc826e8 ddraw: Properly handle sampler states. 2009-01-06 12:45:20 +01:00
Alexandre Julliard e1ced22db1 ddraw: Convert source files to utf-8. 2008-10-18 19:19:45 +02:00
Henri Verbeet 8299df900c ddraw: Remove a few more redundant inits (LLVM/Clang). 2008-10-10 12:27:28 +02:00
Andrew Talbot a697d99d66 ddraw: Sign-compare warnings fix. 2008-09-29 17:32:17 -05:00
Stefan Dösinger ddec94bf0f ddraw: Pass proper parameters to CheckDeviceFormat. 2008-09-02 14:56:45 +02:00
Stefan Dösinger d5f05c59c7 ddraw: Beware of the surface type when checking for format support. 2008-09-02 14:56:26 +02:00
David Adam bb67a925d6 ddraw: Only ddraw checks wether one can give a null pointer to SetMaterial. 2008-08-22 11:32:09 +02:00
Tobias Jakobi 69797d7f3d ddraw: Fix typo in copy_mipmap_chain. 2008-07-28 14:25:09 +02:00
Alexander Dorofeyev e2ff077697 ddraw: Improve IDirect3DDevice7_Load implementation.
Copies palette and colorkey earlier in the helper function, before
copying image, also skips UpdateSurface when palette is missing. This
prevents unnecessary surface (re)loads in wined3d, and gets rid of
some wined3d palette error messages in Sacrifice.
2008-07-22 15:20:33 +02:00
Alexander Dorofeyev cb5e06c944 ddraw: Implement FPU mode fixup in d3d7 device.
As documented in DirectX7 SDK, d3d7 devices set FPU mode (control word) on every 
call and restore it back to original state before returning, if created in 
DDSCL_FPUPRESERVE cooperative mode. This allows games to work with FPU in a 
possibly incompatible mode and avoid resetting it all the time.
2008-06-23 19:59:33 +02:00
Alexander Dorofeyev 17dacf90b2 ddraw: Fix some code unprotected by ddraw lock. 2008-05-12 19:41:46 +02:00
Francois Gouget 42a61d7ed7 Assorted spelling fixes. 2008-05-06 16:10:20 +02:00
Alexander Dorofeyev 7e8be9ecc0 ddraw: Add full implementation of IDirect3DDevice7_Load. 2008-05-06 11:26:10 +02:00
Alexander Dorofeyev 30221f7bcd ddraw: Fix some texture blending modes. 2008-05-05 19:55:30 +02:00
Alexander Dorofeyev 8f72961e50 ddraw: Move handling of D3DRENDERSTATE_TEXTUREMAPBLEND from d3ddevice2 to d3ddevice3. 2008-05-05 19:55:13 +02:00
Alexander Dorofeyev edaaf63bd6 ddraw: Move handling of D3DRENDERSTATE_TEXTUREHANDLE from d3ddevice7 to d3ddevice3.
As supported by tests, there is no reason for this state to be handled by 
d3ddevice7, and moving it to d3ddevice3 prepares for the changes in next patch 
(setting TEXTUREHANDLE state can then go through SetTexture of d3ddevice3).
2008-05-05 19:55:05 +02:00
Alexander Dorofeyev 3e237c6199 ddraw: Set active_device in AddViewport. 2008-04-11 13:04:26 +02:00