12

How can I render my objects with DirectX into 2 separated windows?

5
  • 3
    If you want to answer your own question, you should write an actual answer instead of putting the answer in the question. Commented Jan 22, 2014 at 20:15
  • 1
    Okay sorry ... I'll remember that Commented Jan 22, 2014 at 20:17
  • 2
    No need to be sorry, I was just pointing it out. Commented Jan 22, 2014 at 20:20
  • @Quest That's nice you'll remember that, but you should do that for this question, like right now. Move the answer into an answer and accept it, and change the question part to actually have a well worded question. Otherwise this feels incomplete, and I don't want to upvote a topic with poor formatting like this. Actually, I'm inclined to downvote and flag it unless this is done. Commented Feb 21, 2014 at 0:24
  • @Quest I hope my comment didn't sound harsh. Thanks for following through! :) Commented Feb 21, 2014 at 17:33

1 Answer 1

10

You need to create one SwapChain and RenderTargetView for every window.

1 if you created your device via CreateDeviceAndSwapChain you need to obtain IDXGIFactory first

IDXGIDevice * device; d3ddevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&device); IDXGIAdapter * adapter; device->GetParent(__uuidof(IDXGIAdapter), (void**)&adapter); IDXGIFactory * factory; adapter->GetParent(__uuidof(DDXGIFactory), (void**)&factory); 

With DXGIFactory you can create additional swapchain for new window

factory->CreateSwapChain(g_pd3dDevice, &sd, &g_pSwapChain2); 

then create a render target view

ID3D11Texture2D* pBackBuffer = NULL; hr = g_pSwapChain2->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer ); if( FAILED( hr ) ) return hr; hr = g_pd3dDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView ); pBackBuffer->Release(); if( FAILED( hr ) ) return hr; 

And finally just set your render target(s) and Draw something!

g_immediateContext->OMSetRenderTargets(1, &g_RenderTargetView, NULL); .... 

I hope this has been helpful.

Best regards Quest :)

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.