@@ -60,10 +60,44 @@ index 8b46518ce..2d2055625 100644
6060 best_effort_bvn_status \
6161 blit_client \
6262diff --git a/nexus/nxclient/server/nxserverlib.c b/nexus/nxclient/server/nxserverlib.c
63- index aeae7d977..6ed304edf 100644
63+ index aeae7d977..49a934f24 100644
6464--- a/nexus/nxclient/server/nxserverlib.c
6565+++ b/nexus/nxclient/server/nxserverlib.c
66- @@ -4080,6 +4080,11 @@ void nxserverlib_get_settings(nxserver_t server, struct nxserver_settings *setti
66+ @@ -1194,6 +1194,33 @@ int nxserverlib_set_server_alpha(nxclient_t client, unsigned alpha)
67+ return 0;
68+ }
69+
70+ + int nxserverlib_set_server_position(nxclient_t client, NEXUS_Rect rect)
71+ + {
72+ + NEXUS_SurfaceCompositorClientSettings client_settings;
73+ + NEXUS_Error rc;
74+ + struct b_req *req;
75+ +
76+ + for (req = BLST_D_FIRST(&client->requests); req; req = BLST_D_NEXT(req, link)) {
77+ + unsigned i;
78+ + for (i=0;i<NXCLIENT_MAX_IDS;i++) {
79+ + if (!req->results.surfaceClient[i].id) continue;
80+ +
81+ + BDBG_OBJECT_ASSERT(client, b_client);
82+ + NEXUS_SurfaceCompositor_GetClientSettings(client->session->surfaceCompositor, req->handles.surfaceClient[i].handle, &client_settings);
83+ +
84+ + client_settings.composition.position.x = rect.x;
85+ + client_settings.composition.position.y = rect.y;
86+ + client_settings.composition.position.width = rect.width;
87+ + client_settings.composition.position.height = rect.height;
88+ +
89+ + rc = NEXUS_SurfaceCompositor_SetClientSettings(client->session->surfaceCompositor, req->handles.surfaceClient[i].handle, &client_settings);
90+ + if (rc) return BERR_TRACE(rc);
91+ + }
92+ + }
93+ +
94+ + return 0;
95+ + }
96+ +
97+ static NEXUS_DisplayHandle b_get_vbi_display(struct b_session *session)
98+ {
99+ return session->display[1].display ? session->display[1].display : session->display[0].display;
100+ @@ -4080,6 +4107,11 @@ void nxserverlib_get_settings(nxserver_t server, struct nxserver_settings *setti
67101 }
68102
69103 nxserver_t nxserverlib_init(const struct nxserver_settings *settings)
@@ -75,7 +109,7 @@ index aeae7d977..6ed304edf 100644
75109 {
76110 NEXUS_PlatformStartServerSettings serverSettings;
77111 NEXUS_Error rc;
78- @@ -4154,7 +4159 ,7 @@ nxserver_t nxserverlib_init(const struct nxserver_settings *settings)
112+ @@ -4154,7 +4186 ,7 @@ nxserver_t nxserverlib_init(const struct nxserver_settings *settings)
79113 BKNI_ReleaseMutex(server->settings.lock);
80114
81115 NEXUS_Platform_GetDefaultStartServerSettings(&serverSettings);
@@ -85,7 +119,7 @@ index aeae7d977..6ed304edf 100644
85119 BDBG_ASSERT(!rc);
86120
87121diff --git a/nexus/nxclient/server/nxserverlib.h b/nexus/nxclient/server/nxserverlib.h
88- index f7457a3a1..cd976504e 100644
122+ index f7457a3a1..63184fd94 100644
89123--- a/nexus/nxclient/server/nxserverlib.h
90124+++ b/nexus/nxclient/server/nxserverlib.h
91125@@ -362,6 +362,7 @@ struct nxserver_cmdline_settings
@@ -96,3 +130,11 @@ index f7457a3a1..cd976504e 100644
96130 void nxserverlib_uninit(nxserver_t server);
97131 struct b_session *nxserver_get_client_session(nxclient_t client);
98132 /* get_singleton is used for nxclient local to use externally opened nxserverlib */
133+ @@ -372,6 +373,7 @@ void nxserverlib_get_settings(nxserver_t server, struct nxserver_settings *setti
134+ int nxserverlib_send_input(nxclient_t client, unsigned inputClientId, const NEXUS_InputRouterCode *pCode);
135+ #endif
136+ int nxserverlib_set_server_alpha(nxclient_t client, unsigned alpha);
137+ + int nxserverlib_set_server_position(nxclient_t client, NEXUS_Rect rect);
138+ #if NEXUS_HAS_ASTM
139+ /* modify the system defaults for ASTM */
140+ void nxserverlib_get_astm_settings(NEXUS_AstmSettings *pSettings);
0 commit comments