Запись портативного JAVA-приложения с помощью JOGL и Android OpenGL

От Microsoft:

Функциональные типы являются типами, данными первоклассным значениям функции, и записаны интервал-> интервал. Они подобны делегату.NET типы, кроме они не имена. Все идентификаторы функции F# могут использоваться в качестве первоклассных значений функции, и стоимость анонимной функции может быть создана с помощью (забава...->...) форма выражения.

10
задан hmp 24 October 2009 в 09:53
поделиться

2 ответа

Android поддерживает OpenGL ES 1.0, который перекрывается с OpenGL 1.3, так что это должно быть возможно, но это не так просто, просто заменить файлы jar во время выполнения.

Это хорошая идея. постарайтесь повторно использовать как можно больше вашего приложения на обеих платформах. В любом случае, как правило, рекомендуется изолировать остальной код от внешних зависимостей, таких как OpenGL, даже если вам специально не нужна поддержка OpenGL ES. Вы никогда не знаете, на какой API / платформу вы, возможно, захотите перенести свое приложение в будущем.

Доступны 2 варианта.

Первый - скрыть реализацию OpenGL за интерфейсом, который остальная часть вашего приложения использует, а затем предоставляет отдельные реализации Jogl и Android. В зависимости от того, на какой платформе вы работаете, вы можете выбрать создание экземпляра правильной реализации во время выполнения с использованием фабричного шаблона.

Поскольку OpenGL ES и OpenGL очень похожи, усилия, необходимые для поддержания этого, не должны быть слишком высокими, если вы придерживаетесь общие функции.

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

Внизу страницы немного говорится о профилях: http://kenai.com/projects/jogl/pages/FAQ

Профили позволяют писать приложения Java таким образом, чтобы обеспечить совместимость с несколькими версиями OpenGL одновременно. Поскольку OpenGL ES (GL для встроенных систем) имеет перекрывающуюся функциональность с самим OpenGL, это открыло возможность добавлять даже профили, которые объединяют настольные и встроенные реализации.

Возможно, вы захотите прочитать это http: // michael-bien. com / mbien / entry / jogl_2_opengl_profiles_explained для получения дополнительной информации о профилях.

com / projects / jogl / pages / FAQ

Профили позволяют писать приложения Java таким образом, чтобы обеспечить совместимость с несколькими версиями OpenGL одновременно. Поскольку OpenGL ES (GL для встроенных систем) имеет перекрывающуюся функциональность с самим OpenGL, это открыло возможность добавлять даже профили, которые объединяют настольные и встроенные реализации.

Возможно, вы захотите прочитать это http: // michael-bien. com / mbien / entry / jogl_2_opengl_profiles_explained для получения дополнительной информации о профилях.

com / projects / jogl / pages / FAQ

Профили позволяют писать приложения Java таким образом, чтобы обеспечить совместимость с несколькими версиями OpenGL одновременно. Поскольку OpenGL ES (GL для встроенных систем) имеет перекрывающуюся функциональность с самим OpenGL, это открыло возможность добавлять даже профили, которые объединяют настольные и встроенные реализации.

Возможно, вы захотите прочитать это http: // michael-bien. com / mbien / entry / jogl_2_opengl_profiles_explained для получения дополнительной информации о профилях.

11
ответ дан 3 December 2019 в 21:21
поделиться

На самом деле существует небольшая разница между java3d и android opengl api. Первый java3d - это абстракция более высокого уровня в 3D. И даже если бы вы использовали что-то вроде JOGL, в api были бы некоторые различия. Лучше всего было бы абстрагироваться от фактической реализации трехмерного рисования в базе кода, вы могли бы поделиться остальной логикой, но затем иметь специальный код платформы для обработки opengl / 3d-рисования.

1
ответ дан 3 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: