Commit Graph

5183 Commits

Author SHA1 Message Date
Stefan Dösinger 2459d79b53 wined3d: Disable WINED3DFMT_S1_UINT_D15_UNORM and WINED3DFMT_S4X4_UINT_D24_UNORM. 2011-08-24 11:52:07 +02:00
Stefan Dösinger 5d1d07abcf wined3d: Call glFlush after updating a buffer. 2011-08-24 11:52:06 +02:00
Henri Verbeet 7d46943067 wined3d: Make some parameters to get_glsl_program_entry() const. 2011-08-23 16:53:52 +02:00
Henri Verbeet 3b3470b151 wined3d: Make the shader parameter to shader_glsl_generate_vshader() const. 2011-08-23 16:53:52 +02:00
Henri Verbeet f75675031f wined3d: Make the shader parameter to shader_glsl_generate_pshader() const. 2011-08-23 16:53:52 +02:00
Henri Verbeet 9de5372036 wined3d: Introduce a function to update a swapchain's render_to_fbo field. 2011-08-23 16:53:51 +02:00
Henri Verbeet 7b19efd9d5 wined3d: Just call resource_unload() in updateSurfaceDesc().
Instead of trying to duplicate the functionality.
2011-08-23 16:53:51 +02:00
Henri Verbeet b474225386 wined3d: Only delete the GL contexts after unloading resources in wined3d_device_reset().
The updateSurfaceDesc() calls potentially make GL calls.
2011-08-23 16:53:51 +02:00
Henri Verbeet 9df014b9de wined3d: Rename WineD3D_ChoosePixelFormat() to context_choose_pixel_format(). 2011-08-23 16:53:51 +02:00
Henri Verbeet 48911d7a1c wined3d: Reject color blits on sysmem surfaces in ffp_blit_supported(). 2011-08-23 16:53:51 +02:00
Henri Verbeet f58e55ec6c wined3d: Move arbfp based color blits from IWineD3DSurfaceImpl_BltOverride() to wined3d_surface_blt(). 2011-08-23 16:53:51 +02:00
Henri Verbeet c592d553f0 wined3d: Reject color blits on sysmem surfaces in arbfp_blit_supported(). 2011-08-23 16:53:51 +02:00
Stefan Dösinger 0fc7cd5ad7 wined3d: Invalidate streamsrc, vdecl and indexbuffer after strided draws. 2011-08-22 19:49:39 +02:00
Michael Stefaniuc 42a6455ea5 wined3d: Sync a function prototype with its definition. 2011-08-22 19:49:39 +02:00
Chris Robinson 342d2b8979 wined3d: Don't use the old depth-stencil surface after decrementing its ref count. 2011-08-22 17:22:48 +02:00
Henri Verbeet a04f0e9c78 wined3d: Move FBO based color blits from IWineD3DSurfaceImpl_BltOverride() to wined3d_surface_blt(). 2011-08-22 16:14:37 +02:00
Henri Verbeet d063ff55e7 wined3d: Move surface_color_fill() based color fills from IWineD3DSurfaceImpl_BltOverride() to wined3d_surface_blt(). 2011-08-22 16:14:37 +02:00
Henri Verbeet a887128ffd wined3d: Reject color fills on sysmem surfaces in ffp_blit_supported(). 2011-08-22 16:14:36 +02:00
Henri Verbeet 18434ddc57 wined3d: Directly call surface_cpu_blt() in cpu_blit_color_fill().
And avoid a potential infinite recursion if wined3d_surface_blt() ends up
calling cpu_blit_color_fill().
2011-08-22 16:14:36 +02:00
Henri Verbeet 26484c9200 wined3d: Allow color fills on FBO attachable surfaces in ffp_blit_supported(). 2011-08-22 16:14:36 +02:00
Henri Verbeet e1ab5f6e6b wined3d: Don't allow blits with an invalid destination rectangle when a clipper is set either.
Clippers don't really work. Previously we mostly didn't run into this because
the rectangle was already rejected by ddraw_surface7_Blt(), although
ddraw_surface7_BltFast() might have been affected in a couple of cases. We
should of course implement clippers, but until that happens, completely
rejecting the blit is better than introducing memory corruption.

This fixes a regression introduced by commit
92e616f355.
2011-08-22 16:14:36 +02:00
Henri Verbeet f8ce77a598 wined3d: Draw buffers are per-framebuffer state. 2011-08-22 16:14:36 +02:00
Henri Verbeet 34b2956e23 wined3d: Merge FindContext() into context_acquire().
This actually fixes a bug. A context's current_rt field may get set to NULL if
that surface gets destroyed or unloaded. In general, the next time that
context is acquired, context_setup_target() will then set everything up again.
However, if a context_acquire() call with a NULL target ends up returning such
a context, context_setup_target() never sets the current_rt field because the
target FindContext() chooses never gets propagated to context_acquire(). This
patch ensures context_setup_target() is never called with a NULL target.
2011-08-22 16:14:36 +02:00
Henri Verbeet 56428c6386 wined3d: Reuse convert_a8r8g8b8_x8r8g8b8() for B8G8R8X8 -> B8G8R8A8 conversions. 2011-08-22 16:14:36 +02:00
Henri Verbeet 156d24c634 wined3d: Add compressed surface support to surface_cpu_blt(). 2011-08-22 16:14:36 +02:00
William Pettersson 0e043819f4 wined3d: Add support for Nvidia GTX 550/560 Ti. 2011-08-05 16:43:24 +02:00
Henri Verbeet 812a314821 wined3d: Get rid of the fglrx point sprite hack.
Fglrx 9.3 is well over 2 years old at this point. I'd strongly encourage
anyone still affected by this to upgrade to the r300g driver.
2011-08-05 09:17:59 +02:00
Henri Verbeet 293bf961ed wined3d: Pass a non-NULL rectangle to surface_color_fill() in wined3d_device_clear_rendertarget_view(). 2011-08-05 09:17:51 +02:00
Henri Verbeet 7e8e7ecebb wined3d: Always pass a non-NULL rectangle to surface_color_fill() in wined3d_device_color_fill(). 2011-08-05 09:17:47 +02:00
Henri Verbeet a84275075d wined3d: Implement wined3d_surface_bltfast() on top of wined3d_surface_blt(). 2011-08-05 09:17:39 +02:00
Henri Verbeet 662de19ad3 wined3d: Move some flags handling from surface_cpu_blt() to wined3d_surface_blt(). 2011-08-04 09:04:49 +02:00
Henri Verbeet 7e3ecd683c wined3d: Move rectangle validation from surface_cpu_blt() to wined3d_surface_blt().
This fixes some tests because these were getting skipped for the BltOverride() path.
2011-08-04 09:04:39 +02:00
Henri Verbeet b166cb29f8 wined3d: Remove src_rect and dst_rect NULL checks from surface_cpu_blt(). 2011-08-04 09:04:25 +02:00
Henri Verbeet e74d1358ac wined3d: Remove the unused blit_op parameter to arbfp_blit_surface(). 2011-08-04 09:04:20 +02:00
Frédéric Delanoy 7e309601f3 dlls: Assorted spelling fixes. 2011-08-03 14:15:50 +02:00
Henri Verbeet 41cff1618c wined3d: Merge wined3d_surface_blt(), surface_blt() and gdi_surface_blt(). 2011-08-03 09:23:30 +02:00
Henri Verbeet c12627562b wined3d: Go to the fallbacks for cross-swapchain blits. 2011-08-03 09:23:20 +02:00
Henri Verbeet 111e8fe77c wined3d: Add WINED3DFMT_P8_UINT support to wined3d_format_convert_from_float(). 2011-08-03 09:23:16 +02:00
Henri Verbeet cf1c641cbb wined3d: Fix switching color keying on / off. 2011-08-03 09:23:12 +02:00
Henri Verbeet e4efcea223 wined3d: Set the read buffer to GL_NONE in surface_load_ds_location().
On GL implementations that don't support GL_ARB_ES2_compatibility the
framebuffer's read buffer has to be valid, even if we're not reading from it.
2011-08-03 09:23:08 +02:00
Henri Verbeet 98650e841e wined3d: Go to the fallbacks if D3D is not initialized in surface_blt().
Even though this is the "OpenGL" surface implementation, this can still happen
in e.g. ddraw if no swapchain is created yet. That's something we should fix,
but not today.
2011-08-02 11:40:20 +02:00
Henri Verbeet 7539cc8faa wined3d: Go straight to the fallbacks for complex blits in surface_blt().
At the moment this is only marginally useful, since it just avoids silly
things like color keyed depth fills that are probably invalid anyway. However,
the idea is to gradually move normal color fill and blit handling out of
IWineD3DSurfaceImpl_BltOverride() and surface_cpu_blt(), and eventually make
those functions go away completely.
2011-08-02 11:40:16 +02:00
Henri Verbeet 4bdd4ef45b wined3d: Check for locked surfaces in wined3d_surface_blt(). 2011-08-02 11:40:11 +02:00
Henri Verbeet 50d883c37e wined3d: IWineD3DSurfaceImpl_BltOverride() is always passed valid source and destination rectangles.
So no need to call surface_get_rect() anymore.
2011-08-02 11:40:07 +02:00
Henri Verbeet ace241ad59 wined3d: Resolve source and destination rectangles in wined3d_surface_blt(). 2011-08-02 11:40:01 +02:00
Henri Verbeet 33fafc6166 wined3d: Get rid of context_bind_fbo() calls outside context.c. 2011-08-01 11:16:12 +02:00
Henri Verbeet dcc969c32c wined3d: Get rid of dst_fbo.
As a result we can get rid of a couple of other things as well.
2011-08-01 11:16:08 +02:00
Henri Verbeet ccb3a51a44 wined3d: Just invalidate STATE_FRAMEBUFFER in surface_load_ds_location(). 2011-08-01 11:16:03 +02:00
Henri Verbeet 4428bda4a1 wined3d: Apply clear state after depth / stencil setup in device_clear_render_targets(). 2011-08-01 11:15:59 +02:00
Henri Verbeet 03eb6a4aa6 wined3d: Apply draw state after depth / stencil setup in drawPrimitive(). 2011-08-01 11:15:55 +02:00