Commit Graph

2522 Commits

Author SHA1 Message Date
Stefan Dösinger ffbc96b43c wined3d: Advertize postpixelshader blending for surfaces. 2008-04-04 11:04:58 +02:00
Stefan Dösinger ddf52dda15 wined3d: Deactivate GL_FRAGMENT_SHADER_ATI before deactivating a context.
Mesa has a bug that causes a crash due to a NULL pointer dereference
with the R200 driver when making a context current that has
GL_FRAGMENT_SHADER_ATI enabled. This patch works around this bug by
making sure that GL_FRAGMENT_SHADER_ATI is disabled before deactivating
a context, and reactivates it afterwards. The context manager keeps
GL_ATI_FRAGMENT_SHADER generally enabled, except if the context is in 2D
blit mode.
2008-04-03 12:02:24 +02:00
Stefan Dösinger 20e63160df wined3d: Initialize some ARB shader output parameters. 2008-04-03 12:01:32 +02:00
Alexander Dorofeyev d6ba069d9e wined3d: Improve detection of device palette change. 2008-04-03 11:31:57 +02:00
Alexander Dorofeyev 1c89795438 wined3d: Support index in alpha in BltOverride colorfill codepath.
Fixes a failure in ddraw p8_primary_test when running with opengl ddraw renderer.
2008-04-03 11:31:43 +02:00
Alexander Dorofeyev 8ec63a9cf7 wined3d: Remove ENTER_GL/LEAVE_GL in IWineD3DCubeTextureImpl_PreLoad. 2008-04-03 11:31:27 +02:00
Alexander Dorofeyev 9b04822170 wined3d: Remove ENTER_GL/LEAVE_GL in IWineD3DTextureImpl_PreLoad. 2008-04-03 11:31:19 +02:00
Alexander Dorofeyev b54553a253 wined3d: Avoid calling LoadTexture with gl lock held in IWineD3DSurfaceImpl_PreLoad.
Needed to prevent ActivateContext being called while holding gl lock.
2008-04-03 11:31:09 +02:00
Alexander Dorofeyev 1e6f02ed2b wined3d: Add ENTER_GL/LEAVE_GL in IWineD3DSurfaceImpl_Release. 2008-04-03 11:30:55 +02:00
Alexander Dorofeyev 088c34ec1c wined3d: Add ENTER_GL/LEAVE_GL in surface_allocate_surface. 2008-04-03 11:30:47 +02:00
Alexander Dorofeyev d5b400307b wined3d: Add ENTER_GL/LEAVE_GL in surface_bind_and_dirtify. 2008-04-03 11:30:38 +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 0f1c2370b1 wined3d: Do not report pixel shaders if not supported. 2008-04-02 20:07:30 +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 8f9a14e312 wined3d: Prepare the atifs shader generator for temp register support. 2008-04-02 20:07:03 +02:00
Stefan Dösinger ab86a4e963 wined3d: Catch D3DUSAGE_AUTOGENMIPMAP and D3DUSAGE_RENDERTARGET combos. 2008-04-01 20:31:59 +02:00
Stefan Dösinger a29a229324 wined3d: Refuse 3D initialization without opengl. 2008-04-01 20:31:44 +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
Stefan Dösinger 9e831a8733 wined3d: Create a fake non-gl adapter. 2008-04-01 20:31:30 +02:00
Roderick Colenbrander 4120188f99 wined3d: Request a pixel format with alpha support in case of P8 render targets. 2008-03-31 13:01:24 +02:00
Roderick Colenbrander 76014205de wined3d: Fix a postpixelshader_blending bug. 2008-03-31 12:14:33 +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 69a40127c6 wined3d: Add D3DUSAGE_QUERY_PIXELSHADER_BLENDING to CheckDeviceFormat. 2008-03-28 15:50:36 +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
Stefan Dösinger 1fdc0ee811 wined3d: Remove some debug TRACE stuff. 2008-03-28 14:51:25 +01:00
Stefan Dösinger f63ce1c489 wined3d: Inherit from the proper state table in atifs. 2008-03-28 14:49:38 +01:00
Stefan Dösinger f761b90801 wined3d: Free heapMemory, not allocatedMemory when adjusting the surface. 2008-03-27 11:19:05 +01:00
Alexander Dorofeyev 165970992a wined3d: Make device palettes dynamically allocated. 2008-03-27 11:09:06 +01:00
Stefan Dösinger 39e2cbc5d5 wined3d: Enable D3DFMT_V8U8 with GL_ATI_fragment_shader. 2008-03-25 19:50:55 +01:00
Stefan Dösinger 9b79bc5e31 wined3d: Implement env bump mapping in the atifs ffp replacement. 2008-03-25 19:50:43 +01:00
Stefan Dösinger 4640be8dc8 wined3d: Fragment processing using GL_ATI_fragment_shader.
This adds code for handling fixed function fragment processing with the
GL_ATI_fragment_shader extension. This is a sort-of programmable
interface for fragment processing at the level of shader model 1.4 in
d3d. This code is of use on r200, r250 and r280 cards(radeon 8500 to
9200) which do not support GL_ARB_fragment_program, but support pixel
shader 1.4 on Windows. This code is somewhat a counterpart to the
existing fragment processing code using GL_NV_register_combiners and
GL_NV_texture_shader.
2008-03-25 19:50:32 +01:00
Stefan Dösinger a440051016 wined3d: Add a shader DLL init callback. 2008-03-25 19:49:17 +01:00
Stefan Dösinger 18e16f4e66 wined3d: Add GL_ATI_fragment_shader. 2008-03-25 19:48:35 +01:00
Stefan Dösinger 28fdebe404 wined3d: Alloc / free shader private data and blt stuff in Init3D/Uninit3D. 2008-03-25 19:48:24 +01:00
Stefan Dösinger ac57b4e2f5 wined3d: Free shader private data on reset.
Since the shader backend implementations might track opengl resources in
their private data inform them about reset calls. For example, the atifs
backend keeps track of the replacement shaders, which are lost during an
opengl context recreation.
2008-03-25 19:48:14 +01:00
Stefan Dösinger ee7e149998 wined3d: Move shader caps setting into the arb and glsl shader backends. 2008-03-25 19:39:23 +01:00
Stefan Dösinger 5ab5202e0f wined3d: Set shader specific caps in the shader backend.
The whole control structures in directx.c get terribly confusing with
the various codepaths for texturing and different shader
implementations. It is also hard to reflect the shader model
decisions this way too. This patch moves the shader specific parts of
the caps code into the shader backend where we can set our caps
dependent of the shader model decisions and without complex caps flag
checks.
2008-03-25 19:39:11 +01:00
Stefan Dösinger 8869c0f147 d3d: De-pointerize the WINED3DCAPS structure. 2008-03-25 19:36:38 +01:00
Stefan Dösinger 6d5f562dcf wined3d: Move the shader backend selection into a separate function. 2008-03-25 19:36:13 +01:00
Stefan Dösinger a66fb40d83 wined3d: Move shader generation into the shader backend.
Generating the shader ID and parts of the shader prolog and epilog was
done by the common vertexshader.c / pixelshader.c, which is ugly.

This patch doesn't get rid of all the uglyness, somewhen we'll still
have to sort out the relationship of [arb|glsl]_generate_shader and
[arb|glsl]_generate_declarations.
2008-03-25 19:35:58 +01:00
Stefan Dösinger 84258723f9 wined3d: Make the state table a property of the shader backend. 2008-03-25 19:35:32 +01:00
Roderick Colenbrander eaa1ff0d2c wined3d: Always report D16 as Windows drivers report it on all cards (likely using emulation). 2008-03-25 16:14:03 +01:00
Alexander Dorofeyev f2e03d6c3f wined3d: Don't store primary surface palette in device palettes. 2008-03-25 11:53:55 +01:00
Alexander Dorofeyev 9b913b3b79 wined3d: Don't use device palettes in RealizePalette. 2008-03-25 11:53:47 +01:00
Alexander Dorofeyev 13ce219235 wined3d: Don't use device palettes in GetDC. 2008-03-25 11:53:39 +01:00
Alexander Dorofeyev 85fd313046 wined3d: Don't use device palettes in read_from_framebuffer. 2008-03-25 11:53:24 +01:00
Alexander Dorofeyev 16da594354 wined3d: Fix comment. 2008-03-25 11:53:01 +01:00
Alexander Dorofeyev 3d2bdf52cd wined3d: Handle zero primitive count. 2008-03-24 20:40:13 +01:00
Roderick Colenbrander cb9252db36 wined3d: Fix a typo in CheckSrgbWriteCapability. We support both X8R8G8B8 and A8R8G8B8. 2008-03-24 20:39:50 +01:00
Roderick Colenbrander 9123e8f374 wined3d: Add more debug code to CheckDeviceFormat. 2008-03-24 20:39:37 +01:00
Roderick Colenbrander 690f496bd4 wined3d: We want to compare the old and the new format and not the old with the old. 2008-03-24 13:27:14 +01:00
Philip Nilsson 1110f17581 wined3d: Initialize maxAttribs in case it isn't changed by glGetIntegerv. 2008-03-24 13:26:20 +01:00
Roderick Colenbrander e749825793 wined3d: CheckTextureCapability returns TRUE for V8U8. 2008-03-24 12:08:34 +01:00
Roderick Colenbrander 3771341774 wined3d: Add a missing break to blt_to_drawable. 2008-03-24 12:08:12 +01:00
Roderick Colenbrander 856af1b5d7 wined3d: Add srgb write support to CheckDeviceFormat. 2008-03-22 12:23:23 +01:00
Roderick Colenbrander 9e9ef6238a wined3d: Remove unneeded code in CheckDeviceFormat.
All these checks are done during the capability checks which are
performed under the resource type checks.
2008-03-22 11:46:25 +01:00
Roderick Colenbrander 5d151c0ffc wined3d: Don't continue with CheckDeviceFormat when the texture format isn't around.
It is legal to pass Usage=0 to CheckDeviceFormat and in both this case
and in the case a format isn't available UsageCaps would be 0 and a
format would be reported available.
2008-03-22 11:45:58 +01:00
Roderick Colenbrander 460f0d1608 wined3d: Return WINED3DERR_NOTAVAILABLE when cubemapping isn't supported. 2008-03-22 11:45:41 +01:00
Roderick Colenbrander 616944ae7e wined3d: Add reporting of D3DRTYPE_VOLUME capabilties.
We assume it has the same capabilities as VOLUMETEXTURE. MSDN is very
vague on this topic. Intel/Nvidia/ATI drivers seem to offer nearly the
same caps on both, so do that too.
2008-03-22 11:45:31 +01:00
Roderick Colenbrander 6f3127291f wined3d: When volume textures aren't around (GL_EXT_texture3D not supported) return WINED3DERR_NOTAVAILABLE. 2008-03-22 11:44:11 +01:00
Roderick Colenbrander eef51ed4ca wined3d: We don't offer index/vertex buffer caps. Neither do Windows drivers (at least Nvidia, Ati and Intel). 2008-03-22 11:14:37 +01:00
Roderick Colenbrander 51a8162330 wined3d: Check pixel formats of the same pixel type. 2008-03-21 15:19:05 +01:00
Andrew Talbot 19c105c79c wined3d: Assign to structs instead of using memcpy. 2008-03-21 11:24:05 +01:00
Luis Javier Merino 3bb1ea3d34 wined3d: BltFast dealing correctly with overlapping src and dest. 2008-03-20 14:27:36 +01:00
Roderick Colenbrander fd71421ebe wined3d: Report software processing in CheckDeviceFormat. 2008-03-19 17:21:59 +01:00
Roderick Colenbrander 30a3bc2651 wined3d: Add dynamic locking support to CheckDeviceFormat. 2008-03-19 17:21:47 +01:00
Roderick Colenbrander 7fd87f10cd wined3d: There is no need for the !Usage checks at the start of the resource type checks.
The return-path of the code will handle this properly and this also
ensures that the R8G8B8 dxVersion test is reached.
2008-03-19 17:21:34 +01:00
Francois Gouget 304b415284 Assorted spelling fixes. 2008-03-19 11:21:27 +01:00
Roderick Colenbrander 0e9d02ded4 wined3d: Add correct autogenmipmap support. 2008-03-18 11:17:42 +01:00
Roderick Colenbrander aa46edd60c wined3d: Add a function which checks the filtering capabilities for a format. 2008-03-18 11:17:31 +01:00
Roderick Colenbrander 2f1e01bbe3 wined3d: Put vertex texture capability checking in its own function. 2008-03-18 11:17:15 +01:00
Roderick Colenbrander 32a32d82c4 wined3d: Put the SRG read capability check in its own function. 2008-03-18 11:17:01 +01:00
Roderick Colenbrander 4e66c9c990 wined3d: Add a function which checks the legacy bump mapping capabilities. 2008-03-18 11:16:48 +01:00
Roderick Colenbrander d44c295651 wined3d: Check the render target capabilities of a resource type. 2008-03-17 11:42:19 +01:00
Roderick Colenbrander ecf24604e2 wined3d: Check the texture capabilities we offer for the different texture types (cube, plain, volume). 2008-03-17 11:41:58 +01:00
Roderick Colenbrander 02f6c9ece8 wined3d: Move depth/stencil verification to CheckDepthStencilCapability. 2008-03-17 11:41:39 +01:00
Artur Szymiec 102b9d12e4 wined3d: Add a device uuid. 2008-03-13 20:44:18 +01:00
Stefan Dösinger c5117dab68 wined3d: Set the fullscreen flag before the display Mode. 2008-03-11 12:11:52 +01:00
Stefan Dösinger c81b114269 wined3d: Only restore the style and exStyle when it is untouched. 2008-03-11 12:11:52 +01:00
Stefan Dösinger a9fb81b2ed wined3d: Only adjust windows in fullscreen mode to the screen. 2008-03-11 12:11:52 +01:00
Alexander Dorofeyev fc064cb04b wined3d: Use primary_render_target_is_p8 in read_from_framebuffer. 2008-03-10 12:55:02 +01:00
Alexander Dorofeyev 8f8076c3f7 wined3d: Get rid of spurious err when locking with WINED3DLOCK_DISCARD. 2008-03-10 12:54:48 +01:00
Stefan Dösinger 20e57ea607 wined3d: Mark constants dirty in the EXT_gpu_program_parameters path. 2008-03-07 11:01:07 +01:00
Stefan Dösinger 8a3ef776f4 wined3d: gl_FragCoord isn't exact. 2008-03-07 11:01:07 +01:00
Rico Schüller 7cbdb29884 wined3d: Fix copy and past error. 2008-03-06 12:46:50 +01:00
Stefan Dösinger d20768c120 wined3d: Support shininess > 128 if opengl does. 2008-03-05 19:23:06 +01:00
Stefan Dösinger 167a271434 wined3d: Support more than one texbem instruction per shader. 2008-03-05 19:22:44 +01:00
Stefan Dösinger 739278baf1 wined3d: Add a number to the ARB program shader bumpenvmat matrices. 2008-03-05 19:22:31 +01:00
Stefan Dösinger 6ea0880e43 wined3d: Fix a small bug in a patch from yesterday. 2008-03-05 11:21:51 +01:00
Rob Shearman 48000893f9 makefiles: Simplify the use of the IMPORTLIB variable in the DLL makefiles.
Only specify the root to keep platform-specifics out of the individual 
DLL makefiles.
2008-03-04 20:55:01 +01:00
Stefan Dösinger 8b28ca720e wined3d: Use GL_EXT_gpu_program_parameters if available. 2008-03-04 12:15:32 +01:00
Stefan Dösinger aeb0e43e3e wined3d: Hardcode local constants in ARB shaders if possible. 2008-03-04 12:15:26 +01:00
Stefan Dösinger 107e80a79c wined3d: Implement a different constant dirtification algorithm.
Add a new property of the shader backend which indicates whether the
shader backend is able to dirtify single constants rather than
dirtifying vshader and pshader constants as a whole. Depending on this
a different Set*ConstantF implementation is used which marks constants
dirty. The ARB shader backend uses this and marks constants clean
after uploading.
2008-03-04 12:15:16 +01:00
Stefan Dösinger 5709a0b4b6 wined3d: Call fixup_extensions before destroying the fake context. 2008-03-03 20:45:48 +01:00
Francois Gouget 29ef0b90ee Assorted spelling, punctuation and case fixes. 2008-03-03 12:04:48 +01:00
Roderick Colenbrander 2e0d35aa2f wined3d: Add D32F_LOCKABLE to getDepthStencilBits. 2008-03-03 12:00:39 +01:00
Stefan Dösinger dd997c1de6 wined3d: Catch NOP palette changes. 2008-03-03 11:59:05 +01:00
Stefan Dösinger 32be503c62 wined3d: Give occlusion queries their own vtable. 2008-03-03 11:58:10 +01:00
Stefan Dösinger 071d4afb2b wined3d: Subclass queries. 2008-03-03 11:57:59 +01:00
James Hawkins c2a627c6e8 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:07 +01:00
Stefan Dösinger 8c758a62e8 wined3d: Remove VBFLAG_LOAD. 2008-02-28 20:10:40 +01:00
Roderick Colenbrander 4ac1b94d96 wined3d: Improved CheckDeviceType. 2008-02-27 14:52:25 +01:00
Stefan Dösinger 7b297890a7 wined3d: Mark a vertex buffer dirty after VBO creation. 2008-02-26 11:31:53 +01:00
Stefan Dösinger 220d9eb44c wined3d: Move the dummy texture creation to the device. 2008-02-26 11:31:47 +01:00
Stefan Dösinger f912f18b13 wined3d: Move shader model private data into its own structure. 2008-02-26 11:31:39 +01:00
Stefan Dösinger 6269415793 wined3d: Add GL_APPLE_float_pixels. 2008-02-26 11:31:29 +01:00
Stefan Dösinger 825506d5ff wined3d: General cross format blitting infrastrucutre, R32F->R16F blits. 2008-02-26 11:31:19 +01:00
Roderick Colenbrander f5149e651e wined3d: Check real depth/stencil capabilities based on WGL pixel formats. 2008-02-26 11:29:59 +01:00
Roderick Colenbrander e5bef99fbe wined3d: Request aux buffers when using backbuffer rendering. 2008-02-25 12:17:36 +01:00
Roderick Colenbrander 68467cf344 wined3d: Request alpha in backbuffer mode, to work correctly with multiple opengl pixel formats. 2008-02-25 12:14:36 +01:00
Roderick Colenbrander e2d70fff6b ddraw: Add yv12 detection support. 2008-02-22 12:04:01 +01:00
Roderick Colenbrander 0b3d880c8e wined3d: Use the color key in glAlphaFunc in case of index_in_alpha. 2008-02-22 11:54:51 +01:00
Roderick Colenbrander 0cdccfc8b5 wined3d: Unify p8 render target detection code. 2008-02-22 11:54:40 +01:00
Roderick Colenbrander a5444cb897 wined3d: In DirectDraw a palette is a property of a surface while in d3d8/9 it is a property of a device. 2008-02-22 11:54:31 +01:00
Roderick Colenbrander 98a0786096 wined3d: Don't flush in D3D RealizePalette without a palette. 2008-02-22 11:53:45 +01:00
Roderick Colenbrander c623ffd7d0 wined3d: Don't flush in GDI RealizePalette without a palette. 2008-02-22 11:53:29 +01:00
Roderick Colenbrander 8f18eeea35 wined3d: Let flush_to_framebuffer_drawpixels use a valid rect. 2008-02-20 12:06:46 +01:00
Stefan Dösinger f952419651 wined3d: Enable the texcoord init workaround on radeon HD cards on MacOS. 2008-02-19 14:47:59 +01:00
Stefan Dösinger e40bb4a8c3 wined3d: Create a VBO before returning memory.
The state manager calls GetMemory before it calls PreLoad on the VBO,
and PreLoad depends on finding the VBO in the strided vertex structure.
This can cause problems on the first draw which creates the vertex
buffer, because the first PreLoad creates the vbo and attempts to
convert with an incorrect strided structure.
2008-02-19 14:47:51 +01:00
Roderick Colenbrander 28464f9689 wined3d: Fix lack of indent in PreLoad. 2008-02-19 13:39:25 +01:00
Roderick Colenbrander ef21f1e85e wined3d: The base RealizePalette isn't needed anymore. 2008-02-19 13:39:25 +01:00
Roderick Colenbrander 48275308ee wined3d: Add a GL specific RealizePalette which also updates the drawable. 2008-02-19 13:39:25 +01:00
Roderick Colenbrander 61c82f8069 wined3d: Add a GDI version of RealizePalette.
The base version won't suffice anymore as it is not able to upload
palette changes to the drawable in an efficient way for both GDI and
GL. Further the LoadLocation code in RealizePalette isn't needed for
the GDI version as in all cases it works on system memory.
2008-02-19 13:39:25 +01:00
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
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