Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如果我只使用OpenGLES1.x调用构建和链接OpenGL应用程序,它还能工作吗?_Linux_Iphone_Opengl_Opengl Es_Sdl - Fatal编程技术网

Linux 如果我只使用OpenGLES1.x调用构建和链接OpenGL应用程序,它还能工作吗?

Linux 如果我只使用OpenGLES1.x调用构建和链接OpenGL应用程序,它还能工作吗?,linux,iphone,opengl,opengl-es,sdl,Linux,Iphone,Opengl,Opengl Es,Sdl,我正在编写一个OpenGL游戏,希望它能同时适用于linux和iphoneOS,我基本上希望能够使用OpenGL ES 1.5头文件进行构建,并在我的linux桌面上运行它。我能做这个吗?IE,我只想使用OpenGL和OpenGL ES之间常见的API调用子集 执行上述操作并使用系统中的普通libGL.a进行链接,可以获得我的屏幕,但除了更改场景背景颜色之外,我似乎什么也做不了。我完全做到了这一点,而且效果很好 有许多OpenGL | ES扩展在标准OpenGL上不可用,但在低规格平台上很好。g

我正在编写一个OpenGL游戏,希望它能同时适用于linux和iphoneOS,我基本上希望能够使用OpenGL ES 1.5头文件进行构建,并在我的linux桌面上运行它。我能做这个吗?IE,我只想使用OpenGL和OpenGL ES之间常见的API调用子集


执行上述操作并使用系统中的普通libGL.a进行链接,可以获得我的屏幕,但除了更改场景背景颜色之外,我似乎什么也做不了。

我完全做到了这一点,而且效果很好

有许多OpenGL | ES扩展在标准OpenGL上不可用,但在低规格平台上很好。glDrawTexImage就是这样一个扩展。不过,用一手的桌面OpenGL调用来模拟这些扩展并不是什么大事

此外,OpenGL支持大多数入口点的定点数据格式。以glClearColorx为例。桌面OpenGL无法使用这些工具,因此如果要使用它们,必须编写包装器。如果您也以这种格式存储顶点数据,则需要做更多的工作


哦,请注意OpenGL | ES并没有随glu库一起提供。你可以在桌面上使用它,但是如果你这样做了,你以后必须重新实现它们(参见关于gluLookAt和gluUnproject的100个问题)

没有OpenGL ES 1.5这样的东西。你是说1.1

还有,你怎么能买到窗户?这是特定于平台的

在任何情况下,您仍然应该根据与要链接的库相对应的头进行编译。您不确定标头设置了什么(例如,在windows上,您不关心它,但仍然在其中指定了调用约定)

还有一些调用在2之间映射不好。例如,仅在GL中使用双精度的API在GLE中是浮动的(来自ES规范):

双精度仅适用于命令 退射、平截体和正交是 替换为单精度或 定点变量


因此,简而言之,除了使用相同的代码,还有更多的工作要做,尽管如果您坚持使用GL ES子集,所涉及的工作仍然很少。

是的,我指的是ES 1.1。我现在已经设法使我的程序正确地渲染了。