|
|
| Line 1: |
Line 1: |
| <div id="aoorqadl" style="overflow:auto;height:1px;">[http://www.naacpncnetwork.org/nzrpe/ designer handbag kate replica spade] [http://www.naacpncnetwork.org/dqspqvz/ wholesale replica coach handbag] [http://www.naacpncnetwork.org/uicohwsh/ coach signature replica handbag wholesale] [http://www.naacpncnetwork.org/maxrfq/ aaa replica handbag] [http://www.naacpncnetwork.org/aeafvtw/ aaa chloe handbag replica] [http://www.naacpncnetwork.org/pfsvvrhya/ aaa grade handbag replica] [http://www.naacpncnetwork.org/iuksk/ handbag lv replica wholesale] [http://www.naacpncnetwork.org/mrisc/ hermes handbag replica] [http://www.naacpncnetwork.org/rkesflccj/ cheap replica handbag] [http://www.naacpncnetwork.org/cbmizf/ cheap replica chanel handbag] [http://www.naacpncnetwork.org/inmjs/ cheap replica coach handbag] [http://www.naacpncnetwork.org/xubcc/ cheap wholesale replica handbag] [http://www.naacpncnetwork.org/bbvfpatd/ cheap designer replica handbag wholesale] [http://www.naacpncnetwork.org/jrpbdgkls/ replica chloe handbag] [http://www.naacpncnetwork.org/bndxgv/ chloe handbag paddington replica] [http://www.naacpncnetwork.org/hurdmfzwa/ chloe designer handbag replica] [http://www.naacpncnetwork.org/lajyiwkvp/ fendi replica handbag] [http://www.naacpncnetwork.org/iyvxqw/ fendi and gucci replica handbag] [http://www.naacpncnetwork.org/enievg/ wholesale designer replica handbag] [http://www.naacpncnetwork.org/zydofdkd/ replica designer handbag at wholesale prices] [http://www.naacpncnetwork.org/giunev/ wholesale replica handbag] [http://www.naacpncnetwork.org/kgyuj/ handbag wholesale replica watch] [http://www.naacpncnetwork.org/jdilfpjqx/ wholesale replica lv handbag] [http://www.naacpncnetwork.org/fvkfvmvp/ replica handbag wholesale price] [http://www.naacpncnetwork.org/kouyrc/ replica chanel handbag] [http://www.naacpncnetwork.org/xrisqzjo/ replica designer handbag chanel] [http://www.naacpncnetwork.org/hkuzsz/ discount chanel handbag replica] [http://www.naacpncnetwork.org/rhyfld/ handbag louis replica theda vuitton] [http://www.naacpncnetwork.org/pfvwbjdyy/ handbag louis replica shopping vuitton] [http://www.naacpncnetwork.org/fwnriugs/ bag image louis mirror replica vuitton] [http://www.naacpncnetwork.org/kpcqja/ bag designer diaper replica] [http://www.naacpncnetwork.org/cwomynr/ bag dior replica] [http://www.naacpncnetwork.org/sbcjjxjum/ bag christian dior replica] [http://www.naacpncnetwork.org/coadxfajn/ bag hermes replica] [http://www.naacpncnetwork.org/atkwzq/ bag birkin hermes replica] [http://www.naacpncnetwork.org/dncljzexb/ bag burberry replica] </div><pre>19:20 <@vlad> native theme stuff is ridiculously slow on linux19:20 < roc> vlad: I know. What's your plan?19:20 <@vlad> not sure yet19:20 < roc> Do you remember my plan?19:21 <@vlad> the one that you implemented? or another plan?19:21 < roc> vlad: a speedup plan19:21 <@vlad> render offsceen, recover alpha, composite?19:21 <@vlad> hmm, no19:23 < roc> vlad: whitelist native themes as being "well behaved". A well behaved theme draws the same contents for a given widget type, state and size19:23 <@vlad> hmm, I'm not sure that I heard this plan19:23 <@vlad> and if its well-behaved, we cache or something?19:23 < roc> vlad: then, cache cairo surfaces for widget renderings19:23 < roc> ALSO19:24 < roc> for each widget type+state, keep track of the maximum width and maximum height we've seen rendered19:24 <@vlad> oh, also.. do we really need to recover alpha?19:25 < roc> vlad: yes. GNOME Industrial, for example, uses transparency in the buttons19:25 < roc> also, quite a lot of widget/state combos don't paint anything at all19:25 < roc> apparently19:26 <@vlad> does it use 8-bit transparency or 1-bit transparency?19:26 < roc> for each type+state, remember if we've ever seen 1) anything drawn at all 2) any transparency19:26 < roc> vlad: 1-bit19:26 <@vlad> ok19:26 <@vlad> so for 1-bit19:26 < roc> chromakey?19:26 <@vlad> if we attach a picture to a Pixmap19:26 <@vlad> and clear to fully transparent first19:27 < roc> does it work?19:27 <@vlad> yeah19:27 < roc> sweet19:27 < roc> okay19:27 <@vlad> that should speed things up dramatically19:27 < roc> then for each type+state, remember if we've ever seen 1) anything drawn at all 2) any transparency 3) any translucency19:28 < roc> if we get a request to paint a widget type+state at a size that is smaller than we've already painted in both the horizontal and vertical directions, then we believe it's no more complex than what we've already seen19:28 < roc> oh, we also check for 4) painting of a single solid color19:28 <@pav> roc: ok, i fixed the os2 thing and a similar thing on windows (some errors in the patch)19:28 <@vlad> yeah19:28 < roc> then we can optimize in the obvious ways19:28 <@pav> anything else?19:29 < roc> any theme that does something silly like paint a translucent image for small widget sizes and an opaque one for large sizes will not be marked as "well behaved"19:29 <@vlad> yep19:29 < roc> and we will do the horrible slow thing19:29 <@vlad> that's fine19:29 < roc> yeah19:29 < roc> it is19:29 <@vlad> people who are using those themes are already horrible and slow19:30 < biesi> how do you detect translucency?19:30 < biesi> if all you have is a Pixmap with 1-bit transparency19:30 < roc> paint onto white and paint onto black and analyze19:30 < roc> "paint nothing" and "paint a solid color" are pretty darn common so if we detect those we'll actually end up with something faster than what we have now, I think19:31 < biesi> can that go away with the cairo-using gtk 2.8?19:31 < roc> no19:31 < roc> it can't19:31 < roc> because themes are still allowed to use X calls to draw19:31 < roc> that's the biggie problem</pre>
| | <pre> |
| | 19:20 <@vlad> native theme stuff is ridiculously slow on linux |
| | 19:20 < roc> vlad: I know. What's your plan? |
| | 19:20 <@vlad> not sure yet |
| | 19:20 < roc> Do you remember my plan? |
| | 19:21 <@vlad> the one that you implemented? or another plan? |
| | 19:21 < roc> vlad: a speedup plan |
| | 19:21 <@vlad> render offsceen, recover alpha, composite? |
| | 19:21 <@vlad> hmm, no |
| | 19:23 < roc> vlad: whitelist native themes as being "well behaved". A well |
| | behaved theme draws the same contents for a given widget type, |
| | state and size |
| | 19:23 <@vlad> hmm, I'm not sure that I heard this plan |
| | 19:23 <@vlad> and if its well-behaved, we cache or something? |
| | 19:23 < roc> vlad: then, cache cairo surfaces for widget renderings |
| | 19:23 < roc> ALSO |
| | 19:24 < roc> for each widget type+state, keep track of the maximum width and |
| | maximum height we've seen rendered |
| | 19:24 <@vlad> oh, also.. do we really need to recover alpha? |
| | 19:25 < roc> vlad: yes. GNOME Industrial, for example, uses transparency in the |
| | buttons |
| | 19:25 < roc> also, quite a lot of widget/state combos don't paint anything at |
| | all |
| | 19:25 < roc> apparently |
| | 19:26 <@vlad> does it use 8-bit transparency or 1-bit transparency? |
| | 19:26 < roc> for each type+state, remember if we've ever seen 1) anything drawn |
| | at all 2) any transparency |
| | 19:26 < roc> vlad: 1-bit |
| | 19:26 <@vlad> ok |
| | 19:26 <@vlad> so for 1-bit |
| | 19:26 < roc> chromakey? |
| | 19:26 <@vlad> if we attach a picture to a Pixmap |
| | 19:26 <@vlad> and clear to fully transparent first |
| | 19:27 < roc> does it work? |
| | 19:27 <@vlad> yeah |
| | 19:27 < roc> sweet |
| | 19:27 < roc> okay |
| | 19:27 <@vlad> that should speed things up dramatically |
| | 19:27 < roc> then for each type+state, remember if we've ever seen 1) anything |
| | drawn at all 2) any transparency 3) any translucency |
| | 19:28 < roc> if we get a request to paint a widget type+state at a size that is |
| | smaller than we've already painted in both the horizontal and |
| | vertical directions, then we believe it's no more complex than |
| | what we've already seen |
| | 19:28 < roc> oh, we also check for 4) painting of a single solid color |
| | 19:28 <@pav> roc: ok, i fixed the os2 thing and a similar thing on windows |
| | (some errors in the patch) |
| | 19:28 <@vlad> yeah |
| | 19:28 < roc> then we can optimize in the obvious ways |
| | 19:28 <@pav> anything else? |
| | 19:29 < roc> any theme that does something silly like paint a translucent image |
| | for small widget sizes and an opaque one for large sizes will not |
| | be marked as "well behaved" |
| | 19:29 <@vlad> yep |
| | 19:29 < roc> and we will do the horrible slow thing |
| | 19:29 <@vlad> that's fine |
| | 19:29 < roc> yeah |
| | 19:29 < roc> it is |
| | 19:29 <@vlad> people who are using those themes are already horrible and slow |
| | 19:30 < biesi> how do you detect translucency? |
| | 19:30 < biesi> if all you have is a Pixmap with 1-bit transparency |
| | 19:30 < roc> paint onto white and paint onto black and analyze |
| | 19:30 < roc> "paint nothing" and "paint a solid color" are pretty darn common |
| | so if we detect those we'll actually end up with something faster |
| | than what we have now, I think |
| | 19:31 < biesi> can that go away with the cairo-using gtk 2.8? |
| | 19:31 < roc> no |
| | 19:31 < roc> it can't |
| | 19:31 < roc> because themes are still allowed to use X calls to draw |
| | 19:31 < roc> that's the biggie problem |
| | </pre> |