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
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 075fa6547c
.
2013-05-27 19:28:47 +02:00
Stefan Dösinger
6fce4d4547
wined3d: Pass the state and private data to shader_select.
2013-05-14 18:37:08 +02:00
Stefan Dösinger
47f385adf0
wined3d: Add a separate function for disabling shaders.
2013-05-14 18:37:04 +02:00
Stefan Dösinger
036a62a245
wined3d: Explicitly pass the state to shader_load_constants.
2013-05-14 18:36:59 +02:00
Matteo Bruni
58dc0346d6
wined3d: Remove some, now unnecessary, glReadBuffer(GL_NONE) calls.
...
This reverts parts of e4efcea223
and
8e12b2e61e
.
2013-04-26 16:28:22 +02:00
Matteo Bruni
bda63dd4a9
wined3d: Set GL_NONE for glReadBuffer / glDrawBuffer on FBO initialization.
2013-04-26 16:28:19 +02:00
Stefan Dösinger
ac99d53991
wined3d: Move valid_rt_mask to wined3d_d3d_info.
2013-04-25 20:25:10 +02:00
Stefan Dösinger
16e862ba9d
wined3d: Add a new structure for d3d limits and other info.
2013-04-25 20:25:07 +02:00
Henri Verbeet
c756496326
wined3d: Rename the device "strided_streams" field to "stream_info".
...
The "strided" in there is mostly historic, it hasn't really been accurate for
a while now.
2013-04-22 15:26:11 +02:00
Henri Verbeet
ee6d17cd54
wined3d: Add support for GL_ARB_debug_output.
2013-04-19 10:43:40 +02:00
Henri Verbeet
5115f55eeb
wined3d: Use WGL_ARB_create_context when available.
2013-04-19 10:43:37 +02:00
Matteo Bruni
075fa6547c
wined3d: Avoid redundant glDrawBuffer() calls.
2013-04-10 15:46:26 +02:00
Matteo Bruni
46fa0448d9
wined3d: Remove useless glClearxxx calls.
2013-04-10 15:46:14 +02:00
Michael Stefaniuc
50a9fb579c
wined3d: Remove ERR() on HeapAlloc failure for small sizes known at compile time.
2013-02-06 09:04:41 +01:00
Stefan Dösinger
1a3f741643
wined3d: Remove draw_primitive_strided.
2013-01-25 11:30:33 +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
78984cf46c
wined3d: Get rid of ENTER_GL / LEAVE_GL.
2012-12-11 12:03:39 +01:00
Alexandre Julliard
449deda62f
wined3d: Link directly to opengl32.
2012-11-08 15:37:44 +01:00
Henri Verbeet
0e856abf6d
wined3d: Enable or disable the fragment pipe in shader_select().
2012-11-05 11:30:33 +01:00
Henri Verbeet
d74cb4571b
wined3d: Simplify shader selection.
2012-11-05 11:30:32 +01:00
Henri Verbeet
17e33e9b27
wined3d: Make the shader backend responsible for controlling the fixed function fragment pipe.
2012-10-25 11:48:31 +02:00
Matteo Bruni
902049c054
wined3d: Fix pixel format masks.
2012-08-15 12:17:46 +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
Henri Verbeet
af1ba676c8
wined3d: Pass a gl_info structure to fragment_pipeline.enable_extension().
2012-07-25 20:01:31 +02:00
Alexandre Julliard
db25d4022a
winex11: Simplify wglSetPixelFormatWINE and export it as a standard extension function.
2012-06-28 13:13:01 +02:00
Francois Gouget
19ba80e7c2
wined3d: We must include Wine's port.h before using NAN.
2012-06-01 17:41:52 +02:00
Henri Verbeet
aa71065d9b
wined3d: Properly preload index buffers.
2012-05-29 10:44:50 +02:00
Henri Verbeet
baff64a27a
wined3d: Properly determine the viewport size for front buffer blits in SetupForBlit().
2012-04-05 11:56:19 +02:00
Matteo Bruni
439097c810
wined3d: Update the correct draw buffers mask.
2012-03-28 15:09:09 +02:00
Henri Verbeet
6a5a098b23
wined3d: Get rid of the WINED3DRESOURCETYPE typedef.
2012-01-18 12:37:38 +01:00
Henri Verbeet
f38e94af7c
wined3d: Get rid of the WINED3DTRANSFORMSTATETYPE typedef.
2012-01-12 12:37:18 +01:00
Henri Verbeet
43fcbcb36e
wined3d: Get rid of the WINED3DTEXTURESTAGESTATETYPE typedef.
2012-01-10 10:47:27 +01:00
Henri Verbeet
3082c1a9de
wined3d: Get rid of the WINED3DRENDERSTATETYPE typedef.
2011-12-20 10:11:47 +01:00
Henri Verbeet
94c9b0b4fc
wined3d: Get rid of the WINED3DPRESENT_PARAMETERS typedef.
2011-12-02 11:51:29 +01:00
Matteo Bruni
1fd18d7688
wined3d: Make a copy of gl_info for later context_destroy_gl_resources() usage.
2011-11-15 19:37:36 +01:00
Henri Verbeet
81ae0cea7c
wined3d: Simplify context_choose_pixel_format().
...
Simply rank the formats instead of doing multiple passes over the list.
2011-11-09 11:34:19 +01:00
Henri Verbeet
1c91b08220
wined3d: Construct the projection matrix directly in set_blit_dimension().
...
This saves a needless matrix multiplication and is actually more obvious than
the glOrtho() call.
2011-11-02 12:27:34 +01:00
Henri Verbeet
dbfe83baff
wined3d: Rename nCfgs to cfg_count.
2011-10-27 19:34:15 +02:00
Henri Verbeet
7aac0159a9
wined3d: Move the ARB shader program constant handling to the backend where it belongs.
2011-10-26 12:41:33 +02:00
Henri Verbeet
89d0d3ffd8
wined3d: Get rid of the device parameter to context_setup_target().
2011-10-26 12:41:33 +02:00
Henri Verbeet
bab2a40f87
wined3d: Make the device parameter to context_apply_clear_state() const.
2011-10-25 16:57:24 +02:00
Henri Verbeet
9b42c657e4
wined3d: Make the device parameter to context_apply_blit_state() const.
2011-10-25 16:57:24 +02:00
Henri Verbeet
284ba950ef
wined3d: Make the device parameter to SetupForBlit() const.
2011-10-24 11:16:47 +02:00
Henri Verbeet
96187a54a9
wined3d: Make the context parameter to bind_dummy_textures() const.
2011-10-24 11:16:44 +02:00
Henri Verbeet
f28ba9007e
wined3d: Make the device parameter to context_choose_pixel_format() const.
2011-10-21 12:09:46 +02:00
Henri Verbeet
25b1130b44
wined3d: Also restore the pixel format in context_restore_gl_context().
2011-10-17 17:45:02 +02:00
Henri Verbeet
cdc9aadf5c
wined3d: Don't try to access the swapchain of a destroyed context in context_set_gl_context().
2011-10-17 17:45:02 +02:00
Henri Verbeet
dfea2ab6f4
wined3d: Don't bother updating the context's window in context_destroy_gl_resources().
...
context_update_window() accesses the swapchain, which may not exist if this is
a destroyed context, and we don't do anything that needs displaying here
anyway.
2011-10-17 17:45:02 +02:00
Henri Verbeet
7ffa768e71
wined3d: Cleanup context_create() error handling a bit.
2011-10-14 13:12:27 +02:00