Ed Morley
9da1e1ea9b
Backout 645bf43f8f14 (bug 818575) for crashes on Android on a CLOSED TREE
2013-01-10 13:17:12 +00:00
Matt Woodrow
65e2792915
Bug 818575 - Make TransformShadowTree transform all descendant scrollable layers instead of just the first. r=roc
2013-01-10 22:10:20 +13:00
Nicholas Cameron
3ad3f5b421
Bug 824454; use the resolution scale in OMTA transforms. r=cjones; a=blocking-basecamp
...
--HG--
extra : rebase_source : 8f045dd319418b771c5f31ca2f3477ab5673a5ad
2013-01-08 10:39:12 +01:00
Avi Halachmi
aadca4ba87
Bug 820167 - Tab open/close animation prints performance data to error console when enabled. r=jmuizelaar,dao
2013-01-03 21:53:15 -05:00
Robert O'Callahan
3c9a572fb4
Bug 663776. Part 3: Refactor layer transform snapping to distinguish translation-snapping from rect-snapping, and don't snap translation+scale transforms when we don't know all four edges of the rect that needs to be snapped. r=mattwoodrow
...
This separates SnapTransform into SnapTransformTranslation, which just snaps translations
and nothing else, and SnapTransform, which snaps translation+scale of rectangles.
2012-12-07 12:58:13 +13:00
Dão Gottwald
8074dbee73
Backed out changeset e14c7409ede7
2012-12-18 01:04:30 +01:00
Avi Halachmi
a22a349cdd
Bug 820167: Enable performance measurement of tab animation. r=jmuizelaar
2012-12-17 18:48:01 -05:00
Jeff Walden
7146c23e80
Bug 820570 - Move mozilla::DebugOnly into DebugOnly.h to pare down the grab-baggish Util.h. r=Ms2ger
2012-12-14 18:58:45 -05:00
Robert O'Callahan
bb1dcd8d55
Bug 663776. Part 0.5: Mark layers that could have their transforms changed via off-main-thread animations or empty transactions, and treat all ThebesLayerOGL descendants of such layers as potentially resampled so that their buffers are put into the correct state and size. r=mattwoodrow
...
--HG--
extra : rebase_source : d3c78cc61f1a3d5f12dedb57180371b41b1647f6
2012-12-12 18:21:23 +13:00
Nicholas Cameron
04002c184f
Bug 780692; throttle OMTA (rollup patch). r=dbaron,bz
...
--HG--
extra : rebase_source : 1207275df5c509ac1974e2b9333c738b995f9d5e
2012-12-12 10:12:43 +13:00
Ed Morley
e987323650
Backout 55d5f3cd5c85, d89ae7f40549 & 270391fca858 (bug 663776) for assertions
2012-12-07 12:37:36 +00:00
Robert O'Callahan
3c9cac31fa
Bug 663776. Part 3: Refactor layer transform snapping to distinguish translation-snapping from rect-snapping, and don't snap translation+scale transforms when we don't know all four edges of the rect that needs to be snapped. r=mattwoodrow
...
This separates SnapTransform into SnapTransformTranslation, which just snaps translations
and nothing else, and SnapTransform, which snaps translation+scale of rectangles.
2012-12-07 12:58:13 +13:00
Boris Zbarsky
53f339800c
Bug 815671 part 4. Remove some array copying in gfx code. r=roc
2012-11-29 11:14:13 -05:00
Jeff Muizelaar
538087de5f
Bug 800031. Include paint time int tab switch telemetry. r=ehsan,dao,bjcaob
...
This adds a new FX_TAB_SWITCH_TOTAL_MS that should more accurately represent
the user experience of tab switch time than FX_TAB_SWITCH_UPDATE_MS.
FX_TAB_SWITCH_UPDATE_MS is being kept because it gives a good indication of how
much time is being spent in the front end parts vs the painting parts.
This works by measuring the time between beginTabSwitch() and the first call to
LayerManager::PostPresent().
2012-10-11 13:54:27 -04:00
Chris Jones
ca39444b15
Bug 790505, part 3: Add API for scheduling a shadowable-layer mutation to be applied at the next layers transaction. r=mattwoodrow,roc
2012-10-02 22:55:50 -07:00
Chris Jones
17867c12a8
Back out bug 790505 for leaking
2012-10-03 00:21:08 -07:00
Chris Jones
fafda90217
Bug 790505, part 2: Add API for scheduling a shadowable-layer mutation to be applied at the next layers transaction. r=mattwoodrow,roc
2012-10-02 22:55:50 -07:00
Chris Jones
40667015b0
Back out 17f942846b9f (bug 795811) for causing startup crashes.
2012-10-02 01:29:53 -07:00
David Zbarsky
83dc4acb46
Bug 795811 - Make GetPrimaryScrollableLayer() return null on all configurations except MOZ_WIDGET_ANDROID r=cjones
2012-10-02 00:19:56 -04:00
Doug Sherk
c0e08ee726
Bug 784908: Part 1: Change names of FrameMetrics variables to be more descriptive, add documentation, change some coordinate spaces. r=roc
2012-09-28 22:16:34 -04:00
Chris Lord
bb3f3cc9cd
Bug 794200 - Progressive draw tiles in the direction of scrolling. r=bgirard
...
When scrolling downwards, make sure to fill in tiles from the top, upwards
from the bottom, left from the right and right from the left.
2012-09-26 21:41:56 +01:00
Matt Woodrow
ab9f5929bd
Bug 788044 - Make inactive layer subtrees relative to the ContainerLayer, not the reference frame. r=roc
2012-09-17 10:25:33 +12:00
Randell Jesup
eedf93a21d
Bug 773151: Convert nsCAutoString->nsAutoCString CLOSED TREE r=bsmedberg
2012-09-01 22:35:17 -04:00
Ehsan Akhgari
57ac5ddc72
Merge the landing of bug 579517 to mozilla-inbound
2012-08-22 12:12:15 -04:00
Doug Sherk
b018fea56e
Bug 780397: Convert FrameMetrics.mViewportScrollOffset from nsIntPoint to gfx::Point r=roc
2012-08-21 21:37:15 -07:00
David Zbarsky
41867d1baa
Bug 783893 - Clean up async animation code r=roc
2012-08-21 00:06:47 -04:00
David Zbarsky
fbb04700b6
Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical
2012-08-21 00:06:46 -04:00
David Zbarsky
329755919f
Fix layer tree dumping code, no bug, r=cjones over irc
2012-08-21 00:06:46 -04:00
Ehsan Akhgari
0fd9123eac
Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
...
This patch was generated by a script. Here's the source of the script for
future reference:
function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
! -wholename "*security/nss*" \
! -wholename "*/.hg*" \
! -wholename "obj-ff-dbg*" \
! -name nsXPCOMCID.h \
! -name prtypes.h \
-type f \
\( -iname "*.cpp" \
-o -iname "*.h" \
-o -iname "*.c" \
-o -iname "*.cc" \
-o -iname "*.idl" \
-o -iname "*.ipdl" \
-o -iname "*.ipdlh" \
-o -iname "*.mm" \) | \
xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}
convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t
convert PRIntn int
convert PRUintn unsigned
convert PRSize size_t
convert PROffset32 int32_t
convert PROffset64 int64_t
convert PRPtrdiff ptrdiff_t
convert PRFloat64 double
2012-08-22 11:56:38 -04:00
David Zbarsky
32bb53999c
Bug 776401 Part 2: Add animation to the layer and then add segments directly to it r=roc
2012-08-20 09:35:42 -04:00
David Zbarsky
d631e1b3a1
Bug 783835 - Compositor needs to know the css property being animated r=roc
2012-08-20 09:35:41 -04:00
Nicolas Silva
047b99ba78
Bug 782372 - Splits ImageLayers.h into ImageLayers.h ImageContainer.h and ImageTypes.h, r=bgirard
2012-08-19 15:33:25 -04:00
Chris Lord
cfe2b98a1f
Bug 775431 - Make MOZ_DUMP_PAINT_LIST output terminal-friendly. r=mattwoodrow
...
Only output in HTML if we're dumping to a file, otherwise output as it did
before the HTML output change was made.
2012-08-07 18:57:26 +01:00
David Zbarsky
a2c20d2493
Bug 706179 Part 3: Turn on the use of scaling for layers in FrameLayerBuilder r=mattwoodrow
2012-08-03 14:29:22 -07:00
David Zbarsky
1ab8257975
Bug 706179 Part 1: Add support for animations to the Layers API r=roc, dbaron, cjones
2012-07-31 10:28:20 -07:00
David Zbarsky
1e9fefd64e
Bug 706179 Part 2: Add a BaseTransform and scaling to layers, r=roc, cjones
2012-07-30 19:20:00 -07:00
Mark Finkle
70a01196ec
Backout 169ff207ed19, a34baed70c1b, f9ccdd490bd7, 39550ed860e6, 2194a2dd66b2, 908eb2e26843, a76e0a267f26 due to mobile viewport bustage (bug 778580)
2012-07-30 14:36:12 -04:00
Aryeh Gregor
e806eeab4f
Bug 777292 part 2 - Change all nsnull to nullptr
2012-07-30 17:20:58 +03:00
David Zbarsky
a656d3adfe
Bug 778496 - Layer should store ComputedTimingFunction directly rather than as a pointer r=roc
2012-07-29 18:59:26 -07:00
David Zbarsky
9bf8a70491
Bug 706179 Part 2: Add a BaseTransform to layers r=roc
2012-07-27 13:23:45 -07:00
David Zbarsky
12752872fe
Bug 706179: Add support for animations to the Layers API r=roc, dbaron, cjones
2012-07-27 13:23:44 -07:00
Ed Morley
be8bf4beae
Backout 1244b8a8e57a (bug 755084), 32d16d0f87c9 (bug 706179), 8548e016d4a9 (bug 768440), 697f5b87eae9 (bug 768440), 808fc2bd4e8c (bug 755084), 54b1484cd125 (bug 755084), 876726b632c0 (bug 706179) for xul android R3 failures
2012-07-25 16:37:04 +01:00
David Zbarsky
d29cc0cf63
Bug 706179 Part 2: Add a BaseTransform to layers to return the layer's transform without scaling applied r=roc
2012-07-25 01:48:10 -07:00
David Zbarsky
2008ff368b
Bug 706179: Add support for animations to the Layers API r=roc, dbaron, cjones
2012-07-25 01:48:09 -07:00
Matt Brubeck
2e41f92cb5
Back out f4f5189b1d0c, 3b4f0606c547, b8a5a1ab8a5f, 5078933d6954, 7e0260c45de9 (bug 768440, bug 755084, bug 706179) because of reftest failures
2012-07-23 20:25:51 -07:00
David Zbarsky
dfd3e3d5ba
Bug 706179: Add support for animations to the Layers API r=roc, dbaron, cjones
2012-07-23 17:34:22 -07:00
Chris Jones
ba57040674
Bug 745148, part 7: Create a RefLayer type to temporarily contain a foreign layer subtree during composition. r=BenWa sr=roc
2012-07-17 16:59:45 -07:00
Nicolas Silva
1ada2b604f
Bug 598868: Add support for pushing video frames directly to the compositor thread, bypassing the content thread. r=cjones
2012-07-13 15:38:09 -04:00
Nicolas Silva
dc904caff5
Bug 769294 - Fix crash when trying to dump layers in the console. r=joedrew
2012-06-28 11:23:40 -04:00
Nicholas Cameron
ec4082e8bb
Bug 768079; mask layers force an intermediate surface for their containers. r=roc
2012-06-27 08:06:32 +12:00
Nicholas Cameron
03e8305815
Bug 757346; mask image format stuff - use A8 textures (except DX10) and some small, misc fixes. r=roc
2012-06-26 14:43:31 +12:00
Nicholas Cameron
dde00bf60b
Bug 757347; changes to FrameLayerBuilder. r=roc
2012-06-26 14:43:30 +12:00
Nicholas Cameron
549b63d97d
Back out bug 757346
...
--HG--
extra : rebase_source : 8a07c2c56ca9dbc165012b679d421435cc886c2c
2012-06-26 10:54:05 +12:00
Nicholas Cameron
aae4ecb5d0
Bug 757346; mask image format stuff - use A8 textures (except DX10) and some small, misc fixes. r=roc
2012-06-26 09:44:41 +12:00
Nicholas Cameron
6f0ff4bb34
Bug 757347; changes to FrameLayerBuilder. r=roc
2012-06-26 09:44:41 +12:00
Gervase Markham
ca171eec44
Bug 716478 - update licence to MPL 2.
2012-05-21 12:12:37 +01:00
Nicholas Cameron
06d16ddac0
Bug 716439; creating mask layers. r=roc
2012-02-08 11:27:44 +13:00
Nicholas Cameron
c4f07f19a1
Bug 716439; mask layer - member, getter, setter, dumping. r=roc
2012-01-18 14:35:49 +13:00
Patrick Wong
30fd6e9e6a
Bug 745659 - Removed the nsPrintfCString constructor which takes a length and all corresponding instances that call that particular constructor. This is accomplished by removing the length component from the instantiation. r=jlebar
2012-04-24 14:43:00 -04:00
Wes Johnston
2ba46f571f
Backed out changeset f5d6cc2e4726
2012-04-09 10:44:32 -07:00
Wes Johnston
e196e635a6
Bug 740218 - Support transactions in sqlitebridge and use them. r=gcp,rnewman,lucasr
2012-04-09 10:08:37 -07:00
Chris Lord
6538a6eb7e
Bug 739604 - Check if output file is valid before printing. r=mattwoodrow
...
Check that gfxUtils::sDumpPaintFile isn't NULL before calling print functions
in Layers.cpp:WriteSnapshotToDumpFile_internal().
2012-03-28 19:10:22 +01:00
Andreas Gal
726b80aae8
Remove unused and broken tiling code (bug 736716, r=cjones).
2012-03-17 15:22:22 -07:00
Matt Woodrow
bf3005c3f4
Bug 700240 - Print display lists to a file. r=roc,bjacob
2012-03-01 21:26:09 +13:00
Bas Schouten
f987b74374
Bug 715785: Make ImageContainers independent of LayerManagers. r=roc
2012-02-01 03:18:30 +01:00
Jeff Muizelaar
4ac327e933
Bug 696398. Add an api to analyse frame rate. r=ajuma
...
This adds a startFrameTimeRecording() and stopFrameTimeRecording()
to DOMWindowUtils. stopFrameTimeRecording() returns an array of frame times in milliseconds.
2012-01-05 17:40:35 -05:00
Matt Woodrow
807731094a
Bug 688342 - Make nsCanvasRenderingContext2D support Azure backends other than Direct2D. r=Bas
2011-11-03 08:55:03 +13:00
Ehsan Akhgari
2a602a5685
Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
...
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Matt Woodrow
f5bcaad772
Bug 689416 - Stop using intermediate layers to render 3d transforms. r=roc
2011-10-07 10:29:07 +13:00
Matt Woodrow
5725b611f5
Bug 684759 - Part 3a - Sort preserve-3d layers using their z depth at points where they intersect in 2d space. r=roc
2011-10-07 10:23:18 +13:00
Michael Wu
d8e503c38b
Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
...
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Alfred Kayser ext:(%2C%20Ms2ger%20%3Cms2ger%40gmail.com%3E)
944c74ce98
Bug 537223 - Cleanup gfxColor.h; r=jrmuizel
2011-08-25 10:46:01 +02:00
Chris Jones
8786c55e3f
Bug 648484, part 2: Add various helpers, refactor ContainerLayer::SetSpecificAttributes. r=roc
2011-08-09 12:38:26 -07:00
Matt Woodrow
cd05bbfd33
Bug 505115 - Part 7 - Layers support for 3d transforms. r=roc
2011-08-03 15:04:20 +12:00
Matt Woodrow
ba6834dec3
Bug 670573 - Add glTex(Sub)Image2D wrappers that correctly handle stride and alignment. r=derf
2011-07-25 19:32:56 +12:00
Matt Woodrow
071b50617b
Backed out changeset 39fef2383893
2011-07-25 13:18:23 +12:00
Matt Woodrow
0b746c54ed
Bug 670573 - Add glTex(Sub)Image2D wrappers that correctly handle stride and alignment. r=derf
2011-07-25 12:50:00 +12:00
Chris Jones
24f027292c
Back out bug 648484
2011-07-15 11:35:55 -07:00
Chris Jones
7e90855ae8
Bug 648484, part 2: Add various helpers, refactor ContainerLayer::SetSpecificAttributes. r=roc
2011-07-13 22:43:43 -07:00
Matt Woodrow
89e737996c
Bug 656185 - Part 2 - Upload the entire image for PlanarYCbCrImageOGL to a texture and clip using texture coordinates. r=derf
2011-07-05 14:52:00 +12:00
Matt Woodrow
cc66446a05
Back out bug 656185 due to windows compile failures
2011-06-27 15:21:22 +12:00
Matt Woodrow
8aba398b72
Bug 656185 - Part 2 - Handle odd crop offsets correctly with OpenGl. r=derf
2011-06-27 14:32:16 +12:00
Bas Schouten
58d40df2a4
Bug 651858 - Part 3: Add layers API for creating an optimal DrawTarget. r=roc
2011-06-24 19:41:18 +02:00
Robert O'Callahan
7f64e9bccf
Bug 637852. Part 10: Remove mX/YResolution from ThebesLayer. r=joe
...
These are the last vestiges of Layer-based resolution API.
2011-06-23 00:11:28 +12:00
Oleg Romashin
dea57d8792
Bug 660565 - HTML5 HW accelerated video is slow r=roc
...
--HG--
extra : rebase_source : 5a46d17c72caf5ec4afd3f59093be803008c61ec
2011-06-16 12:51:05 +02:00
Robert O'Callahan
ea286efab6
Bug 654950. Fix scissor rect calculations for descendants of container layers with intermediate surfaces. r=bas
2011-05-23 12:27:03 +12:00
Florian Hänel
8e0d9ab286
Bug 628566 - Implement basic tiling of ImageLayerOGL. r=joe
2011-05-19 12:53:02 +02:00
Robert O'Callahan
73b97e72c4
Bug 641426. Part 2: Remove a bunch of direct gfxRect::pos/size usage. r=joe
2011-04-19 15:07:21 +12:00
Oleg Romashin
631800dfd2
Bug 607417 - Part1: position:fixed frames mark layers r=roc
...
--HG--
extra : rebase_source : dbbff8810bafd165a48c34924d98f5c87702ef3f
2011-04-05 23:00:25 -06:00
Matheus Kerschbaum
93480c6366
Bug 639754 - Remove MOZ_IPC checks since IPC is always built now; r=bsmedberg
2011-04-02 19:14:00 -07:00
Matt Woodrow
ca1fbaeed0
Bug 635383 - Part 2 - Share scissoring code between all accelerated backends. r=joe
2011-02-25 20:44:22 +13:00
Robert O'Callahan
2c94778839
Bug 626602. Part 1: Create ReadbackLayer API to enable collection of background pixels in a layer tree. r=bas,sr=cjones
2011-02-16 16:43:30 -06:00
Chris Jones
831b2f174e
Bug 627273, part 4: Basic impl of ImageLayer tiling for basic layers. r=roc,vlad
2011-01-26 00:26:37 -06:00
Chris Jones
c90390e987
Bug 627273, part 1: API for tiling Layers. r=Bas sr=roc
2011-01-26 00:26:37 -06:00
Benjamin Stover
dd38a31a1f
Bug 605618 Part 1: Tag layers with scrollable information r=cjones sr=roc a=blocking-fennec
2011-01-13 09:45:14 -08:00
Chris Jones
3a29ee3337
Bug 622838: Use the right rect-rounding mode to avoid accidentally resampling resolution-scaled ThebesLayer textures. r=jrmuizel a=b
2011-01-08 00:05:35 -05:00
Oleg Romashin
3ae058666d
Bug 607653 - avoid temporary fbos/textures on transformed layers, when possible. r=roc a=approval2.0
2010-11-30 08:02:46 +02:00
Robert O'Callahan
8ad0efd198
Bug 612840. Part 4: Invert the meaning of CONTENT_NO_TEXT_OVER_TRANSPARENT and rename it. r=vlad
2010-12-20 14:26:14 +13:00
Robert O'Callahan
21068b15a9
Bug 612840. Part 1: Remove CONTENT_NO_TEXT flag since it's not really used. Also remove ShouldRetainTransparentSurface and related code; we'll assume that when text is over opaque pixels in an RGBA surface we can always paint it with subpixel AA --- and make it so in later patches. r=vlad
2010-12-20 14:26:13 +13:00
Justin Lebar
43b18d2b18
Backed out changeset a5ec817740f0. a=orange
2010-11-29 09:08:24 -08:00
Oleg Romashin
233ef8a80c
Bug 607653 - avoid temporary fbos/textures on transformed layers, when possible. r=roc a=approval2.0
2010-11-24 11:35:21 +02:00
Dave Townsend
1244f0ae62
Backing out changeset 8fff1c186b30 from bug 607653 due to reftest failures on OSX. a=bustage
2010-11-24 16:19:41 -08:00
Oleg Romashin
a8abb4a458
Bug 607653 - avoid temporary fbos/textures on transformed layers, when possible. r=roc a=approval2.0
2010-11-24 11:35:21 +02:00
Robert O'Callahan
669ff953e8
Bug 602200. Share code to compute effective transforms and opacity, and snap effective transforms. r=bas,sr=vlad,a=blocker
2010-11-08 22:06:15 +13:00
Chris Jones
4b82fba0c3
Fix --disable-libxul bustage from bug 602431 and bug 602428. a=bustage
2010-10-13 18:36:44 -05:00
Chris Jones
b9441008dc
Bug 602428, part 0: Add NSPR layers logging to OGL backend and log ThebesLayer resolution. r=vlad
2010-10-13 17:55:45 -05:00
Chris Jones
08140e03cb
Bug 60431, part 1: Add a ShadowLayer base class. r=roc sr=vlad
2010-10-13 17:55:45 -05:00
Oleg Romashin
7ab9f25f57
Bug 576437 - CreateOffscreenSurface should not silently translate ImageFormat24 into ImageFormat16_565. r=joe a=blocking2.0
2010-09-16 14:34:53 -07:00
Chris Jones
4820da2166
Merge m-c --> cedar
2010-09-08 17:25:30 -05:00
Chris Jones
2aaf1a0c12
Bug 590294, part 2: Add a ContainerLayer attribute FrameMetrics that stores relevant information from layout/ on the root layer. r=roc sr=vlad
2010-09-03 15:10:45 -05:00
Matt Woodrow
ca68b51b78
Bug 589632 - Fix LayerManagerD3D9 debug output r=Bas, a=blocking2.0
2010-09-03 15:50:29 +12:00
Robert O'Callahan
0356f8659e
Bug 579276. Part 3: Change Set/IsOpaqueContent API to a more generic Get/SetContentFlags API. r=cjones,sr=vlad
2010-09-02 21:18:40 +12:00
Bas Schouten
b3e32db8d5
Bug 593268 - Part 1: Expose LayerManager::CreateOptimalSurface. r=vlad sr=roc
2010-09-08 05:27:29 +02:00
Robert O'Callahan
01e41cf67d
Bug 579349. Track the 'drawn region' of content in layers, whhich ignores visibility, and use it to determine which layer a display item should be placed in. r=tnikkel
2010-08-02 15:06:58 +12:00
Chris Jones
b35ebb5f66
Bug 573829, part 1: Refactor ThebesLayerBuffer in preparation for its use in the OGL layers backend. r=roc
...
--HG--
rename : gfx/layers/basic/ThebesLayerBuffer.cpp => gfx/layers/ThebesLayerBuffer.cpp
rename : gfx/layers/basic/ThebesLayerBuffer.h => gfx/layers/ThebesLayerBuffer.h
2010-07-21 13:06:33 -05:00
Chris Jones
544264704f
Bug 567421, part 2: Implement Dump[Self](FILE*) and Log[Self]() methods for layers. r=roc
2010-07-21 13:06:33 -05:00