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
Stefan Dösinger
2a09716c75
wined3d: Reenable render target unlocking via textures.
2007-11-01 12:38:02 +01:00
Stefan Dösinger
64929cfb33
wined3d: Move memory allocation into a separate function.
2007-11-01 12:37:51 +01:00
Stefan Dösinger
948292dbc3
wined3d: Move texture -> drawable blits to LoadLocation.
2007-11-01 12:37:43 +01:00
Roderick Colenbrander
59eba5cb41
wined3d: Default to GLSL. This is safe because we now have proper ps2.0/vs2.0 detection.
2007-10-29 13:04:58 +01:00
Roderick Colenbrander
efc18d79af
wined3d: Detect vertex shader 2.0 support using a pixel shader 2.0 limit.
...
Without this vertex shader 3.0 is reported on non-Nvidia cards that
only support vertex shader 2.0. Reporting 3.0 would result in slow
software rendering as it is much more advanced than 2.0.
2007-10-29 13:04:49 +01:00
Roderick Colenbrander
6760ce83a4
wined3d: Fix the amount of texture memory in the debug traces.
2007-10-29 13:04:30 +01:00
Roderick Colenbrander
ac53711902
wined3d: Print the correct pixel/vertex shader version in a debug trace.
2007-10-29 13:04:11 +01:00
Roderick Colenbrander
50ed6f36d2
wined3d: Add proper PS2.0 detection for older cards with GLSL support.
2007-10-29 13:04:04 +01:00
Roderick Colenbrander
465962dae6
wined3d: Use native shader limits instead of the maximum the driver can handle in software.
...
This should prevent software fallbacks and and second it will allow for ps2.0/ps3.0 detection.
2007-10-29 13:03:54 +01:00
Stefan Dösinger
58ed14eb52
wined3d: Honor pbos when downloading a compressed texture.
2007-10-29 12:04:18 +01:00
Stefan Dösinger
f6637cae98
wined3d: Move texture loading to LoadLocation.
2007-10-29 12:04:11 +01:00
Stefan Dösinger
2a85970631
wined3d: Move sysmem->drawable copying to LoadLocation.
2007-10-29 12:04:01 +01:00
Stefan Dösinger
dc1848bd22
wined3d: Add a comment explaining what LoadLocation does.
2007-10-29 12:03:51 +01:00
Stefan Dösinger
34d6b38397
wined3d: Move drawable->sysmem reading to UpdateLocation.
2007-10-29 12:03:44 +01:00
Stefan Dösinger
20f1f50b2a
wined3d: Move regular surface / texture downloading to LoadLocation.
2007-10-26 15:18:15 +02:00
Stefan Dösinger
123744910f
wined3d: Add a method for surface location updates.
2007-10-26 15:17:30 +02:00
Stefan Dösinger
dcff7dc213
wined3d: Begin centralizing surface location management.
2007-10-26 15:17:19 +02:00
Stefan Dösinger
ee32ac575b
wined3d: A point size fix.
2007-10-26 15:17:01 +02:00
Francois Gouget
c4b1195c0c
Assorted spelling fixes.
2007-10-23 18:20:27 +02:00
Stefan Dösinger
8f3accc718
wined3d: Care for the inverted y coords in dsy.
2007-10-22 15:59:04 +02:00
Stefan Dösinger
9694cb2df3
wined3d: Ignore texture transforms when a shader is used, not set.
2007-10-22 15:59:00 +02:00
Stefan Dösinger
0add13759c
wined3d: Create query private data when faking the query.
2007-10-22 15:58:52 +02:00
Roderick Colenbrander
e1a3e9a6ef
wined3d: Rebind the 2D texture corresponding to the p8 surface. In some programs this caused nothing to show up.
2007-10-22 12:37:44 +02:00
Allan Tong
c18fa4df68
wined3d: Fix comment typos in SetMultithreaded.
2007-10-19 12:26:59 +02:00
Allan Tong
ac6f2009f2
wined3d: Fix resource cleanup if CreateCubeTexture fails.
2007-10-19 12:26:56 +02:00
Chris Robinson
eaaa2a82f2
wined3d: Don't report filtering for WINED3DFMT_R32F.
2007-10-15 17:50:47 +02:00
Francois Gouget
7785c93b02
wined3d: Fix the d3dfmt_p8_init_palette() prototype.
2007-10-15 14:04:54 +02:00
Roderick Colenbrander
b4678b7b10
wined3d: Optimize P8 fragment shader.
2007-10-15 11:10:26 +02:00
Roderick Colenbrander
134aa67ec9
wined3d: Use a fragment shader to do P8 palette conversion in hardware.
2007-10-12 11:07:23 +02:00
Roderick Colenbrander
5749dd4051
wined3d: Fix inverse palette lookup for P8 surfaces.
...
The previous method didn't take into account duplicate entries for the same color.
2007-10-12 11:07:07 +02:00
Francois Gouget
fda899a778
Assorted spelling fixes.
2007-10-11 19:52:49 +02:00
Chris Robinson
fc96587b3d
wined3d: Set D3DCAPS2_CANAUTOGENMIPMAP flag when supported.
2007-10-11 16:24:28 +02:00
Roderick Colenbrander
8e64d870b1
wined3d: Merge p8 palette initialization code.
2007-10-10 11:59:51 +02:00
Stefan Dösinger
aec86b4ef9
wined3d: Silently ignore setting the 0 texture on gdi surfaces.
2007-10-10 11:59:18 +02:00
Stefan Dösinger
8fc4e3cec7
wined3d: Clear up in Init3D if something fails.
2007-10-10 11:58:23 +02:00
Andrew Talbot
057a7eba55
wined3d: Fix a memory leak.
2007-10-10 11:57:01 +02:00
Chris Robinson
c4cc337d7a
wined3d: Prevent some console spamming.
2007-10-09 12:34:55 +02:00
Roderick Colenbrander
c2bf124a90
wined3d: Use EXT-versions of glBlend*.
2007-10-09 12:34:49 +02:00
Roderick Colenbrander
3978535ced
wined3d: Remove an unused ChoosePixelFormat line.
2007-10-09 11:39:50 +02:00
Roderick Colenbrander
b6951822c1
wined3d: Make sure we receive a hw accelerated pixel format with OpenGL support.
2007-10-09 11:39:40 +02:00
Stefan Dösinger
3f16f02940
wined3d: Nested loop support.
2007-10-04 12:03:59 +02:00
Stefan Dösinger
3c6d97278f
wined3d: Implement the vFace register.
2007-10-04 12:03:51 +02:00
Roderick Colenbrander
829cafc651
wined3d: Render to the correct hwnd/hdc.
2007-10-04 11:38:49 +02:00
Stefan Dösinger
3d3369a77c
wined3d: d3d ignores the sign of the input value in the log instruction.
2007-10-03 11:03:12 +02:00
Stefan Dösinger
6dc11616d5
wined3d: Take care against overwriting a source register in cmp.
2007-10-03 11:02:56 +02:00
Stefan Dösinger
9c6cdda147
wined3d: Reverse the position fixup if the pshader is reading vpos.
2007-10-03 11:02:48 +02:00
Stefan Dösinger
c5eb531249
wined3d: Bem is an instruction and uses registers.
2007-10-01 13:00:25 +02:00
Stefan Dösinger
822030e329
wined3d: Enable the mNxN implementation for pixel shaders.
2007-10-01 13:00:19 +02:00
Stefan Dösinger
d4019780b5
wined3d: Implement texbeml in arb shaders.
2007-10-01 13:00:12 +02:00
Stefan Dösinger
1c18112339
wined3d: Add proper input register handling to texreg2ar/gb.
2007-10-01 13:00:05 +02:00
Stefan Dösinger
6644704039
wined3d: Add texreg2rgb support to arb shaders.
2007-10-01 12:59:59 +02:00
Roderick Colenbrander
9ad3807c15
wined3d: Only call ENTER_GL for the parts in ActivateContext that actually need it.
2007-10-01 12:35:47 +02:00
Roderick Colenbrander
001f380ac9
wined3d: CreateContext should not be called between ENTER_GL/LEAVE_GL.
2007-10-01 12:35:36 +02:00
Roderick Colenbrander
46f33f4f38
wined3d: CreateFakeGLContxt/ReleaseFakeGLContext doesn't need ENTER_GL/LEAVE_GL and they are making GDI calls.
...
The removal of ENTER_GL from the fake context code, requires the
addition of ENTER_GL/LEAVE_GL to FillGLCaps which was protected by the
fake context code before.
2007-10-01 12:35:01 +02:00
Francois Gouget
b2bc712323
Assorted spelling fixes.
2007-09-27 20:12:53 +02:00
Stefan Dösinger
20872abc9c
wined3d: Add sincos support to arb shaders.
2007-09-27 11:57:41 +02:00
Stefan Dösinger
daf2290ea4
wined3d: Implement the nrm instruction in arb.
2007-09-27 11:57:29 +02:00
Stefan Dösinger
1407bdb2cf
wined3d: Add dp2add support to arb shaders.
2007-09-27 11:57:20 +02:00
Stefan Dösinger
09fa208d7a
wined3d: Add crs and pow instruction support.
2007-09-27 11:57:12 +02:00
Stefan Dösinger
c29112b60a
wined3d: Handle modifiers in cmp.
2007-09-27 11:57:05 +02:00
Stefan Dösinger
84fc6ca390
wined3d: Add modifier handling to cnd in arb.
2007-09-25 11:21:05 +02:00
Stefan Dösinger
c2c7b1df91
wined3d: Implement WINED3DSI_TEXLD_BIAS in arb.
2007-09-25 11:20:58 +02:00
Stefan Dösinger
9531a10897
wined3d: Add support for some unimplemented instructions to arb shaders.
2007-09-25 11:20:51 +02:00
Stefan Dösinger
de534a41a4
wined3d: Improve projected texture handling in arb.
2007-09-25 11:20:42 +02:00
Stefan Dösinger
bf9cc30aac
wined3d: Put V8U8 back into the UNKNOWN format group.
2007-09-25 11:20:33 +02:00
Roderick Colenbrander
243ac3ed75
wined3d: Move video memory tracking to the adapter.
2007-09-24 13:50:43 +02:00
Stefan Dösinger
316095c7a3
wined3d: A0 needs the .x swizzle.
2007-09-24 13:30:42 +02:00
Stefan Dösinger
6313e0ffff
wined3d: SRGB write correction emulation.
2007-09-24 13:30:30 +02:00
Stefan Dösinger
2b2c9199e8
wined3d: Unify pixel format correction.
2007-09-24 13:30:21 +02:00
Stefan Dösinger
1c4a15d2cd
wined3d: Recompile glsl pixelshaders if the sampler format changes.
2007-09-24 13:30:08 +02:00
Stefan Dösinger
10f25e0104
wined3d: Add signed format conversion for glsl.
2007-09-24 13:29:54 +02:00
Roderick Colenbrander
479078a5b3
wined3d: The amount of video memory is set in FillGLCaps unless overridden using a registry option.
2007-09-24 11:59:24 +02:00