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