0

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

我使用了 GLPaint、PaintingView 类并将其用作自定义类,甚至可以绘制不同的路径,一切正常。除了我也需要填充这些路径。当他的用户想要使用桶油漆效果时。当我使用定义的 CG 闭合路径时,是否可以使用 EAGLContext 填充这些路径。我尝试了多种方式来用 CGContextRef 填充它,但它总是以 "Invalid context" 结束,我想它不可能在单个视图中使用 2 个不同的上下文。

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

4

1 回答 1

0

如果没有您的代码/应用程序的任何实际示例,这里的问题有点难以理解。但是,您似乎正在尝试填充描边路径。

首先,我不知道您为什么在这里建议两个上下文?您正在CGMutablePaths使用 a 进行绘图,CGContext但您正在尝试使用EAGLContext? 这是一个相当牵强的解决方案。EAGLContext是 OpenGL ES(通常是 3d 的东西)并且CGContext是 Quartz 2D。除非您有特定的理由这样做,否则我不建议在没有适当应用的情况下将两种上下文混合在一个视图中。

你说你已经尝试了一切来填补路径?这意味着您已经尝试过CGContextEOFillPathand CGContextFillPath?无论如何,这应该适用于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.
于 2013-02-10T21:15:48.740 回答