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
Ken Thomases
59226e36b7
wined3d: Don't clear the GL context if it's not the one being destroyed by context_destroy_gl_resources().
...
The previous code clears the GL context if the context being destroyed is
not valid, even though the current one is some arbitrary, unrelated context.
2014-02-06 17:08:09 +01:00
Stefan Dösinger
b81e560531
wined3d: Migrate surfaces to the new location flags.
2014-01-17 18:10:10 +01:00
Henri Verbeet
f6b5dc246a
wined3d: Get rid of the WINED3DSRGB enum.
2013-11-22 11:37:29 +01:00
Henri Verbeet
7427b72250
wined3d: Get rid of surface_internal_preload().
2013-11-22 11:37:24 +01:00
Henri Verbeet
e0beab8b81
wined3d: Merge texture2d_preload() and texture3d_preload() into wined3d_texture_load().
2013-11-22 11:37:20 +01:00
Stefan Dösinger
047ce3af6e
wined3d: Remove partial surface update support.
...
This has only ever worked for render targets, and only through the
glDrawPixels codepath, which was removed long ago.
2013-11-20 16:54:39 +01:00
Henri Verbeet
7e8897b7b8
wined3d: Get rid of the redundant texture_name and texture_name_srgb fields in struct wined3d_surface.
2013-11-20 11:28:22 +01:00
Henri Verbeet
f4aab54ca1
wined3d: Mark the context valid if making it current on the "backup" window worked.
2013-11-04 11:05:46 +01:00
Henri Verbeet
3ad8989614
wined3d: Introduce a function for safely releasing a DC.
2013-11-04 11:05:43 +01:00
Henri Verbeet
c228ffbaf0
wined3d: Unify shader binding points.
2013-10-10 10:44:53 +02:00
Henri Verbeet
8644b62726
wined3d: Move lowest_disabled_stage to the context.
2013-10-07 14:44:35 +02:00
Stefan Dösinger
59e0b841c7
wined3d: Move device_preload_textures into context.c.
2013-09-16 13:06:01 +02:00
Stefan Dösinger
112617f00b
wined3d: Move tex_unit_map and friends into the context.
2013-09-16 13:05:58 +02:00
Stefan Dösinger
f29c24f2de
wined3d: Pass the context to surface_internal_preload.
2013-09-16 13:05:55 +02:00
Stefan Dösinger
fe44be5fde
wined3d: Pass the context to the internal texture_preload function.
2013-09-16 13:05:52 +02:00
Stefan Dösinger
b8eb171b6b
wined3d: Explicitly pass the state information to buffer_internal_preload.
2013-09-12 17:48:20 +02:00
Stefan Dösinger
d8c43aabf7
wined3d: Move the decoded stream info into the context.
2013-09-12 17:48:14 +02:00
Henri Verbeet
b62915dabb
wined3d: Replace surface_modify_location(surface, location, FALSE) calls with surface_invalidate_location().
2013-09-10 11:09:51 +02:00
Stefan Dösinger
cd203b38a6
wined3d: Pass the context to the main buffer preload function.
2013-09-09 22:10:01 +02:00
Stefan Dösinger
87f931dc64
wined3d: Only invalidate STATE_INDEXBUFFER for the current context in buffer_get_sysmem().
2013-09-09 22:10:00 +02:00
Stefan Dösinger
1cf192172e
wined3d: Only invalidate STATE_INDEXBUFFER for the current context in buffer_create_buffer_object().
2013-09-09 22:10:00 +02:00
Henri Verbeet
b5e0c5d052
wined3d: Get rid of some leftover comments referring to the GL lock.
2013-09-02 18:02:26 +02:00
Henri Verbeet
53f747de1b
wined3d: Move the WINED3D_MAX_FBO_ENTRIES constant to context.c.
2013-08-30 11:18:46 +02:00
Henri Verbeet
b85c2a74bb
wined3d: Replace the "stateBlock" wined3d_device field with a wined3d_state structure.
2013-08-27 11:50:53 +02:00
Henri Verbeet
74faebd68d
wined3d: Store the current GLSL program per-context.
2013-08-23 10:41:28 +02:00
Henri Verbeet
62859daf0b
wined3d: Avoid looking up shaders for shader stages that didn't change.
2013-08-21 12:13:56 +02:00
Stefan Dösinger
a4f009d847
wined3d: Keep GL_UNPACK_CLIENT_STORAGE_APPLE off by default.
...
This is cleaner than the other way around and avoids side effects in
code that wasn't written with client storage in mind. Contrary to the
original intention, it also means fewer client storage toggle calls.
2013-08-19 18:07:45 +02:00
Henri Verbeet
37d1e8b79c
wined3d: Try to avoid redundant constant updates.
...
This gives a minor performance improvement. For example, in 3DMark03 Game Test
1 this gives about a 4% improvement, in the Counter Strike: Source stress test
it's about 1%. (NVIDIA GF9600M, Intel T9550, 1024x768).
2013-08-16 11:55:24 +02:00
Henri Verbeet
a3f59cf618
wined3d: Allow textures as swapchain surfaces.
2013-06-03 11:30:43 +02:00
Henri Verbeet
b35045ba25
wined3d: Don't create FBOs in context_bind_fbo().
...
We can just do this in context_create_fbo_entry() now.
2013-05-27 19:28:52 +02:00
Henri Verbeet
7ca6839c94
wined3d: Also clear context->current_fbo in context_apply_blit_state().
...
The draw buffer handling code depends on this being current. This fixes a bug
exposed by commit 075fa6547c0edf2b1b2c1cabae7731fdc1308cc2.
2013-05-27 19:28:47 +02:00