get_screen_position() added
This commit is contained in:
parent
1445b6806b
commit
ce7c7a862e
7 changed files with 28 additions and 3 deletions
|
@ -181,6 +181,10 @@ int _OS::get_screen_count() const {
|
|||
return OS::get_singleton()->get_screen_count();
|
||||
}
|
||||
|
||||
Point2 _OS::get_screen_position(int p_screen) const {
|
||||
return OS::get_singleton()->get_screen_position(p_screen);
|
||||
}
|
||||
|
||||
Size2 _OS::get_screen_size(int p_screen) const {
|
||||
return OS::get_singleton()->get_screen_size(p_screen);
|
||||
}
|
||||
|
@ -668,6 +672,7 @@ void _OS::_bind_methods() {
|
|||
|
||||
#ifdef EXPERIMENTAL_WM_API
|
||||
ObjectTypeDB::bind_method(_MD("get_screen_count"),&_OS::get_screen_count);
|
||||
ObjectTypeDB::bind_method(_MD("get_screen_position"),&_OS::get_screen_position,DEFVAL(0));
|
||||
ObjectTypeDB::bind_method(_MD("get_screen_size"),&_OS::get_screen_size,DEFVAL(0));
|
||||
ObjectTypeDB::bind_method(_MD("get_window_position"),&_OS::get_window_position);
|
||||
ObjectTypeDB::bind_method(_MD("set_window_position"),&_OS::set_window_position);
|
||||
|
|
|
@ -110,6 +110,7 @@ public:
|
|||
|
||||
#ifdef EXPERIMENTAL_WM_API
|
||||
virtual int get_screen_count() const;
|
||||
virtual Point2 get_screen_position(int p_screen=0) const;
|
||||
virtual Size2 get_screen_size(int p_screen=0) const;
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2& p_position);
|
||||
|
|
|
@ -152,6 +152,7 @@ public:
|
|||
|
||||
#ifdef EXPERIMENTAL_WM_API
|
||||
virtual int get_screen_count() const=0;
|
||||
virtual Point2 get_screen_position(int p_screen=0) const=0;
|
||||
virtual Size2 get_screen_size(int p_screen=0) const=0;
|
||||
virtual Point2 get_window_position() const=0;
|
||||
virtual void set_window_position(const Point2& p_position)=0;
|
||||
|
|
|
@ -15,11 +15,16 @@ func _fixed_process(delta):
|
|||
|
||||
get_node("Label_Screen0_Resolution").set_text( str("Screen0 Resolution:\n", OS.get_screen_size() ) )
|
||||
|
||||
get_node("Label_Screen0_Position").set_text(str("Screen0 Position:\n",OS.get_screen_position()))
|
||||
|
||||
if(OS.get_screen_count() > 1):
|
||||
get_node("Label_Screen1_Resolution").show()
|
||||
get_node("Label_Screen1_Resolution").set_text( str("Screen0 Resolution:\n", OS.get_screen_size(1) ) )
|
||||
|
||||
|
||||
get_node("Label_Screen1_Resolution").set_text( str("Screen1 Resolution:\n", OS.get_screen_size(1) ) )
|
||||
get_node("Label_Screen1_Position").show()
|
||||
get_node("Label_Screen1_Position").set_text( str("Screen1 Position:\n", OS.get_screen_size(1) ) )
|
||||
else:
|
||||
get_node("Label_Screen1_Resolution").hide()
|
||||
get_node("Label_Screen1_Position").hide()
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
|
||||
|
|
Binary file not shown.
|
@ -561,7 +561,19 @@ int OS_X11::get_screen_count() const {
|
|||
return XScreenCount(x11_display);
|
||||
}
|
||||
|
||||
Point2 OS_X11::get_screen_position(int p_screen) const {
|
||||
if( p_screen >= XScreenCount(x11_display) )
|
||||
return Point2i(0,0);
|
||||
|
||||
Window root = XRootWindow(x11_display, p_screen);
|
||||
XWindowAttributes xwa;
|
||||
XGetWindowAttributes(x11_display, root, &xwa);
|
||||
return Point2i(xwa.x, xwa.y);
|
||||
}
|
||||
|
||||
Size2 OS_X11::get_screen_size(int p_screen) const {
|
||||
if( p_screen >= XScreenCount(x11_display) )
|
||||
return Size2i(0,0);
|
||||
Window root = XRootWindow(x11_display, p_screen);
|
||||
XWindowAttributes xwa;
|
||||
XGetWindowAttributes(x11_display, root, &xwa);
|
||||
|
|
|
@ -221,6 +221,7 @@ public:
|
|||
|
||||
#ifdef EXPERIMENTAL_WM_API
|
||||
virtual int get_screen_count() const;
|
||||
virtual Point2 get_screen_position(int p_screen=0) const;
|
||||
virtual Size2 get_screen_size(int p_screen=0) const;
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2& p_position);
|
||||
|
|
Loading…
Reference in a new issue