mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-24 05:49:58 +00:00
56 lines
1.1 KiB
C++
56 lines
1.1 KiB
C++
|
|
#include "ui/ui_screen.h"
|
|
#include "ui/ui_context.h"
|
|
#include "ui/screen.h"
|
|
|
|
UIScreen::UIScreen()
|
|
: Screen(), root_(0), recreateViews_(true) {
|
|
|
|
}
|
|
|
|
void UIScreen::update(InputState &input) {
|
|
if (recreateViews_) {
|
|
delete root_;
|
|
root_ = 0;
|
|
CreateViews();
|
|
recreateViews_ = false;
|
|
}
|
|
|
|
UpdateViewHierarchy(input, root_);
|
|
}
|
|
|
|
void UIScreen::render() {
|
|
if (root_) {
|
|
UI::LayoutViewHierarchy(*screenManager()->getUIContext(), root_);
|
|
|
|
screenManager()->getUIContext()->Begin();
|
|
DrawBackground(*screenManager()->getUIContext());
|
|
root_->Draw(*screenManager()->getUIContext());
|
|
screenManager()->getUIContext()->End();
|
|
screenManager()->getUIContext()->Flush();
|
|
} else {
|
|
ELOG("Tried to render without a view root");
|
|
}
|
|
}
|
|
|
|
void UIScreen::touch(const TouchInput &touch) {
|
|
if (root_) {
|
|
root_->Touch(touch);
|
|
} else {
|
|
ELOG("Tried to touch without a view root");
|
|
}
|
|
}
|
|
|
|
void UIScreen::key(const KeyInput &key) {
|
|
if (root_) {
|
|
root_->Key(key);
|
|
} else {
|
|
ELOG("Tried to key without a view root");
|
|
}
|
|
}
|
|
|
|
UI::EventReturn UIScreen::OnBack(UI::EventParams &e) {
|
|
screenManager()->finishDialog(this, DR_OK);
|
|
return UI::EVENT_DONE;
|
|
}
|