Henri Verbeet
8e059205ba
wined3d: Translate drawable coordinates in flush_to_framebuffer_drawpixels().
2010-11-02 13:17:35 +01:00
Henri Verbeet
3f0d16c5bf
wined3d: Do not use "lockedRect" unless the surface is locked in flush_to_framebuffer_drawpixels().
2010-11-02 13:17:31 +01:00
Henri Verbeet
e35b6aa1a7
wined3d: Change surface_translate_frontbuffer_coords() to handle all drawable coordinates.
2010-11-01 13:34:43 +01:00
Henri Verbeet
27bf4c3747
wined3d: Remove some redundant state save/restore code from flush_to_framebuffer_drawpixels().
2010-10-29 14:33:57 +02:00
Henri Verbeet
7414ebc975
wined3d: Don't flip the coordinate system in set_blit_dimension().
2010-10-29 14:33:57 +02:00
Henri Verbeet
2b58f80c27
wined3d: Use surface_blt_to_drawable() in IWineD3DSurfaceImpl_BltOverride().
2010-10-21 16:15:31 +02:00
Henri Verbeet
574169174e
wined3d: Check if we can do the blit before messing with surface flags in IWineD3DSurfaceImpl_BltOverride().
...
As an added benefit blit_supported() will now get the rectangles in the
correct coordinate system.
2010-10-21 16:15:25 +02:00
Henri Verbeet
1237e8065e
wined3d: Properly flip in surface_blt_to_drawable().
...
We want to flip the coordinate system, not just the rectangle.
2010-10-19 13:50:13 +02:00
Henri Verbeet
8a96a8cc1f
wined3d: Always pass a valid rectangle to surface_get_blt_info().
2010-10-19 13:50:09 +02:00
Henri Verbeet
ca381b610c
wined3d: Allow FBO blits again between surfaces with fixups if they have the same format.
...
For some reason f1ca14cb5b
disabled this.
2010-10-19 13:50:01 +02:00
Henri Verbeet
1fa3365832
wined3d: Flip destination coordinates when blitting to an offscreen target in BltOverride().
2010-10-15 16:19:50 +02:00
Henri Verbeet
95469309d6
wined3d: Consistently use Map/Unmap for mapping resources.
2010-10-14 17:54:52 +02:00
Henri Verbeet
b68d257710
wined3d: Get rid of redundant comparisons against NULL / 0.
2010-09-14 09:43:33 -05:00
Henri Verbeet
8fbf23f0cc
wined3d: Don't overwrite the offscreen depth/stencil surface with undefined data in surface_load_ds_location().
2010-09-06 16:14:26 +02:00
Henri Verbeet
8e0cb60b09
wined3d: Do not call device_switch_onscreen_ds() while under the GL lock.
2010-09-06 16:14:18 +02:00
Henri Verbeet
bc2db78c3a
wined3d: Explicitly document some more consequences of GL locking policy.
...
The basic rule is that you can't call anything that takes the user32 / gdi32
lock while under the GL (winex11) lock. As a consequence, you can't call
anything like context_acquire() or context_destroy() either.
2010-09-03 11:05:10 +02:00
Henri Verbeet
6c4c351791
wined3d: Don't require wined3d object parents to be COM objects.
2010-09-01 14:01:02 +02:00
Henri Verbeet
3a7f08a56f
wined3d: Rename wined3d_format_desc to wined3d_format.
2010-08-31 14:23:47 +02:00
Henri Verbeet
4005eb2a18
wined3d: Get rid of WINED3DRECT.
2010-08-31 14:23:47 +02:00
Henri Verbeet
1bf25cfe3f
wined3d: Use debug_surflocation() in surface_load_location().
2010-08-31 14:23:46 +02:00
Henri Verbeet
c689280beb
wined3d: Use surface_color_fill() in IWineD3DDeviceImpl_ColorFill().
2010-08-30 11:26:45 +02:00
Henri Verbeet
ecc67757ab
wined3d: Introduce surface_color_fill().
...
This is also a first attempt at a more structured interface to blitter
operations.
2010-08-30 11:26:45 +02:00
Henri Verbeet
b233e7b301
wined3d: Rename the "format" field in wined3d_format_desc to "id".
2010-08-26 12:41:44 +02:00
Henri Verbeet
42b814c7d1
wined3d: Remove the GetContainer() methods from the public wined3d interface.
...
There's nothing left that uses these.
2010-08-26 12:41:39 +02:00
Henri Verbeet
22428d97e1
wined3d: Don't set a NULL container of type WINED3D_CONTAINER_TEXTURE.
...
Any container type other than WINED3D_CONTAINER_NONE implies a valid pointer
of the specified type. This fixes a regression introduced by
368e5eb87a
.
2010-08-26 12:41:34 +02:00
Henri Verbeet
87e12b8b6a
wined3d: Introduce a local variable for gl_info in IWineD3DSurfaceImpl_BltOverride().
2010-08-25 11:57:12 +02:00
Henri Verbeet
cc5271d1b7
wined3d: Rename WINED3DFORMAT to wined3d_format_id.
2010-08-24 12:25:01 +02:00
Henri Verbeet
50b5955288
wined3d: Use floating point colors in the blitter's color_fill functions.
2010-08-24 12:24:39 +02:00
Henri Verbeet
9956ea7044
wined3d: Convert from floating point to specific surface formats.
...
Instead of from WINED3DFMT_B8G8R8A8_UNORM.
2010-08-24 12:24:33 +02:00
Henri Verbeet
a455a918c1
wined3d: Explicitly pass the draw rect to device_clear_render_targets().
...
For regular clears this is the intersection of the viewport and scissor
rectangles, but color fills shouldn't be affected by those.
2010-08-24 12:24:28 +02:00
Henri Verbeet
b93a9b37fa
wined3d: Pass a WINED3DCOLORVALUE structure to IWineD3DDeviceImpl_ClearRendertargetView().
...
The structure is nicer to work with than the array.
2010-08-23 12:05:24 +02:00
Henri Verbeet
910d3022c3
wined3d: Do not release a reference we do not have in IWineD3DSurfaceImpl_Flip().
...
This fixes a regression introduced by 368e5eb87a
.
2010-08-20 14:11:10 +02:00
Henri Verbeet
f06b22a537
wined3d: Add a TRACE to IWineD3DSurfaceImpl_LoadTexture().
2010-08-18 09:39:42 +02:00
Henri Verbeet
368e5eb87a
wined3d: Avoid IWineD3DSurface_GetContainer().
2010-08-17 11:55:32 +02:00
Henri Verbeet
8292c687d8
wined3d: Get rid of the now redundant SFLAG_SWAPCHAIN surface flag.
2010-08-17 11:55:32 +02:00
Henri Verbeet
0b24db5db5
wined3d: Also store the subresource container type.
2010-08-17 11:55:32 +02:00
Henri Verbeet
61db577a4b
wined3d: Remove SetContainer() from the public IWineD3DSurface interface.
2010-08-17 11:55:32 +02:00
Henri Verbeet
a16cf58494
wined3d: Fix a couple of typos.
2010-08-16 13:47:53 +02:00
Henri Verbeet
d494dfb6c0
wined3d: Rename surface_calculate_size() to wined3d_format_calculate_size().
2010-08-16 13:47:42 +02:00
Henri Verbeet
3a36013065
wined3d: Print the correct resource location in surface_set_texture_name().
2010-08-16 13:47:33 +02:00
Henri Verbeet
e1188b0c8e
wined3d: Fix some misspellings of "surface".
2010-08-16 13:47:17 +02:00
Henri Verbeet
5f2fcfdd6b
wined3d: Reattach FBO attachments when any of the corresponding surfaces is unloaded.
2010-08-16 13:47:08 +02:00
Henri Verbeet
2b88b2d351
wined3d: Only try to acquire a context in surface_cleanup() if there are GL resources to be destroyed.
...
The reason we're in surface_cleanup() might for example be that context
creation failed.
2010-08-04 13:24:21 +02:00
Henri Verbeet
88ff3f406d
wined3d: Always set the get_drawable_size() surface function.
2010-08-03 11:06:47 +02:00
Henri Verbeet
b2e1e1fd71
wined3d: Pass the color as floating point values to device_clear_render_targets().
2010-08-03 11:06:42 +02:00
Henri Verbeet
6e68dd52c4
wined3d: Use the correct divider for 15-bit depth formats in IWineD3DSurfaceImpl_BltZ().
2010-08-03 11:06:20 +02:00
Henri Verbeet
6874743e78
wined3d: Add a missing return statement to surface_prepare_texture().
...
Calling surface_prepare_texture_internal() twice on the same surface is
harmless, but unnecessary.
2010-07-26 18:38:31 +02:00
Henri Verbeet
0bf68b846a
wined3d: Merge strect_rect_fbo() and surface_load_srgb_fbo().
2010-07-26 18:38:31 +02:00
Henri Verbeet
943fb2fb57
wined3d: Do RGB <=> sRGB transfers using FBO blits.
...
Concept based on a patch by Stefan.
2010-07-26 18:38:31 +02:00
Henri Verbeet
d374d85055
wined3d: Clear all render targets in an MRT setup.
2010-07-23 11:46:47 +02:00
Henri Verbeet
f7760656f3
wined3d: Remove LoadLocation() from the public wined3d surface interface.
2010-07-22 10:13:24 +02:00
Henri Verbeet
147f24dd78
wined3d: Remove ModifyLocation() from the public wined3d surface interface.
2010-07-22 10:13:13 +02:00
Henri Verbeet
c411b45da9
wined3d: Use a more consistent name for the normalized texrect "extension".
2010-07-21 09:33:18 +02:00
Henri Verbeet
4b850ed121
wined3d: Remove restoring the read buffer from read_from_framebuffer_texture().
...
The few functions that care about the read buffer should explicitly set it
themselves, instead of assuming any particular state.
2010-07-20 13:13:04 +02:00
Francois Gouget
7649c75b40
Assorted typo and spelling fixes.
2010-06-24 10:37:05 +02:00
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