title: how to get a back buffer copy inside the video memory?
body: <p>Now I can get backbuffer pointer called pBackBuffer by</p>
  
  <pre><code>m_pDevice-&gt;GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, 
      IREF_GETPPTR(pBackBuffer,IDirect3DSurface9));
  </code></pre>
  
  <p>And then create a surface called pSurfTemp in syetem memory by</p>
  
  <pre><code>m_pDevice-&gt;CreateOffscreenPlainSurface(
      g_Proc.m_Stats.m_SizeWnd.cx, g_Proc.m_Stats.m_SizeWnd.cy, 
      s_bbFormat, D3DPOOL_SYSTEMMEM, 
      IREF_GETPPTR(pSurfTemp,IDirect3DSurface9), NULL );
  </code></pre>
  
  <p>Then I get the back buffer data by</p>
  
  <pre><code>m_pDevice-&gt;GetRenderTargetData(pBackBuffer, pSurfTemp);
  </code></pre>
  
  <p>Data seems transforming like this:  videoMemory->systemMemory</p>
  
  <p>Since next step is to operate the data in video memory again, it will copy it from system memory back into video memory. It wastes time.</p>
  
  <p>I want to copy the data inside video memory, How can I do it?</p>