<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fan&#039;s blog &#187; Graph</title>
	<atom:link href="http://fkpwolf.net/category/graph/feed/" rel="self" type="application/rss+xml" />
	<link>http://fkpwolf.net</link>
	<description>无为而无不为</description>
	<lastBuildDate>Tue, 31 Jan 2012 15:15:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Android的“最近应用对话框”</title>
		<link>http://fkpwolf.net/2011/01/09/android-recent-application-dialog/</link>
		<comments>http://fkpwolf.net/2011/01/09/android-recent-application-dialog/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 11:08:55 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[Graph]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http:///?p=877</guid>
		<description><![CDATA[这个对话框会列出应用的图标，当用小球把焦点移到某个图标时，这个图标会有种“光晕”的效果，如下图所示： 刚看到时想要如何画呢：确定图片的边界然后画上一条曲线？把放大后的图片和原来的图片叠加？模糊的边角看上去也很cool&#8230; 找一通后发现对话框的代码位置：$Droid_Src/frameworks/base/policy/src/com/android/internal/policy/impl/com/android/internal/policy/impl，图片处理的代码为IconUtilities.java。图简便就地使用ApiDemo里面的代码来做个小例子，主要代码如下。显示结果在上面的图片中。 int[] xy = new int[2]; Paint mBlurPaint = new Paint(); final float density = mDisplayMetrics.density; final float blurPx = 5 * density; mBlurPaint.setMaskFilter(new BlurMaskFilter(blurPx, BlurMaskFilter.Blur.NORMAL)); Bitmap mask = mBitmap.extractAlpha(mBlurPaint, xy); mGlowColorFocusedPaint = new Paint(); mGlowColorFocusedPaint.setColor(0xffff8e00); mGlowColorFocusedPaint.setMaskFilter(TableMaskFilter.CreateClipTable(0, 30)); canvas.drawBitmap(mask, 10, y, mGlowColorFocusedPaint); canvas.drawBitmap(mBitmap, 10-xy[0], y-xy[1], new Paint()); 上面TableMaskFilter在android定义为hidden，所以不能在自己的项目中用。我找个一个方法：在自己的project中重新定义一个同名同package的脚手架类，使上面代码编译通过即可。这个方法跟iPhone上面一样。 package android.graphics; public class TableMaskFilter2 [...]]]></description>
			<content:encoded><![CDATA[<p>这个对话框会列出应用的图标，当用小球把焦点移到某个图标时，这个图标会有种“光晕”的效果，如下图所示：</p>
<p><a href="http://fkpwolf.net/WordPress/wp-content/uploads/2011/01/device111.png"><img class="alignnone size-full wp-image-878" title="device111" src="http://fkpwolf.net/WordPress/wp-content/uploads/2011/01/device111.png" alt="" width="320" height="480" /></a></p>
<p>刚看到时想要如何画呢：确定图片的边界然后画上一条曲线？把放大后的图片和原来的图片叠加？模糊的边角看上去也很cool&#8230;</p>
<p>找一通后发现对话框的代码位置：$Droid_Src/frameworks/base/policy/src/com/android/internal/policy/impl/com/android/internal/policy/impl，图片处理的代码为IconUtilities.java。图简便就地使用ApiDemo里面的代码来做个小例子，主要代码如下。显示结果在上面的图片中。</p>
<pre class="brush:java">int[] xy = new int[2];
Paint mBlurPaint = new Paint();
final float density = mDisplayMetrics.density;
final float blurPx = 5 * density;
mBlurPaint.setMaskFilter(new BlurMaskFilter(blurPx, BlurMaskFilter.Blur.NORMAL));
Bitmap mask = mBitmap.extractAlpha(mBlurPaint, xy);

mGlowColorFocusedPaint = new Paint();
mGlowColorFocusedPaint.setColor(0xffff8e00);
mGlowColorFocusedPaint.setMaskFilter(TableMaskFilter.CreateClipTable(0, 30));
canvas.drawBitmap(mask, 10, y, mGlowColorFocusedPaint);
canvas.drawBitmap(mBitmap, 10-xy[0], y-xy[1], new Paint());</pre>
<p>上面TableMaskFilter在android定义为hidden，所以不能在自己的项目中用。我找个一个方法：在自己的project中重新定义一个同名同package的脚手架类，使上面代码编译通过即可。这个方法跟iPhone上面一样。</p>
<pre class="brush:java">package android.graphics;

public class TableMaskFilter2 extends MaskFilter {

public TableMaskFilter2(byte[] table) {

}

public static TableMaskFilter2 CreateClipTable(int min, int max) {
return null;
}

public static TableMaskFilter2 CreateGammaTable(float gamma) {
return null;
}
}</pre>
<p>代码很简单，和Photoshop的一些滤镜有点像&#8230;&#8230; 但是后面的原理现在还不清楚。</p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2011/01/09/android-recent-application-dialog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Mac OS X上编译Clutter</title>
		<link>http://fkpwolf.net/2010/11/01/compile-clutter-on-mac-osx/</link>
		<comments>http://fkpwolf.net/2010/11/01/compile-clutter-on-mac-osx/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 05:05:53 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[Graph]]></category>

		<guid isPermaLink="false">http:///?p=840</guid>
		<description><![CDATA[在MacPorts上已经有Clutter，但是编译和链接tests里面的c文件时报错，说是找不到_main的定义。定义在clutter-main.c里面，但是不知道为什么port编译后的库里面找不到这个引用。 于是自己编译。其实参考port的定义就很容易了： ./configure &#8211;with-flavour=osx &#8211;enable-introspection=no &#8211;disable-gtk-doc 这里和port不同的是用的是osx，而port用的是glx。然后make就没有错误了，可能刚开始运行port install clutter时把一些依赖的库比如cairo, mesa都安装了，这次才会这么顺利。 照提示的信息看，osx的这种beckend现在还是实验性的，尝试运行了clutter/tests/interactive，有的有问题，有的没有问题。下面是test-cairo-flowers的截图：(后来发现官方文档对这已经有描述了。。。)]]></description>
			<content:encoded><![CDATA[<p>在MacPorts上已经有Clutter，但是编译和链接tests里面的c文件时报错，说是找不到_main的定义。定义在clutter-main.c里面，但是不知道为什么port编译后的库里面找不到这个引用。</p>
<p>于是自己编译。其实参考port的<a href="http://trac.macports.org/browser/trunk/dports/graphics/clutter/Portfile">定义</a>就很容易了：</p>
<p>./configure &#8211;with-flavour=osx &#8211;enable-introspection=no &#8211;disable-gtk-doc</p>
<p>这里和port不同的是用的是osx，而port用的是glx。然后make就没有错误了，可能刚开始运行port install clutter时把一些依赖的库比如cairo, mesa都安装了，这次才会这么顺利。</p>
<p>照提示的信息看，osx的这种beckend现在还是实验性的，尝试运行了clutter/tests/interactive，有的有问题，有的没有问题。下面是test-cairo-flowers的截图：(后来发现<a href="http://docs.clutter-project.org/docs/clutter/1.3/building-clutter.html">官方文档</a>对这已经有描述了。。。)</p>
<p><a href="http://fkpwolf.net/WordPress/wp-content/uploads/2010/11/clutter.png"><img class="alignnone size-full wp-image-842" title="clutter" src="http://fkpwolf.net/WordPress/wp-content/uploads/2010/11/clutter.png" alt="" width="640" height="502" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2010/11/01/compile-clutter-on-mac-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cairo under Mac os X (Quartz)</title>
		<link>http://fkpwolf.net/2009/08/02/cairo-under-mac-os-x-quartz/</link>
		<comments>http://fkpwolf.net/2009/08/02/cairo-under-mac-os-x-quartz/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 11:31:43 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[Graph]]></category>

		<guid isPermaLink="false">http:///?p=384</guid>
		<description><![CDATA[1) Install Cairo for Mac. You can install it by darwinports. You should change the Portfile to enable cairo for configuration. The file located at /opt/local/var/macports/sources/rsync.macports.org/release/ports/graphics/cairo on my machine. Maybe there is another better way to do it, for example Port Variants. 2) check out the cairo demo code. cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co cairo-demo 3) [...]]]></description>
			<content:encoded><![CDATA[<p>1) Install Cairo for Mac. You can install it by <a href="http://cairo.darwinports.com/" target="_blank">darwinports</a>. You should change the Portfile to enable cairo for configuration. The file located at /opt/local/var/macports/sources/rsync.macports.org/release/ports/graphics/cairo on my machine. Maybe there is another better way to do it, for example <a href="http://guide.macports.org/chunked/development.variants.html" target="_blank">Port Variants</a>.</p>
<p>2) check out the cairo demo code.<br />
<code>cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co cairo-demo<br />
</code><br />
3) Then there is a project named QuartzCaiorTest. Change the main.c to<br />
use the new API</p>
<pre class="brush: c">//surface = cairo_quartz_surface_create(context, width, height);
surface =  cairo_quartz_surface_create_for_cg_context(context, width, height);</pre>
<p>4) run &#8220;make&#8221; within project directory.</p>
<p><img class="alignnone size-full wp-image-388" title="cairo" src="http://fkpwolf.net/WordPress/wp-content/uploads/2009/08/cairo.png" alt="cairo" width="253" height="243" /></p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2009/08/02/cairo-under-mac-os-x-quartz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

