Commit Graph

1204 Commits

Author SHA1 Message Date
Stefan Dösinger 42927d0e9d wined3d: Add INDIB and INUSERMEM to resource_access_from_location. 2014-01-15 20:03:31 +01:00
Stefan Dösinger d0823eb4f0 wined3d: Re-enable mapping into the DIB. 2014-01-14 20:18:25 +01:00
Stefan Dösinger 9665884766 wined3d: Don't map the surface in getdc.
This avoids bouncing the content between the map binding and DIB.
2014-01-14 20:18:25 +01:00
Stefan Dösinger adf0ab2ad8 wined3d: Give the DIB section its own location. 2014-01-14 20:18:24 +01:00
Stefan Dösinger f6403b4ac0 wined3d: Do not use surface->resource.allocatedMemory. 2014-01-14 20:18:23 +01:00
Stefan Dösinger 353b3ba6d3 wined3d: Don't lock directly into the DIB. 2014-01-14 20:18:22 +01:00
Stefan Dösinger 4ca8f7104f wined3d: Move map binding loading to wined3d_surface_map. 2014-01-13 18:41:42 +01:00
Stefan Dösinger e2c0bc63cb wined3d: Start to split up surface_prepare_system_memory. 2014-01-13 18:41:15 +01:00
Stefan Dösinger 676a7f2140 wined3d: Make the callers of load_location responsible for allocating sysmem. 2014-01-13 18:41:09 +01:00
Stefan Dösinger 28bfc20589 wined3d: Use the map binding to optimize sysmem->sysmem blits. 2014-01-13 18:41:03 +01:00
Stefan Dösinger 965d00f4b6 wined3d: Give user memory its own location. 2014-01-10 17:59:16 +01:00
Stefan Dösinger badf3d8db7 wined3d: Load surfaces into map binding memory on unload.
A surface can stay in DIB or user memory just fine. When buffers get
their own location an exception for them has to be added.
2014-01-10 17:56:48 +01:00
Stefan Dösinger 18bf8b49b3 wined3d: Move location flag updating out of surface_init_sysmem. 2014-01-10 17:56:43 +01:00
Stefan Dösinger 1b561e815e wined3d: Use the map binding for RGB<->sRGB loads. 2014-01-10 17:56:39 +01:00
Stefan Dösinger 5c1df19b16 wined3d: Use the map binding to reload surfaces on color key changes. 2014-01-10 17:56:30 +01:00
Stefan Dösinger 5479ccea20 wined3d: Use the map binding to reload surfaces on palette changes. 2014-01-10 17:56:27 +01:00
Stefan Dösinger 1046551c34 wined3d: Add a map_binding field to surfaces.
Buffers, heap memory, user memory and DIBs will have their own
locations. This field specifies which location is used when the surface
is mapped.
2014-01-10 17:56:24 +01:00
Henri Verbeet 51cdeeacd4 wined3d: Explicitly request alpha testing for blitting the cursor and logo textures to screen. 2014-01-10 12:06:09 +01:00
Frédéric Delanoy 91f2435469 Assorted spelling fixes. 2014-01-09 17:39:59 +01:00
Stefan Dösinger 441d8ffeb2 wined3d: Mark the system location up to date in the DIB recreation codepath. 2014-01-09 17:39:54 +01:00
Stefan Dösinger db6d3c500c wined3d: Remove SFLAG_USERPTR. 2014-01-09 17:39:53 +01:00
Henri Verbeet 4710c4b51a wined3d: Store color keys in textures instead of in surfaces. 2014-01-09 15:50:39 +01:00
Stefan Dösinger b91973daa7 wined3d: Merge wined3d_surface_set_mem into wined3d_surface_update_desc . 2014-01-08 20:02:22 +01:00
Stefan Dösinger 82666af87a wined3d: Simplify wined3d_surface_set_mem. 2014-01-08 19:58:56 +01:00
Stefan Dösinger 70eab9d025 wined3d: Support custom pitches in wined3d_surface_update_desc. 2014-01-08 17:35:08 +01:00
Stefan Dösinger fb75292875 wined3d: Don't store user memory in allocatedMemory. 2013-12-13 16:55:30 +01:00
Stefan Dösinger a1762ba8a4 wined3d: Don't check for render target usage in wined3d_surface_set_mem.
Ddraw and d3d9 already take care of this.
2013-12-13 16:55:28 +01:00
Henri Verbeet 4e7b62a46d wined3d: Get rid of unused palette flags. 2013-12-13 12:36:11 +01:00
Stefan Dösinger 78fda5cea0 wined3d: Rename surface_load_pbo to surface_create_pbo. 2013-12-11 18:17:02 +01:00
Stefan Dösinger 4de7249d23 wined3d: Call buffer_get_memory in surface_load_pbo. 2013-12-11 18:17:01 +01:00
Stefan Dösinger 800571c015 wined3d: Use surface_get_memory in surface_download_data. 2013-12-11 18:17:01 +01:00
Stefan Dösinger 9b67b1b8a1 wined3d: Support getdc with user memory. 2013-12-11 18:17:00 +01:00
Henri Verbeet 544e52bff4 wined3d: Recreate DIB sections in wined3d_surface_update_desc().
Since commit 6bc69c271b, the GDI implementation
assumes DIB sections always exist.
2013-12-11 15:14:49 +01:00
Henri Verbeet 7524258aaf ddraw: Implement flips inside ddraw. 2013-12-05 12:40:56 +01:00
Frédéric Delanoy 5ba7f79bad Assorted spelling fixes. 2013-12-03 19:41:53 +01:00
Stefan Dösinger 60ecf707a7 wined3d: Remove a useless comment. 2013-12-02 17:16:45 +01:00
Stefan Dösinger 6f865d3ea5 wined3d: Don't pass the pitch to read_from_framebuffer. 2013-12-02 17:16:43 +01:00
Stefan Dösinger e8c774e486 wined3d: Remove redundant state restoration from read_from_framebuffer. 2013-12-02 17:16:38 +01:00
Stefan Dösinger 6907faf805 wined3d: Use surface_get_memory in read_from_framebuffer. 2013-12-02 17:16:34 +01:00
Stefan Dösinger ae3788dcba wined3d: Add a function to retrieve surface data. 2013-12-02 17:16:28 +01:00
Henri Verbeet 7052c87358 wined3d: Properly check for the front buffer in d3dfmt_get_conv(). 2013-12-02 12:12:43 +01:00
Stefan Dösinger 6d0d018bfa wined3d: Don't store PBO pointers in allocatedMemory. 2013-11-27 17:14:32 +01:00
Henri Verbeet 4b3db52b53 wined3d: Merge the texture creation functions. 2013-11-27 11:30:15 +01:00
Stefan Dösinger eb446e8640 wined3d: Use the pointer returned by map in wined3d_surface_getdc. 2013-11-26 17:15:25 +01:00
Stefan Dösinger 038e45c662 wined3d: Don't set SFLAG_INSYSMEM in surface_download_data.
surface_load_location takes care of this.
2013-11-26 17:15:21 +01:00
Stefan Dösinger 1a55000df1 wined3d: Discard non-sysmem locations in unload. 2013-11-26 17:15:14 +01:00
Henri Verbeet 4122cd8083 wined3d: Get rid of surface_set_dirty(). 2013-11-25 15:15:54 +01:00
Henri Verbeet 71b982d040 wined3d: Just use surface_invalidate_location() in surface_map(). 2013-11-25 15:15:54 +01:00
Henri Verbeet 82c1d01364 wined3d: Just validate the sysmem location in surface_init().
This is all surface_set_dirty() really does here.
2013-11-25 15:15:54 +01:00
Henri Verbeet caf9ad6c2c wined3d: Swap the container's texture name in flip_surface(). 2013-11-22 16:41:35 +01:00
Henri Verbeet f6b5dc246a wined3d: Get rid of the WINED3DSRGB enum. 2013-11-22 11:37:29 +01:00
Henri Verbeet 7427b72250 wined3d: Get rid of surface_internal_preload(). 2013-11-22 11:37:24 +01:00
Henri Verbeet e0beab8b81 wined3d: Merge texture2d_preload() and texture3d_preload() into wined3d_texture_load(). 2013-11-22 11:37:20 +01:00
Henri Verbeet c025b5d06b wined3d: surface_load() should never fail. 2013-11-22 11:37:07 +01:00
Stefan Dösinger 6bc69c271b wined3d: Don't create a DIB section in gdi_surface_map. 2013-11-21 19:39:02 +01:00
Henri Verbeet f91eab6d3e wined3d: Merge surface_bind_and_dirtify() and volume_bind_and_dirtify() into wined3d_texture_bind_and_dirtify(). 2013-11-21 13:36:35 +01:00
Henri Verbeet 2e63e8f9cc wined3d: Get rid of surface_bind(). 2013-11-21 13:36:33 +01:00
Henri Verbeet 6b90248aec wined3d: Merge texture2d_bind() and texture3d_bind() into wined3d_texture_bind(). 2013-11-21 13:36:29 +01:00
Stefan Dösinger 0ff0a6e9bc wined3d: Remove surface->dirtyRect. 2013-11-20 16:54:39 +01:00
Stefan Dösinger 047ce3af6e wined3d: Remove partial surface update support.
This has only ever worked for render targets, and only through the
glDrawPixels codepath, which was removed long ago.
2013-11-20 16:54:39 +01:00
Stefan Dösinger 5d4233378d wined3d: Remove broken ddraw overlay support. 2013-11-20 16:54:39 +01:00
Henri Verbeet 7e8897b7b8 wined3d: Get rid of the redundant texture_name and texture_name_srgb fields in struct wined3d_surface. 2013-11-20 11:28:22 +01:00
Henri Verbeet ad6a194aa0 wined3d: Surfaces always have a container in ffp_blit_set(). 2013-11-20 11:28:18 +01:00
Henri Verbeet 51f05a1f14 wined3d: Surfaces always have a container in surface_invalidate_location(). 2013-11-20 11:28:16 +01:00
Henri Verbeet 0fba32f139 wined3d: Surfaces always have a container in surface_modify_ds_location(). 2013-11-19 11:09:00 +01:00
Henri Verbeet f020251d2b wined3d: Surfaces always have a container in fb_copy_to_texture_direct(). 2013-11-19 11:08:58 +01:00
Henri Verbeet 2d262b3c97 wined3d: Surfaces always have a container in surface_prepare_texture(). 2013-11-19 11:08:56 +01:00
Henri Verbeet 57292f9498 wined3d: Surfaces always have a container in surface_internal_preload(). 2013-11-19 11:08:54 +01:00
Henri Verbeet aa48321ccd wined3d: Surfaces always have a container in surface_add_dirty_rect(). 2013-11-19 11:08:52 +01:00
Henri Verbeet 743900faaa wined3d: Surfaces always have a container in surface_unload(). 2013-11-18 11:20:54 +01:00
Henri Verbeet 32fb4e45eb wined3d: Surfaces always have a container in surface_bind(). 2013-11-18 11:20:51 +01:00
Henri Verbeet 96fbf9fed3 wined3d: Surfaces always have a container in draw_textured_quad(). 2013-11-18 11:20:49 +01:00
Henri Verbeet 941fe99eaf wined3d: Avoid calling wined3d_surface_set_mem() in surface_cleanup().
Calling wined3d_surface_set_mem() might cause the surface container to be
accessed, for example when invalidating resource locations. This would become
a problem once we assume surfaces always have a container, and is pointless
anyway because the surface is being destroyed.
2013-11-18 11:20:42 +01:00
Henri Verbeet 42f6ca821c wined3d: Set the surface container in surface_init(). 2013-11-15 12:00:32 +01:00
Henri Verbeet bb00811d60 wined3d: Pass a wined3d_resource_desc structure to surface_init(). 2013-11-15 12:00:30 +01:00
Henri Verbeet afc3d2ab70 wined3d: Create surfaces inside wined3d. 2013-11-15 12:00:26 +01:00
Henri Verbeet c3da4ce088 wined3d: Don't map the destination surface read-only in surface_convert_format(). 2013-11-13 11:27:42 +01:00
Henri Verbeet 7c928b6c5c wined3d: Create textures for converted surfaces. 2013-11-13 11:27:39 +01:00
Stefan Dösinger 331bb68edb wined3d: Remove SCRATCH and SYSMEM lockability warnings.
They are not needed any more, resource_access_from_pool takes care of
this.
2013-10-24 19:01:56 +02:00
Stefan Dösinger db852ff5b5 wined3d: Remove sRGB_decode handling from surface_load_location. 2013-10-09 15:52:24 +02:00
Stefan Dösinger 1631603986 wined3d: Remove redundant surface location changes.
fb_copy_to_texture_direct and fb_copy_to_texture_hwstretch already
invalidate everything but the RGB texture.
2013-10-08 15:39:02 +02:00
Stefan Dösinger e4a0767e2d wined3d: Get rid of SFLAG_LOCKABLE. 2013-10-08 15:39:02 +02:00
Stefan Dösinger bff422f340 wined3d: Avoid duplicated code in wined3d_surface_blt. 2013-10-08 15:39:02 +02:00
Henri Verbeet ea4c3d5d5d wined3d: Get rid of the broken render target check for surface_blt_special().
This used to work out in practice because swapchain surfaces were always
considered render targets, but that's no longer true. We can just remove the
check, because surface_blt_special() already contains a proper check itself
anyway.
2013-09-24 12:57:24 +02:00
Stefan Dösinger 5e89689bcd wined3d: Make format conversion functions work on volumes. 2013-09-23 20:32:32 +02:00
Stefan Dösinger 24fbe9f2ec wined3d: Pass the destination pitch to format conversion functions.
The relation between src and dst pitches is not correct if the source
pitch is padded to match pitch alignment requirements.
2013-09-20 17:04:04 +02:00
Stefan Dösinger 112617f00b wined3d: Move tex_unit_map and friends into the context. 2013-09-16 13:05:58 +02:00
Stefan Dösinger f29c24f2de wined3d: Pass the context to surface_internal_preload. 2013-09-16 13:05:55 +02:00
Stefan Dösinger fe44be5fde wined3d: Pass the context to the internal texture_preload function. 2013-09-16 13:05:52 +02:00
Henri Verbeet d1e44ff775 wined3d: Pass a resource to wined3d_resource_free_sysmem(). 2013-09-16 12:51:13 +02:00
Henri Verbeet 261246ef21 wined3d: Pass a resource to wined3d_resource_allocate_sysmem(). 2013-09-16 12:51:13 +02:00
Henri Verbeet 1b53cbd8de wined3d: Make primary_render_target_is_p8() work on a swapchain. 2013-09-12 10:59:11 +02:00
Henri Verbeet 1453baf64b wined3d: Properly check if the swapchain format is WINED3DFMT_P8_UINT in primary_render_target_is_p8(). 2013-09-11 09:58:52 +02:00
Henri Verbeet aea8d5c11e wined3d: Get rid of the render target / overlay check in wined3d_surface_flip().
The surface needs to be part of a swapchain to be flipped, but that doesn't
have much to do with WINED3DUSAGE_RENDERTARGET. We can just remove the check
here, because ddraw_surface7_Flip() already has the correct check.
2013-09-11 09:58:50 +02:00
Henri Verbeet d21c26e4f6 wined3d: Get rid of surface_modify_location(). 2013-09-10 11:09:53 +02:00
Henri Verbeet b62915dabb wined3d: Replace surface_modify_location(surface, location, FALSE) calls with surface_invalidate_location(). 2013-09-10 11:09:51 +02:00
Henri Verbeet c6ce5486c0 wined3d: Get rid of the special SFLAG_INTEXTURE / SFLAG_INSRGBTEX code in surface_modify_location().
It turns out this is already safe for all callers.
2013-09-10 11:09:48 +02:00
Henri Verbeet e2f4ab4607 wined3d: Rewrite surface_modify_location() on top of surface_validate_location() and surface_invalidate_location(). 2013-09-09 22:09:58 +02:00
Henri Verbeet c44012f0c1 wined3d: Get rid of the "dirty" flag to wined3d_texture_set_dirty(). 2013-09-09 22:09:57 +02:00
Henri Verbeet 7859509f5b wined3d: Get rid of the SFLAG_INTEXTURE / SFLAG_INSRGBTEX check in surface_set_texture_name(). 2013-09-06 12:00:12 +02:00