2012-05-31 1 views
0

"핑거 드로잉 앱"을하고 있습니다. 저는 Apple의 예를 사용하고 있습니다 [1].EAGLContext에서 UIImage를 그리는 방법은 무엇입니까?

하지만 실행 취소 옵션을 추가하고 싶습니다. 이를 위해, 앱이 터치 이벤트의 끝을 처리 할 때마다 이미지에 EAGLContext 콘텐츠를 저장합니다.

문제는 내가 folowing 방법에 마지막으로 저장 한 이미지를 그릴 할 때 제공 :

-(void)undoButtonClicked { 
if([savedImagesArray count]>0){ 
      UIImage *image = [savedImages lastObject]; 
      [savedImagesArray removeLastObject]; 
      [image drawInRect:self.frame]; 
} 

}

을하지만 이미지가 그려지지 않습니다 말한다 콘솔 출력이있다 :

<Error>: CGContextRestoreGState: invalid context 0x0 

나는 그것이 문맥에 문제가 있다고 생각하지만, 나는 그것을 알아낼 수 없다.

감사

당신이 그것을 호출하고있는 시점에서
+0

여기에 OpenGL ES 컨텍스트가 들어 있습니까? 위에 표시된 오류는 Core Graphics 컨텍스트에 대한 것입니다. –

답변

0

, 아니 현재 컨텍스트가 없습니다. drawRect:을 호출하기 전에 새 컨텍스트가 생성되고 드로잉 사이클 마지막에 처리됩니다. 컨텍스트가없는 경우 drawInRect:으로 전화를 걸 수 없습니다.

보기에서 오래된 이미지를 추적해서는 안됩니다. 그것은 컨트롤러 기능입니다. 실행 취소를 클릭하면 컨트롤러는 올바른 이미지를 뷰에 전달해야하며 다음 번에 drawRect:이 호출 될 때 뷰가 다시 그려집니다.