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