Henri Verbeet
99bfd81714
wined3d: Allow depth and stencil clears on surfaces other than the current depth / stencil buffer.
2011-04-06 12:05:06 +02:00
Matteo Bruni
77face22d5
wined3d: Get rid of context_validate.
...
It should not be needed anymore, now the wined3d context is implicitly
validated on GL context activation. The check itself wasn't reliable
because of some threading issues and it also brought a small performance hit.
2011-04-04 12:25:56 +02:00
Henri Verbeet
692aa004d0
wined3d: Rename "numContexts" to "context_count".
2011-03-31 12:37:47 +02:00
Henri Verbeet
8fe80e18b2
wined3d: Get rid of the IWineD3DBaseShader typedefs.
2011-03-31 12:37:47 +02:00
Henri Verbeet
f8f83ff2f7
wined3d: Remove COM from the shader implementation.
2011-03-31 12:37:46 +02:00
Henri Verbeet
5555d904be
wined3d: Get rid of IWineD3DBaseShaderClass.
2011-03-31 12:37:46 +02:00
Henri Verbeet
99bed5d41d
wined3d: Get rid of IWineD3DPixelShaderImpl.
2011-03-30 12:18:20 +02:00
Henri Verbeet
4674b94d23
wined3d: Get rid of struct wined3d_geometryshader.
2011-03-30 12:18:14 +02:00
Henri Verbeet
dab01d435e
wined3d: Get rid of IWineD3DVertexShaderImpl.
2011-03-30 12:18:09 +02:00
Henri Verbeet
3d4fe0b750
wined3d: Get rid of IWineD3DPixelShader.
2011-03-30 12:18:03 +02:00
Henri Verbeet
9ea2ee5f4e
wined3d: Get rid of IWineD3DGeometryShader.
2011-03-30 12:17:56 +02:00
Henri Verbeet
49725ba583
wined3d: Get rid of IWineD3DVertexShader.
2011-03-30 12:17:51 +02:00
Henri Verbeet
c5bf96c951
wined3d: Get rid of IWineD3DBaseTextureClass.
2011-03-29 12:34:40 +02:00
Henri Verbeet
eb5bfad18d
wined3d: Get rid of the IWineD3DBaseTexture typedefs.
2011-03-28 17:08:52 +02:00
Henri Verbeet
fd8e18bd2b
wined3d: Remove COM from the texture implementation.
2011-03-28 17:08:52 +02:00
Henri Verbeet
afa93a5b58
wined3d: Get rid of IWineD3DCubeTextureImpl.
2011-03-18 15:59:04 +01:00
Henri Verbeet
b8c40f3a7e
wined3d: Get rid of IWineD3DCubeTexture.
2011-03-18 15:59:04 +01:00
Henri Verbeet
b17d64923e
wined3d: Don't use surface_from_resource() to retrieve volumes.
...
This happened to work because the field offsets are the same.
2011-03-17 10:42:09 +01:00
Henri Verbeet
2d4bce87ba
wined3d: Get rid of IWineD3DTextureImpl.
2011-03-17 10:41:41 +01:00
Henri Verbeet
f1ec3820d7
wined3d: Get rid of IWineD3DTexture.
2011-03-17 10:40:52 +01:00
Stefan Dösinger
0fc6381bc7
wined3d: Check the framebuffer setup in ValidateDevice.
2011-03-16 16:31:53 +01:00
Stefan Dösinger
38c213ecda
wined3d: Ignore clears when the framebuffer setup is broken.
2011-03-16 16:31:53 +01:00
Henri Verbeet
f77c0e36a4
wined3d: Get rid of IWineD3DVolumeTextureImpl.
2011-03-16 14:14:22 +01:00
Henri Verbeet
ed0037854a
wined3d: Get rid of IWineD3DVolumeTexture.
2011-03-16 14:14:21 +01:00
Henri Verbeet
8809ebdf79
wined3d: Generalize GetSurfaceLevel() / GetVolumeLevel() to GetSubResource().
2011-03-10 12:53:04 +01:00
Henri Verbeet
ac9c592ca9
wined3d: Store all the resource desc information in struct wined3d_resource.
2011-03-09 12:29:17 +01:00
Henri Verbeet
bea8d0a713
wined3d: Get rid of the IWineD3DBuffer typedef.
2011-03-04 16:25:58 +01:00
Henri Verbeet
a27ee75ed2
wined3d: Remove COM from the buffer implementation.
2011-03-04 16:25:58 +01:00
Henri Verbeet
39aa477e4c
wined3d: Pass gl_info to surface_bind().
2011-03-04 16:25:58 +01:00
Henri Verbeet
1de6adfbae
wined3d: Make IWineD3DResourceImpl an independent structure.
2011-03-01 13:21:59 +01:00
Henri Verbeet
39497ff4d1
wined3d: Remove IWineD3DResource::UnLoad() from the public interface.
2011-02-28 11:09:48 +01:00
Henri Verbeet
1da773ff4d
wined3d: Merge device_unload_resource() and reset_unload_resources().
2011-02-28 11:09:38 +01:00
Henri Verbeet
14c3387fc2
wined3d: Get rid of the IWineD3DQuery typedefs.
2011-02-04 15:25:32 +01:00
Henri Verbeet
e1815f5e3b
wined3d: Get rid of the IWineD3DPalette typedefs.
2011-02-03 13:15:17 +01:00
Henri Verbeet
fe3cfb3e8e
wined3d: Get rid of the IWineD3DVertexDeclaration typedefs.
2011-02-03 13:15:17 +01:00
Henri Verbeet
5765632d9f
wined3d: Remove COM from the vertex declaration.
2011-02-03 13:15:17 +01:00
Henri Verbeet
074977d404
wined3d: Get rid of the IWineD3D typedefs.
2011-02-02 12:22:53 +01:00
Henri Verbeet
36d4268e3c
wined3d: Remove COM from IWineD3D.
2011-02-02 12:22:42 +01:00
Henri Verbeet
96d225d4dd
wined3d: Get rid of the IWineD3DStateBlockImpl typedef.
2011-01-31 12:25:05 +01:00
Henri Verbeet
b98cd5d982
wined3d: Get rid of the IWineD3DStateBlock typedef.
2011-01-31 12:25:01 +01:00
Henri Verbeet
4b109ff1f8
wined3d: Remove COM from the stateblock.
2011-01-31 12:24:58 +01:00
Henri Verbeet
a538d28f28
wined3d: Set color / depth / stencil surfaces to NULL before releasing them in IWineD3DDeviceImpl_Uninit3D().
2011-01-31 12:24:55 +01:00
Henri Verbeet
1b726498ed
wined3d: Set all render targets to NULL in IWineD3DDeviceImpl_Uninit3D().
2011-01-28 11:58:06 +01:00
Henri Verbeet
2469597e2a
wined3d: Verify we have at least one framebuffer attachment before doing clears or draws.
2011-01-27 14:13:39 +01:00
Henri Verbeet
ce050c89de
wined3d: Get rid of IWineD3DSurface::GetData().
2011-01-21 18:37:09 +01:00
Henri Verbeet
629d81b192
wined3d: Remove IWineD3DSurface::BindTexture() from the public interface.
2011-01-21 18:37:04 +01:00
Henri Verbeet
227efbbf65
wined3d: Store a pointer to an array of IWineD3DSwapChainImpl pointers in the device.
2011-01-20 12:19:04 +01:00
Henri Verbeet
e42e5247dd
wined3d: Pass an IWineD3DResourceImpl pointer to wined3d_rendertarget_view_init().
2011-01-18 12:32:01 +01:00
Henri Verbeet
c28d6f38af
wined3d: Pass an IWineD3DResourceImpl pointer to context_resource_released().
2011-01-17 13:22:06 +01:00
Henri Verbeet
834b599e19
wined3d: Pass an IWineD3DResourceImpl pointer to device_resource_released().
2011-01-17 13:22:06 +01:00
Henri Verbeet
852ac57db6
wined3d: Pass an IWineD3DResourceImpl pointer to device_resource_add().
2011-01-17 13:22:06 +01:00
Henri Verbeet
2ad540cea5
wined3d: Pass an IWineD3DResourceImpl pointer to device_resource_remove().
2011-01-17 13:22:06 +01:00
Henri Verbeet
d72520b5cc
wined3d: Remove IWineD3DBaseTexture::BindTexture() from the public interface.
2011-01-05 17:22:01 +01:00
Henri Verbeet
f9a1e8813e
wined3d: Pass an IWineD3DDeviceImpl pointer to create_primary_opengl_context().
2011-01-05 17:21:47 +01:00
Henri Verbeet
7e0909d058
wined3d: Pass an IWineD3DDeviceImpl pointer to delete_opengl_contexts().
2011-01-05 17:21:37 +01:00
Henri Verbeet
3a59137b09
wined3d: Pass an IWineD3DBaseTextureImpl pointer to internal_preload().
2011-01-04 11:09:52 +01:00
Henri Verbeet
fe2ffe1e6a
wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_destroy().
2010-12-13 16:24:23 +01:00
Henri Verbeet
7f09eb6a7a
wined3d: Pass an IWineD3DDeviceImpl pointer to free_private().
2010-12-09 12:14:31 +01:00
Henri Verbeet
4ba3b64c57
wined3d: Pass an IWineD3DDeviceImpl pointer to alloc_private().
2010-12-09 12:14:25 +01:00
Henri Verbeet
5fc53941ef
wined3d: Pass a wined3d_buffer structure to buffer_get_memory().
2010-12-08 11:27:40 +01:00
Henri Verbeet
a4477fea4a
wined3d: Pass an IWineD3DDeviceImpl pointer to free_private().
2010-12-02 11:54:15 +01:00
Henri Verbeet
6b9118e462
wined3d: Pass an IWineD3DDeviceImpl pointer to alloc_private().
2010-12-02 11:54:10 +01:00
Henri Verbeet
f45aeb4abe
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_free_private().
2010-12-01 11:09:08 +01:00
Henri Verbeet
4a69874938
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_alloc_private().
2010-12-01 11:09:02 +01:00
Henri Verbeet
77923346da
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_update_float_pixel_constants().
2010-12-01 11:08:57 +01:00
Henri Verbeet
4a6d0da207
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_update_float_vertex_constants().
2010-12-01 11:08:51 +01:00
Henri Verbeet
363d8a316e
wined3d: Pass an IWineD3DDeviceImpl pointer to drawPrimitive().
2010-11-30 10:57:10 +01:00
Henri Verbeet
03f7a2d88e
wined3d: Get rid of the remaining "Flags".
2010-11-23 13:15:36 +01:00
Henri Verbeet
efb185dcd5
wined3d: Rename the wined3d_format "Flags" field to "flags".
2010-11-12 15:43:08 +01:00
Henri Verbeet
027fdb31c2
wined3d: Rename the IWineD3DSurfaceImpl "Flags" field to "flags".
2010-11-12 15:43:07 +01:00
Henri Verbeet
7e3985e1fe
ddraw: Setup the device window in SetCooperativeLevel().
2010-11-08 13:30:54 +01:00
Henri Verbeet
b898130a11
wined3d: Do not activate the window when restoring the styles.
...
This is consistent with device_setup_fullscreen_window(), and ddraw actually
has a test for this in ddrawmodes.c. (Although it doesn't actually use
device_setup_fullscreen_window() until the next patch.)
2010-11-08 13:30:46 +01:00
Henri Verbeet
45cee64295
wined3d: Move the fullscreen window setup / restore code to the device.
2010-11-08 13:30:40 +01:00
Henri Verbeet
feaf81f60d
wined3d: Use SetWindowPos() to make the focus window active.
2010-11-05 17:15:37 +01:00
Michael Stefaniuc
809741d5ae
wined3d: Move the checkGLcall() right after the corresponding GL call.
2010-11-05 17:15:34 +01:00
Henri Verbeet
b66478dfbc
wined3d: Set an A window proc on non-unicode windows.
2010-11-02 13:17:25 +01:00
Henri Verbeet
1b2f9d29d7
wined3d: Get rid of the posFixup field from the device.
2010-10-26 11:58:12 +02:00
Henri Verbeet
6dd9109358
wined3d: Pass a sub-resource index instead of a face + miplevel to cube texture methods.
2010-10-25 14:29:31 +02:00
Henri Verbeet
95469309d6
wined3d: Consistently use Map/Unmap for mapping resources.
2010-10-14 17:54:52 +02:00
Henri Verbeet
3c45bba11e
wined3d: Add traces to IWineD3DDeviceImpl_AcquireFocusWindow() / IWineD3DDeviceImpl_ReleaseFocusWindow().
2010-10-11 17:11:34 +02:00
Henri Verbeet
a59d0f45c1
wined3d: Acquire / release the focus window during reset.
2010-10-06 14:42:08 +02:00
Henri Verbeet
e1b96eb347
wined3d: Set the depth/stencil buffer to NULL before releasing it.
...
To prevent device_resource_released() from detecting it as still in use.
2010-10-05 15:16:56 +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
Henri Verbeet
5097623dcf
wined3d: Pass a wined3d_state structure to device_preload_texture().
2010-09-30 17:51:16 +02:00
Henri Verbeet
a7ded9a67d
wined3d: Pass a wined3d_state structure to use_ps().
2010-09-28 17:33:17 +02:00
Henri Verbeet
9224751a13
wined3d: Pass a wined3d_state structure to use_vs().
2010-09-28 17:33:17 +02:00
Henri Verbeet
e59fdb83a6
wined3d: Simply refuse to create shaders if they're disabled.
...
The functionality is a bit questionable in the first place, but there is some
use in the part that limits the maximum reported shader versions.
2010-09-28 17:33:16 +02:00
Henri Verbeet
d6d345fa8a
wined3d: Remove IWineD3DStateBlock::InitStartupStateBlock() from the public wined3d interface.
2010-09-28 17:33:16 +02:00
Henri Verbeet
f870cf07e8
wined3d: Move clip status to wined3d_state.
2010-09-22 12:41:22 +02:00
Henri Verbeet
9ce3c61a41
wined3d: Move clip plane state to wined3d_state.
2010-09-22 12:41:18 +02:00
Henri Verbeet
4546a13d98
wined3d: Move light state to wined3d_state.
2010-09-22 12:41:13 +02:00
Henri Verbeet
f4df53c41a
wined3d: Move the primitive type to wined3d_state.
2010-09-22 12:41:06 +02:00
Henri Verbeet
98a91e84bc
wined3d: Move base vertex state to wined3d_state.
2010-09-21 14:17:07 +02:00
Henri Verbeet
902630efb5
wined3d: Move index buffer state to wined3d_state.
2010-09-21 14:17:03 +02:00
Henri Verbeet
153d8d43aa
wined3d: Move stream state to wined3d_state.
2010-09-21 14:16:58 +02:00
Henri Verbeet
b37ce45d6c
wined3d: Move pixel shader constants to wined3d_state.
2010-09-20 13:48:13 +02:00
Henri Verbeet
33dfb9539c
wined3d: Move the pixel shader to wined3d_state.
2010-09-20 13:48:13 +02:00
Henri Verbeet
8a148cc7c5
wined3d: Move vertex shader constants to wined3d_state.
2010-09-20 13:48:12 +02:00
Henri Verbeet
dd4aea36c9
wined3d: Move the vertex shader to wined3d_state.
2010-09-20 13:48:12 +02:00
Henri Verbeet
e31ea51bab
wined3d: Move the vertex declaration to wined3d_state.
2010-09-18 13:05:54 +02:00
Henri Verbeet
d728d5f0ec
wined3d: Move texture bindings to wined3d_state.
2010-09-18 13:05:49 +02:00
Henri Verbeet
5a3a4ac77a
wined3d: Remove IWineD3DBaseTexture::GetTextureDimensions() from the public wined3d interface.
2010-09-18 13:05:44 +02:00
Henri Verbeet
8fdfc736bf
wined3d: Move sampler states to wined3d_state.
2010-09-16 10:12:24 -05:00
Henri Verbeet
5b3c1a2082
wined3d: Move texture states to wined3d_state.
2010-09-16 10:12:17 -05:00
Henri Verbeet
597da9907a
wined3d: Move transforms to wined3d_state.
2010-09-16 10:12:06 -05:00
Henri Verbeet
5f6ced2767
wined3d: Move the material to wined3d_state.
2010-09-16 10:11:57 -05:00
Henri Verbeet
16d9c91b97
wined3d: Move the viewport to wined3d_state.
2010-09-15 10:33:26 -05:00
Henri Verbeet
937eb7e600
wined3d: Move the scissor rect to wined3d_state.
2010-09-15 10:33:20 -05:00
Henri Verbeet
1ef4f075c1
wined3d: Introduce a separate structure for stateblock states.
...
We'd like to not pass an entire stateblock to things like state handlers and
the shader backend, because those then use the stateblock to get to the
device and through there to all the rest of wined3d. This would also be
required for serialization of wined3d draw and state change commands into a
single GL context. Resource updates would be explicitly excluded from
serialization.
2010-09-15 10:33:14 -05:00
Rico Schüller
e6d52c0c8b
wined3d: Add argument check for Type to Get/SetTextureStageState().
2010-09-14 13:32:00 -05:00
Henri Verbeet
6ce848bee4
wined3d: Introduce a structure for stream state.
2010-09-14 11:43:54 -05:00
Henri Verbeet
b68d257710
wined3d: Get rid of redundant comparisons against NULL / 0.
2010-09-14 09:43:33 -05:00
Henri Verbeet
07b5c4becf
wined3d: Getting the current pixel shader should never fail.
2010-09-07 11:23:31 +02:00
Henri Verbeet
0c54dfe7ba
wined3d: Getting the current vertex shader should never fail.
2010-09-07 11:23:27 +02:00
Henri Verbeet
8e0cb60b09
wined3d: Do not call device_switch_onscreen_ds() while under the GL lock.
2010-09-06 16:14:18 +02:00
Henri Verbeet
e998fffc8f
wined3d: Do not mark invalid blend matrices dirty.
2010-09-03 11:05:24 +02:00
Henri Verbeet
5a7091b8f7
wined3d: Do not preload buffers while under the GL lock in process_vertices_strided().
2010-09-03 11:05:19 +02:00
Henri Verbeet
bc2db78c3a
wined3d: Explicitly document some more consequences of GL locking policy.
...
The basic rule is that you can't call anything that takes the user32 / gdi32
lock while under the GL (winex11) lock. As a consequence, you can't call
anything like context_acquire() or context_destroy() either.
2010-09-03 11:05:10 +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
7c675b522a
wined3d: Queries don't need parents.
2010-09-01 12:40:08 +02:00
Henri Verbeet
2ef400901d
wined3d: Devices don't need parents.
2010-09-01 12:40:07 +02:00
Henri Verbeet
3a7f08a56f
wined3d: Rename wined3d_format_desc to wined3d_format.
2010-08-31 14:23:47 +02:00
Henri Verbeet
c568916f9e
wined3d: Implicit depth/stencil surfaces don't have a container.
...
They're owned by the device instead of the swapchain.
2010-08-31 14:23:47 +02:00
Henri Verbeet
4005eb2a18
wined3d: Get rid of WINED3DRECT.
2010-08-31 14:23:47 +02:00
Henri Verbeet
0a28300c49
wined3d: Use surface_color_fill() in IWineD3DDeviceImpl_ClearRendertargetView().
2010-08-30 11:26:46 +02:00
Henri Verbeet
c689280beb
wined3d: Use surface_color_fill() in IWineD3DDeviceImpl_ColorFill().
2010-08-30 11:26:45 +02:00
Henri Verbeet
b233e7b301
wined3d: Rename the "format" field in wined3d_format_desc to "id".
2010-08-26 12:41:44 +02:00
Henri Verbeet
22428d97e1
wined3d: Don't set a NULL container of type WINED3D_CONTAINER_TEXTURE.
...
Any container type other than WINED3D_CONTAINER_NONE implies a valid pointer
of the specified type. This fixes a regression introduced by
368e5eb87a
.
2010-08-26 12:41:34 +02:00
Henri Verbeet
cc5271d1b7
wined3d: Rename WINED3DFORMAT to wined3d_format_id.
2010-08-24 12:25:01 +02:00
Henri Verbeet
0df144164b
wined3d: Pass floating point colors to IWineD3DDeviceImpl_ColorFill().
2010-08-24 12:24:43 +02:00
Henri Verbeet
9956ea7044
wined3d: Convert from floating point to specific surface formats.
...
Instead of from WINED3DFMT_B8G8R8A8_UNORM.
2010-08-24 12:24:33 +02:00
Henri Verbeet
a455a918c1
wined3d: Explicitly pass the draw rect to device_clear_render_targets().
...
For regular clears this is the intersection of the viewport and scissor
rectangles, but color fills shouldn't be affected by those.
2010-08-24 12:24:28 +02:00
Henri Verbeet
b93a9b37fa
wined3d: Pass a WINED3DCOLORVALUE structure to IWineD3DDeviceImpl_ClearRendertargetView().
...
The structure is nicer to work with than the array.
2010-08-23 12:05:24 +02:00
Henri Verbeet
6e09d7bd60
wined3d: Cleanup device_resource_released().
...
In particular, releasing a resource that's in use by the device or the
stateblock is always an internal error in either wined3d or the relevant
wined3d client library.
2010-08-18 09:41:32 +02:00
Henri Verbeet
35b9d3dbd8
wined3d: Release the previous render target only after replacing it in IWineD3DDeviceImpl_SetRenderTarget().
2010-08-18 09:41:26 +02:00
Henri Verbeet
8292c687d8
wined3d: Get rid of the now redundant SFLAG_SWAPCHAIN surface flag.
2010-08-17 11:55:32 +02:00
Henri Verbeet
0b24db5db5
wined3d: Also store the subresource container type.
2010-08-17 11:55:32 +02:00
Henri Verbeet
61db577a4b
wined3d: Remove SetContainer() from the public IWineD3DSurface interface.
2010-08-17 11:55:32 +02:00
Henri Verbeet
a16cf58494
wined3d: Fix a couple of typos.
2010-08-16 13:47:53 +02:00
Henri Verbeet
b20df2a24c
wined3d: Round up to complete compressed blocks in IWineD3DDeviceImpl_UpdateSurface().
...
This is mostly an issue for surfaces with dimensions smaller than their
format's block width/height.
2010-08-16 13:47:49 +02:00
Henri Verbeet
e1188b0c8e
wined3d: Fix some misspellings of "surface".
2010-08-16 13:47:17 +02:00
Henri Verbeet
5f2fcfdd6b
wined3d: Reattach FBO attachments when any of the corresponding surfaces is unloaded.
2010-08-16 13:47:08 +02:00
Henri Verbeet
43a86d1e56
wined3d: Cleanup Get/SetDepthStencilSurface().
2010-08-04 13:24:17 +02:00
Henri Verbeet
009cd78fa4
wined3d: Cleanup Get/SetRenderTarget().
2010-08-04 13:24:14 +02:00
Henri Verbeet
6e30387f81
wined3d: Replace color_fill_fbo() with device_clear_render_targets().
2010-08-04 13:24:07 +02:00
Henri Verbeet
b2e1e1fd71
wined3d: Pass the color as floating point values to device_clear_render_targets().
2010-08-03 11:06:42 +02:00
Stefan Dösinger
fc5eeebe1a
wined3d: Add double to float conversion casts in device.c.
2010-08-02 12:55:22 +02:00
Stefan Dösinger
8db119b700
wined3d: Use the correct type in device_unit_free_for_vs.
2010-07-30 11:41:59 +02:00
Henri Verbeet
237f39377f
wined3d: Move the draw buffer array to the context.
2010-07-30 11:36:03 +02:00
Henri Verbeet
3ad82a82bb
wined3d: The stateblock doesn't have a parent.
2010-07-30 11:36:03 +02:00
Henri Verbeet
41346a1dae
wined3d: Setting render target 0 to NULL in an application error.
2010-07-28 12:22:55 +02:00
Henri Verbeet
3e37b27d37
wined3d: Cleanup Get/SetRenderState traces a bit.
2010-07-26 18:38:31 +02:00
Henri Verbeet
0bf68b846a
wined3d: Merge strect_rect_fbo() and surface_load_srgb_fbo().
2010-07-26 18:38:31 +02:00
Henri Verbeet
943fb2fb57
wined3d: Do RGB <=> sRGB transfers using FBO blits.
...
Concept based on a patch by Stefan.
2010-07-26 18:38:31 +02:00
Henri Verbeet
2f028f0340
wined3d: Avoid loading the destination surface in stretch_rect_fbo() if it will be completely overwritten.
2010-07-23 11:46:55 +02:00
Henri Verbeet
d374d85055
wined3d: Clear all render targets in an MRT setup.
2010-07-23 11:46:47 +02:00
Henri Verbeet
3d8ff7f27a
wined3d: Framebuffer blits are affected by the color mask.
2010-07-22 10:13:36 +02:00
Henri Verbeet
f7760656f3
wined3d: Remove LoadLocation() from the public wined3d surface interface.
2010-07-22 10:13:24 +02:00
Henri Verbeet
147f24dd78
wined3d: Remove ModifyLocation() from the public wined3d surface interface.
2010-07-22 10:13:13 +02:00
Henri Verbeet
c411b45da9
wined3d: Use a more consistent name for the normalized texrect "extension".
2010-07-21 09:33:18 +02:00
Henri Verbeet
3ecaa4a41a
wined3d: Invalidate STATE_STREAMSRC in IWineD3DDeviceImpl_EvictManagedResources().
2010-07-08 17:33:37 +02:00
Henri Verbeet
e8ac9bbd7f
wined3d: Get rid of GLINFO_LOCATION.
2010-05-25 13:29:00 +02:00
Michael Stefaniuc
6d89364ad1
wined3d: Avoid using the long type.
2010-05-21 18:58:04 +02:00
Henri Verbeet
11b8c425e9
wined3d: Set the device.c GLINFO_LOCATION to *gl_info.
2010-05-21 14:37:53 +02:00
Henri Verbeet
5dff410254
wined3d: Explicitly pass GL info to buffer_get_sysmem().
2010-05-21 14:37:52 +02:00
Henri Verbeet
e647309402
wined3d: Explicitly pass GL info to buffer_create_buffer_object().
2010-05-21 14:37:52 +02:00
Henri Verbeet
db0784e1da
wined3d: Introduce a separate function for translating front buffer coordinates to GL coordinates.
2010-05-21 14:37:52 +02:00
Roderick Colenbrander
ee9b409fce
wined3d: Use BltFast in UpdateSurface when desc.convert is set.
2010-05-17 14:44:09 +02:00
Henri Verbeet
44ab3d70f1
wined3d: Handle depth/stencil surfaces in IWineD3DSurfaceImpl_LoadLocation().
2010-05-17 13:19:40 +02:00
Alexandre Julliard
e45926d582
wined3d: Don't crash during initialization if the adapter doesn't have full GL info.
2010-05-06 14:57:21 +02:00
Henri Verbeet
3345146d0b
wined3d: Use the FBO cache in stretch_rect_fbo().
2010-05-06 14:17:24 +02:00
Henri Verbeet
8de7d2ed4c
wined3d: Use context_apply_clear_state() in color_fill_fbo().
2010-05-05 10:37:43 +02:00
Henri Verbeet
ed75f5ca7a
wined3d: Setup the FBO for the correct target in context_apply_clear_state().
2010-05-05 10:37:40 +02:00
Henri Verbeet
312bacec96
wined3d: Remove a redundant check from prepare_ds_clear().
...
The rectangle count doesn't really matter. If the first rectangle doesn't
cover the entire draw_rect we need to load the depth/stencil surface.
2010-05-04 13:14:59 +02:00
Henri Verbeet
49e076eabd
wined3d: Separate context acquisition and state application.
2010-05-04 13:14:59 +02:00
Henri Verbeet
0122cee51f
wined3d: Make sure all fields of the shader backend caps are always initialized.
2010-05-03 13:50:57 +02:00
Henri Verbeet
d5b68e7640
wined3d: Make sure all fields of the fragment pipe caps are always initialized.
2010-05-03 13:50:45 +02:00
Henri Verbeet
f09b8e454d
wined3d: Avoid some needless depth buffer copies.
...
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Henri Verbeet
7b80c7d8c0
wined3d: Make "clear_rect" a RECT in IWineD3DDeviceImpl_ClearSurface().
2010-04-28 07:31:53 -05:00
Henri Verbeet
772fe683fa
wined3d: Introduce device_get_draw_rect() to calculate the effective viewport.
2010-04-28 07:31:40 -05:00
Henri Verbeet
23a377f02b
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_init_sysmem().
2010-04-28 07:31:13 -05:00
Henri Verbeet
d977e91b11
wined3d: Store back buffer surfaces as IWineD3DSurfaceImpl pointers in the swapchain.
2010-04-27 12:02:14 -05:00
Henri Verbeet
62acb2fdbc
wined3d: Store the front buffer surface as an IWineD3DSurfaceImpl pointer in the swapchain.
2010-04-27 12:01:59 -05:00
Henri Verbeet
d1ea48b971
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_internal_preload().
2010-04-26 09:04:35 -05:00
Henri Verbeet
c56d3c199c
wined3d: Add a missing newline to a TRACE in IWineD3DDeviceImpl_UpdateSurface().
2010-04-26 09:04:25 -05:00
Henri Verbeet
158a001859
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to color_fill_fbo().
2010-04-22 11:28:22 +02:00
Henri Verbeet
6b34b8e6d1
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_acquire().
2010-04-22 11:28:17 +02:00
Henri Verbeet
1c403e44b5
wined3d: Store the current render target as an IWineD3DSurfaceImpl pointer in the context.
2010-04-22 11:28:12 +02:00
Henri Verbeet
660ad06692
wined3d: Simply pass implementation pointers to stretch_rect_fbo().
2010-04-21 11:57:32 +02:00
Henri Verbeet
79a014a505
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_get_gl_buffer().
2010-04-21 11:57:32 +02:00
Henri Verbeet
7b47dabd09
wined3d: Avoid some unnecessary invalidations of the the onscreen depth buffer.
...
This can happen for example when the application switches to a different
depth/stencil for offscreen rendering and back again.
2010-04-21 11:57:32 +02:00
Henri Verbeet
4f004a5565
wined3d: Move location loading and modification together in IWineD3DDeviceImpl_ClearSurface().
2010-04-21 11:57:32 +02:00
Henri Verbeet
fb189b39a9
wined3d: Immediately return on redundant changes in IWineD3DDeviceImpl_SetDepthStencilSurface().
2010-04-20 11:14:52 +02:00
Henri Verbeet
5056fd309d
wined3d: Get rid of a useless local variable in IWineD3DDeviceImpl_SetDepthStencilSurface().
2010-04-20 11:14:48 +02:00
Henri Verbeet
c5de1e1045
wined3d: Store the depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device.
2010-04-20 11:14:42 +02:00
Henri Verbeet
520f74de21
wined3d: Store the auto depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device.
2010-04-20 11:14:35 +02:00
Henri Verbeet
c7a1848656
wined3d: Store render targets as IWineD3DSurfaceImpl pointers in the device.
2010-04-20 11:14:30 +02:00
Henri Verbeet
03dc612c9c
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_is_offscreen().
2010-04-19 14:55:31 +02:00
Henri Verbeet
efb3993a3a
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_modify_ds_location().
2010-04-19 14:55:24 +02:00
Henri Verbeet
ae46589f53
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_load_ds_location().
2010-04-19 14:55:19 +02:00
Henri Verbeet
738ca2f5fc
wined3d: Allow offscreen depth/stencil clears again with FBOs.
...
This fixes a regression introduced by 10f58c14bc
.
2010-04-16 16:24:40 +02:00
Henri Verbeet
f6e923b55d
wined3d: Remove some dead code from IWineD3DDeviceImpl_Uninit3D().
2010-04-16 12:09:48 +02:00
Henri Verbeet
95130a7d5e
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_surface_fbo().
2010-04-16 12:09:36 +02:00
Henri Verbeet
65797d7f75
wined3d: Get rid of glRect from IWineD3DSurfaceImpl.
...
604caf0caa
supposedly removed the "oversized
texture" code, but this was still left over.
2010-04-16 12:09:14 +02:00
Roderick Colenbrander
10f58c14bc
wined3d: Improve FBO support in ClearSurface.
2010-04-15 14:20:40 +02:00
Henri Verbeet
8eb2a2cf0c
wined3d: Disable strict draw ordering by default.
...
While some performance hit from the extra flushes was expected and would be
acceptable, the performance hit can be over 50% on some configurations, which
clearly isn't acceptable. This patch introduces a "StrictDrawOrdering"
registry key for applications affected by this, until we have a more
structural solution.
2010-04-13 21:13:36 +02:00
Henri Verbeet
ab80e9739c
wined3d: Add a separate function for palette initialization.
2010-04-13 21:13:26 +02:00
Henri Verbeet
d1d8c81439
wined3d: Add a separate function for rendertarget view initialization.
2010-04-13 21:13:21 +02:00
Roderick Colenbrander
a4559e761b
wined3d: Move srgb checks away from d3dfmt_get_conv.
2010-04-09 16:50:20 +02:00
Roderick Colenbrander
00598c3e36
wined3d: Let d3dfmt_get_conv return a wined3d_format_desc.
2010-04-09 16:50:20 +02:00
Alexandre Julliard
90f4ae6948
wined3d: Remove unused offset parameter in buffer_get_memory.
2010-04-09 15:47:23 +02:00
Henri Verbeet
55a96174c8
wined3d: Add a separate function for adding declaration elements in ConvertFvfToDeclaration().
2010-04-07 13:50:23 +02:00
Henri Verbeet
224c376528
wined3d: Make some functions static.
2010-04-05 11:37:34 +02:00
Henri Verbeet
fcee05586b
wined3d: Simply inline dumpResources().
2010-04-05 11:37:28 +02:00
Roderick Colenbrander
ff82e66a69
wined3d: Move upsideDown calculation to blit implementation.
2010-04-02 15:22:51 +02:00
Henri Verbeet
91db9f8bd3
wined3d: Remove a redundant initialization in IWineD3DDeviceImpl_UpdateSurface().
2010-03-31 16:32:41 +02:00
Henri Verbeet
3af0909693
wined3d: Get rid of some mostly useless local variables in IWineD3DDeviceImpl_UpdateSurface().
2010-03-31 16:32:35 +02:00
Henri Verbeet
61ca407151
wined3d: Cleanup variable naming in IWineD3DDeviceImpl_UpdateSurface().
2010-03-31 16:32:29 +02:00
Stefan Dösinger
19b6f5ca75
wined3d: Control the onscreen depth stencil format in the swapchain.
...
This allows the swapchain to know what depth format its window contexts have to see if the
requested depth format is compatible or a FBO fallback is needed, and it will be needed to
set the onscreen format to the requested auto depth stencil format instead of the
let's-hope-it-fits D24_UNORM_S8_UINT format.
2010-03-31 16:12:31 +02:00
Roderick Colenbrander
ae26d9defd
wined3d: Use RECT instead of WINED3DRECT in stretch_rect_fbo.
2010-03-31 16:12:27 +02:00
Henri Verbeet
72be7fe3a5
wined3d: Get rid of destFormat and srcFormat in IWineD3DDeviceImpl_UpdateSurface().
2010-03-30 14:49:32 +02:00
Henri Verbeet
eced5fe8ec
wined3d: Calculate "offset" in the appropriate path in IWineD3DDeviceImpl_UpdateSurface().
2010-03-30 14:49:32 +02:00
Henri Verbeet
bb94bc3823
wined3d: Add more general support for partial updates of compressed surfaces to IWineD3DDeviceImpl_UpdateSurface().
2010-03-30 14:49:31 +02:00
Henri Verbeet
88a2decc49
wined3d: Source and destination formats should match in IWineD3DDeviceImpl_UpdateSurface().
2010-03-30 14:49:31 +02:00
Henri Verbeet
0eae42ddc6
wined3d: Use GL_UNPACK_ROW_LENGTH for partial updates of regular surfaces in IWineD3DDeviceImpl_UpdateSurface().
2010-03-30 14:49:31 +02:00
Roderick Colenbrander
f724843f14
wined3d: Move argb_to_fmt to utils.c as a helper function to be used in more places.
2010-03-30 13:53:54 +02:00
Michael Stefaniuc
6997c8d70c
wined3d: Remove superfluous cast of zero.
2010-03-29 11:49:58 +02:00
Henri Verbeet
eb064db083
wined3d: Add support for partial updates of compressed surfaces to IWineD3DDeviceImpl_UpdateSurface().
2010-03-26 10:29:39 +01:00
Henri Verbeet
d5ff1e640c
wined3d: glColorMask() changes the write mask for all render targets.
2010-03-26 10:29:17 +01:00
Henri Verbeet
9866125e23
wined3d: Just mark the color write mask dirty in IWineD3DDeviceImpl_ClearSurface().
2010-03-25 10:01:59 +01:00
Henri Verbeet
9eb5ba435e
wined3d: Use the same order of operations for depth clears as for stencil clears.
2010-03-25 10:01:54 +01:00
Henri Verbeet
2e7e118899
wined3d: Just mark the stencil write mask dirty in IWineD3DDeviceImpl_ClearSurface().
2010-03-25 10:01:49 +01:00
Henri Verbeet
1c4e9e6a0e
wined3d: Disable two-sided stencil when doing stencil clears.
2010-03-25 10:01:44 +01:00
Stefan Dösinger
1181762f99
wined3d: Implement manual buffer fencing.
2010-03-23 12:31:15 +01:00
Henri Verbeet
3aaa6ee6e7
wined3d: Rename GlPixelFormatDesc to wined3d_format_desc.
2010-03-19 14:31:47 +01:00
Henri Verbeet
7c930589bc
wined3d: Avoid some common invalid context accesses.
...
Unfortunately there are plenty of other places left. Perhaps we should
consider creating our own window when the context becomes invalid and making
the context current on that instead.
2010-03-18 10:25:09 +01:00
Henri Verbeet
914c8cb8ea
ddraw: Acquire/release the focus window from the correct location.
2010-03-18 10:24:15 +01:00
Henri Verbeet
0838d0ab64
wined3d: Make the focus window also the foreground window.
2010-03-18 10:24:05 +01:00
Henri Verbeet
4e48ae2629
ddraw: Implement IDirectDrawImpl_GetSurfaceFromDC().
...
This is a pretty naive implementation, should that become a performance
problem it's easy enough to speed up with a search tree of some kind.
2010-03-17 10:06:25 +01:00
Henri Verbeet
7b52c2fbed
wined3d: Cleanup IWineD3DDeviceImpl_SetFrontBackBuffers().
2010-03-17 10:06:21 +01:00
Henri Verbeet
e9dbd5bff8
wined3d: Don't change the draw buffer in IWineD3DDeviceImpl_SetFrontBackBuffers().
...
This should be handled by the context's draw buffer management.
2010-03-17 10:06:18 +01:00
Henri Verbeet
509b038cf5
wined3d: Simplify the IWineD3DDeviceImpl_ClearSurface() surface loading code.
2010-03-17 10:06:15 +01:00
Henri Verbeet
cd9a8b74b9
wined3d: Store the device window in the swapchain.
...
The swapchain's current window might be changed by SetDestWindowOverride().
2010-03-16 11:45:11 +01:00
Henri Verbeet
aa819fe888
wined3d: Simplify a comparison in IWineD3DDeviceImpl_Reset().
2010-03-16 11:45:06 +01:00
Henri Verbeet
d6bbe90b85
wined3d: The swapchain should always have a window handle.
2010-03-16 11:45:01 +01:00
Henri Verbeet
7b0b16fafe
wined3d: Use the context's window handle in stretch_rect_fbo().
2010-03-16 11:44:50 +01:00
Henri Verbeet
18ec2525a4
wined3d: Store the swapchain instead of the surface in the context.
2010-03-16 11:44:44 +01:00
Henri Verbeet
4b671f4d54
wined3d: Move device context array functions to device.c.
2010-03-15 15:55:57 +01:00
Henri Verbeet
8a107bc63a
wined3d: Kill pbuffer offscreen rendering support.
...
Our pbuffer support is broken, nobody cares.
2010-03-15 15:55:38 +01:00
Roderick Colenbrander
c0ef7a1a93
wined3d: Move the 8-bit palette shader code over to the blit_shader backend.
2010-03-03 12:53:51 +01:00