Commit Graph

1239 Commits

Author SHA1 Message Date
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