Stefan Dösinger
d60ece20b5
wined3d: Implement secondary color in the arbfp ffp pipeline.
2008-09-02 14:56:15 +02:00
Stefan Dösinger
8b1727ae62
wined3d: Report incorrect filtering settings in ValidateDevice.
2008-09-02 14:56:06 +02:00
Stefan Dösinger
422eebd2c3
wined3d: BLENDTEXTUREALPHAPM reads the texture.
2008-09-02 14:55:57 +02:00
Stefan Dösinger
3b48660f43
wined3d: Implement YV12 support for emulated overlays.
...
This is the prefered format of many codecs, and for some codecs this
is the only supported output format. As usual I try to handle all the
conversion in the GPU and keep the CPU involvement minimal to gain the
full performance of PBO transfers.
2008-09-02 14:55:50 +02:00
Francois Gouget
9c63e186c6
wined3d: Add a '\n' to Wine traces.
2008-09-02 13:59:11 +02:00
Francois Gouget
4823b2c7bf
Assorted spelling fixes.
2008-09-02 13:58:21 +02:00
Henri Verbeet
b4f43e372e
wined3d: Remove useless hash_table_t typedef.
2008-08-29 12:26:55 +02:00
Stefan Dösinger
af8d268a39
wined3d: Handle projected textures properly in arbfp and atifs.
...
GL_ARB_fragment_program and GL_ATI_fragment_shader can disable
projected textures properly, and they can also handle
D3DTTFF_PROJECTED | D3DTTFF_COUNT3 properly.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
ec4955630e
wined3d: Silence some format spam.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
acc893c5cf
wined3d: Handle projected+bump mapped textures in atifs.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
4635315655
wined3d: Replace a #if 0 with if(0).
2008-08-28 11:24:49 +02:00
Stefan Dösinger
a580325a47
wined3d: Remove some more junk code.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
750973cec5
wined3d: Remove BaseTexture::UnBindTexture.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
005e5e868e
wined3d: Replace an #if 0 with if(0).
2008-08-28 11:24:49 +02:00
Stefan Dösinger
462ddaa254
wined3d: Make the texture stage mapping nvrc independent.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
0e2713a1e1
wined3d: Remove unneeded code.
...
The fixed function backend disables the extension. Also messing
with the final combiner shouldn't be needed if nvrc is disabled.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
a674ae71ae
wined3d: Remove dead code.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
43fe6b0bcf
wined3d: Remove some junk.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
dda59e361c
wined3d: Update the arbfp shader on a texturetransformflags change.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
8f20b882bb
wined3d: Handle texture transforms in the TEXTURETRANSFORMFLAGS state.
...
This is a nop by itself, but it makes it easier for fragment pipelines
to read WINED3DTSS_TEXTURETRANSFORMFLAGS.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
8dcc6b66dc
wined3d: Clean up the texbeml parameter forward.
...
There's no point in separating scale and luminance since they're
uploaded at the same time. We still want to separate the stages
though.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
b294e43206
wined3d: D3DTOP_DOTPRODUCT3 colorop overrides the alphaop.
...
Note that the fix is only implemented in the arbfp and atifs fragment
pipeline. Unfortunately nvrc doesn't support dot3 as alpha operation.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
97b57931d0
wined3d: Advertise a few line caps.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
6bbcc5050b
wined3d: Disable D3DFMT_R3G3B2.
2008-08-27 13:21:23 +02:00
Stefan Dösinger
9b94c0abb9
wined3d: Make the alphaop == colorop matching a bit smarter.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
4767be8cde
wined3d: The final luminance factor is clamped.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
f8ead75566
wined3d: Declare the texture factor when D3DTOP_BLENDFACTORALPHA is used.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
9a6bc683e1
wined3d: Use the correct texture limit.
...
We have to use the texture limit of the fragment pipeline in use here,
not the fixed function GL texture limit.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
8fc2cfe432
wined3d: Fix projected bump mapping.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
6c6a6a2e61
wined3d: Implement D3DTA_ALPHAREPLICATE in arbfp and atifs.
...
Also adds a simple test for this. In the fixed function and nvrc/nvts
code this already works properly.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
6c12b81552
wined3d: Implement D3DTOP_BUMPENVMAPLUMINANCE.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
e8b9f167d6
wined3d: Fix the texcoord size mask.
...
There is room for 8 texture coordinates, not just 4.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
e110f2c680
wined3d: Don't retry less strict formats if a match was found.
2008-08-25 12:26:26 +02:00
Stefan Dösinger
61a900fdfc
wined3d: Fix the drawStridedSlow callback function calling convention.
...
Since some of those function pointers are direct GL functions the function
prototype needs the WINE_GLAPI calling convention. This makes prevents
drawStridedSlow from crashing with USE_WIN32_OPENGL.
2008-08-25 12:26:17 +02:00
Stefan Dösinger
ec633bf789
wined3d: Disable D3DFMT_A2W10V10U10.
2008-08-25 12:25:33 +02:00
Stefan Dösinger
1043a04673
wined3d: Disable D3DFMT_A4L4.
2008-08-25 12:25:23 +02:00
Stefan Dösinger
f39e122477
wined3d: Add fixed function sRGB write correction.
2008-08-25 12:25:13 +02:00
Stefan Dösinger
6c87a66355
wined3d: Get a GL context before creating a PBO.
2008-08-25 12:24:43 +02:00
Stefan Dösinger
ba58adaaf6
wined3d: Remove a few texture initializations.
...
This is done by LoadLocation now.
2008-08-25 12:24:33 +02:00
Stefan Dösinger
f0f32912a6
wined3d: Make sure the pixel shader is compiled.
...
If we're heading out of the pixelshader handler early, and a pixel
shader is in use, the pixel shader may not be compiled. The vertex
shader handler then checks if the pixel shader is dirty, and calls the
shader backend to apply the shader if it isn't. Thus, in the case of
GLSL, the shader code could attempt to link an uncompiled shader into
the program. This isn't much of a problem because when the fog is
applied, the pixel shader is compiled and the program re-linked.
2008-08-25 12:24:24 +02:00
Stefan Dösinger
5b77a2f90b
wined3d: Override the default filter of conditional np2 textures.
2008-08-25 12:24:06 +02:00
Chris Robinson
9f82368908
wined3d: Use the proper internal type for some formats.
2008-08-25 12:23:00 +02:00
Henri Verbeet
6fbbcd19e7
wined3d: Move a TRACE up a few lines.
2008-08-25 11:39:16 +02:00
Henri Verbeet
e3507a725f
wined3d: glDeleteFramebuffersEXT() needs a context.
2008-08-25 11:39:10 +02:00
Chris Robinson
eca8577d53
wined3d: Use 8 bits-per-component for the PBO test internal format.
...
GL_RGBA doesn't gaurantee an internal storage depth, which can cause the test
to fail if it's stored with less than 8 bits of precision. Some nVidia
drivers would actually store with 4 bits of precision.
2008-08-25 11:29:38 +02:00
David Adam
bb67a925d6
ddraw: Only ddraw checks wether one can give a null pointer to SetMaterial.
2008-08-22 11:32:09 +02:00
Roderick Colenbrander
fd0e60180a
wined3d: Fix window rewrite regression.
2008-08-22 10:39:23 +02:00
H. Verbeet
b917bdaa52
wined3d: Remove useless hash_table_entry_t typedef.
...
It doesn't add much.
2008-08-22 10:39:08 +02:00
H. Verbeet
05931f4a5a
wined3d: Track FBOs per-context.
...
Although sharing FBOs across contexts is allowed by EXT_framebuffer_object
(issue 76), it causes issues with nVidia drivers. Considering the GL 3 spec
explicitly disallows sharing of FBOs accross contexts (Appendix D), this
patch is probably the right thing to do.
2008-08-22 10:38:59 +02:00
H. Verbeet
2f99bcdde2
wined3d: Move depth stencil location handling code up a couple of lines.
...
This is just for clarity, so that render targets and the depth stencil are
handled in the same place.
2008-08-22 10:38:30 +02:00
Alexander Dorofeyev
67631163ff
wined3d: Fix copy paste error in IWineGDISurfaceImpl_RealizePalette.
...
It has to update the whole surface, so NULL must be passed to
x11_copy_to_screen. Fixes a regression in Red Alert.
2008-08-21 13:35:35 +02:00
Alexander Dorofeyev
03ae71dad9
wined3d: Set D3DPTEXTURECAPS_TRANSPARENCY.
...
It indicates support of colorkey transparency on textures, so set it because
wined3d supports it. Fixes transparency problems in Forsaken.
2008-08-21 13:35:30 +02:00
Alexander Dorofeyev
1da8a032af
wined3d: Disable TEXTURE_RECTANGLE in SetupForBlit.
2008-08-21 13:35:23 +02:00
Stefan Dösinger
c38b2fe09e
wined3d: Filter out more spam.
2008-08-21 13:34:23 +02:00
Stefan Dösinger
c425bbccab
wined3d: Set the texture wrap default with the NP2 emulation properly.
2008-08-21 13:33:42 +02:00
Stefan Dösinger
46109da87d
wined3d: Don't skip applying texdims with shaders.
...
There's no need to do that with the nvts and opengl ffp fixed function
fragment pipeline, it's perfectly well defined in GL which one takes
effect. This removes a few more troubles when switching between
shaders and arbfp.
2008-08-21 13:33:30 +02:00
Stefan Dösinger
ec94c2ea99
wined3d: Don't enable texture dimensions with shaders.
...
ARB and GLSL don't need that. If a shader backend like atifs or nvts
need it in the future, the shader backend should deal with that rather
than the ffp pipeline.
2008-08-21 13:33:20 +02:00
Stefan Dösinger
77204574d1
wined3d: Prefer aux buffer matches over alpha matches.
...
Half Life 2 uses D3DFMT_X8R8G8B8 for the back buffer, but macos
supports aux buffers only on D3DFMT_A8R8G8B8. I think having aux
buffers is more important right now than having a precise alpha
match.
2008-08-21 13:33:09 +02:00
Stefan Dösinger
bbf313e76a
d3d9: Test for fixed function value clamping.
2008-08-21 13:27:58 +02:00
Stefan Dösinger
bab367e1a0
wined3d: Update the overlay when the destination was drawn to.
2008-08-21 13:27:47 +02:00
H. Verbeet
040c33de5a
wined3d: Don't allocate This->draw_buffers in the error path for Init3D().
2008-08-21 11:36:29 +02:00
H. Verbeet
c33e03cca3
wined3d: Don't free backends if they're not created yet.
...
This would crash if CreateAdditionalSwapChain() failed.
2008-08-21 11:36:18 +02:00
Stefan Dösinger
8fe6bf0bad
wined3d: Fix the unused arg marker.
2008-08-20 12:34:44 +02:00
Stefan Dösinger
5d75939b09
wined3d: Keep track of the last used device.
2008-08-20 12:33:25 +02:00
Stefan Dösinger
1f4cf3513d
wined3d: Implement YUV emulation with GL_ARB_fragment_program.
2008-08-20 12:26:14 +02:00
Stefan Dösinger
bfe7067973
wined3d: Ask the ffp/shader/blit implementation about format support.
...
If a format is not supported natively by opengl, a shader may be able
to convert it. Up to now, CheckDeviceFormat had magic knowldge which
GL extensions lead to which supported format. This patch adds
functions that allow CheckDeviceFormat to ask the actual
implementation for its capabilities.
2008-08-20 12:26:02 +02:00
Stefan Dösinger
438b6bd4c3
wined3d: Test formats for surface support.
2008-08-20 12:25:46 +02:00
Stefan Dösinger
fc6b977486
wined3d: Start a framework for color conversion shaders in blits.
2008-08-20 12:25:26 +02:00
Stefan Dösinger
6a24b28b75
wined3d: Support YUV formats with GL_APPLE_ycbcr_422.
2008-08-20 12:25:00 +02:00
Roderick Colenbrander
4421e3ebe5
wined3d: Fix BltOverride regression.
2008-08-20 11:45:41 +02:00
H. Verbeet
f71fdecdc7
wined3d: Move creating a texture id from PreLoad to BindTexture.
...
This is consistent with BindTexture in basetexture/texture/etc. and has the
added benefit that it makes LoadLocation work properly.
2008-08-20 10:26:19 +02:00
Stefan Dösinger
3d49e8cd5e
wined3d: Add a swapchain method to set the dest override.
...
DDraw can draw to the front buffer only, thus there's never a Present
call which could pass this window. Due to that a drawing-independent
method is needed.
2008-08-19 12:25:20 +02:00
Stefan Dösinger
25c07dc86c
wined3d: Remove the ddraw_window device member.
2008-08-19 12:25:05 +02:00
Stefan Dösinger
376944ebe4
wined3d: Remove the device-global fullscreen flag.
2008-08-19 12:24:57 +02:00
Stefan Dösinger
34b37fe241
d3d: Remove IWineD3DDevice::SetHwnd.
2008-08-19 12:22:05 +02:00
Stefan Dösinger
7f2b8f9bba
wined3d: Support redirecting the primary context.
2008-08-19 12:21:49 +02:00
Stefan Dösinger
e178ddd9e1
wined3d: Use a swapchain for GDI surfaces.
...
This is a long-needed cleanup aimed at removing the ddraw_primary,
ddraw_window, ddraw_width and ddraw_height members from
IWineD3DDeviceImpl, which just do not belong there. Destination
window and screen handling is supposed to be done by swapchains.
2008-08-19 12:21:32 +02:00
Stefan Dösinger
e5de2fc82c
wined3d: Move some swapchain code into a base class.
2008-08-19 12:20:47 +02:00
Stefan Dösinger
dff3a42233
wined3d: Track overlay surfaces in the overlayed surface.
2008-08-05 14:09:37 +02:00
Stefan Dösinger
b0c4673779
wined3d: Update the surface locations in Present.
2008-08-05 14:09:37 +02:00
Stefan Dösinger
851dd7339e
wined3d: Implement overlay flipping.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
fad3f9ba98
wined3d: Basic overlay emulation with opengl.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
e795d842ec
wined3d: Implement overlay position tracking.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
a7d5b1e9a5
wined3d: Move the pshader fog update to the vertex pipeline.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
eb0264e2b3
wined3d: Remove a glFlush.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
44d419ad8e
wined3d: Call glFlush outside the GL lock.
2008-08-05 14:09:36 +02:00
H. Verbeet
2d6d879562
wined3d: Handle CTXUSAGE_BLIT with offscreen targets and FBO ORM.
...
This is mostly for correctness, in practice we should always be able
to avoid using CTXUSAGE_BLIT for offscreen targets when FBO ORM is
used.
2008-08-05 14:09:34 +02:00
H. Verbeet
b685b84e66
wined3d: Apply FBO state in ActivateContext().
...
Fixes some GL errors due to calling glDrawBuffer(GL_BACK) when an FBO
is still active.
2008-08-05 14:09:34 +02:00
H. Verbeet
9a9414dfe2
wined3d: Mark STATE_SCISSORRECT dirty in color_fill_fbo().
...
As pointed out by Alexander Dorofeyev.
2008-08-05 14:09:34 +02:00
Tobias Jakobi
2583975ec7
wined3d: Remove arb_tex_npot for NV FX series in fixup_extensions.
2008-08-04 14:05:01 +02:00
H. Verbeet
d28a310f92
wined3d: Use CTXUSAGE_RESOURCELOAD for ActivateContext() in color_fill_fbo().
...
CTXUSAGE_CLEAR will apply the FBO state in a later patch.
2008-08-04 13:52:16 +02:00
H. Verbeet
f037eb8696
wined3d: Move setting the draw buffer to a separate function.
2008-08-04 13:52:09 +02:00
Stefan Dösinger
e9827cc916
wined3d: Always load glFinish and glFlush from opengl32.dll.
2008-08-04 13:12:10 +02:00
Stefan Dösinger
399825cd8e
wined3d: Report the pitch alignment to ddraw.
2008-08-04 13:10:37 +02:00
Stefan Dösinger
8ee4159e4f
wined3d: Only set D3D caps when GL was loaded successfully.
2008-08-04 13:10:20 +02:00
Stefan Dösinger
a47e7badb9
ddraw: Set ddraw caps in wined3d.
...
Currently the ddraw capabilities were almost static, except of D3D
support. When overlay support is added, the caps depend on certain
settings in WineD3D or capabilities available from OpenGL and Xv. So
set those caps in wined3d as well.
2008-08-04 13:10:11 +02:00
Stefan Dösinger
474e7ed98c
wined3d: Beware of the frontbuffer coordinate system difference.
2008-08-04 13:09:43 +02:00
Stefan Dösinger
016efe7d94
wined3d: Clamp results in the arbfp pipeline replacement.
...
Fixed function processing can only deal with values between 0 and 1
generally. Clamp the results of instructions that could produce bigger
or smaller values.
2008-08-04 13:07:53 +02:00
Stefan Dösinger
228f2cf3c2
wined3d: Initialize the texture op function properly.
2008-08-04 13:07:26 +02:00
Francois Gouget
a793888a28
Assorted spelling fixes.
2008-08-04 13:04:48 +02:00