Форум программистов, компьютерный форум CyberForum.ru

Программирование мобильных систем

Войти
Регистрация
Восстановить пароль
 
Donny322
0 / 0 / 0
Регистрация: 21.06.2015
Сообщений: 1
#1

Падает программа при отрисовке графики в opengl под android - Программирование

21.06.2015, 01:32. Просмотров 340. Ответов 0
Метки нет (Все метки)

Вчера в целях изучения opengl написал приложение, которое создает 3-х мерный куб, а также вращает его в ответ на касания.
Сегодня модернизировал программу, в следствии чего она просто начала вылетать (не ошибка, а просто выключается эмулятор, на реальном устройстве просто закрывается приложение без каких-либо уведомлений).

Вернул всё к тому моменту, когда работало. Но эмулятор продолжает падать.
Код Activity:
Java
1
2
3
4
5
6
7
8
9
private GLSurfaceView mTestHarness;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTestHarness = new GLSurfaceView(this);
        mTestHarness.setEGLConfigChooser(false);
        mTestHarness.setRenderer(new CubeRenderer());
        setContentView(mTestHarness);
    }
Сам инициализация buffer'ов:
Java
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
ByteBuffer vbb = ByteBuffer.allocateDirect(8 * 3 * 4);
        vbb.order(ByteOrder.nativeOrder());
        mFVertexBuffer = vbb.asFloatBuffer();
 
        ByteBuffer ibb = ByteBuffer.allocateDirect(36 * 2);
        ibb.order(ByteOrder.nativeOrder());
        mIndexBuffer = ibb.asShortBuffer();
//вершины
        float[] coords = { -0.5f, 0.5f, 0.5f, // 0
                -0.5f, 0.5f, -0.5f, // 1
                0.5f, 0.5f, -0.5f, // 2
                0.5f, 0.5f, 0.5f, // 3
                -0.5f, -0.5f, 0.5f, // 4
                -0.5f, -0.5f, -0.5f, // 5
                0.5f, -0.5f, -0.5f, // 6
                0.5f, -0.5f, 0.5f }; // 7
 
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 3; j++) {
                mFVertexBuffer.put(coords[i * 3 + j]);
            }
        }
//Порядок отрисовки треугольников
        short[] myIndecesArray = { 0, 1, 2, 0, 3, 2, 0, 4, 5, 5, 0, 1, 4, 7, 5,
                5, 7, 6, 6, 5, 1, 1, 6, 2, 3, 2, 6, 3, 7, 6, 3, 4, 0, 4, 7, 3 };
        for (int i = 0; i < 36; i++) {
            mIndexBuffer.put(myIndecesArray[i]);
        }
        mFVertexBuffer.position(0);
        mIndexBuffer.position(0);
Метод draw:
Java
1
2
3
4
5
6
7
8
@Override
    protected void draw(GL10 gl) {
 
        gl.glColor4f(1.0f, 0, 0, 0.5f);
        gl.glVertexPointer(8, GL10.GL_FLOAT, 0, mVertexBuffer);
        gl.glDrawElements(GL10.GL_TRIANGLES, 36, GL10.GL_UNSIGNED_SHORT,
                mIndexBuffer);
    }
Если уменьшить количество вершин до 4, а длину массива, по которому рисуются треугольники соответственно до 6, то всё прекрасно работает, но с 6+ вершинами уже всё валится.
В чем может быть проблема? Долго пытался найти решение, но безуспешно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2015, 01:32     Падает программа при отрисовке графики в opengl под android
Посмотрите здесь:
Android Ищу уроки по opengl под android
При запуске новой деятельности вылетает с ошибкой (программа легкая для тех, кто программирует под android) Android
Первая программа под Android Xamarin
Программа для написания карточной игры под Android Android
Первая программа под Android в Netbeans - найти ошибку в коде Android
Программа падает при попытке задать текст TextView в диалоговом окне Android
Android OpenGL наложение текстуры, падает приложение
Android Почта под Android: выбрасывается исключение при создании объекта класса URLName
Android GLES 2 ошибка при отрисовке квадрата
Как можно портировать приложение из под iOS под Android? Android
Android Как рисовать графики на Android?
Android OpenGL (Android)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru