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

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

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

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

21.06.2015, 01:32. Просмотров 355. Ответов 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+ вершинами уже всё валится.
В чем может быть проблема? Долго пытался найти решение, но безуспешно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2015, 01:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Падает программа при отрисовке графики в opengl под android (Программирование):

Ищу уроки по opengl под android - Программирование Android
Здравствуйте! С друзьями хотим написать игру под android, 2d аркаду (с интересным сюжетом на наш взгляд). Сторонний движок решили не...

При запуске новой деятельности вылетает с ошибкой (программа легкая для тех, кто программирует под android) - Программирование Android
Здравствуйте! Начал недавно изучать программирование под android, реализовал пять деятельностей в программе, при переходе от заставки к...

Программа для написания карточной игры под Android - Программирование Android
Подскажите в какой проге писать карточную игру чтоб потом ее можно было перенести на Android.

Первая программа под Android в Netbeans - найти ошибку в коде - Программирование Android
Всем привет! Ребята, установил эмулятор Android для NetBeans, создал проект, но он создался с ошибками. import android.R; import...

Программа падает при попытке задать текст TextView в диалоговом окне - Программирование Android
Лог: java.lang.IllegalStateException: Could not execute method of the activity at...

OpenGL на Android 4.4 и Android 5.0 - нет текстур - Программирование Android
Всем доброго дня. Пишу 2D игру с использование OpneGL. На устройстве с версией Android 4.4.2 (HTC 626) все текстуры на месте, все...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 01:32
Привет! Вот еще темы с ответами:

OpenGL наложение текстуры, падает приложение - Программирование Android
после того как выполняю gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, uvCoordsBuffer);, метод drawElements крешит приложение с логами, вобще...

Почта под Android: выбрасывается исключение при создании объекта класса URLName - Программирование Android
Всем доброго времени суток. Помогите, плз, разобраться с почтой. Моя программа под Андроид должна лезть на почту, забирать оттуда файлы и...

GLES 2 ошибка при отрисовке квадрата - Программирование Android
Здравствуйте! Никак не пойму, в чем ошибка... В openGL полный чайник и завис на первых же шагах. package com.*.*.render; *** ...

Запуск игры mr.Nom через Android Studio (по книге марио цехнер программирование игр под android) - Программирование Android
Привет всем! Для тех кто читал книгу - в конце 6ой главы мы закончили писать код игры. В книге написано что - игра готова. Но в самих...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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