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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Gerbasha
6 / 6 / 1
Регистрация: 04.10.2011
Сообщений: 115
#1

VBO и фоновая загрузка моделей - Программирование Android

30.03.2014, 18:35. Просмотров 622. Ответов 1
Метки нет (Все метки)

Добрый день. Изучаю OpenGl ES на Android. Пытаюсь реализовать загрузку моделей в фонов потоке, чтобы отобразить прогресс бар. Когда загружа модель в основном потоке все нормально, но фонов режиме экран пустой.
Фоновый процесс реализовал так :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class AsyncTaskLoader extends AsyncTask<Void, Integer, Boolean> {
…
    @Override
    protected Boolean doInBackground(Void... voids) {
       for (IAsyncCallback cal : callbacks) {
          cal.workToDo();
       }
       return null;
    }
    @Override
    protected void onPostExecute(Boolean aBoolean) {
       for (IAsyncCallback cal : callbacks) {
          cal.onComplete();
 
       }
       isFistLoaded=false;
       isDopLoaded=false;
       super.onPostExecute(aBoolean);
    }
Модели отобржаю через VBO :
class VertexBufferedObject {

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
31
32
33
34
    static void bufferData(int target, Buffer buf, int size, int bufferId) {
       GLES20.glBindBuffer(target, bufferId);
       GLES20.glBufferData(target, size, buf, GLES20.GL_STATIC_DRAW);
       GLES20.glBindBuffer(target, 0);
    }
    protected void genBuffer() {
       Log.d(TAG, "genBuffer");
       // Second, copy these buffers into OpenGL's memory. After, we don't need to keep the client-side buffers around.
       int bufferSize = textures.size() + 1;
       final int buffers[] = new int[bufferSize];
       GLES20.glGenBuffers(bufferSize, buffers, 0);
       mVertexBufferIdx = buffers[0];
       indexBufferId = new int[2][textures.size()];
       System.arraycopy(buffers, 1, indexBufferId[0], 0, buffers.length - 1);
 
       Log.d(TAG, "buffers ");
       for (int i = 0; i < buffers.length; i++)
          Log.d(TAG, " " + buffers[i]);
 
        bufferedVertex(vertexBuffer, mVertexBufferIdx);
       for (int i = 0; i < indexBufferId[0].length; i++) {
          bufferedIndex(indexTextureMap.get(textures.get(i)), indexBufferId[0][i]);
          indexBufferId[1][i] = indexTextureMap.get(textures.get(i)).capacity();
//        Log.d(TAG, "buffers "+indexBufferId[0][i] +" "+indexBufferId[1][i]);
       }
       indexTextureMap.clear();
       indexTextureMap = null;
       vertexBuffer.limit(0);
       vertexBuffer = null;
    }
    public void compilte() {
       genBuffer();
       loaderComplite = true;
    }
Парсер работает так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
   @Override
    public void workToDo() {
       parse();
    }
 
    @Override
    public void onComplete() {
       Log.d(FileIO.TAG, "onComplete");
       for (String key : keyList) {
          modelList.get(key).compilte();
 
       }loaderComplite = true;
    }
В дебаге прохожу в обомих режимах данные загружаются, и каждая функция проходит без ошибок. Может кто-нибудь подскажет хотя-бы в какую сторону смотреть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 18:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос VBO и фоновая загрузка моделей (Программирование Android):

Фоновая музыка - Программирование Android
Как мне сделать, чтобы у меня проигрывалась музыка на фоне, она не останавливалась бы при переходе в новое activity, и из каждого activity...

Фоновая музыка в приложении - Программирование Android
Добрый день. Я новичок и недавно нашел статью о том, как разработать первую игру. Вроде всё получалось неплохо, но возникла проблема с...

Фоновая музыка в сплэш активити - Программирование Android
Объясните пожалуйста,как сделать,чтобы помимо отображения картинки,звучала так же фоновая музыка? Что нужно дописать в коде?Вот мой код ...

Редактор 3D-моделей - Программирование Android
Какой программой, желательно бесплатной можно пользоваться для создание моделей для OpenGL, то есть для работы с Matrix? Поиск в интернете...

Opengl es: загрузчик 3D моделей - Программирование Android
Всем привет! пытаюсь использовать 3D модели формата (.obj) в приложении, как я пытаюсь это сделать: читаю obj нахожу данные о вершинах,...

Opengl es: вывод 3D моделей - Программирование Android
Всем привет!!!! Пытаюсь разобраться как на экран выводить 3D модели, но почему то не получается. Насколько я понял, единственное отличие...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
snake32
1386 / 1029 / 139
Регистрация: 26.02.2009
Сообщений: 3,822
Записей в блоге: 5
31.03.2014, 01:24 #2
Каждый поток должен иметь свой OpenGL контекст. Которые можно шарить между собой
http://www.gamedev.ru/community/ogl/...multithreading
Наверное в ES есть что-то такое же
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 01:24
Привет! Вот еще темы с ответами:

различие в GPS для различных моделей телефонов - Программирование Android
Добрый вечер. Возможно не совсем корректно назвал тему, тем не менее. Есть задача - написать программу использующую GPS для получения...

Фоновая загрузка изображений - JavaScript
Всем доброго ) У меня вот такая проблема. Уже сделал простую галерею изобр. Система такая - нажимаю на иконку, запускается галерея и...

Фоновая загрузка файла - JavaScript
Как сделать, чтобы при открытие страницы автоматический загружался файл? Пользователь не должен ничего нажимать, просто при открытии файл...

WinForms приложение и фоновая загрузка файлов через WCF - C#
У меня есть отдельный контракт для загрузки файлов. Клиент я создаю, когда пользователь заходит на отдельную форму и нажимает кнопку...


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

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

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