Henri Verbeet
e6ca176a48
wined3d: Rename DestroyContext() to context_destroy().
2009-10-28 11:16:05 +01:00
Henri Verbeet
c0050b8ec9
wined3d: Restore the thread's GL context on context_release() if it wasn't created by wined3d.
...
The background on this is that some applications use OpenGL and DirectDraw/Direct3D on
the same thread, typically using OpenGL for rendering and DirectDraw to get
the amount of available video memory. This means that we might replace the
application's current GL context with one with a completely different state,
but also that our current GL context might not be what we think it is.
2009-10-28 11:15:59 +01:00
Henri Verbeet
98027cb535
wined3d: Call context_release() for wined3d contexts made current by context_create().
2009-10-28 11:15:27 +01:00
Henri Verbeet
eeb54b9922
wined3d: Keep better track of where we're using wined3d contexts.
...
The idea here is that we can restore the thread's current GL context on
context_release() if it doesn't correspond to the current wined3d context on
context_acquire().
2009-10-28 11:15:19 +01:00
Henri Verbeet
401173ffde
wined3d: Restore the thread's previous GL context in context_destroy_gl_resources().
2009-10-28 11:15:00 +01:00
Henri Verbeet
30d2660d99
wined3d: Restore the thread's previous GL context in WineD3D_ReleaseFakeGLContext().
2009-10-27 10:55:35 +01:00
Henri Verbeet
94509f85b5
wined3d: Restore the wglMakeCurrent() call in context_destroy_gl_resources().
...
e3ca576576
removed this call because we don't
need it to tell if the context is valid, but we still need it to actually make
the context current.
2009-10-27 10:55:27 +01:00
Henri Verbeet
13c4fe72ad
wined3d: Set a driver name appropriate for the vendor in init_driver_info().
2009-10-27 10:55:09 +01:00
Henri Verbeet
26ba212407
wined3d: Apply PCI ID overrides in init_driver_info() instead of IWineD3DImpl_GetAdapterIdentifier().
2009-10-27 10:54:57 +01:00
Henri Verbeet
2447c8bc3e
wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.
2009-10-27 10:54:50 +01:00
Stefan Dösinger
0c72464abf
wined3d: Use the native constant limit for fitting private constants.
2009-10-26 11:42:36 +01:00
Stefan Dösinger
9ee6508132
wined3d: Remove dead code.
2009-10-26 11:42:29 +01:00
Stefan Dösinger
f15fc8f41c
wined3d: Take native constants into account when reporting ARB limits.
2009-10-26 11:42:20 +01:00
Stefan Dösinger
641d6681d4
wined3d: Use the ARB native constant limit in the GLSL-ARB constants quirk.
...
Geforce 8 and Geforce 9 cards support 256 env and 1024 native
constants. 1024 is the hardware limit we want to use if we overwrite
the GLSL reported value with the ARB value on Mac OS (because Mac OS
reports more constants than supported by HW on some cards).
2009-10-26 11:42:10 +01:00
Stefan Dösinger
f9c4d442a9
wined3d: Get rid of the general shader constant limit.
2009-10-26 11:41:51 +01:00
Stefan Dösinger
70d6304a21
wined3d: Use the shader backend reported constant limit outside the shader backend.
2009-10-26 11:41:43 +01:00
Henri Verbeet
483d5d0a0d
wined3d: Print an ERR instead of crashing in context_check_fbo_status().
...
Some version of Mesa will claim the window system provided framebuffer is
incomplete when using indirect rendering, although the framebuffer objects
spec says this can never happen. Printing an ERR instead of crashing should
make it clearer that this isn't a wined3d problem.
2009-10-26 11:20:52 +01:00
Henri Verbeet
d03a105c1a
wined3d: Fix a typo.
2009-10-26 11:20:44 +01:00
Henri Verbeet
de82b55b20
wined3d: Refuse to parse shaders with an invalid version token.
2009-10-26 11:20:39 +01:00
Henri Verbeet
5fbe5ee027
wined3d: Add a separate structure for driver info.
2009-10-26 11:20:33 +01:00
Henri Verbeet
69bf130476
wined3d: Remove a redundant ActivateContext() call.
2009-10-26 11:20:26 +01:00
Henri Verbeet
ade350b4d4
wined3d: Compare and copy the actual palette in palette9_changed() (Valgrind).
2009-10-23 12:03:37 +02:00
Henri Verbeet
53104ac1e7
wined3d: Don't use the stack as cursor mask (Valgrind).
2009-10-23 12:03:30 +02:00
Henri Verbeet
342a71b281
wined3d: Replace the "stateLookup" tables with a single "wrap_lookup" table.
2009-10-23 12:03:15 +02:00
Henri Verbeet
a927573395
wined3d: Free the context array in IWineGDISwapChainImpl_Destroy() (Valgrind).
2009-10-22 10:46:20 +02:00
Henri Verbeet
8d2512317f
wined3d: Free the blitter private data in arbfp_blit_free() (Valgrind).
2009-10-22 10:46:15 +02:00
Henri Verbeet
6be41fd59a
wined3d: Get rid of GL_LIMITS.
2009-10-22 10:46:05 +02:00
Henri Verbeet
55047f811a
wined3d: Fix some GLINFO_LOCATION abuse.
2009-10-22 10:45:57 +02:00
Henri Verbeet
fa548414f9
wined3d: Free the shader buffer in shader_glsl_free() (Valgrind).
2009-10-21 16:05:57 +02:00
Henri Verbeet
42eb516d96
wined3d: Free the adapter's format info in IWineD3DImpl_Release() (Valgrind).
2009-10-21 16:05:57 +02:00
Henri Verbeet
f2aaca2f67
wined3d: Rename WineD3DAdapter to wined3d_adapter.
2009-10-21 16:05:57 +02:00
Stefan Dösinger
122ed40c2b
wined3d: Use ARB constant limits in ARB.
2009-10-20 14:46:16 +02:00
Stefan Dösinger
435646550b
wined3d: Use GLSL constant limits in GLSL.
2009-10-20 14:46:13 +02:00
Stefan Dösinger
2d802af4d9
wined3d: Make shader specific constants accessible via GL_LIMITS.
2009-10-20 14:46:08 +02:00
Henri Verbeet
94d33d3e86
wined3d: Destroy FBO entries from the context that created them.
...
EXT_framebuffer_object doesn't specify if FBOs are shareable between GL
contexts, but ARB_framebuffer_object explicitly prohibits it.
2009-10-20 14:00:37 +02:00
Henri Verbeet
e3ca576576
wined3d: Use context->valid in context_destroy_gl_resources().
...
Instead of relying on wglMakeCurrent() to do what we want.
2009-10-20 14:00:36 +02:00
Henri Verbeet
43aaaa8a4b
wined3d: Validate the D3D context in FindContext().
...
Apparently it's valid to use a D3D device after its window is destroyed.
OpenGL isn't always so forgiving, so this patch is a first step to avoid
making GL calls on a context without window.
2009-10-20 14:00:36 +02:00
Henri Verbeet
0cb6f28751
wined3d: Get rid of the useless "isPBuffer" bitfield in struct wined3d_context.
2009-10-20 14:00:36 +02:00
Henri Verbeet
adf5bb5f6a
wined3d: Cleanup IWineD3DDeviceImpl_UpdateTexture().
...
The root problem here is that with the original error handling a NULL
dereference occurs (IWineD3DBaseTexture_GetType()) when either the source or
destination texture is NULL. Rewriting the error handling changes the
indentation of almost the entire function though, so this patch ends up
rewriting the entire function.
2009-10-19 11:45:45 +02:00
Henri Verbeet
9dd78e13d5
wined3d: Printing a FIXME once only works if the relevant BOOL is static (LLVM/Clang).
2009-10-16 13:37:21 +02:00
Henri Verbeet
594497f4bb
wined3d: Simplify IWineD3DStateBlockImpl_Apply().
...
Consistently use the stateblock's contained states to determine what to apply.
2009-10-15 12:06:18 +02:00
Henri Verbeet
ce10d5f186
wined3d: Don't apply more than num_contained_render_states in IWineD3DStateBlockImpl_Apply().
2009-10-15 12:06:18 +02:00
Henri Verbeet
bac6486520
wined3d: Merge some bitfields in struct SAVEDSTATES.
2009-10-14 11:26:44 +02:00
Henri Verbeet
1f029a30db
wined3d: Simplify IWineD3DStateBlockImpl_Capture().
...
Consistently use the stateblock's contained states to determine what to
capture.
2009-10-14 11:26:38 +02:00
Henri Verbeet
a24d14796a
wined3d: Remove the useless "changed" and "enabledChanged" fields from struct wined3d_light_info.
2009-10-14 11:26:26 +02:00
Henri Verbeet
3bc9d1894d
wined3d: Rename PLIGHTINFOEL to something less awful.
2009-10-14 11:26:17 +02:00
Henri Verbeet
580cd8c5bb
wined3d: Get rid of stateblock_copy_values().
...
Use IWineD3DStateBlockImpl_Capture() for the initial stateblock capture
instead.
2009-10-14 11:26:02 +02:00
Henri Verbeet
8949a2c1ad
wined3d: Remove some code that doesn't make sense.
...
This was introduced by abb11f30cd
, but I don't
see how it could ever do something useful. Perhaps that's a lack of
imagination on my part, but the only situation in which device->stateBlock
should be NULL is while creating the initial stateblock, and in that case we
just returned in the line above. Setting the stream frequency of all streams
to 0x01010101 doesn't make sense either.
2009-10-13 11:38:28 +02:00
Henri Verbeet
da5b491606
wined3d: Capture on a recorded stateblock doesn't record the vertexdeclaration in d3d9.
2009-10-13 11:38:28 +02:00
Henri Verbeet
526839068f
wined3d: Vertex state stateblocks should also record the vertex declaration.
2009-10-13 11:38:28 +02:00
Jeff Zaroyko
a1126242a7
wined3d: Fix prototype for set_texture_matrix.
2009-10-12 17:07:03 +02:00
Henri Verbeet
3dbfda1ab3
wined3d: Capture some more renderstates in vertex and pixel stateblocks.
2009-10-09 11:50:29 +02:00
Henri Verbeet
442beb1dcf
wined3d: Clear resources that we aren't recording in stateblock_init().
2009-10-09 11:50:29 +02:00
Stefan Dösinger
8a68f418db
wined3d: Don't reserve clipping constants needlessly.
2009-10-08 12:03:50 +02:00
Stefan Dösinger
ed2860f789
wined3d: Split the clip_parameters[2] array.
2009-10-08 12:03:42 +02:00
Stefan Dösinger
7f6ae94c0a
wined3d: Don't write to result.color in arb_add_sRGB_correction.
...
add_sRGB_correction and the generate_pshader function generate the same MOV.
There's no need to do it in two places.
2009-10-08 12:03:30 +02:00
Henri Verbeet
2be38232ea
wined3d: Remove some unused code.
2009-10-06 12:02:59 +02:00
Henri Verbeet
92d22ce535
wined3d: Move the SM1 opcode enum to shader_sm1.c.
2009-10-06 12:02:52 +02:00
Henri Verbeet
5c22971561
wined3d: Keep a reference to the vertex declaration initially captured by CreateStateBlock() as well.
2009-10-06 12:02:48 +02:00
Henri Verbeet
b5de2fcb1c
wined3d: Keep references to the textures initially captured by CreateStateBlock() as well.
2009-10-06 12:02:44 +02:00
Stefan Dösinger
cb5ce03de4
wined3d: SetRenderTarget resets the scissor rect.
2009-10-02 15:06:57 +02:00
Stefan Dösinger
4a3f04cb56
wined3d: SetRenderTarget bypasses stateblock recording.
2009-10-02 15:06:57 +02:00
Stefan Dösinger
9e068a33b3
wined3d: SetRenderTarget doesn't change the viewport in d3d7.
2009-10-02 15:06:56 +02:00
Stefan Dösinger
eda00d97ad
d3d9: Test viewports that are bigger than the surface.
2009-10-02 15:06:38 +02:00
Stefan Dösinger
dc45657f2c
wined3d: Fix vs_2_0 sgn.
...
vs_2_0's sgn has two extra parameters - temporary registers for the
instruction. This patch fixes the crash of the d3d9:visual test on windows and
properly handles the vs_2_0 version of sgn.
2009-10-02 12:36:59 +02:00
Henri Verbeet
048c9450d9
wined3d: Use the actual array sizes to determine the number of the various pixel/vertex states.
2009-10-02 11:53:09 +02:00
Henri Verbeet
8b3f868774
wined3d: Move the pixel/vertex states arrays to stateblock.c.
2009-10-02 11:53:03 +02:00
Henri Verbeet
a84974e2ea
wined3d: Fix the values of NUM_SAVEDPIXELSTATES_T and NUM_SAVEDVERTEXSTATES_R.
2009-10-02 11:52:54 +02:00
Henri Verbeet
15d4eee58b
wined3d: Use stateblock_init_contained_states() for WINED3DSBT_VERTEXSTATE stateblocks.
2009-10-02 11:52:49 +02:00
Henri Verbeet
d500c9b795
wined3d: Add a separate function to initialize the saved states for WINED3DSBT_VERTEXSTATE.
2009-10-02 11:52:43 +02:00
Stefan Dösinger
c749debec6
wined3d: Fix an error string.
2009-10-01 12:10:35 +02:00
Henri Verbeet
93c949eba5
wined3d: Use stateblock_init_contained_states() for WINED3DSBT_PIXELSTATE stateblocks.
2009-10-01 12:03:55 +02:00
Henri Verbeet
5a01619d31
wined3d: Add a separate function to initialize the saved states for WINED3DSBT_PIXELSTATE.
2009-10-01 12:03:49 +02:00
Henri Verbeet
841afe485e
wined3d: Use stateblock_init_contained_states() for WINED3DSBT_ALL stateblocks.
2009-10-01 12:03:34 +02:00
Henri Verbeet
c5029f83ec
wined3d: Simplify stateblock_savedstates_set().
...
We only need to handle the case where "value" is TRUE, since the stateblock
data will be filled with zeroes by default.
2009-10-01 12:03:28 +02:00
Henri Verbeet
75fe879c76
wined3d: Get rid of stateblock_savedstates_copy().
...
This is redundant because we call stateblock_savedstates_set() further down.
2009-10-01 12:03:21 +02:00
Henri Verbeet
be0b7355fc
wined3d: Add a separate function for initializing the "contained_*" fields from the "changed" field.
2009-09-30 14:31:59 +02:00
Henri Verbeet
5f3425b89b
wined3d: Get rid of stateblock_copy().
2009-09-30 14:31:59 +02:00
Henri Verbeet
345b329217
wined3d: Add a separate function for copying stateblock values.
2009-09-30 14:31:58 +02:00
Henri Verbeet
844dda20ff
wined3d: Make some internal stateblock function arguments const.
2009-09-30 14:31:58 +02:00
Henri Verbeet
5737efe71a
wined3d: Explicitly pass gl_info to stateblock_savedstates_set().
2009-09-30 14:31:58 +02:00
Henri Verbeet
49f712beff
wined3d: Explicitly pass gl_info to stateblock_savedstates_copy().
2009-09-29 14:22:34 +02:00
Henri Verbeet
6d3e5a9cce
wined3d: Pass IWineD3DStateBlockImpl pointers to stateblock_copy().
2009-09-29 14:22:34 +02:00
Henri Verbeet
4ed126f5dc
wined3d: Clear the correct "activeLights" array in stateblock_copy().
2009-09-29 14:22:34 +02:00
Henri Verbeet
664057ce6a
wined3d: Add a separate function for state block initialization.
2009-09-29 14:22:34 +02:00
Henri Verbeet
6a7b97b617
wined3d: Fix a typo.
2009-09-29 14:22:34 +02:00
Stefan Dösinger
404aecb8da
wined3d: Test if result.clip[] works correctly.
...
The Mac Nvidia driver doesn't implement the result.clip part of
GL_NV_vertex_program2_option correctly. It complains about a syntax
error if "result.clip[0]" is used. "result.clip" compiles correctly, but
supports only one clipplane, and running the shader results in severe
rendering bugs.
2009-09-28 17:33:07 +02:00
Stefan Dösinger
77a83aee79
wined3d: Don't use GL_NV_texture_shader on OSX.
2009-09-28 17:32:54 +02:00
Henri Verbeet
f9786d7eda
wined3d: Just use the actual array size as argument to memcpy() in stateblock_copy().
2009-09-28 12:38:39 +02:00
Henri Verbeet
26db0be136
wined3d: Cleanup IWineD3DDeviceImpl_SetTexture() a bit.
2009-09-28 12:38:32 +02:00
Henri Verbeet
f6bf219013
wined3d: Remove some redundant code in IWineD3DVertexDeclarationImpl_Release().
...
The situation the code tests for should never happen because either the
stateblock will still have a reference to the vertex declaration, or the
stateblock itself will be released.
2009-09-28 12:38:25 +02:00
Henri Verbeet
dca3c6e7c6
wined3d: Keep vertex declaration references in the stateblock.
2009-09-28 12:38:18 +02:00
Henri Verbeet
709aedf5f9
wined3d: Properly keep texture references in the stateblock.
2009-09-28 12:38:12 +02:00
Henri Verbeet
cd96c6e355
wined3d: Release the stateblock before destroying the GL context.
2009-09-25 15:15:49 +02:00
Henri Verbeet
47c84f4f7f
wined3d: Use the DXGI naming convention for all formats.
2009-09-25 15:15:44 +02:00
Henri Verbeet
a25ac586c6
wined3d: Add a state handler for WINED3DRS_SOFTWAREVERTEXPROCESSING.
2009-09-25 15:15:08 +02:00
Henri Verbeet
c64da00de7
wined3d: Rename IWineD3DDevice::GetIndices() to IWineD3DDevice::GetIndexBuffer().
2009-09-25 15:14:52 +02:00
Henri Verbeet
60e32659a7
wined3d: Rename IWineD3DDevice::SetIndices() to IWineD3DDevice::SetIndexBuffer().
2009-09-25 15:14:44 +02:00
Henri Verbeet
f88c6e5ce5
wined3d: Move common shader fields to IWineD3DBaseShaderClass.
2009-09-25 15:14:35 +02:00
Henri Verbeet
77086e8e84
wined3d: Remove SetFunction() from the public shader interface.
2009-09-25 15:14:26 +02:00
Henri Verbeet
d76c7a8521
wined3d: Move some common shader functions to the IWineD3DBaseShader interface.
2009-09-25 15:14:17 +02:00
Austin English
5d15da6df5
wined3d: Recognize DRI R300 drivers as Mesa.
2009-09-25 13:15:48 +02:00
Henri Verbeet
789372afa8
wined3d: Don't free D3D pixel shaders until the wined3d pixel shader is destroyed.
2009-09-24 13:24:53 +02:00
Henri Verbeet
8aea1b1302
wined3d: Add a separate function for pixel shader initialization.
2009-09-24 13:24:27 +02:00
Henri Verbeet
ca05ef5dd0
wined3d: Don't free D3D vertex shaders until the wined3d vertex shader is destroyed.
2009-09-24 13:24:19 +02:00
Henri Verbeet
462decdfb9
wined3d: Add a separate function for vertex shader initialization.
2009-09-24 13:23:51 +02:00
Henri Verbeet
5ac3ed7f73
wined3d: Remove unused IWineD3DVertexShaderImpl fields.
2009-09-24 13:23:44 +02:00
Stefan Dösinger
4fe014cb54
wined3d: Fix sRGB->RGB copy condition.
...
The old condition happened to work, because SFLAG_INTEXTURE was not
set(we're loading it), and neither was SFLAG_INDRAWABLE(otherwise
INTEXTURE would be set too). If the fbo INDRAWABLE == INTEXTURE is
replaced by INDRAWABLE == INSRGBTEX this doesn't hold true any longer
because SFLAG_INDRAWABLE is set, but not used because the drawable
readback is never used for fbos.
2009-09-23 13:25:33 +02:00
Stefan Dösinger
33ca3c0207
wined3d: Don't mark SFLAG_INTEXTURE up to date with fbo stretchrect.
...
FBO stretchrect marks SFLAG_INDRAWABLE up to date, which currently
also marks SFLAG_INTEXTURE up to date. However, this will change when
we enable rendering to the srgb copy, in which case the drawable could
be equal to the srgb copy, not the rgb copy.
2009-09-23 13:25:21 +02:00
Stefan Dösinger
ba6fac697a
wined3d: Create a separate function for deleting GL textures.
2009-09-23 13:25:02 +02:00
Stefan Dösinger
529e6737d3
wined3d: Use the correct enum.
2009-09-23 13:24:25 +02:00
Stefan Dösinger
5b5e3bd0d2
wined3d: Track GL texture states in a separate structure.
2009-09-23 13:24:16 +02:00
Henri Verbeet
1c93ab1ee0
wined3d: Cleanup after wglMakeCurrent() failures in context_set_current().
...
The D3D context is potentially destroyed, so we need to clear the thread's
current D3D context. Found by Rico Schüller.
2009-09-23 12:37:25 +02:00
Henri Verbeet
eca28c942d
wined3d: Add support for ARB_provoking_vertex.
...
This is just EXT_provoking_vertex promoted to ARB.
2009-09-23 12:37:18 +02:00
Henri Verbeet
a0de42db13
wined3d: Fix a typo.
2009-09-23 12:37:12 +02:00
Henri Verbeet
34dd27e3a8
wined3d: Don't create a depthstencil renderbuffer if ARB_framebuffer_object is supported.
2009-09-23 12:37:06 +02:00
Henri Verbeet
ec97383f6f
wined3d: Add support for ARB_framebuffer_object.
2009-09-23 12:37:00 +02:00
Henri Verbeet
c4c86215ed
wined3d: Detect ARB_framebuffer_object.
2009-09-23 12:36:48 +02:00
Henri Verbeet
66a7236590
wined3d: Don't free D3D vertex declarations until the wined3d vertex declaration is destroyed.
2009-09-23 12:36:28 +02:00
Rico Schüller
8c414df17f
wined3d: Don't call wglMakeCurrent(NULL, NULL) in context_set_current() if the current context is NULL.
2009-09-22 17:47:02 +02:00
Henri Verbeet
5b8b97a737
wined3d: Cleanup vertex declaration initialization.
2009-09-22 16:17:20 +02:00
Henri Verbeet
0a4fa886a7
wined3d: Revert 4ba16b84a9
.
...
Unfortunately surface_can_stretch_rect() doesn't check just for
WINED3DFMT_FLAG_FBO_ATTACHABLE.
2009-09-22 16:16:55 +02:00
Rico Schüller
8a890d399a
wined3d: Fix shader spam.
2009-09-18 10:47:17 -05:00
Henri Verbeet
dbc4dfc495
wined3d: Move "parent_ops" to IWineD3DResourceClass.
2009-09-18 08:55:33 -05:00
Henri Verbeet
93b0600829
wined3d: Don't free D3D buffers until the wined3d buffer is destroyed.
2009-09-18 08:55:25 -05:00
Henri Verbeet
22124bc5cb
wined3d: Add a separate function for buffer initialization.
2009-09-18 08:54:44 -05:00
Henri Verbeet
a8e8f763bf
wined3d: Don't free D3D textures until the wined3d texture is destroyed.
2009-09-18 08:54:34 -05:00
Henri Verbeet
4aaf47f277
wined3d: Get rid of the unused DeviceType parameter to select_shader_mode().
2009-09-17 10:09:57 -05:00
Henri Verbeet
4ba16b84a9
wined3d: Get rid of some redundant checks for ORM_FBO.
...
ORM_FBO is already implied by surface_can_stretch_rect() because
WINED3DFMT_FLAG_FBO_ATTACHABLE can only be set when ORM_FBO is.
2009-09-17 10:09:50 -05:00
Henri Verbeet
de3bd86fb6
wined3d: Don't free D3D cube textures until the wined3d cube texture is destroyed.
2009-09-17 10:09:44 -05:00
Henri Verbeet
21241432f1
wined3d: Get rid of a redundant strcpy().
2009-09-17 10:09:10 -05:00
Henri Verbeet
a286646f51
wined3d: Don't free D3D volume textures until the wined3d volume texture is destroyed.
2009-09-16 13:06:06 -05:00
Henri Verbeet
83b3d4f27a
wined3d: Move vtable initialization to the texture init functions.
2009-09-16 13:05:45 -05:00
Henri Verbeet
e9000d2e6c
wined3d: Don't free D3D volumes until the wined3d volume is destroyed.
2009-09-16 13:05:20 -05:00
Henri Verbeet
2b2d3de025
wined3d: Add a separate function for volume initialization.
2009-09-16 13:04:47 -05:00
Henri Verbeet
a5214c306f
wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.
...
This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.
2009-09-16 13:04:32 -05:00
Henri Verbeet
689984b425
wined3d: Mark internal symbols hidden.
2009-09-15 14:32:49 -05:00
Henri Verbeet
9880cd7504
wined3d: Make some variables static.
2009-09-15 14:32:36 -05:00
Henri Verbeet
2b2fc827ce
wined3d: Remove unused parameters to drawPrimitive().
2009-09-11 12:09:14 +02:00
Jaime Rave
4700038fdf
wined3d: Fix vendor detection when using an Intel X4500HD.
2009-09-09 12:07:31 +02:00
Henri Verbeet
d1f5fa65d0
wined3d: Fix some function pointers and typedefs.
2009-09-08 13:06:14 +02:00
Henri Verbeet
f8a3a5fd49
wined3d: Check the correct debug channel in shader_arb_load_constantsF().
2009-09-08 13:06:07 +02:00
Henri Verbeet
f928d6ec87
wined3d: Fix shader_arb_load_constantsF().
2009-09-08 13:06:01 +02:00
Stefan Dösinger
e1469961d4
wined3d: Test and fix ddraw and d3d9 GetDC differences.
...
The MSDN is not totally correct: A8R8G8B8 and A1R5G5B5 also allow GetDC. The
main differences that have to be filtered out in d3d9.dll are GetDC on
A8B8G8R8, X8B8G8R8 and P8.
2009-09-08 13:04:52 +02:00
Stefan Dösinger
65f3d54da5
wined3d: Silence a compiler warning.
2009-09-08 13:03:24 +02:00
Stefan Dösinger
d6547c535b
wined3d: Only generate the clipplane emulation KIL if a clipplane is used.
...
The KIL is quite expensive because it forces drivers to disable early Z
discard. It is cheaper to generate and switch between two shaders.
2009-09-08 13:03:03 +02:00
Henri Verbeet
4cdb1c9211
wined3d: Print a warning when an ARB program exceeds the native resource limits.
2009-09-02 11:25:58 +02:00
Henri Verbeet
055906e2a9
wined3d: Properly check for ARB program compile errors.
2009-09-02 11:25:58 +02:00
Henri Verbeet
c951f6925c
wined3d: Release the GL lock on IWineD3DImpl_FillGLCaps() error paths.
2009-09-02 11:25:57 +02:00
Henri Verbeet
ab8523931a
wined3d: Only warn about using Lod sample functions in fragment shaders is ARB_shader_texture_lod isn't supported.
2009-09-01 14:05:51 +02:00
Henri Verbeet
078273afa6
wined3d: Add support for ARB_depth_clamp.
2009-09-01 14:05:45 +02:00
Stefan Dösinger
9281bdb478
wined3d: SetLOD is ignored on D3DPOOL_DEFAULT textures.
...
I am not testing SYSTEMMEM and SCRATCH textures. SCRATCH textures
cannot be created, SYSTEMMEM ones cannot be used for texturing on
Windows.
2009-08-31 12:18:56 +02:00
Stefan Dösinger
edf1c50b54
wined3d: Handle per-texture max LOD level.
...
GL_TEXTURE_BASE_LEVEL matches the basetexture::SetLOD functionality.
D3DSAMP_MAXMIPLEVEL essentially does the same as SetLOD. The test included in
this patch shows that the smallest mipmap level is used.
2009-08-31 12:18:41 +02:00
Stefan Dösinger
eafc00e173
wined3d: Add a comment about D3DSAMP_MAXMIPLEVEL.
2009-08-31 12:18:10 +02:00
Stefan Dösinger
531ec2267b
wined3d: Allow filtering on RECT textures.
...
There is no reason to disable linear filtering, we just cannot use mipmapping.
2009-08-31 12:18:01 +02:00
Stefan Dösinger
52d2865521
wined3d: Remove redundant TRACEs.
...
These made sense before we had the quirk table. Nowadys the quirk
table contains quirk description strings that print out whether or not
any apple specific quirks are applied. The traces in match_apple just
spam the log because this code is run multiple times for many quirks.
2009-08-31 12:17:41 +02:00
Rico Schüller
d0b7a70b38
wined3d: Add WINED3D_SM4_OP_MIN.
2009-08-28 11:54:49 +02:00
Rico Schüller
3717e9e162
wined3d: Add WINED3D_SM4_OP_MAX.
2009-08-28 11:54:49 +02:00
Henri Verbeet
560d63548d
wined3d: Remove trailing spaces.
2009-08-27 11:45:37 +02:00
Henri Verbeet
afc06ce748
wined3d: Get rid of a redundant memset() in device_stream_info_from_declaration().
2009-08-27 11:45:37 +02:00
Henri Verbeet
c514323442
wined3d: Properly check if an attribute is used in drawStridedInstanced().
2009-08-27 11:45:37 +02:00
Jörg Höhle
b9d955b86d
wined3d: Delete meaningless UNIX GL driver version parsing.
2009-08-27 11:00:59 +02:00
Stefan Dösinger
52731a80c8
wined3d: Make it clear that glFlush and glFinish are WGL functions.
2009-08-26 14:35:41 +02:00
Stefan Dösinger
21f4e42a98
wined3d: Don't use WINED3DADAPTER_DEFAULT as refresh rate.
2009-08-26 14:35:33 +02:00
Stefan Dösinger
3f6909c1f2
wined3d: Initialize ps_arb_max_local_constants.
2009-08-26 14:35:27 +02:00
Henri Verbeet
d4e167dfbc
wined3d: Properly check if an attribute is used in remove_vbos().
2009-08-26 12:10:45 +02:00
Henri Verbeet
59c017c8bd
wined3d: Properly check if an attribute is used in state_normalize().
2009-08-26 12:10:42 +02:00
Henri Verbeet
6ef17134d2
wined3d: Properly check if an attribute is used in transform_texture().
2009-08-26 12:10:38 +02:00
Henri Verbeet
f9c791f9ca
d3d8: Use a wined3d cs for wined3d locking.
...
We will need this for d3d10, where both dxgi and d3d10core are making wined3d
calls. Right now d3d8/d3d9 also use this to protect their own data, but
eventually we should push this down into wined3d itself and use something a
bit more fine-grained. There's no good reason that doing e.g. a vertex buffer
upload in some thread should block all of wined3d.
2009-08-25 11:12:17 +02:00
Henri Verbeet
839658848c
wined3d: Properly check if an attribute is used in find_conversion_shift().
2009-08-25 11:09:45 +02:00
Henri Verbeet
bda89180e1
wined3d: Properly check if an attribute is used in streamsrc().
2009-08-25 11:09:40 +02:00
Henri Verbeet
c9f270a5d9
wined3d: Properly check if an attribute is used in drawStridedSlow().
2009-08-25 11:09:34 +02:00
Henri Verbeet
7823679e20
wined3d: Properly check if an attribute is used in state_colormat().
2009-08-24 15:17:33 +02:00
Henri Verbeet
c1c58f85ca
wined3d: Properly check if an attribute is used in drawStridedSlowVs().
2009-08-24 15:17:33 +02:00
Henri Verbeet
16b0c6a0fd
wined3d: Properly check if an attribute is used in buffer_check_attribute().
2009-08-24 15:17:33 +02:00
Henri Verbeet
850232810d
wined3d: Properly check if an attribute is used in loadTexCoords().
2009-08-24 15:17:33 +02:00
Henri Verbeet
e48350a471
wined3d: Properly check if an attribute is used in loadVertexData().
2009-08-24 15:17:32 +02:00
Henri Verbeet
0c4201d5fd
wined3d: Properly check if an attribute is used in TRACE_STRIDED.
2009-08-21 11:12:01 +02:00
Henri Verbeet
458afd64bd
wined3d: Properly check if an attribute is used in IWineD3DDeviceImpl_ProcessVertices().
2009-08-21 11:10:26 +02:00
Henri Verbeet
4ec2b09d8f
wined3d: Don't check for a "representative" in the MarkStateDirty() functions.
...
States without representative should never be called. Arguably they shouldn't
exist in the first place, but allowing them simplifies the state table.
2009-08-21 11:10:21 +02:00
Henri Verbeet
b2e543b22f
wined3d: Add a state handler for WINED3DRS_DEBUGMONITORTOKEN.
2009-08-21 11:10:15 +02:00
Henri Verbeet
a36e30b541
wined3d: Mark the correct state dirty.
2009-08-21 11:10:07 +02:00
Stefan Dösinger
3cd91a451d
wined3d: Use 50 chars for register names in texm3x3* functions.
2009-08-19 17:28:08 +02:00
Henri Verbeet
c70f3816ab
wined3d: Hide WINED3DFMT_R16G16B16A16_UNORM again.
...
This format is broken on some cards. Hide it until we figure out a reliable
way to deal with it.
2009-08-19 14:45:39 +02:00
Henri Verbeet
5a24a02ad5
wined3d: Pass the context's gl_info to state handlers.
2009-08-19 14:45:34 +02:00
Henri Verbeet
dc8b1bdc0f
wined3d: Rename some GLSL instruction handlers.
...
The pshader_glsl_* names are a leftover from when we had separate code for
vertex and fragment shaders.
2009-08-19 14:45:23 +02:00
Henri Verbeet
ffb38da024
wined3d: Try to force a top-left filling convention.
2009-08-19 14:45:09 +02:00
Henri Verbeet
92b66ac82c
wined3d: Make use_vs() safe to call from IWineD3DDeviceImpl_FindTexUnitMap().
2009-08-19 14:45:02 +02:00
Rico Schüller
d9784c1a2f
wined3d: Fix some checkGLcalls.
2009-08-19 14:41:49 +02:00
Jörg Höhle
7763da811b
wined3d: Check GL_SUPPORT prior to an ARB occlusion call.
2009-08-17 19:36:41 +02:00
Henri Verbeet
d900491310
wined3d: Replace find_clip_texcoord() with a generic function for finding a free input register.
2009-08-17 13:57:50 +02:00
Henri Verbeet
8d0ad2cf36
wined3d: Remove a redundant IWineD3DDeviceImpl_MarkStateDirty() call.
...
We should now correctly track the relevant state per-context. The
IWineD3DDeviceImpl_SetViewport() call isn't quite correct for d3d8 and d3d9,
Stefan still has a patch for that.
2009-08-17 13:57:50 +02:00
Henri Verbeet
b8078fc747
wined3d: Use WINED3D_UNMAPPED_STAGE in some more places.
2009-08-17 13:57:50 +02:00
Henri Verbeet
7a0670392c
wined3d: Check the correct vertex sampler in device_unit_free_for_vs().
2009-08-17 13:57:50 +02:00
Henri Verbeet
8cf7aa2bdd
wined3d: Don't use a start index higher than MAX_COMBINED_SAMPLERS - 1 in device_map_vsamplers().
2009-08-17 13:57:50 +02:00
Henri Verbeet
ecd2dc7603
wined3d: Make RTL_READTEX the default rendertarget locking method.
...
For most cards this should make more sense than RTL_READDRAW, even if e.g.
surface_upload_data() has some room for improvement.
2009-08-14 13:59:09 +02:00
Henri Verbeet
779ad6b9f1
wined3d: Add a separate function for guessing the card.
2009-08-14 13:59:08 +02:00
Henri Verbeet
93218c6602
wined3d: Add a separate function for guessing the driver version.
...
Note that I don't necessarily think the ATI path for example will work
correctly. This patch is just for moving it out of IWineD3DImpl_FillGLCaps().
2009-08-14 13:59:08 +02:00
Henri Verbeet
b94e89dae9
wined3d: Add a separate function for parsing the GL version.
2009-08-14 13:59:08 +02:00
Henri Verbeet
a1402e0677
wined3d: Add a separate function for guessing the vendor.
2009-08-14 13:59:08 +02:00
Henri Verbeet
c573d0a4c9
wined3d: Escape GL strings with debugstr_a() in IWineD3DImpl_FillGLCaps().
2009-08-14 13:59:08 +02:00
Henri Verbeet
914a21740c
wined3d: Recognize GL_VENDOR "Tungsten Graphics, Inc." as VENDOR_MESA.
2009-08-13 11:45:42 +02:00
Henri Verbeet
e205973915
wined3d: Remove the redundant vs_nv_version and ps_nv_version fields from struct wined3d_gl_info.
2009-08-13 11:45:36 +02:00
Henri Verbeet
fbc3cf89e2
wined3d: Remove some unused fields from struct wined3d_gl_info.
2009-08-13 11:45:24 +02:00
Henri Verbeet
42c2d06bc0
wined3d: Don't make wgl calls from under the GL lock.
2009-08-13 11:45:17 +02:00
Henri Verbeet
f7918b978f
wined3d: Make the "luminanceparams" shader_reg_maps member a bitmap.
2009-08-12 13:22:50 +02:00
Henri Verbeet
95bb4c0486
wined3d: Make the "bumpmat" shader_reg_maps member a bitmap.
2009-08-12 13:22:44 +02:00
Henri Verbeet
3d718d6414
wined3d: Make the "labels" shader_reg_maps member a bitmap.
2009-08-12 13:22:37 +02:00
Henri Verbeet
270f57e755
wined3d: Make the "address" shader_reg_maps member a bitmap.
2009-08-12 13:22:30 +02:00
Henri Verbeet
3ec639e38c
wined3d: Fix swapchain draw buffer cleanup.
...
Destroying the first back buffer before the other ones might cause an already
freed surface to be used as target in FindContext().
2009-08-12 13:22:25 +02:00
Henri Verbeet
6fa9fa15da
wined3d: Make the "temporary" shader_reg_maps member a bitmap.
2009-08-11 12:36:20 +02:00
Henri Verbeet
50853e295b
wined3d: Make the "texcoord" shader_reg_maps member a bitmap.
2009-08-11 12:36:16 +02:00
Henri Verbeet
a282380f08
wined3d: Fix the type of the shader_reg_maps bitfields.
2009-08-11 12:36:12 +02:00
Henri Verbeet
b2ace3b1ab
wined3d: Correctly check for luminance bumpmap parameters in shader_generate_glsl_declarations().
2009-08-11 12:35:49 +02:00
Henri Verbeet
76fdf2c1a5
wined3d: Handle GetData() on event queries that aren't started yet.
...
This fixes a regression introduced by fb77678e9f
.
2009-08-11 12:35:43 +02:00
Francois Gouget
e74efb5487
Assorted spelling fixes.
2009-08-11 12:35:38 +02:00
Henri Verbeet
cbd555bbc9
wined3d: Get rid of the unused vbo_mode setting.
2009-08-10 13:53:11 +02:00
Henri Verbeet
6794a57073
wined3d: Return ~0U for wined3d_log2i(0).
2009-08-10 13:53:05 +02:00
Henri Verbeet
3b06fc92f4
wined3d: Use EXT_provoking_vertex to match Direct3D's provoking vertex convention.
2009-08-10 13:52:50 +02:00
Henri Verbeet
ac64bf6406
wined3d: Detect EXT_provoking_vertex.
2009-08-10 13:52:43 +02:00
Henri Verbeet
8d746c31ba
wined3d: Properly handle negative loop step in shader_glsl_loop().
2009-08-10 13:52:37 +02:00
Roderick Colenbrander
5a00c8053e
wined3d: Get rid of two dead render target lock mode options.
2009-08-10 13:10:49 +02:00
Stefan Dösinger
4f9f8fef0b
wined3d: Dirtify the correct state.
2009-08-07 14:57:09 +02:00
Stefan Dösinger
6f5a1d9a15
wined3d: Filter WINED3DSTENCILCAPS_TWOSIDED in d3d8.
2009-08-07 14:56:48 +02:00
Stefan Dösinger
296573caae
d3d: Filter R8G8B8 in d3d8 and d3d9.
2009-08-07 14:56:40 +02:00
Stefan Dösinger
14eedc5be7
wined3d: Watch out about higher constants when clamping ps 1.x consts.
...
ps 1.x supports only 8 constants, so the shader load code dirtifies the
first 8 on a shader switch. However, the constant load code reloaded all dirty
consts with clamping. That potentially left constants > 8 clamped.
2009-08-07 14:56:33 +02:00
Henri Verbeet
35826e9761
wined3d: Fix a condition in record_lights().
2009-08-07 12:11:35 +02:00
Henri Verbeet
41729ca919
wined3d: Check the return value of wglDeleteContext() in context_destroy_gl_resources().
2009-08-07 12:11:27 +02:00
Henri Verbeet
7ed116da2e
wined3d: Merge the context->current_rt check for rendertarget readback with the code above.
...
Also update the comments.
2009-08-07 12:11:17 +02:00
Henri Verbeet
0479fb13b5
wined3d: Explicitly pass the context to drawStridedSlow().
2009-08-07 12:11:10 +02:00
Henri Verbeet
3bf0ad4528
wined3d: Explicitly pass the context to the shader_select() handler.
2009-08-07 12:11:06 +02:00
Stefan Dösinger
c6d3e75482
wined3d: Not all cards support float16 filtering.
2009-08-06 17:26:31 +02:00
Henri Verbeet
4c1b3de936
wined3d: Call the shader_load_np2fixup_constants() handler directly from inside the shader backend.
2009-08-06 17:26:30 +02:00
Henri Verbeet
03686cb6bd
wined3d: Explicitly pass the context to the shader_load_constants() handlers.
2009-08-06 17:26:30 +02:00
Henri Verbeet
a7251f0f4e
wined3d: Track render_offscreen in the context.
...
This makes sure the relevant states in FindContext() are actually marked dirty
when needed.
2009-08-06 17:26:30 +02:00
Henri Verbeet
b04e992a65
wined3d: Set the WINED3DTEXF_NONE entry in the minification lookup table to GL_NEAREST.
...
Although WINED3DTEXF_NONE is not a valid minification filter, having it in the
tables simplifies the lookup. GL_NEAREST is more appropriate than GL_LINEAR
though.
2009-08-06 17:26:29 +02:00
Henri Verbeet
7165bd19c1
wined3d: WINED3DTEXF_NONE only makes sense as a mip filter.
2009-08-05 11:20:43 +02:00
Henri Verbeet
9e8f7898c9
wined3d: Get rid of the ANISOTROPIC entry from the filter lookup tables.
...
Anisotropy and texture filters are orthogonal in GL. In D3D
D3DTEXF_ANISOTROPIC just selects the best (linear) filter type and enables
anisotropy.
2009-08-05 11:20:36 +02:00
Henri Verbeet
62ac872b36
wined3d: Remove a redundant check from basetexture_get_autogen_filter_type().
...
This is already initialized to an appropriate value in basetexture_init().
Also fix the indentation while we're at it.
2009-08-05 11:20:24 +02:00
Henri Verbeet
a86f31658b
wined3d: Move texture filter lookup table initialization to basetexture_init().
2009-08-05 11:20:19 +02:00
Henri Verbeet
351d6de818
wined3d: Add functions to lookup texture filters.
2009-08-05 11:20:09 +02:00
Henri Verbeet
0f161dc10f
wined3d: Remove some unused code.
2009-08-05 11:19:59 +02:00
Stefan Dösinger
2858f67a2a
wined3d: Enable WINED3DFMT_R16G16B16A16_UNORM.
2009-08-05 11:19:46 +02:00
Stefan Dösinger
f3b39d9085
wined3d: Preload the correct texture location.
2009-08-05 11:19:35 +02:00
Stefan Dösinger
f53451ddac
wined3d: Only use WINE_normalized_texrect if ARB_texture_np2 is supported.
2009-08-05 11:19:26 +02:00
Stefan Dösinger
2e9362d0fb
wined3d: ARB clipplane init needs the helper constant.
2009-08-05 11:19:14 +02:00
Henri Verbeet
d4159adbc8
wined3d: Statically initialize the filter lookup tables.
...
Also add some comments.
2009-08-04 13:04:23 +02:00
Henri Verbeet
b30a31e09a
wined3d: Set a more appropriate value for the ANISOTROPIC/NONE min/mip filter.
2009-08-04 13:04:11 +02:00
Henri Verbeet
25fe98e02b
wined3d: Don't disable mipmapping if we lack EXT_texture_filter_anisotropic.
...
These don't have a whole lot to do with each other.
2009-08-04 13:04:05 +02:00
Henri Verbeet
efb78aca64
wined3d: Update the WINED3DSAMP_MAGFILTER state even if we didn't recognize the value.
...
It's a bit pointless to keep printing FIXMEs after the first time.
2009-08-04 13:03:44 +02:00