Shrinking UI elements in the debugger.
This commit is contained in:
parent
e5fbf840d2
commit
a1a996c1e6
|
@ -3,3 +3,4 @@
|
|||
#include "third_party\\elemental-forms\\resources.rc"
|
||||
|
||||
//IDR_xe_debug_ui_resources_skin_bg_tile_png RCDATA ".\\resources\\skin\\bg_tile.png"
|
||||
IDR_xe_debug_ui_resources_smaller_skin_skin_tb_txt RCDATA ".\\resources\\smaller_skin\\skin.tb.txt"
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "xenia/debug/ui/main_window.h"
|
||||
|
||||
#include "el/animation_manager.h"
|
||||
#include "el/io/file_manager.h"
|
||||
#include "el/util/debug.h"
|
||||
#include "xenia/base/clock.h"
|
||||
#include "xenia/base/logging.h"
|
||||
|
@ -17,6 +18,10 @@
|
|||
#include "xenia/base/threading.h"
|
||||
#include "xenia/ui/gl/gl_context.h"
|
||||
|
||||
#if XE_PLATFORM_WIN32
|
||||
#include "el/io/win32_res_file_system_win.h"
|
||||
#endif // XE_PLATFORM_WIN32
|
||||
|
||||
namespace xe {
|
||||
namespace debug {
|
||||
namespace ui {
|
||||
|
@ -40,6 +45,13 @@ bool MainWindow::Initialize() {
|
|||
window_->set_context(xe::ui::gl::GLContext::Create(window_.get()));
|
||||
window_->MakeReady();
|
||||
|
||||
#if XE_PLATFORM_WIN32
|
||||
el::io::FileManager::RegisterFileSystem(
|
||||
std::make_unique<el::io::Win32ResFileSystem>(
|
||||
"IDR_xe_debug_ui_resources_"));
|
||||
#endif // XE_PLATFORM_WIN32
|
||||
window_->LoadSkin("smaller_skin/skin.tb.txt");
|
||||
|
||||
window_->on_closed.AddListener(std::bind(&MainWindow::OnClose, this));
|
||||
|
||||
window_->on_key_down.AddListener([this](xe::ui::KeyEvent* e) {
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
elements
|
||||
Button
|
||||
padding 3 4
|
||||
Button.flat
|
||||
padding 3 4
|
||||
ButtonInGroup
|
||||
padding 3 4
|
||||
Box
|
||||
padding 5
|
||||
ListItem
|
||||
padding 1 4
|
|
@ -652,7 +652,7 @@ X_STATUS XThread::Suspend(uint32_t* out_suspend_count) {
|
|||
++guest_object<X_KTHREAD>()->suspend_count;
|
||||
|
||||
// If we are suspending ourselves, we can't hold the lock.
|
||||
if (XThread::GetCurrentThread() == this) {
|
||||
if (XThread::IsInThread() && XThread::GetCurrentThread() == this) {
|
||||
global_lock.unlock();
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@ GL4ElementalRenderer::GL4Bitmap::~GL4Bitmap() {
|
|||
|
||||
bool GL4ElementalRenderer::GL4Bitmap::Init(int width, int height,
|
||||
uint32_t* data) {
|
||||
GraphicsContextLock lock(context_);
|
||||
|
||||
assert(width == el::util::GetNearestPowerOfTwo(width));
|
||||
assert(height == el::util::GetNearestPowerOfTwo(height));
|
||||
width_ = width;
|
||||
|
|
|
@ -414,6 +414,10 @@ std::unique_ptr<el::graphics::Renderer> GLContext::CreateElementalRenderer() {
|
|||
return GL4ElementalRenderer::Create(this);
|
||||
}
|
||||
|
||||
bool GLContext::is_current() {
|
||||
return tls_glew_context_ == glew_context_.get();
|
||||
}
|
||||
|
||||
bool GLContext::MakeCurrent() {
|
||||
SCOPE_profile_cpu_f("gpu");
|
||||
if (FLAGS_thread_safe_gl) {
|
||||
|
|
|
@ -40,6 +40,7 @@ class GLContext : public GraphicsContext {
|
|||
std::unique_ptr<ProfilerDisplay> CreateProfilerDisplay() override;
|
||||
std::unique_ptr<el::graphics::Renderer> CreateElementalRenderer() override;
|
||||
|
||||
bool is_current() override;
|
||||
bool MakeCurrent() override;
|
||||
void ClearCurrent() override;
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ class GraphicsContext {
|
|||
virtual std::unique_ptr<ProfilerDisplay> CreateProfilerDisplay() = 0;
|
||||
virtual std::unique_ptr<el::graphics::Renderer> CreateElementalRenderer() = 0;
|
||||
|
||||
virtual bool is_current() = 0;
|
||||
virtual bool MakeCurrent() = 0;
|
||||
virtual void ClearCurrent() = 0;
|
||||
|
||||
|
@ -44,12 +45,20 @@ class GraphicsContext {
|
|||
|
||||
struct GraphicsContextLock {
|
||||
explicit GraphicsContextLock(GraphicsContext* context) : context_(context) {
|
||||
context_->MakeCurrent();
|
||||
was_current_ = context_->is_current();
|
||||
if (!was_current_) {
|
||||
context_->MakeCurrent();
|
||||
}
|
||||
}
|
||||
~GraphicsContextLock() {
|
||||
if (!was_current_) {
|
||||
context_->ClearCurrent();
|
||||
}
|
||||
}
|
||||
~GraphicsContextLock() { context_->ClearCurrent(); }
|
||||
|
||||
private:
|
||||
GraphicsContext* context_;
|
||||
bool was_current_ = false;
|
||||
GraphicsContext* context_ = nullptr;
|
||||
};
|
||||
|
||||
} // namespace ui
|
||||
|
|
|
@ -116,7 +116,8 @@ class Window {
|
|||
protected:
|
||||
Window(Loop* loop, const std::wstring& title);
|
||||
|
||||
bool InitializeElemental(Loop* loop, el::graphics::Renderer* renderer);
|
||||
virtual bool InitializeElemental(Loop* loop,
|
||||
el::graphics::Renderer* renderer);
|
||||
|
||||
virtual bool OnCreate();
|
||||
virtual void OnMainMenuChange();
|
||||
|
|
Loading…
Reference in New Issue