Commit Graph

3902 Commits

Author SHA1 Message Date
Stefan Dösinger f90b8b6352 wined3d: Rename conversion_count to something more appropriate. 2009-12-29 11:03:44 +01:00
Stefan Dösinger d6b9732497 wined3d: Remove the d3d7 do-not-convert code. 2009-12-29 11:03:36 +01:00
Stefan Dösinger 1d37ae6f61 wined3d: Use unload instead of duplicating buffer remove code. 2009-12-29 11:03:24 +01:00
Stefan Dösinger 4590dc4806 wined3d: Free buffer conversion info when freeing the buffer. 2009-12-29 11:03:10 +01:00
Henri Verbeet 9c0bf89ed0 wined3d: Let "SetupForBlit()" figure out the target's width and height on its own. 2009-12-28 12:27:14 +01:00
Henri Verbeet 57ff4b4dea wined3d: Let "FindContext()" figure out the thread id on its own.
It doesn't work with anything other than the current thread anyway.
2009-12-28 12:27:13 +01:00
Henri Verbeet 9295de9b84 wined3d: Introduce "context_apply_state()" to setup a context for a specific usage. 2009-12-28 12:27:13 +01:00
Henri Verbeet f30999f193 wined3d: Recognize "VMware, Inc." as VENDOR_MESA. 2009-12-28 12:27:13 +01:00
Henri Verbeet 7160e56ab1 wined3d: Properly check for glBlitFramebuffer().
ARB_framebuffer_object can also provide this entry point.
2009-12-28 12:27:13 +01:00
Henri Verbeet 3288911ae3 wined3d: Use proper enum elements for FOURCC formats. 2009-12-23 14:27:30 +01:00
Henri Verbeet b49e684f5d wined3d: Focus the focus window. 2009-12-23 14:27:29 +01:00
Henri Verbeet a0aa10eb5c wined3d: Filter messages for the device's focus window instead of the swapchain's device window.
Usually these will be the same window, but they don't have to be.
2009-12-23 14:27:29 +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 d9fefdb917 wined3d: Cleanup IWineD3DBaseSwapChainImpl_QueryInterface(). 2009-12-22 13:48:25 +01:00
Henri Verbeet 3f77683174 wined3d: Volumes are resources in wined3d. 2009-12-22 13:48:25 +01:00
Henri Verbeet 8c7d259978 wined3d: IWineD3DPaletteImpl implements IWineD3DBase. 2009-12-21 15:01:25 +01:00
Henri Verbeet ecf2e049a2 wined3d: IWineD3DClipperImpl implements IWineD3DBase.
Unify the QueryInterface implementation a bit with the rest of wined3d while
we're at it.
2009-12-21 15:01:25 +01:00
Henri Verbeet 23bf5025c6 wined3d: Cleanup IWineD3DDeviceImpl_GetRasterStatus(). 2009-12-21 15:01:25 +01:00
Henri Verbeet 79a2045395 wined3d: NULL vertex declarations are captured, but not applied. 2009-12-21 15:01:22 +01:00
Henri Verbeet a389fe551e wined3d: IWineD3DStateBlockImpl no longer implements IWineD3DBase. 2009-12-18 11:38:59 +01:00
Henri Verbeet 23f05028f8 wined3d: Add some error handling to create_primary_opengl_context(). 2009-12-18 11:38:49 +01:00
Henri Verbeet 4c66141c99 wined3d: Add a function to destroy dummy textures.
The next patch uses this.
2009-12-18 11:38:43 +01:00
Henri Verbeet 7fe3ab5a23 wined3d: Don't touch "ppSurface" on failure in IWineD3DDeviceImpl_CreateSurface().
I originally kept these when adding surface_init() in
5f581975dc because the original code had them on
most error paths. However, this actually broke ddraw because it assumed we
don't touch "ppSurface" on errors. Just remove these since they're useless
anyway.
2009-12-18 11:38:40 +01:00
Roderick Colenbrander 6d8c4572ef wined3d: Fix a bug in BtlFast which was uncovered by the 32-bit dibsection support. 2009-12-17 12:53:19 +01:00
Henri Verbeet bd1ec9eb02 wined3d: Cleanup IWineD3DDeviceImpl_GetBackBuffer(). 2009-12-17 12:43:20 +01:00
Henri Verbeet 35d5e7669e wined3d: Change an ERR to a WARN in IWineD3DVolumeImpl_UnlockBox().
Trying to unlock a volume that isn't locked is questionable behaviour on the
side of the application, but not an internal error.
2009-12-17 12:43:16 +01:00
Henri Verbeet d5a8637ecc wined3d: Change an ERR to a TRACE in IWineD3DEventQueryImpl_GetData().
This is allowed behaviour.
2009-12-17 12:43:11 +01:00
Stefan Dösinger 8eeb513b1a wined3d: Fix VBO buffer usage. 2009-12-16 13:04:19 +01:00
Stefan Dösinger 718e55b9a6 wined3d: Don't render single buffered swapchains to a FBO. 2009-12-16 12:42:40 +01:00
Henri Verbeet cd623036fc wined3d: Mark the draw buffer as dirty in context_create().
Currently callers of this function are responsible for setting the draw buffer
correctly, but they don't do a very good job:
  - swapchain_init() sets the draw buffer to GL_BACK if there's a back buffer,
    even though the context's target is always the front buffer.
  - swapchain_create_context_for_thread() depends on (eventually) being called
    by FindContext().
  - create_primary_opengl_context() and
    IWineD3DSwapChainImpl_SetDestWindowOverride() don't bother setting a draw
    buffer at all.
Just marking the draw buffer dirty lets the context management sort it all
out, and is much simpler.
2009-12-16 12:22:29 +01:00
Henri Verbeet a215d326a5 wined3d: Get rid of the "swapchain" parameter to surface_get_gl_buffer().
Casting the container to "IWineD3DSwapChainImpl *" is always safe when
SFLAG_SWAPCHAIN is set on the surface. Most callers don't have a real
need for the swapchain, and end up calling GetContainer() just to pass
it to surface_get_gl_buffer().
2009-12-16 12:22:18 +01:00
Henri Verbeet 97f04248fc wined3d: Use surface_is_offscreen() in flush_to_framebuffer_drawpixels(). 2009-12-16 12:22:03 +01:00
Henri Verbeet bf113bd284 wined3d: Use surface_is_offscreen() in read_from_framebuffer_texture(). 2009-12-16 12:21:58 +01:00
Henri Verbeet 51438eec46 wined3d: Use surface_is_offscreen() in fb_copy_to_texture_hwstretch(). 2009-12-16 12:21:50 +01:00
Stefan Dösinger cde3217268 wined3d: Properly release client storage memory. 2009-12-15 16:09:12 +01:00
Stefan Dösinger 2ee6bb1cbb wined3d: Frontbuffers are onscreen. 2009-12-15 11:58:53 +01:00
Henri Verbeet 2f56ef09e6 wined3d: Use surface_is_offscreen() in context_apply_draw_buffer(). 2009-12-15 11:44:20 +01:00
Henri Verbeet c24e48d937 wined3d: Filter window messages generated by switching to fullscreen and back. 2009-12-15 11:43:56 +01:00
Henri Verbeet 0e270bbd22 wined3d: Send window messages through the swapchain before sending them to the application. 2009-12-15 11:43:41 +01:00
Henri Verbeet 6bf79b885f wined3d: Let the context handle the draw buffer in swapchain_blit(). 2009-12-14 12:04:05 +01:00
Henri Verbeet 82556b613e wined3d: Let the context handle the draw buffer in fb_copy_to_texture_hwstretch(). 2009-12-14 12:04:05 +01:00
Henri Verbeet 59db3ecaa0 wined3d: Let the context handle the draw buffer in flush_to_framebuffer_drawpixels(). 2009-12-14 12:04:05 +01:00
Henri Verbeet 30f5883ef5 wined3d: Let the context handle the draw buffer in stretch_rect_fbo(). 2009-12-14 12:04:05 +01:00
Henri Verbeet cb076db8cc wined3d: Move IWineD3DDeviceImpl_RestoreWindow() to swapchain.c. 2009-12-11 12:16:25 +01:00
Henri Verbeet 542590cfc9 wined3d: Move IWineD3DDeviceImpl_SetupFullscreenWindow() to swapchain.c. 2009-12-11 12:16:25 +01:00
Henri Verbeet a9f2613d13 wined3d: Add a separate function for swapchain initialization. 2009-12-11 12:16:25 +01:00
Henri Verbeet 75ef50e435 wined3d: Correctly calculate the extended style in IWineD3DDeviceImpl_RestoreWindow(). 2009-12-11 12:16:25 +01:00
Henri Verbeet 840b5af77e wined3d: Properly invalidate the context's draw buffer in color_fill_fbo(). 2009-12-11 12:16:25 +01:00
Henri Verbeet b85a070598 wined3d: Support more formats for display mode enumeration.
ddraw/d3d8/d3d9 only support a limited number of formats, but those already
limit the supported formats themselves.
2009-12-10 11:54:55 +01:00
Henri Verbeet b3defd4c80 wined3d: Rename "wineD3DDevice" to "device". 2009-12-10 11:54:47 +01:00
Henri Verbeet bd9828a039 wined3d: Don't restore the draw buffer in color_fill_fbo().
This should be done by the context management these days.
2009-12-10 11:54:29 +01:00
Henri Verbeet bfe6695d30 wined3d: Only disable blending for offscreen targets. 2009-12-09 13:51:08 +01:00
Henri Verbeet b6ef17f23d wined3d: Remove unused GetDevice() implementations. 2009-12-09 13:51:04 +01:00
Henri Verbeet d2ad2df637 wined3d: Remove a few redundant assignments. 2009-12-09 13:50:48 +01:00
Henri Verbeet 54f3dec8e6 wined3d: Rename the "wineD3D" device field to "wined3d". 2009-12-08 12:33:29 +01:00
Henri Verbeet a02f93defb wined3d: Remove the redundant "adapterNo" field from the device. 2009-12-08 12:33:23 +01:00
Henri Verbeet aed85222b5 wined3d: Rename the wined3d_adapter "num" field to "ordinal".
This makes it consistent with dxgi_adapter.
2009-12-08 12:33:17 +01:00
Henri Verbeet 8a833a2d75 wined3d: Pass the correct vertex count in DrawIndexedPrimitiveStrided().
This fixes a regression introduced by 2b2fc827ce.
2009-12-08 12:33:08 +01:00
Stefan Dösinger 740e2d403e Render to fbo when the size mismatches at creation time.
This is needed because the window(and thus the GL drawable) might be
smaller than the D3D backbuffer. If we waited for the FBO switch until
Present is called we'd lose data in the first frame.
2009-12-07 14:33:56 +01:00
Stefan Dösinger 548b0bcda5 wined3d: Render to a FBO if the window size is changed. 2009-12-07 14:33:32 +01:00
Stefan Dösinger 817714912b wined3d: Infrastructure to render swapchains to a FBO. 2009-12-07 14:33:24 +01:00
Stefan Dösinger 2b0271b185 wined3d: Use GL_COLOR_ATTACHMENT0 as offscreen buffer with FBOs.
This is used by the offscreen render target->texture blit code if
FBOs are enabled, but FBO_blit is not supported
2009-12-07 14:33:04 +01:00
Stefan Dösinger 64291c60cb wined3d: A function for checking if a surface is offscreen. 2009-12-07 14:32:54 +01:00
Stefan Dösinger 54f0d3f785 wined3d: Add a function for initializing surface sysmem. 2009-12-07 14:32:29 +01:00
Francois Gouget 060934c557 wined3d: Don't define nameless structs or unions.
Fixes compilation on systems that don't support nameless unions or structs.
2009-12-07 14:18:25 +01:00
Henri Verbeet 0491fcce30 dxgi: Implement IDXGIAdapter::GetDesc(). 2009-12-04 14:34:59 +01:00
Henri Verbeet dd5fc79f56 wined3d: The stateblock doesn't really need a parent. 2009-12-04 14:34:59 +01:00
Stefan Dösinger 6a19339207 wined3d: Remove needless NULL checks (coverity). 2009-12-03 11:45:15 +01:00
Henri Verbeet ed73f0a1b0 d3d9: Implement IDirect3D9Ex::GetAdapterLUID(). 2009-12-02 13:06:08 +01:00
Henri Verbeet 36823dd96b wined3d: Set appropriate error codes in IWineD3DDeviceImpl_Init3D() on out of memory. 2009-12-02 13:06:07 +01:00
Marcus Meissner a7e599db45 wined3d: Handle NULL ptrs (Coverity). 2009-11-24 10:51:46 +01:00
Henri Verbeet 55f3c576d9 wined3d: Remove the effetively unused "state" field from the device. 2009-11-18 11:16:54 +01:00
Henri Verbeet 135e6cea7b wined3d: Add a separate function for device initialization. 2009-11-18 11:16:49 +01:00
Henri Verbeet e4d8a3f309 wined3d: Move the various backend selection utility functions to utils.c. 2009-11-18 11:16:43 +01:00
Henri Verbeet 7676c66431 wined3d: WINED3DFMT_FLAG_GETDC is a basic format flag.
It has nothing to do with OpenGL, so shouldn't be in "gl_formats_template".
This fixes a regression introduced by e1469961d4.
2009-11-17 15:14:54 +01:00
Henri Verbeet db2273652d wined3d: Add a format table for basic format flags like WINED3DFMT_FLAG_FOURCC. 2009-11-17 15:14:54 +01:00
Anders Jonsson 58b203e798 wined3d: Fix typo. 2009-11-16 13:47:49 +01:00
Stefan Dösinger 0e77a381ea wined3d: Create clip coords only if they are used.
If GL vertex shader clipping is supported (GLSL or NVvp), we currently
always calculate clipping results in the shader. They're gracefully
discarded by opengl, but we need 6 constants / uniforms to calculate
unused values.
2009-11-12 15:18:00 +01:00
Henri Verbeet 5487009624 wined3d: Report a driver version appropriate for the reported OS. 2009-11-12 13:14:39 +01:00
Henri Verbeet 8d351a1141 wined3d: Initialize "context[0]" in IWineD3DDeviceImpl_CreateSwapChain() when not using OpenGL (Valgrind). 2009-11-04 13:07:57 +01:00
Austin English 5f0940e08a wined3d: Add version resource. 2009-11-04 11:54:59 +01:00
Marcus Meissner 9f8a73ab96 wined3d: Check for NULL before context_release (Coverity). 2009-11-03 21:22:46 +01:00
Stefan Dösinger 8eef221d20 d3d: Handle the pointsize_min default difference in d3d8. 2009-11-03 21:22:12 +01:00
Stefan Dösinger d4275e87f1 wined3d: Add a usage flag for static buffer declarations. 2009-11-03 21:21:55 +01:00
Stefan Dösinger 63326b1925 wined3d: Add a usage flag for vertex buffer optimization. 2009-11-03 21:21:48 +01:00
Stefan Dösinger 90e443758a wined3d: Add a parameter for SetRenderTarget viewport setup. 2009-11-03 21:21:30 +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 be8026adf6 wined3d: directly pass gl_info to stream_info_element_from_strided(). 2009-10-29 13:09:37 +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 d7b087618b wined3d: Remove some unused GLINFO_LOCATION definitions. 2009-10-29 13:09:20 +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 30d2660d99 wined3d: Restore the thread's previous GL context in WineD3D_ReleaseFakeGLContext(). 2009-10-27 10:55:35 +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
Henri Verbeet 13c4fe72ad wined3d: Set a driver name appropriate for the vendor in init_driver_info(). 2009-10-27 10:55:09 +01:00