Henri Verbeet
ddc29c40e6
wined3d: Make D3DRS_ZBIAS work.
...
D3DRS_ZBIAS is poorly defined, but it makes sense that the bias should be
format independent. Looking at application behaviour, it seems to include a
slope scale factor as well. This fixes a couple of regressions introduced by
96b758f7b3
, although it was broken before as
well, just in a different way.
2011-07-05 13:46:07 +02:00
André Hentschel
a7c1b5f02e
wined3d: Remove dead code (clang).
2011-07-04 19:06:51 +02:00
Henri Verbeet
5d6f29818f
wined3d: Get rid of the GL_SupportedExt typedef.
2011-07-04 13:44:52 +02:00
Henri Verbeet
82d74d563a
wined3d: Get rid of the tex_op_args typedef.
2011-07-04 13:44:47 +02:00
Henri Verbeet
b1664a2c85
wined3d: Get rid of some IWineD3D* references.
2011-07-04 13:44:41 +02:00
Henri Verbeet
0c716b77e5
wined3d: Move some enums to directx.c.
2011-07-04 13:44:29 +02:00
Henri Verbeet
8f6ae4ba38
wined3d: Get rid of some macros.
2011-07-04 13:44:25 +02:00
Henri Verbeet
c20b23eb00
wined3d: Make the surface parameter to context_surface_update() const.
2011-07-01 14:39:35 +02:00
Henri Verbeet
2257a70e37
wined3d: Make the device parameter to context_resource_unloaded() const.
2011-07-01 14:39:35 +02:00
Henri Verbeet
6894d8022a
wined3d: Make the device parameter to context_resource_released() const.
2011-07-01 14:39:35 +02:00
Henri Verbeet
53b99dde14
wined3d: Make the device and surface parameters to context_enum_surface_fbo_entries() const.
2011-07-01 14:39:35 +02:00
Henri Verbeet
b3b1d20562
wined3d: Make the context parameter to context_check_fbo_status() const.
2011-07-01 14:39:35 +02:00
Henri Verbeet
a8de1272da
wined3d: Make the context parameter to context_attach_depth_stencil_fbo() const.
2011-06-29 10:08:44 -05:00
Henri Verbeet
0bae611bf5
wined3d: Make the context parameter to context_create_fbo_entry() const.
2011-06-29 10:08:39 -05:00
Henri Verbeet
12be5afd92
wined3d: Get rid of the glsl_sample_function_t typedef.
2011-06-29 10:08:34 -05:00
Henri Verbeet
8fa44dd76d
wined3d: Get rid of the glsl_src_param_t typedef.
2011-06-29 10:08:28 -05:00
Henri Verbeet
3f62b618c4
wined3d: Get rid of the glsl_dst_param_t typedef.
2011-06-29 10:08:19 -05:00
Stefan Dösinger
a27adc478a
wined3d: Update the vertex shader when the clipplanes are changed.
2011-06-28 11:57:51 -05:00
Henri Verbeet
ebcf08e59a
wined3d: Properly destroy contexts not owned by the implcit swapchain.
...
In particular, set num_contexts to 0 in the swapchain that owns the contexts.
2011-06-28 10:18:37 -05:00
Henri Verbeet
560d5188b7
wined3d: Make the rts and ds parameters to context_validate_rt_config() const.
2011-06-28 10:18:30 -05:00
Henri Verbeet
64bf19d07b
wined3d: Make the generate_rt_mask_no_fbo() parameters const.
2011-06-28 10:18:26 -05:00
Henri Verbeet
b9721600dc
wined3d: Make the target parameter to generate_rt_mask_from_surface() const.
2011-06-28 10:18:20 -05:00
Henri Verbeet
4725d4bb99
wined3d: Make the depth_stencil parameter to context_validate_onscreen_formats() const.
2011-06-28 10:18:15 -05:00
Stefan Dösinger
5e97e22951
wined3d: Separate stream sources and vertex declaration.
...
Changing the stream sources does not require a reapplication of the
vertex declaration. Even setting a NULL vertex buffer doesn't make
attributes disappear - it just causes a segfault on Windows.
2011-06-27 16:43:24 -05:00
Stefan Dösinger
9ed6dc9144
wined3d: Don't set FBO attachment filtering to GL_NEAREST.
...
The min and mag filters should not have any effect when rendering to
textures. This code was once needed to work around a bug in the Nvidia
driver. Changing the texture filter states is expensive and makes it
harder to apply the FBO state only when needed.
2011-06-27 16:43:08 -05:00
Stefan Dösinger
1bc01f8f87
wined3d: Get rid of the has_signature_idx field in the ARB ps private data.
2011-06-24 11:58:11 -05:00
Stefan Dösinger
3a3b482864
wined3d: Fix a typo in compare_sig in the arb backend.
2011-06-24 11:58:04 -05:00
Henri Verbeet
c461d312ba
wined3d: Request per-surface palettes in the client libs.
2011-06-24 08:49:48 -05:00
Henri Verbeet
b296f181dd
wined3d: Explicitly set surface alignment in the client libs.
...
Instead of using dxVersion.
2011-06-24 08:49:42 -05:00
Henri Verbeet
fd8dbf0847
wined3d: Make the surface parameter to surface_get_gl_buffer() const.
2011-06-24 08:49:34 -05:00
Henri Verbeet
0ce282edf7
wined3d: Make the surface parameter to surface_is_offscreen() const.
2011-06-24 08:49:28 -05:00
Henri Verbeet
c3c131ab34
wined3d: Only invalidate STATE_STREAMSRC for bound buffers.
2011-06-23 09:47:35 +02:00
Henri Verbeet
c4da128b8f
wined3d: Make the device and target parameters to FindContext() const.
2011-06-23 09:47:34 +02:00
Henri Verbeet
5a26da1d19
wined3d: Make the wined3d_shader_context shader pointer const.
2011-06-23 09:47:34 +02:00
Henri Verbeet
330ffc83f2
d3d8: Implement IDirect3DVolume8 private data handling on top of wined3d_resource.
2011-06-23 09:47:34 +02:00
Matteo Bruni
32787ec0dd
wined3d: Fix draw buffers tracking.
2011-06-22 15:21:43 +02:00
Matteo Bruni
0919ac3b51
wined3d: Fix context_apply_draw_buffers() with backbuffer ORM.
2011-06-22 15:21:36 +02:00
Matteo Bruni
5b67bd4fb2
wined3d: Fix context_apply_blit_state().
2011-06-22 15:21:27 +02:00
Henri Verbeet
42db8e2bfa
wined3d: Make the context parameter to isStateDirty() const.
2011-06-22 11:25:39 +02:00
Henri Verbeet
14bc0e9ef2
wined3d: Invalidate STATE_STREAMSRC when dropping VBOs.
2011-06-22 11:25:34 +02:00
Henri Verbeet
acd8c58725
ddraw: Implement surface private data handling on top of wined3d_resource.
2011-06-22 11:25:27 +02:00
Piotr Pawlow
b5e04640cc
wined3d: Use a separate mutex for wndproc_table access.
...
If CreateDevice is called with hFocusWindow belonging to another thread,
then any code that does SendMessage (or equivalent) to the window while
holding the main wined3d mutex causes a deadlock, because wined3d_wndproc
tries to acquire the same mutex for wndproc_table access.
2011-06-21 16:18:56 +02:00
Henri Verbeet
4582a0bcb3
wined3d: Make the device parameter to device_invalidate_state() const.
2011-06-21 11:25:18 +02:00
Henri Verbeet
233b8e1cf8
wined3d: Fix the STATE_BASEVERTEXINDEX state entry.
2011-06-21 11:25:15 +02:00
Henri Verbeet
265e62378f
wined3d: Validate STATE_BASEVERTEXINDEX in validate_state_table().
2011-06-21 11:25:13 +02:00
Henri Verbeet
430bac5fad
wined3d: Only bother checking block alignment for compressed surfaces in wined3d_device_update_surface().
2011-06-21 11:25:09 +02:00
Henri Verbeet
17eb3e2c74
wined3d: Initialize format block info with sane values for uncompressed formats.
2011-06-21 11:25:06 +02:00
Stefan Dösinger
73cec67c14
wined3d: Link STATE_BASEVERTEXINDEX to STATE_VDECL.
2011-06-20 19:32:02 +02:00
Stefan Dösinger
2daa16c96c
wined3d: Use base_vertex_index in drawStridedSlow, and only for indexed draws.
2011-06-20 19:32:02 +02:00
Henri Verbeet
792060d67f
d3d8: Implement IDirect3DVolumeTexture8 private data handling on top of wined3d_resource.
2011-06-20 11:28:40 +02:00
Henri Verbeet
732338ab35
d3d9: Implement IDirect3DCubeTexture9 private data handling on top of wined3d_resource.
2011-06-20 11:28:22 +02:00
Stefan Dösinger
68b15bc5ff
wined3d: Give GL_ARB_map_buffer_range another try.
...
Nvidia's 270.xx.yy driver series fix the glMapBuffer alignment issues that caused major
performance problems. If the user is using an older driver we now drop the VBO instead of using
doublebuffered loading, which means that we fall back to the current behavior(no dynamic VBO) as
needed. Dynamic VBOs are needed on Nvidia drivers for GL_ARB_instanced_arrays.
2011-06-17 15:37:45 +02:00
Stefan Dösinger
12140b5158
wined3d: Drop the VBO when the GL alignment doesn't fit on dynamic buffers.
2011-06-17 15:37:41 +02:00
Stefan Dösinger
19a1b74252
wined3d: Add STATE_BASEVERTEXINDEX to debug_d3dstate.
2011-06-17 15:37:31 +02:00
Henri Verbeet
37d70103a1
d3d8: Implement IDirect3DIndexBuffer8 private data handling on top of wined3d_resource.
2011-06-17 11:02:43 +02:00
Henri Verbeet
469eba24c0
d3d9: Implement IDirect3DVertexBuffer9 private data handling on top of wined3d_resource.
2011-06-17 11:02:28 +02:00
Henri Verbeet
45a0e95962
wined3d: Only load the surface for partial updates in wined3d_device_update_surface().
2011-06-17 11:02:21 +02:00
Henri Verbeet
3a1d151561
wined3d: Use surface_load_location() instead of surface_internal_preload() in wined3d_device_update_surface().
2011-06-17 11:02:18 +02:00
Henri Verbeet
26eb6c8eea
wined3d: Check the correct debug class in checkGLcall.
2011-06-16 11:16:41 +02:00
Henri Verbeet
4621568922
wined3d: Only invert viewport y for onscreen destinations in surface_depth_blt().
...
This fixes a regression introduced by
032f8702ed
.
2011-06-16 11:16:31 +02:00
Henri Verbeet
c51db63ba4
wined3d: Require ARB_shader_texture_lod for SM3.
2011-06-16 11:16:26 +02:00
Henri Verbeet
6f710d18fc
wined3d: Fix source rectangle validation in wined3d_device_update_surface().
2011-06-16 11:16:19 +02:00
Henri Verbeet
8153674c4a
wined3d: Don't clear the alloc flags in wined3d_surface_set_format().
...
Changing the format is only allowed for surfaces with format
WINED3DFMT_UNKNOWN, in which case there can't be a GL texture allocated.
2011-06-15 20:04:38 +02:00
Henri Verbeet
c19c26e4be
wined3d: Check the source rectangle is a multiple of the format block size in wined3d_device_update_surface().
2011-06-15 12:51:51 +02:00
Henri Verbeet
410a8e86f5
wined3d: Check for a valid source rectangle and destination in wined3d_device_update_surface().
2011-06-15 12:51:50 +02:00
Henri Verbeet
b9133d7de0
wined3d: Implement wined3d_device_update_surface() on top of surface_upload_data().
2011-06-15 12:51:49 +02:00
Stefan Dösinger
a421278625
wined3d: Invalidate STATE_STREAMSRC in wined3d_device_draw_indexed_primitive_up.
2011-06-14 13:43:56 +02:00
Stefan Dösinger
dafd31861a
wined3d: Use GL_ARB_draw_elements_base_vertex if available.
2011-06-14 13:43:56 +02:00
Stefan Dösinger
7de2fa2670
wined3d: Add GL_ARB_draw_elements_base_vertex.
2011-06-14 13:43:56 +02:00
Marcus Meissner
2bcd439818
wined3d: Don't just print a FIXME on error, handle it (Coverity).
2011-06-13 11:30:07 +02:00
Stefan Dösinger
2e3cf68e0b
wined3d: Silence R16 and AL16 fourcc warnings.
2011-06-10 10:45:42 +02:00
Stefan Dösinger
663fac5bcd
wined3d: Set last_was_blit to FALSE in the if condition that checks for it.
2011-06-10 10:45:38 +02:00
Stefan Dösinger
7b39005256
wined3d: Don't check the FBO status if FIXMEs are off.
2011-06-10 10:45:35 +02:00
Henri Verbeet
980c50a087
wined3d: Move PBO handling mostly out of surface_upload_data().
...
Currently we essentially get half of the address from the caller and half from
the destination surface. Since we'd like to use surface_upload_data() for
wined3d_device_update_surface() as well, we should get all of it from the
caller.
2011-06-10 10:44:39 +02:00
Henri Verbeet
a1b8f254b1
wined3d: Get rid of a NULL check for surface_upload_data().
2011-06-10 10:44:32 +02:00
Henri Verbeet
9f3e6a20e8
wined3d: Handle unpack row length inside surface_upload_data().
2011-06-10 10:44:26 +02:00
Henri Verbeet
ee6d550b2e
wined3d: Rename IWineD3DImpl_FillGLCaps() to wined3d_adapter_init_gl_caps().
2011-06-10 10:44:20 +02:00
Henri Verbeet
d5c9523a83
wined3d: Rename IWineD3DDeviceImpl_UpdateVolume() to device_update_volume().
2011-06-10 10:44:17 +02:00
Henri Verbeet
5173f9f05f
wined3d: Rename IWineD3DDeviceImpl_LoadLogo() to device_load_logo().
2011-06-08 14:12:40 +02:00
Henri Verbeet
da125e6bca
wined3d: cfg can never be NULL in wined3d_check_pixel_format_color().
2011-06-08 14:12:40 +02:00
Henri Verbeet
c24c2d1eac
wined3d: Rename IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt() to wined3d_check_pixel_format_color().
2011-06-08 14:12:40 +02:00
Matteo Bruni
c23a5443c1
wined3d: Simplify context_apply_draw_buffers() a bit.
2011-06-07 18:12:03 +02:00
Matteo Bruni
002674e49d
wined3d: Fix glDrawBuffers() optimization.
2011-06-07 18:12:01 +02:00
Henri Verbeet
be180bed7c
wined3d: cfg can never be NULL in wined3d_check_pixel_format_depth().
2011-06-07 14:18:34 +02:00
Henri Verbeet
fec6137de2
wined3d: Rename IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt to wined3d_check_pixel_format_depth().
2011-06-07 14:18:34 +02:00
Henri Verbeet
01e668b007
wined3d: Use GL_DEPTH_COMPONENT as internal format for depth_blt_texture.
...
This also changes the texture level to always be zero while we're at it. In
practice depth/stencil textures should rarely have multiple levels, if ever,
but only 0 makes sense here.
2011-06-07 14:18:34 +02:00
Henri Verbeet
95bd0ec61c
wined3d: Just enable ARB_shader_texture_lod if it's available.
2011-06-07 14:18:34 +02:00
Henri Verbeet
1fbdfd625a
wined3d: Get rid of wined3d_texture_get_type().
2011-06-07 14:18:34 +02:00
Henri Verbeet
84ce0020f4
wined3d: Rename Context_MarkStateDirty() to context_invalidate_state().
2011-06-06 16:18:48 +02:00
Henri Verbeet
c8f26a1345
wined3d: Rename IWineD3DDeviceImpl_MarkStateDirty() to device_invalidate_state().
2011-06-06 16:18:41 +02:00
Henri Verbeet
708d94212b
wined3d: Don't clamp vertex depth values.
...
Since we report D3DPMISCCAPS_CLIPTLVERTS.
2011-06-06 16:18:33 +02:00
Matteo Bruni
6647c8f72d
wined3d: Mark some texture formats as filterable.
2011-06-03 12:46:07 +02:00
Piotr Pawłow
bc9407a452
wined3d: Set container of swapchain surfaces to WINED3D_CONTAINER_NONE in swapchain_init() error path.
2011-06-02 16:22:44 +02:00
Stefan Dösinger
5b9daccc66
wined3d: Call context_apply_draw_buffers under the GL lock.
2011-05-27 17:53:37 +02:00
Stefan Dösinger
dda91ac02a
wined3d: Call frag_pipe->enable_extension under the GL lock.
2011-05-26 16:41:14 +02:00
Stefan Dösinger
dbd8786394
wined3d: CMP supports _SAT.
...
This is a partial revert of c9ef1ed28c
. I don't know where I got the
idea that CMP does not support _SAT, but I suspect that my driver at the time was broken.
2011-05-25 12:23:10 +02:00
Henri Verbeet
b396886e5d
wined3d: Get rid of an unintentional variable.
2011-05-25 11:49:33 +02:00
Henri Verbeet
019f6a8534
wined3d: Mask out writes to unused render targets.
...
Outputs not written by the pixel shader are undefined in GL, but in D3D the
render target is unmodified.
2011-05-25 11:49:23 +02:00
Henri Verbeet
d5ee9a4014
wined3d: Check for unhandled resource usage flags.
2011-05-25 11:48:42 +02:00
Henri Verbeet
6d31039034
wined3d: Rename IWineD3DDeviceImpl_FindTexUnitMap() to device_update_tex_unit_map().
2011-05-25 11:48:38 +02:00
Stefan Dösinger
813c273725
wined3d: Fix a few function definitions.
2011-05-24 12:47:28 +02:00
Henri Verbeet
0143fa7382
wined3d: Use the requested sRGB mode in texture3d_preload().
2011-05-19 10:08:05 +02:00
Henri Verbeet
6d6402afef
wined3d: Get rid of the mostly unused SRGB_BOTH enum value.
2011-05-19 10:08:02 +02:00
Henri Verbeet
aba42d1fa5
wined3d: Introduce a separate structure for framebuffer state.
2011-05-19 10:07:57 +02:00
Henri Verbeet
427803a981
wined3d: Make wined3d.h a normal header file again.
2011-05-19 10:07:50 +02:00
Henri Verbeet
3032b40c80
wined3d: Get rid of the IWineD3DDeviceParent interface.
2011-05-19 10:06:21 +02:00
Stefan Dösinger
5c6c019340
wined3d: Remove maxConcurrentLights from the device.
2011-05-18 16:41:57 +02:00
Stefan Dösinger
1133991e85
wined3d: Make two variables unsigned.
2011-05-18 16:41:42 +02:00
Alexandre Julliard
3d229b814e
wined3d: Switch to the software cursor when the position diverges from the hardware one.
2011-05-17 10:18:26 +02:00
Alexandre Julliard
599d09b08c
wined3d: Always create the software cursor.
2011-05-17 10:17:31 +02:00
Alexandre Julliard
38d0d9fe80
wined3d: Only update the cursor position the first time we display it.
2011-05-17 10:15:18 +02:00
Alexandre Julliard
30e187e019
wined3d: Get rid of the haveHardwareCursor flag.
2011-05-17 10:12:31 +02:00
Henri Verbeet
d52ae4b63f
wined3d: Get rid of the glsl_program_key_t typedef.
2011-05-17 10:06:34 +02:00
Henri Verbeet
ef6c6f9ac9
wined3d: Get rid of the renderbuffer_entry_t typedef.
2011-05-17 10:06:30 +02:00
Henri Verbeet
0e0e5c3e38
wined3d: Get rid of the IWineD3DDevice typedefs.
2011-05-17 10:06:23 +02:00
Henri Verbeet
8d4ca1f815
wined3d: Remove COM from the device implementation.
2011-05-17 10:06:18 +02:00
Henri Verbeet
979e3744f7
wined3d: Remove state management methods from the IWineD3DDevice interface.
2011-05-17 10:06:15 +02:00
Stefan Dösinger
e4038ebab9
wined3d: Fix a copypaste typo.
2011-05-16 16:35:30 +02:00
Stefan Dösinger
774cb21a4d
wined3d: Heightscaled surfaces still have an integer size.
2011-05-16 16:35:30 +02:00
Stefan Dösinger
1d7a05cb80
wined3d: Fix data types in RxGx snorm-unorm conversion.
2011-05-16 16:35:30 +02:00
Stefan Dösinger
1b860b11b3
wined3d: Cast clipplane doubles to floats.
2011-05-16 16:35:30 +02:00
Stefan Dösinger
20b147bfeb
wined3d: Consistently store format bitcounts in BYTEs.
2011-05-16 16:35:30 +02:00
Stefan Dösinger
c2aab4258a
wined3d: Separate two unrelated variables.
2011-05-13 17:05:27 +02:00
Stefan Dösinger
560c63d64e
wined3d: Pass the render target height as UINT.
2011-05-13 17:05:27 +02:00
Stefan Dösinger
a549b8f090
wined3d: Fix a few MSVC data loss warnings.
2011-05-13 17:05:27 +02:00
Stefan Dösinger
31901155ce
wined3d: Fix a unsigned unary minus warning in MSVC.
2011-05-13 17:05:27 +02:00
Stefan Dösinger
682bae7c2b
wined3d: Make the glram parameter of WineD3DAdapterChangeGLRam signed.
2011-05-13 17:05:27 +02:00
Henri Verbeet
26dd1ed0e9
wined3d: Get rid of the SHADER_LIMITS typedef.
2011-05-11 14:56:48 +02:00
Henri Verbeet
00a5f38595
wined3d: Remove object creation methods from the IWineD3DDevice interface.
2011-05-11 14:56:48 +02:00
Henri Verbeet
e6ab3832b2
wined3d: Set SFLAG_DYNLOCK for lockable render targets.
2011-05-11 14:56:48 +02:00
Francois Gouget
5920de5ffb
Assorted spelling and case fixes.
2011-05-09 12:09:27 +02:00
Henri Verbeet
0cbdd10c58
wined3d: Get rid of the WineD3D_PixelFormat typedef.
2011-05-06 14:23:46 +02:00
Henri Verbeet
9f90225fa5
wined3d: Get rid of the wined3d_settings_t typedef.
2011-05-06 14:23:46 +02:00
Henri Verbeet
493af7e5c1
wined3d: Introduce a helper function for translating blend factors.
2011-05-06 14:23:46 +02:00
Henri Verbeet
f9f83fc884
wined3d: Add some initial access checking for resources.
...
Just print a WARN in surface_load_location() for the moment. We currently
pretend all resources are managed, strictly enforcing pool restrictions would
just break a lot of things.
2011-05-06 14:23:46 +02:00
Marcus Meissner
49828372c1
wined3d: Fixed a operator precedence issue (Coverity).
2011-05-05 17:28:37 +02:00
Matteo Bruni
4f96f4f467
wined3d: Fix pow handling with special values in ARB backend.
2011-05-05 17:26:12 +02:00
Henri Verbeet
86b0c6bd7b
wined3d: Rename "shader_backend_t" to "wined3d_shader_backend_ops".
...
This makes it more consistent with the other call table names in wined3d.
2011-05-05 11:45:22 +02:00
John Edmonds
d9f8cba50f
wined3d: Turn off message filtering temporarily in the Reset() method to allow certain messages (e.g. WM_ACTIVATEAPP) through.
2011-05-04 20:42:34 +02:00
Francois Gouget
6c8c68f7b6
wined3d: Make wined3d_event_query_test() and resource_get_type() static.
2011-05-03 14:38:06 +02:00
Henri Verbeet
0116af3703
wined3d: Cleanup surfaces only once.
2011-05-03 14:38:06 +02:00
John Edmonds
2fb6b509cb
wined3d: If Wine fails to acquire the focus window, allow the wndproc function to continue receiving messages.
2011-05-02 12:59:10 +02:00
Adam Martinson
f912e55610
wined3d: Fix an oops/crash in context_destroy_gl_resources().
...
Introduced by 96b150929b
.
2011-05-02 12:54:25 +02:00
Henri Verbeet
c4b73c4550
wined3d: Get rid of the IWineD3DSurface typedefs.
2011-04-29 16:52:13 +02:00
Henri Verbeet
1c1de920e3
wined3d: Remove COM from the surface implementation.
2011-04-29 16:52:13 +02:00
Henri Verbeet
ab199f56a6
wined3d: Merge the IWineD3DSurface::Blt() implementations.
2011-04-29 16:52:13 +02:00
Henri Verbeet
29c95df7c3
wined3d: Merge the IWineD3DSurface::BltFast() implementations.
2011-04-29 16:52:12 +02:00
Henri Verbeet
0b523df93c
wined3d: Merge the IWineD3DSurface::Flip() implementations.
2011-04-29 16:52:12 +02:00
Matteo Bruni
eba8fd0b77
wined3d: Remove an unused field.
2011-04-28 16:47:14 +02:00
Matteo Bruni
9da924039f
wined3d: Split pow instruction handling in the ARB backend.
2011-04-28 12:12:18 +02:00
Matteo Bruni
db8d681a5b
wined3d: Remove rcp special handling of 0 from the ARB shader backend.
2011-04-28 12:11:55 +02:00
Matteo Bruni
0210a8384a
wined3d: Add missing temporary variable declaration to ARB shader backend.
2011-04-28 12:11:53 +02:00
Henri Verbeet
c5baf8f237
wined3d: Merge the IWineD3DSurface::SetFormat() implementations.
2011-04-28 11:08:55 +02:00
Henri Verbeet
92120cb527
wined3d: Merge the IWineD3DSurface::SetMem() implementations.
2011-04-28 11:08:51 +02:00
Henri Verbeet
a5febcf7a1
wined3d: Merge the IWineD3DSurface::ReleaseDC() implementations.
2011-04-28 11:08:45 +02:00
Henri Verbeet
dcaca7225b
wined3d: Merge the IWineD3DSurface::GetDC() implementations.
2011-04-28 11:08:36 +02:00
Henri Verbeet
13146e216f
wined3d: Merge the IWineD3DSurface::PreLoad() implementations.
2011-04-28 11:08:27 +02:00
Henri Verbeet
34ba20fe35
wined3d: Merge the IWineD3DSurface::Unmap() implementations.
2011-04-27 11:50:53 +02:00
Henri Verbeet
825341e7c2
wined3d: Merge the IWineD3DSurface::Map() implementations.
2011-04-27 11:50:48 +02:00
Henri Verbeet
a2ef014342
wined3d: Merge the IWineD3DSurface::Release() implementations.
2011-04-27 11:50:41 +02:00
Henri Verbeet
d9ace3c9f7
wined3d: Only invalidate the INDRAWABLE location for onscreen surfaces in surface_realize_palette().
...
For offscreen surfaces this might actually remove the texture we just loaded.
2011-04-27 11:50:35 +02:00
Henri Verbeet
a05841bd1a
wined3d: Rename "pCaps" to "caps".
2011-04-27 11:50:29 +02:00
Henri Verbeet
3f0120241b
wined3d: Enable SM3 if ARB_shader_texture_lod is supported.
2011-04-26 10:46:52 +02:00
Henri Verbeet
9d0e17e9ea
wined3d: Either set SM3 for both vertex and fragment shaders or for neither.
2011-04-26 10:46:45 +02:00
Henri Verbeet
f63a84be61
wined3d: Merge surface_base.c into surface.c.
2011-04-26 10:46:40 +02:00
Henri Verbeet
11d44809bb
wined3d: Remove IWineD3DSurface::PrivateSetup() from the public interface.
2011-04-26 10:46:23 +02:00
Stefan Dösinger
dbc8702e44
wined3d: Scale the depthbias factor by the depth buffer's depth.
2011-04-22 17:51:29 +02:00
Stefan Dösinger
96b758f7b3
d3d: Map D3DRS_ZBIAS to WINED3DRS_DEPTHBIAS.
...
ZBIAS was removed in d3d9 and replaced with DEPTHBIAS. Currently
wined3d implements both independently which will cause trouble if we
want to set the depthbias value depending on the depth stencil format.
2011-04-22 17:51:29 +02:00
Henri Verbeet
c852200b03
wined3d: Get rid of IWineD3DSurface::GetType().
2011-04-22 10:44:28 +02:00
Henri Verbeet
cc39bde98d
wined3d: Get rid of wined3d_volume_get_type().
2011-04-22 10:44:23 +02:00
Henri Verbeet
efc080e3a3
wined3d: Get rid of wined3d_buffer_get_type().
2011-04-22 10:44:20 +02:00
Henri Verbeet
82e39ced7f
wined3d: Make sure we release the correct DC in context_update_window().
2011-04-22 10:44:16 +02:00
Henri Verbeet
f6e4f4a122
wined3d: Get rid of the mipmap hint code.
...
Mipmap hint isn't a texture parameter, but a global hint. This never worked,
it just causes GL errors.
2011-04-21 16:53:41 +02:00
Matteo Bruni
a3c12c5be4
wined3d: Fallback to our private window when context activation fails otherwise.
2011-04-20 16:31:48 +02:00
Matteo Bruni
edebabc2ec
wined3d: Add two functions for GL context activation/restore.
2011-04-20 16:31:45 +02:00
Henri Verbeet
0de0e81793
wined3d: Decrement the vertex declaration refcount on stateblock destruction.
2011-04-20 13:06:35 +02:00
Henri Verbeet
e30a057487
wined3d: Don't bother unsetting texture resources in IWineD3DDeviceImpl_Uninit3D().
...
Releasing the stateblock already takes care of this.
2011-04-19 13:29:36 +02:00
Henri Verbeet
4651746102
wined3d: Set resource bindings to NULL before releasing them on stateblock destruction.
...
To prevent ERRs from device_resource_released().
2011-04-19 13:29:32 +02:00
Henri Verbeet
516ade9b2b
wined3d: Also update ds_current_size if there's no current DS location in surface_load_ds_location().
2011-04-19 13:29:28 +02:00
Henri Verbeet
84d50f7353
wined3d: Remove IWineD3DSurface::GetImplType() from the public interface.
2011-04-18 11:45:55 +02:00
Henri Verbeet
52edf556f6
wined3d: Merge surface_gdi.c into surface.c.
2011-04-18 11:45:51 +02:00
Henri Verbeet
38800d8e9a
wined3d: Forward volume refcounts to the container.
2011-04-18 11:45:20 +02:00
Henri Verbeet
fadfdf21c0
wined3d: Forward surface refcounts to the container.
...
This will prevent textures from being released if one of its surfaces is still
in use by the stateblock. We have similar constructions in d3d8 and d3d9, but
those won't prevent the wined3d texture from being released.
2011-04-18 11:45:17 +02:00
Henri Verbeet
a5983e0c3d
wined3d: Use the correct mask for depth/stencil locations in surface_load_ds_location().
2011-04-18 11:45:09 +02:00
Henri Verbeet
6a135a1511
wined3d: Get rid of the IWineD3DBase interface.
2011-04-15 10:07:58 +02:00
Henri Verbeet
7b8bbdcc44
wined3d: Get rid of the IWineD3DResource interface.
2011-04-15 10:07:58 +02:00
Henri Verbeet
66875c6dc7
wined3d: Don't flush just because a swapchain has multiple contexts.
...
If you really have e.g. multiple draws to the same drawable, this is not
enough, and you should use the StrictDrawOrdering registry setting. In the
other cases it just slows things down unnecessarily.
2011-04-15 10:07:58 +02:00
Henri Verbeet
89a4e696a2
wined3d: Get rid of the IWineD3DVolume typedefs.
2011-04-15 10:07:58 +02:00
Henri Verbeet
2c450571e5
wined3d: Remove COM from the volume implementation.
2011-04-15 10:07:57 +02:00
Henri Verbeet
be378c6529
wined3d: Decrement the refcount in wined3d_query_decref().
2011-04-14 17:13:57 +02:00
Henri Verbeet
c1575cb65c
wined3d: Get rid of the unused vSyncCounter swapchain field.
2011-04-14 17:13:57 +02:00
Henri Verbeet
d30da7ae39
wined3d: Get rid of the IWineD3DSwapChain typedefs.
2011-04-14 17:13:57 +02:00
Henri Verbeet
3ec19590d5
wined3d: Remove COM from the swapchain implementation.
2011-04-14 17:13:57 +02:00
Henri Verbeet
178061d3c1
wined3d: Merge the GL and GDI swapchain vtbls.
2011-04-14 17:13:56 +02:00
Stefan Dösinger
c79864f871
wined3d: Only acquire a context in buffer::PreLoad if we have to.
2011-04-13 16:03:27 +02:00
Henri Verbeet
7ace689742
wined3d: Take hDestWindowOverride into account in IWineGDISwapChainImpl_Present().
2011-04-13 14:13:52 +02:00
Henri Verbeet
926dfc5c49
wined3d: Merge the IWineD3DSwapChain::SetDestWindowOverride() implementations.
2011-04-13 14:13:51 +02:00
Henri Verbeet
3068ae9e83
wined3d: Remove IWineD3DSwapChain::Destroy() from the public interface.
2011-04-13 14:13:51 +02:00
Henri Verbeet
d2e665230a
wined3d: Get rid of the swapchain destroy callback.
2011-04-13 14:13:51 +02:00
Stefan Dösinger
5627ee49ea
wined3d: Remove FLOAT16 vertex attribute conversion support.
...
All mayor drivers support GL_ARB_half_float_vertex now and the half
float conversion doesn't work well in practise. The only game that was
ever playable with it was Eve online.
2011-04-12 17:42:12 +02:00
Stefan Dösinger
46d879eef6
wined3d: Don't drop VBOs for full buffer reloading without conversion.
2011-04-12 17:42:12 +02:00
Henri Verbeet
17c51d49b7
wined3d: Flush after accessing the front buffer in flush_to_framebuffer_drawpixels().
2011-04-11 23:54:09 +02:00
Henri Verbeet
55e957a31a
wined3d: Flush after accessing the front buffer in surface_blt_fbo().
2011-04-11 23:54:05 +02:00
Henri Verbeet
68c4a1b61a
wined3d: Depth-only clears are done offscreen.
...
This fixes a regression introduced by commit
99bfd81714
.
2011-04-11 23:54:01 +02:00
Henri Verbeet
84103460bd
wined3d: Check FBO completeness after the read / draw buffers are specified.
...
Unless the driver implements ARB_ES2_compatibility / GL4.1, FBO completeness
depends on what read / draw buffers are set.
2011-04-11 11:50:51 +02:00
Henri Verbeet
8e12b2e61e
wined3d: Set the read buffer to GL_NONE for draws and clears on an FBO.
...
For the benefit of depth-only draws and clears, that would otherwise fail FBO
completeness, unless the driver supports ARB_ES2_compatibility.
2011-04-11 11:50:48 +02:00
Henri Verbeet
2f3c147ab2
wined3d: Only set draw buffers that are explicitly specified in context_apply_draw_buffers().
...
Anything that isn't explicitly specified is set to GL_NONE by
glDrawBuffersARB().
2011-04-11 11:50:44 +02:00
Henri Verbeet
bf99c0248f
wined3d: Explicitly handle 0 rt_count right at the start of context_apply_draw_buffers().
...
It's trivial, and allows the rest of the code to assume at least 1 render
target is present.
2011-04-11 11:50:40 +02:00
Henri Verbeet
dd2c7d0d8c
wined3d: Don't free D3D swapchains until the wined3d swapchain is destroyed.
...
This will allow us the get rid of the swapchain refcounting hacks in d3d9 in
particular. This is similar to the way we handle resources that are still in
use by a stateblock, but aren't referenced anywhere by the application.
2011-04-08 14:40:48 +02:00
Henri Verbeet
d19c3588bc
wined3d: Merge the IWineD3DSwapChain::Destroy() implementations.
...
They're mostly the same, except for the GL version also destroying its
contexts, and being a bit more careful about the order in which backbuffers
are destroyed.
2011-04-08 14:40:43 +02:00
Henri Verbeet
28137ba2e9
wined3d: Only create a swapchain context array for GL swapchains.
...
Lying about the number of contexts a swapchain has isn't very useful.
2011-04-08 14:40:39 +02:00
Henri Verbeet
032c374307
wined3d: Merge swapchain_base.c into swapchain.c.
2011-04-07 19:27:01 +02:00
Henri Verbeet
0a174ae542
wined3d: Merge swapchain_gdi.c into swapchain.c.
2011-04-07 19:26:50 +02:00
Henri Verbeet
617efafecf
wined3d: Don't use IWineD3DDeviceImpl_GetSwapChain() in IWineD3DDeviceImpl_Present().
...
It adds COM overhead and validation of the swapchain index, but we already
know the index is valid.
2011-04-07 19:26:19 +02:00
Henri Verbeet
fb4c7e9f9b
wined3d: Rename "NumberOfSwapChains" to "swapchain_count".
2011-04-06 21:18:16 +02:00
Henri Verbeet
5555531950
wined3d: Rename "NumberOfPalettes" to "palette_count".
2011-04-06 21:18:11 +02:00
Henri Verbeet
9d405473d0
wined3d: Don't unregister windows with the wrong window proc on unload either.
...
This is the same issue as 7a354177b3
, just on
wined3d unload this time.
2011-04-06 21:18:06 +02:00
Henri Verbeet
a96f749ce0
wined3d: Add support for depth blits to the blitter.
2011-04-06 21:17:48 +02:00
Henri Verbeet
2ab5b833d7
wined3d: Remove COM from the rendertarget view implementation.
2011-04-06 12:05:07 +02:00
Henri Verbeet
519a3a9162
wined3d: Add depth fills to the blitter interface.
2011-04-06 12:05:07 +02:00
Henri Verbeet
99bfd81714
wined3d: Allow depth and stencil clears on surfaces other than the current depth / stencil buffer.
2011-04-06 12:05:06 +02:00
Henri Verbeet
419d6e9acd
wined3d: Introduce a separate function for depth fills.
2011-04-06 12:05:06 +02:00
Henri Verbeet
90da00927e
wined3d: Make "blit_operation" naming a bit more consistent.
2011-04-06 12:05:06 +02:00
Henri Verbeet
b372faec3c
wined3d: Correctly check if the destination format is FBO attachable in fbo_blit_supported().
...
Like ca381b610c
, this was introduced by
f1ca14cb5b
.
2011-04-05 11:14:04 +02:00
Henri Verbeet
032f8702ed
wined3d: Fix partial depth buffer copies.
...
Don't overwrite the entire buffer if only part of it is not current. The data
we're copying may not be completely current either. This is for the case where
the inner rect is not current and the outer edge is. The reverse case where
the inner rect is current and we need to mask already works correctly.
2011-04-05 11:13:46 +02:00
Henri Verbeet
0ce17ea27e
wined3d: Don't bother setting a depth render buffer for WINED3DFMT_NULL render targets.
2011-04-05 11:13:39 +02:00
Matteo Bruni
77face22d5
wined3d: Get rid of context_validate.
...
It should not be needed anymore, now the wined3d context is implicitly
validated on GL context activation. The check itself wasn't reliable
because of some threading issues and it also brought a small performance hit.
2011-04-04 12:25:56 +02:00
Henri Verbeet
ae58e47ca0
wined3d: Introduce a helper function for translating blend operations.
2011-04-04 11:53:50 +02:00
Henri Verbeet
6aa02f11ea
wined3d: Fix ARB_0001 with pixel shaders in arb_get_helper_value().
2011-04-04 11:53:45 +02:00
Matteo Bruni
06ef87ceb1
wined3d: Better handle some instances when we can't make the required GL context current.
2011-04-01 11:50:20 +02:00
Matteo Bruni
0322114cd6
wined3d: Fix an error message.
2011-04-01 11:50:05 +02:00
Henri Verbeet
02480a902e
wined3d: Get rid of the ARB_imaging extension.
2011-03-31 23:47:00 +02:00
Henri Verbeet
97a5336ca9
wined3d: Fix the EXT_blend_subtract extension definitions.
2011-03-31 23:46:51 +02:00
Henri Verbeet
e4e28c47ea
wined3d: Fix the EXT_blend_color extension definitions.
2011-03-31 23:43:14 +02:00
Henri Verbeet
f8507d6061
wined3d: Fix the EXT_blend_minmax extension definitions.
2011-03-31 23:43:05 +02:00
Henri Verbeet
692aa004d0
wined3d: Rename "numContexts" to "context_count".
2011-03-31 12:37:47 +02:00
Henri Verbeet
8fe80e18b2
wined3d: Get rid of the IWineD3DBaseShader typedefs.
2011-03-31 12:37:47 +02:00
Henri Verbeet
f8f83ff2f7
wined3d: Remove COM from the shader implementation.
2011-03-31 12:37:46 +02:00
Henri Verbeet
5555d904be
wined3d: Get rid of IWineD3DBaseShaderClass.
2011-03-31 12:37:46 +02:00
Henri Verbeet
45fd0d4e7a
wined3d: Merge the IWineD3DBaseShader implementations.
2011-03-31 12:37:46 +02:00
Henri Verbeet
99bed5d41d
wined3d: Get rid of IWineD3DPixelShaderImpl.
2011-03-30 12:18:20 +02:00
Henri Verbeet
4674b94d23
wined3d: Get rid of struct wined3d_geometryshader.
2011-03-30 12:18:14 +02:00
Henri Verbeet
dab01d435e
wined3d: Get rid of IWineD3DVertexShaderImpl.
2011-03-30 12:18:09 +02:00
Henri Verbeet
3d4fe0b750
wined3d: Get rid of IWineD3DPixelShader.
2011-03-30 12:18:03 +02:00
Henri Verbeet
9ea2ee5f4e
wined3d: Get rid of IWineD3DGeometryShader.
2011-03-30 12:17:56 +02:00
Henri Verbeet
49725ba583
wined3d: Get rid of IWineD3DVertexShader.
2011-03-30 12:17:51 +02:00
Henri Verbeet
c9ba0949c2
Revert "wined3d: Prevent crash when blit_priv is NULL.".
...
This reverts commit 37aadc9e37
.
This patch was superseded by b2132202c7
.
2011-03-30 12:17:44 +02:00
Henri Verbeet
57d70bfdda
wined3d: Move IWineD3DVertexShader::SetLocalConstantsF() to IWineD3DBaseShader.
2011-03-29 12:34:59 +02:00
Henri Verbeet
19e66a0dc9
wined3d: Replace "is_srgb" in wined3d_texture with a flag.
2011-03-29 12:34:54 +02:00
Henri Verbeet
0e22aea01e
wined3d: Replace "pow2_matrix_identity" in wined3d_texture with a flag.
2011-03-29 12:34:49 +02:00