2014년 2월 8일 토요일

Android OpenGL - 02 - GLSurfaceView 창 띄우기


우선 초 간단 창 띄우기를 해보자.

이클립스를 켠다.


프로젝트 생성


어플리케이션 이름과 프로젝트 이름, 패기키 설정과, 옵션을 선택 후 

Next -> Next -> Next -> Finish



초 경량 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.example.OpenGL;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLSurfaceView;
import android.opengl.GLSurfaceView.Renderer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity implements Renderer{
    
    GLSurfaceView glView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                             WindowManager.LayoutParams.FLAG_FULLSCREEN);
        
        glView = new GLSurfaceView(this);
        glView.setRenderer(this);
        
        setContentView(glView);
    }
    @Override
    public void onDrawFrame(GL10 gl) {
    }
    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) {
    }
    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    }
}



코드를 설명 하자면 우선 MainActivity를 생성.
GLSurfaceView를 이용하기 위해서는 Renderer를 implements 해주어야 한다.
기존 SurfaceView의 Thread의 역활과 추가적인 역활을 Renderer이 담당한다.


GLSurfaceView glView; 
GLSurfaceView 생성

requestWindowFeature(Window.FEATURE_NO_TITLE); 
타이틀 바를 없애는 기능을 한다.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                             WindowManager.LayoutParams.FLAG_FULLSCREEN); 
전체화면 설정 코드


glView = new GLSurfaceView(this); 
GLSurfaceView 생성자

glView.setRenderer(this); 
GLSurfaceView 랜더러 설정 

setContentView(glView); 
액티비티에 적용

위와 같은 코드로 결고로는 이런 검은 화면이 출력된다. 

댓글 없음:

댓글 쓰기