[10/11] WineD3D: Use the context manager to select the primary render target

Stefan Dösinger stefan at codeweavers.com
Fri Jan 26 16:22:21 CST 2007


This is a rather huge patch, sorry, I found no sane way to split it up :-(

It moves selecting the rendering context to the context manager. This means 
for now(no multithreading yet) that selecting the render target is handled by 
the context manager.

* Switch to a different onscreen swapchain selects t henew swapchains's 
context
* Switch to an offscreen texture with back buffer orm keeps the currently 
active swapchain. Switching back does not cause a context switch to the same 
context any longer
* PBuffer orm: A pbuffer context and drawable is created if needed, and used 
for offscreen rendering. Only one pbuffer is used for all textures for 
now(just as before)
* FBO: The current context is kept and the fbo is selected.
* Locking a onscreen render target: The context of the render target is 
activated(in theory, untested).

The render target selection is still imperfect. There is some room for 
improvement:
* The primary and higher render targets are handled differently. They are 
different in a lot of ways, but for fbos they are the same. There are 2 
different calls to fbo_set_render_target. The idea is to make render targets 
normal states(and rt 0 a state_nogl). But for this we have to check if render 
targets are recorded in the stateblock or not.

* Onscreen contexts are still created in the swapchain / device. Move that to 
context.c too. Not done in this patch to avoid making it even more huge.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0010-WineD3D-Use-the-context-manager-to-select-the-primary-render-target.txt.bz2
Type: application/x-bzip2
Size: 15672 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20070126/c4dd0661/0010-WineD3D-Use-the-context-manager-to-select-the-primary-render-target.txt.bin


More information about the wine-patches mailing list