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
Roderick Colenbrander
360384277b
wined3d: Extend surface_get_depth_blt_info with texture coordinate code from surface_blt_to_drawable.
2010-03-15 14:22:44 +01:00
Roderick Colenbrander
c0ef7a1a93
wined3d: Move the 8-bit palette shader code over to the blit_shader backend.
2010-03-03 12:53:51 +01:00
Stefan Dösinger
5c4d3fb5a2
wined3d: Control SFLAG_CONVERTED in surface_prepare_texture.
...
This makes sure that the flag is set correctly when
surface_allocate_surface is called and client storage is disabled
properly for converted surfaces.
2010-02-17 16:50:38 +01:00
Henri Verbeet
af7dfcd378
wined3d: Do not preload surfaces when attaching them to an FBO.
...
Just make sure the texture is allocated, so we have something to attach. Note
also that context_apply_attachment_filter_states() runs under the GL lock, so
preloading resources is actually unsafe there.
2010-02-04 13:39:26 +01:00
Henri Verbeet
02e0b3ae1a
wined3d: Introduce surface_prepare_texture().
...
Similar to surface_prepare_system_memory(). In the long term we'll probably
want to move the whole location management to resource.c and unify buffers and
textures there.
2010-02-04 13:39:26 +01:00
Henri Verbeet
b0583a2410
wined3d: Never acquire a context in IWineD3DSurfaceImpl_BindTexture().
...
The caller is already responsible for doing this, so it's redundant at best.
2010-02-04 13:39:26 +01:00
Henri Verbeet
c03d367d3c
wined3d: Get rid of an unnecessary GetContainer() call in surface_blt_to_drawable().
2010-01-29 13:30:06 +01:00
Henri Verbeet
ce42470138
wined3d: Ensure draw ordering across contexts.
2010-01-28 11:07:59 +01:00
Henri Verbeet
ea2f7a2739
wined3d: Remove some redundant returns.
2009-12-30 13:31:26 +01:00
Henri Verbeet
a215d326a5
wined3d: Get rid of the "swapchain" parameter to surface_get_gl_buffer().
...
Casting the container to "IWineD3DSwapChainImpl *" is always safe when
SFLAG_SWAPCHAIN is set on the surface. Most callers don't have a real
need for the swapchain, and end up calling GetContainer() just to pass
it to surface_get_gl_buffer().
2009-12-16 12:22:18 +01:00
Henri Verbeet
97f04248fc
wined3d: Use surface_is_offscreen() in flush_to_framebuffer_drawpixels().
2009-12-16 12:22:03 +01:00
Henri Verbeet
bf113bd284
wined3d: Use surface_is_offscreen() in read_from_framebuffer_texture().
2009-12-16 12:21:58 +01:00
Henri Verbeet
51438eec46
wined3d: Use surface_is_offscreen() in fb_copy_to_texture_hwstretch().
2009-12-16 12:21:50 +01:00
Stefan Dösinger
cde3217268
wined3d: Properly release client storage memory.
2009-12-15 16:09:12 +01:00
Henri Verbeet
82556b613e
wined3d: Let the context handle the draw buffer in fb_copy_to_texture_hwstretch().
2009-12-14 12:04:05 +01:00
Henri Verbeet
59db3ecaa0
wined3d: Let the context handle the draw buffer in flush_to_framebuffer_drawpixels().
2009-12-14 12:04:05 +01:00
Henri Verbeet
b3defd4c80
wined3d: Rename "wineD3DDevice" to "device".
2009-12-10 11:54:47 +01:00
Henri Verbeet
b6ef17f23d
wined3d: Remove unused GetDevice() implementations.
2009-12-09 13:51:04 +01:00
Henri Verbeet
54f3dec8e6
wined3d: Rename the "wineD3D" device field to "wined3d".
2009-12-08 12:33:29 +01:00
Stefan Dösinger
817714912b
wined3d: Infrastructure to render swapchains to a FBO.
2009-12-07 14:33:24 +01:00
Stefan Dösinger
64291c60cb
wined3d: A function for checking if a surface is offscreen.
2009-12-07 14:32:54 +01:00
Stefan Dösinger
54f0d3f785
wined3d: Add a function for initializing surface sysmem.
2009-12-07 14:32:29 +01:00
Stefan Dösinger
6a19339207
wined3d: Remove needless NULL checks (coverity).
2009-12-03 11:45:15 +01:00
Marcus Meissner
9f8a73ab96
wined3d: Check for NULL before context_release (Coverity).
2009-11-03 21:22:46 +01:00
Henri Verbeet
bf10dbe8a6
wined3d: Map D3DFMT_D24S8 to WINED3DFMT_D24_UNORM_S8_UINT.
...
The internal order of the depth and stencil bits is unspecified since the
format isn't lockable.
2009-10-30 11:28:52 +01:00
Henri Verbeet
111307dfba
wined3d: Get rid of the GL_SUPPORT macro.
2009-10-29 13:09:33 +01:00
Henri Verbeet
48e03bc189
wined3d: Introduce a separate structure for various OpenGL implementation limits.
2009-10-29 13:09:27 +01:00
Henri Verbeet
eeb54b9922
wined3d: Keep better track of where we're using wined3d contexts.
...
The idea here is that we can restore the thread's current GL context on
context_release() if it doesn't correspond to the current wined3d context on
context_acquire().
2009-10-28 11:15:19 +01:00
Henri Verbeet
ade350b4d4
wined3d: Compare and copy the actual palette in palette9_changed() (Valgrind).
2009-10-23 12:03:37 +02:00
Henri Verbeet
6be41fd59a
wined3d: Get rid of GL_LIMITS.
2009-10-22 10:46:05 +02:00
Henri Verbeet
55047f811a
wined3d: Fix some GLINFO_LOCATION abuse.
2009-10-22 10:45:57 +02:00
Henri Verbeet
47c84f4f7f
wined3d: Use the DXGI naming convention for all formats.
2009-09-25 15:15:44 +02:00
Stefan Dösinger
4fe014cb54
wined3d: Fix sRGB->RGB copy condition.
...
The old condition happened to work, because SFLAG_INTEXTURE was not
set(we're loading it), and neither was SFLAG_INDRAWABLE(otherwise
INTEXTURE would be set too). If the fbo INDRAWABLE == INTEXTURE is
replaced by INDRAWABLE == INSRGBTEX this doesn't hold true any longer
because SFLAG_INDRAWABLE is set, but not used because the drawable
readback is never used for fbos.
2009-09-23 13:25:33 +02:00
Stefan Dösinger
33ca3c0207
wined3d: Don't mark SFLAG_INTEXTURE up to date with fbo stretchrect.
...
FBO stretchrect marks SFLAG_INDRAWABLE up to date, which currently
also marks SFLAG_INTEXTURE up to date. However, this will change when
we enable rendering to the srgb copy, in which case the drawable could
be equal to the srgb copy, not the rgb copy.
2009-09-23 13:25:21 +02:00
Stefan Dösinger
5b5e3bd0d2
wined3d: Track GL texture states in a separate structure.
2009-09-23 13:24:16 +02:00
Henri Verbeet
34dd27e3a8
wined3d: Don't create a depthstencil renderbuffer if ARB_framebuffer_object is supported.
2009-09-23 12:37:06 +02:00
Henri Verbeet
ec97383f6f
wined3d: Add support for ARB_framebuffer_object.
2009-09-23 12:37:00 +02:00
Henri Verbeet
0a4fa886a7
wined3d: Revert 4ba16b84a9
.
...
Unfortunately surface_can_stretch_rect() doesn't check just for
WINED3DFMT_FLAG_FBO_ATTACHABLE.
2009-09-22 16:16:55 +02:00
Henri Verbeet
dbc4dfc495
wined3d: Move "parent_ops" to IWineD3DResourceClass.
2009-09-18 08:55:33 -05:00
Henri Verbeet
4ba16b84a9
wined3d: Get rid of some redundant checks for ORM_FBO.
...
ORM_FBO is already implied by surface_can_stretch_rect() because
WINED3DFMT_FLAG_FBO_ATTACHABLE can only be set when ORM_FBO is.
2009-09-17 10:09:50 -05:00
Henri Verbeet
a5214c306f
wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.
...
This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.
2009-09-16 13:04:32 -05:00
Stefan Dösinger
e1469961d4
wined3d: Test and fix ddraw and d3d9 GetDC differences.
...
The MSDN is not totally correct: A8R8G8B8 and A1R5G5B5 also allow GetDC. The
main differences that have to be filtered out in d3d9.dll are GetDC on
A8B8G8R8, X8B8G8R8 and P8.
2009-09-08 13:04:52 +02:00
Henri Verbeet
560d63548d
wined3d: Remove trailing spaces.
2009-08-27 11:45:37 +02:00
Stefan Dösinger
52731a80c8
wined3d: Make it clear that glFlush and glFinish are WGL functions.
2009-08-26 14:35:41 +02:00
Rico Schüller
d9784c1a2f
wined3d: Fix some checkGLcalls.
2009-08-19 14:41:49 +02:00
Henri Verbeet
b8078fc747
wined3d: Use WINED3D_UNMAPPED_STAGE in some more places.
2009-08-17 13:57:50 +02:00
Henri Verbeet
ecd2dc7603
wined3d: Make RTL_READTEX the default rendertarget locking method.
...
For most cards this should make more sense than RTL_READDRAW, even if e.g.
surface_upload_data() has some room for improvement.
2009-08-14 13:59:09 +02:00
Roderick Colenbrander
5a00c8053e
wined3d: Get rid of two dead render target lock mode options.
2009-08-10 13:10:49 +02:00
Henri Verbeet
a7251f0f4e
wined3d: Track render_offscreen in the context.
...
This makes sure the relevant states in FindContext() are actually marked dirty
when needed.
2009-08-06 17:26:30 +02:00