Henri Verbeet
1ec609670f
wined3d: Get rid of the WINED3DCMPFUNC typedef.
2011-12-21 10:14:54 +01:00
Henri Verbeet
3082c1a9de
wined3d: Get rid of the WINED3DRENDERSTATETYPE typedef.
2011-12-20 10:11:47 +01:00
Henri Verbeet
5bddd4427d
wined3d: Get rid of the WINED3DDEGREETYPE typedef.
2011-12-20 10:11:39 +01:00
Henri Verbeet
67bca436ee
wined3d: Get rid of the WINED3DDEVTYPE typedef.
2011-12-13 18:58:58 +01:00
Henri Verbeet
e6a4a86608
wined3d: Get rid of the WINED3DPRIMITIVETYPE typedef.
2011-12-12 10:21:01 +01:00
Henri Verbeet
be8917cd91
wined3d: Get rid of the WINED3DVIEWPORT typedef.
2011-11-22 10:52:40 +01:00
Henri Verbeet
37a0f7ad65
wined3d: Get rid of the WINED3DMATRIX typedef.
2011-11-18 14:26:16 +01:00
Henri Verbeet
7459180a51
wined3d: Get rid of the WINED3DCOLORVALUE typedef.
2011-11-16 09:41:50 +01:00
Matteo Bruni
62a2ad3d0f
wined3d: Skip blending test on some texture formats.
...
It doesn't make sense to test NULL and P8, while the luminance formats
right now aren't really tested anyway (and "incidentally" that also
workarounds a Nvidia drivers bug).
2011-11-14 15:25:24 +01:00
Matteo Bruni
56c9952ee6
wined3d: Fix post-pixelshader blending test.
2011-11-14 15:25:24 +01:00
Stefan Dösinger
7eefed1410
wined3d: YUY2 and UYVY are block based.
2011-11-07 14:32:16 +01:00
Matteo Bruni
7b0ba5153f
wined3d: Test more thoroughly for post-pixelshader blending support, try on more texture formats.
2011-11-04 10:45:49 +01:00
Henri Verbeet
bc3c72f2cc
wined3d: Mark a format as sRGB attachable if the internal format is the same for RGB and sRGB.
2011-10-26 12:41:32 +02:00
Matteo Bruni
53bb382706
wined3d: Report more vertex texture formats.
2011-09-09 13:33:58 +02:00
Andrew Talbot
094dd38b00
wined3d: Remove unneeded address-of operators from function names.
2011-08-30 11:56:48 +02:00
Henri Verbeet
641f52ef96
wined3d: Add multisampling support.
2011-08-26 11:28:47 +02:00
Frédéric Delanoy
7e309601f3
dlls: Assorted spelling fixes.
2011-08-03 14:15:50 +02:00
Henri Verbeet
111e8fe77c
wined3d: Add WINED3DFMT_P8_UINT support to wined3d_format_convert_from_float().
2011-08-03 09:23:16 +02:00
Henri Verbeet
e4d2d78500
wined3d: Pass a wined3d_state pointer to state handlers.
...
Instead of an entire stateblock. This is mainly useful is we ever want to call
state handlers on state not stored in a stateblock.
2011-07-14 14:11:25 +02:00
Henri Verbeet
fcf4303e1a
wined3d: Store a pointer to the framebuffer state in struct wined3d_state.
2011-07-14 14:11:07 +02:00
Henri Verbeet
c0aa053a87
wined3d: Pass a state pointer instead of a device pointer to device_get_draw_rect().
2011-07-06 11:14:38 +02:00
Henri Verbeet
0df3db37ac
wined3d: Explicitly pass device and state to gen_ffp_frag_op().
2011-07-06 11:14:29 +02:00
Stefan Dösinger
d321959dd7
wined3d: Move FBO application into a state handler.
2011-07-05 17:33:35 +02:00
Henri Verbeet
5d6f29818f
wined3d: Get rid of the GL_SupportedExt typedef.
2011-07-04 13:44:52 +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
19a1b74252
wined3d: Add STATE_BASEVERTEXINDEX to debug_d3dstate.
2011-06-17 15:37:31 +02:00
Stefan Dösinger
2e3cf68e0b
wined3d: Silence R16 and AL16 fourcc warnings.
2011-06-10 10:45:42 +02:00
Matteo Bruni
6647c8f72d
wined3d: Mark some texture formats as filterable.
2011-06-03 12:46:07 +02:00
Henri Verbeet
aba42d1fa5
wined3d: Introduce a separate structure for framebuffer state.
2011-05-19 10:07:57 +02:00
Henri Verbeet
0e0e5c3e38
wined3d: Get rid of the IWineD3DDevice typedefs.
2011-05-17 10:06:23 +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
20b147bfeb
wined3d: Consistently store format bitcounts in BYTEs.
2011-05-16 16:35:30 +02:00
Henri Verbeet
c4b73c4550
wined3d: Get rid of the IWineD3DSurface typedefs.
2011-04-29 16:52:13 +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
90da00927e
wined3d: Make "blit_operation" naming a bit more consistent.
2011-04-06 12:05:06 +02:00
Henri Verbeet
c5bf96c951
wined3d: Get rid of IWineD3DBaseTextureClass.
2011-03-29 12:34:40 +02:00
Henri Verbeet
eb5bfad18d
wined3d: Get rid of the IWineD3DBaseTexture typedefs.
2011-03-28 17:08:52 +02:00
Henri Verbeet
75c8e9f7b4
wined3d: Use EXT_texture_sRGB_decode to avoid sRGB texture duplication.
2011-03-03 17:47:13 +01:00
Henri Verbeet
1de6adfbae
wined3d: Make IWineD3DResourceImpl an independent structure.
2011-03-01 13:21:59 +01:00
Henri Verbeet
d9d2fe31e3
wined3d: Filter sRGB capabilities during format initialization.
2011-02-28 11:09:25 +01:00
Henri Verbeet
96d225d4dd
wined3d: Get rid of the IWineD3DStateBlockImpl typedef.
2011-01-31 12:25:05 +01:00
Henri Verbeet
c964134a59
wined3d: Add support for the NULL format.
2011-01-27 14:13:55 +01:00
Henri Verbeet
010e285b88
wined3d: WINED3DFMT_INTZ is a FOURCC format.
...
This is mostly for consistency, in practice ddraw code is never going to use
this format.
2011-01-24 14:43:26 +01:00
Matteo Bruni
ef0f358813
wined3d: Don't call glPointParameter with a random context.
2011-01-07 15:01:38 +01:00
Henri Verbeet
efb185dcd5
wined3d: Rename the wined3d_format "Flags" field to "flags".
2010-11-12 15:43:08 +01:00
Henri Verbeet
7a64870014
wined3d: Don't use floating point textures without ARB_texture_float.
...
The floating point formats from ARB_texture_rg are only defined when
ARB_texture_float is also supported. It would have been nice if the formats
table itself was able to express this, but as far as I'm aware this is only an
issue for ARB_texture_rg, so it's probably not worth changing.
2010-11-08 13:30:59 +01:00
Henri Verbeet
f0b0c1b1dd
wined3d: Add support for the INTZ format.
2010-11-05 17:15:36 +01:00
Henri Verbeet
58ecf706e2
wined3d: Handle WINED3DFMT_R10G10B10A2_UNORM in getColorBits().
2010-10-20 18:37:07 +02:00
Henri Verbeet
9224751a13
wined3d: Pass a wined3d_state structure to use_vs().
2010-09-28 17:33:17 +02:00
Henri Verbeet
23e286613f
wined3d: Directly pass the texture to texture_activate_dimensions().
2010-09-24 11:34:14 +02:00
Henri Verbeet
478a0aae38
wined3d: Pass a wined3d_state structure to is_invalid_op().
...
Instead of an entire device.
2010-09-23 12:06:27 +02:00
Henri Verbeet
e31ea51bab
wined3d: Move the vertex declaration to wined3d_state.
2010-09-18 13:05:54 +02:00
Henri Verbeet
d728d5f0ec
wined3d: Move texture bindings to wined3d_state.
2010-09-18 13:05:49 +02:00
Henri Verbeet
5a3a4ac77a
wined3d: Remove IWineD3DBaseTexture::GetTextureDimensions() from the public wined3d interface.
2010-09-18 13:05:44 +02:00
Ričardas Barkauskas
dc1356484c
wined3d: Add NVDB support.
2010-09-16 10:12:33 -05:00
Henri Verbeet
5b3c1a2082
wined3d: Move texture states to wined3d_state.
2010-09-16 10:12:17 -05:00
Henri Verbeet
1ef4f075c1
wined3d: Introduce a separate structure for stateblock states.
...
We'd like to not pass an entire stateblock to things like state handlers and
the shader backend, because those then use the stateblock to get to the
device and through there to all the rest of wined3d. This would also be
required for serialization of wined3d draw and state change commands into a
single GL context. Resource updates would be explicitly excluded from
serialization.
2010-09-15 10:33:14 -05:00
Henri Verbeet
0b15963b4e
wined3d: Get rid of redundant comparisons against FALSE.
2010-09-14 11:43:44 -05:00
Henri Verbeet
b68d257710
wined3d: Get rid of redundant comparisons against NULL / 0.
2010-09-14 09:43:33 -05:00
Henri Verbeet
3a7f08a56f
wined3d: Rename wined3d_format_desc to wined3d_format.
2010-08-31 14:23:47 +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
3b4d9ae112
wined3d: Simplify wined3d_format_convert_from_float().
2010-08-27 11:58:26 +02:00
Henri Verbeet
38137d7ce2
wined3d: Cleanup some 2-space indentation.
2010-08-27 11:58:13 +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
cc5271d1b7
wined3d: Rename WINED3DFORMAT to wined3d_format_id.
2010-08-24 12:25:01 +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
3fd66bc650
wined3d: Make some lookup tables const.
2010-08-23 12:04:36 +02:00
Henri Verbeet
125321d13c
wined3d: Don't print format IDs in decimal.
...
This is especially silly for FOURCC formats.
2010-08-18 09:41:07 +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
6a9476b609
wined3d: Correctly calculate the resource size for ATI2N surfaces.
2010-08-16 13:47:37 +02:00
Henri Verbeet
6cb38b9c93
wined3d: Allow filtering and blending with WINED3DFMT_ATI2N.
2010-08-03 11:06:51 +02:00
Henri Verbeet
a99bf6c017
wined3d: Add support for ARB_texture_compression_rgtc.
2010-07-30 11:36:03 +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
Stefan Dösinger
6b794cbd64
wined3d: Only perform sRGB write correction on formats that advertise it.
2010-07-22 10:22:26 +02:00
Henri Verbeet
9976e078cb
wined3d: Add some missing flags to debug_d3dusage().
2010-07-21 09:32:55 +02:00
Michael Stefaniuc
6d89364ad1
wined3d: Avoid using the long type.
2010-05-21 18:58:04 +02:00
Henri Verbeet
79145e215b
wined3d: Add support for shadow samplers.
2010-05-17 13:19:53 +02:00
Henri Verbeet
c1ea8fb6c7
wined3d: Store the VTF format capability in the format table.
2010-04-29 10:19:39 -05:00
Henri Verbeet
be7b01589f
wined3d: Store the sRGB write format capability in the format table.
2010-04-29 10:19:39 -05:00
Henri Verbeet
c041781255
wined3d: Store the sRGB read format capability in the format table.
2010-04-29 10:19:39 -05:00
Henri Verbeet
163940540d
wined3d: Store the bumpmap format capability in the format table.
2010-04-29 10:19:39 -05:00
Henri Verbeet
958b523707
wined3d: Store texture sub-resources in IWineD3DBaseTextureClass.
2010-04-25 07:26:51 -05:00
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
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
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
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
Henri Verbeet
2381c9529d
wined3d: Don't use GLSL if the supported version isn't at least 1.20.
2010-04-06 11:48:47 +02:00
Henri Verbeet
1289842da3
wined3d: Move handling of the unimplemented WINED3DRS_STIPPLEPATTERN states to ddraw.
2010-04-02 10:36:06 +02:00
Henri Verbeet
2e5976a8c5
wined3d: Move handling of the unimplemented WINED3DRS_BORDERCOLOR state to ddraw.
2010-04-02 10:35:54 +02:00
Henri Verbeet
af9510f400
wined3d: Remove some unused render states.
2010-04-02 10:35:44 +02:00
Roderick Colenbrander
f724843f14
wined3d: Move argb_to_fmt to utils.c as a helper function to be used in more places.
2010-03-30 13:53:54 +02:00
Stefan Dösinger
f74de3ab65
wined3d: Don't advertise float formats as supported by WGL.
2010-03-26 10:28:52 +01:00
Henri Verbeet
12608b0a0d
wined3d: Unify "gl_formats_template" naming with the other format info tables.
2010-03-19 14:31:51 +01:00
Henri Verbeet
3aaa6ee6e7
wined3d: Rename GlPixelFormatDesc to wined3d_format_desc.
2010-03-19 14:31:47 +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
Ričardas Barkauskas
a7aa4a87e2
wined3d: Fix ATI2N pitch and offset calculations.
2010-03-16 13:03:30 +01:00
Roderick Colenbrander
604caf0caa
wined3d: Remove oversize texture support.
2010-03-15 14:23:15 +01:00
Paul Andrew Panon
31573b21b9
wined3d: Rename GL_VENDOR to HW_VENDOR.
2010-03-03 16:06:07 +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
Roderick Colenbrander
922ad80f42
wined3d: Rename yuv to complex in order to prepare for 8-bit palette fixups using the same code.
2010-03-03 12:53:41 +01:00
Henri Verbeet
7ff576bbab
wined3d: Select the blitter during adapter initialization.
2010-02-03 13:54:02 +01:00
Henri Verbeet
cee8e9d881
wined3d: Select the shader backend during adapter initialization.
2010-02-02 14:11:02 +01:00
Henri Verbeet
fb21551b2d
wined3d: Select the fragment pipeline during adapter initialization.
2010-02-02 14:10:56 +01:00
Henri Verbeet
9bbccb7f80
wined3d: Add a debug function for state names.
2010-01-29 13:30:05 +01:00
Henri Verbeet
08c2a23599
wined3d: Just use the GL 1.1 texture format constants.
...
We assume GL 1.1 is available everywhere else.
2010-01-28 11:07:48 +01:00
Henri Verbeet
98568f0ba1
wined3d: Add support for ARB_vertex_array_bgra.
2010-01-26 12:08:27 +01:00
Henri Verbeet
b3defd4c80
wined3d: Rename "wineD3DDevice" to "device".
2009-12-10 11:54:47 +01:00
Henri Verbeet
e4d8a3f309
wined3d: Move the various backend selection utility functions to utils.c.
2009-11-18 11:16:43 +01:00
Henri Verbeet
7676c66431
wined3d: WINED3DFMT_FLAG_GETDC is a basic format flag.
...
It has nothing to do with OpenGL, so shouldn't be in "gl_formats_template".
This fixes a regression introduced by e1469961d4
.
2009-11-17 15:14:54 +01:00
Henri Verbeet
db2273652d
wined3d: Add a format table for basic format flags like WINED3DFMT_FLAG_FOURCC.
2009-11-17 15:14:54 +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
2447c8bc3e
wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.
2009-10-27 10:54:50 +01:00
Henri Verbeet
6be41fd59a
wined3d: Get rid of GL_LIMITS.
2009-10-22 10:46:05 +02:00
Henri Verbeet
42eb516d96
wined3d: Free the adapter's format info in IWineD3DImpl_Release() (Valgrind).
2009-10-21 16:05:57 +02:00
Henri Verbeet
47c84f4f7f
wined3d: Use the DXGI naming convention for all formats.
2009-09-25 15:15:44 +02:00
Henri Verbeet
ec97383f6f
wined3d: Add support for ARB_framebuffer_object.
2009-09-23 12:37:00 +02: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
Stefan Dösinger
d6547c535b
wined3d: Only generate the clipplane emulation KIL if a clipplane is used.
...
The KIL is quite expensive because it forces drivers to disable early Z
discard. It is cheaper to generate and switch between two shaders.
2009-09-08 13:03:03 +02:00
Henri Verbeet
6794a57073
wined3d: Return ~0U for wined3d_log2i(0).
2009-08-10 13:53:05 +02:00
Stefan Dösinger
c6d3e75482
wined3d: Not all cards support float16 filtering.
2009-08-06 17:26:31 +02:00
Henri Verbeet
da1e5573da
wined3d: Rename WineD3DContext to struct wined3d_context.
2009-08-03 15:01:48 +02:00
Henri Verbeet
43e6686a78
wined3d: Rename _WineD3D_GL_Info to struct wined3d_gl_info.
2009-07-17 11:22:07 +02:00
Henri Verbeet
69b7612265
wined3d: Get rid of struct glDescriptor.
...
In general it might not be a bad idea to group GL specific data into a
separate struct, but IWineD3DSurfaceImpl is currently the only thing that
bothers. It doesn't get it quite right either, since e.g. the PBO isn't in
glDescriptor either.
2009-07-10 12:13:24 +02:00
Henri Verbeet
2ac34bf231
wined3d: Add some missing float suffixes.
...
The compiler should be smart enough to fix most of these, but it looks sloppy.
2009-07-07 11:50:05 +02:00
Henri Verbeet
670d9ad90b
wined3d: Check if formats support blending when attached to an FBO.
...
Remove the post-pixelshader blending flag if the format doesn't. Note that the
patch doesn't enforce this restriction yet, it only adjusts the reported
format capabilities.
2009-07-02 12:00:38 +02:00
Henri Verbeet
6feb7c62ca
wined3d: Make sure the rtInternal format is supported.
2009-07-02 12:00:31 +02:00
Henri Verbeet
6df3f23bca
wined3d: Add some missing GL locking to init_format_fbo_compat_info().
2009-06-29 12:30:18 +02:00
Henri Verbeet
7363b6e2e3
wined3d: Document GL context dependencies.
2009-06-26 12:05:07 +02:00
Stefan Dösinger
85af0b2943
wined3d: Don't emulate clipplanes with ffp vp and fix a wrong if condition.
...
b2f09fd204
accidentally got the
device->vs_clipping check wrong. The FFP replacement should emulate
clipping if GL can't do this natively with vertex shaders, not the
other way. Also don't emulate clipping if we're using fixed function
vertex processing because (a) clipping is always supported by GL in
this case, and (b), fragment.texcoord[7] is undefined. (Or in the
worst case set to something bad by the app).
2009-06-23 15:53:00 +02:00
Henri Verbeet
e5e4d1e9a7
wined3d: Add an rtInternal fallback for WINED3DFMT_R16G16_UNORM.
2009-06-22 12:59:21 +02:00
Henri Verbeet
550a3bbf96
wined3d: Reuse the FBO for check_fbo_compat().
2009-06-18 15:17:27 +02:00
Henri Verbeet
7599520321
wined3d: Avoid checking depth/stencil and compressed formats in init_format_fbo_compat_info().
...
Checking these is somewhat pointless since they should never be
color-renderable according to the FBO spec. This patch also happens to avoid
dereferencing a NULL pointer inside fglrx.
2009-06-12 17:33:15 +02:00
Henri Verbeet
1ad485ff83
wined3d: Improve some TRACEs in init_format_fbo_compat_info().
2009-06-11 11:53:54 +02:00
Henri Verbeet
61fd875bb4
wined3d: Store compression information about compressed formats.
2009-06-10 11:51:04 +02:00
Frank Richter
6136884120
d3d9: Fix bitmask for A2R10G10B10 format.
2009-06-08 16:22:18 +02:00
Henri Verbeet
13aea3a131
wined3d: Use GL_DEPTH32F_STENCIL8 for WINED3DFMT_D24FS8.
2009-06-08 12:44:17 +02:00
Henri Verbeet
4bc2180821
wined3d: Use GL_DEPTH_COMPONENT32F for WINED3DFMT_D32F_LOCKABLE.
2009-06-08 12:44:13 +02:00
Henri Verbeet
f8c4832276
wined3d: Use GL_DEPTH24_STENCIL8_EXT for depth stencil formats.
2009-06-05 15:19:56 +02:00
Henri Verbeet
fb7531599f
wined3d: Only use stretch_rect_fbo() on surfaces that are FBO attachable.
2009-06-05 15:19:35 +02:00
Henri Verbeet
786408fb95
wined3d: Check FBO compatibility on all formats with a GL format.
...
Instead of just the ones that have a fallback specified.
2009-06-05 14:43:25 +02:00
Henri Verbeet
b93c3b3253
wined3d: Set texture filtering to NEAREST in check_fbo_compat().
2009-06-05 14:43:25 +02:00
Henri Verbeet
0571ebcee3
wined3d: Add extension detection to the GL format template table.
2009-06-05 14:43:25 +02:00
Henri Verbeet
cae6a32b08
wined3d: Check the result from wine_rb_get() before using it in WINE_RB_ENTRY_VALUE.
2009-06-05 14:43:25 +02:00
Henri Verbeet
0a059aafbe
wined3d: Check FBO compatibility after the fixups are applied.
2009-06-04 12:18:47 +02:00
Henri Verbeet
faaea93573
wined3d: Remove WINED3DFMT_R16G16B16A16_SNORM from the GL formats template.
...
This entry obviously can't work correctly.
2009-06-04 12:18:42 +02:00
Henri Verbeet
0cf49767ad
wined3d: Remove entries without an internal format from the GL formats template.
2009-06-04 12:18:33 +02:00
Henri Verbeet
ad6279de9f
wined3d: Replace the wined3d hash table with the generic red-black tree.
2009-06-03 11:40:14 +02:00
Henri Verbeet
6a9212a1b2
wined3d: Fix debug_d3dusagequery() to handle combinations of flags.
2009-05-25 11:23:53 +02:00
Henri Verbeet
7c2e91c592
wined3d: Fix debug_d3dusage() to handle combinations of flags.
2009-05-25 11:23:47 +02:00
Henri Verbeet
b35e469d9d
wined3d: Document functions that depend on the caller to do GL locking.
2009-05-15 10:25:41 +02:00
Henri Verbeet
3022a4a73c
wined3d: Add missing GL locking to check_fbo_compat().
2009-05-15 10:25:32 +02:00
Stefan Dösinger
d2e12a19ca
wined3d: Make use of GL_ARB_half_float_vertex.
...
This extension is a subset of GL_NV_half_float that defines support
for the stream format(same constant), but doesn't define texture
formats or immediate mode entrypoints.
2009-05-05 14:13:02 +02:00
Stefan Dösinger
bc07ad0579
d3d8, d3d9: Don't rely on the wined3d buffer type.
2009-04-08 11:35:29 +02:00
Stefan Dösinger
3e099d0147
wined3d: Advertise post pixelshader blending for a few more formats.
...
Windows advertises it on all these formats(Nvidia Geforce 7400), and
Trackmania Nations needs it on D3DFMT_Q8W8V8U8 to accept ps_3_0 support.
2009-03-30 14:22:06 +02:00
Henri Verbeet
4434d00f84
wined3d: Unify vertex and texture formats.
...
Some fields should be redundant now, eg. gl_vtx_type and glType. I'll leave
that for a different patch to fix though.
2009-03-27 15:51:25 +01:00
Henri Verbeet
5390628e6f
wined3d: Make sure the format actually exists in init_format_texture_info().
2009-03-27 15:51:24 +01:00
Henri Verbeet
837f163662
wined3d: Create a separate function for setting a format's GL texture info.
2009-03-27 15:50:24 +01:00
Henri Verbeet
b8f25ef6f2
wined3d: Create a separate function for setting format fixups.
2009-03-27 15:50:16 +01:00
Henri Verbeet
7874a6b74b
wined3d: Create a separate function for checking a format's FBO compatibility.
2009-03-27 15:50:08 +01:00
Henri Verbeet
1407bd6b1a
wined3d: Create a separate function for setting basic format info.
2009-03-27 11:23:41 +01:00
Henri Verbeet
dd1f0d9c48
wined3d: Pass format_desc to getColorBits() and getDepthStencilBits().
2009-03-24 12:57:38 +01:00
Henri Verbeet
a56a143461
wined3d: Set the byte count for WINED3DFMT_UNKNOWN to 0.
...
As far as I can tell nothing depends on this being 1, and there's some code
that checks for WINED3DFMT_UNKNOWN and uses 0 for the byte count in that case.
2009-03-24 12:57:12 +01:00
Henri Verbeet
a56e3a102b
wined3d: Only return a pointer to struct GlPixelFormatDesc from getFormatDescEntry().
2009-03-13 11:29:10 +01:00
Henri Verbeet
53bf5c2658
wined3d: Add fields from StaticPixelFormatDesc to struct GlPixelFormatDesc.
...
The idea here is that we should lookup format information in struct
GlPixelFormatDesc, while StaticPixelFormatDesc and GlPixelFormatDescTemplate
will only be used to build the table.
2009-03-13 11:29:01 +01:00
Henri Verbeet
e3bcc7544c
wined3d: Remove the shader_color_fixup field from IWineD3DBaseTextureClass.
...
This is redundant now.
2009-03-12 13:09:55 +01:00
Henri Verbeet
4ff5736edf
wined3d: Don't compare texUnitMap entries to -1.
2009-03-09 14:39:34 +01:00
Henri Verbeet
3b07e7059e
wined3d: Add d3d10 primitive types.
2009-03-05 16:16:24 +01:00
Henri Verbeet
b4830feb34
wined3d: Accept WINED3DFMT_R8G8B8A8_UNORM in getColorBits().
2009-02-25 12:37:06 +01:00
Henri Verbeet
399d992a07
wined3d: Add IWineD3DBuffer, use it in d3d10core.
2009-02-23 12:20:45 +01:00
Henri Verbeet
8cefc47d81
wined3d: Add DXGI formats to WINED3DFORMAT.
2009-02-20 11:10:37 +01:00
Francois Gouget
5b60258f0d
wined3d: Make debug{fixup_channel_source,yuv_fixup}() static.
2009-02-18 12:17:38 +01:00
Stefan Dösinger
68c251f327
wined3d: Add a debug function for surface locations.
2009-02-17 12:51:17 +01:00
Michael Stefaniuc
118c75a8c7
wined3d: Remove superfluous pointer casts.
2009-02-03 12:40:14 +01:00
Michael Stefaniuc
cc6b283d3a
wined3d: Remove some unused defines.
2009-02-03 12:40:12 +01:00
Stefan Dösinger
50109aa969
wined3d: Get rid of last_was_foggy_shader & friends.
...
The fog settings do not depend on wether the shader writes to oFog or not,
instead they depend on the FOGVERTEXMODE and FOGTABLEMODE settings, and if a
vertex shader is bound at all.
It works the same way as with the fixed function, and having a vertex shader
is the same as using pretransformed vertices, just that the fog coord comes
from the shader instead of the specular color:
FOGTABLEMODE != NONE: The Z coord is used, oFog is ignored
FOGTABLEMODE == NONE, with VS: oFog is used
FOGTABLEMODE == NONE, no VS, XYZ: Z is used
FOGTABLEMODE == NONE, no VS, XYZRHW: diffuse color is used
2009-01-20 12:45:40 +01:00
Henri Verbeet
5d875906c1
wined3d: Remove some superfluous pointer casts.
2009-01-20 12:34:05 +01:00
Henri Verbeet
45a61d1ac4
wined3d: Enable GL_HALF_FLOAT_NV when NV_HALF_FLOAT is supported.
...
This makes more sense than the other way around.
2009-01-08 13:21:56 +01:00
Henri Verbeet
b1812c690c
wined3d: Add support for EXT_vertex_array_bgra.
...
This allows us to skip BGRA->RGBA color conversion for vertex attributes if
this extension is present.
2009-01-08 13:21:51 +01:00
Henri Verbeet
a8697d90e4
wined3d: Renumber WINED3DTEXTURESTAGESTATETYPE enum elements.
...
Saves some space by not having unused entries is the arrays tracking these
states.
2009-01-06 12:45:43 +01:00
Henri Verbeet
e8ba733706
wined3d: Remove unused enum elements from WINED3DTEXTURESTAGESTATETYPE.
2009-01-05 12:41:31 +01:00
Henri Verbeet
39909f2a06
wined3d: Handle WINED3DFVF_XYZW in get_flexible_vertex_size().
...
Spotted by Chris Robinson.
2009-01-03 14:55:31 +01:00
Andrew Talbot
f9762d6082
wined3d: Remove superfluous semicolons.
2008-12-24 19:59:14 +01:00
Henri Verbeet
4a19d893e5
wined3d: Only apply shader constants that changed.
...
This improves performance a bit for applications that use a lot of
shaders with a lot of constants.
2008-12-20 11:11:45 +01:00
Roderick Colenbrander
086d949877
wined3d: Add GL_RG16F / GL_RG32F support using ARB_texture_rg.
2008-12-19 17:49:20 +01:00
Roderick Colenbrander
331fe08b54
wined3d: Add R32F using ARB_texture_rg.
2008-12-19 17:49:08 +01:00
Roderick Colenbrander
8cb84458d3
wined3d: Add R16F using ARB_texture_rg.
2008-12-19 17:49:02 +01:00
Henri Verbeet
7d29aecd6f
wined3d: Use a simpler way to calculate the number of texture levels.
...
It's probably slightly faster too.
2008-12-12 11:40:39 +01:00
Henri Verbeet
70ed814b95
wined3d: Get rid of the textureDimensions field in the state block.
2008-12-12 11:40:32 +01:00
Stefan Dösinger
f2f90b6965
wined3d: Fix ARG_UNUSED and use it properly.
...
That bug was uncovered by Henri's change of the bitfield sizes.
2008-12-11 14:07:31 +01:00
Henri Verbeet
4aa00e8a21
wined3d: Rename texture_stage_op.color_correction to texture_stage_op.color_fixup.
...
This is consistent with other uses of struct color_fixup_desc.
2008-12-10 10:50:24 +01:00
Stefan Dösinger
e04556bb16
wined3d: Fix D3DFMT_R32F, R16F, G16R16F, ... in the pixel shader.
...
This allows us to drop the load time conversion and the clear
readback hack and replaces it with a color fixup in the fixed
function pipeline replacement.
2008-12-04 12:00:15 +01:00
Henri Verbeet
89139b7589
wined3d: Make shader texture format fixups more generic.
...
Based on a patch by Stefan Dösinger. This is more flexible, and allows
the shader backend implementation to be simpler, since it doesn't have
to know about specific formats. The next patch makes use of this.
2008-12-04 11:59:58 +01:00
Henri Verbeet
b451048eb7
wined3d: Move GlPixelFormatDesc to wined3d_private.h where it belongs.
...
Also remove the silly typedef.
2008-12-04 11:59:06 +01:00
Henri Verbeet
5532c990b6
wined3d: Const correctness fixes.
2008-12-02 14:04:15 +01:00
Henri Verbeet
eb78c2a082
wined3d: Const correctness fixes for utils.c.
2008-11-26 12:04:56 +01:00
Stefan Dösinger
33482a732e
wined3d: Enable blue = 1.0 fixup for D3DFMT_V8U8.
...
The dx7 sdk demos need this.
2008-11-25 13:07:14 +01:00
Stefan Dösinger
5c79a9f437
wined3d: Rename the fragment ffp desc structures.
...
This reflects the fact that they describe the fragment pipeline.
The vertex pipeline will use its own structures.
2008-11-20 12:17:45 +01:00
Stefan Dösinger
620a423b22
wined3d: Kill the GL_ATI_envmap_bumpmap code.
...
GL_ATI_envmap_bumpmap provides two things: Signed V8U8 pixel formats,
and bump mapping. The extension is only supported on fglrx, and this
driver also supports GL_ARB_fragment_program. Thus the bump mapping
code is never used on any driver out there. Furthermore, if it is
used, it tends to crash the driver
The signed pixel format is used, as it can be used by pixel shaders or
the ARBfp replacement. However, the format is broken in fglrx, and
negative values are clamped to 0.0. This results in test
failures. WineD3D has an alternative codepath using scale+bias to
enable V8U8 using a standard signed RGB which works correctly on
fglrx.
2008-11-04 11:41:14 +01:00
Vitaliy Margolen
a2b2a4cf79
wined3d: Add one more FBO error status code.
2008-10-18 19:35:20 +02:00
Alexandre Julliard
6cfef95ce7
wined3d: Convert source files to utf-8.
2008-10-18 19:21:20 +02:00
Stefan Dösinger
3b48660f43
wined3d: Implement YV12 support for emulated overlays.
...
This is the prefered format of many codecs, and for some codecs this
is the only supported output format. As usual I try to handle all the
conversion in the GPU and keep the CPU involvement minimal to gain the
full performance of PBO transfers.
2008-09-02 14:55:50 +02:00
Henri Verbeet
b4f43e372e
wined3d: Remove useless hash_table_t typedef.
2008-08-29 12:26:55 +02:00
Stefan Dösinger
af8d268a39
wined3d: Handle projected textures properly in arbfp and atifs.
...
GL_ARB_fragment_program and GL_ATI_fragment_shader can disable
projected textures properly, and they can also handle
D3DTTFF_PROJECTED | D3DTTFF_COUNT3 properly.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
ec4955630e
wined3d: Silence some format spam.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
4635315655
wined3d: Replace a #if 0 with if(0).
2008-08-28 11:24:49 +02:00
Stefan Dösinger
b294e43206
wined3d: D3DTOP_DOTPRODUCT3 colorop overrides the alphaop.
...
Note that the fix is only implemented in the arbfp and atifs fragment
pipeline. Unfortunately nvrc doesn't support dot3 as alpha operation.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
f39e122477
wined3d: Add fixed function sRGB write correction.
2008-08-25 12:25:13 +02:00
Chris Robinson
9f82368908
wined3d: Use the proper internal type for some formats.
2008-08-25 12:23:00 +02:00
H. Verbeet
b917bdaa52
wined3d: Remove useless hash_table_entry_t typedef.
...
It doesn't add much.
2008-08-22 10:39:08 +02:00
Stefan Dösinger
46109da87d
wined3d: Don't skip applying texdims with shaders.
...
There's no need to do that with the nvts and opengl ffp fixed function
fragment pipeline, it's perfectly well defined in GL which one takes
effect. This removes a few more troubles when switching between
shaders and arbfp.
2008-08-21 13:33:30 +02:00
Stefan Dösinger
8fe6bf0bad
wined3d: Fix the unused arg marker.
2008-08-20 12:34:44 +02:00
Stefan Dösinger
bfe7067973
wined3d: Ask the ffp/shader/blit implementation about format support.
...
If a format is not supported natively by opengl, a shader may be able
to convert it. Up to now, CheckDeviceFormat had magic knowldge which
GL extensions lead to which supported format. This patch adds
functions that allow CheckDeviceFormat to ask the actual
implementation for its capabilities.
2008-08-20 12:26:02 +02:00
Stefan Dösinger
6a24b28b75
wined3d: Support YUV formats with GL_APPLE_ycbcr_422.
2008-08-20 12:25:00 +02:00
Stefan Dösinger
228f2cf3c2
wined3d: Initialize the texture op function properly.
2008-08-04 13:07:26 +02:00
Stefan Dösinger
bc4435e406
wined3d: Use a hashmap to store the ffp shaders.
2008-07-31 13:01:50 +02:00
Stefan Dösinger
d4d133f032
wined3d: Use C bitfields to compact the ffp description.
2008-07-31 13:01:36 +02:00
Stefan Dösinger
294f1b4aad
wined3d: Add fog and tex types to the ffp fragment description.
2008-07-28 11:36:15 +02:00
Stefan Dösinger
726d9d47af
wined3d: ATI2N support using GL_EXT_texture_compression_rgtc.
2008-07-24 11:56:42 +02:00
Stefan Dösinger
dc25a86cc5
wined3d: Support ATI's D3DFMT_ATI2N format.
...
This is an ATI specific format designed for compressed normal maps,
and quite a few games check for its existence. While it is an
ATI-specific "extension" in d3d9, it is a core part of
D3D10(DXGI_FORMAT_BC5), and supported on Geforce 8 cards.
2008-07-24 11:56:24 +02:00
Stefan Dösinger
eea2c95727
wined3d: Move set_tex_op(_nvrc) to their specific files.
2008-07-22 13:01:45 +02:00
Stefan Dösinger
212ff6ff57
wined3d: Remove some #ifdefs.
2008-07-22 13:01:22 +02:00
Philip Nilsson
9528b1c63e
wined3d: Enable filtering for D3DFMT_A4R4G4B4.
...
This patch enables texture filtering for textures using the A4R4G4B4
format, I can see no reason why it shouldn't be filtered (especially
considering X4R4G4B4 has it).
2008-07-16 19:56:24 +02:00
Stefan Dösinger
197f472ea8
wined3d: Separate texture_activate_dimensions.
...
This creates an nvts version of this function, and removes the nvts
code from the original one. The nvts version is used by the nvts
pipeline implementation, the original one by the nvrc-only, atifs and
ffp one.
2008-07-14 11:46:25 +02:00
Stefan Dösinger
51e64b3fe9
wined3d: Move fixed function texture dimension updates to the fragment pipeline.
...
This is a further separation of the sampler state, and a preparation
to move the nv texture shader stuff to its own pipeline implementation.
2008-07-14 11:43:41 +02:00
H. Verbeet
02a2ba9d2f
wined3d: Report post pixelshader blending on WINED3DFMT_A16B16G16R16F.
2008-06-23 12:55:02 +02:00
H. Verbeet
e081d69bc1
wined3d: Report WINED3DFMT_FLAG_FILTERING on WINED3DFMT_D24X8.
...
We report this for WINED3DFMT_D24S8, so there should be no reason
WINED3DFMT_D24X8 can't do it. Fixes a regression in 3DMark06.
2008-06-20 11:20:05 +02:00
H. Verbeet
3687207a04
wined3d: Fix WINED3DTOP_MULTIPLYADD for ATI cards.
2008-06-03 11:11:30 +02:00
H. Verbeet
8e6c7aaf1f
wined3d: Fix the nvrc implementation of WINED3DTOP_MULTIPLYADD and WINED3DTOP_LERP.
2008-05-27 12:04:22 +02:00
H. Verbeet
e891a9938a
wined3d: Add WINED3DTOP_ADDSIGNED2X to debug_d3dtop().
2008-05-27 12:04:11 +02:00
Stefan Dösinger
9ee7e42de8
wined3d: Call activate_dimensions from the atifs code.
2008-04-24 11:54:28 +02:00
Austin English
c531e2abdb
Spelling fixes.
2008-04-23 12:31:07 +02:00
Stefan Dösinger
b1d8af7926
wined3d: Update copyright lines.
2008-04-02 20:22:42 +02:00
Stefan Dösinger
bd68237096
wined3d: Implement TSSARGTEMP with register combiners.
2008-04-02 20:07:40 +02:00
Stefan Dösinger
287f60a2b2
wined3d: Implement D3DTA_TEMP in the GL_ATI_fragment_shader codepath.
2008-04-02 20:07:19 +02:00
Stefan Dösinger
8673be0bd7
wined3d: Return a fake pixel format if gl is not loaded.
2008-04-01 20:31:37 +02:00
Roderick Colenbrander
c0be6047ef
wined3d: Also move the rendertarget capability to the formats table.
2008-03-29 10:31:50 +01:00
Roderick Colenbrander
ef73fe5d47
wined3d: Add a depthstencil flag to the formats table and make use of it in CheckDepthStencilCapability.
2008-03-29 10:31:36 +01:00
Roderick Colenbrander
e1bf1cd640
wined3d: Make the filtering capability of a format a flag in the formats table.
2008-03-29 10:31:18 +01:00
Roderick Colenbrander
4eaa424c79
wined3d: Initial post pixelshader blending support. [attempt 2].
...
For each pixel format we store a flag in the table whether it supports
post pixelshader blending. Before applying blending or during a
context switch we verify that blending is turned off for the
format. In case of R32F this gave a 5-6x performance boost (without
filtering and software conversion).
2008-03-28 15:50:24 +01:00