Can I create multiple Device Contexts?

Started by
8 comments, last by Paul C Skertich 11 years, 8 months ago
Hey everyone. Inside the editor - I have the Level Scene and in a new windows form I have a Material Editor. The Level editor initialized the DX Device and Device Context the attaches to the Level Editor. My question would be if I create a DX device attach it to the the Material Editor Window - would this be a performance issue?

For instance, UDK you have a level editor, then when you open a material editor - you have a model showing what material you are currently editing. Same thing goes with animation editor etc....

Thanks,

Paul
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
Advertisement
There is absolutely no need to create a second device for this, you just create 2 independent scenes which use the same render device/render context for rendering.
As you're building a level editor I'll assume you already have a decent engine as a back-end, so it should be absolutely no problem for you to use this approach.

I gets all your texture budgets!

Thanks chief! It's been 3 months that I've been doing DirectX11. Additionally, there's been a 11 years gap of any programming - so I'm refreshing alot of it. The engine is currenly being build along side of the editor. When you say Scene's - what does this mean? Like where I clear the back buffer and depth buffer and begin rendering? The Scene you referred just confused me.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
So what you mean is basically when I present the model to the Device and Device context, correcto?
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
If you're building an engine you're going to have to make a very clear separation between low-level operations like manipulating your render device, the rendering pipeline(s) you build on top of that render device, and the scene(s) which feeds data to the pipeline(s). Note that these are all decoupled components.

The render device would be responsible for directly manipulating your low-level graphics API (DirectX 11 in your case) and would be able to directly set render states, bind resources, do draw calls, etc.

The pipeline would be responsible for sending structured commands to your render device, these would be things like 'draw a point light' or 'render a solid textured mesh', etc.

The scene is composed of entities which make up your environment. The level you're building with your level editor is a scene, but the environment in which you apply a material to an object in your material editor will be a scene too, albeit a separate one from the level you're designing. The data in your scene entities related to rendering would be sent through your pipeline so your render device can properly render them.

If these concepts are new or vague to you, you should probably reconsider your plan of building a level editor and an engine and work on something a lot more basic right now. These are definitely not implement-while-you-learn subjects

I gets all your texture budgets!

Thanks chief! You helped clear some stuff for me.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
I was trying to implemend a real time editor what would allow me for now to see how the game would look and feel. You know man? I understand that DX11 uses the render pipeline like - Geometry Shader, Input Assembly and others I can't remember now! Because the managed assmebly of my DLL file attaches itself to a windows form control. That was the part I was getting confused on. The way I have it it attaches the output window to the form1's panel control.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
Because in a Windows API the game engine just needs to attach itself to one window handle. What I was thinking was well, the game engine all has to do is read the map file created from the editor gather all the entites then do the game logic side from there. Whereas the editor - I can create the scene and how the entites should be textured and what not. I can't leave the output.window to be NULL when I initiaze the swapchain. So that sums up what I was confused about. I was replicating the engine so it can be a real time editor and allow more producitivey.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
Since the depth buffer and the backbuffer are used to create a scene - this is what I would have to use - correct?
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
Never mind bro, I think I got this - I am going to make one Managed Assembly for Editor, another managed assembly for different type of editors then I'll be straight. Thus, because the Material Editor has different functions than the level editor. I understand what you told me, though! Thanks for the reply.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX

This topic is closed to new replies.

Advertisement