|
TForm1클래스 밖에서 호출했기때문에 아무런 변화도 없는겁니다. 내부에서 호출되도록 바꿔주세요
void Cta_maindraw(void)를
void TForm1::Cta_maindraw(void)으로 하시고
TForm1의 privete나 public에 함수 선언해 주시와요...
진짜초보 님이 쓰신 글 :
: opengl 콤포넌트를 받아서 폼에 올리고 셈플 파일의 일부를 그대로 가지고 와서 조금 수정한뒤
: 컴파일 하면 정상적으로 작동 합니다. (화면에 정육면체가 나오는 거거든요)
: 그런데 내가 만든 함수에서 그리면 화면에 나오지를 않아요.
:
: void __fastcall TForm1::openglpaint(TObject *Sender)
: {
: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
: glPushMatrix();
: glTranslated(0.0, 0.0, -5.0);
: glRotatef(RotX, 1.0, 0.0, 0.0);
: glRotatef(RotY, 0.0, 1.0, 0.0);
: glRotatef(RotZ, 0.0, 0.0, 1.0);
:
: glBegin(GL_POLYGON);
: glColor3f(0.0,0.0,1.0);
: glVertex3f( 1.0, 1.0, 1.0);
: glVertex3f( -1.0, 1.0, 1.0);
: glVertex3f( -1.0, -1.0, 1.0);
: glVertex3f( 1.0, -1.0, 1.0);
: glEnd();
: .
: .
: .
: glPopMatrix();
: }
: 이렇게 판넬 이벤트를 만들어서 그속에서 그리면 나오는데요,
:
: void Cta_maindraw(void)
: {
: .
: .
: .
: }
: 이렇게 내가 함수를 만들어서 내용을 똑같이 코딩해도 되지를 않아요.
: 코맨드 버튼을 누르면 내가 만든 함수를 호출해서 화면에 그려지게 하려고 그러그던요..
: 물론 판넬 이벤트 함수속에서 그리면 프로그램 실행과 동시에 그려져서 나옵니다.
:
: 누가 아시는 분 좀 도와 주세요...
:
: 참고로 openGL판넬 콤포넌트는 이곳의 C++builder -> Components 에 195번(박정모님) 을
: 다운 받아서 사용 했고요
: 판넬 초기화 함수는 아래와 같습니다.
:
: void __fastcall TForm1::openglinit(TObject *Sender)
: {
: glViewport(0,0,(GLsizei)OpenGLPanel1->Width,(GLsizei)OpenGLPanel1->Height);
: glMatrixMode(GL_PROJECTION);
: glLoadIdentity();
: if ( OpenGLPanel1->Height==0)
: gluPerspective(45, (GLdouble)OpenGLPanel1->Width, 1.0, 2000.0);
: else
: gluPerspective(45, (GLdouble)OpenGLPanel1->Width/
: (GLdouble)OpenGLPanel1->Height,1.0, 2000.0);
: glMatrixMode(GL_MODELVIEW);
: glLoadIdentity();
: glEnable(GL_DEPTH_TEST);
: glClearColor(0.0,0.0,0.0,1.0);
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::openglresize(TObject *Sender)
: {
: glViewport(0,0,(GLsizei)OpenGLPanel1->Width,(GLsizei)OpenGLPanel1->Height);
: glMatrixMode(GL_PROJECTION);
: glLoadIdentity();
:
: if ( OpenGLPanel1->Height==0)
: gluPerspective(45, (GLdouble)OpenGLPanel1->Width, 1.0, 2000.0);
: else
: gluPerspective(45, (GLdouble)OpenGLPanel1->Width/
: (GLdouble)OpenGLPanel1->Height,1.0, 2000.0);
:
: glMatrixMode(GL_MODELVIEW);
: glLoadIdentity();
: }
:
|