Performance drop - many containers
Moderators: CEGUI MVP, CEGUI Team
Performance drop - many containers
Hello there,
Since a time I fight with CEGUI to accomplish simple inventory system. D3D9 renderer is used, cegui 8.x.
It had to be draggable so I built initial part to be like that:
(A pseudo hierarchy diagram)
1. FrameWindow as the main holder
2. Another frame window with no toolbar to give more borders/look
3. Here, ScrollbarPane, as the idea is to simulate multicolumnlist with custom elements.
4. VerticalLayoutContainer as the child of scrollbarpane
This is the first part that don't change. The rows are added as children to verticallayoutcontainer in form:
1. OuterContainer = HorizontalLayoutContainer (as wrapper)
2. DragContainer, child of outercontainer
3. InnerContainer (horizontallayoutcontainer), child of dragcontainer
4. Static text, static text and button are children of InnerContainer
5. Finally the whole 'row' is added to verticallayoutcontainer from first part p.4
Think I wrote it ok, it worked ok, i could added row by row, scrollbar worked properly but... when I reach more than 50-100 records my rendering process starts to pop, on r9 280 hexa-core amd.
I used to test various containers/elements to accomplish this task and finally this one seemed to work without hand-positioning. Everything is layoutcontainer driven but scrollbarpane seems to reprocess all these elements instead of only visible ones, because the more I add the more drops I get.
Btw, I used to write my own gui and in new project I wanted to skip this point because of the 'wheel' idea, but with every step it seems to be inevitable:(
Thanks in advance.
Since a time I fight with CEGUI to accomplish simple inventory system. D3D9 renderer is used, cegui 8.x.
It had to be draggable so I built initial part to be like that:
(A pseudo hierarchy diagram)
1. FrameWindow as the main holder
2. Another frame window with no toolbar to give more borders/look
3. Here, ScrollbarPane, as the idea is to simulate multicolumnlist with custom elements.
4. VerticalLayoutContainer as the child of scrollbarpane
This is the first part that don't change. The rows are added as children to verticallayoutcontainer in form:
1. OuterContainer = HorizontalLayoutContainer (as wrapper)
2. DragContainer, child of outercontainer
3. InnerContainer (horizontallayoutcontainer), child of dragcontainer
4. Static text, static text and button are children of InnerContainer
5. Finally the whole 'row' is added to verticallayoutcontainer from first part p.4
Think I wrote it ok, it worked ok, i could added row by row, scrollbar worked properly but... when I reach more than 50-100 records my rendering process starts to pop, on r9 280 hexa-core amd.
I used to test various containers/elements to accomplish this task and finally this one seemed to work without hand-positioning. Everything is layoutcontainer driven but scrollbarpane seems to reprocess all these elements instead of only visible ones, because the more I add the more drops I get.
Btw, I used to write my own gui and in new project I wanted to skip this point because of the 'wheel' idea, but with every step it seems to be inevitable:(
Thanks in advance.
Re: Performance drop - many containers
Hi, the reinventing the wheel thing is definitely relevant when it comes to saving yourself time but also you should also consider the benefit of working on something bigger, something that you may improve with your work if you want. If everyone does that, the result is definitely better than any do-it-yourself solution, especially if your project becomes more complicated (there are of course, as always, some cases where a homemade version is better, especially if all you need is super-simple and no additional features necessary in the future).
AutoRenderingSurface on the FrameWindows are off? If no you might want to turn them off.
From your description it is hard to tell what the actual issue is. You can do one of the following to help us solve your issue or make you aware of what the issue is which allows you to solve it on your own and make a PR. Choose whichever you prefer:
A) Run a profiler in Release with Debug symbols config and check where the program spends the most time when you reach your performance issues. Use sampling or instrumentation for this - I can recommend the Visual Studio Profiler for this purpose if it is available in your setup, otherwise a simple one with sampling should work.
This would be the preferred method since you learn the most, you can tell us the most (also in the future) and potentially solve the issue yourself and make a PR with the solution.
B) Create a Sample in the Sample Browser which does what you want to do in a minimal fashion and allows to reproduce the issue - then provide us the code, we might find out what the issue is then.
or
C) As a (for you maybe) simpler version of B) you may also simply output the windows hierarchy that creates issues into XML as string. There is a function for this purpose, you can then store the output in a layout file, then provide us with said layout file so we can oad it to reproduce the issue. (please test the layout file before asking us to check it)
Functions for writing Windows as layouts are:
Window::writeLayoutToStream
WindowManager::writeLayoutToStream
WindowManager::getLayoutAsString
WindowManager::saveLayoutToFile
Some of these are only available on default branch.
AutoRenderingSurface on the FrameWindows are off? If no you might want to turn them off.
From your description it is hard to tell what the actual issue is. You can do one of the following to help us solve your issue or make you aware of what the issue is which allows you to solve it on your own and make a PR. Choose whichever you prefer:
A) Run a profiler in Release with Debug symbols config and check where the program spends the most time when you reach your performance issues. Use sampling or instrumentation for this - I can recommend the Visual Studio Profiler for this purpose if it is available in your setup, otherwise a simple one with sampling should work.
This would be the preferred method since you learn the most, you can tell us the most (also in the future) and potentially solve the issue yourself and make a PR with the solution.
B) Create a Sample in the Sample Browser which does what you want to do in a minimal fashion and allows to reproduce the issue - then provide us the code, we might find out what the issue is then.
or
C) As a (for you maybe) simpler version of B) you may also simply output the windows hierarchy that creates issues into XML as string. There is a function for this purpose, you can then store the output in a layout file, then provide us with said layout file so we can oad it to reproduce the issue. (please test the layout file before asking us to check it)
Functions for writing Windows as layouts are:
Window::writeLayoutToStream
WindowManager::writeLayoutToStream
WindowManager::getLayoutAsString
WindowManager::saveLayoutToFile
Some of these are only available on default branch.
CrazyEddie: "I don't like GUIs"
Re: Performance drop - many containers
Autorendering - didn't touch.
1. More complex layouts I do programatically.
2. The rest comes from CEED.
Ok, first, just see my target:
http://snag.gy/DcoxD.jpg
On the screen you'll see test windows, but the main is cargo with eve online cubemap behind:)
A) I do run Visual Studio, but really I've never went into profiler because I knew where things crack. I can do some testing, but you know, you simply feel it:) The worst cegui section is the lack of multicolumnlist which should accept windows instead of listboxtext which is the only holy grail in this story.
B) Sample - won't go this way.
C) Maybe, not worth it.
Let's try code paste, I'll just show you what I've made for testing purposes:
private:
FrameWindow *cargo;
FrameWindow *cargoFrame;
ScrollablePane *pane;
VerticalLayoutContainer *vlay;
static string getCargoInstanceName(int id);
void createWindow();
void registerHandlers();
----------- Above part isn't really required, but let it be there for tmp help
cargo = static_cast<FrameWindow*>(WindowManager::getSingleton().createWindow("TaharezLook/FrameWindow", cargoInstanceName));
cargo->setText(cargoName);
// Set main frame somewhere
cargo->setPosition(UVector2(UDim(0.3, 0), UDim(0.3, 0)));
cargo->setSize(USize(cegui_reldim(0.3), cegui_reldim(0.55)));
_instance = cargo;
cargo->setUserData(this);
// Inner cargo scrollable container
cargoFrame = static_cast<FrameWindow*>(WindowManager::getSingleton().createWindow("TaharezLook/FrameWindow"));
cargoFrame->setPosition(UVector2(cegui_absdim(5), cegui_absdim(10)));
cargoFrame->setSize(USize(cegui_reldim(0.982), cegui_reldim(0.9)));
cargoFrame->setTitleBarEnabled(false);
cargoFrame->setCloseButtonEnabled(false);
cargoFrame->setSizingEnabled(false);
// Scrollable container for layouts
pane = static_cast<ScrollablePane*>(WindowManager::getSingleton().createWindow("TaharezLook/ScrollablePane", "Pane"));
pane->setPosition(UVector2(cegui_reldim(0), cegui_absdim(0)));
pane->setSize(USize(cegui_reldim(1), cegui_reldim(1)));
// Main vertical container, consits of horizontal (n)layouts->dragcontainer->hlayout->items
vlay = static_cast<VerticalLayoutContainer*>
(WindowManager::getSingleton().createWindow("VerticalLayoutContainer", "Vlay"));
pane->addChild(vlay);
cargoFrame->addChild(pane);
cargo->addChild(cargoFrame);
--------------------- ROW NOW -------------
void cargoWindow::addRow(cargoEntry *entry)
{
// Create example row?
HorizontalLayoutContainer *outerLay = static_cast<HorizontalLayoutContainer*>
(WindowManager::getSingleton().createWindow("HorizontalLayoutContainer"));
outerLay->setUserData(&entry->uid);
DragContainer *drag = static_cast<DragContainer*>
(WindowManager::getSingleton().createWindow("DragContainer"));
drag->setSize(USize(cegui_reldim(1), cegui_reldim(0.07)));
// Inner drag container for row composition
HorizontalLayoutContainer *innerLay = static_cast<HorizontalLayoutContainer*>
(WindowManager::getSingleton().createWindow("HorizontalLayoutContainer"));
// Push standard controls, name, quantity, info button
Window *name = WindowManager::getSingleton().createWindow("TaharezLook/StaticText");
//name->setSize(USize(cegui_reldim(0.5), cegui_reldim(0.
));
name->setSize(USize(cegui_absdim(175), cegui_absdim(26)));
name->setText(entry->name);
Window *quantity = WindowManager::getSingleton().createWindow("TaharezLook/StaticText");
quantity->setPosition(UVector2(cegui_reldim(0.01), cegui_reldim(0)));
quantity->setSize(USize(cegui_reldim(0.2), cegui_reldim(0.
));
stringstream qstr;
qstr << entry->quantity;
quantity->setText(qstr.str());
Window *info = WindowManager::getSingleton().createWindow("TaharezLook/Button");
info->setSize(USize(cegui_reldim(0.2), cegui_reldim(0.
));
info->setText("Info");
float margin = 4;
name->setMargin(UBox(UDim(0, margin), UDim(0, margin), UDim(0, margin), UDim(0, margin)));
quantity->setMargin(UBox(UDim(0, margin), UDim(0, margin), UDim(0, margin), UDim(0, margin)));
info->setMargin(UBox(UDim(0, margin), UDim(0, margin), UDim(0, margin), UDim(0, margin)));
innerLay->setMousePassThroughEnabled(true);
name->setMousePassThroughEnabled(true);
quantity->setMousePassThroughEnabled(true);
innerLay->addChild(name);
innerLay->addChild(quantity);
innerLay->addChild(info);
drag->addChild(innerLay);
outerLay->addChild(drag);
vlay->addChild(outerLay);
}
Damn, I rarely write forums, where the heck I push code? If you have trouble I'll use pastebin
1. More complex layouts I do programatically.
2. The rest comes from CEED.
Ok, first, just see my target:
http://snag.gy/DcoxD.jpg
On the screen you'll see test windows, but the main is cargo with eve online cubemap behind:)
A) I do run Visual Studio, but really I've never went into profiler because I knew where things crack. I can do some testing, but you know, you simply feel it:) The worst cegui section is the lack of multicolumnlist which should accept windows instead of listboxtext which is the only holy grail in this story.
B) Sample - won't go this way.
C) Maybe, not worth it.
Let's try code paste, I'll just show you what I've made for testing purposes:
private:
FrameWindow *cargo;
FrameWindow *cargoFrame;
ScrollablePane *pane;
VerticalLayoutContainer *vlay;
static string getCargoInstanceName(int id);
void createWindow();
void registerHandlers();
----------- Above part isn't really required, but let it be there for tmp help
cargo = static_cast<FrameWindow*>(WindowManager::getSingleton().createWindow("TaharezLook/FrameWindow", cargoInstanceName));
cargo->setText(cargoName);
// Set main frame somewhere
cargo->setPosition(UVector2(UDim(0.3, 0), UDim(0.3, 0)));
cargo->setSize(USize(cegui_reldim(0.3), cegui_reldim(0.55)));
_instance = cargo;
cargo->setUserData(this);
// Inner cargo scrollable container
cargoFrame = static_cast<FrameWindow*>(WindowManager::getSingleton().createWindow("TaharezLook/FrameWindow"));
cargoFrame->setPosition(UVector2(cegui_absdim(5), cegui_absdim(10)));
cargoFrame->setSize(USize(cegui_reldim(0.982), cegui_reldim(0.9)));
cargoFrame->setTitleBarEnabled(false);
cargoFrame->setCloseButtonEnabled(false);
cargoFrame->setSizingEnabled(false);
// Scrollable container for layouts
pane = static_cast<ScrollablePane*>(WindowManager::getSingleton().createWindow("TaharezLook/ScrollablePane", "Pane"));
pane->setPosition(UVector2(cegui_reldim(0), cegui_absdim(0)));
pane->setSize(USize(cegui_reldim(1), cegui_reldim(1)));
// Main vertical container, consits of horizontal (n)layouts->dragcontainer->hlayout->items
vlay = static_cast<VerticalLayoutContainer*>
(WindowManager::getSingleton().createWindow("VerticalLayoutContainer", "Vlay"));
pane->addChild(vlay);
cargoFrame->addChild(pane);
cargo->addChild(cargoFrame);
--------------------- ROW NOW -------------
void cargoWindow::addRow(cargoEntry *entry)
{
// Create example row?
HorizontalLayoutContainer *outerLay = static_cast<HorizontalLayoutContainer*>
(WindowManager::getSingleton().createWindow("HorizontalLayoutContainer"));
outerLay->setUserData(&entry->uid);
DragContainer *drag = static_cast<DragContainer*>
(WindowManager::getSingleton().createWindow("DragContainer"));
drag->setSize(USize(cegui_reldim(1), cegui_reldim(0.07)));
// Inner drag container for row composition
HorizontalLayoutContainer *innerLay = static_cast<HorizontalLayoutContainer*>
(WindowManager::getSingleton().createWindow("HorizontalLayoutContainer"));
// Push standard controls, name, quantity, info button
Window *name = WindowManager::getSingleton().createWindow("TaharezLook/StaticText");
//name->setSize(USize(cegui_reldim(0.5), cegui_reldim(0.

name->setSize(USize(cegui_absdim(175), cegui_absdim(26)));
name->setText(entry->name);
Window *quantity = WindowManager::getSingleton().createWindow("TaharezLook/StaticText");
quantity->setPosition(UVector2(cegui_reldim(0.01), cegui_reldim(0)));
quantity->setSize(USize(cegui_reldim(0.2), cegui_reldim(0.

stringstream qstr;
qstr << entry->quantity;
quantity->setText(qstr.str());
Window *info = WindowManager::getSingleton().createWindow("TaharezLook/Button");
info->setSize(USize(cegui_reldim(0.2), cegui_reldim(0.

info->setText("Info");
float margin = 4;
name->setMargin(UBox(UDim(0, margin), UDim(0, margin), UDim(0, margin), UDim(0, margin)));
quantity->setMargin(UBox(UDim(0, margin), UDim(0, margin), UDim(0, margin), UDim(0, margin)));
info->setMargin(UBox(UDim(0, margin), UDim(0, margin), UDim(0, margin), UDim(0, margin)));
innerLay->setMousePassThroughEnabled(true);
name->setMousePassThroughEnabled(true);
quantity->setMousePassThroughEnabled(true);
innerLay->addChild(name);
innerLay->addChild(quantity);
innerLay->addChild(info);
drag->addChild(innerLay);
outerLay->addChild(drag);
vlay->addChild(outerLay);
}
Damn, I rarely write forums, where the heck I push code? If you have trouble I'll use pastebin
Re: Performance drop - many containers
PS: this two functions,( the first one lost its name ) create the layout visible on screenshort from the link
I've just got lost when performance went space while many rows are added
I've just got lost when performance went space while many rows are added
Re: Performance drop - many containers
There is a "code" button when you post... this is also described in the viewtopic.php?f=10&t=3351 "ensure you read this" section.
Writing a sample is next to zero effort, you just put your code there and compile & run it. Why are you not willing to put this minimal effort into this?
Sorry, but no one should expect anyone to go far out of their way to help them, if they are not willing to put minimal effort into make the help process easier.
Use the Visual Studio profiler and shows us the results if you are unwilling to follow B) or C). I can't help if I do not see what is wrong and a long paste of code without even using the proper code tags of the forum, is not really inviting ...
Writing a sample is next to zero effort, you just put your code there and compile & run it. Why are you not willing to put this minimal effort into this?
Sorry, but no one should expect anyone to go far out of their way to help them, if they are not willing to put minimal effort into make the help process easier.
Use the Visual Studio profiler and shows us the results if you are unwilling to follow B) or C). I can't help if I do not see what is wrong and a long paste of code without even using the proper code tags of the forum, is not really inviting ...

CrazyEddie: "I don't like GUIs"
Re: Performance drop - many containers
Minimal effort? As far as you know this GUI you must not say minimal effort. I've gave you a lot of simple code to test, seems you are not really aware of what's going behind the scenes., just read what've written, can't you? I don't care profilers and debuggers since I can see 'fucking' results and you know you suck at specific solutions and you suddenly cry for money for any request! So you make open source or go pay to know idea instrad of giving a fuck that you're doing anything wqith that glitch!
Re: Performance drop - many containers
MORE OVER! You make multicolumnlist and you go far far from standards what people expect, and suddenly I have to pay for this useless knowledgr while i I can write my own gui?!
Re: Performance drop - many containers
PS: really, it's simpler to get c# windows forms than this crap :::) i expect complex gui not a total waaste, but you won't sentence yourself because of people who want buttons only::)
Re: Performance drop - many containers
I didn't ask for money, where do you read that? I did not even hint at such a thing.
I provided 3 options (without cost) that would allow me or anyone else to help you, and I told you to give us more information so we can help you. The code snippet is a joke. It does not compile, it is not a full sample, it does not run on its own.
And besides all of that, you did not even take the time to read the forum guidelines and use the code tags for it.
Depending on your use-case this might be better. I never advised against it. I would obviously not advise to use this for games or rendering applications however.
I provided 3 options (without cost) that would allow me or anyone else to help you, and I told you to give us more information so we can help you. The code snippet is a joke. It does not compile, it is not a full sample, it does not run on its own.
And besides all of that, you did not even take the time to read the forum guidelines and use the code tags for it.
bomkallo wrote:PS: really, it's simpler to get c# windows forms than this crap :::) i expect complex gui not a total waaste, but you won't sentence yourself because of people who want buttons only::)
Depending on your use-case this might be better. I never advised against it. I would obviously not advise to use this for games or rendering applications however.
CrazyEddie: "I don't like GUIs"
Re: Performance drop - many containers
bomkallo wrote:If you have trouble I'll use pastebin
Please, do this if you can't/don't want to use [code] tags. Smileys etc don't make the code more readable. Also, indentation gets lost otherwise.
Re: Performance drop - many containers
I'll do. Don't take me straight, I'm simply dissapointed so i need to trollout somewhere:P Let's get into new year somehow better so i'll check whether the simple class I have is adjustable to be sampled in every environment. Still, I mentioned money because on forum you rarely see this, but I wrote kulik for simple solution, it was even not a solution but question and he rejected, but he went this way because it was mentioned in cegui contact:)
More, I thought the tree I gave you before is kind of a thing that you will feel, maybe containers and pane are bugged or smth, but ok, i'll put this subject to the end, at least for sake of my own peace, cause I really like cegui but it hits me in every possible way when I go non-standard controls.
More, I thought the tree I gave you before is kind of a thing that you will feel, maybe containers and pane are bugged or smth, but ok, i'll put this subject to the end, at least for sake of my own peace, cause I really like cegui but it hits me in every possible way when I go non-standard controls.
Re: Performance drop - many containers
Ok, here's what I get after first output. This is only 5 records for simplicity, I see serious popping of camera at 50 + records.
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<GUILayout version="4" >
<Window type="TaharezLook/FrameWindow" name="Cargo_#1" >
<Property name="Area" value="{{0.3,0},{0.3,0},{0.6,0},{0.85,0}}" />
<Property name="Text" value="Cargo_#1" />
<Window type="TaharezLook/FrameWindow" >
<Property name="Area" value="{{0,5},{0,10},{0.982,5},{0.9,10}}" />
<Property name="SizingEnabled" value="false" />
<Property name="TitlebarEnabled" value="false" />
<Property name="CloseButtonEnabled" value="false" />
<Window type="TaharezLook/ScrollablePane" name="Pane" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property name="ContentArea" value="l:0 t:0 r:499 b:452" />
<AutoWindow namePath="__auto_container__" >
<Property name="ContentArea" value="l:0 t:0 r:499 b:452" />
<Property name="MouseInputPropagationEnabled" value="true" />
<Window type="VerticalLayoutContainer" name="Vlay" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Window type="DragContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Property name="StickyMode" value="false" />
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property name="MousePassThroughEnabled" value="true" />
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0,0},{0,0},{0,175},{0,26}}" />
<Property name="Text" value="test_#0" />
<Property name="MaxSize" value="{{0,175},{26,0}}" />
<Property name="HorzScrollPageSize" value="158.983" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="47" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0.01,0},{0,0},{0.21,0},{0.8,0}}" />
<Property name="Text" value="-858993460" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
<Property name="HorzScrollPageSize" value="83.9833" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="77" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/Button" >
<Property name="Area" value="{{0,0},{0,0},{0.2,0},{0.8,0}}" />
<Property name="Text" value="Info" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
</Window>
</Window>
</Window>
</Window>
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Window type="DragContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Property name="StickyMode" value="false" />
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property name="MousePassThroughEnabled" value="true" />
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0,0},{0,0},{0,175},{0,26}}" />
<Property name="Text" value="test_#1" />
<Property name="MaxSize" value="{{0,175},{26,0}}" />
<Property name="HorzScrollPageSize" value="158.983" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="47" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0.01,0},{0,0},{0.21,0},{0.8,0}}" />
<Property name="Text" value="-858993460" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
<Property name="HorzScrollPageSize" value="83.9833" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="77" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/Button" >
<Property name="Area" value="{{0,0},{0,0},{0.2,0},{0.8,0}}" />
<Property name="Text" value="Info" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
</Window>
</Window>
</Window>
</Window>
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Window type="DragContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Property name="StickyMode" value="false" />
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property name="MousePassThroughEnabled" value="true" />
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0,0},{0,0},{0,175},{0,26}}" />
<Property name="Text" value="test_#2" />
<Property name="MaxSize" value="{{0,175},{26,0}}" />
<Property name="HorzScrollPageSize" value="158.983" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="47" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0.01,0},{0,0},{0.21,0},{0.8,0}}" />
<Property name="Text" value="-858993460" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
<Property name="HorzScrollPageSize" value="83.9833" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="77" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/Button" >
<Property name="Area" value="{{0,0},{0,0},{0.2,0},{0.8,0}}" />
<Property name="Text" value="Info" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
</Window>
</Window>
</Window>
</Window>
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Window type="DragContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Property name="StickyMode" value="false" />
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property name="MousePassThroughEnabled" value="true" />
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0,0},{0,0},{0,175},{0,26}}" />
<Property name="Text" value="test_#3" />
<Property name="MaxSize" value="{{0,175},{26,0}}" />
<Property name="HorzScrollPageSize" value="158.983" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="47" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0.01,0},{0,0},{0.21,0},{0.8,0}}" />
<Property name="Text" value="-858993460" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
<Property name="HorzScrollPageSize" value="83.9833" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="77" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/Button" >
<Property name="Area" value="{{0,0},{0,0},{0.2,0},{0.8,0}}" />
<Property name="Text" value="Info" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
</Window>
</Window>
</Window>
</Window>
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Window type="DragContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{0.07,0}}" />
<Property name="StickyMode" value="false" />
<Window type="HorizontalLayoutContainer" >
<Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property name="MousePassThroughEnabled" value="true" />
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0,0},{0,0},{0,175},{0,26}}" />
<Property name="Text" value="test_#4" />
<Property name="MaxSize" value="{{0,175},{26,0}}" />
<Property name="HorzScrollPageSize" value="158.983" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="47" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/StaticText" >
<Property name="Area" value="{{0.01,0},{0,0},{0.21,0},{0.8,0}}" />
<Property name="Text" value="-858993460" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
<Property name="HorzScrollPageSize" value="83.9833" />
<Property name="VertScrollPageSize" value="9.98333" />
<Property name="HorzScrollDocumentSize" value="77" />
<Property name="VertScrollDocumentSize" value="13.8051" />
<Property name="MousePassThroughEnabled" value="true" />
</Window>
<Window type="TaharezLook/Button" >
<Property name="Area" value="{{0,0},{0,0},{0.2,0},{0.8,0}}" />
<Property name="Text" value="Info" />
<Property name="MaxSize" value="{{0.2,0},{0.8,0}}" />
</Window>
</Window>
</Window>
</Window>
</Window>
</AutoWindow>
<AutoWindow namePath="__auto_hscrollbar__" >
<Property name="AlwaysOnTop" value="true" />
</AutoWindow>
<AutoWindow namePath="__auto_vscrollbar__" >
<Property name="AlwaysOnTop" value="true" />
</AutoWindow>
</Window>
</Window>
</Window>
</GUILayout>
Last edited by bomkallo on Mon Jan 04, 2016 21:18, edited 1 time in total.
Re: Performance drop - many containers
I just tried the code you posted and I get the following exception about 15 times:
Can you please resolve that?
Code: Select all
CEGUI::UnknownObjectException in function 'void CEGUI::PropertySet::setProperty(const CEGUI::String&, const CEGUI::String&)' (/home/lucebac/dev/cegui_v0-8/cegui/src/PropertySet.cpp:138) : There is no Property named 'Margin' available in the set.
Can you please resolve that?
Re: Performance drop - many containers
The above code is updated and have no margins. Have you tested this on cegui 8.x ?
Re: Performance drop - many containers
I always use the latest v0-8 code from bitbucket. I also tried out the samples and the exceptions got not thrown. The cause must definitely be in your layout. Can you check your CEGUI output for these exceptions (NOT the log, I want you to check the output on the command line)?
But the log would also be a point of interest for me.
But the log would also be a point of interest for me.
Who is online
Users browsing this forum: No registered users and 10 guests