Henri Verbeet
f4330add39
wined3d: Verify each state table entry has either a handler or a representative.
2010-04-01 18:12:42 +02:00
Henri Verbeet
57cfd613a5
wined3d: Explicitly set the state handler to NULL for states with a representative.
...
We should never call the handler for states that have a rep.
2010-04-01 18:12:42 +02:00
Henri Verbeet
f70193b915
wined3d: Use the rep instead of the apply function to determine if a state is used.
2010-04-01 18:12:42 +02:00
Henri Verbeet
03c472bff0
wined3d: Don't call directly into the state table.
2010-04-01 18:12:42 +02:00
Henri Verbeet
a298f37a9a
wined3d: Add a state table entry for WINED3DRS_TWEENFACTOR.
2010-03-31 16:32:57 +02:00
Henri Verbeet
6e1ed1c167
wined3d: Print a FIXME/WARN for all unsupported vertex blend flags.
2010-03-31 16:32:52 +02:00
Henri Verbeet
941c7da08e
wined3d: Don't warn about independent color write masks when the masks are all the same.
2010-03-26 10:29:34 +01:00
Henri Verbeet
4651dd86bf
wined3d: Implement independent color write masks.
2010-03-26 10:29:29 +01:00
Henri Verbeet
f2bcd32bff
wined3d: Replace some VTRACEs with proper TRACEs.
2010-03-18 10:24:51 +01:00
Henri Verbeet
4c7bcb883b
wined3d: Set the texture stage limit based on the fragment pipe caps.
2010-02-05 10:06:08 +01:00
Henri Verbeet
576ea95803
wined3d: Remove the unused device type parameter from the shader backend's get_caps() function.
2010-02-04 13:39:27 +01:00
Henri Verbeet
040452ad90
wined3d: Update the stream info before applying states.
2010-02-03 13:54:02 +01:00
Henri Verbeet
31d51fb175
wined3d: Preload textures before applying states.
2010-02-03 13:54:02 +01:00
Henri Verbeet
d66f5345e6
wined3d: Prune invalid states from the state table.
2010-01-29 13:30:06 +01:00
Henri Verbeet
19516bf69f
wined3d: Add some basic state table validation.
2010-01-29 13:30:05 +01:00
Henri Verbeet
a3e1a6f2ee
wined3d: Use correct texture stage limits in a couple of places.
2010-01-28 11:08:14 +01:00
Henri Verbeet
69861cf873
wined3d: Get rid of the depth range hack.
2010-01-27 11:16:07 +01:00
Henri Verbeet
fe1024ae4f
wined3d: Add a FIXME for missing ARB_depth_clamp support.
2010-01-27 11:15:45 +01:00
Henri Verbeet
98568f0ba1
wined3d: Add support for ARB_vertex_array_bgra.
2010-01-26 12:08:27 +01:00
Henri Verbeet
5bac33d358
wined3d: Remove a few redundant context dereferences.
2010-01-05 12:19:09 +01:00
Henri Verbeet
f50b4c7d71
wined3d: Move "wrap_lookup" to struct wined3d_gl_info.
2010-01-04 11:41:28 +01:00
Henri Verbeet
2c0edb94e3
wined3d: Fix WINED3DRS_DEPTHBIAS handling.
2009-12-31 12:12:17 +01:00
Henri Verbeet
ea2f7a2739
wined3d: Remove some redundant returns.
2009-12-30 13:31:26 +01:00
Henri Verbeet
b3defd4c80
wined3d: Rename "wineD3DDevice" to "device".
2009-12-10 11:54:47 +01:00
Henri Verbeet
bfe6695d30
wined3d: Only disable blending for offscreen targets.
2009-12-09 13:51:08 +01:00
Anders Jonsson
58b203e798
wined3d: Fix typo.
2009-11-16 13:47:49 +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
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
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
3bc9d1894d
wined3d: Rename PLIGHTINFOEL to something less awful.
2009-10-14 11:26:17 +02:00
Stefan Dösinger
eda00d97ad
d3d9: Test viewports that are bigger than the surface.
2009-10-02 15:06:38 +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
078273afa6
wined3d: Add support for ARB_depth_clamp.
2009-09-01 14:05: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
bda89180e1
wined3d: Properly check if an attribute is used in streamsrc().
2009-08-25 11:09:40 +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
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
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
5a24a02ad5
wined3d: Pass the context's gl_info to state handlers.
2009-08-19 14:45:34 +02:00
Henri Verbeet
ffb38da024
wined3d: Try to force a top-left filling convention.
2009-08-19 14:45:09 +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
3bf0ad4528
wined3d: Explicitly pass the context to the shader_select() handler.
2009-08-07 12:11:06 +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
da1e5573da
wined3d: Rename WineD3DContext to struct wined3d_context.
2009-08-03 15:01:48 +02:00
Henri Verbeet
2c71b85334
wined3d: Explicitly pass the context to get_drawable_size().
2009-07-24 13:10:37 +02:00
Henri Verbeet
43e6686a78
wined3d: Rename _WineD3D_GL_Info to struct wined3d_gl_info.
2009-07-17 11:22:07 +02:00
Stefan Dösinger
8a6553da14
wined3d: Only use 4 component specular colors if GL allows it.
2009-07-10 13:07:33 +02:00
Henri Verbeet
2ac34bf231
wined3d: Add some missing float suffixes.
...
The compiler should be smart enough to fix most of these, but it looks sloppy.
2009-07-07 11:50:05 +02:00
Tobias Jakobi
05c4d0a8b0
wined3d: Fix comments about NP2 fixup.
2009-07-02 11:57:01 +02:00
Henri Verbeet
7363b6e2e3
wined3d: Document GL context dependencies.
2009-06-26 12:05:07 +02:00
Stefan Dösinger
3f5936f6f7
wined3d: Don't set unloaded arrays to zero.
...
This causes memory corruption on MacOS, even if the app does not
reference undeclared arrays. Trying to avoid potential breakage in
broken apps which provoke undefined behavior is pointless if it causes
actual breakage in well-behaved apps (on ill-behaved drivers).
2009-06-10 11:52:58 +02:00
Henri Verbeet
a44f84fdf7
wined3d: Add a proper enum value for "no extension".
...
This would allow an extension check for ARB_COLOR_BUFFER_FLOAT to work.
2009-06-04 12:19:02 +02:00
Stefan Dösinger
1276b090b4
wined3d: Update clipplanes on a shader-fixed function switch.
...
The view matrix that was set at the time the clipplane was applied is
hardcoded into the clipplane. With vertex shaders clip planes ignore
the view matrix in d3d. We implement that, but this also means that
the clip planes potentially change when we switch between vs and fixed
func.
2009-06-02 12:09:46 +02:00
Stefan Dösinger
2cb8f42168
wined3d: Support clipplanes with GLSL.
...
This is the Nth attemt to make clipping work with GLSL shaders. The patch now
uses the GLSL quirk table to handle cards that need a custom varying for
gl_ClipPos, and the code is adapted to the changed state table and shader
backend system.
2009-05-18 13:59:16 +02:00
Henri Verbeet
b35e469d9d
wined3d: Document functions that depend on the caller to do GL locking.
2009-05-15 10:25:41 +02:00
Henri Verbeet
91c3a5eac1
wined3d: Directly call basetexture_apply_state_changes().
...
All the implementations of IWineD3DBaseTexture::ApplyStateChanges() forward to
basetexture_apply_state_changes().
2009-05-13 11:55:01 +02:00
Stefan Dösinger
668328a697
wined3d: Work around a bad crash in fglrx.
2009-05-08 12:16:50 +02:00
Stefan Dösinger
3dc55010ea
wined3d: Fix a few more direct buffer accesses.
2009-04-28 13:10:02 +02:00
Tobias Jakobi
6e970c5d95
wined3d: glsl: Enable load_np2fixup_constants.
2009-04-10 14:00:58 +02:00
Stefan Dösinger
2a7a237170
wined3d: Merge indexbuffer and buffer implementations.
2009-04-08 11:37:24 +02:00
Tobias Jakobi
94a7cd42ed
wined3d: Simplify sampler_texmatrix using pow2Matrix_identity.
2009-03-31 12:40:30 +02:00
Tobias Jakobi
38239be58c
wined3d: GLSL: Implement texrect coord fixup.
2009-03-31 12:40:21 +02:00
Henri Verbeet
ef2d704183
wined3d: Store the format_desc itself in struct wined3d_stream_info_element.
2009-03-30 15:11:24 +02:00
Stefan Dösinger
8d4ac8ac1b
wined3d: Remove a TODO.
...
init_materials() doesn't exist, and I don't know what the TODO means with
primitive type (the diffuse stuff is already handled properly).
2009-03-30 14:21:08 +02:00
Henri Verbeet
4434d00f84
wined3d: Unify vertex and texture formats.
...
Some fields should be redundant now, eg. gl_vtx_type and glType. I'll leave
that for a different patch to fix though.
2009-03-27 15:51:25 +01:00
Henri Verbeet
d7c7c76850
wined3d: Use separate structures for ddraw style strided data and wined3d's internal stream info.
2009-03-27 15:51:25 +01:00
Henri Verbeet
c0c1c42288
wined3d: Pass the number of components to glVertexBlendARB().
2009-03-26 14:48:16 +01:00
Henri Verbeet
663e5a6a4c
wined3d: Simplify the "transformed" check in state_lighting().
...
It doesn't really matter if lighting is enabled or not if we don't have
position data.
2009-03-26 14:48:10 +01:00
Henri Verbeet
6afd97cc9f
wined3d: Remove unused attributes from WineDirect3DVertexStridedData.
...
These are essentially unused, and mostly just complicate the code.
2009-03-26 14:47:52 +01:00
Henri Verbeet
42e31a4242
wined3d: Fix a few sign compare warnings.
2009-03-25 11:12:30 +01:00
Henri Verbeet
771fe7fd8a
wined3d: Implement WINED3DTSS_TCI_SPHEREMAP.
2009-03-25 11:12:07 +01:00
Henri Verbeet
3234a4af2d
wined3d: Reduce the number of checkGLcall's in tex_coordindex() a bit.
2009-03-25 11:12:02 +01:00
Henri Verbeet
61cd872fa7
wined3d: Print a FIXME in tex_coordindex() when NV_TEXGEN_REFLECTION isn't supported.
2009-03-25 11:11:57 +01:00
Henri Verbeet
f63313fe3e
wined3d: Fix the indentation in tex_coordindex().
...
The indentation here is pretty horrible. Also removes a couple of fairly
useless comments.
2009-03-25 11:11:32 +01:00
Henri Verbeet
8255dde127
wined3d: Print a warning when the stage isn't mapped to a valid texture unit in tex_coordindex().
2009-03-25 11:11:24 +01:00
Henri Verbeet
a56e3a102b
wined3d: Only return a pointer to struct GlPixelFormatDesc from getFormatDescEntry().
2009-03-13 11:29:10 +01:00
Henri Verbeet
1dcf222ab2
wined3d: Get rid of some calls to getFormatDescEntry().
...
Use the format description stored in the resource instead.
2009-03-12 13:09:55 +01:00
Henri Verbeet
4ff5736edf
wined3d: Don't compare texUnitMap entries to -1.
2009-03-09 14:39:34 +01:00
Henri Verbeet
a3df476706
wined3d: Buffer object ID's are supposed to be unsigned.
2009-03-09 14:39:18 +01:00
Henri Verbeet
aa3027a604
wined3d: Merge IWineD3DVertexBuffer with IWineD3DBuffer.
...
That still leaves IWineD3DIndexBuffer, but that code is also mostly similar,
except for the conversion code (which will be unused there).
2009-03-06 15:35:58 +01:00
Stefan Dösinger
6012475e59
wined3d: Properly update last_was_pshader.
2009-02-24 16:57:30 +01:00
Henri Verbeet
828f42cb1f
wined3d: Add some traces to state handlers.
...
Should make it a bit clearer what's happening in some cases.
2009-02-19 12:53:44 +01:00
Stefan Dösinger
4386a827e9
wined3d: Pass the requested srgb flag to PreLoad.
...
Add a new wined3d-internal PreLoad function to textures and surfaces
that takes a parameter specifying wether the rgb or srgb texture
should be loaded.
2009-02-17 12:51:36 +01:00
Stefan Dösinger
c585b4de99
wined3d: Duplicate GL textures for srgb switching.
...
This reduces the number of srgb switching reloads quite a lot. The only
situation in which a reload is needed is if the rgb copy is modified on the GL
side and the srgb copy is needed.
2009-02-17 12:48:05 +01:00
Henri Verbeet
bae1ec98ca
wined3d: Don't use drawStridedFast() for drawing pretransformed vertices.
...
This was exposed by adding EXT_vertex_array_bgra support, previously we would
almost never hit this because color data being present would already prevent
us from using drawStridedFast(). Thanks to Stefan for spotting this.
2009-01-23 13:12:58 +01:00
Henri Verbeet
0cc5f0d3eb
wined3d: Don't use drawStridedFast() when pointsize data is present.
2009-01-23 13:12:52 +01:00
Henri Verbeet
e82eef28f9
wined3d: Take EXT_vertex_array_bgra into account in send_attribute() and loadNumberedArrays().
2009-01-23 13:12:47 +01:00
Stefan Dösinger
50109aa969
wined3d: Get rid of last_was_foggy_shader & friends.
...
The fog settings do not depend on wether the shader writes to oFog or not,
instead they depend on the FOGVERTEXMODE and FOGTABLEMODE settings, and if a
vertex shader is bound at all.
It works the same way as with the fixed function, and having a vertex shader
is the same as using pretransformed vertices, just that the fog coord comes
from the shader instead of the specular color:
FOGTABLEMODE != NONE: The Z coord is used, oFog is ignored
FOGTABLEMODE == NONE, with VS: oFog is used
FOGTABLEMODE == NONE, no VS, XYZ: Z is used
FOGTABLEMODE == NONE, no VS, XYZRHW: diffuse color is used
2009-01-20 12:45:40 +01:00
Henri Verbeet
44240eff27
wined3d: Remove some comments.
2009-01-15 12:43:32 +01:00
Stefan Dösinger
365e1f3b07
wined3d: Avoid hooking non-fog glEnable/glDisable calls.
...
This prevents fallout from the GL_EXT_fog_coord emulation. glEnable
and glDisable calls other than those that change GL_FOG are not
hooked. The glEnableWINE and glDisableWINE functions can be used to
add other hooks too if ever needed.
2009-01-12 13:03:47 +01:00
Stefan Dösinger
1deafcb5a7
wined3d: Split the remains of state_fog.
2009-01-12 13:02:49 +01:00