我正在为计算机和Android开发跨平台的OpenGL游戏。
对于计算机平台,我使用LWJGL:
import static org.lwjgl.opengl.GL20.*;
对于Android平台,我使用:
import static android.opengl.GLES20.*;
我不想创建接口GL并包装这些函数,我不想用不同的导入两次写相同的类。我知道这是可能的,因为Java在启动时会被编译为本机。
答案 0 :(得分:0)
我看到了两个问题的解决方案:
第一个是包装(你不想要的)。并在运行时注入正确的类或实例。
第二个,在编译时使用一些宏预处理或一些脚本来指定您要使用哪个导入,具体取决于目标平台。它可以使编译更复杂,并且您可能必须在开发阶段明确使用org.lwjgl.opengl.GL20.*
。
因此,最简单的方法是创建一个脚本来替换<当目标平台为Android时,/ {> org.lwjgl.opengl.GL20.*
android.opengl.GLES20.*
。