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"
|
#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_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 "xenia/debug/ui/main_window.h"
|
||||||
|
|
||||||
#include "el/animation_manager.h"
|
#include "el/animation_manager.h"
|
||||||
|
#include "el/io/file_manager.h"
|
||||||
#include "el/util/debug.h"
|
#include "el/util/debug.h"
|
||||||
#include "xenia/base/clock.h"
|
#include "xenia/base/clock.h"
|
||||||
#include "xenia/base/logging.h"
|
#include "xenia/base/logging.h"
|
||||||
|
@ -17,6 +18,10 @@
|
||||||
#include "xenia/base/threading.h"
|
#include "xenia/base/threading.h"
|
||||||
#include "xenia/ui/gl/gl_context.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 xe {
|
||||||
namespace debug {
|
namespace debug {
|
||||||
namespace ui {
|
namespace ui {
|
||||||
|
@ -40,6 +45,13 @@ bool MainWindow::Initialize() {
|
||||||
window_->set_context(xe::ui::gl::GLContext::Create(window_.get()));
|
window_->set_context(xe::ui::gl::GLContext::Create(window_.get()));
|
||||||
window_->MakeReady();
|
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_closed.AddListener(std::bind(&MainWindow::OnClose, this));
|
||||||
|
|
||||||
window_->on_key_down.AddListener([this](xe::ui::KeyEvent* e) {
|
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;
|
++guest_object<X_KTHREAD>()->suspend_count;
|
||||||
|
|
||||||
// If we are suspending ourselves, we can't hold the lock.
|
// If we are suspending ourselves, we can't hold the lock.
|
||||||
if (XThread::GetCurrentThread() == this) {
|
if (XThread::IsInThread() && XThread::GetCurrentThread() == this) {
|
||||||
global_lock.unlock();
|
global_lock.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,8 @@ GL4ElementalRenderer::GL4Bitmap::~GL4Bitmap() {
|
||||||
|
|
||||||
bool GL4ElementalRenderer::GL4Bitmap::Init(int width, int height,
|
bool GL4ElementalRenderer::GL4Bitmap::Init(int width, int height,
|
||||||
uint32_t* data) {
|
uint32_t* data) {
|
||||||
|
GraphicsContextLock lock(context_);
|
||||||
|
|
||||||
assert(width == el::util::GetNearestPowerOfTwo(width));
|
assert(width == el::util::GetNearestPowerOfTwo(width));
|
||||||
assert(height == el::util::GetNearestPowerOfTwo(height));
|
assert(height == el::util::GetNearestPowerOfTwo(height));
|
||||||
width_ = width;
|
width_ = width;
|
||||||
|
|
|
@ -414,6 +414,10 @@ std::unique_ptr<el::graphics::Renderer> GLContext::CreateElementalRenderer() {
|
||||||
return GL4ElementalRenderer::Create(this);
|
return GL4ElementalRenderer::Create(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GLContext::is_current() {
|
||||||
|
return tls_glew_context_ == glew_context_.get();
|
||||||
|
}
|
||||||
|
|
||||||
bool GLContext::MakeCurrent() {
|
bool GLContext::MakeCurrent() {
|
||||||
SCOPE_profile_cpu_f("gpu");
|
SCOPE_profile_cpu_f("gpu");
|
||||||
if (FLAGS_thread_safe_gl) {
|
if (FLAGS_thread_safe_gl) {
|
||||||
|
|
|
@ -40,6 +40,7 @@ class GLContext : public GraphicsContext {
|
||||||
std::unique_ptr<ProfilerDisplay> CreateProfilerDisplay() override;
|
std::unique_ptr<ProfilerDisplay> CreateProfilerDisplay() override;
|
||||||
std::unique_ptr<el::graphics::Renderer> CreateElementalRenderer() override;
|
std::unique_ptr<el::graphics::Renderer> CreateElementalRenderer() override;
|
||||||
|
|
||||||
|
bool is_current() override;
|
||||||
bool MakeCurrent() override;
|
bool MakeCurrent() override;
|
||||||
void ClearCurrent() override;
|
void ClearCurrent() override;
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ class GraphicsContext {
|
||||||
virtual std::unique_ptr<ProfilerDisplay> CreateProfilerDisplay() = 0;
|
virtual std::unique_ptr<ProfilerDisplay> CreateProfilerDisplay() = 0;
|
||||||
virtual std::unique_ptr<el::graphics::Renderer> CreateElementalRenderer() = 0;
|
virtual std::unique_ptr<el::graphics::Renderer> CreateElementalRenderer() = 0;
|
||||||
|
|
||||||
|
virtual bool is_current() = 0;
|
||||||
virtual bool MakeCurrent() = 0;
|
virtual bool MakeCurrent() = 0;
|
||||||
virtual void ClearCurrent() = 0;
|
virtual void ClearCurrent() = 0;
|
||||||
|
|
||||||
|
@ -44,12 +45,20 @@ class GraphicsContext {
|
||||||
|
|
||||||
struct GraphicsContextLock {
|
struct GraphicsContextLock {
|
||||||
explicit GraphicsContextLock(GraphicsContext* context) : context_(context) {
|
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:
|
private:
|
||||||
GraphicsContext* context_;
|
bool was_current_ = false;
|
||||||
|
GraphicsContext* context_ = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ui
|
} // namespace ui
|
||||||
|
|
|
@ -116,7 +116,8 @@ class Window {
|
||||||
protected:
|
protected:
|
||||||
Window(Loop* loop, const std::wstring& title);
|
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 bool OnCreate();
|
||||||
virtual void OnMainMenuChange();
|
virtual void OnMainMenuChange();
|
||||||
|
|
Loading…
Reference in New Issue