Henri Verbeet
3b478afd10
wined3d: Get rid of the location fixup in surface_blt_fbo().
2011-08-26 11:27:50 +02:00
Henri Verbeet
eac640532d
wined3d: Get rid of the location fixup for ORM_FBO in surface_modify_location().
2011-08-26 11:27:46 +02:00
Henri Verbeet
68a5305dfd
wined3d: Get rid of the location fixup for ORM_FBO in surface_load_location().
2011-08-26 11:27:43 +02:00
Henri Verbeet
98277e1fc6
wined3d: Simplify context_apply_fbo_state_blit().
2011-08-26 11:27:39 +02:00
Matteo Bruni
36a22dfa33
wined3d: Don't change active texture to 0.
2011-08-25 11:31:55 +02:00
Matteo Bruni
d485e04576
wined3d: Fetch currently active texture unit from the wined3d_context.
2011-08-25 11:31:55 +02:00
Matteo Bruni
f47f9f7c74
wined3d: Store currently active texture in the wined3d context.
2011-08-25 11:31:55 +02:00
Matteo Bruni
e53ae83d74
wined3d: Pass around the context instead of gl_info.
2011-08-25 11:31:55 +02:00
Matteo Bruni
be8ea9c36e
wined3d: Make context_acquire() unconditional in a bunch of places.
2011-08-25 11:31:55 +02:00
Henri Verbeet
4503f3d5af
wined3d: Pass a gl_info pointer to select_blit_implementation().
2011-08-25 11:31:54 +02:00
Henri Verbeet
9aa4f895f0
wined3d: Pass a gl_info pointer to select_shader_backend().
2011-08-25 11:31:54 +02:00
Henri Verbeet
86af42a46a
wined3d: Pass a gl_info pointer to select_fragment_implementation().
2011-08-25 11:31:54 +02:00
Henri Verbeet
f65a1ed272
wined3d: Bind the system framebuffer based on the actual location in context_apply_fbo_state().
...
We can do this now because SFLAG_INDRAWABLE is no longer ambiguous.
2011-08-25 11:31:54 +02:00
Henri Verbeet
47c5711fe2
wined3d: Use draw_binding in context_apply_blit_state().
2011-08-25 11:31:54 +02:00
Henri Verbeet
f0d8f2aa89
wined3d: Use draw_binding in swapchain_gl_present().
2011-08-25 11:31:53 +02:00
Henri Verbeet
6cdfb95c8e
wined3d: Use draw_binding in surface_unload().
2011-08-25 11:31:53 +02:00
Henri Verbeet
1d43f07239
wined3d: Use draw_binding in surface_realize_palette().
2011-08-25 11:31:53 +02:00
Henri Verbeet
683b52ed92
wined3d: Use draw_binding in surface_unmap().
2011-08-25 11:31:53 +02:00
Henri Verbeet
1ae498dc59
wined3d: Use draw_binding in IWineD3DSurfaceImpl_BltOverride().
2011-08-25 11:31:53 +02:00
Ričardas Barkauskas
e110c08cc8
wined3d: Avoid dereferencing null pointer in context_apply_clear_state when calling context_generate_rt_mask_from_surface.
2011-08-24 21:18:37 +02:00
Henri Verbeet
f80301e3e6
wined3d: Make the gl_info parameter to wined3d_guess_gl_vendor() const.
2011-08-24 11:58:15 +02:00
Henri Verbeet
a88611210f
wined3d: Make the ctx parameter to WineD3D_ReleaseFakeGLContext() const.
2011-08-24 11:58:15 +02:00
Henri Verbeet
22f5d0081f
wined3d: Make the device parameter to drawStridedSlow() const.
2011-08-24 11:58:15 +02:00
Henri Verbeet
4673330cf4
wined3d: Use draw_binding in wined3d_surface_blt().
2011-08-24 11:58:15 +02:00
Henri Verbeet
99da66429b
wined3d: Use draw_binding in device_clear_render_targets().
2011-08-24 11:58:15 +02:00
Henri Verbeet
317d76abb4
wined3d: Use draw_binding in arbfp_blit_surface().
2011-08-24 11:58:14 +02:00
Henri Verbeet
e57b20c215
wined3d: Keep track of a surface's "draw location".
2011-08-24 11:58:14 +02:00
Henri Verbeet
f73593c572
wined3d: Set the current location to SFLAG_INTEXTURE instead of SFLAG_INDRAWABLE in wined3d_surface_depth_blt().
...
These currently end up being the same thing, but that will change soon.
2011-08-24 11:58:14 +02:00
Henri Verbeet
620c81dc76
wined3d: Add a registry key to disable rendering swapchains onscreen.
...
We'll probably want to make this default to TRUE at some point, but at least
for the moment there still seem to be some performance advantages to rendering
onscreen in most cases.
2011-08-24 11:58:14 +02:00
Henri Verbeet
4b1ba0e02d
wined3d: Don't get rid of the user memory unless we're actually called with NULL in surface_set_mem().
...
In particular, some applications will call surface_set_mem() with the same
pointer to notify us the contents have changed.
2011-08-24 11:58:14 +02:00
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
Henri Verbeet
64f71fda6d
wined3d: Complain about users disabling GLSL.
2011-07-29 12:11:01 +02:00
Henri Verbeet
2256a7e804
wined3d: wined3d_device_evict_managed_resources() doesn't need a return value.
2011-07-29 12:09:39 +02:00
Henri Verbeet
3d7c596cdc
wined3d: Don't hide GL function pointer typedefs behind extension defines.
...
These are specific to wined3d.
2011-07-29 12:09:26 +02:00
Henri Verbeet
7bc0032878
wined3d: Recognize some more AMD cards.
2011-07-29 12:09:22 +02:00
Henri Verbeet
b06e32184b
wined3d: Only invalidate state for the current context in wined3d_buffer_unmap().
2011-07-29 12:09:17 +02:00
Stefan Dösinger
41f9ca2abf
wined3d: Restore the call to context_validate_onscreen_formats.
...
This got lost accidentally in d321959dd7
.
2011-07-28 11:29:52 +02:00
Henri Verbeet
487cc9729b
wined3d: Only invalidate state for the current context in wined3d_buffer_map().
2011-07-28 11:29:27 +02:00
Henri Verbeet
cc2dc5b0c8
wined3d: Only invalidate state for the current context in wined3d_device_set_cursor_properties().
2011-07-28 11:29:24 +02:00
Henri Verbeet
a1ba5b5131
wined3d: Only invalidate state for the current context in device_clear_render_targets().
2011-07-28 11:29:21 +02:00
Henri Verbeet
7e3f85cab6
wined3d: Only invalidate state for the current context in tesselate_rectpatch().
2011-07-28 11:29:18 +02:00
Henri Verbeet
2bf020e26f
wined3d: Only invalidate state for the current context in surface_blt_fbo().
2011-07-28 11:29:14 +02:00
Henri Verbeet
51c0f2a787
wined3d: Only invalidate state for the current context in wined3d_surface_depth_blt_fbo().
2011-07-27 11:51:53 +02:00
Henri Verbeet
c2ede1d4c8
wined3d: Only invalidate state for the current context in swapchain_blit().
2011-07-27 11:51:50 +02:00
Henri Verbeet
68d692f49c
wined3d: Get rid of the redundant state_table parameter to context_invalidate_state().
2011-07-27 11:51:46 +02:00
Henri Verbeet
26cd7b835d
wined3d: Get rid of the use_vshader parameter to device_stream_info_from_declaration().
2011-07-27 11:51:41 +02:00
Henri Verbeet
bd1429e248
wined3d: Introduce a "state" variable in device_stream_info_from_declaration().
2011-07-27 11:51:34 +02:00
Henri Verbeet
1195530795
wined3d: Release the onscreen depth / stencil reference on reset.
...
No need to save the contents, after a reset it's all undefined anyway.
2011-07-25 21:25:24 +02:00
Henri Verbeet
27b20bac43
wined3d: Unbind all textures in wined3d_device_reset().
2011-07-25 21:25:19 +02:00
Henri Verbeet
44e109debe
wined3d: Unbind resources inside wined3d_device_reset().
2011-07-25 21:25:15 +02:00
Henri Verbeet
c84112f86f
wined3d: Get rid of wined3d_device_enum_resources().
2011-07-25 21:25:11 +02:00