Fix issue with vertical stretching

This commit is contained in:
wheaney 2025-01-31 14:10:55 -08:00
parent b55a5b0c62
commit 39460a521f
2 changed files with 3 additions and 4 deletions

View File

@ -549,7 +549,7 @@ export const VirtualMonitorEffect = GObject.registerClass({
// if the perspective includes more than just our viewport actor, move vertices towards the center of the perspective so they'll be properly rotated
world_pos.x += u_actor_to_display_offsets.x * cogl_position_width / u_actor_to_display_ratios.y;
world_pos.y += u_actor_to_display_offsets.y * cogl_position_height / u_actor_to_display_ratios.y;
world_pos.y -= u_actor_to_display_offsets.y * cogl_position_height / u_actor_to_display_ratios.y;
world_pos.z *= aspect_ratio / u_actor_to_display_ratios.y;
world_pos = applyXRotationToVector(world_pos, u_rotation_x_radians);
@ -558,14 +558,13 @@ export const VirtualMonitorEffect = GObject.registerClass({
world_pos.z /= aspect_ratio / u_actor_to_display_ratios.y;
world_pos.x /= u_actor_to_display_ratios.x / u_actor_to_display_ratios.y;
// world_pos.y /= u_actor_to_display_ratios.y;
world_pos = u_projection_matrix * world_pos;
// if the perspective includes more than just our viewport actor, move the vertices back to just the area we can see.
// this needs to be done after the projection matrix multiplication so it will be projected as if centered in our vision
world_pos.x -= (u_actor_to_display_offsets.x / u_actor_to_display_ratios.x) * world_pos.w;
world_pos.y -= (u_actor_to_display_offsets.y / u_actor_to_display_ratios.y) * world_pos.w;
world_pos.y += (u_actor_to_display_offsets.y / u_actor_to_display_ratios.y) * world_pos.w;
cogl_position_out = world_pos;

View File

@ -13,7 +13,7 @@ logger = logging.getLogger('breezy_ui')
screen_cast_iface = 'org.gnome.Mutter.ScreenCast'
screen_cast_session_iface = 'org.gnome.Mutter.ScreenCast.Session'
screen_cast_stream_iface = 'org.gnome.Mutter.ScreenCast.Session'
gst_pipeline_format = "pipewiresrc path=%u ! video/x-raw,max-framerate=120/1,width=%d,height=%d ! fakesink sync=false"
gst_pipeline_format = "pipewiresrc path=%u ! video/x-raw,max-framerate=60/1,width=%d,height=%d ! fakesink sync=false"
def _screen_cast_session():