Commit Graph

644 Commits

Author SHA1 Message Date
Henri Verbeet a4477fea4a wined3d: Pass an IWineD3DDeviceImpl pointer to free_private(). 2010-12-02 11:54:15 +01:00
Henri Verbeet 6b9118e462 wined3d: Pass an IWineD3DDeviceImpl pointer to alloc_private(). 2010-12-02 11:54:10 +01:00
Henri Verbeet 00550613e7 wined3d: Remove a redundant parameter to enable_extension(). 2010-12-02 11:54:03 +01:00
Henri Verbeet efb185dcd5 wined3d: Rename the wined3d_format "Flags" field to "flags". 2010-11-12 15:43:08 +01:00
Michael Stefaniuc 1183383a6f wined3d: Fix some checkGLcall() messages. 2010-11-05 17:15:34 +01:00
Stefan Dösinger f89fdb4429 wined3d: Don't reapply lighting when vertex shaders are used.
If a vertex shader is used the GL_LIGHTING state is ignored. If the
shader is turned off state_vdecl is called anyway, so it will adjust the
lighting state to match the available fixed function vertex attributes.
2010-11-01 11:43:45 +01:00
Stefan Dösinger 5082c57e77 wined3d: Don't pass the texture stages to basetexture_apply_state_changes. 2010-11-01 11:43:35 +01:00
Henri Verbeet 1b2f9d29d7 wined3d: Get rid of the posFixup field from the device. 2010-10-26 11:58:12 +02:00
Henri Verbeet 5ef7a8c242 wined3d: Explicitly pass parameters to shader_load_np2fixup_constants(). 2010-10-25 14:29:37 +02:00
Henri Verbeet a7ded9a67d wined3d: Pass a wined3d_state structure to use_ps(). 2010-09-28 17:33:17 +02:00
Henri Verbeet 9224751a13 wined3d: Pass a wined3d_state structure to use_vs(). 2010-09-28 17:33:17 +02:00
Henri Verbeet 5013ec83de wined3d: Consistently use the same stateblock in state_colormat().
These should refer to the same stateblock when we're drawing, but it's still
ugly.
2010-09-24 11:34:15 +02:00
Henri Verbeet 23e286613f wined3d: Directly pass the texture to texture_activate_dimensions(). 2010-09-24 11:34:14 +02:00
Henri Verbeet 67b7a573b9 wined3d: Pass a wined3d_state structure to set_tex_op(). 2010-09-24 11:34:14 +02:00
Henri Verbeet 578df29b9f wined3d: Pass a wined3d_state structure to set_tex_op_nvrc(). 2010-09-23 12:06:31 +02:00
Henri Verbeet 478a0aae38 wined3d: Pass a wined3d_state structure to is_invalid_op().
Instead of an entire device.
2010-09-23 12:06:27 +02:00
Henri Verbeet f870cf07e8 wined3d: Move clip status to wined3d_state. 2010-09-22 12:41:22 +02:00
Henri Verbeet 9ce3c61a41 wined3d: Move clip plane state to wined3d_state. 2010-09-22 12:41:18 +02:00
Henri Verbeet 4546a13d98 wined3d: Move light state to wined3d_state. 2010-09-22 12:41:13 +02:00
Henri Verbeet 98a91e84bc wined3d: Move base vertex state to wined3d_state. 2010-09-21 14:17:07 +02:00
Henri Verbeet 902630efb5 wined3d: Move index buffer state to wined3d_state. 2010-09-21 14:17:03 +02:00
Henri Verbeet 153d8d43aa wined3d: Move stream state to wined3d_state. 2010-09-21 14:16:58 +02:00
Henri Verbeet 33dfb9539c wined3d: Move the pixel shader to wined3d_state. 2010-09-20 13:48:13 +02:00
Henri Verbeet d728d5f0ec wined3d: Move texture bindings to wined3d_state. 2010-09-18 13:05:49 +02:00
Henri Verbeet 5a3a4ac77a wined3d: Remove IWineD3DBaseTexture::GetTextureDimensions() from the public wined3d interface. 2010-09-18 13:05:44 +02:00
Ričardas Barkauskas dc1356484c wined3d: Add NVDB support. 2010-09-16 10:12:33 -05:00
Henri Verbeet 8fdfc736bf wined3d: Move sampler states to wined3d_state. 2010-09-16 10:12:24 -05:00
Henri Verbeet 5b3c1a2082 wined3d: Move texture states to wined3d_state. 2010-09-16 10:12:17 -05:00
Henri Verbeet 597da9907a wined3d: Move transforms to wined3d_state. 2010-09-16 10:12:06 -05:00
Henri Verbeet 5f6ced2767 wined3d: Move the material to wined3d_state. 2010-09-16 10:11:57 -05:00
Henri Verbeet 16d9c91b97 wined3d: Move the viewport to wined3d_state. 2010-09-15 10:33:26 -05:00
Henri Verbeet 937eb7e600 wined3d: Move the scissor rect to wined3d_state. 2010-09-15 10:33:20 -05:00
Henri Verbeet 1ef4f075c1 wined3d: Introduce a separate structure for stateblock states.
We'd like to not pass an entire stateblock to things like state handlers and
the shader backend, because those then use the stateblock to get to the
device and through there to all the rest of wined3d. This would also be
required for serialization of wined3d draw and state change commands into a
single GL context. Resource updates would be explicitly excluded from
serialization.
2010-09-15 10:33:14 -05:00
Henri Verbeet 6ce848bee4 wined3d: Introduce a structure for stream state. 2010-09-14 11:43:54 -05:00
Henri Verbeet b68d257710 wined3d: Get rid of redundant comparisons against NULL / 0. 2010-09-14 09:43:33 -05:00
Joris Huizer 2fd50cb4b8 wined3d: Fix typo in checkGLcall. 2010-09-09 12:45:30 +02:00
Henri Verbeet 952dfe30be wined3d: Translate before scaling for rhw as well in transform_projection(). 2010-09-06 16:14:22 +02:00
Henri Verbeet 3a7f08a56f wined3d: Rename wined3d_format_desc to wined3d_format. 2010-08-31 14:23:47 +02:00
Henri Verbeet b233e7b301 wined3d: Rename the "format" field in wined3d_format_desc to "id". 2010-08-26 12:41:44 +02:00
Stefan Dösinger 515eb3d7c4 wined3d: MSVC fixes in state.c. 2010-08-02 12:55:23 +02:00
Henri Verbeet c411b45da9 wined3d: Use a more consistent name for the normalized texrect "extension". 2010-07-21 09:33:18 +02:00
Henri Verbeet e8ac9bbd7f wined3d: Get rid of GLINFO_LOCATION. 2010-05-25 13:29:00 +02:00
Henri Verbeet b5cec57690 wined3d: Set the state.c GLINFO_LOCATION to *gl_info. 2010-05-25 13:28:14 +02:00
Michael Stefaniuc 6d89364ad1 wined3d: Avoid using the long type. 2010-05-21 18:58:04 +02:00
Henri Verbeet 5dff410254 wined3d: Explicitly pass GL info to buffer_get_sysmem(). 2010-05-21 14:37:52 +02:00
Henri Verbeet d5b68e7640 wined3d: Make sure all fields of the fragment pipe caps are always initialized. 2010-05-03 13:50:45 +02:00
Henri Verbeet 958b523707 wined3d: Store texture sub-resources in IWineD3DBaseTextureClass. 2010-04-25 07:26:51 -05:00
Henri Verbeet c5de1e1045 wined3d: Store the depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device. 2010-04-20 11:14:42 +02:00
Henri Verbeet c7a1848656 wined3d: Store render targets as IWineD3DSurfaceImpl pointers in the device. 2010-04-20 11:14:30 +02:00
Henri Verbeet 43e89cb981 wined3d: Prune unsupported world matrix transform states. 2010-04-13 21:13:54 +02:00
Henri Verbeet 284e92def9 wined3d: Validate some more states. 2010-04-08 12:26:07 +02:00
Henri Verbeet e24473d531 wined3d: Update shader constants on viewport changes.
Otherwise the vertex shader will see stale posFixup values.
2010-04-08 12:25:51 +02:00
Henri Verbeet cece23c7c9 wined3d: Get rid of state_nogl().
It's unused, all states that have this as handler have a 0 representative.
2010-04-08 12:25:43 +02:00
Henri Verbeet 3f79ba3019 wined3d: Add an extensionless STATE_INDEXBUFFER handler. 2010-04-08 12:25:38 +02:00
Henri Verbeet 23bfdecd8b wined3d: Verify all render states have a handler. 2010-04-02 10:36:17 +02:00
Henri Verbeet 2e5976a8c5 wined3d: Move handling of the unimplemented WINED3DRS_BORDERCOLOR state to ddraw. 2010-04-02 10:35:54 +02:00
Henri Verbeet e62771f7f7 wined3d: Add a state handler for WINED3DRS_ZVISIBLE. 2010-04-02 10:35:37 +02:00
Henri Verbeet ef34b0ba06 wined3d: Verify state representatives represent themselves.
This ensures there's no multilevel indirection in the state table.
2010-04-02 10:35:30 +02:00
Henri Verbeet 8afeb34559 wined3d: Add a state table entry for WINED3DRS_INDEXEDVERTEXBLENDENABLE. 2010-04-01 18:12:42 +02:00
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