Stefan Dösinger
0e77a381ea
wined3d: Create clip coords only if they are used.
...
If GL vertex shader clipping is supported (GLSL or NVvp), we currently
always calculate clipping results in the shader. They're gracefully
discarded by opengl, but we need 6 constants / uniforms to calculate
unused values.
2009-11-12 15:18:00 +01:00
Henri Verbeet
5487009624
wined3d: Report a driver version appropriate for the reported OS.
2009-11-12 13:14:39 +01:00
Henri Verbeet
8d351a1141
wined3d: Initialize "context[0]" in IWineD3DDeviceImpl_CreateSwapChain() when not using OpenGL (Valgrind).
2009-11-04 13:07:57 +01:00
Austin English
5f0940e08a
wined3d: Add version resource.
2009-11-04 11:54:59 +01:00
Marcus Meissner
9f8a73ab96
wined3d: Check for NULL before context_release (Coverity).
2009-11-03 21:22:46 +01:00
Stefan Dösinger
8eef221d20
d3d: Handle the pointsize_min default difference in d3d8.
2009-11-03 21:22:12 +01:00
Stefan Dösinger
d4275e87f1
wined3d: Add a usage flag for static buffer declarations.
2009-11-03 21:21:55 +01:00
Stefan Dösinger
63326b1925
wined3d: Add a usage flag for vertex buffer optimization.
2009-11-03 21:21:48 +01:00
Stefan Dösinger
90e443758a
wined3d: Add a parameter for SetRenderTarget viewport setup.
2009-11-03 21:21:30 +01:00
Henri Verbeet
bf10dbe8a6
wined3d: Map D3DFMT_D24S8 to WINED3DFMT_D24_UNORM_S8_UINT.
...
The internal order of the depth and stencil bits is unspecified since the
format isn't lockable.
2009-10-30 11:28:52 +01:00
Henri Verbeet
fbae08672b
wined3d: It's not an error to request multisampling.
2009-10-30 11:28:35 +01:00
Henri Verbeet
be8026adf6
wined3d: directly pass gl_info to stream_info_element_from_strided().
2009-10-29 13:09:37 +01:00
Henri Verbeet
111307dfba
wined3d: Get rid of the GL_SUPPORT macro.
2009-10-29 13:09:33 +01:00
Henri Verbeet
48e03bc189
wined3d: Introduce a separate structure for various OpenGL implementation limits.
2009-10-29 13:09:27 +01:00
Henri Verbeet
d7b087618b
wined3d: Remove some unused GLINFO_LOCATION definitions.
2009-10-29 13:09:20 +01:00
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