OpenGL в Android - PullRequest
       1

OpenGL в Android

1 голос
/ 25 мая 2011

Я работаю над движком карты. Я хотел бы позволить пользователю вращать карту. Если я сделаю вращение стандартным рисунком на холсте, это замедлит работу телефона, и фрагменты карты, повернутые стандартным API-интерфейсом холста, будут выглядеть плохо.

Я нашел в Интернете некоторые фреймворки OpenGL для Android. Но никто из них не делает то, что я хочу. Большинство из них не могут использовать стандартные компоненты Android в OpenGL Activity.

Я хочу поместить пользовательский вид, нарисованный OpenGL, в компонент Layout (например, LinearLayout). Таким образом, я могу поместить все (включая макет OpenGL) в Activity. Я уверен, что это можно сделать с помощью стандартного Android OpenGL API. Но ничья с OpenGL слишком сложна для меня.

Есть ли какая-либо инфраструктура OpenGL, позволяющая мне рисовать пользовательское представление OpenGL? Все, что мне нужно, это фреймворк, поддерживающий простое рисование.

Ответы [ 2 ]

3 голосов
/ 17 июля 2011

Это называется GLSurfaceView. В одном из моих проектов у меня есть это:

public static GLView glSurfaceView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    glSurfaceView = new GLView(this);

    setContentView(glSurfaceView);
}

Убедитесь, что созданный вами класс расширяет GLSurfaceView.

public class GLView extends GLSurfaceView 

В классе GLView у вас должно быть это:

private GLRenderer _renderer;
public GLView(Context context) {
    super(context);
    _renderer = new GLRenderer(context);
    setRenderer(_renderer);
}

Класс GLRenderer будет реализовывать GLSurfaceView.Renderer

По крайней мере, это то, о чем я думаю, вы спрашиваете. Если нет, оставьте комментарий ниже, и я постараюсь ответить на него лучше.

0 голосов
/ 24 февраля 2012

Жаль, что вы отказались от OpenGL, я недавно обнаружил это и нахожу его намного лучше, чем при стандартном рисовании. Использование текстур вместо сохранения изображений в качестве растровых объектов позволяет значительно лучше использовать память устройства (особенно на устройствах, предшествующих Honeycomb), и если вы используете ортогональную проекцию, вам не нужно беспокоиться о значительной части фантастических 3D-объектов OpenGL. Кроме того, вам больше не нужно заботиться (столько) о различных разрешениях устройств, чтобы все, что вы выводите на экран, было пропорциональным (вам все равно нужно заботиться о соотношении ширины и высоты, но это намного лучше).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...