Swap chain: Difference between revisions

Content deleted Content added
Inniverse (talk | contribs)
m Added {{orphan}} tag to article using Friendly
No edit summary
Line 1:
{{orphanOrphan|date=July 2010}}
__NOTOC__
{{Cleanup-jargon|date=November 2009}}
__NOTOC__
In [[computer graphics (computer science)|computer graphics]], a '''swap chain''' is a series of virtual [[framebuffer]]s utilized by the [[graphics card]] and graphics [[API]] for [[frame rate]] stabilization and several other functions. The swap chain usually exists in [[Video card#Video memory| graphics memory]], but it can exist in system memory as well. The non-utilization of a swap chain will result in 'choppy'stuttering [[Realreal Time rendering|rendering]], but its existence and utilization are required by many graphics APIs. A swap chain with two buffers is a [[double buffer]], and one with three is a [[triple buffer]].
 
==Function==
[[File:swap chain depiction.svg|thumb|alt=Swap Chain|A graphical depiction of a triple-buffered swap chain.]]
In every swap chain there are at least two buffers. The first framebuffer, the screenbuffer, is the buffer that is [[Rendering (computer graphics)|rendered]] to the [[output]] of the [[video card]]. Each time a new [[Film frame|frame]] is displayed, the first back buffer in the swap chain takes the place of the screenbuffer, this is called ''presentation'' or ''swapping''. A variety of other actions may be taken on the previous screenbuffer and other backbuffers (if they exist). The screenbuffer may be simply [[Overwriting (Computer Science)|overwritten]] or returned to the back of the swap chain for further processing. The action taken is decided by the [[client (computing)|client]] application and is API dependent.
 
===Direct3D===
[[Microsoft]] [[Direct3D]] implements a 'SwapChain' class. Each host device has at least one swap chain assigned to it, and others may be created by the client application.<ref name="msnd 0">
{{Cite web
| title = SwapChain Class
| publisher = Microsoft
| url = http://msdn.microsoft.com/en-us/library/microsoft.windowsmobile.directx.direct3d.swapchain.aspx
| accessdate = 30 October 2009}}</ref>
| accessdate = 30 October 2009}}</ref> The API provides three methods of swapping: 'copy', 'discard', and 'flip'. When the SwapChain is set to 'flip', the screenbuffer is copied onto the last backbuffer, then all the existing backbuffers are copied forward in the chain. When 'copy' is set, each backbuffer is copied forward, but the screenbuffer is not wrapped to the last buffer, leaving it unchanged. 'Flip' does not work when there is only one backbuffer, as the screenbuffer is copied over the only backbuffer before it can be presented. In 'discard' mode, the driver selects the best method.<ref name="nexe 0">{{Cite web
| title = Swap Chains
{{Cite web
| publisher = neXe
| title = Swap Chains
| url = http://nexe.gamedev.net/directKnowledge/default.asp?p=Swap%20Chains
| publisher = neXe
| accessdate = 30 October 2009}}</ref>
| url = http://nexe.gamedev.net/directKnowledge/default.asp?p=Swap%20Chains
| accessdate = 30 October 2009
}}</ref>
 
==Notes==