patch wined3d

Henri Verbeet hverbeet at gmail.com
Tue May 26 11:56:33 CDT 2009


2009/5/26 Pavel Prochazka <prochapa at inf.upol.cz>:
> +»······int i=1;
> +
> +»······/*it moves all backbuffers by 1 to left form id = 1,
> +»······the backbuffer swap to frontbuffer and frontbuffer swaps to the end of chain
> +»······Something like this:
> +»······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······------------^»··»·······
> +»······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······|»······»·······»·······|
> +»······|FrontBuffer|        |BackBuffer0|BackBuffer1|Backbuffer2|....|BackbufferN|
> +»······           »····»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······^
> +»······»·······|---------------------------------------------------------------|
> +»······»·······^
> +»······»·······|---------------------|
> +
> +»······»·······»·······»·······»·······»·······»·······»·······»·······»·······»·······
> +»······*/
> +
> +»······for(;i<This->presentParms.BackBufferCount-1;i++)·
> +»······{
> +»······»·······hlp1 = (IWineD3DSurfaceImpl *)This->backBuffer[i];
> +»······»·······hlp2 = (IWineD3DSurfaceImpl *)This->backBuffer[i+1];
> +»······»·······hlp1->hDC = hlp2->hDC;
> +»······»·······hlp1->dib.DIBsection = hlp2->dib.DIBsection;
> +»······»·······hlp1->dib.bitmap_data = hlp2->dib.bitmap_data;
> +»······»·······hlp1->resource.allocatedMemory = hlp2->resource.allocatedMemory;
> +»······»·······hlp1->dib.client_memory = hlp2->dib.client_memory;
> +»······}
> +
> +»······hlp1 = (IWineD3DSurfaceImpl *)This->backBuffer[i];
> +»······hlp1->hDC = front->hDC;
> +»······hlp1 = (IWineD3DSurfaceImpl *)This->backBuffer[i];
> +»······hlp1->dib.DIBsection = front->dib.DIBsection;
> +»······hlp1->dib.bitmap_data = front->dib.bitmap_data;
> +»······hlp1->resource.allocatedMemory = front->resource.allocatedMemory;
> +»······hlp1->dib.client_memory = front->dib.client_memory;
> +»······
> +···

Style issues aside, that's not a very efficient way to implement a swapchain.


More information about the wine-devel mailing list