128 Commits

Author SHA1 Message Date
Roderick Colenbrander
4428cc32de wined3d: Fix a few small bugs in WineD3D_ChoosePixelFormat. 2008-04-29 12:47:07 +02:00
Roderick Colenbrander
34d06a5e96 wined3d: Also use WineD3D_ChoosePixelFormat for pbuffers. 2008-04-28 13:27:51 +02:00
Roderick Colenbrander
a38e5a95ef wined3d: Let WineD3D_ChoosePixelFormat operate on the pixel format database we store at WineD3D startup. 2008-04-28 13:27:51 +02:00
Roderick Colenbrander
ec5400b4f8 wined3d: Split WGL pixel format selection code off from CreateContext. 2008-04-28 13:27:51 +02:00
Roderick Colenbrander
f0307d9366 wgl: Add a wine specific WGL extension which allows you to change the pixel format multiple times. 2008-04-24 12:32:38 +02:00
Stefan Dösinger
e3bd5b6dcd wined3d: Use the shader backend to enable / disable atifs and nvts.
The previous logic assumed that if NVTS or ATIFS are available they
will be used. This happens to be true for NVTS, but ATIFS is only used
if neither ARBFP nor GLSL are supported. This breaks fixed function
fragment processing on ATI r300 and newer cards
2008-04-24 11:37:17 +02:00
Austin English
6e59cd2c34 Spelling fixes. 2008-04-22 12:20:12 +02:00
Stefan Dösinger
fb8fde81d1 wined3d: Disable blending when clearing. 2008-04-09 11:53:44 +02:00
Stefan Dösinger
67e0943ba3 wined3d: Store the number of aux buffers in the context. 2008-04-09 11:47:24 +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
b1d8af7926 wined3d: Update copyright lines. 2008-04-02 20:22:42 +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
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
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
84258723f9 wined3d: Make the state table a property of the shader backend. 2008-03-25 19:35:32 +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
Stefan Dösinger
6ea0880e43 wined3d: Fix a small bug in a patch from yesterday. 2008-03-05 11:21:51 +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
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
Francois Gouget
d0794c4aeb Assorted spelling fixes. 2008-01-23 21:16:22 +01:00
Austin English
3471f841a1 wined3d: Spelling fixes. 2008-01-18 12:53:33 +01:00
Stefan Dösinger
f700cbe74b wined3d: Add an alpha blending test. 2007-12-07 16:26:43 +01:00
Stefan Dösinger
a4461e03f7 wined3d: Disable the scissor test when blitting. 2007-12-04 14:32:39 +01:00
Stefan Dösinger
4dbee07ff5 wined3d: Disable GL_TEXTURE_2D in the standard blit setup. 2007-11-29 13:35:53 +01:00
Roderick Colenbrander
817b520c3d wined3d: Prevent unneeded context switches. 2007-11-12 14:13:21 +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
dcff7dc213 wined3d: Begin centralizing surface location management. 2007-10-26 15:17:19 +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
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
Stefan Dösinger
5a63b79a66 wined3d: Untie culling and offscreen rendering. 2007-09-19 11:39:55 +02:00
Roderick Colenbrander
9be5a5e9db wined3d: Ask for enough RGB bits for pbuffers. 2007-08-29 11:58:28 +02:00
Stefan Dösinger
6857fc6b61 wined3d: Disable specular color when blitting. 2007-08-27 12:00:21 +02:00
Roderick Colenbrander
318f606869 wined3d: Improve pixelformat selection code. 2007-08-27 11:59:07 +02:00
Roderick Colenbrander
9ca3a22487 wined3d: Dynamically load WGL functions. 2007-08-17 12:03:13 +02:00
Roderick Colenbrander
1dc0298a55 wined3d: Check the results of SetPixelFormat. 2007-08-13 12:37:34 +02:00
Roderick Colenbrander
5754726aeb wined3d: Use the proper depth stencil format. 2007-08-13 12:36:55 +02:00
Roderick Colenbrander
7818cbda4a wined3d: Add better pixelformat selection code for pbuffers. 2007-08-10 12:58:17 +02:00
Roderick Colenbrander
4647cbb625 wined3d: Better pixelformat selection code. 2007-08-09 14:11:19 +02:00
Roderick Colenbrander
ac3927a73e wined3d: Move over to WGL. 2007-08-08 15:32:01 +02:00
Roderick Colenbrander
58275065a1 wined3d: Prepare pbuffer code for WGL transition. 2007-08-08 15:32:01 +02:00
Roderick Colenbrander
e77da5ef8a wined3d: Don't call ActivateContext between ENTER_GL/LEAVE_GL. 2007-08-07 12:36:32 +02:00
H. Verbeet
b4e596e70e wined3d: Flip the scissor rect when rendering offscreen. 2007-07-26 11:51:34 +02:00
Stefan Dösinger
9dedfd71e0 wined3d: Store the last active thread. 2007-07-10 13:31:19 +02:00
Stefan Dösinger
1fb168f018 wined3d: Make ActivateContext a bit smaller. 2007-07-10 13:31:10 +02:00
Stefan Dösinger
fdadf26c20 wined3d: Add CTXUSAGE_CLEAR context usage. 2007-07-10 13:30:51 +02:00
Stefan Dösinger
9928a4c4fd wined3d: Offscreen rendering from foreign threads. 2007-07-06 19:29:28 +02:00
Stefan Dösinger
b462ff0876 wined3d: Create multiple contexts for onscreen render targets. 2007-07-03 12:32:33 +02:00