Commit Graph

459 Commits

Author SHA1 Message Date
Stefan Dösinger 149a85c2e7 d3d: Remove high level patch support.
No Windows driver ever exposed this, and no game uses this. The
only application that used this feature is a DirectX 8 SDK sample.
2013-01-25 11:29:41 +01:00
Henri Verbeet 3e7c800e9c wined3d: Get rid of the user_stream field from wined3d_state.
All remaining uses are equivalent to "device->up_strided". (Which should of
course eventually go away as well.)
2013-01-07 11:12:23 +01:00
Henri Verbeet 3046a2cbef wined3d: Get rid of some useless braces in draw_primitive(). 2013-01-03 16:43:45 +01:00
Henri Verbeet 78984cf46c wined3d: Get rid of ENTER_GL / LEAVE_GL. 2012-12-11 12:03:39 +01:00
Henri Verbeet 1835e2f5ba wined3d: Add support for ARB_instanced_arrays. 2012-12-03 12:37:49 +01:00
Henri Verbeet 52c6abb485 wined3d: Resolve the instance count for instanced arrays in load_numbered_arrays(). 2012-12-03 12:37:42 +01:00
Henri Verbeet 7f62678c16 d3d10core: Implement d3d10_device_DrawIndexedInstanced(). 2012-11-27 16:54:57 +01:00
Henri Verbeet e35f773b0b wined3d: Also issue any queries for index buffers in drawPrimitive(). 2012-08-20 11:01:21 +02:00
Henri Verbeet 894d161891 wined3d: Call core GL functions through gl_info.gl_ops as well. 2012-07-25 20:10:08 +02:00
Alexandre Julliard d7250e97ed wined3d: Fetch GL functions from the WGL driver table, including glFinish and glFlush. 2012-07-20 13:21:27 +02:00
Alexandre Julliard 2f31a66941 wined3d: Load glPointParameter functions as extensions rather than standard OpenGL functions. 2012-07-19 16:47:49 +02:00
Henri Verbeet 1a93983bd4 wined3d: Use NAN. 2012-05-30 17:17:59 +02:00
Henri Verbeet 29893d8162 wined3d: Determine index buffer location based on vertex buffer locations. 2012-05-03 11:18:03 +02:00
Henri Verbeet a8a201cf61 wined3d: Figure out the index data pointer inside drawPrimitive().
We want to do this after context_apply_draw_state(), when resource locations
are all setup.
2012-05-02 11:59:14 +02:00
Henri Verbeet 64e41dae8a wined3d: Figure out the index size inside drawPrimitive(). 2012-05-02 11:59:10 +02:00
Henri Verbeet 42b835754b wined3d: Keep track of "all_vbo" in the stream info structure. 2012-05-01 14:44:15 +02:00
Henri Verbeet 1ec21e323b wined3d: Rename WineD3DRectPatch to wined3d_rect_patch. 2012-01-20 13:31:36 +01:00
Matteo Bruni cbf641e9e0 wined3d: Modify depth-stencil location flags only after allocating the new location. 2012-01-13 17:34:30 +01:00
Henri Verbeet 7dac3e0921 wined3d: Get rid of the WINED3DBASISTYPE typedef. 2012-01-12 12:37:24 +01:00
Matteo Bruni 1c14c0d2fc wined3d: Don't use separate location flags for depth buffers. 2012-01-10 10:48:26 +01:00
Henri Verbeet 43fcbcb36e wined3d: Get rid of the WINED3DTEXTURESTAGESTATETYPE typedef. 2012-01-10 10:47:27 +01:00
Henri Verbeet 6623a8cfa9 wined3d: Get rid of the WINED3DFOGMODE typedef. 2011-12-22 10:08:52 +01:00
Henri Verbeet 3082c1a9de wined3d: Get rid of the WINED3DRENDERSTATETYPE typedef. 2011-12-20 10:11:47 +01:00
Henri Verbeet 5bddd4427d wined3d: Get rid of the WINED3DDEGREETYPE typedef. 2011-12-20 10:11:39 +01:00
Henri Verbeet 11efbbf140 wined3d: The VertexAttrib*h[v] calls in NV_half_float depend on NV_vertex_program.
Based on a patch by Aurélien Couderc.
2011-12-09 21:15:23 +01:00
Henri Verbeet 52231bc467 wined3d: Get rid of the WineDirect3DVertexStridedData typedef. 2011-12-08 10:27:50 +01:00
Henri Verbeet 4c3dfa1bca wined3d: Get rid of the WineDirect3DStridedData typedef. 2011-12-07 17:49:56 +01:00
Henri Verbeet 2ecbe2aa0f wined3d: Get rid of the WINED3DRECTPATCH_INFO typedef. 2011-11-23 09:13:58 +01:00
Henri Verbeet 22f5d0081f wined3d: Make the device parameter to drawStridedSlow() const. 2011-08-24 11:58:15 +02:00
Henri Verbeet e57b20c215 wined3d: Keep track of a surface's "draw location". 2011-08-24 11:58:14 +02:00
Henri Verbeet 03eb6a4aa6 wined3d: Apply draw state after depth / stencil setup in drawPrimitive(). 2011-08-01 11:15:55 +02:00
Henri Verbeet 7e3f85cab6 wined3d: Only invalidate state for the current context in tesselate_rectpatch(). 2011-07-28 11:29:18 +02:00
Henri Verbeet 26cd7b835d wined3d: Get rid of the use_vshader parameter to device_stream_info_from_declaration(). 2011-07-27 11:51:41 +02:00
Henri Verbeet 7ee4bda63e wined3d: Add stream offsets in device_stream_info_from_declaration().
They're not going to change until the next time the stream info is updated.
This would of course mainly be useful if we managed to do more than one or two
draws with the same stream info.
2011-07-15 10:08:02 +02:00
Henri Verbeet c5d457c8b4 wined3d: Store a struct wined3d_bo_address in struct wined3d_stream_info_element.
Instead of using separate fields for the buffer object and offset.
2011-07-11 11:53:42 +02:00
Henri Verbeet c0aa053a87 wined3d: Pass a state pointer instead of a device pointer to device_get_draw_rect(). 2011-07-06 11:14:38 +02:00
Stefan Dösinger 2daa16c96c wined3d: Use base_vertex_index in drawStridedSlow, and only for indexed draws. 2011-06-20 19:32:02 +02:00
Stefan Dösinger dafd31861a wined3d: Use GL_ARB_draw_elements_base_vertex if available. 2011-06-14 13:43:56 +02:00
Henri Verbeet c8f26a1345 wined3d: Rename IWineD3DDeviceImpl_MarkStateDirty() to device_invalidate_state(). 2011-06-06 16:18:41 +02:00
Henri Verbeet aba42d1fa5 wined3d: Introduce a separate structure for framebuffer state. 2011-05-19 10:07:57 +02:00
Henri Verbeet 0e0e5c3e38 wined3d: Get rid of the IWineD3DDevice typedefs. 2011-05-17 10:06:23 +02:00
Stefan Dösinger a549b8f090 wined3d: Fix a few MSVC data loss warnings. 2011-05-13 17:05:27 +02:00
Henri Verbeet c4b73c4550 wined3d: Get rid of the IWineD3DSurface typedefs. 2011-04-29 16:52:13 +02:00
Henri Verbeet 2469597e2a wined3d: Verify we have at least one framebuffer attachment before doing clears or draws. 2011-01-27 14:13:39 +01:00
Henri Verbeet 363d8a316e wined3d: Pass an IWineD3DDeviceImpl pointer to drawPrimitive(). 2010-11-30 10:57:10 +01:00
Henri Verbeet 6476ef599d wined3d: Pass an IWineD3DDeviceImpl pointer to drawStridedSlow(). 2010-11-30 10:57:01 +01:00
Henri Verbeet 027fdb31c2 wined3d: Rename the IWineD3DSurfaceImpl "Flags" field to "flags". 2010-11-12 15:43:07 +01:00
Michael Stefaniuc 1183383a6f wined3d: Fix some checkGLcall() messages. 2010-11-05 17:15:34 +01:00
Henri Verbeet 4dcd56f43b wined3d: Pass a wined3d_state structure to remove_vbos(). 2010-10-01 13:46:39 +02:00
Henri Verbeet cf9d9e3204 wined3d: Pass gl_info and state parameters directly to drawStridedInstanced(). 2010-10-01 13:46:36 +02:00
Henri Verbeet 132158cbf5 wined3d: Pass gl_info and state parameters directly to drawStridedSlowVs(). 2010-09-30 17:51:17 +02:00
Henri Verbeet f065a5e54b wined3d: Remove the useless device parameter to drawStridedFast(). 2010-09-30 17:51:16 +02:00
Henri Verbeet c2363f750b wined3d: Pass a wined3d_gl_info structure to send_attribute(). 2010-09-30 17:51:16 +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 f4df53c41a wined3d: Move the primitive type to wined3d_state. 2010-09-22 12:41:06 +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 d728d5f0ec wined3d: Move texture bindings to wined3d_state. 2010-09-18 13:05:49 +02:00
Henri Verbeet 5b3c1a2082 wined3d: Move texture states to wined3d_state. 2010-09-16 10:12:17 -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
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
Henri Verbeet cc5271d1b7 wined3d: Rename WINED3DFORMAT to wined3d_format_id. 2010-08-24 12:25:01 +02:00
Stefan Dösinger 612801d3aa wined3d: Use float functions in drawprim.c. 2010-08-23 13:37:02 +02:00
Henri Verbeet f7760656f3 wined3d: Remove LoadLocation() from the public wined3d surface interface. 2010-07-22 10:13:24 +02:00
Henri Verbeet 147f24dd78 wined3d: Remove ModifyLocation() from the public wined3d surface interface. 2010-07-22 10:13:13 +02:00
Rico Schüller 894a150f69 wined3d: Add GL_NV_point_sprite extension. 2010-07-19 15:10:32 +02:00
Henri Verbeet b1abafcf8d wined3d: Also flip the point sprite coordinate origin when rendering offscreen. 2010-06-11 16:22:25 +02:00
Henri Verbeet 1b5cc39a86 wined3d: Get rid of some dead code. 2010-06-01 11:03:56 +02:00
Henri Verbeet e8ac9bbd7f wined3d: Get rid of GLINFO_LOCATION. 2010-05-25 13:29:00 +02:00
Henri Verbeet 5178e475d6 wined3d: Set the drawprim.c GLINFO_LOCATION to *gl_info. 2010-05-24 11:31:23 +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 44ab3d70f1 wined3d: Handle depth/stencil surfaces in IWineD3DSurfaceImpl_LoadLocation(). 2010-05-17 13:19:40 +02:00
Henri Verbeet 49e076eabd wined3d: Separate context acquisition and state application. 2010-05-04 13:14:59 +02:00
Henri Verbeet f09b8e454d wined3d: Avoid some needless depth buffer copies.
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Henri Verbeet 6b34b8e6d1 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_acquire(). 2010-04-22 11:28:17 +02:00
Henri Verbeet 7b47dabd09 wined3d: Avoid some unnecessary invalidations of the the onscreen depth buffer.
This can happen for example when the application switches to a different
depth/stencil for offscreen rendering and back again.
2010-04-21 11:57:32 +02: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 efb3993a3a wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_modify_ds_location(). 2010-04-19 14:55:24 +02:00
Henri Verbeet ae46589f53 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_load_ds_location(). 2010-04-19 14:55:19 +02:00
Henri Verbeet 8eb2a2cf0c wined3d: Disable strict draw ordering by default.
While some performance hit from the extra flushes was expected and would be
acceptable, the performance hit can be over 50% on some configurations, which
clearly isn't acceptable. This patch introduces a "StrictDrawOrdering"
registry key for applications affected by this, until we have a more
structural solution.
2010-04-13 21:13:36 +02:00
Stefan Dösinger 1181762f99 wined3d: Implement manual buffer fencing. 2010-03-23 12:31:15 +01:00
Henri Verbeet 7c930589bc wined3d: Avoid some common invalid context accesses.
Unfortunately there are plenty of other places left. Perhaps we should
consider creating our own window when the context becomes invalid and making
the context current on that instead.
2010-03-18 10:25:09 +01:00
Henri Verbeet 135f364110 wined3d: Kill VTRACE. 2010-03-18 10:25:02 +01:00
Henri Verbeet ce42470138 wined3d: Ensure draw ordering across contexts. 2010-01-28 11:07:59 +01:00
Henri Verbeet 98568f0ba1 wined3d: Add support for ARB_vertex_array_bgra. 2010-01-26 12:08:27 +01:00
Paul Vriens c8681f885d wined3d: Fix use of memset (Coccinelle). 2010-01-08 10:13:51 +01:00
Henri Verbeet ea0af93c19 wined3d: Get rid of some redundant local variables.
E.g. "This" variables that are only used in traces.
2009-12-22 13:48:25 +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 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 6be41fd59a wined3d: Get rid of GL_LIMITS. 2009-10-22 10:46:05 +02:00
Henri Verbeet 47c84f4f7f wined3d: Use the DXGI naming convention for all formats. 2009-09-25 15:15:44 +02:00
Henri Verbeet 2b2fc827ce wined3d: Remove unused parameters to drawPrimitive(). 2009-09-11 12:09:14 +02:00