ПроектыФорумОцените

MyGUI v3.2.0 Released! (13 стр)

Страницы: 18 9 10 11 12 13
#180
20:52, 3 июля 2015

Можно, но если нет сильной необходимости, то лучше явно задать большой range с запасом, чем это делать.
Где-то на англоязычном форуме китайцы что-то такое делали, вроде успешно, но как найти уже не помню. http://www.ogre3d.org/addonforums/viewforum.php?f=17

#181
13:27, 4 июля 2015

Мне вот интересно, а сами пользователи иероглифического письма смогут вводить текст в инпут боксы вашего GUI? Я просто понятия не имею, как это у них все происходит. Вы проверяли?

#182
16:04, 4 июля 2015

Ну, никто не жаловался :) Главное, чтобы система ввода правильно выдавала utf коды ну или можно было преобразовать. Сам gui ничего про это не знает и знать не должен.

#183
16:16, 10 июля 2015

Баг нашёл. Если нажать мышь в любом месте, а потом отпустить на кнопке, то это будет считаться за нажатие и вызовет событие. Такого быть не должно. Юзер должен и нажать на кнопку, и отпустить на ней же.
Или это фича?

#184
20:13, 10 июля 2015

Не воспроизводится. Видел похожий баг, когда неправильно вызывались injectMouse*** события (то ли не везде были заполнены координаты, то ли каких-то осбытий вовсе не было).

#185
20:21, 10 июля 2015

Как так? Неправильно?

void GUI_InjectMouseInput(POINT mousePosCl, byte mouse[])
{
  MyGUI::InputManager::getInstance().injectMouseMove(mousePosCl.x, mousePosCl.y, 0);//MousePos
  for(byte i = 0; i < 8; i++)//Loop through all buttons
  {
    if(mouse[i] == 1) MyGUI::InputManager::getInstance().injectMousePress(mousePosCl.x, mousePosCl.y, MyGUI::MouseButton::Enum(i));  //Pressed
    if(mouse[i] == 3) MyGUI::InputManager::getInstance().injectMouseRelease(mousePosCl.x, mousePosCl.y, MyGUI::MouseButton::Enum(i)); //Released
  }
  
  return;
}
#186
6:33, 12 июля 2015

Что я не так то сделал? Может объясните все-таки особенности вашего GUI? Или запилите уже вменяемую документацию со всеми ремарками.

#187
11:42, 15 июля 2015

Я уже все обсмотрел и перепроверил, но баг не смог починить. Ладно, пусть баг так и остается, проехали.
Теперь появился другой вопрос. Опять по инпуту. Я тут смотрел ваши демки, в надежде разобраться с тем, как вы вводите текст. Вроде бы разобрался - нашел заголовочный файл InputConverter.h. Мне он показался довольно удобным и я решил включить его в свой проект(ведь я имею право, да?) и он даже безо всяких пинков заработал из коробки. А теперь вопрос: как вы отслеживаете смену языка? Я так понял, что все дело в методе

GetKeyboardLayout(0)

который и определяет раскладку клавиатуры. Но у меня ничего не меняется в приложении при нажатии Alt + Shift. Скажите - это у меня проблема в самом приложении или же нужно что-то еще отследить, чтобы язык менялся?

#188
16:04, 15 июля 2015

По идее нужно только то, что делается тут: https://github.com/MyGUI/mygui/blob/master/Common/Input/Win32/InputManager.cpp
Саму смену языка явно мы не отслеживаем.

И да, все исходники можно использовать и менять как хочешь, но лучше прислать патч, если было сделано полезное изменение ;)

#189
11:20, 15 авг 2015

Вопрос по версии 3.2.0
Бывают моменты, что падает вот на этой строке:
MyGUI_EditText.cpp [808] (void EditText::drawGlyph)

drawQuad(_vertex, _vertexCount, vertexRect, mNode->getNodeDepth(), _textureRect, _colour);

Дамп показывает, что mNode = nullptr
Ну еще у vertexRect X и Z параметры NAN.
Количество вертексов реальное.

На экране чат. Падает иногда ВДРУГ.
Подозревал кривые символы в чате, но падает не у всех.
Подозревал слишком большой объем вершин из-за текста, что в память не влезает, но вроде в пределах нормы и опять же, падает в этот момент не у всех.
Т.е. по идее, если я все верно понимаю, то при проблемах с текстом или количеством вершин упасть должно у всех пользователей чата в один момент (история одна на всех).
Но нет. Падает то у одного, то у другого. Не часто, но бывает.
Причем может упасть после клика на один из элементов, а может без этого. Может и совпадение.

Так собсна в чем вопрос. Может это что-то известное и уже пофиксенное в новых версиях и можно забрать в 3.2.0? Вдруг по симптомам кто-то узнает ситуацию.
Просто пока нет возможности обновиться на версию из гитхаба.

В общем, в чем суть? Призываю телепатов из отпуска.

Вот коллстэк:

> Game.dll!MyGUI::EditText::drawGlyph(const MyGUI::RenderTargetInfo & _renderTargetInfo={...}, MyGUI::Vertex * & _vertex=0x39df3400, unsigned int & _vertexCount=23016, MyGUI::types::TRect<float> _vertexRect={...}, MyGUI::types::TRect<float> _textureRect={...}, unsigned int _colour=4278190080) Line 808 C++
  Game.dll!MyGUI::EditText::doRender() Line 599  C++
  Game.dll!MyGUI::RenderItem::renderToTarget(MyGUI::IRenderTarget * _target=0x071ec4e0, bool _update=false) Line 66  C++
  Game.dll!MyGUI::LayerNode::renderToTarget(MyGUI::IRenderTarget * _target=0x071ec4e0, bool _update=false) Line 107  C++
  Game.dll!MyGUI::SharedLayer::renderToTarget(MyGUI::IRenderTarget * _target=0x071ec4e0, bool _update=false) Line 118  C++
  Game.dll!MyGUI::LayerManager::renderToTarget(MyGUI::IRenderTarget * _target=0x071ec4e0, bool _update=false) Line 212  C++
  Game.dll!MyGUI::RenderManager::onRenderToTarget(MyGUI::IRenderTarget * _target=0x071ec4e0, bool _update=false) Line 42  C++

#190
15:55, 15 авг 2015

А можно посмотреть на 808ю строчку в EditText::drawGlyph? а то ни в последней версии ни в 3.2.0 там не на чем падать.
И кстати после 3.2.0 были улучшения качества отрисовки шрифтов, так что рекомендую обновиться.

#191
18:12, 15 авг 2015

Altren
> А можно посмотреть на 808ю строчку в EditText::drawGlyph? а то ни в последней
> версии ни в 3.2.0 там не на чем падать.
Дык я ее и привел в посте.

drawQuad(_vertex, _vertexCount, vertexRect, mNode->getNodeDepth(), _textureRect, _colour);

Вот здесь mNode пустой. Он nullptr.
Все остальные значения от краша к крашу разные (иногда с NAN в rect иногда нет).

> И кстати после 3.2.0 были улучшения качества отрисовки шрифтов, так что
> рекомендую обновиться.
Да я бы и рад, но сейчас такой возможности нет.

#192
10:40, 26 авг 2015

Ну как там у телепатов? Не придумалось ничего?

Страницы: 18 9 10 11 12 13
ПроектыФорумОцените

Тема в архиве.