2012-05-31 1 views
1

Я занимаюсь разработкой кросс-платформенной игры OpenGL для компьютеров и Android.Как импортировать статические функции с именем класса развертывания?

Для компьютерной платформы я использую LWJGL:

import static org.lwjgl.opengl.GL20.*; 

для Android платформы я использую:

import static android.opengl.GLES20.*; 

Я не хочу создавать интерфейс GL и обернуть эти функции и я не хочу писать два класса с разным импортом. Я знаю, что это возможно, потому что Java скомпилирована в native, когда она запущена.

+6

Java не является интерпретированным языком. –

+0

Я предполагаю, что упаковка будет решением, на которое я бы пошел. Кажется, он наиболее интуитивно понятен и прост в мозге другого разработчика, чем любая конкретная настройка. Хороший вопрос BTW. – Nishant

+0

@JBNizet Я не очень разбираюсь в тонких строках, но вижу http://en.wikipedia.org/wiki/Interpreted_language. Я думаю, что сценарии и интерпретации имеют точную линию – Nishant

ответ

0

Я вижу два решения вашей проблемы:

  • Первый, это обертка (который вы не хотите). И инъекция правильного класса или экземпляра во время выполнения.

  • Во-вторых, используется предварительная обработка макросов или некоторые скрипты во время компиляции, чтобы указать, какой импорт вы хотите использовать в зависимости от целевой платформы. Это может сделать компиляцию более сложной, и вам, вероятно, придется явно использовать org.lwjgl.opengl.GL20.* на этапе разработки.
    Итак, самое простое занятие: создать сценарий для заменыorg.lwjgl.opengl.GL20.* на android.opengl.GLES20.*, когда целевой платформой является Android.

Смежные вопросы