Commit Graph

218 Commits

Author SHA1 Message Date
Stefan Dösinger 817714912b wined3d: Infrastructure to render swapchains to a FBO. 2009-12-07 14:33:24 +01:00
Henri Verbeet bf10dbe8a6 wined3d: Map D3DFMT_D24S8 to WINED3DFMT_D24_UNORM_S8_UINT.
The internal order of the depth and stencil bits is unspecified since the
format isn't lockable.
2009-10-30 11:28:52 +01:00
Henri Verbeet fbae08672b wined3d: It's not an error to request multisampling. 2009-10-30 11:28:35 +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 e6ca176a48 wined3d: Rename DestroyContext() to context_destroy(). 2009-10-28 11:16:05 +01:00
Henri Verbeet c0050b8ec9 wined3d: Restore the thread's GL context on context_release() if it wasn't created by wined3d.
The background on this is that some applications use OpenGL and DirectDraw/Direct3D on
the same thread, typically using OpenGL for rendering and DirectDraw to get
the amount of available video memory. This means that we might replace the
application's current GL context with one with a completely different state,
but also that our current GL context might not be what we think it is.
2009-10-28 11:15:59 +01:00
Henri Verbeet 98027cb535 wined3d: Call context_release() for wined3d contexts made current by context_create(). 2009-10-28 11:15: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 401173ffde wined3d: Restore the thread's previous GL context in context_destroy_gl_resources(). 2009-10-28 11:15:00 +01:00
Henri Verbeet 94509f85b5 wined3d: Restore the wglMakeCurrent() call in context_destroy_gl_resources().
e3ca576576 removed this call because we don't
need it to tell if the context is valid, but we still need it to actually make
the context current.
2009-10-27 10:55:27 +01:00
Stefan Dösinger 70d6304a21 wined3d: Use the shader backend reported constant limit outside the shader backend. 2009-10-26 11:41:43 +01:00
Henri Verbeet 483d5d0a0d wined3d: Print an ERR instead of crashing in context_check_fbo_status().
Some version of Mesa will claim the window system provided framebuffer is
incomplete when using indirect rendering, although the framebuffer objects
spec says this can never happen. Printing an ERR instead of crashing should
make it clearer that this isn't a wined3d problem.
2009-10-26 11:20:52 +01:00
Henri Verbeet 6be41fd59a wined3d: Get rid of GL_LIMITS. 2009-10-22 10:46:05 +02:00
Henri Verbeet 94d33d3e86 wined3d: Destroy FBO entries from the context that created them.
EXT_framebuffer_object doesn't specify if FBOs are shareable between GL
contexts, but ARB_framebuffer_object explicitly prohibits it.
2009-10-20 14:00:37 +02:00
Henri Verbeet e3ca576576 wined3d: Use context->valid in context_destroy_gl_resources().
Instead of relying on wglMakeCurrent() to do what we want.
2009-10-20 14:00:36 +02:00
Henri Verbeet 43aaaa8a4b wined3d: Validate the D3D context in FindContext().
Apparently it's valid to use a D3D device after its window is destroyed.
OpenGL isn't always so forgiving, so this patch is a first step to avoid
making GL calls on a context without window.
2009-10-20 14:00:36 +02:00
Henri Verbeet 0cb6f28751 wined3d: Get rid of the useless "isPBuffer" bitfield in struct wined3d_context. 2009-10-20 14:00:36 +02:00
Henri Verbeet 47c84f4f7f wined3d: Use the DXGI naming convention for all formats. 2009-09-25 15:15:44 +02:00
Stefan Dösinger 5b5e3bd0d2 wined3d: Track GL texture states in a separate structure. 2009-09-23 13:24:16 +02:00
Henri Verbeet 1c93ab1ee0 wined3d: Cleanup after wglMakeCurrent() failures in context_set_current().
The D3D context is potentially destroyed, so we need to clear the thread's
current D3D context. Found by Rico Schüller.
2009-09-23 12:37:25 +02:00
Henri Verbeet eca28c942d wined3d: Add support for ARB_provoking_vertex.
This is just EXT_provoking_vertex promoted to ARB.
2009-09-23 12:37:18 +02:00
Henri Verbeet ec97383f6f wined3d: Add support for ARB_framebuffer_object. 2009-09-23 12:37:00 +02:00
Rico Schüller 8c414df17f wined3d: Don't call wglMakeCurrent(NULL, NULL) in context_set_current() if the current context is NULL. 2009-09-22 17:47:02 +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 a36e30b541 wined3d: Mark the correct state dirty. 2009-08-21 11:10:07 +02:00
Jörg Höhle 7763da811b wined3d: Check GL_SUPPORT prior to an ARB occlusion call. 2009-08-17 19:36:41 +02:00
Henri Verbeet b8078fc747 wined3d: Use WINED3D_UNMAPPED_STAGE in some more places. 2009-08-17 13:57:50 +02:00
Henri Verbeet 3b06fc92f4 wined3d: Use EXT_provoking_vertex to match Direct3D's provoking vertex convention. 2009-08-10 13:52:50 +02:00
Stefan Dösinger 4f9f8fef0b wined3d: Dirtify the correct state. 2009-08-07 14:57:09 +02:00
Henri Verbeet 41729ca919 wined3d: Check the return value of wglDeleteContext() in context_destroy_gl_resources(). 2009-08-07 12:11:27 +02:00
Henri Verbeet 7ed116da2e wined3d: Merge the context->current_rt check for rendertarget readback with the code above.
Also update the comments.
2009-08-07 12:11:17 +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 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 0047c55e86 wined3d: Handle destruction of a context's current render target. 2009-08-03 15:01:18 +02:00
Henri Verbeet 9baf7864c5 wined3d: Return proper NULLs from CreateContext(). 2009-07-24 13:11:01 +02:00
Henri Verbeet be536ebe2f wined3d: Get rid of activeContext. 2009-07-24 13:10:57 +02:00
Henri Verbeet fb77678e9f wined3d: Manage event queries in the context. 2009-07-24 13:10:28 +02:00
Henri Verbeet 4ab7af6575 wined3d: Manage occlusion queries in the context. 2009-07-24 13:10:19 +02:00
Henri Verbeet ea2caa9ba1 wined3d: Return the activated context from ActivateContext(). 2009-07-23 11:22:22 +02:00
Henri Verbeet 85e2c05e4f wined3d: Explicitly pass the wined3d context to context_apply_draw_buffer(). 2009-07-23 11:22:18 +02:00
Henri Verbeet 9253bbcb05 wined3d: Get rid of last_device. 2009-07-23 11:22:13 +02:00
Henri Verbeet 401e99b0c0 wined3d: Remove some unnecessary code.
Now that we don't depend on activeContext and lastActiveRenderTarget to be
non-NULL this code can go.
2009-07-23 11:22:08 +02:00
Henri Verbeet 57ccdb7e36 wined3d: Don't reuse contexts marked for destruction. 2009-07-23 11:22:03 +02:00
Henri Verbeet e5d621c081 wined3d: Try to reuse the thread's current context in FindContext(). 2009-07-22 14:42:51 +02:00
Henri Verbeet 9ceda3a6fd wined3d: Move some context selection code from ActivateContext() to FindContext(). 2009-07-22 14:42:51 +02:00
Henri Verbeet 219d3abdd1 wined3d: Simplify FindContext() a bit. 2009-07-22 14:42:51 +02:00
Henri Verbeet ce436a76e2 wined3d: Get rid of getActiveContext(). 2009-07-22 14:42:50 +02:00
Henri Verbeet 377cda97e7 wined3d: Avoid destroying contexts that are current in another thread. 2009-07-22 14:42:50 +02:00