Commit Graph

400 Commits

Author SHA1 Message Date
Henri Verbeet 51cdeeacd4 wined3d: Explicitly request alpha testing for blitting the cursor and logo textures to screen. 2014-01-10 12:06:09 +01:00
Henri Verbeet ddae20b689 wined3d: Fix up the backbuffer count on failure in swapchain_init(). 2014-01-08 14:34:12 +01:00
Henri Verbeet 38495706b7 wined3d: Remove the render target check in x11_copy_to_screen(). 2013-12-11 15:14:38 +01:00
Henri Verbeet 660bc8b717 wined3d: Print the WINED3D_SWAP_EFFECT_FLIP FIXME only once.
The comment is also outdated.
2013-12-06 13:14:52 +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 505951e32d wined3d: Create a proper texture for the software cursor. 2013-11-18 11:20:40 +01:00
Henri Verbeet 94509fbd59 wined3d: Create a texture for the logo surface. 2013-11-14 16:21:02 +01:00
Henri Verbeet 3ad8989614 wined3d: Introduce a function for safely releasing a DC. 2013-11-04 11:05:43 +01:00
Stefan Dösinger 9331c791e8 wined3d: Remove the D3DSWAPEFFECT_DISCARD debug clear code. 2013-10-08 15:39:02 +02:00
Henri Verbeet 602c82bce8 wined3d: Send present operations through a command stream.
The eventual goal is to have a multithreaded implementation of wined3d_cs_ops
and offload some processing to a different thread.
2013-09-27 10:33:15 +02:00
Henri Verbeet d21c26e4f6 wined3d: Get rid of surface_modify_location(). 2013-09-10 11:09:53 +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
Henri Verbeet 6325f3ddd8 wined3d: Don't set WINED3DUSAGE_RENDERTARGET on the front buffer.
We never render directly to the front buffer, and in case of e.g. a P8 front
buffer, we would fail surface creation if we were to enforce format
restrictions.
2013-09-04 11:37:01 +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
Stefan Dösinger 4dd4a6913b wined3d: Add a function for allocating aligned resource memory. 2013-08-21 19:53:20 +02:00
Henri Verbeet 7e7bd87b2c wined3d: Store the original display mode in the swapchain. 2013-08-20 11:50:28 +02:00
Henri Verbeet 390543dd02 wined3d: Use the "adapter" local variable in swapchain_init(). 2013-08-19 12:53:21 +02:00
Henri Verbeet 13a38e8d5e wined3d: Pass a wined3d_resource_desc structure to device_parent_create_swapchain_surface(). 2013-06-04 10:14:28 +02:00
Henri Verbeet a3f59cf618 wined3d: Allow textures as swapchain surfaces. 2013-06-03 11:30:43 +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
Henri Verbeet 31e8976910 wined3d: Get rid of the surface_type parameter to wined3d_swapchain_create(). 2013-01-16 12:22:57 +01:00
Henri Verbeet 78984cf46c wined3d: Get rid of ENTER_GL / LEAVE_GL. 2012-12-11 12:03:39 +01:00
Alexandre Julliard 13f126498b wined3d: Call wglSwapBuffers through the GL driver function table. 2012-12-06 14:10:04 +01:00
Stefan Dösinger 7b95df03c6 wined3d: Bind the src in a manual presentation blit. 2012-12-05 12:47:33 +01:00
Henri Verbeet adddf10cd8 wined3d: wined3d_swapchain_get_desc() never fails. 2012-10-04 14:09:55 +02:00
Henri Verbeet 5fcc1f8f70 wined3d: Just return the surface from wined3d_swapchain_get_back_buffer(). 2012-10-04 14:09:50 +02:00
Henri Verbeet e55416a113 wined3d: wined3d_swapchain_set_window() never fails. 2012-10-03 11:19:41 +02:00
Ričardas Barkauskas 06a8cbcc35 wined3d: Don't leave leftover textures when destroying and creating dxgi swapchains. 2012-09-25 11:20:05 +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
Alexandre Julliard d7250e97ed wined3d: Fetch GL functions from the WGL driver table, including glFinish and glFlush. 2012-07-20 13:21:27 +02:00
Henri Verbeet 2bfc5214be ddraw: Implement ddraw7_GetScanLine() on top of wined3d_get_adapter_raster_status(). 2012-07-19 15:43:11 +02:00
Henri Verbeet 0821c8024b wined3d: Merge the device parent create_rendertarget() and create_depth_stencil() handlers. 2012-07-11 09:57:07 -05:00
Henri Verbeet 8ad98cdbee wined3d: Get rid of the "discard" parameter to device_parent_create_depth_stencil(). 2012-07-10 10:39:42 -05:00
Henri Verbeet 9b74ebd794 wined3d: Get rid of the "lockable" parameter to device_parent_create_rendertarget(). 2012-07-10 10:39:34 -05:00
Henri Verbeet 256d433164 d3d9: Implement d3d9_device_PresentEx(). 2012-06-29 10:14:21 +02:00
Henri Verbeet 0ce894f274 d3d9: Implement d3d9_device_GetDisplayModeEx(). 2012-06-28 01:39:28 +02:00
Henri Verbeet 2c8834dffd d3d9: Implement d3d9_GetAdapterDisplayModeEx(). 2012-06-28 01:39:27 +02:00
Henri Verbeet a1bfd0988f wined3d: Take scanline ordering into account in the mode setting code. 2012-06-28 01:39:26 +02:00
Henri Verbeet 0f0fe49240 wined3d: Implement mode setting in the adapter instead of the device. 2012-06-22 16:13:58 +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 5ec56c9bc4 wined3d: Get rid of SFLAG_LOCKED. 2012-05-21 21:30:56 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Henri Verbeet 3ba95e2f3e wined3d: Move the present() back buffer check to the common wined3d_swapchain_present() code. 2012-04-16 12:05:09 +02:00
Henri Verbeet 6f8b8bda2d wined3d: Load the backbuffer in the correct location before presenting in swapchain_gl_present(). 2012-03-27 11:39:19 +02:00
Matteo Bruni b51a657626 wined3d: Use a separate flag for discarded surfaces. 2012-02-02 15:18:09 +01:00
Henri Verbeet 3769afa33d wined3d: Get rid of the WINED3DSURFTYPE typedef. 2012-01-20 13:31:33 +01:00
Akihiro Sagawa bd97589dba wined3d: Let GetRasterStatus return D3D_OK, again. 2012-01-19 11:55:48 +01:00
Henri Verbeet e53a277305 wined3d: Get rid of the WINED3DPOOL typedef. 2012-01-18 12:37:38 +01:00
Henri Verbeet 6a5a098b23 wined3d: Get rid of the WINED3DRESOURCETYPE typedef. 2012-01-18 12:37:38 +01:00
Henri Verbeet e70990041b wined3d: Get rid of the WINED3DTEXTUREFILTERTYPE typedef. 2012-01-13 17:34:31 +01:00
Matteo Bruni c6c5c6905e wined3d: Handle discarded depth-stencil surfaces with SFLAG_LOST.
SFLAG_INSYSMEM is already set by surface_add_dirty_rect() for all
surfaces anyway.
2012-01-13 17:34:30 +01:00
Henri Verbeet 3d33887c2f wined3d: Get rid of the WINED3DSWAPEFFECT typedef. 2012-01-06 19:24:22 +01:00
Henri Verbeet 45f6def784 wined3d: Get rid of the WINED3DBACKBUFFER_TYPE typedef. 2012-01-06 19:24:21 +01:00
Henri Verbeet 3082c1a9de wined3d: Get rid of the WINED3DRENDERSTATETYPE typedef. 2011-12-20 10:11:47 +01:00
Henri Verbeet 360c1114d6 wined3d: Get rid of the WINED3DRASTER_STATUS typedef. 2011-12-02 11:51:33 +01:00
Henri Verbeet 94c9b0b4fc wined3d: Get rid of the WINED3DPRESENT_PARAMETERS typedef. 2011-12-02 11:51:29 +01:00
Henri Verbeet d1327bbefe wined3d: Get rid of the WINED3DDEVICE_CREATION_PARAMETERS typedef. 2011-11-28 16:40:47 +01:00
Henri Verbeet 2e1c0d83c1 wined3d: Get rid of the WINED3DGAMMARAMP typedef. 2011-11-22 10:52:45 +01:00
Henri Verbeet 18a7653c78 wined3d: Get rid of the WINED3DDISPLAYMODE typedef. 2011-11-17 11:37:26 +01:00
Henri Verbeet e0a0d611af wined3d: Pass a wined3d_color struct to wined3d_device_clear(). 2011-11-16 09:41:53 +01:00
Henri Verbeet a44401af0f wined3d: x11_copy_to_screen() shouldn't be called on mapped surfaces. 2011-11-14 15:25:21 +01:00
Henri Verbeet d6b432b068 wined3d: Get rid of client_memory from wineD3DSurface_DIB. 2011-11-08 09:50:23 +01:00
Henri Verbeet 335a6ca78e wined3d: Use wined3d_surface_blt() in swapchain_gl_present(). 2011-11-03 13:00:50 +01:00
Henri Verbeet 0b3185665f wined3d: Use wined3d_surface_blt() in wined3d_swapchain_get_front_buffer_data(). 2011-11-03 13:00:45 +01:00
Henri Verbeet 7de4df9fd9 wined3d: Get rid of the wined3d_surface_bltfast() export. 2011-10-31 23:52:47 +01:00
Marcus Meissner f90d402610 wined3d: Fixed sizeof (Coverity). 2011-10-17 17:45:03 +02:00
Henri Verbeet 66637ea35c wined3d: Don't print the context recreation FIXME for FBO ORM.
With FBOs we can just render offscreen to an appropriate depth/stencil buffer.
2011-09-13 09:19:46 +02:00
Henri Verbeet c89a3ffe80 ddraw: Get rid of the surface implementation switching code. 2011-08-31 19:42:52 +02:00
Henri Verbeet 641f52ef96 wined3d: Add multisampling support. 2011-08-26 11:28:47 +02:00
Matteo Bruni e53ae83d74 wined3d: Pass around the context instead of gl_info. 2011-08-25 11:31:55 +02:00
Henri Verbeet f0d8f2aa89 wined3d: Use draw_binding in swapchain_gl_present(). 2011-08-25 11:31:53 +02:00
Henri Verbeet e57b20c215 wined3d: Keep track of a surface's "draw location". 2011-08-24 11:58:14 +02:00
Henri Verbeet 620c81dc76 wined3d: Add a registry key to disable rendering swapchains onscreen.
We'll probably want to make this default to TRUE at some point, but at least
for the moment there still seem to be some performance advantages to rendering
onscreen in most cases.
2011-08-24 11:58:14 +02:00
Henri Verbeet 9de5372036 wined3d: Introduce a function to update a swapchain's render_to_fbo field. 2011-08-23 16:53:51 +02:00
Henri Verbeet 33fafc6166 wined3d: Get rid of context_bind_fbo() calls outside context.c. 2011-08-01 11:16:12 +02:00
Henri Verbeet c2ede1d4c8 wined3d: Only invalidate state for the current context in swapchain_blit(). 2011-07-27 11:51:50 +02:00
Henri Verbeet 2b789778fd wined3d: Make the swapchain parameter to swapchain_blit() const. 2011-07-15 10:08:21 +02:00
Henri Verbeet a86785d065 wined3d: Make the swapchain parameter to x11_copy_to_screen() const. 2011-07-12 11:35:05 +02:00
Henri Verbeet 4671f86cd6 wined3d: Make the context parameter to the get_drawable_size() callback const. 2011-07-07 12:31:34 +02:00
Henri Verbeet 590505c0a4 wined3d: Make context_create() work if the window is already destroyed. 2011-07-06 11:14:16 +02:00
Stefan Dösinger cd96c59d91 wined3d: Track framebuffer changes. 2011-07-05 17:33:43 +02:00
Henri Verbeet b1664a2c85 wined3d: Get rid of some IWineD3D* references. 2011-07-04 13:44:41 +02:00
Henri Verbeet ebcf08e59a wined3d: Properly destroy contexts not owned by the implcit swapchain.
In particular, set num_contexts to 0 in the swapchain that owns the contexts.
2011-06-28 10:18:37 -05:00
Henri Verbeet c8f26a1345 wined3d: Rename IWineD3DDeviceImpl_MarkStateDirty() to device_invalidate_state(). 2011-06-06 16:18:41 +02:00
Piotr Pawłow bc9407a452 wined3d: Set container of swapchain surfaces to WINED3D_CONTAINER_NONE in swapchain_init() error path. 2011-06-02 16:22:44 +02:00
Henri Verbeet aba42d1fa5 wined3d: Introduce a separate structure for framebuffer state. 2011-05-19 10:07:57 +02:00
Henri Verbeet 3032b40c80 wined3d: Get rid of the IWineD3DDeviceParent interface. 2011-05-19 10:06:21 +02:00
Alexandre Julliard 599d09b08c wined3d: Always create the software cursor. 2011-05-17 10:17:31 +02:00
Henri Verbeet 0e0e5c3e38 wined3d: Get rid of the IWineD3DDevice typedefs. 2011-05-17 10:06:23 +02:00
Henri Verbeet 8d4ca1f815 wined3d: Remove COM from the device implementation. 2011-05-17 10:06:18 +02:00
Henri Verbeet 00a5f38595 wined3d: Remove object creation methods from the IWineD3DDevice interface. 2011-05-11 14:56:48 +02:00
Francois Gouget 5920de5ffb Assorted spelling and case fixes. 2011-05-09 12:09:27 +02:00
Henri Verbeet c4b73c4550 wined3d: Get rid of the IWineD3DSurface typedefs. 2011-04-29 16:52:13 +02:00
Henri Verbeet 1c1de920e3 wined3d: Remove COM from the surface implementation. 2011-04-29 16:52:13 +02:00
Matteo Bruni a3c12c5be4 wined3d: Fallback to our private window when context activation fails otherwise. 2011-04-20 16:31:48 +02:00
Henri Verbeet d30da7ae39 wined3d: Get rid of the IWineD3DSwapChain typedefs. 2011-04-14 17:13:57 +02:00
Henri Verbeet 3ec19590d5 wined3d: Remove COM from the swapchain implementation. 2011-04-14 17:13:57 +02:00
Henri Verbeet 178061d3c1 wined3d: Merge the GL and GDI swapchain vtbls. 2011-04-14 17:13:56 +02:00
Henri Verbeet 7ace689742 wined3d: Take hDestWindowOverride into account in IWineGDISwapChainImpl_Present(). 2011-04-13 14:13:52 +02:00
Henri Verbeet 926dfc5c49 wined3d: Merge the IWineD3DSwapChain::SetDestWindowOverride() implementations. 2011-04-13 14:13:51 +02:00
Henri Verbeet 3068ae9e83 wined3d: Remove IWineD3DSwapChain::Destroy() from the public interface. 2011-04-13 14:13:51 +02:00
Henri Verbeet 84103460bd wined3d: Check FBO completeness after the read / draw buffers are specified.
Unless the driver implements ARB_ES2_compatibility / GL4.1, FBO completeness
depends on what read / draw buffers are set.
2011-04-11 11:50:51 +02:00
Henri Verbeet dd2c7d0d8c wined3d: Don't free D3D swapchains until the wined3d swapchain is destroyed.
This will allow us the get rid of the swapchain refcounting hacks in d3d9 in
particular. This is similar to the way we handle resources that are still in
use by a stateblock, but aren't referenced anywhere by the application.
2011-04-08 14:40:48 +02:00
Henri Verbeet d19c3588bc wined3d: Merge the IWineD3DSwapChain::Destroy() implementations.
They're mostly the same, except for the GL version also destroying its
contexts, and being a bit more careful about the order in which backbuffers
are destroyed.
2011-04-08 14:40:43 +02:00
Henri Verbeet 28137ba2e9 wined3d: Only create a swapchain context array for GL swapchains.
Lying about the number of contexts a swapchain has isn't very useful.
2011-04-08 14:40:39 +02:00
Henri Verbeet 032c374307 wined3d: Merge swapchain_base.c into swapchain.c. 2011-04-07 19:27:01 +02:00
Henri Verbeet 0a174ae542 wined3d: Merge swapchain_gdi.c into swapchain.c. 2011-04-07 19:26:50 +02:00
Henri Verbeet 85f2348549 wined3d: Get rid of the IWineD3DBase requirement for surface_set_container().
This made sense back when we needed the container's parent and didn't know the
container's type, but neither of those is true anymore.
2011-03-28 17:08:52 +02:00
Henri Verbeet ac9c592ca9 wined3d: Store all the resource desc information in struct wined3d_resource. 2011-03-09 12:29:17 +01:00
Henri Verbeet 36d4268e3c wined3d: Remove COM from IWineD3D. 2011-02-02 12:22:42 +01:00
Henri Verbeet 6f95f05aaf wined3d: Move swapchain context retrieval to swapchain.c. 2011-01-20 12:18:58 +01:00
Henri Verbeet b439fa9d8f wined3d: Pass an IWineD3DSwapChainImpl pointer to swapchain_create_context_for_thread(). 2011-01-19 12:22:38 +01:00
Andrew Nguyen 7e13b1afaf wined3d: Remove references to GLX_SGI_video_sync.
Usage of GLX_SGI_video_sync is problematic, and wined3d cannot use GLX extensions.
2010-12-27 15:39:41 +01:00
Henri Verbeet 0e3c60786e wined3d: Explicitly pass gl_info to unset_shader(). 2010-12-10 13:02:26 +01:00
Henri Verbeet ae7a20af2f wined3d: Explicitly pass blit_priv and gl_info to set_shader(). 2010-12-10 13:02:24 +01:00
Henri Verbeet 03f7a2d88e wined3d: Get rid of the remaining "Flags". 2010-11-23 13:15:36 +01:00
Henri Verbeet 027fdb31c2 wined3d: Rename the IWineD3DSurfaceImpl "Flags" field to "flags". 2010-11-12 15:43:07 +01:00
Henri Verbeet 7e3985e1fe ddraw: Setup the device window in SetCooperativeLevel(). 2010-11-08 13:30:54 +01:00
Henri Verbeet 45cee64295 wined3d: Move the fullscreen window setup / restore code to the device. 2010-11-08 13:30:40 +01:00
Henri Verbeet 0b15963b4e wined3d: Get rid of redundant comparisons against FALSE. 2010-09-14 11:43:44 -05:00
Henri Verbeet b68d257710 wined3d: Get rid of redundant comparisons against NULL / 0. 2010-09-14 09:43:33 -05:00
Henri Verbeet f49028d91c wined3d: GL_DRAW_FRAMEBUFFER depends on either ARB_framebuffer_object or EXT_framebuffer_blit. 2010-09-08 13:31:37 +02:00
Henri Verbeet bc2db78c3a wined3d: Explicitly document some more consequences of GL locking policy.
The basic rule is that you can't call anything that takes the user32 / gdi32
lock while under the GL (winex11) lock. As a consequence, you can't call
anything like context_acquire() or context_destroy() either.
2010-09-03 11:05:10 +02:00
Henri Verbeet 6c4c351791 wined3d: Don't require wined3d object parents to be COM objects. 2010-09-01 14:01:02 +02:00
Henri Verbeet 3a7f08a56f wined3d: Rename wined3d_format_desc to wined3d_format. 2010-08-31 14:23:47 +02:00
Henri Verbeet c568916f9e wined3d: Implicit depth/stencil surfaces don't have a container.
They're owned by the device instead of the swapchain.
2010-08-31 14:23:47 +02:00
Henri Verbeet b233e7b301 wined3d: Rename the "format" field in wined3d_format_desc to "id". 2010-08-26 12:41:44 +02:00
Henri Verbeet cc5271d1b7 wined3d: Rename WINED3DFORMAT to wined3d_format_id. 2010-08-24 12:25:01 +02:00
Henri Verbeet 3fd66bc650 wined3d: Make some lookup tables const. 2010-08-23 12:04:36 +02:00
Henri Verbeet 8292c687d8 wined3d: Get rid of the now redundant SFLAG_SWAPCHAIN surface flag. 2010-08-17 11:55:32 +02:00
Henri Verbeet 0b24db5db5 wined3d: Also store the subresource container type. 2010-08-17 11:55:32 +02:00
Henri Verbeet 61db577a4b wined3d: Remove SetContainer() from the public IWineD3DSurface interface. 2010-08-17 11:55:32 +02:00
Matteo Bruni 20f51c29a9 wined3d: Setup target if offscreen rendering setting changed. 2010-07-26 18:38:33 +02:00
Henri Verbeet 943fb2fb57 wined3d: Do RGB <=> sRGB transfers using FBO blits.
Concept based on a patch by Stefan.
2010-07-26 18:38:31 +02:00
Henri Verbeet 3d8ff7f27a wined3d: Framebuffer blits are affected by the color mask. 2010-07-22 10:13:36 +02:00
Henri Verbeet f7760656f3 wined3d: Remove LoadLocation() from the public wined3d surface interface. 2010-07-22 10:13:24 +02:00
Henri Verbeet 147f24dd78 wined3d: Remove ModifyLocation() from the public wined3d surface interface. 2010-07-22 10:13:13 +02:00
Henri Verbeet 1b5cc39a86 wined3d: Get rid of some dead code. 2010-06-01 11:03:56 +02:00
Dan Kegel f99e1d80e2 wined3d: Fix size of buffer in swapchain_create_context_for_thread(). 2010-05-31 12:46:08 +02:00
Henri Verbeet e8ac9bbd7f wined3d: Get rid of GLINFO_LOCATION. 2010-05-25 13:29:00 +02:00
Henri Verbeet bcc4603125 wined3d: Set the swapchain.c GLINFO_LOCATION to *gl_info. 2010-05-24 11:31:25 +02:00
Henri Verbeet 7bec8e1dcb wined3d: Correctly translate between coordinate systems in swapchain_blit(). 2010-05-18 18:42:09 +02:00
Henri Verbeet 7a2debe113 wined3d: Use the FBO cache in swapchain_blit(). 2010-05-06 14:17:30 +02:00
Stefan Dösinger ec3d2ba316 wined3d: Fall back to other depth stencil formats if D24S8 isn't supported. 2010-05-04 13:15:00 +02:00
Henri Verbeet 49e076eabd wined3d: Separate context acquisition and state application. 2010-05-04 13:14:59 +02:00
Henri Verbeet f09b8e454d wined3d: Avoid some needless depth buffer copies.
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Henri Verbeet d977e91b11 wined3d: Store back buffer surfaces as IWineD3DSurfaceImpl pointers in the swapchain. 2010-04-27 12:02:14 -05:00
Henri Verbeet 62acb2fdbc wined3d: Store the front buffer surface as an IWineD3DSurfaceImpl pointer in the swapchain. 2010-04-27 12:01:59 -05:00
Henri Verbeet 6b34b8e6d1 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_acquire(). 2010-04-22 11:28:17 +02:00