Commit Graph

845 Commits

Author SHA1 Message Date
Ivan Gyurdiev d0032a1a2a wined3d: Move device pointer into the BaseShader class. 2006-09-27 19:44:09 +02:00
H. Verbeet 5abdd7a19f wined3d: Comparing BOOLs against FALSE is redundant. 2006-09-27 09:49:07 +02:00
H. Verbeet 1d839e42e9 wined3d: Add a comment to clarify the point of max_sampler_stages. 2006-09-27 09:48:30 +02:00
H. Verbeet 193f6bbd92 wined3d: Add support for native NPOT textures. 2006-09-27 09:48:11 +02:00
H. Verbeet fdefaed46d wined3d: Enable pixel shaders by default. 2006-09-27 09:47:00 +02:00
H. Verbeet ba8a6a3c0c wined3d: Fix the default values for wined3d_settings. 2006-09-27 09:46:37 +02:00
H. Verbeet 5bc0e91ddf wined3d: Don't overwrite the position y offset in ARB vertex programs. 2006-09-27 09:46:08 +02:00
H. Verbeet e4d5385d2c wined3d: Cleanup ActiveRender some more. 2006-09-27 09:45:50 +02:00
H. Verbeet cc821415ae wined3d: Render upside down when rendering offscreen, even if the backbuffer is used to render to. 2006-09-27 09:45:34 +02:00
H. Verbeet 4bc8125648 wined3d: Show the MESSAGE in device_find_fbconfigs() only once. 2006-09-27 09:45:25 +02:00
Stefan Dösinger 581c24ef4e wined3d: Use GL_EXTCALL.
That fixes compilation with gl headers that do not know about glUniform4fvARB.
2006-09-26 11:41:53 +02:00
Roderick Colenbrander 4b55964a26 wined3d: Add the missing gamma cap. 2006-09-26 11:39:29 +02:00
Stefan Dösinger 9cafbd6de0 wined3d: Surface data is 32 bit aligned. 2006-09-25 18:31:26 +02:00
Stefan Dösinger 96bce8d6d4 wined3d: Avoid wasting a uniform. 2006-09-25 18:24:19 +02:00
Stefan Dösinger 674af50174 wined3d: Stop fixing up a VBO if the declaration changes too often. 2006-09-25 18:22:36 +02:00
Stefan Dösinger 615db2b93d wined3d: Verify the VBO vertex declaration every draw. 2006-09-25 18:21:50 +02:00
Stefan Dösinger 0ce3c59477 wined3d: Fix a typo. 2006-09-25 18:21:04 +02:00
Roderick Colenbrander 7c86d91bb9 wined3d: glBlend* fixes. 2006-09-25 17:56:04 +02:00
Ivan Gyurdiev b421b60874 wined3d: Allow null streams in the vertex declaration. 2006-09-21 19:57:12 +02:00
Stefan Dösinger fd65b9b413 wined3d: Do not bind the 0 vbo when vbos are unsupported. 2006-09-21 11:14:52 +02:00
Christoph Frick 6192f77d25 wined3d: Clamp the light exponent at 128. 2006-09-20 20:03:46 +02:00
Alexandre Julliard 32ab895e46 makefiles: Generate the dependencies line to avoid some code duplication. 2006-09-14 09:38:16 +02:00
Paul Chitescu f2aee453f1 wined3d: Avoid crashing when renderer returns no name. 2006-09-13 11:37:06 +02:00
H. Verbeet 87fe835f5b wined3d: Cleanup the surface loading code a bit.
- Separate allocation and uploading of textures.
- Move common code for allocating, uploading and downloading textures
  into separate functions.
- Set the correct format and type for DXT textures.
2006-09-12 10:52:59 +02:00
Stefan Dösinger 6286c4e70d ddraw: Pass the fullscreen flag to wined3d. 2006-09-10 10:18:45 +02:00
Francois Gouget 06f9532dda Assorted spelling fixes. 2006-09-08 11:04:53 +02:00
Jan Zerebecki db7b684d30 wined3d: Simplify setting the stencil renderstate. 2006-09-07 16:11:21 +02:00
Ivan Gyurdiev 2e1cf4d948 wined3d: Add support for R32F and R16F texture formats. 2006-09-07 13:48:32 +02:00
Ivan Gyurdiev de54843d7b wined3d: Remove unused field: Surface.textureName. 2006-09-07 13:47:25 +02:00
Ivan Gyurdiev 448f918a39 wined3d: Clean up ActiveRender. 2006-09-07 13:47:13 +02:00
Paul Chitescu 4a581e6030 wined3d: Avoid crashing when ProcessVertices is called with NULL vertex declaration. 2006-09-07 13:46:45 +02:00
András Kovács d1d5f4b646 wined3d: Implement BlendFactor renderstate. 2006-09-07 13:44:02 +02:00
András Kovács c33e6245b5 wined3d: Remove unnecessary glBlendColor in TextureFactor renderstate. 2006-09-07 13:43:53 +02:00
Stefan Dösinger bc449ca31f wined3d: Apply the half pixel correction for shaders too. 2006-08-29 12:26:15 +02:00
Ivan Gyurdiev bda6d092a5 wined3d: Add support for A16B16G16R16F and A32B32G32R32F texture formats. 2006-08-28 11:46:20 +02:00
Stefan Dösinger 760456dc7f wined3d: Find the correct sampler type for < 2.0 pshaders. 2006-08-28 11:37:24 +02:00
Stefan Dösinger 252a0a76d4 wined3d: Properly initialize a variable. 2006-08-28 11:37:11 +02:00
Jan Zerebecki fd15b8d064 wined3d: Use a common function for all D3DCMPFUNC -> GLenum conversions. 2006-08-25 20:04:56 +02:00
Stefan Dösinger d4a88724dd wined3d: Load projected textures in fragment shaders. 2006-08-25 11:19:15 +02:00
Stefan Dösinger 0b7a96e92b wined3d: Compile pixel shaders in drawprim. 2006-08-25 11:19:08 +02:00
Stefan Dösinger e0b21688fa wined3d: Make the destination surface glDirty in UpdateSurface. 2006-08-23 16:54:18 +02:00
Stefan Dösinger d7f94bf7c9 wined3d: Correctly draw transformed and untransformed vertices in the same scene. 2006-08-22 12:53:53 +02:00
Chris Robinson a39e2b51cb wined3d: Don't pass bad values to glAlphaFunc and glDepthFunc. 2006-08-21 12:23:41 +02:00
Chris Robinson 4c88bb84b9 wined3d: Print real unhandled D3DCMPFUNC value. 2006-08-21 12:23:02 +02:00
Roderick Colenbrander de97fa7a3b wined3d: Better GPU detection. 2006-08-21 12:21:19 +02:00
H. Verbeet 09eb0c40a6 wined3d: Improve float constant loading a bit.
- Use a list to keep track of what constants are set.
- Move TRACEs and checkGLcall calls out of the main constant loading loop.
2006-08-21 12:17:42 +02:00
H. Verbeet 49f4c68e29 wined3d: Lookup GLSL float uniform locations only once per program. 2006-08-21 12:16:27 +02:00
H. Verbeet efa5f78598 wined3d: Free the float constant map arrays for all stateblocks. 2006-08-21 12:16:06 +02:00
H. Verbeet 2358fbbb03 wined3d: Fix indices for the float constant map.
Indices for the float constant map should be multiplied by 4 because
we're loading 4 component float vectors, not because the size of a
float is 4.
2006-08-21 12:15:12 +02:00
Christian Costa f50bb771c9 wined3d: Make sure b_info structure is properly allocated and released. 2006-08-17 11:20:33 +02:00
Stefan Dösinger ce5c4d38c4 wined3d: Silence WINED3DRS_DEBUGMONITORTOKEN. 2006-08-16 16:43:32 +02:00
Phil Costin ef1c8fd118 wined3d: Fix vertex shader corruption issue. 2006-08-14 11:45:33 +02:00
Roderick Colenbrander 1a3359884c wined3d: Fix opengl extension call. 2006-08-11 11:56:36 +02:00
Jan Zerebecki 387c982d5c wined3d: Fix spelling in a comment. 2006-08-11 11:55:27 +02:00
Roderick Colenbrander 2628627e79 wined3d: Surface pitch fix. 2006-08-10 10:54:59 +02:00
Roderick Colenbrander 31abc2febd wined3d: Draw buffers support. 2006-08-10 10:54:50 +02:00
Stefan Dösinger 30ef7f0b08 wined3d: Minor cursor fixes. 2006-08-10 10:54:37 +02:00
Roderick Colenbrander c2b6cc9dc4 wined3d: Fix GLSL regression / draw buffers support. 2006-08-09 20:35:59 +02:00
Stefan Dösinger bfbcfd2234 wined3d: Watch out for negative results when validating the shader constant range. 2006-08-09 20:35:02 +02:00
Roderick Colenbrander c856432fab wined3d: Volume texture addressing caps. 2006-08-08 19:37:30 +02:00
Roderick Colenbrander eba1f90ef6 wined3d: Shader declaration cap fixes. 2006-08-08 19:37:23 +02:00
Roderick Colenbrander 194cdfa4b0 wined3d: Shader cap fixes. 2006-08-08 19:35:24 +02:00
Jan Zerebecki ccf0d11352 wined3d: Stub out remaining renderstates. 2006-08-08 11:21:17 +02:00
Jan Zerebecki f5d9b221cf wined3d: Correct check for GL ext. support in MULTISAMPLEANTIALIAS. 2006-08-08 11:21:10 +02:00
Jan Zerebecki f02af24039 wined3d: Add missing newline at the end of traces. 2006-08-08 11:20:15 +02:00
Jan Zerebecki 4d6cfb6351 wined3d: Registry setting for the amount of simulated texture memory.
Set VideoMemorySize under HKCU\Software\Wine\Direct3D to amount in MB
as string.
2006-08-08 11:20:05 +02:00
Roderick Colenbrander 91998b4d99 wined3d: Textureops caps fix. 2006-08-08 11:15:07 +02:00
H. Verbeet 3d2ae69102 wined3d: Allow async occlusion queries. 2006-08-07 19:59:49 +02:00
H. Verbeet 008c23d06a wined3d: Improve a few query traces.
The query type is useful to have in query TRACEs.
IWineD3DQueryImpl_GetDataSize isn't really a stub.
2006-08-07 19:42:54 +02:00
H. Verbeet 44c1747f71 wined3d: Check Occlusion query GL calls. 2006-08-07 19:42:39 +02:00
H. Verbeet 02a8f74490 wined3d: Add a couple of traces to the vertexdeclaration creation code. 2006-08-07 19:42:31 +02:00
Francois Gouget ce9b4baad8 Assorted spelling fixes. 2006-08-07 13:52:55 +02:00
Roderick Colenbrander 930a9a1d02 wined3d: texture caps fixes. 2006-08-07 13:52:38 +02:00
Roderick Colenbrander bd6f0b23d6 wined3d: General constant caps fix. 2006-08-07 13:52:03 +02:00
H. Verbeet 219ca7c2a0 wined3d: Fix D3DCOLOR swizzling in shaders. 2006-08-07 13:12:21 +02:00
H. Verbeet ef87a40c72 wined3d: Delay vertex shader compilation until the shader is first used. 2006-08-07 13:12:10 +02:00
Roderick Colenbrander 3d9e96f3bc wined3d: Volume textures fix. 2006-08-05 11:26:25 +02:00
Roderick Colenbrander 6ded5542b2 wined3d: Raster caps fix. 2006-08-05 11:26:06 +02:00
Roderick Colenbrander 6fedd6c041 wined3d: Primitive misc caps fix. 2006-08-05 11:25:51 +02:00
Roderick Colenbrander 9925b0561e wined3d: Basetexture anisotropic fix. 2006-08-04 20:48:08 +02:00
Roderick Colenbrander 95b047c2fe wined3d: Fix a number of badly reported caps. 2006-08-04 20:47:50 +02:00
Roderick Colenbrander a7c2ab3e90 wined3d: Surface pitch fix. 2006-08-04 11:59:00 +02:00
H. Verbeet ea905eab09 wined3d: Disable vertex arrays after we're done drawing from them.
After drawing from a vertex array we should disable them, to prevent
the next draw calls from potentially reading past their ends. This
also moves the disabling of vertex attrib arrays (for shaders) into
its own function.
2006-08-04 11:58:43 +02:00
Roderick Colenbrander c0c525d458 wined3d: Paletted texture support. 2006-08-03 18:20:37 +02:00
Chris Robinson 13557abb7f wined3d: Fix potential NULL dereference in IWineD3DSurfaceImpl_LockRect. 2006-07-31 17:20:15 +02:00
Chris Robinson 92bc96a96b wined3d: Avoid NULL dereference. 2006-07-31 17:20:05 +02:00
H. Verbeet d5238cfb38 wined3d: Split the GLSL check in a check for GLSL vertex shaders and one for GLSL fragment shaders. 2006-07-31 10:53:05 +02:00
H. Verbeet c6c6cf1f51 wined3d: Improve IWineD3DDeviceImpl_CreateTexture trace. 2006-07-31 10:53:00 +02:00
H. Verbeet 56395ca5f3 wined3d: Use GL_LIMITS(samplers) instead of GL_LIMITS(sampler_stages) in IWineD3DSurfaceImpl_UnlockRect. 2006-07-31 10:52:55 +02:00
Jason Green e5fc18a505 wined3d: Skip processing of D3DSIO_PHASE instruction. 2006-07-29 11:50:10 +02:00
Jason Green 2e52b36bb3 wined3d: Declare a 1D sampler for TEXDP3TEX (GLSL). 2006-07-29 11:50:02 +02:00
Jason Green d353ab7879 wined3d: Start checking for D3DUSAGE_QUERY_* items, improve traces. 2006-07-29 11:49:51 +02:00
Roderick Colenbrander dc743d82ff wined3d: Optimize d3dfmt_convert_surface. 2006-07-29 11:49:03 +02:00
Jason Green 72bfe131d1 wined3d: More shader fixes / new instructions.
- Replace gl_FragColor with gl_FragData[0] for GLSL pixel shader output.
- Subtract 1 more constant from total GLSL allowed float constants to
  accommodate the PROJECTION matrix row that we reference.
2006-07-28 14:01:16 +02:00
Roderick Colenbrander 6d16eff9a6 wined3d: Render target texturing. 2006-07-28 14:01:07 +02:00
Stefan Dösinger 65e5ed60ae wined3d: Do not use the IWineD3DSurface for the cursor. 2006-07-28 12:31:57 +02:00
Stefan Dösinger 0fbc1fc0df wined3d: Avoid a false ERR. 2006-07-28 12:28:19 +02:00
Jason Green 0312a30676 wined3d: Fix minor typo from shader patch. 2006-07-27 14:40:01 +02:00
Jason Green 46c4b88ba5 wined3d: Fix some upside-down rendering issues for shaders. 2006-07-27 12:03:25 +02:00
Roderick Colenbrander 3127d6401a wined3d: BltFast/BltOverride color keying. 2006-07-27 12:02:16 +02:00
Stefan Dösinger 3588067b90 wined3d: Blacklist WINED3DFMT_R8G8B8. 2006-07-27 11:57:45 +02:00
Kovács András de051649c3 wined3d: Fix CopyRects if pDestPointsArray is NULL. 2006-07-26 15:40:39 +02:00
Stefan Dösinger 3b10a021db wined3d: More efficient color keying dirtifying.
Instead of blindly dirtifying the surface LoadTexture keeps track of
the color key that was used when creating the opengl texture and
reloads the surface if the color key has changed.
2006-07-26 15:21:00 +02:00
Stefan Dösinger 06106e2810 ddraw: Support using an application-provided surface pointer. 2006-07-26 15:17:59 +02:00
Stefan Dösinger a5142837c6 wined3d: Enable all bump mapping formats. 2006-07-26 10:24:37 +02:00
Jason Green f6b88b93ad wined3d: Fix crash caused by bad TRACE. 2006-07-26 10:24:27 +02:00
Michael Stefaniuc 5ca9f82661 wined3d: Remove superfluous breaks. 2006-07-26 10:24:15 +02:00
Jason Green 7e90aba97b wined3d: Implement more GLSL instructions.
Implement D3DSIO_TEXREG2AR, TEXREG2GB, TEXREG2RGB, TEXM3X3TEX, TEXM3X3SPEC.
2006-07-25 11:22:55 +02:00
H. Verbeet 536638918d wined3d: Add real occlusion query support. 2006-07-25 11:22:00 +02:00
H. Verbeet 8c981140a2 wined3d: Add traces to IWineD3DVertexShaderImpl_SetFunction & IWineD3DPixelShaderImpl_SetFunction. 2006-07-25 11:21:51 +02:00
H. Verbeet 2d6e661fbe wined3d: D3d8 shaders can have a NULL pFunction, but a valid vertex declaration. 2006-07-25 11:21:46 +02:00
Jason Green ac8f2c033c wined3d: Improve traces for D3DTRANSFORMSTATETYPE.
Added debug function for WINED3DTRANSFORMSTATETYPE and changed all
references from D3DTS_* to WINED3DTS_*.
2006-07-24 19:55:27 +02:00
Stefan Dösinger a98ccb543d wined3d: Draw the cursor. 2006-07-24 13:27:15 +02:00
Stefan Dösinger 14c2aa0ed6 wined3d: Use the ddraw blitting code for IWineD3DDevice::ColorFill. 2006-07-24 13:27:15 +02:00
Jason Green 75950b5bf8 wined3d: Replace memset/memcpy routines on stateblock (fixes dynamic shader constants regression). 2006-07-24 12:57:34 +02:00
Stefan Dösinger 127613bc6f wined3d: Whitelist pixelformats instead of blacklisting. 2006-07-24 12:57:34 +02:00
Stefan Dösinger a64febd3d1 wined3d: Reactivate the X bits fixup. 2006-07-24 12:57:33 +02:00
Jason Green 3c03ae2f84 wined3d: Minor trace corrections in Set___ShaderConstants(). 2006-07-21 20:22:19 +02:00
Stefan Dösinger 9423fd2d9f wined3d: Do not try to create a vbo more than once. 2006-07-21 20:21:00 +02:00
Stefan Dösinger d637aa3581 wined3d: Move vertex fixups into their own function. 2006-07-21 20:20:54 +02:00
Ivan Gyurdiev 99f67c676b wined3d: Respect EnableAutoDepthStencil parameter. 2006-07-21 10:54:43 +02:00
Ivan Gyurdiev 99272f0dee wined3d: Correct initial render states. 2006-07-21 10:54:12 +02:00
Ivan Gyurdiev 65109002ae wined3d: Do not return WINED3DERR_INVALIDCALL for Phong shading. 2006-07-21 10:53:54 +02:00
Ivan Gyurdiev 0c6c9f04a7 wined3d: Restore recording mode later in ActiveRender(). 2006-07-21 10:53:34 +02:00
Ivan Gyurdiev b77b72c91b wined3d: Read shader constants from correct stateblock. 2006-07-21 10:53:01 +02:00
H. Verbeet a8f2c1075a wined3d: Compilation fixes. 2006-07-20 12:11:06 +02:00
Jason Green 718716b77a wined3d: Make the number of floating point shader constants dynamic. 2006-07-19 09:54:30 +02:00
Stefan Dösinger bffe5a6922 ddraw/wined3d: Remove texture format enumeration functions. 2006-07-18 11:25:22 +02:00
Stefan Dösinger 9740555d83 wined3d: Duplicate flips in software if the local copy is up to date. 2006-07-18 11:24:51 +02:00
Stefan Dösinger 9a9a14d4f5 wined3d: Disable the fog before writing the back buffer data. 2006-07-18 11:24:08 +02:00
Stefan Dösinger 739d565c59 wined3d: Add a setting for the render target locking method. 2006-07-18 11:22:51 +02:00
Stefan Dösinger f8ca32b3fb wined3d: Break the glDrawPixels call out of UnlockRect. 2006-07-18 11:22:09 +02:00
Christian Costa 2dc451e181 wined3d: Readd missing copyright to shaders files. 2006-07-18 11:10:34 +02:00
Christian Costa 95ac88cc0b wined3d: Fix typo in ARB pixel shader. 2006-07-18 11:10:23 +02:00
H. Verbeet 593541a50c wined3d: Increment texture_idx when continuing as well. 2006-07-18 11:09:46 +02:00
Jason Green 6a97f2202e wined3d: Fix for vertex shaders. 2006-07-17 15:05:38 +02:00
Stefan Dösinger ecbb53a723 wined3d: Break out the frame buffer readback of LockRect, implement palettized readback. 2006-07-17 15:05:38 +02:00
Stefan Dösinger 5702a310e9 wined3d: Allocate 4 extra bytes in the dib section. 2006-07-17 13:51:12 +02:00
Christian Costa 494841d3e5 wined3d: Only copy memory corresponding to the dib section instead of the power of 2 surface. 2006-07-14 13:32:40 +02:00
Ivan Gyurdiev 436d700c2e wined3d: Fix cmp instruction for GLSL.
The current GLSL cmp instruction is incorrect, because:
- it ignores destination write mask
- it ignores source swizzle
- it ignores other source modifiers.
- it works incorrectly for src0 = 0
2006-07-14 13:32:38 +02:00
Ivan Gyurdiev 07eb6531a3 wined3d: Fix light state bugs. 2006-07-14 12:39:13 +02:00
H. Verbeet 0924f969d1 wined3d: Texture stages that reference NULL textures should just pass
through the result of the previous stage.
2006-07-12 13:21:04 +02:00
H. Verbeet 7090259545 wined3d: Fix specular color handling for register combiners.
By default the FinalCombiner is setup to add the specular color to the
final result of the combiner operations. However, it should only do
this when the WINED3DRS_SPECULARENABLE renderstate is enabled.
2006-07-12 13:20:41 +02:00
Stefan Dösinger 0dd13f2cb7 wined3d: Check the color data type too when deciding whether to convert data. 2006-07-12 13:20:25 +02:00
Ivan Gyurdiev ed9848930b wined3d: Improve GetAdapterMonitor stub. 2006-07-11 17:14:46 +02:00
Ivan Gyurdiev 33293df143 wined3d: More flow control instructions.
- Implement call, callnz, label, and ret
- Implement support for NOT modifier
2006-07-11 17:14:24 +02:00
Ivan Gyurdiev 6ede56495a wined3d: More flow control instructions
- Implement if, else, endif, rep, endrep, break
- Implement ifc, breakc, using undocumented comparison bits in the instruction token
- Fix bug in main loop processing of codes with no dst token
- Fix bug in GLSL output modifier processing of codes with no dst token
- Fix bug in loop implementation (src1 contains the integer data, src0 is aL)
- Add versioning for all the instructions above, and remove
  GLSL_REQUIRED thing, which is useless and should be removed from all
  opcodes in general.
2006-07-11 17:13:05 +02:00
Ivan Gyurdiev 345dd49eda wined3d: Fix off-by-one constants bug. 2006-07-11 17:12:24 +02:00
Ivan Gyurdiev 8068fc3b9c wined3d: Clamp texcoord output between 0 and 1. 2006-07-11 17:12:04 +02:00
Ivan Gyurdiev e9de563e41 wined3d: Place immediate constants in the same array as global constants.
- move DEF, DEFI, DEFB handling into the register counting pass
- keep track of defined constants as a linked list (because there's a
  few of them)
- apply immediate constants after global constants in the constant
  loading function
- both types of constants now get loaded with array notation in the
  shader (into the same array)
2006-07-11 17:11:30 +02:00