Commit Graph

4443 Commits

Author SHA1 Message Date
Henri Verbeet becf8dc828 wined3d: Check for a destination clipper in IWineD3DBaseSurfaceImpl_Blt().
This check was there in the original ddraw code, but apparently got lost
during the ddraw rewrite in 2006.
2010-05-20 13:47:53 +02:00
Henri Verbeet 9d865274c0 wined3d: Fix a comment. 2010-05-19 16:57:59 +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
Henri Verbeet 465e8f66cb wined3d: Explicitly pass the FBO target to context_clean_fbo_attachments().
This should have been part of e01d56f331.
2010-05-19 16:57:59 +02:00
Henri Verbeet 0fe7b45b6c wined3d: Make context_attach_surface_fbo() static. 2010-05-19 16:57:59 +02:00
Henri Verbeet 7bec8e1dcb wined3d: Correctly translate between coordinate systems in swapchain_blit(). 2010-05-18 18:42:09 +02:00
Henri Verbeet e0d6ca57d7 wined3d: Check for offscreen contexts inside context_validate_onscreen_formats() itself. 2010-05-18 18:42:08 +02:00
Henri Verbeet 4889c33da6 wined3d: Explicitly pass the depth/stencil surface to context_validate_onscreen_formats().
This avoids switching to offscreen rendering in context_apply_blit_state() for
a depth buffer that isn't going to be used anyway. This switch would be
problematic for blits to the frontbuffer, since it's always onscreen. I.e.,
we'd be blitting to the screen, but with offscreen transforms.
2010-05-18 18:42:08 +02:00
Henri Verbeet 96cdab1792 wined3d: context_validate_onscreen_formats() may modify context->render_offscreen.
I merged this by accident in be43c867a5.
2010-05-18 18:42:08 +02:00
Julius Schwartzenberg ba11b695e6 wined3d: Cope with the new Intel renderer string. 2010-05-18 08:47:57 +02:00
Roderick Colenbrander ee9b409fce wined3d: Use BltFast in UpdateSurface when desc.convert is set. 2010-05-17 14:44:09 +02:00
Roderick Colenbrander ba8f0da271 wined3d: Remove unneeded d3dfmt_get_conv conversion constants. 2010-05-17 14:43:56 +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 29b13f75cc wined3d: Add support for ARB_shadow. 2010-05-17 13:19:49 +02:00
Henri Verbeet 498664af3a wined3d: Remove some unused winetexturestates elements. 2010-05-17 13:19:44 +02:00
Henri Verbeet 44ab3d70f1 wined3d: Handle depth/stencil surfaces in IWineD3DSurfaceImpl_LoadLocation(). 2010-05-17 13:19:40 +02:00
Roderick Colenbrander e91f4ae776 wined3d: Make sure wglFlush is not between ENTER_GL/LEAVE_GL. 2010-05-14 18:03:02 +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
Stefan Dösinger 481aca47ad wined3d: Don't use GL_ARB_map_buffer_range for now.
There are numerous problems with this extension, and there are no
visible upsides. In the best case dynamic VBOs are just as fast as no
VBO at all.
2010-05-10 13:45:16 +02:00
Marcus Meissner 9494cdc56f wined3d: fixed a NULL deref in create_arb_blt_fragment_program (Coverity). 2010-05-10 10:04:31 +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
Gerald Pfeifer da628001fe wined3d: Fix the handling of the blue channel inIWineGDISurfaceImpl_SaveSnapshot. (take 2). 2010-05-06 14:26:18 +02:00
Henri Verbeet 6478e41b97 wined3d: Remove the unused device type parameter to some format capability checking functions. 2010-05-06 14:17:46 +02:00
Henri Verbeet 6d68701fb3 wined3d: Reorganize IWineD3DImpl_CheckDeviceFormat() a bit. 2010-05-06 14:17:39 +02:00
Henri Verbeet 7a2debe113 wined3d: Use the FBO cache in swapchain_blit(). 2010-05-06 14:17:30 +02:00
Henri Verbeet 3345146d0b wined3d: Use the FBO cache in stretch_rect_fbo(). 2010-05-06 14:17:24 +02:00
Henri Verbeet 9982a46296 wined3d: Use the FBO cache in context_apply_blit_state(). 2010-05-06 14:16:44 +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 4056f4bf99 wined3d: Explicitly pass the render target and depth/stencil surfaces to the FBO management functions. 2010-05-05 10:37:34 +02:00
Henri Verbeet e01d56f331 wined3d: Explicitly pass the FBO target to the FBO management functions. 2010-05-05 10:37:28 +02:00
Henri Verbeet 4fd3050b98 wined3d: Move draw buffer setup code out of context_apply_fbo_entry(). 2010-05-05 10:37:24 +02:00
Stefan Dösinger ec3d2ba316 wined3d: Fall back to other depth stencil formats if D24S8 isn't supported. 2010-05-04 13:15:00 +02:00
Stefan Dösinger e7066a90e1 wined3d: Don't grab the implicit depth stencil format in the wrong place.
This format is now explicitly passed to create_context.
2010-05-04 13:15:00 +02:00
Henri Verbeet ff6cf84c40 wined3d: Attach the surfaces from the fbo_entry instead of the ones from the device.
Currently these are always the same, but that doesn't make it right.
2010-05-04 13:14:59 +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 be43c867a5 wined3d: Split context_apply_state() into separate functions for each usage. 2010-05-04 13:14:59 +02:00
Henri Verbeet 87f34ce5f9 wined3d: Allow the ARB shader backend to work with GL implementations with low amounts of native parameters. 2010-05-03 13:51:02 +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 c9e7561b34 wined3d: Remove some unused fields from the shader backend caps. 2010-05-03 13:50:51 +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 c1ea8fb6c7 wined3d: Store the VTF format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet be7b01589f wined3d: Store the sRGB write format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet c041781255 wined3d: Store the sRGB read format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet 163940540d wined3d: Store the bumpmap format capability in the format table. 2010-04-29 10:19:39 -05: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 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 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 c56d3c199c wined3d: Add a missing newline to a TRACE in IWineD3DDeviceImpl_UpdateSurface(). 2010-04-26 09:04:25 -05:00
Henri Verbeet 61d8338815 wined3d: Kill the now unused MAX_MIP_LEVELS. 2010-04-26 09:04:19 -05:00
Alexandre Julliard fdfabd53f1 wined3d: Avoid a compiler warning on old gcc. 2010-04-26 07:18:18 -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 339f7ef100 wined3d: Introduce basetexture_get_sub_resource() to simplify retrieving texture sub-resources. 2010-04-25 07:27:57 -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 958b523707 wined3d: Store texture sub-resources in IWineD3DBaseTextureClass. 2010-04-25 07:26:51 -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 95fb8eaa14 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_setup_target(). 2010-04-22 11:28:06 +02:00
Henri Verbeet 1b26ccde91 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to FindContext(). 2010-04-22 11:28:01 +02:00
Gerald Pfeifer 07c8120b57 wined3d: Remove variable dlc_tmp which is not really used from shader_arb_generate_pshader. 2010-04-21 15:35:07 +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 dc67164d0d wined3d: Fix some more misspellings of "device". 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 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 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
Roderick Colenbrander 3b993117c3 wined3d: Separate AMD GPUs in D3D9 and D3D10 models, this allows for a more correct fall back when the GPU table isn't up to date.
D3D10_CAPABLE should work on any AMD OpenGL 3.0 driver (those came out in september 2008) and on OSX 10.5 and up.
2010-04-16 12:38:21 +02:00
Roderick Colenbrander 057c64c5b0 wined3d: Separate AMD Radeon HD2300 from other HD2xxx/HD3xxx GPUs since it is D3D9 instead of D3D10. 2010-04-16 12:38:18 +02:00
Henri Verbeet f6e923b55d wined3d: Remove some dead code from IWineD3DDeviceImpl_Uninit3D(). 2010-04-16 12:09:48 +02:00
Henri Verbeet da1b459754 wined3d: Store the depth/stencil attachment as IWineD3DSurfaceImpl pointer in struct fbo_entry. 2010-04-16 12:09:45 +02:00
Henri Verbeet be993fc49f wined3d: Store render target attachments as IWineD3DSurfaceImpl pointers in struct fbo_entry. 2010-04-16 12:09:42 +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 95130a7d5e wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_surface_fbo(). 2010-04-16 12:09:36 +02:00
Henri Verbeet 870b3cb40b wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_apply_attachment_filter_states(). 2010-04-16 12:09:32 +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 10f58c14bc wined3d: Improve FBO support in ClearSurface. 2010-04-15 14:20:40 +02:00
Roderick Colenbrander bf73d23d95 wined3d: Separate detection of D3D10+ and D3D9 Nvidia GPUs. 2010-04-14 18:00:47 +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 43e89cb981 wined3d: Prune unsupported world matrix transform states. 2010-04-13 21:13:54 +02:00
Henri Verbeet 71d484303a wined3d: We always support at least a single modelview matrix. 2010-04-13 21:13:50 +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 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
Henri Verbeet a4fad54134 wined3d: Don't write past the end of the buffer's conversion_map. 2010-04-12 11:33:32 +02:00
Henri Verbeet 5f7e087644 wined3d: Fix a GL extension prototype. 2010-04-12 11:33:28 +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
Alexandre Julliard 90f4ae6948 wined3d: Remove unused offset parameter in buffer_get_memory. 2010-04-09 15:47:23 +02:00
Roderick Colenbrander 1c02a909e5 wined3d: Remove remaining redundant code from d3dfmt_get_conv. 2010-04-08 17:34:18 +02:00
Henri Verbeet d373e14d53 wined3d: Add a FIXME for predicated shader instructions. 2010-04-08 12:26:10 +02:00
Henri Verbeet 284e92def9 wined3d: Validate some more states. 2010-04-08 12:26:07 +02:00
Henri Verbeet e24473d531 wined3d: Update shader constants on viewport changes.
Otherwise the vertex shader will see stale posFixup values.
2010-04-08 12:25:51 +02:00
Henri Verbeet cece23c7c9 wined3d: Get rid of state_nogl().
It's unused, all states that have this as handler have a 0 representative.
2010-04-08 12:25:43 +02:00
Henri Verbeet 3f79ba3019 wined3d: Add an extensionless STATE_INDEXBUFFER handler. 2010-04-08 12:25:38 +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 55a96174c8 wined3d: Add a separate function for adding declaration elements in ConvertFvfToDeclaration(). 2010-04-07 13:50:23 +02:00
Henri Verbeet be9e077a4d wined3d: Pass the correct window to Present() in IWineGDISurfaceImpl_Flip(). 2010-04-07 13:50:19 +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 9fec1a02b9 wined3d: Disable paletted texture support. It was only offered on a few cards, so can be missed. 2010-04-06 13:54:06 +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
Henri Verbeet f41ee7cd0a wined3d: Capture the correct scissor rectangle.
This bug was originally introduced by
d4b63bbd87, and then propagated by
1f029a30db.
2010-04-06 11:48:51 +02:00
Henri Verbeet 2381c9529d wined3d: Don't use GLSL if the supported version isn't at least 1.20. 2010-04-06 11:48:47 +02:00
Henri Verbeet ca1b35aaff wined3d: Rename some GL vendors.
GL_VENDOR_ATI -> GL_VENDOR_FGLRX because it's much more specific. Besides, AMD
also works on the Mesa drivers.
2010-04-05 11:37:45 +02:00
Henri Verbeet b8211a67d4 wined3d: Rename HW_VENDOR_WINE to HW_VENDOR_SOFTWARE.
Software adapters like the refrast also return a 0 PCI ID on Windows.
2010-04-05 11:37:39 +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
Henri Verbeet 5ce986f1de wined3d: Add a separate function for wined3d object initialization. 2010-04-05 11:37:24 +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
Henri Verbeet 23bfdecd8b wined3d: Verify all render states have a handler. 2010-04-02 10:36:17 +02:00
Henri Verbeet 1289842da3 wined3d: Move handling of the unimplemented WINED3DRS_STIPPLEPATTERN states to ddraw. 2010-04-02 10:36:06 +02:00
Henri Verbeet 2e5976a8c5 wined3d: Move handling of the unimplemented WINED3DRS_BORDERCOLOR state to ddraw. 2010-04-02 10:35:54 +02:00
Henri Verbeet af9510f400 wined3d: Remove some unused render states. 2010-04-02 10:35:44 +02:00
Henri Verbeet e62771f7f7 wined3d: Add a state handler for WINED3DRS_ZVISIBLE. 2010-04-02 10:35:37 +02:00
Henri Verbeet ef34b0ba06 wined3d: Verify state representatives represent themselves.
This ensures there's no multilevel indirection in the state table.
2010-04-02 10:35:30 +02:00
Henri Verbeet a2344e7288 wined3d: Remove some superfluous white space and braces from the card selection functions. 2010-04-01 18:12:55 +02:00
Henri Verbeet 8afeb34559 wined3d: Add a state table entry for WINED3DRS_INDEXEDVERTEXBLENDENABLE. 2010-04-01 18:12:42 +02:00
Henri Verbeet f4330add39 wined3d: Verify each state table entry has either a handler or a representative. 2010-04-01 18:12:42 +02:00
Henri Verbeet 57cfd613a5 wined3d: Explicitly set the state handler to NULL for states with a representative.
We should never call the handler for states that have a rep.
2010-04-01 18:12:42 +02:00
Henri Verbeet f70193b915 wined3d: Use the rep instead of the apply function to determine if a state is used. 2010-04-01 18:12:42 +02:00
Henri Verbeet 03c472bff0 wined3d: Don't call directly into the state table. 2010-04-01 18:12:42 +02:00
Henri Verbeet a298f37a9a wined3d: Add a state table entry for WINED3DRS_TWEENFACTOR. 2010-03-31 16:32:57 +02:00
Henri Verbeet 6e1ed1c167 wined3d: Print a FIXME/WARN for all unsupported vertex blend flags. 2010-03-31 16:32:52 +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 dc918d4394 wined3d: Use FBOs when the onscreen depth stencil format isn't suitable.
This allows proper support of float depth buffers when rendering to onscreen surfaces.
2010-03-31 16:12:32 +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
Stefan Dösinger a4b0bedc30 wined3d: Split out offscreen rendering concerns from FindContext. 2010-03-31 16:12:31 +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
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
Henri Verbeet 2533860114 wined3d: Initialization functions don't allocate. 2010-03-30 14:49:31 +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 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
Henri Verbeet f69d0fa00d wined3d: GL errors aren't FIXMEs. 2010-03-29 15:51:21 +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 941c7da08e wined3d: Don't warn about independent color write masks when the masks are all the same. 2010-03-26 10:29:34 +01:00
Henri Verbeet 4651dd86bf wined3d: Implement independent color write masks. 2010-03-26 10:29:29 +01:00
Henri Verbeet 13a57c81f0 wined3d: Add support for EXT_draw_buffers2. 2010-03-26 10:29:23 +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 8cf63f0aee wined3d: Add GL locking to match_fbo_tex_update(). 2010-03-26 10:29:13 +01:00
Stefan Dösinger f74de3ab65 wined3d: Don't advertise float formats as supported by WGL. 2010-03-26 10:28:52 +01:00
Stefan Dösinger 7b43cb1877 wined3d: Don't check WGL depth stencil limitations with FBOs. 2010-03-26 10:28:48 +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
Stefan Dösinger fd13a6ae23 wined3d: Partially implement unserialized buffers with the apple extension. 2010-03-23 12:30:18 +01:00
Stefan Dösinger 5d94fe2095 wined3d: Add a function for deleting the GL buffer. 2010-03-23 12:29:33 +01:00
Roderick Colenbrander 8f604afa96 wined3d: Remove WGL RGBA float support because it doesn't make sense without pbuffers. 2010-03-22 11:41:03 +01:00
Roderick Colenbrander 28a2c7ab29 wined3d: Use the format table instead of WGL-checks in CheckDepthStencilMatch when FBOs are used. 2010-03-22 11:40:52 +01:00
Roderick Colenbrander 5ffb088975 wined3d: Fix depth blit regression. 2010-03-22 11:40:40 +01:00
Francois Gouget 3428b94a8d Assorted spelling and case fixes. 2010-03-22 10:49:13 +01:00
Henri Verbeet 122129f94a wined3d: Add COMPLEX_FIXUP_NONE as value 0 to the complex_fixup enum.
To prevent get_complex_fixup() from returning COMPLEX_FIXUP_YUY2 for simple
fixups.
2010-03-19 14:31:59 +01:00
Henri Verbeet 12608b0a0d wined3d: Unify "gl_formats_template" naming with the other format info tables. 2010-03-19 14:31:51 +01:00
Henri Verbeet 3aaa6ee6e7 wined3d: Rename GlPixelFormatDesc to wined3d_format_desc. 2010-03-19 14:31:47 +01:00
Henri Verbeet 4cd69b8a09 wined3d: Simplify the generated GLSL for NRM. 2010-03-19 14:31:40 +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 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 135f364110 wined3d: Kill VTRACE. 2010-03-18 10:25:02 +01:00
Henri Verbeet f2bcd32bff wined3d: Replace some VTRACEs with proper TRACEs. 2010-03-18 10:24:51 +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 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
Stefan Dösinger d790530df3 wined3d: Make resources 16 byte aligned. 2010-03-17 13:36:39 +01:00
Stefan Dösinger b621fac215 wined3d: Merge two if conditions in buffer.c. 2010-03-17 13:36:17 +01:00
Sandijs Ribaks e385748258 wined3d: Add surface conversion function from WINED3DFMT_YUY2 to WINED3DFMT_B8G8R8X8_UNORM. 2010-03-17 10:59:18 +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 2b86950c3b wined3d: Simplify context_apply_attachment_filter_states() flow a bit. 2010-03-17 10:06:12 +01:00
Henri Verbeet ec10c1ed8d wined3d: Add missing checkGLcall's to buffer_Map(). 2010-03-17 10:06:09 +01:00
Henri Verbeet 570f865bad wined3d: Don't use framebuffer blit for backbuffer formats with fixups in swapchain_blit(). 2010-03-17 10:06:06 +01:00
Henri Verbeet 60e98cc3ad wined3d: Don't use filtering on textures that need complex fixups in swapchain_blit().
For example, interpolating palette indices doesn't have the desired result.
Should we really want filtering for these cases we could implement it inside
the relevant shaders, after the fixup, but I doubt it's worth the effort.
2010-03-17 10:06:03 +01:00
Henri Verbeet c48adfe201 wined3d: Use "gl_filter" in the non-FBO path of swapchain_blit() as well. 2010-03-17 10:05:59 +01:00
Stefan Dösinger cc6d17ba7c wined3d: Check the alignment of mapped buffer pointers.
Windows returns 32 byte aligned pointers when locking vertex and index
buffers, and some applications(Half Life 2, Alpha Prime, possibly others)
rely on this. Check the alignment and fall back to double buffered
buffers with HeapAlloced and aligned pointers if the alignment doesn't
fit.
2010-03-16 17:03:13 +01:00
Stefan Dösinger 6c53871d30 wined3d: Implement unfenced updates of double buffered buffers. 2010-03-16 17:02:50 +01:00
Stefan Dösinger 1691a6d7d0 wined3d: Use glMapBuffer for 1:1 uploads in PreLoad.
This is needed to take advantage of asynchronous uploads with double buffered buffers
2010-03-16 17:02:43 +01:00
Stefan Dösinger 04752991b1 wined3d: Don't DISCARD or NOOVERWRITE non-dynamic buffers.
Shaiya locks a non-dynamic buffer with the DISCARD flag and expects
the contents to be retained. The SDK says DISCARD requires dynamic
resources, and Windows 7 returns an error in this situation, crashing
Shaiya. This patch sticks to the Windows XP behavior and allows the
lock, but ignores the DISCARD flag to retain the buffer contents.
2010-03-16 17:02:34 +01:00