lp:firefoxjpeg2000

Created by Keith Hughitt and last modified
Get this branch:
bzr branch lp:firefoxjpeg2000
Members of Helioviewer can upload to this branch. Log in for directions.

Related bugs

Related blueprints

Branch information

Owner:
Helioviewer
Project:
Firefox JPEG 2000 Plugin
Status:
Development

Recent revisions

376. By Ben Karel

Minor expansion of HVJ::Util unit tests

375. By Ben Karel

Add Google Test based unit test infrastructure

374. By Ben Karel

Make create_cfbundle script start by removing any existing bundle.

373. By Ben Karel

Adding packed gtest sources for easy cross-platform unit tests.

372. By Ben Karel

Add CMake build scripts and tools for building CFBundle plugins on Mac OS X

371. By Ben Karel

Fixes stutter when panning (non-animating) images.

Suppose the user is panning a very large image. Instead of rendering the
entire image to a huge buffer, smaller, more manageable buffer sizes are used.
In order to balance memory usage versus processing time, the buffers are sized
larger than the viewport. This allows us to pan around a limited amount without
needing to re-render the entire buffer for every pixel movement, which is much
too computationally expensive to be feasible.

When the user pans close to the "edge" of one of these pre-rendered buffers,
the buffer must be re-rendered. Before this patch, re-rendering was done
synchronously on the UI thread in response to triggering mouse movements.
The problem is that doing so creates a regular and noticeable stutter during
continuous panning. When panning over a movie, the problem becomes much worse.

A simple asynchronous update of the buffer contents was not quite right either.
Prior to this patch, there was no distinction between "the position of the
texture being drawn on the screen" and "the position of the texture currently
being processed." This makes sense only with synchronous updating of texture
contents. We would first update the position of the currently used texture,
then freeze the processing thread, call updateBuffer(), and resume processing.
Unfortunately, the next mouse movement was likely to come in before the
new texture is done rendering. When it did, the old texture would be drawn
at the new coordinates (for a frame or two), resulting in an ugly flash.

Thus, this patch adds HVJ_Image::processing_texture_dims to complement
HVJ_Image::SegmentedTexture::dims and allow seamless asynchronous image updates.

370. By Ben Karel

Fixing unit tests

369. By Ben Karel

Update Mac specific code to reflect changes to HVJ_View function names

368. By Ben Karel

More changes as fallout from view_dims change, this time fixing double-click-to-zoom

367. By Ben Karel

Fix bug in coordinate space handling, rename dim-related functions in HVJ_View to be more explicit about what space they deal with.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 (needs bzr 0.92)
This branch contains Public information 
Everyone can see this information.

Subscribers