Commit Graph

535 Commits

Author SHA1 Message Date
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