0
스크린 세이버 미리보기에 문제가 있습니다. 이것은 특정 컬러 (보라색 이미지)에 BG를 지우는 간단한 OpenGL 스크린 세이버입니다. 그것은 전체 화면을 채우기 색상 있어야하며 시운전에 않지만, 미리보기 I는이 참조 :코코아 스크린 세이버 미리보기
일부 코드 :
- (void)initOpengl {
[[openglView openGLContext] makeCurrentContext];
glShadeModel(GL_SMOOTH);
glClearColor(0.5f, 0.3f, 0.8f, 0.5f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
- (void)resize:(NSSize)newSize {
[openglView setFrameSize:newSize];
[[openglView openGLContext] makeCurrentContext];
glViewport(0, 0, (GLsizei)newSize.width, (GLsizei)newSize.height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30.0f, (GLfloat)newSize.width/(GLfloat)newSize.height,
0.1f, 100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
[[openglView openGLContext] update];
[self setNeedsDisplay:YES];
}
- (void)setFrameSize:(NSSize)newSize {
[super setFrameSize:newSize];
[self resize:newSize];
}
- (void)setFrame:(NSRect)frameRect {
[super setFrame:frameRect];
[self resize:frameRect.size];
}
- (void)drawRect:(NSRect)rect {
[super drawRect:rect];
[[openglView openGLContext] makeCurrentContext];
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glFlush();
}
- (void)animateOneFrame {
[self setNeedsDisplay:YES];
}
몇 가지 코드를 보여주십시오. 코드를 보지 않고 어떻게 당신을 도울 수 있습니까? –
누군가 이미이 문제가 있었지만 코드를 파기하지 않고 해결할 수 있습니다 =) – Stormherz