Mir

[enhancement] Add a clamping resize mode to GLRenderer

Bug #1259887 reported by Daniel van Vugt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Daniel van Vugt
mir (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

[enhancement] Add a clamping resize mode to GLRenderer

During resizing a surface's buffer dimensions will temporarily lag behind the surface dimensions. At present we handle this by simply scaling the buffer to fill the latest desired surface dimensions.

But scaling it seems is not ideal. Any graphical details within the surface appear to stretch/shrink during this time, which looks slightly ugly.

What we should do as add another (optional) resize mode where the buffer is clamped/truncated to the new surface dimensions. Thus the top left corner and all pixel contents of the surface will not appear to move during the resize. Just some border area on the right/bottom of the surface may appear blank during resize. This is how existing windowing systems render resizing surfaces, and I think it's visually preferable to what we have now.

Tags: enhancement

Related branches

Changed in mir:
milestone: none → 0.1.8
assignee: nobody → Daniel van Vugt (vanvugt)
status: Triaged → In Progress
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir/devel at revision None, scheduled for release in mir, milestone Unknown

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
status: Fix Committed → Fix Released
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Changed in mir:
importance: Low → Medium
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.6 KiB)

This bug was fixed in the package mir - 0.1.8+14.04.20140411-0ubuntu1

---------------
mir (0.1.8+14.04.20140411-0ubuntu1) trusty; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.1.8 (https://launchpad.net/mir/+milestone/0.1.8)
    - mirclient ABI unchanged, still at 7. Clients do not need rebuilding.
    - mirserver ABI bumped to 18. Shells need rebuilding.
    - Server API changes affecting shells:
      . GLRenderer::tessellate() changed syntax.
      . graphics::Platform::create_display() has a new parameter allowing you
        to customize the compositor's (E)GL configutation.
      . Renderable::buffer(unsigned long frameno) is now:
        Renderable::buffer(void const* user_id). See below.
      . Renderable::should_be_rendered_in() is replaced by a more natural:
        Renderable::visble()
      . input::Surface::name() returns by value instead of reference now,
        to ensure future thread safety.
    - Switched EventHub device enumeration and hotplug to Udev. NOTE! This
      means mir_test_* can't run natively on touch devices any more without
      some setup first:
        sudo mount -o remount,rw /
        sudo apt-get update
        sudo apt-get install -y umockdev
        umockdev-run -- bin/mir_unit_tests
    - Added logging for HWC events.
    - Continued consolidation of Surface classes toward a simpler architecture.
    - Introduced "RenderableList" as the way to sample the Scene contents,
      and started using that in the default compositor.
    - Introduced physical length units and conversion (geometry::Length) in
      preparation for arbitrary DPI rendering.
    - Added some decorations to demo-shell; shadows and basic title bars, all
      anti-aliased and high-DPI scalable.
    - Multi-monitor frame sync has been redesigned to eliminate the need for
      frame number tracking.
    - Bugs (and enhancements) resolved:
      . [enhancement] Please move input detection to libudev (LP: #1237784)
      . [enhancement] Add a clamping resize mode to GLRenderer (LP: #1259887)
      . [regression] Intermittent loss of multimonitor frame sync
        (LP: #1290306)
      . [enhancement] Make GL config options configurable (LP: #1290780)
      . memcheck-test doesn't test anything when DISABLED_GTEST_DISCOVERY is
        enabled (LP: #1291876)
      . "Error opening DRM device" is always followed by "Unknown error -(some
        negative number)" (LP: #1292384)
      . Rendering/composition gets stopped early (LP: #1293896)
      . Ubuntu Touch Settings and terminal apps are not rendering correctly on
        rotate. (LP: #1294048)
      . [regression] Apps are much slower to open (LP: #1294051)
      . Settings app opens to a blank screen unless given enough time to render
        or the app is touched (LP: #1294053)
      . TestClientInput/DemoPrivateProtobuf memory leak is causing regular CI
        test failures (LP: #1295231)
      . OSK touch events "fall through" and hit surface behind them
        (LP: #1297878)
      . [enhancement] add a test for composite of last client post
        (LP: #1298596)
      . [regression] Surfaces vanish as soon as their edges touch the edge of
        screen (L...

Read more...

Changed in mir (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.