Commit Graph

256 Commits

Author SHA1 Message Date
Ehsan Akhgari
71bd0669a9 Bug 728614 - Part 2: Remove viewport offsets 2012-02-20 16:51:37 -05:00
Jeff Muizelaar
3a93b5a4c5 Bug 727939. Avoid double painting after invalidation. r=bgirard
This reduces the paint rate on things like runfield
so that we only paint at the rate that we're invalidating.

We do so by not requesting render in endTransaction

It looks like endTransaction is only called by endDrawing
on the gecko thread and only on VirtualLayers. We don't
need the extra requestRender call because we've already
done the rendering.
2012-02-18 18:06:30 -05:00
Brad Lassey
e85e784817 backing out e45688c8531c because it broke the build 2012-02-18 14:21:48 -05:00
Patrick Walton
a93537390c Stub untested gralloc support, disabled for now 2012-02-17 23:53:21 -08:00
Chris Lord
78e424b0f7 Fix screen/window size change events.
Window size was being treated as equivalent to screen size, which it isn't.
Make sure to send the size-changed event when either the window size or the
screen size change, and to properly differentiate between the two.
2012-02-17 17:25:52 +00:00
Kartikaya Gupta
c4e060665c (Part 5) Move overrides and abstract/interface implementations up from GeckoGLLayerClient into GeckoLayerClient 2012-02-17 10:33:23 -05:00
Kartikaya Gupta
e51de4eecb (Part 4) Mark all gfx functions invoked by JNI so I don't shoot myself in the foot shortly 2012-02-17 10:13:56 -05:00
Kartikaya Gupta
a9d7bc61fb (Part 3) Collapse LayerClient into GeckoLayerClient, the only subclass 2012-02-17 10:03:28 -05:00
Kartikaya Gupta
ebc21570a5 (Part 2) Stop PlaceholderLayerClient from extending LayerClient since it has nothing in common with GeckoLayerClient and makes a mockery of OOP 2012-02-17 09:56:47 -05:00
Kartikaya Gupta
a5b438d771 (Part 1) Get rid of LayerController.getLayerClient() 2012-02-17 09:32:24 -05:00
Kartikaya Gupta
43b2051ae9 Also remove dangling entrails of the layer client type 2012-02-17 09:16:14 -05:00
Kartikaya Gupta
417e4428c0 Rip out unused GeckoSoftwareLayerClient since we've committed to GL layers. 2012-02-17 09:04:50 -05:00
Kartikaya Gupta
31c5b5c646 Put back some things left out of dougt's merge 2012-02-17 01:36:49 -05:00
Doug Turner
222fba130c Merge with mozilla-central 2012-02-16 18:06:54 -08:00
Kartikaya Gupta
64f4f0f8e3 Cache the checkberboard color so that we don't redo a bunch of work uselessly 2012-02-16 12:04:37 -05:00
Patrick Walton
fa07e9b633 Don't render while pinching. Reduces jank and makes zooming easier to debug. 2012-02-13 22:48:00 -08:00
Patrick Walton
dd0a3bbc18 Fix scissor rect and use the Java compositor's cached viewport metrics when drawing decorations 2012-02-13 20:20:38 -08:00
Kartikaya Gupta
daf42909cc Guard against OOMing in GeckoGLLayerClient.getBitmap like we were doing in GeckoSoftwareLayerClient 2012-02-13 18:15:27 -05:00
Patrick Walton
b4211fd4ba Expose ActivateProgram() and DeactivateProgram() to widget 2012-02-13 13:55:10 -08:00
Patrick Walton
09501a39aa Split out Java compositor shader program activation and deactivation into separate functions 2012-02-13 12:27:09 -08:00
Patrick Walton
8a076808c5 Deactivate vertex attribute arrays and the program. Seems to fix the crashes on PowerVR. 2012-02-10 23:50:13 -08:00
Patrick Walton
78cb81814f Uncomment the Java compositor integration, except for the part that causes PowerVR crashes 2012-02-10 23:03:02 -08:00
Ali Juma
64839a1fdf Fix race conditions when updating view transform, by switching to an absolute transform. 2012-02-10 16:08:24 -05:00
Ali Juma
96f267b56a Merge heads. 2012-02-10 10:31:31 -05:00
Patrick Walton
fdcd9a93f7 Expose the necessary Java routines to render decorations through JNI 2012-02-09 22:58:18 -08:00
Ali Juma
54af353fd7 Code cleanup. 2012-02-09 17:39:04 -05:00
Patrick Walton
efc1f6ee1d Split up the LayerRenderer's drawing logic in preparation for exposing it to JNI 2012-02-08 22:27:01 -08:00
Patrick Walton
83f031eba7 Bug 723036 - Port the Java compositor to OpenGL ES 2.0 2012-02-08 21:13:08 -08:00
Benoit Girard
beb2ae7df8 Merge viewport with tip 2012-02-08 20:42:17 -05:00
Benoit Girard
b262f4ad9d Merge working on Nexus S 2012-02-08 20:23:27 -05:00
Ali Juma
a2d1806910 Merge. 2012-02-08 19:55:13 -05:00
Benoit Girard
ea6c7d744f Merge fixes 2012-02-08 19:01:21 -05:00
Benoit Girard
2f35d690b6 Merge m-c into maple 2012-02-08 16:43:22 -05:00
Ali Juma
b0394626a2 Fix incorrect rendering after orientation change. 2012-02-08 16:09:10 -05:00
Benoit Girard
ad35e17cb4 Merge working head with display port head 2012-02-08 12:18:27 -05:00
Benoit Girard
9b2cd37240 Remove RemoveAbstractView, pushing new head 2012-02-08 10:46:26 -05:00
Patrick Walton
67c4b7f7be Allow redraw while a finger is down. Make this logic work properly later. 2012-02-07 23:37:29 -08:00
Patrick Walton
008db0822a Lower the minimum viewport change delay to 25 for now 2012-02-07 23:10:58 -08:00
Ali Juma
ac787b0863 Move surface ownership to GLContextProviderEGL.
--HG--
extra : rebase_source : a3f83d279de5087a521a938d66c4e7b5dee79d74
2012-02-06 16:53:09 -05:00
Ali Juma
f9ebf5ebe2 Pause/resume composition on surface destruction/creation. 2012-02-06 13:57:06 -05:00
Ali Juma
92e59fd959 Add support for pausing/resuming composition from Java. 2012-02-05 13:33:38 -05:00
Patrick Walton
402747340d Stand up async panning and zooming 2012-02-03 23:31:05 -08:00
Patrick Walton
50c7df015c Poke the compositor to composite on a pan or zoom; stub AndroidBridge::GetViewTransform() 2012-02-03 18:35:58 -08:00
Patrick Walton
9159739ff5 Stub ViewTransform code; unbork the viewport size a bit 2012-02-03 16:39:15 -08:00
Patrick Walton
0b4a53c433 Add a virtual layer and GL layer client implementation 2012-02-03 15:48:26 -08:00
Benoit Girard
8b06842a39 Change delay to 15ms 2012-02-03 14:18:48 -05:00
Benoit Girard
92aebc0551 Remove deadcode 2012-02-03 10:26:54 -05:00
Patrick Walton
cc6fa599ae Eliminate coupling between the software layer client and the rest of Fennec 2012-02-02 23:30:41 -08:00
Patrick Walton
c2c88cf60a Pull parts of GeckoSoftwareLayerClient that will be used for GL layers into a generic GeckoLayerClient class 2012-02-02 22:07:05 -08:00
Patrick Walton
2b6bcfedfa Partial removal of tiling, stub callouts 2012-02-02 19:28:22 -08:00
Benoit Girard
8c2ddab43b Fix problems with Nexus S init 2012-02-02 13:57:38 -05:00
Benoit Girard
36780c8b69 Progress on omtc integration 2012-02-01 16:18:35 -05:00
Benoit Girard
7468656545 Move registerCxxCompositor to FlexView 2012-02-01 14:15:52 -05:00
Ali Juma
bc530734b9 Merge m-c to kiwifox 2012-02-01 12:07:14 -05:00
Patrick Walton
107405a6ee Initial import of the flexible GL surface view 2012-01-31 21:35:52 -08:00
Benoit Girard
a6b4978cad Android build fixes 2012-01-31 14:28:37 -05:00
Benoit Girard
7768764c56 merge mc into kiwifox 2012-01-31 13:55:51 -05:00
Benoit Girard
8b421129d7 Merge fixes 2012-01-30 15:57:30 -05:00
Chris Lord
c1e993df15 Bug 722068 - Fix invalidation during animations in MultiTileLayer. r=pcwalton
The buffer in MultiTileLayer is invalidated each time the origin or resolution
changes. MultiTileLayer was using the last updated origin/resolution instead of
the last set, so if Gecko was animating and locked the layer for long enough,
the buffer would be incorrectly invalidated due to the origin/resolution not
being updated.
2012-01-31 09:36:02 +00:00
Chris Lord
30f5d53aa8 Bug 720613 - Prevent resizing before the surface has been created. r=pcwalton
Prevent trying to resize the buffer before the surface has been created. At
that point, we wouldn't know our maximum texture size, so we would've thrown a
RuntimeException.
2012-01-31 09:36:00 +00:00
Benoit Girard
cc153dc324 Mergi mc to kiwifox, lots of conflicts so may not build 2012-01-30 13:38:20 -05:00
Benoit Girard
349ea74b39 Add missing files 2012-01-27 13:32:37 -05:00
Kartikaya Gupta
023caa61db Bug 708687 - Snap the page when the page size changes and pushes it into overscroll. r=pcwalton 2012-01-30 23:43:36 -05:00
Kartikaya Gupta
67add8af20 Bug 720144 - Expose methods in robocop to grab the painted surface and to compare pixels. r=jmaher 2012-01-30 22:46:13 -05:00
Kartikaya Gupta
10db96c244 Bug 720144 - Allow listening for draw updates and obtaining a copy of the composited surface for robocop testing. r=Cwiiis 2012-01-30 22:45:38 -05:00
Benoit Girard
2a3688a8df Partial work for android OGLSurfaceView
--HG--
extra : rebase_source : 2c6ce362dd859e9f81a5b4490e2451826259a651
2012-01-26 14:23:13 -05:00
Brad Lassey
58bc88d22e bug 713874 - Black thumbnails are produced by GeckoSoftwareLayerClient.getBitmap() r=mfinkle 2012-01-13 13:10:13 -05:00
Jonathan Kew
b1adbbce36 Backed out changeset ba3335f34100 (bug 713874) for Android build failures. 2012-01-14 22:19:31 +00:00
Brad Lassey
5357ae134e bug 713874 - Black thumbnails are produced by GeckoSoftwareLayerClient.getBitmap() r=mfinkle
--HG--
extra : rebase_source : 18d463ca4c44610a07ba7de582c6f114404eab8f
2012-01-13 13:10:13 -05:00
Kartikaya Gupta
7a58e90d7c Bug 715836 - Ensure the UI is only modified from the UI thread. r=pcwalton 2012-01-13 07:03:22 -05:00
Kartikaya Gupta
8637bcee20 Bug 715836 - (Cleanup) Remove unused functions. r=pcwalton 2012-01-13 07:03:22 -05:00
Chris Peterson
adf7970c58 Bug 714874 - Fix Java warnings about redundant casts. r=pcwalton r=dougt a=dougt 2012-01-06 12:21:49 -08:00
Patrick Walton
cdc3fe1942 Bug 708746 - Part 5: Make the initial viewport size and page size equal to the device screen dimensions instead of 1 pixel by 1 pixel. r=kats 2012-01-06 16:42:48 -08:00
Chris Lord
55450d6017 Bug 709120 - Update non-visible tiles asynchronously. r=pcwalton
Only update tiles that intersect with the screen, and asynchronously update
invisible tiles over multiple subsequent frames. This has the effect of
spreading out non-critical texture-upload over time and removes some juddering
on devices that don't support gralloc.
2012-01-06 11:22:52 +00:00
Chris Lord
dd6d417d5d Bug 709120 - Use MultiTileLayer in Android native fennec. r=pcwalton
This uses MultiTileLayer instead of SingleTileLayer for devices that don't have
gralloc support. This has the advantage of reduced memory usage due to less
wastage from power-of-two textures, and can be a performance boost due to slow
sub-image updates on some devices.
2012-01-06 11:22:38 +00:00
Chris Lord
2fee06e344 Bug 709120 - Add MultiTileLayer to Android native fennec. r=pcwalton
This adds a new layer type that uses multiple SingleTileLayer's to implement
tiled layer support. This also assumes a back-buffer that is tiled, so that
texture updates can remain fast (relatively speaking).
2012-01-06 11:22:24 +00:00
Chris Lord
a560f7f2c4 Bug 721070 - Checkerboarding at bottom after pinch zooming out. r=kats,pcwalton
Certain conditions would cause MultiTileLayer to incorrectly invalidate tiles,
or to reuse tiles incorrectly, which would cause checkerboarding (sometimes
permanent until a redraw occurs).

This addresses said issues:

- Removes manual invalidation on Document:Shown and Tab:Selected. This is
  unnecessary, as the entire buffer will be invalidated when this happens
  anyway. Sometimes Document:Shown happens *after* drawing has occurred,
  which caused the entire screen to checkerboard incorrectly.
- Fix re-using off-screen tiles with the incorrect resolution. Tiles are stored
  in a hash-map based on their unscaled position. As only tiles that intersect
  with the update region in tile-space are invalidated, sometimes tiles that
  were off-screen, but whose unscaled tile origin appears on-screen would be
  incorrectly re-used. Fix this by checking that a tile's resolution matches the
  current resolution before reusing it.
2012-01-26 20:19:35 +00:00
Chris Lord
8750f68b59 Bug 721100 - After panning, tap area is offset at wrong place. r=pcwalton
When rendering with an offset for MultiTileLayer, the tile origin was moved
to compensate, but this lead to there being a mismatch between Gecko's
displayport origin and the one recorded on the Java side.

Instead of altering the origin, allow setting a render offset on MultiTileLayer
instead, so the origin remains correct.
2012-01-26 20:18:47 +00:00
Brad Lassey
0cb5691661 bug 711201 - instrument when we paint for performance testing r=dougt 2012-01-24 15:53:49 -05:00
Margaret Leibovic
361cb84d37 Bug 721220 - Send message back to java after tab selection is complete. r=mbrubeck 2012-01-25 20:06:08 -08:00
Kartikaya Gupta
fbd9e4aea1 Bug 718270 - When hiding the VKB on small pages, increase page size to prevent zoom-in. r=pcwalton 2012-01-25 17:16:03 -05:00
James Willcox
37d3c2bd21 Bug 715190 - Clear existing GL errors before trying to check for a new one r=clord 2012-01-04 21:51:11 -05:00
Wes Johnston
2fd2e86804 Bug 719309 - Follow up. Rename a variable. r=mfinkle 2012-01-25 01:41:02 +01:00
Wes Johnston
8cf1ffe8b1 Bug 719309 - Hook up touch events pref and disable them for now. r=mfinkle 2012-01-25 01:31:33 +01:00
Wes Johnston
b4f82372f4 Bug 719240 - Delay sending touchmove events until touches have moved a minimum distance. r=mfinkle 2012-01-25 01:31:33 +01:00
Wes Johnston
38ab14764c Bug 603008 - Only delay panning on pages with touch listeners. r=mfinkle 2012-01-25 01:31:33 +01:00
Wes Johnston
a02904d162 Bug 603008 - Android widget multitouch implementation. r=blassey,kats 2012-01-25 01:31:33 +01:00
Patrick Walton
918dd9c009 Bug 710533 - Tint the checkerboard with the background color of the page. r=Cwiiis 2012-01-23 20:10:24 -08:00
Chris Lord
cef8ea399b Bug 717283 - Use tiles on-demand. r=pcwalton, snorp
Instead of tying the tile-buffer in MultiTileLayer directly to the back-buffer
of the page, make sure rendering is always aligned to the tile grid and use
tiles on-demand. This makes better use of tiles when panning/zooming, and opens
up the route for further optimisations.
2012-01-24 15:39:53 +00:00
Chris Lord
baf63d1e38 Bug 717283 - Store sub-tile metrics on the tile object. r=pcwalton
Instead of deriving sub-tile metrics on each iteration, create a SingleTileLayer
sub-class and store them there.
2012-01-24 15:38:29 +00:00
Phil Ringnalda
68bc9fb0e8 Backed out changeset b77c0c621163 (bug 710533) for native ts bustage 2012-01-23 23:33:05 -08:00
Phil Ringnalda
1d1f061673 Back out 420d7b8ed59d for being a bad backout 2012-01-23 23:32:11 -08:00
Phil Ringnalda
4d92a24459 Backed out changeset b77c0c621163 (bug 710533) for native ts bustage 2012-01-23 22:53:07 -08:00
Patrick Walton
9120d78e9d Bug 710533 - Tint the checkerboard with the background color of the page. r=Cwiiis 2012-01-23 20:10:24 -08:00
Patrick Walton
29365a4489 Bug 706684 - Implement a simpler scale gesture listener on Android. r=Cwiiis 2012-01-23 19:18:24 -08:00
Ed Morley
c4c32df0c4 Backout 91eebc6bdb59 & 7d776b291014 (bug 717283) for Android native reftest crashes 2012-01-22 11:55:18 +00:00
Chris Lord
d70b23ac39 Bug 717283 - Use tiles on-demand. r=pcwalton, snorp
Instead of tying the tile-buffer in MultiTileLayer directly to the back-buffer
of the page, make sure rendering is always aligned to the tile grid and use
tiles on-demand. This makes better use of tiles when panning/zooming, and opens
up the route for further optimisations.
2012-01-22 09:40:37 +00:00
Chris Lord
9426018c8c Bug 717283 - Store sub-tile metrics on the tile object. r=pcwalton
Instead of deriving sub-tile metrics on each iteration, create a SingleTileLayer
sub-class and store them there.
2012-01-22 09:40:26 +00:00
Patrick Walton
6ba521126c Bug 707956 - Restore original zoom scale on double rotation. r=kats 2012-01-20 21:14:03 -08:00
Matt Brubeck
4a1a0d545b Back out 47584f117727 and e05a8743389a (bug 717283) because of native Android startup crashes 2012-01-20 11:42:34 -08:00