Alexander Dorofeyev
5346039d5a
wined3d: Take alpha from device palette entry for d3d 8 and later.
...
Adds support for D3D >= 8 style palettes that contain alpha. This fixes
rendering problems in games like Commandos 3 and Madden NFL 2004.
2008-02-19 13:39:24 +01:00
Roderick Colenbrander
1079f37407
wined3d: When DDCAPS_ALLOW256 is set, palette entry 0 and 255 are filled with black and white.
2008-02-19 12:06:25 +01:00
Roderick Colenbrander
c2d978410f
wined3d: Add separate alpha blend support.
2008-02-18 14:19:57 +01:00
Roderick Colenbrander
a29584b34f
wined3d: Add SURFACE_BUSY support to *_BltFast.
2008-02-18 14:19:44 +01:00
Roderick Colenbrander
5437cb01f1
wined3d: Add SURFACE_BUSY support to *_Blt.
2008-02-18 14:19:37 +01:00
Stefan Dösinger
989d283000
wined3d: Detect and work around the MacOS Geforce 8 PBO brokeness.
2008-02-18 13:36:58 +01:00
Stefan Dösinger
b8c613196d
wined3d: Fix a syntax error in the ARB vertex program offset shader.
...
As some Mesa developers pointed out, the GL_ARB_vertex_program grammar
does not allow an immediate value as source argument in ARL. Most
compilers accept it, but since it is not the purpose of the test
program to test for this replace it with a proper constant.
2008-02-18 13:34:37 +01:00
Stefan Dösinger
c2d97b2329
wined3d: Add a test for fixed function bump mapping.
2008-02-18 13:34:25 +01:00
Stefan Dösinger
d49c9bbcbe
wined3d: Do not change the texture unit when binding surfaces.
...
Changing the texture unit when binding a surface for loading can break
the state manager in the way that it changes the currently active
texture unit while it is setting up a texture that has to be loaded.
Instead find out the current unit to dirtify the correct sampler.
2008-02-18 13:34:13 +01:00
Stefan Dösinger
b1e1df5117
wined3d: Extend out anti-spam database a bit.
2008-02-18 13:34:01 +01:00
Rico Schüller
59a43c4cc9
wined3d: Fix memcpy with wrong size parameter to simple assignment in GetScissorRect.
2008-02-15 12:08:54 +01:00
Stefan Dösinger
81de2fa10a
wined3d: Add a test for the vFace register.
2008-02-15 09:40:03 +01:00
Roderick Colenbrander
ba90a740be
wined3d: Add read_from_framebuffer_texture which combines code from read_from_framebuffer (drawpixels) and LoadLocation.
...
This makes the code easier to read and the pieces borrowed from
read_from_framebuffer are more correct than the code in LoadLocation.
2008-02-11 19:58:58 +01:00
Roderick Colenbrander
059778446f
wined3d: Upload p8 palette using GL_ALPHA instead of GL_RED.
2008-02-08 11:04:36 +01:00
Stefan Dösinger
62a92d160e
wined3d: Restore the Window size on reset.
2008-02-07 13:05:44 +01:00
Stefan Dösinger
b322f81b75
wined3d: Reject unsupported modes when restting the device.
2008-02-07 13:05:27 +01:00
Stefan Dösinger
3e7f1388be
wined3d: Add some ATI cards to the version database.
2008-02-07 13:05:20 +01:00
Stefan Dösinger
1c1a6f32ae
wined3d: Add infrastructure for faking driver versions.
...
Often the Linux / MacOS graphics driver version is of no use for
finding a proper driver version to report to the D3D app. So this
patch adds some infrastructure for easy hardcoding of card specific
driver versions to report to the application. This helps applications
which make assumptions based on the driver version, like bug
workarounds.
2008-02-07 13:05:04 +01:00
Stefan Dösinger
089c34b95a
wined3d: Create VBOs.
2008-02-06 12:43:53 +01:00
Stefan Dösinger
74db14728e
wined3d: Separate OpenGL and driver version.
2008-02-06 12:43:53 +01:00
Stefan Dösinger
3188d9ae30
wined3d: Move the highpart of the driver version to the gl structure.
...
While 6.14 is a sane default, we might want to override it on a
per-driver basis, if we have really old Windows drivers on some cards.
2008-02-06 12:43:53 +01:00
Stefan Dösinger
cb6de00c86
wined3d: Tear down the dummy textures before resetting.
...
In theory the opengl library should release the gl resources when we
destroy the context, and the stateblock reset will recreate the dummy
textures, but I think it is cleaner to do this explicitly.
2008-02-06 12:43:53 +01:00
Stefan Dösinger
564532f026
wined3d: Restore the stateblock after Reset.
2008-02-06 12:43:53 +01:00
Roderick Colenbrander
35e0bb8225
wined3d: Redownload the surface data in case of a palette change. This fixes a lot of redrawing problems in Red Alert.
2008-02-06 11:36:44 +01:00
Roderick Colenbrander
424e9c3e08
wined3d: Allow read back of P8 surfaces. This fixes some of the redrawing issues in Red Alert.
2008-02-06 11:36:35 +01:00
Roderick Colenbrander
f84589ea1f
wined3d: Reload the palette on a color key change. This fixes the ddex4/ddex5 samples from the dx7 sdk.
2008-02-06 11:36:23 +01:00
Roderick Colenbrander
1b78457bc6
wined3d: Make sure to set the color key when it is needed including for index_in_alpha.
2008-02-06 11:36:15 +01:00
Stefan Dösinger
dcf08f01ed
wined3d: Recreate the contexts on _Reset.
2008-02-05 12:42:39 +01:00
Stefan Dösinger
e7393a8a11
wined3d: Move vertex buffer vbo creation to PreLoad.
2008-02-05 12:42:30 +01:00
Stefan Dösinger
b813398467
wined3d: Move the float format check to the big switch statement.
2008-02-05 12:42:20 +01:00
Stefan Dösinger
bbeedca67e
wined3d: Fix dxtn format check.
...
We can't return WINED3D_OK straight away because we have yet to check
the other flags, like sRGB correction.
2008-02-05 12:42:12 +01:00
Stefan Dösinger
9d9a640127
wined3d: Correct the srgb reading check.
2008-02-05 12:41:59 +01:00
Stefan Dösinger
635daf8b5d
wined3d: D3DTADDRESS_WRAP on conditional NP2 textures clamps to edge.
...
Conditional NP2 textures in Direct3D do not support D3DTADDRESS_WRAP
texture addressing. Similarly, GL_ARB_texture_rectangle textures do
not support GL_REPEAT. This patch adds a test which shows that _WRAP
clamps to the texture edge and implements that.
2008-02-05 12:37:49 +01:00
Stefan Dösinger
08391b82c1
wined3d: Update the gl rectangle when adjusting surface sizes.
2008-02-05 12:37:28 +01:00
Stefan Dösinger
1424e7fd09
wined3d: Make Clear aware of the depth stencil sharing.
2008-02-05 12:37:01 +01:00
Stefan Dösinger
3d2aa7afa0
wined3d: De-Statify depth blit opengl resources.
2008-02-05 12:33:15 +01:00
Stefan Dösinger
093d7d00c5
wined3d: Mark textures dirty on UnLoad.
2008-02-05 12:33:05 +01:00
Stefan Dösinger
a0f2e6e55e
wined3d: Move some UnLoad code to the base texture class.
2008-02-05 12:32:58 +01:00
Stefan Dösinger
4c99bd5f87
wined3d: Destroy FBOs and reset pointers on Reset.
2008-02-05 12:32:49 +01:00
Stefan Dösinger
33d012efcb
wined3d: Unload implicit depth stencil buffers correctly.
...
We have to destroy potential fbo renderbuffers, and make sure the
texture is gone
2008-02-05 12:32:42 +01:00
Stefan Dösinger
c1538f8048
wined3d: Update the auto depth stencil buffer size on reset.
2008-02-05 12:32:30 +01:00
Stefan Dösinger
b706a62aff
wined3d: Beware of texture_rectangle NP2 support in Reset.
2008-02-05 12:32:22 +01:00
Alexandre Julliard
e84daed485
Avoid sizeof in traces.
2008-01-24 14:03:10 +01:00
Andrew Talbot
35c3bfe25c
wined3d: Remove unneeded casts.
2008-01-24 11:41:47 +01:00
Andrew Talbot
18047e77e5
wined3d: Remove unneeded casts.
2008-01-24 11:41:42 +01:00
Andrew Talbot
b3a58a2486
wined3d: Remove unneeded casts.
2008-01-24 11:41:36 +01:00
Andrew Talbot
ebcedd0350
wined3d: Remove unneeded casts.
2008-01-24 11:41:30 +01:00
Francois Gouget
d0794c4aeb
Assorted spelling fixes.
2008-01-23 21:16:22 +01:00
Roderick Colenbrander
a1364d11c0
wined3d: Don't use texture_rectangle for paletted textures.
2008-01-23 11:31:42 +01:00
Marcus Meissner
755d806f1a
wined3d: Initialize swapchain.
2008-01-22 12:58:14 +01:00
Alexander Dorofeyev
d9567b7627
wined3d: Fix not released swapchain in some codepaths.
2008-01-22 11:19:43 +01:00
Alexander Dorofeyev
536f98000d
wined3d: Change colorkey fixup for stage 0 alphaop / alphaarg.
2008-01-22 11:19:05 +01:00
Marcus Meissner
d757432c7d
wined3d: Removed deadcode.
2008-01-21 12:41:31 +01:00
Austin English
3471f841a1
wined3d: Spelling fixes.
2008-01-18 12:53:33 +01:00
Marcus Meissner
293ec5843d
wined3d: Check for overflows.
2008-01-16 19:14:38 +01:00
Allan Tong
7b40fd645d
wined3d: Set swapchain container before flagging front buffer with SFLAG_INDRAWABLE.
2008-01-15 14:35:20 +01:00
Pablo Spallanzani
91afa09ac0
wined3d: Fix texture coordinate calculation in surface_blt_to_drawable.
2008-01-15 11:36:44 +01:00
Stefan Dösinger
5426cd6317
wined3d: Clear the constant list before finding constants.
...
shader_get_registers_used is delayed until compile time for some 1.x
shaders, mostly to wait for the right vertex declaration to be
set. This means that on a recompile it will be run again, adding
another instance of each local constant, which in turn causes compile
errors because of constant redeclaration. Just purging the lists
before finding the constants is a simple and reliable solution.
2008-01-14 15:21:20 +01:00
Stefan Dösinger
11d6ed0c0b
wined3d: Destroy opengl shaders on reset.
2008-01-14 15:21:08 +01:00
Stefan Dösinger
1156194881
wined3d: Destroy arb shaders on shader destroy.
2008-01-14 15:21:01 +01:00
Stefan Dösinger
4d0a609452
wined3d: Reset the shader state on shader_*_destroy.
2008-01-14 15:20:51 +01:00
Stefan Dösinger
09bf3d5aea
wined3d: Keep track of shaders.
2008-01-14 15:20:42 +01:00
Stefan Dösinger
c3c6c6f543
wined3d: Unload all resources on Reset.
2008-01-14 15:20:34 +01:00
Stefan Dösinger
80953d62d7
d3d9: Reject IDirect3DDevice9::Reset with active default pool resources.
2008-01-14 15:12:00 +01:00
Stefan Dösinger
8bb5d13fe2
wined3d: Implement VolumeTexture::UnLoad.
2008-01-14 15:11:35 +01:00
Stefan Dösinger
38a4f6339b
wined3d: Implement IWineD3DCubeTexture::UnLoad.
2008-01-14 15:11:27 +01:00
Stefan Dösinger
5d7b8dafb8
wined3d: Implement IWineD3DTexture::UnLoad.
2008-01-14 15:11:18 +01:00
Stefan Dösinger
0ca65c7bc0
wined3d: Implement IWineD3DVolume::UnLoad.
2008-01-14 15:11:07 +01:00
Stefan Dösinger
36729a874c
wined3d: Implement IWineD3DIndexBuffer::UnLoad.
2008-01-14 15:10:54 +01:00
Stefan Dösinger
15245a74b6
wined3d: Implement IWineD3DVertexBuffer::UnLoad.
2008-01-14 15:10:42 +01:00
Stefan Dösinger
c372654b26
wined3d: Implement IWineD3DSurface::UnLoad.
2008-01-14 15:10:30 +01:00
Stefan Dösinger
e59ddb0ab1
wined3d: Add a new IWineD3DResource::UnLoad method.
2008-01-14 15:10:17 +01:00
Roderick Colenbrander
916b56391d
wined3d: Fix glBlendColorEXT for use on RivaTNT.
2008-01-14 13:10:28 +01:00
Stefan Dösinger
29a0b3622c
wined3d: Fix a pixelshader recompilation check.
2008-01-08 17:04:49 +01:00
Stefan Dösinger
c290f4c7a3
wined3d: Detect geforce 7300 cards.
2008-01-08 17:04:36 +01:00
Roderick Colenbrander
a74ecc5f2f
wined3d: Unify color conversion code.
2008-01-07 22:57:05 +01:00
Roderick Colenbrander
f2e32f7c45
wined3d: Use software palette conversion for non-texturing operations.
2008-01-07 18:20:07 +01:00
Alexandre Julliard
9636c7fa0e
wined3d: Use unsigned int instead of size_t for the glsl mask size.
2008-01-07 17:17:27 +01:00
Alexandre Julliard
980ee365a0
wined3d: Use unsigned int instead of size_t for element counts.
2008-01-07 17:17:04 +01:00
Gerald Pfeifer
21a9c2d2f9
wined3d: Removed dead FIXME checks.
2008-01-03 11:53:29 +01:00
H. Verbeet
3f6c3d2db0
wined3d: Properly handle the surface location in stretch_rect_fbo().
2008-01-03 11:40:31 +01:00
H. Verbeet
bf50e07f34
wined3d: SFLAG_INTEXTURE is the same as SFLAG_INDRAWABLE for offscreen render targets when ORM_FBO is used.
2008-01-03 11:40:31 +01:00
H. Verbeet
4863daf06a
wined3d: Bind the surface texture in LoadLocation().
2008-01-03 11:40:31 +01:00
H. Verbeet
6cab4c8005
wined3d: Move binding the texture and dirtifying the sampler to its own function from surface_download_data().
2008-01-03 11:40:31 +01:00
H. Verbeet
2820ecc5fe
wined3d: Call SetGlTextureDesc() from BindTexture() rather than from PreLoad().
2008-01-03 11:40:31 +01:00
H. Verbeet
c46c53a12c
wined3d: Call ActivateContext regardless of WINED3DCREATE_MULTITHREADED.
2008-01-03 11:40:31 +01:00
Gerald Pfeifer
520832451f
wined3d: Simplify three checks based on the unsignedness of variables.
2008-01-02 12:38:42 +01:00
Gerald Pfeifer
02afd70fbb
wined3d: Remove four noop checks.
2008-01-02 12:38:42 +01:00
Alexander Dorofeyev
7165d7268b
wined3d: Fix regression of colorfill and texture to swapchain codepaths in BltOverride.
2007-12-31 17:49:00 +01:00
Alexander Dorofeyev
83fe4e77f5
wined3d: Free palette handle when destroying IWineD3DPaletteImpl.
2007-12-31 17:48:08 +01:00
Gerald Pfeifer
d3840f0bb7
wined3d: Remove noop check in IWineD3DBaseTextureImpl_Appl().
2007-12-31 17:29:33 +01:00
Roderick Colenbrander
f3df6cf42b
wined3d: Only store the palette index in the alpha component when the primary render target uses P8.
...
This was already done in other places but I missed this spot.
2007-12-28 11:45:03 +01:00
Roderick Colenbrander
756cb66e78
wined3d: In case of GL_EXT_paletted_textures we use GL_COLOR_INDEX and don't need a GL_RED fixup.
2007-12-28 11:44:49 +01:00
Stefan Dösinger
ea093f4a38
wined3d: Multiply the half pixel correction with .w.
2007-12-28 11:28:59 +01:00
Stefan Dösinger
fd711c57df
wined3d: Combine two glScalef calls into one.
2007-12-27 13:44:18 +01:00
Stefan Dösinger
44b8915371
wined3d: Get rid of the invymat.
...
glScalef(1.0, -1.0, 1.0) does the same as the glMultMatrix with the
invymat matrix, and it is more optimal.
2007-12-27 13:44:13 +01:00
Stefan Dösinger
2bec23fd7c
wined3d: Fix a problem in BltOverride.
2007-12-27 13:44:05 +01:00
Alexander Dorofeyev
27c98fd628
wined3d: Also update alpha test when stage texture is NULL.
2007-12-27 13:43:49 +01:00
Alexander Dorofeyev
1e23602d4b
wined3d: Add zero/near zero vertex rhw special case.
2007-12-26 14:03:48 +01:00
Alexander Dorofeyev
eb3fb4bf28
wined3d: Use IWineD3DDeviceImpl_ClearSurface in IWineD3DDeviceImpl_Clear.
2007-12-21 13:58:19 +01:00
Alexander Dorofeyev
f5aaabd1f2
wined3d: Rewrite IWineD3DSurfaceImpl_BltOverride colorfill codepath.
2007-12-21 13:58:13 +01:00
Stefan Dösinger
47a8a6bd44
wined3d: Implement and test vertex fixups with per stream offsets.
2007-12-21 13:44:16 +01:00
Stefan Dösinger
e27cf6ff8f
wined3d: Per stream offsets are 4 byte aligned.
2007-12-21 13:44:06 +01:00
Stefan Dösinger
8ff517eeb9
wined3d: Vertex attributes are 4 byte aligned.
2007-12-21 13:43:58 +01:00
Stefan Dösinger
b475047cc0
wined3d: Improve some traces.
2007-12-21 13:14:58 +01:00
Stefan Dösinger
6d575ec301
wined3d: Change the vertex buffer declaration's data format.
...
This hopefully makes the vertex attribute detection simpler, more solid,
readable and flexible.
2007-12-21 13:14:36 +01:00
Stefan Dösinger
b5f925cae0
wined3d: Implement half float vertex buffer conversion.
2007-12-21 13:13:56 +01:00
Stefan Dösinger
aaa0e5090a
wined3d: Add a test for 16 bit floats.
2007-12-20 12:10:16 +01:00
Stefan Dösinger
b83dc6bbf6
wined3d: Move the GL info structure into the adapter.
2007-12-20 12:10:08 +01:00
Stefan Dösinger
6ac59b96ed
wined3d: Fix vertex buffers based on type, not semantic.
2007-12-20 12:09:56 +01:00
Stefan Dösinger
2d90449500
wined3d: Fixed function vertex attribute types are flexible.
2007-12-20 10:49:42 +01:00
Stefan Dösinger
a3c2fb9e64
wined3d: Store if half float conversion is needed in the decl.
2007-12-20 10:48:16 +01:00
Stefan Dösinger
30c1abb1eb
wined3d: Always dump the fbo state on errors.
2007-12-20 10:48:08 +01:00
Rico Schüller
b7dfe3afb6
wined3d: Fix some typos.
2007-12-20 10:47:06 +01:00
Stefan Dösinger
b95f30134b
wined3d: Implement texture -> swapchain blits with stretch_rect_fbo.
2007-12-19 12:19:43 +01:00
Stefan Dösinger
37e872e901
wined3d: Some improvements for SFLAG_CONVERTED checking.
...
We can check this flag before setting up the gl lock, and add the
surface format to the FIXME.
2007-12-19 12:19:39 +01:00
Stefan Dösinger
7a1d35e513
wined3d: Emulate half float vertices if GL_NV_half_float is not there.
2007-12-19 12:19:27 +01:00
Stefan Dösinger
7e9af243d1
wined3d: Implement blits from the active render target to swapchains.
2007-12-19 12:19:12 +01:00
Stefan Dösinger
83c0b13c5b
wined3d: Split up the render target -> render target blit.
2007-12-18 14:08:28 +01:00
Stefan Dösinger
df77e28854
wined3d: Implement D3DFMT_G16R16.
2007-12-18 14:08:18 +01:00
Stefan Dösinger
88f746ab0e
wined3d: Filter out some shader compilation spam.
2007-12-18 14:07:12 +01:00
Stefan Dösinger
2eab3d5c11
wined3d: Ignore tesselated and unused streams when comparing attribs.
2007-12-18 13:23:16 +01:00
Stefan Dösinger
8e036d6487
wined3d: Correct a pixel shader version comparison.
2007-12-18 13:23:09 +01:00
Stefan Dösinger
cd858dfa22
wined3d: Disable the SWAPEFFECT_DISCARD clear.
2007-12-18 13:23:00 +01:00
Stefan Dösinger
f78ae8d125
wined3d: Use SetDisplayMode to set the display mode.
2007-12-12 13:46:04 +01:00
Stefan Dösinger
51adbf5bbf
wined3d: Remove 24/32 bit hacks.
2007-12-12 13:45:50 +01:00
Marco Schuster
96504632de
wined3d: Fixed a bug that the 8600M GT could not be detected.
2007-12-12 13:45:42 +01:00
Michael Stefaniuc
a526ad6cbc
wined3d: Fix a "ordered comparison of pointer with integer zero".
2007-12-11 14:59:54 +01:00
Stefan Dösinger
7f10ee453a
wined3d: Use the adapter to read the display mode.
2007-12-11 12:14:35 +01:00
Alexander Dorofeyev
1dbc9d50c9
wined3d: Improve thread safety in IWineD3DSurfaceImpl_BltOverride.
2007-12-10 12:36:06 +01:00
Detlef Riekenberg
efb13b28df
Assorted spelling fixes.
2007-12-08 19:55:39 +01:00
Francois Gouget
5f7a9cea38
Assorted spelling fixes.
2007-12-07 16:35:32 +01:00
Stefan Dösinger
f700cbe74b
wined3d: Add an alpha blending test.
2007-12-07 16:26:43 +01:00
Stefan Dösinger
0e8c13e630
wined3d: A more detailed occlusion query test and fixes.
2007-12-07 15:27:11 +01:00
Stefan Dösinger
54fa712981
wined3d: Initialize output texcoord .w to 1.0 if needed.
...
The GL_ARB_vertex_program extension does not define a standard value for
output texture coordinates. This makes problems when using vertex
shaders with fixed function fragment processing because fffp divides the
texture coords by its .w component. This means that gl shaders have to
write to the .w component of texture coords. Direct3D shaders however
do not.
2007-12-07 14:54:22 +01:00
Stefan Dösinger
1cc7530332
wined3d: Ignore unused attributes when generating the swizzle array.
2007-12-06 13:48:59 +01:00
Stefan Dösinger
f4d2449244
wined3d: Test clearing regarding the scissor test and colorwrite.
2007-12-06 13:48:43 +01:00
Gerald Pfeifer
f4ec0a209b
wined3d: Fix error handling in fixed_get_input().
2007-12-05 13:47:10 +01:00
Gerald Pfeifer
81f32c7a38
wined3d: Fix error handling in transform_texture().
2007-12-04 18:41:45 +01:00
Stefan Dösinger
1ac109e5a0
wined3d: Use the proper drawable size when clearing.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
fce9abd095
wined3d: Clear honors the viewport.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
bd10d5261f
wined3d: Fixes for drawable handling in Clear.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
a4461e03f7
wined3d: Disable the scissor test when blitting.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
fcb49934d0
wined3d: Retrieve the height properly when setting the viewport.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
8689fe32c6
wined3d: Use the proper drawable size when setting the scissor rect.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
9bc6200ece
wined3d: Add a method for querying the gl drawable size of rendertarget.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
79e13d17be
wined3d: Add parentheses to a flag check.
2007-12-03 13:44:41 +01:00
Stefan Dösinger
7ba04e6132
wined3d: Detect the Intel GPU in macbooks.
2007-12-03 13:44:31 +01:00
Stefan Dösinger
8804a972d9
wined3d: Unify bpp to format conversion.
2007-12-03 13:44:18 +01:00
Stefan Dösinger
3cc253c557
wined3d: Enabling too many lights is silently ignored.
...
I'm resending this patch because my reply to Henri's concern came too late.
Henri noted that I am enabling lights that do not exist. Existing tests show
that if no light is assigned to the index, LightEnable creates a light with a
set of default parameters, so the tests should be fine.
From 9ee4c61805b50886f79e87d744b52f27b7b00b4e Mon Sep 17 00:00:00 2001
From: Stefan Doesinger <stefan@codeweavers.com>
Date: Thu, 29 Nov 2007 13:22:47 +0100
Subject: [PATCH] WineD3D: Enabling too many lights is silently ignored
This patch adds tests for all d3d versions that show that Windows
pretends that enabling more lights than supported succeeds. D3D_OK is
returned, and the light is reported as enabled.
What is not tested in this patch is the rendering output of this
situation, thus the FIXME is still written.
2007-12-03 13:44:07 +01:00
Stefan Dösinger
0f39b29da0
wined3d: mov to a0.x does a floor(), not a round to nearest.
2007-12-03 13:43:54 +01:00
Gerald Pfeifer
04cb111efc
wined3d: Fix handling of a special case in IWineD3DImpl_FillGLCaps() and adjust type of loop variable.
2007-12-03 13:17:54 +01:00
Stefan Dösinger
94cd8c276a
wined3d: Remove the X channel fixup in render target unlocking.
2007-11-30 14:01:34 +01:00
Marco Schuster
15e1c57141
wined3d: Added a card ID for a 8600 Mobile GT.
2007-11-29 15:31:54 +01:00
Stefan Dösinger
d09cbcec91
wined3d: Activate GL_ARB_texture_rectangle.
2007-11-29 13:36:55 +01:00
Stefan Dösinger
8964336b37
wined3d: Refuse to create a mipmapped conditional np2 texture.
2007-11-29 13:36:47 +01:00
Stefan Dösinger
3fd0916654
wined3d: Make the code aware of GL_ARB_texture_rectangle.
2007-11-29 13:36:37 +01:00
Stefan Dösinger
0cfa7f99e6
wined3d: Add GL_ARB_texture_rectangles to our opengl extensions.
2007-11-29 13:36:16 +01:00
Stefan Dösinger
7925ef35cd
wined3d: Avoid hardcoding GL_TEXTURE_2D.
2007-11-29 13:36:05 +01:00
Stefan Dösinger
4dbee07ff5
wined3d: Disable GL_TEXTURE_2D in the standard blit setup.
2007-11-29 13:35:53 +01:00
Alexandre Julliard
57d1548b51
wined3d: Add printf format checking to the shader_addline function and fix resulting warnings.
2007-11-28 13:40:29 +01:00
Stefan Dösinger
218de935d1
wined3d: Fix a sign mistake in the code creating the sorted attrib.
2007-11-28 13:40:29 +01:00
Stefan Dösinger
a0127f2e1f
wined3d: Allow using a different internal format for fbos.
...
OpenGL drivers do not support some low precision internal formats
like GL_RGB5 for fbo color targets. Direct3D application depend on them,
so provide a fallback format for render targets if the requested format
itself is not supported.
2007-11-28 13:40:29 +01:00
Stefan Dösinger
28170c1440
wined3d: Report some more geforce 7 cards as geforce 7.
2007-11-28 13:40:29 +01:00
Stefan Dösinger
3f32847494
wined3d: Do not try to disable unsupported texture units.
2007-11-28 13:40:28 +01:00
Stefan Dösinger
0353d031bc
wined3d: Add some missing checkGLcall calls.
2007-11-28 13:40:28 +01:00
Stefan Dösinger
c66a3be49b
wined3d: Work around nvidia beta driver bug.
2007-11-28 13:40:28 +01:00
Stefan Dösinger
b91c19af87
wined3d: Inform the texture about filtering changes.
...
The surface_blt_to_drawable function changes the filtering settings of
the texture object, but without informing the container about this
change. This patch makes sure that the basetexture knows about this and
reapplies the changed states to the settings chosen by the app.
2007-11-28 13:40:28 +01:00
Stefan Dösinger
f2c19fbc0b
wined3d: Correctly handle the y offset with offscreen rendering.
...
This fixes a regression introduced with the MAD patch.
2007-11-27 16:02:34 +01:00
Stefan Dösinger
46647e58fa
wined3d: Downgrade an ERR to a WARN.
2007-11-27 16:02:28 +01:00
Stefan Dösinger
ba5c61ba20
wined3d: Fog is applied after sRGB correction.
2007-11-27 16:01:44 +01:00
Stefan Dösinger
d2ac521cd3
wined3d: Make SRGB write correction working with 1.x shaders in arb.
2007-11-27 15:18:36 +01:00
Lauris Kaplinski
49ea085f11
wined3d: Fixed potential reference of freed backBuffer array in IWineD3DDeviceImpl_SetFrontBackBuffers.
2007-11-27 15:18:16 +01:00
Gerald Pfeifer
7670393508
wined3d: Rewrite condition in vshader_program_add_param() to actually distinguish between two cases.
2007-11-26 13:58:13 +01:00
Stefan Dösinger
afb06a1184
wined3d: Bool constants aren't vectors.
2007-11-21 12:18:09 +01:00
Stefan Dösinger
959212304d
wined3d: Track vertex declaration changes on vertex shaders.
...
If an attribute has type D3DDECLTYPE_D3DCOLOR, the red and blue channels
are swizzled in the shader. Since the attribute is stored in the vertex
declaration and not the vertex shader, it can change by setting a new
vertex declaration. If this happens, we have to recompile the shader
with the swizzling of that specific attribute turned on or off.
2007-11-21 12:18:02 +01:00
Stefan Dösinger
cfc5725760
wined3d: Move glsl shader destruction to the glsl shader backend.
2007-11-21 12:06:27 +01:00
Stefan Dösinger
af4edef5e1
wined3d: Move destroying the glsl vshader into a separate function.
2007-11-21 12:06:15 +01:00
Stefan Dösinger
bf03075b5e
wined3d: Do not cap fragment samplers to 8.
2007-11-21 12:06:04 +01:00
Stefan Dösinger
1fc1fe3c6e
wined3d: Use standard wine lists for the resource list.
2007-11-20 13:10:46 +01:00
Stefan Dösinger
7a97d4e2ec
wined3d: Free the shader function when freeing the shader.
2007-11-20 13:02:07 +01:00
Stefan Dösinger
bd97580683
wined3d: Move IUnknown functions to IWineD3DBaseShader.
2007-11-20 12:53:07 +01:00
Stefan Dösinger
c698052b31
wined3d: Destroy GL contexts before changing the screen resolution.
2007-11-16 13:23:15 +01:00
Stefan Dösinger
683c258ff4
wined3d: Remove a hack that slipped in.
2007-11-16 13:23:09 +01:00
Stefan Dösinger
f13bb40671
wined3d: Do not call PreLoad in surface_download_data.
2007-11-16 13:23:02 +01:00
Stefan Dösinger
73d992050f
wined3d: Fix ATI video memory detection typo.
2007-11-14 11:59:28 +01:00
Stefan Dösinger
26f7eae9cf
wined3d: Non power of two texture fixes.
2007-11-14 11:59:21 +01:00
Stefan Dösinger
0334c1760f
wined3d: Apply matrices when switching from transformed vertices to shaders.
2007-11-14 11:59:09 +01:00
Stefan Dösinger
58a761a88b
wined3d: Read the framebuffer size from the surface, not the window.
2007-11-14 11:58:47 +01:00
Stefan Dösinger
e4f8a2da2b
wined3d: Depth stencil fixes.
2007-11-14 11:58:36 +01:00
Stefan Dösinger
9f41a359b6
wined3d: Partially revert "Get rid of the conditionals in shader_glsl".
2007-11-14 11:58:22 +01:00
Stefan Dösinger
ed7e520926
wined3d: Get rid of a few Nvidiaisms in glsl shaders.
2007-11-14 11:51:38 +01:00
Stefan Dösinger
edb78187a9
wined3d: Hardcode local constants into the shader if possible.
2007-11-14 11:51:26 +01:00
Francois Gouget
41643327ee
wined3d: Add trailing '\n's to two shader_addline() calls.
2007-11-13 13:35:55 +01:00
Stefan Dösinger
894a705cc7
wined3d: Load GL_EXT_texture3D from gl 1.2 if the extension is not there.
2007-11-12 14:29:52 +01:00
Stefan Dösinger
c25a792902
wined3d: Mark extensions supported which are included in the gl core.
2007-11-12 14:29:45 +01:00
Stefan Dösinger
0587060a08
wined3d: Load GL functions from core if needed.
2007-11-12 14:28:21 +01:00
Stefan Dösinger
07bbf1899d
wined3d: Extend the gl extension function loading table with ext info.
2007-11-12 14:26:49 +01:00
Stefan Dösinger
1978ef9a75
wined3d: Load extension functions after finding the supported extensions.
2007-11-12 14:26:05 +01:00
Roderick Colenbrander
817b520c3d
wined3d: Prevent unneeded context switches.
2007-11-12 14:13:21 +01:00
Roderick Colenbrander
9b0d661e43
wined3d: Flush GL calls after drawing to the drawable. This fixes apps that use multiple GL contexts.
2007-11-12 14:13:14 +01:00
Francois Gouget
81a5701ca9
Assorted spelling fixes.
2007-11-09 13:07:12 +01:00
Stefan Dösinger
335bd99262
wined3d: Actually store the PS's vertex processing flag.
2007-11-09 12:41:12 +01:00
Roderick Colenbrander
33df806819
wined3d: Make sure the p8 shader is set to 0 after destroying the main render target.
...
This fixes a render target recreation problem in Age of Empires II.
2007-11-09 12:40:44 +01:00
Roderick Colenbrander
b238e39ec8
wined3d: Make sure SFLAG_LOCKED is set at the start of LockRect as various functions called from LockRect depend on it (e.g. LoadTexture if called from LoadLocation).
2007-11-09 12:40:26 +01:00
Stefan Dösinger
d050b4de9e
wined3d: Reinstall the projected texture disabling for generated coords.
2007-11-09 12:35:40 +01:00
Stefan Dösinger
9fb70b99db
wined3d: Load GLSL sampler uniforms at shader link time.
2007-11-09 12:32:11 +01:00
Stefan Dösinger
6fd4f8f699
wined3d: Store integer uniform locations.
2007-11-09 12:32:02 +01:00
Stefan Dösinger
bfec6c352d
wined3d: Store the special uniforms' locations in the linked program.
2007-11-09 12:31:54 +01:00
Stefan Dösinger
cd1812b473
wined3d: Hide NP2 textures support on R500 and earlier cards.
2007-11-09 12:31:44 +01:00
Stefan Dösinger
883915fc72
wined3d: Fix for MacOS'es incomplete glsl uniform truth.
2007-11-09 12:30:30 +01:00
Stefan Dösinger
f79ca75d08
wined3d: Implement a detection for the MacOS OpenGL implementation.
2007-11-09 12:29:55 +01:00
Stefan Dösinger
24ee003bfe
wined3d: Pass surface dirtification to the container.
2007-11-08 12:18:30 +01:00
Stefan Dösinger
98b291192f
wined3d: Get rid of the conditionals in shader_glsl_compare.
2007-11-08 12:17:54 +01:00
Stefan Dösinger
ed937c6ad4
wined3d: Take care for client storage and pbos.
2007-11-08 12:07:30 +01:00
Stefan Dösinger
5ffea6e591
wined3d: Honor the driver's min point size.
2007-11-08 12:05:19 +01:00
Stefan Dösinger
0183f3e305
wined3d: Avoid NOP additions.
2007-11-08 12:03:46 +01:00
Stefan Dösinger
c7c785861a
wined3d: Replace the position fixup mul-add-add with a MAD.
2007-11-08 12:03:39 +01:00
Stefan Dösinger
6209b36acb
wined3d: mov to a0.x does a floor(), not a round to nearest.
2007-11-08 11:55:31 +01:00
Stefan Dösinger
468309e055
wined3d: Get rid of the conditionals in the glsl lit implementation.
2007-11-08 11:55:08 +01:00
Stefan Dösinger
fb0dde7b27
wined3d: Relative addressing offsets are limited to [-64; 63] in arb.
2007-11-08 11:54:43 +01:00
Stefan Dösinger
aafcae4752
wined3d: Remove the conditional from texdepth.
2007-11-08 11:54:28 +01:00
Stefan Dösinger
36330f0542
wined3d: Fix the varying number comparison.
2007-11-08 11:54:13 +01:00
Stefan Dösinger
a34c1f948b
wined3d: Free the backbuffer array.
2007-11-07 12:08:46 +01:00
Stefan Dösinger
1b23dd1ba1
wined3d: Implement the varying map.
2007-11-07 12:08:32 +01:00
Stefan Dösinger
409103f801
wined3d: Install a varying map.
2007-11-07 12:08:24 +01:00
Stefan Dösinger
c2b6cbf014
wined3d: Refuse to create volumes and volume textures if not supported.
2007-11-07 12:07:29 +01:00
Stefan Dösinger
45ebea1f47
wined3d: Set the display mode before creating the context.
2007-11-07 12:07:20 +01:00
Stefan Dösinger
38147d28dd
wined3d: Set the main hwnd before setting up the screen.
2007-11-07 12:07:05 +01:00
Roderick Colenbrander
b3f7a5565a
wined3d: Make sure the format of the render target is P8 too.
2007-11-06 13:57:03 +01:00
Roderick Colenbrander
df892ff67d
wined3d: Rewrite the draw buffer selection code.
...
Before it was done in findContext, before selecting the new context
which is bad (it doesn't always work). The new code works and this
change also fixes some draw buffer regressions that happened during
the surface rewrite from the last couple of days.
2007-11-06 13:56:55 +01:00
Stefan Dösinger
3febe738ab
wined3d: Handle ps 3.0 varyings in a different way.
2007-11-06 13:34:57 +01:00
Stefan Dösinger
654571f2fc
wined3d: Add a max varyings member to the gl info structure.
2007-11-06 13:34:47 +01:00
Stefan Dösinger
0615c8e454
wined3d: Pixel Shader varying indexing.
2007-11-06 13:34:40 +01:00
Stefan Dösinger
9a9dfc76cb
wined3d: Make pixel shader input an array.
2007-11-06 13:34:32 +01:00
Stefan Dösinger
672ed031ce
wined3d: Only glBindAttribLocation used attributes.
2007-11-06 13:34:26 +01:00
Roderick Colenbrander
9f808670ac
wined3d: UnlockRect regression fix.
2007-11-05 14:11:52 +01:00
Roderick Colenbrander
d39abb7667
wined3d: Only use p8 conversion on render targets.
2007-11-05 14:11:44 +01:00
Roderick Colenbrander
1f34016401
wined3d: Fix LockedRect regression.
2007-11-05 13:24:37 +01:00
Roderick Colenbrander
c7683ee4a3
wined3d: Fix glsl detection bug.
2007-11-05 13:24:37 +01:00
Stefan Dösinger
d97e3fd086
wined3d: Move texture->sysmem specific code into its special function.
2007-11-05 13:24:36 +01:00
Stefan Dösinger
4678cd75be
wined3d: Move drawable->sysmem specific code to its special function.
2007-11-05 13:24:36 +01:00
Stefan Dösinger
2d11b509b4
wined3d: Move sysmem->drawable specific blit code out of LoadLocation.
2007-11-05 13:24:36 +01:00
Stefan Dösinger
1367e00750
wined3d: Remove a wrong return.
2007-11-05 13:24:36 +01:00
Stefan Dösinger
7c97b80193
wined3d: Remove an unneeded check.
2007-11-05 13:24:36 +01:00
Gerald Pfeifer
d59ca34794
wined3d: Fix type of loop variable in IWineD3DCubeTextureImpl_Destroy().
2007-11-02 12:36:48 +01:00
Stefan Dösinger
393ed4a070
wined3d: Make resource memory 32 byte aligned.
2007-11-01 12:38:45 +01:00
Stefan Dösinger
4d4fce7e33
wined3d: Disconnect allocatedMemory and Heap allocation.
2007-11-01 12:38:37 +01:00
Stefan Dösinger
f1f84a3615
wined3d: Allocate memory for default pool resources too.
2007-11-01 12:38:25 +01:00
Stefan Dösinger
a175e7b68e
wined3d: Move a part of LockRect to the base class.
2007-11-01 12:38:17 +01:00