CGMutuablePath和GLPaint

时间:2013-01-29 13:28:12

标签: paint bucket eaglcontext

参考这个问题:OpenGL ES Fill Effect  我正在尝试做同样的事情,但我有自定义UIView,它包含不同的CGMutuablePath,并且只在选定的UIView中启用了绘图。

我已经使用了GLPaint,PaintingView类并将其用作自定义类,甚至可以绘制不同的路径,everthing工作正常。除了我需要填补这些路径。当他的用户想要使用水桶油漆效果。当我使用定义的CG闭合路径时,是否可以使用EAGLContext填充这些路径。我已经尝试过很多方法用CGContextRef填充它,但它总是以“无效的上下文”结束,我想它不可能在单个视图中使用2个不同的上下文。

任何人都可以帮我解决这个问题吗?如何使用EAGLContext填充我的路径?

1 个答案:

答案 0 :(得分:0)

如果没有任何代码/应用程序的实际示例,这里有点难以理解这个问题。但是,似乎你正试图填补一条抚摸的路径。

首先,我不知道为什么你在这里提出两种情况?您是使用CGMutablePaths绘制CGContext,但是您尝试使用EAGLContext填充它们?对于这个问题,这是一个非常遥远的解决方案。 EAGLContext是OpenGL ES(通常是3d东西),CGContext是Quartz 2D。除非你有特殊的理由这样做,否则我不建议在没有适当应用的情况下在一个视图中混合两个上下文。

你说你已经尝试了一切来填补这些路径?这意味着您已尝试CGContextEOFillPathCGContextFillPath?无论如何,这应该适用于CGMutablePaths

// Draw your CGMutablePath

CGContextAddPath(yourcgcontext, yourcgmpath); //Adds a previously created Quartz path. 
CGContextClosePath(yourcgcontext); //Closes and terminates the current path’s subpath.
CGContextClip(yourcgcontext); Modifies the current clipping path.

// Fill a solid or a gradient or an image, that should be clipped to your path.