Are you saying that you want to render the GUI in 3D, such as on one face of a cube that can rotate?
The "traditional" approach to a GUI is to draw it on top of the 3D world, always facing the camera.
>> There is going to be several screens running at the same time
Do you mean split screens? You can have multiple dialogs (Cegui::FrameWindow) active at once. What you would need to do is prevent each from leaving its region. One easy solution would be to create a fullscreen Cegui::Sheet having one Cegui::DefaultWindow per split.
For example, a 4x4 grid layout:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<GUILayout >
<Window Type="DefaultWindow" Name="Grid_4x4" >
<Property Name="InheritsAlpha" Value="False" />
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_1x1" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{0.5,0},{0.5,0}}" />
</Window>
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_1x2" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.5,0},{0,0},{1,0},{0.5,0}}" />
</Window>
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_2x1" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0.5,0},{0.5,0},{1,0}}" />
</Window>
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_2x2" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.5,0},{0.5,0},{1,0},{1,0}}" />
</Window>
</Window>
</GUILayout>
You would then add dialogs to one of the cells, such as "Grid_4x4/Cell_2x2" for the cell in the lower right. This dialog would be clipped by its parent, preventing it from appearing in a different cell.
Is this making sense or am I off the mark?