Commit Graph

547 Commits

Author SHA1 Message Date
Matteo Bruni a7315eb76a wined3d: Bind a VAO when using core profile contexts. 2015-07-13 22:06:38 +09:00
Matteo Bruni a1e718ccab wined3d: Add a setting for the maximum OpenGL version to use. 2015-07-09 17:18:22 +09:00
Matteo Bruni 170dca7741 wined3d: Handle per-vertex point size in the GLSL FFP replacement. 2015-06-17 20:01:19 +09:00
Stefan Dösinger 4e53faf77b wined3d: Disable the depth stencil on multisample mismatch. 2015-06-10 23:25:04 +09:00
Stefan Dösinger ec25ca7832 wined3d: Read format flags from the surface container. 2015-06-08 18:51:21 +09:00
Matteo Bruni e8cb3bdba5 wined3d: Always enable GL_PROGRAM_POINT_SIZE in the GLSL backend.
Core contexts don't support clamping the point size to GL_POINT_SIZE_MIN
/ GL_POINT_SIZE_MAX.  Incidentally this mostly fixes per-vertex point
sizes for vertex shader version 1 and 2.
2015-06-03 19:52:14 +09:00
Stefan Dösinger 90d8896826 wined3d: Allow specifying a different depth stencil location.
This is for drivers that do not support depth stencil textures, but
happily support depth stencil renderbuffers.
2015-05-25 21:43:18 +09:00
Stefan Dösinger 3c0ed9ce0a wined3d: Introduce resource-type specific format flags. 2015-04-24 19:08:35 +09:00
Stefan Dösinger 9076612e2d wined3d: Shadow format flags in the resource. 2015-04-22 23:24:41 +09:00
Stefan Dösinger 239e8cad7c wined3d: Add per-context private data for fragment pipelines. 2015-03-24 20:06:15 +09:00
Henri Verbeet 1b08196c5a wined3d: Implement d3d10 style instance data step rates. 2015-03-24 17:41:06 +09:00
Henri Verbeet 88f230b56e d3d10core: Also pass unused input layout elements to wined3d.
While these won't be used by the shader, they potentially affect the
calculated offset for WINED3D_APPEND_ALIGNED_ELEMENT elements.
2015-03-23 22:59:12 +09:00
Matteo Bruni d8c5e417c2 wined3d: Force stream info update on vertex shader change. 2015-03-18 21:02:41 +09:00
Matteo Bruni f298d30b39 wined3d: Fix a typo in a trace in context_create(). 2015-03-11 22:08:34 +09:00
Matteo Bruni 78ae4f66d7 wined3d: Set GL_UNPACK_ALIGNMENT to 1.
Alignment should be taken care by the surface pitch and
GL_UNPACK_ROW_LENGTH alone just fine, as long as the pitch is a
multiple of the pixel size. Client APIs respect that,
internally we need to do the same and the changes to
surface_load_texture and wined3d_volume_upload_data are there
for this reason (e.g. WINED3DFMT_R16G16_SNORM is emulated with
GL_RGB16 when NV_texture_shader isn't supported).
2015-02-20 22:53:09 +09:00
Matteo Bruni f4da723151 wined3d: Call glReadBuffer() through the appropriate function pointer. 2015-02-10 16:21:41 +09:00
Matteo Bruni 9defaa53a1 wined3d: Use the core version of the asynchronous queries functions. 2015-02-02 22:39:05 +09:00
Matteo Bruni 75b96768e5 wined3d: Use the core version of glDrawBuffers. 2015-01-20 16:08:56 +01:00
Henri Verbeet 2e5abc156a wined3d: Implement WINED3DSIH_SAMPLE in the GLSL shader backend. 2015-01-19 14:31:32 +01:00
Henri Verbeet c6232e1d11 wined3d: Create GL sampler objects for wined3d sampler objects. 2015-01-15 17:24:43 +01:00
Matteo Bruni 993075cdb3 wined3d: Prefer the core glActiveTexture function. 2015-01-09 11:49:33 +01:00
Henri Verbeet 3aa9fe6bef wined3d: Record the data type of shader resources. 2014-12-03 11:14:25 +01:00
Henri Verbeet f5cef43738 wined3d: Store resource types instead of sampler types in struct wined3d_shader_reg_maps.
The difference doesn't really matter for SM1-3 since resources and samplers
are always tied together, but in SM4 they're separate.
2014-12-03 11:14:21 +01:00
Henri Verbeet 0c0a2adc71 wined3d: Handle GL texture allocation in the texture code. 2014-10-08 13:13:37 +02:00
Henri Verbeet 4f2110b0ce wined3d: Never pass a surface to wined3d_resource_is_offscreen(). 2014-09-19 10:49:27 +02:00
Henri Verbeet 07985a8c38 wined3d: Use rendertarget views for depth/stencil buffers instead of surfaces.
I don't think the difference between d3d10 depth/stencil and rendertarget
views is large enough to justify a separate type. Unfortunately that does make
the name "wined3d_rendertarget_view" slightly awkward.
2014-08-22 12:53:11 +02:00
Henri Verbeet b005ad6f90 wined3d: Use rendertarget views for color output instead of surfaces. 2014-08-21 12:24:42 +02:00
Henri Verbeet d3387cf77b wined3d: Keep a reference to the backbuffer textures instead of the surfaces in the swapchain. 2014-08-20 13:29:53 +02:00
Henri Verbeet ec87407e7c wined3d: Keep a reference to the frontbuffer texture instead of the surface in the swapchain. 2014-08-20 13:29:52 +02:00
Henri Verbeet 415b803720 wined3d: Use the texture draw binding instead of the surface draw binding. 2014-08-20 13:29:50 +02:00
Henri Verbeet aa7016054a wined3d: Move the "swapchain" field from struct wined3d_surface to struct wined3d_texture. 2014-08-20 13:29:47 +02:00
Henri Verbeet f753ff90be wined3d: Replace surface_is_offscreen() with wined3d_resource_is_offscreen().
Introducing rendertarget views will (eventually) allow rendering to 3D
textures and buffers.
2014-08-19 14:49:39 +02:00
Henri Verbeet 5ef8e97414 wined3d: Move the "draw_binding" field from struct wined3d_surface to struct wined3d_resource. 2014-08-04 14:23:52 +02:00
Henri Verbeet 80bca9bc9c wined3d: Add constant buffer support to the GLSL shader backend. 2014-08-04 14:23:29 +02:00
Henri Verbeet 96d845aa46 wined3d: Avoid a compiler warning in context_stream_info_from_declaration(). 2014-07-22 12:37:54 +02:00
Henri Verbeet 1360af6adc wined3d: Don't try to resolve vertex buffer locations in context_stream_info_from_declaration(). 2014-07-14 19:26:17 +02:00
Henri Verbeet 68339456a8 wined3d: Always mark vertex buffers as used in context_apply_draw_state().
The issue this solves is that buffer_internal_preload() is only called when
STATE_VDECL or STATE_STREAMSRC is invalidated, but that doesn't happen for
regular buffer maps. We'd like to be able to just call
buffer_internal_preload() here, but buffer_internal_preload() has dependencies
on context_stream_info_from_declaration() and vice versa.
2014-07-14 19:26:17 +02:00
Henri Verbeet 0eebe0515f wined3d: Fix a couple of string declarations. 2014-05-02 13:45:10 +02:00
Matteo Bruni a1784d9ed9 wined3d: Add support for timestamp queries. 2014-04-17 13:53:00 +02:00
Ken Thomases f3aa481238 wined3d: Track if a context's private hdc has had its pixel format set, so we don't need to check it. 2014-03-24 20:20:14 +01:00
Ken Thomases 272873823e wined3d: Track if a context's hdc is private so we never need to restore its pixel format.
This currently only applies to the swapchain backup DC, but it will soon be
used for surfaces created using the WGL_WINE_surface extension.  Also, there
are a couple of cases where ddraw creates private windows and passes them in.
It could be extended to those.
2014-03-24 20:20:13 +01:00
Ken Thomases 57c51710e0 wined3d: When restoring pixel format in context_release(), mark the context as needing to be set on the next context_acquire().
If we had to restore the pixel format then we know it won't be what we need
when the app calls into wined3d again.  This helps avoid the GetPixelFormat()
in context_acquire().
2014-03-24 20:20:12 +01:00
Ken Thomases ffb357b717 wined3d: Don't call GetPixelFormat() to set a flag that's already set. 2014-03-24 20:20:12 +01:00
Ken Thomases 90d7f3e03f wined3d: Simplify the error path of context_update_window(). 2014-03-24 20:20:11 +01:00
Ken Thomases 03ca2b2932 wined3d: Don't leak the HDC of an invalid context in context_update_window().
If context_set_gl_context() fails, it marks the context as invalid.  It still
has an HDC, though, and context_update_window() would lose the reference to
it.
2014-03-24 20:20:10 +01:00
Ken Thomases 4c4552c5a1 wined3d: Restore the pixel format of the window whose pixel format was actually changed. 2014-02-22 08:41:55 -06:00
Ken Thomases b8569d2f30 wined3d: Make context_update_window() just mark the GL context as needing to be set rather than setting it. 2014-02-22 08:41:51 -06:00
Ken Thomases baa85a097a wined3d: Use a separate flag to track if the GL context needs to be made current.
The new needs_set flag can be cleared after it's been heeded whereas restore_ctx
must not be cleared until the context has been released back to level 0.
2014-02-22 08:41:47 -06:00
Ken Thomases 2d1e67ee68 wined3d: Remove redundant call to context_set_pixel_format() from context_update_window().
It calls context_set_gl_context() just after and that starts with a call to
context_set_pixel_format().  Also, context_update_window() didn't do the
right thing (fall back to swapchain backup DC) if context_set_pixel_format()
fails.
2014-02-22 08:41:42 -06:00
Ken Thomases 088dd7289c wined3d: Call context_enter() before context_update_window() so it records the proper restore state. 2014-02-22 08:41:38 -06:00