내가 여기서하려고하는 것은 주 활동에서 listview의 항목을 클릭하면 OpenGL 컨텍스트를로드하는 것입니다.목록보기 항목에서 OpenGL로드
외형은 간단합니다. 하지만 실제로 OpenGL 활동과 주 활동을 연결하는 방법을 모르겠습니다. 아무도 나에게 힌트를 줄 수 있니?
감사합니다.
편집 : OpenGLActivity에서
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent launchGL = new Intent(getApplicationContext(), OpenGLActivity.class);
startActivity(launchGL);
}
});
: 주요 활동에서
: 여기에 몇 가지 코드를 추가
public class OpenGLActivity extends Activity {
private GLSurfaceView mGLSurfaceView;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mGLSurfaceView = new GLSurfaceView(this);
// Check if the system supports OpenGL ES 2.0.
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;
if (supportsEs2)
{
// Request an OpenGL ES 2.0 compatible context.
mGLSurfaceView.setEGLContextClientVersion(2);
// Set the renderer to our demo renderer, defined below.
mGLSurfaceView.setRenderer(new MyRenderer());
}
else
{
// This is where you could create an OpenGL ES 1.x compatible
// renderer if you wanted to support both ES 1 and ES 2.
return;
}
setContentView(mGLSurfaceView);
}
}
(실험에 대한 몇 가지 튜토리얼 코드를 사용하여)
오류 메시지 :
07-19 19:59:06.945: E/AndroidRuntime(1451): FATAL EXCEPTION: GLThread 108
07-19 19:59:06.945: E/AndroidRuntime(1451): java.lang.IllegalArgumentException: No configs match configSpec
07-19 19:59:06.945: E/AndroidRuntime(1451): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:863)
07-19 19:59:06.945: E/AndroidRuntime(1451): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
07-19 19:59:06.945: E/AndroidRuntime(1451): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
07-19 19:59:06.945: E/AndroidRuntime(1451): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
그리고 응용 프로그램은 활성화 "호스트 GPU를 사용"하는 에뮬레이터 시도에서 코드를 실행하면
일반보기와 같이 [GLSurfaceView] (http://developer.android.com/reference/android/opengl/GLSurfaceView.html)를 만들고 렌더러를 설정하십시오. –
@MarcinGawel 그래, 근데 내가 여기서 뭘 잘못하고 있는지 모르겠어. 코드 조각을 추가 했어. – Imemmaw
어떤 오류가 발생 했나요? –