C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18797] OpenGL-내가만든 함수에서는 그리기가 않되요...
진짜초보 [] 1221 읽음    2002-05-23 17:22
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();
}

+ -

관련 글 리스트
18797 OpenGL-내가만든 함수에서는 그리기가 않되요... 진짜초보 1221 2002/05/23
18800     Re:OpenGL-내가만든 함수에서는 그리기가 않되요... 불사새 1180 2002/05/23
18801         Re:Re:OpenGL -- 감사합니다. 진짜초보 791 2002/05/23
61699             소스좀 주세요 머털이 1213 2010/06/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.