質問の回答を見てやってみたのですが、アプリを開くと終了してしまいました。
エラーも見ましたがよくわかりませんでした。
おかしな点はどこかご指摘お願いします
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:baselineAligned="false"> <com.example.pc632g.senitest.GLView android:id="@+id/GLView" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="メモ" android:onClick="buttonClick" /> </RelativeLayout>
MainActivity.java
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { /** Called when the activity is first created. */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
GLView
import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.content.Context; import android.opengl.GLSurfaceView; import android.util.AttributeSet; import android.util.Log; class GLView extends GLSurfaceView implements GLSurfaceView.Renderer { private static final String TAG = "GLVIEW"; private Cube mCube; /** * コンストラクタ * * @param context Context */ public GLView(Context context) { super(context); setRenderer(this); } public void onDrawFrame(GL10 gl) { Log.i(TAG, "onDrawFrame()"); // 画面クリアの色を設定 gl.glClearColor(0, 0, 1, 1.0f); // 画面をクリア gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); gl.glEnable(GL10.GL_DEPTH_TEST); // モデルビューモードに設定 gl.glMatrixMode(GL10.GL_MODELVIEW); // マトリクスを初期化 gl.glLoadIdentity(); //マトリクスの移動. //描画メソッドの呼び出し。 //それぞれのクラスに描画メソッドをもっているので、GL10のコンテキストを渡して描画を行います. //mTriangle.draw(gl); mCube.draw(gl); } /** * 画面が変更されたときに呼び出されるメソッド. * 1.画面が生成されたとき(onSurfaceCreatedの後) * 2.画面サイズが変わったとき(縦と横で端末が切り替わったとき) */ public void onSurfaceChanged(GL10 gl, int width, int height) { Log.i(TAG, "onSurfaceChanged()"); // GL_CURLL_FACEをDisableにすることで裏面も表示されます // ここをEnableにすると、x or y軸での回転時に裏面が表示されません. // 主に3Dのように裏面の描画を行わないときにEnableにして使います. //gl.glDisable(GL10.GL_CULL_FACE); gl.glEnable(GL10.GL_CULL_FACE); // 頂点の配列の利用を有効にする gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); //テクスチャバッファの配列の利用を有効にする gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); // ビューポートの設定 gl.glViewport(0, 0, width, height); // マトリクスのモードをプロジェクションモードに設定 gl.glMatrixMode(GL10.GL_PROJECTION); // ローカル座標を初期化 gl.glLoadIdentity(); // 画面比(アスペクト比)を計算 float ratio = (float) width / height; // 透視投影に使う値を計算 float size = 0.01f * (float) Math.tan((70.0f / 180.0f / 3.141592f) / 2.0); // 透視投影の設定 gl.glFrustumf(-size, size, -size / ratio, size / ratio, 0.01f, 100.0f); // 平行投影の設定。投資投影では無い場合、こちらを設定 // gl.glOrthof(-1, 1, -1.0f/ratio, 1.0f/ratio, 0.01f, 100.0f); } /** * GLSurfaceViewのRendererが生成された際に呼ばれる */ public void onSurfaceCreated(GL10 gl, EGLConfig config) { Log.i(TAG, "onSurfaceCreated()"); mCube = new Cube(gl, getResources()); } /** * GLSurfaceViewのRendererが破棄された際に呼ばれる */ protected void onDetachedFromWindow() { super.onDetachedFromWindow(); Log.i(TAG, "onDetachedFromWindow()"); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/25 01:54
2017/01/25 02:40
退会済みユーザー
2017/01/25 02:45
2017/01/25 03:34
退会済みユーザー
2017/01/25 03:54
退会済みユーザー
2017/01/25 05:51
2017/01/25 05:59
退会済みユーザー
2017/01/25 06:05
2017/01/25 06:09
退会済みユーザー
2017/01/25 06:17
2017/01/25 06:19
退会済みユーザー
2017/01/25 06:25
2017/01/25 06:28
退会済みユーザー
2017/01/25 06:31
2017/01/25 06:38
退会済みユーザー
2017/01/25 06:43
2017/01/25 06:45
退会済みユーザー
2017/01/25 06:55
2017/01/25 07:00
退会済みユーザー
2017/01/25 07:12
2017/01/25 07:17
退会済みユーザー
2017/01/30 00:48 編集