public void onDrawFrame( GL10 gl )
 {
     synchronized ( gl )
    {
       try

      {
        gl.glClear( GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT );
        gl.glLoadIdentity();
   
       화면그리기();

       Thread.sleep(10);

        }

       catch(InterruptedException e)
      {
         e.printStackTrace();
      }
   }
 }

 

쓰레드 속도를 조절하기 위해 sleep()함수를 사용하였습니다.

 

실행했을때. 한참동안 반응이 없습니다.................... 터치를 해도 깜깜 무소식이고.

그러다 시간이 지나면 다시 터치가 잘 됩니다.

 

 

또는 thread클래스를 따로 만들어

 requestRender(); 를 사용하여 onDrawFrame()함수를 불러올 수 있게 하였습니다.

 

public synchronized void run()
 {
      while(isRun)
  {
      try
     {
         화면.requestRender();
         Thread.sleep(10);
      }
      catch(InterruptedException e)
     {
       e.printStackTrace();
      }
   
      if(isWait)
     {
        try
       {
          wait();
        }
        catch(Exception e)
       {
          e.printStackTrace();
        }
     }
   }
 }

 

이렇게 하였더니 ...

화면을 띄워줄 떄도 있고.. 띄워주지 않을때까 있습니다.

 

화면을 띄워주지 않을때

log를 찍어보니 쓰레드는 돌아가는데 requestRender()를 통해 onDrawFrame()가 불러지지 않고 있었습니다.

 

첫번째 문제는

터치가 되지 않는것은 Thread.sleep로 인해 touch부분이 쉬고 있는걸까요?

쉬고 있는거 치고는 화면 이미지는 문제없이 잘 그려지고 있는데.....

 

두번째는 문제는

왜 불럿다 안 불럿다 하는걸까요?