Merge pull request #10487 from marcelofg55/curscr_as_default
p_screen param from get_screen_* funcs now default to the current screen
This commit is contained in:
commit
7f49e2a7a0
12 changed files with 47 additions and 26 deletions
|
@ -978,9 +978,9 @@ void _OS::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("get_screen_count"), &_OS::get_screen_count);
|
||||
ClassDB::bind_method(D_METHOD("get_current_screen"), &_OS::get_current_screen);
|
||||
ClassDB::bind_method(D_METHOD("set_current_screen", "screen"), &_OS::set_current_screen);
|
||||
ClassDB::bind_method(D_METHOD("get_screen_position", "screen"), &_OS::get_screen_position, DEFVAL(0));
|
||||
ClassDB::bind_method(D_METHOD("get_screen_size", "screen"), &_OS::get_screen_size, DEFVAL(0));
|
||||
ClassDB::bind_method(D_METHOD("get_screen_dpi", "screen"), &_OS::get_screen_dpi, DEFVAL(0));
|
||||
ClassDB::bind_method(D_METHOD("get_screen_position", "screen"), &_OS::get_screen_position, DEFVAL(-1));
|
||||
ClassDB::bind_method(D_METHOD("get_screen_size", "screen"), &_OS::get_screen_size, DEFVAL(-1));
|
||||
ClassDB::bind_method(D_METHOD("get_screen_dpi", "screen"), &_OS::get_screen_dpi, DEFVAL(-1));
|
||||
ClassDB::bind_method(D_METHOD("get_window_position"), &_OS::get_window_position);
|
||||
ClassDB::bind_method(D_METHOD("set_window_position", "position"), &_OS::set_window_position);
|
||||
ClassDB::bind_method(D_METHOD("get_window_size"), &_OS::get_window_size);
|
||||
|
|
|
@ -140,9 +140,9 @@ public:
|
|||
virtual int get_screen_count() const;
|
||||
virtual int get_current_screen() const;
|
||||
virtual void set_current_screen(int p_screen);
|
||||
virtual Point2 get_screen_position(int p_screen = 0) const;
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const;
|
||||
virtual int get_screen_dpi(int p_screen = 0) const;
|
||||
virtual Point2 get_screen_position(int p_screen = -1) const;
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const;
|
||||
virtual int get_screen_dpi(int p_screen = -1) const;
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2 &p_position);
|
||||
virtual Size2 get_window_size() const;
|
||||
|
|
|
@ -164,9 +164,9 @@ public:
|
|||
virtual int get_screen_count() const { return 1; }
|
||||
virtual int get_current_screen() const { return 0; }
|
||||
virtual void set_current_screen(int p_screen) {}
|
||||
virtual Point2 get_screen_position(int p_screen = 0) const { return Point2(); }
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const { return get_window_size(); }
|
||||
virtual int get_screen_dpi(int p_screen = 0) const { return 72; }
|
||||
virtual Point2 get_screen_position(int p_screen = -1) const { return Point2(); }
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const { return get_window_size(); }
|
||||
virtual int get_screen_dpi(int p_screen = -1) const { return 72; }
|
||||
virtual Point2 get_window_position() const { return Vector2(); }
|
||||
virtual void set_window_position(const Point2 &p_position) {}
|
||||
virtual Size2 get_window_size() const = 0;
|
||||
|
|
|
@ -96,8 +96,8 @@ public:
|
|||
virtual int get_screen_count() const;
|
||||
virtual int get_current_screen() const;
|
||||
virtual void set_current_screen(int p_screen);
|
||||
virtual Point2 get_screen_position(int p_screen = 0) const;
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const;
|
||||
virtual Point2 get_screen_position(int p_screen = -1) const;
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const;
|
||||
virtual void set_window_title(const String &p_title);
|
||||
virtual Size2 get_window_size() const;
|
||||
virtual void set_window_size(const Size2 p_size);
|
||||
|
|
|
@ -687,8 +687,6 @@ OS::VideoMode OS_JavaScript::get_video_mode(int p_screen) const {
|
|||
|
||||
Size2 OS_JavaScript::get_screen_size(int p_screen) const {
|
||||
|
||||
ERR_FAIL_COND_V(p_screen != 0, Size2());
|
||||
|
||||
EmscriptenFullscreenChangeEvent ev;
|
||||
EMSCRIPTEN_RESULT result = emscripten_get_fullscreen_status(&ev);
|
||||
ERR_FAIL_COND_V(result != EMSCRIPTEN_RESULT_SUCCESS, Size2());
|
||||
|
|
|
@ -124,7 +124,7 @@ public:
|
|||
virtual VideoMode get_video_mode(int p_screen = 0) const;
|
||||
virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const;
|
||||
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const;
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const;
|
||||
|
||||
virtual void set_window_size(const Size2);
|
||||
virtual Size2 get_window_size() const;
|
||||
|
|
|
@ -187,9 +187,9 @@ public:
|
|||
virtual int get_screen_count() const;
|
||||
virtual int get_current_screen() const;
|
||||
virtual void set_current_screen(int p_screen);
|
||||
virtual Point2 get_screen_position(int p_screen = 0) const;
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const;
|
||||
virtual int get_screen_dpi(int p_screen = 0) const;
|
||||
virtual Point2 get_screen_position(int p_screen = -1) const;
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const;
|
||||
virtual int get_screen_dpi(int p_screen = -1) const;
|
||||
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2 &p_position);
|
||||
|
|
|
@ -1433,6 +1433,10 @@ void OS_OSX::set_current_screen(int p_screen) {
|
|||
};
|
||||
|
||||
Point2 OS_OSX::get_screen_position(int p_screen) const {
|
||||
if (p_screen == -1) {
|
||||
p_screen = get_current_screen();
|
||||
}
|
||||
|
||||
NSArray *screenArray = [NSScreen screens];
|
||||
if (p_screen < [screenArray count]) {
|
||||
float displayScale = 1.0;
|
||||
|
@ -1449,6 +1453,10 @@ Point2 OS_OSX::get_screen_position(int p_screen) const {
|
|||
}
|
||||
|
||||
int OS_OSX::get_screen_dpi(int p_screen) const {
|
||||
if (p_screen == -1) {
|
||||
p_screen = get_current_screen();
|
||||
}
|
||||
|
||||
NSArray *screenArray = [NSScreen screens];
|
||||
if (p_screen < [screenArray count]) {
|
||||
float displayScale = 1.0;
|
||||
|
@ -1469,6 +1477,10 @@ int OS_OSX::get_screen_dpi(int p_screen) const {
|
|||
}
|
||||
|
||||
Size2 OS_OSX::get_screen_size(int p_screen) const {
|
||||
if (p_screen == -1) {
|
||||
p_screen = get_current_screen();
|
||||
}
|
||||
|
||||
NSArray *screenArray = [NSScreen screens];
|
||||
if (p_screen < [screenArray count]) {
|
||||
float displayScale = 1.0;
|
||||
|
|
|
@ -1384,7 +1384,7 @@ static BOOL CALLBACK _MonitorEnumProcPos(HMONITOR hMonitor, HDC hdcMonitor, LPRE
|
|||
|
||||
Point2 OS_Windows::get_screen_position(int p_screen) const {
|
||||
|
||||
EnumPosData data = { 0, p_screen, Point2() };
|
||||
EnumPosData data = { 0, p_screen == -1 ? get_current_screen() : p_screen, Point2() };
|
||||
EnumDisplayMonitors(NULL, NULL, _MonitorEnumProcPos, (LPARAM)&data);
|
||||
return data.pos;
|
||||
}
|
||||
|
@ -1409,7 +1409,7 @@ static BOOL CALLBACK _MonitorEnumProcSize(HMONITOR hMonitor, HDC hdcMonitor, LPR
|
|||
|
||||
Size2 OS_Windows::get_screen_size(int p_screen) const {
|
||||
|
||||
EnumSizeData data = { 0, p_screen, Size2() };
|
||||
EnumSizeData data = { 0, p_screen == -1 ? get_current_screen() : p_screen, Size2() };
|
||||
EnumDisplayMonitors(NULL, NULL, _MonitorEnumProcSize, (LPARAM)&data);
|
||||
return data.size;
|
||||
}
|
||||
|
@ -1433,7 +1433,7 @@ static BOOL CALLBACK _MonitorEnumProcDpi(HMONITOR hMonitor, HDC hdcMonitor, LPRE
|
|||
|
||||
int OS_Windows::get_screen_dpi(int p_screen) const {
|
||||
|
||||
EnumDpiData data = { 0, p_screen, 72 };
|
||||
EnumDpiData data = { 0, p_screen == -1 ? get_current_screen() : p_screen, 72 };
|
||||
EnumDisplayMonitors(NULL, NULL, _MonitorEnumProcDpi, (LPARAM)&data);
|
||||
return data.dpi;
|
||||
}
|
||||
|
|
|
@ -194,9 +194,9 @@ public:
|
|||
virtual int get_screen_count() const;
|
||||
virtual int get_current_screen() const;
|
||||
virtual void set_current_screen(int p_screen);
|
||||
virtual Point2 get_screen_position(int p_screen = 0) const;
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const;
|
||||
virtual int get_screen_dpi(int p_screen = 0) const;
|
||||
virtual Point2 get_screen_position(int p_screen = -1) const;
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const;
|
||||
virtual int get_screen_dpi(int p_screen = -1) const;
|
||||
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2 &p_position);
|
||||
|
|
|
@ -761,6 +761,10 @@ void OS_X11::set_current_screen(int p_screen) {
|
|||
}
|
||||
|
||||
Point2 OS_X11::get_screen_position(int p_screen) const {
|
||||
if (p_screen == -1) {
|
||||
p_screen = get_current_screen();
|
||||
}
|
||||
|
||||
// Using Xinerama Extension
|
||||
int event_base, error_base;
|
||||
const Bool ext_okay = XineramaQueryExtension(x11_display, &event_base, &error_base);
|
||||
|
@ -782,6 +786,10 @@ Point2 OS_X11::get_screen_position(int p_screen) const {
|
|||
}
|
||||
|
||||
Size2 OS_X11::get_screen_size(int p_screen) const {
|
||||
if (p_screen == -1) {
|
||||
p_screen = get_current_screen();
|
||||
}
|
||||
|
||||
// Using Xinerama Extension
|
||||
int event_base, error_base;
|
||||
const Bool ext_okay = XineramaQueryExtension(x11_display, &event_base, &error_base);
|
||||
|
@ -797,6 +805,9 @@ Size2 OS_X11::get_screen_size(int p_screen) const {
|
|||
}
|
||||
|
||||
int OS_X11::get_screen_dpi(int p_screen) const {
|
||||
if (p_screen == -1) {
|
||||
p_screen = get_current_screen();
|
||||
}
|
||||
|
||||
//invalid screen?
|
||||
ERR_FAIL_INDEX_V(p_screen, get_screen_count(), 0);
|
||||
|
|
|
@ -233,9 +233,9 @@ public:
|
|||
virtual int get_screen_count() const;
|
||||
virtual int get_current_screen() const;
|
||||
virtual void set_current_screen(int p_screen);
|
||||
virtual Point2 get_screen_position(int p_screen = 0) const;
|
||||
virtual Size2 get_screen_size(int p_screen = 0) const;
|
||||
virtual int get_screen_dpi(int p_screen = 0) const;
|
||||
virtual Point2 get_screen_position(int p_screen = -1) const;
|
||||
virtual Size2 get_screen_size(int p_screen = -1) const;
|
||||
virtual int get_screen_dpi(int p_screen = -1) const;
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2 &p_position);
|
||||
virtual Size2 get_window_size() const;
|
||||
|
|
Loading…
Reference in a new issue