WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 91940
[GTK] Add GraphicsLayerActor
https://bugs.webkit.org/show_bug.cgi?id=91940
Summary
[GTK] Add GraphicsLayerActor
Joone Hur
Reported
2012-07-22 07:18:41 PDT
GraphicsLayerActor is a ClutterActor, which is owned by GraphicsLayer. It will be used to render composited layers.
Attachments
Proposed Patch
(30.91 KB, patch)
2012-07-23 08:20 PDT
,
Joone Hur
no flags
Details
Formatted Diff
Diff
Proposed Patch2
(31.10 KB, patch)
2012-07-23 09:04 PDT
,
Joone Hur
no flags
Details
Formatted Diff
Diff
Patch that adds GraphicsLayerActor and uses it in GraphicsLayerClutter
(70.60 KB, patch)
2012-08-06 08:42 PDT
,
Rodrigo Moya
no flags
Details
Formatted Diff
Diff
Patch
(34.00 KB, patch)
2012-09-25 07:23 PDT
,
Joone Hur
no flags
Details
Formatted Diff
Diff
Patch
(32.85 KB, patch)
2012-10-07 00:39 PDT
,
Joone Hur
no flags
Details
Formatted Diff
Diff
Patch
(31.38 KB, patch)
2012-12-11 06:03 PST
,
Joone Hur
no flags
Details
Formatted Diff
Diff
Patch
(30.72 KB, patch)
2012-12-11 07:57 PST
,
Joone Hur
no flags
Details
Formatted Diff
Diff
Show Obsolete
(6)
View All
Add attachment
proposed patch, testcase, etc.
Joone Hur
Comment 1
2012-07-23 08:20:06 PDT
Created
attachment 153803
[details]
Proposed Patch
WebKit Review Bot
Comment 2
2012-07-23 08:22:39 PDT
Attachment 153803
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1 Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.h:70: parent_class is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.h:80: graphics_layer_actor_get_type is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:85: graphics_layer_actor_class_init is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:120: graphics_layer_actor_init is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Total errors found: 4 in 4 files If any of these errors are false positives, please file a bug against check-webkit-style.
Joone Hur
Comment 3
2012-07-23 09:04:07 PDT
Created
attachment 153808
[details]
Proposed Patch2
WebKit Review Bot
Comment 4
2012-07-23 09:08:11 PDT
Attachment 153808
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1 Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.h:71: parent_class is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.h:81: graphics_layer_actor_get_type is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:86: graphics_layer_actor_class_init is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:121: graphics_layer_actor_init is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] Total errors found: 4 in 4 files If any of these errors are false positives, please file a bug against check-webkit-style.
Rodrigo Moya
Comment 5
2012-08-06 08:42:41 PDT
Created
attachment 156700
[details]
Patch that adds GraphicsLayerActor and uses it in GraphicsLayerClutter Joone, I have been recently assigned to work on thus, and just learnt about this bug, so here's the patch for adding GraphicsLayerActor that I have prepared. I just had a review from Gustavo, so there are a couple things I need to fix, but I thought it'd be better to let you know about it ASAP, so that we can coordinate this work. This patch has GraphicsLayerActor with the animation bits removed, the basic stuff in GraphicsLayerClutter to use the GraphicsLayerActor instead of ClutterRectangle, and PlatformClutterLayerClient.
Joone Hur
Comment 6
2012-09-25 07:23:28 PDT
Created
attachment 165610
[details]
Patch
Gustavo Noronha (kov)
Comment 7
2012-10-03 06:33:19 PDT
Comment on
attachment 165610
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=165610&action=review
Quick pass on the code, bunch of nits.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:41 > + // Guard against changing size while allocating.
Think this comment is not necessary.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:54 > + gfloat anchorX; > + gfloat anchorY; > + gfloat anchorZ;
We usually try to use regular types where a glib-specific type is not required.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:90 > + GParamSpec* pspec;
Should be declared along with the first time a GParamSpec is created, bellow.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:136 > + priv->scrollX = 0.0; > + priv->scrollY = 0.0; > + > + priv->translateX = 0.0; > + priv->translateY = 0.0; > + > + priv->matrix = 0;
Think we don't need to zero members.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:261 > + gfloat translateX = priv->scrollX + priv->translateX; > + gfloat translateY = priv->scrollY + priv->translateY;
Ditto about the types.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:307 > +static void graphicsLayerActorPick(ClutterActor* actor, const ClutterColor* pick)
What I did recently on webkit-clutter, though I believe not in GraphicsLayerActor was to just call the paint function for picking, since what we want is really to have them be the same.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:473 > + if (!priv->surface) > + g_message("surface is null");
Remove this, turn into an ASSERT or LOG?
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.h:78 > + > + /* padding for future expansion */ > + void (*_padding_0)(void); > + void (*_padding_1)(void); > + void (*_padding_2)(void); > + void (*_padding_3)(void); > + void (*_padding_4)(void);
Padding is not really needed given we're using GrahicsLayerActor as a private object, it can change ABI for now.
Joone Hur
Comment 8
2012-10-07 00:33:37 PDT
Comment on
attachment 165610
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=165610&action=review
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:41 >> + // Guard against changing size while allocating. > > Think this comment is not necessary.
Done.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:54 >> + gfloat anchorZ; > > We usually try to use regular types where a glib-specific type is not required.
Done.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:90 >> + GParamSpec* pspec; > > Should be declared along with the first time a GParamSpec is created, bellow.
Done.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:136 >> + priv->matrix = 0; > > Think we don't need to zero members.
Done.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:261 >> + gfloat translateY = priv->scrollY + priv->translateY; > > Ditto about the types.
Done.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:307 >> +static void graphicsLayerActorPick(ClutterActor* actor, const ClutterColor* pick) > > What I did recently on webkit-clutter, though I believe not in GraphicsLayerActor was to just call the paint function for picking, since what we want is really to have them be the same.
I think we don't need to handle the pick signal in GraphicsLayerActor so I will remove this callback function.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:473 >> + g_message("surface is null"); > > Remove this, turn into an ASSERT or LOG?
ASSERT would be good.
>> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.h:78 >> + void (*_padding_4)(void); > > Padding is not really needed given we're using GrahicsLayerActor as a private object, it can change ABI for now.
Done.
Joone Hur
Comment 9
2012-10-07 00:39:24 PDT
Created
attachment 167473
[details]
Patch
WebKit Review Bot
Comment 10
2012-10-07 00:42:44 PDT
Attachment 167473
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1 Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:100: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:101: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:102: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:109: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:110: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:111: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:177: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:224: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:226: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:227: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:229: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:230: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:231: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:232: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:233: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:235: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:291: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:292: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:363: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:364: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:365: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:366: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 22 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
Joone Hur
Comment 11
2012-12-11 06:03:20 PST
Created
attachment 178788
[details]
Patch
Gustavo Noronha (kov)
Comment 12
2012-12-11 06:27:37 PST
Comment on
attachment 178788
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=178788&action=review
LGTM
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:203 > + // FIXME: some pages make us create very big layers, which > + // exceeds cairo's limits, check for that here. > + if (textureBox.x2 > MAX_IMAGE_SIZE) { > + g_warning("Layer %s has a width that exceeds cairo's limits: %.2f", clutter_actor_get_name(self), textureBox.x2); > + textureBox.x2 = MAX_IMAGE_SIZE; > + } > + > + if (textureBox.y2 > MAX_IMAGE_SIZE) { > + g_warning("Layer %s has a height that exceeds cairo's limits: %.2f", clutter_actor_get_name(self), textureBox.y2); > + textureBox.y2 = MAX_IMAGE_SIZE; > + }
This workaround was added by me, but I believe this was only being the case because of a bug that was fixed afterwards, since I never saw this warning again. I'd suggest removing it and we can readd this workaround if needed (though I believe it won't be).
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:349 > + priv->texture = clutter_cairo_texture_new(width > 0 ? width : 1, height > 0 ? height : 1);
We should port this to use the new Clutter content/canvas API.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:357 > +static void graphicsLayerActorDrawLayerContents(ClutterActor* actor, GraphicsContext& context)
This is called drawLayerContents in WebKit Clutter, since it's not an exported function I don't see a reason to have the prefix, better keep it named the same as in the original, so it's easier to move forward.
> Source/WebCore/platform/graphics/clutter/GraphicsLayerActor.cpp:409 > +/* > + * public API > + */
It's not really public in the usual sense, so I'd remove this comment. Also, there are some exported symbols, such as New, that are not bellow this comment, so it's misleading.
Joone Hur
Comment 13
2012-12-11 07:57:32 PST
Created
attachment 178806
[details]
Patch
Joone Hur
Comment 14
2012-12-11 08:01:22 PST
Comment on
attachment 178806
[details]
Patch I got r+ with the previous patch from kov
WebKit Review Bot
Comment 15
2012-12-11 08:21:11 PST
Comment on
attachment 178806
[details]
Patch Clearing flags on attachment: 178806 Committed
r137319
: <
http://trac.webkit.org/changeset/137319
>
WebKit Review Bot
Comment 16
2012-12-11 08:21:16 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug