Henri Verbeet
b769c912cc
wined3d: read_from_framebuffer_texture() isn't suitable for readback of onscreen surfaces.
2010-06-22 13:51:30 +02:00
Matteo Bruni
6585bec5ac
wined3d: Check for error conditions in GL call.
2010-06-22 11:22:38 +02:00
Henri Verbeet
1b5cc39a86
wined3d: Get rid of some dead code.
2010-06-01 11:03:56 +02:00
Roderick Colenbrander
ba09e7a2a1
wined3d: Don't use blit_supported() in d3dfmt_get_conv for now.
2010-05-27 14:46:43 +02:00
Roderick Colenbrander
e54f06183c
wined3d: Replace set_shader call with unset_shader in blt_to_drawable.
...
The blit_shader is activated before draw_textured_quad, so after use
it should be deactivated instead of being activated again.
2010-05-27 14:46:43 +02:00
Henri Verbeet
e8ac9bbd7f
wined3d: Get rid of GLINFO_LOCATION.
2010-05-25 13:29:00 +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
Henri Verbeet
a2a58a21d8
wined3d: Translate front buffer coordinates in surface_blt_to_drawable().
2010-05-20 13:47:53 +02:00
Henri Verbeet
f0888577c5
wined3d: Use wine_dbgstr_rect() for tracing the rectangle in IWineD3DSurfaceImpl_LockRect().
2010-05-19 16:57:59 +02:00
Roderick Colenbrander
f892003194
wined3d: Set conversion flags for format descriptors having a convert function.
2010-05-17 14:43:49 +02:00
Henri Verbeet
79145e215b
wined3d: Add support for shadow samplers.
2010-05-17 13:19:53 +02:00
Henri Verbeet
44ab3d70f1
wined3d: Handle depth/stencil surfaces in IWineD3DSurfaceImpl_LoadLocation().
2010-05-17 13:19:40 +02:00
Roderick Colenbrander
b60961ae55
wined3d: Use surface_prepare_texture for surface allocation in read_from_framebuffer_texture.
2010-05-11 11:04:55 +02:00
Henri Verbeet
49e076eabd
wined3d: Separate context acquisition and state application.
2010-05-04 13:14:59 +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
83cf1ce8e1
wined3d: Check if the depth/stencil surface has any valid location at the start of surface_load_ds_location().
2010-04-28 07:32:05 -05:00
Henri Verbeet
0d86323778
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_release_client_storage().
2010-04-28 07:31:28 -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
42375518ba
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_add_dirty_rect().
2010-04-27 12:02:39 -05:00
Henri Verbeet
f78d85ffe1
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_target().
2010-04-27 12:02:31 -05:00
Henri Verbeet
294d9dae8f
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_name().
2010-04-27 12:02:24 -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
32b1f25f4b
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_force_reload().
2010-04-26 09:04:56 -05:00
Henri Verbeet
553f429964
wined3d: Simply pass IWineD3DSurfaceImpl pointers to IWineD3DSurfaceImpl_BltOverride().
2010-04-26 09:04:48 -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
bea50a39de
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to fb_copy_to_texture_hwstretch().
2010-04-25 07:28:18 -05:00
Henri Verbeet
99994f885c
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to fb_copy_to_texture_direct().
2010-04-25 07:28:07 -05:00
Henri Verbeet
9308c5499f
wined3d: Make sure all texture levels are allocated in surface_prepare_texture().
...
This fixes a regression introduced by commit
af7dfcd378
.
2010-04-25 07:27:36 -05:00
Henri Verbeet
6b34b8e6d1
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_acquire().
2010-04-22 11:28:17 +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
c5de1e1045
wined3d: Store the depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device.
2010-04-20 11:14:42 +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
92a44884c7
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_compatible_renderbuffer().
2010-04-19 14:55:35 +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
10c5a8ac9e
wined3d: Get rid of "myDevice".
2010-04-19 14:55:13 +02:00
Henri Verbeet
24c93d48aa
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_depth_stencil_fbo().
2010-04-16 12:09:39 +02:00
Henri Verbeet
bc2850a587
wined3d: Get rid of the width and height parameters to surface_upload_data().
2010-04-16 12:09:27 +02:00
Henri Verbeet
212bfab2df
wined3d: Get rid of the width and height parameters to surface_allocate_surface().
2010-04-16 12:09:23 +02:00
Henri Verbeet
7f6ab3c06e
wined3d: The currentDesc and pow2 width/height are the same for power of two textures.
2010-04-16 12:09:19 +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
bf58d81968
wined3d: Remove paletteOverride from BltOverride offscreen->render_target blit.
...
This code was needed when the destination uses 8-bit and the source lacked a palette.
Since we don't allow destination fixups, this code doesn't do anything. At a later
stage something like this should perhaps be readded to specific backends.
2010-04-15 17:03:59 +02:00
Roderick Colenbrander
4cb6255907
wined3d: We don't need color keying for sysmem->drawable uploads.
2010-04-15 17:03:52 +02:00
Roderick Colenbrander
2a949ec323
wined3d: Remove call to d3dfmt_get_conv from read_from_framebuffer_texture.
2010-04-15 17:03:49 +02:00
Roderick Colenbrander
1a61f46bbb
wined3d: Remove temporary conv_byte_count fixup from d3dfmt_get_conv.
2010-04-15 17:03:47 +02:00
Roderick Colenbrander
bccfd7cc06
wined3d: Add BLT_OP_COLOR_FILL to blit_supported and use it in BltOverride.
2010-04-15 14:20:48 +02:00
Roderick Colenbrander
4c87bc0c41
wined3d: Move A4L4 conversion to the formats table.
2010-04-14 18:00:47 +02:00
Roderick Colenbrander
cda78c01e6
wined3d: Move G16R16/R16G16F conversion to the formats table.
2010-04-14 18:00:47 +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
Roderick Colenbrander
e35f54ef1f
wined3d: Move R32G32F convertion to the formats table.
2010-04-13 17:56:35 +02:00
Roderick Colenbrander
5c635f4146
wined3d: Move D15S1 over to the formats table.
2010-04-13 17:56:32 +02:00
Roderick Colenbrander
6a081ef95a
wined3d: Move D24X4S4 to the formats table.
2010-04-13 17:56:29 +02:00
Roderick Colenbrander
485040bb5c
wined3d: Move D24FS8 to formats table.
2010-04-13 17:56:27 +02:00
Roderick Colenbrander
798ba56c1b
wined3d: Move L6V5U5 conversion to the formats table.
2010-04-13 17:56:24 +02:00
Roderick Colenbrander
76a9712779
wined3d: Add an initial implementation of arbfp_blit_surface.
2010-04-09 16:50:21 +02:00
Roderick Colenbrander
f1ca14cb5b
wined3d: Add an initial fbo_blit_supported implementation.
2010-04-09 16:50:21 +02:00
Roderick Colenbrander
7df7ce40c3
wined3d: Move X8L8V8U8 surface conversion to the format table.
2010-04-09 16:50:21 +02:00
Roderick Colenbrander
60c6294f84
wined3d: Move Q8W8V8U8 conversion to the format table.
2010-04-09 16:50:20 +02:00
Roderick Colenbrander
d7e1b973c7
wined3d: Start moving texture format fixups to the formats table.
2010-04-09 16:50:20 +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
Roderick Colenbrander
1c02a909e5
wined3d: Remove remaining redundant code from d3dfmt_get_conv.
2010-04-08 17:34:18 +02:00
Roderick Colenbrander
2c5eee25ca
wined3d: Only apply float R16G16F/R32G32F fixup when ARB_texture_rg isn't around and remove redundant code.
2010-04-07 18:14:05 +02:00
Roderick Colenbrander
edcdbc2a76
wined3d: Remove redundant gl format/type code from d3dfmt_get_conv since it is already in the table.
2010-04-07 18:13:49 +02:00
Roderick Colenbrander
e7a71e15b5
wined3d: Turn blit_shader color_fixup_supported into blit_supported.
2010-04-07 18:13:35 +02:00
Henri Verbeet
83443273c1
wined3d: Pass the correct window to Present() in IWineD3DSurfaceImpl_Flip().
2010-04-07 13:50:16 +02:00
Henri Verbeet
3b7774b37b
wined3d: Pass the correct window to Present() in IWineD3DSurfaceImpl_BltOverride().
2010-04-07 13:50:12 +02:00
Roderick Colenbrander
e6ae272efe
wined3d: Due to code rewrites is_color_fixup_supported is not needed anymore in RealizePalette.
...
The code in question should be executed in all cases. This also fixes
palette refresh issues when shaders / paletted textures aren't around.
2010-04-06 13:55:14 +02:00
Roderick Colenbrander
1f2976a302
wined3d: Move the arbfp p8 fixup to the format table and get rid of the d3dfmt_get_conv override.
2010-04-06 13:55:02 +02:00
Roderick Colenbrander
a5a4be4fc5
wined3d: Disable framebuffer to texture blitting.
...
The current code doesn't work for this at all and causes major
rendering issues in e.g. C&C. I don't think we should fix this code
either since it isn't worth the effort and requires evil things like
paletteOverride.
2010-04-06 13:54:47 +02:00
Roderick Colenbrander
69902ab6d0
wined3d: Move EXT_PALETTED_TEXTURE code over to ffp_blit.
2010-04-06 13:53:21 +02:00
Roderick Colenbrander
3b6aea5934
wined3d: Move palette uploading code over to arbfp blit_shader.
2010-04-06 13:53:15 +02:00
Roderick Colenbrander
ae8d9e21e3
wined3d: Remove the swapchain parameter from fb_copy_to_texture_hwstretch in order to unify all blit calls.
2010-04-02 15:22:51 +02:00
Roderick Colenbrander
ff82e66a69
wined3d: Move upsideDown calculation to blit implementation.
2010-04-02 15:22:51 +02:00
Roderick Colenbrander
c6f0ddcb1a
wined3d: Remove some unneeded source rectangle calculations from BltOverride.
2010-03-31 16:12:30 +02:00
Roderick Colenbrander
87b5b2f738
wined3d: Remove the last use of the WINED3DRECT destination rectangle in BltOverride.
2010-03-31 16:12:30 +02:00
Roderick Colenbrander
40f3f0b041
wined3d: Use RECT instead of WINED3DRECT in fb_copy_to_texture_hwstretch.
2010-03-31 16:12:29 +02:00
Roderick Colenbrander
7f1f61e28e
wined3d: Use RECT instead of WINED3DRECT in fb_copy_to_texture_direct.
2010-03-31 16:12:28 +02:00
Roderick Colenbrander
ae26d9defd
wined3d: Use RECT instead of WINED3DRECT in stretch_rect_fbo.
2010-03-31 16:12:27 +02:00
Roderick Colenbrander
c864ae6348
wined3d: Disable flipping through the source rectangle in BltOverride.
2010-03-30 14:10:45 +02:00
Roderick Colenbrander
334fea7d79
wined3d: Fix a destination flipping bug using the destination rectangle.
2010-03-30 14:10:37 +02:00
Roderick Colenbrander
a91f844a3d
wined3d: Use RECT instead of WINED3DRECT in more parts of BltOverride.
2010-03-30 13:54:45 +02:00
Roderick Colenbrander
682c969e9a
wined3d: Add a helper function for getting a valid rectangle.
2010-03-30 13:54:35 +02:00
Roderick Colenbrander
a7d3b616c4
wined3d: Add color_fill to blit_shader.
2010-03-30 13:54:24 +02:00
Roderick Colenbrander
9a1fd552d2
wined3d: Introduce a helper function which converts a color from the surface format to ARGB.
2010-03-30 13:54:12 +02:00
Roderick Colenbrander
5ffb088975
wined3d: Fix depth blit regression.
2010-03-22 11:40:40 +01:00
Henri Verbeet
3aaa6ee6e7
wined3d: Rename GlPixelFormatDesc to wined3d_format_desc.
2010-03-19 14:31:47 +01:00
Roderick Colenbrander
fb8812db89
wined3d: Get rid of d3dfmt_get_conv in RealizePalette.
2010-03-19 13:15:26 +01:00
Roderick Colenbrander
27a96e477a
wined3d: Start moving paletted texture support to the blit_shader.
2010-03-19 13:15:21 +01:00
Roderick Colenbrander
fd99ab78c2
wined3d: Use draw_textured_quad in BltOverride.
2010-03-19 13:15:06 +01:00
Roderick Colenbrander
4bd627cc7f
wined3d: Add a helper function for drawing a textured quad.
2010-03-19 13:15:03 +01:00
Henri Verbeet
e5673ddbc3
wined3d: Add a quirk to rebind FBOs when one of their attached textures is updated.
...
Updating a texture while it is attached to the currently bound FBO is
something GL implementations tend to get wrong. NVIDIA fails at
glTexSubImage2D(), fglrx and Mesa with glTexImage2D(). I'm afraid to try what
happens on OS X. Fortunately we never use glTexImage2D() while a texture is
attached to an FBO, so we only need to care about glTexSubImage2D().
2010-03-18 10:24:41 +01:00
Henri Verbeet
bd4fb33a52
wined3d: Unify GLINFO_LOCATION in surface.c.
2010-03-18 10:24:33 +01:00
Henri Verbeet
0ae49c35fb
wined3d: Use the context's window handle in IWineD3DSurfaceImpl_BltOverride().
2010-03-16 11:44:55 +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
604caf0caa
wined3d: Remove oversize texture support.
2010-03-15 14:23:15 +01:00
Roderick Colenbrander
74bf524a99
wined3d: Use surface_get_blt_info to compute texture coordinates for surface_blt_to_drawable.
2010-03-15 14:22:57 +01:00