从.png或.jpg文件加载实际图像数据以用于Chromes NaCl内的OpenGL的最佳方式是什么?在NaCl中加载OpenGL图像的最佳方式
是否有可以做到这一点的PPAPI功能?我不认为有。
我正在考虑使用javaScript加载图像数据并将其传回NaCl。这可能吗?如果是的话,你用什么javaScript方法将图像数据传递给NaCl,因为我不认为postMessage是我想要的吗?
令人沮丧的是,必须将图像加载到Chrome的后端,但无法通过NaCl访问它。
从.png或.jpg文件加载实际图像数据以用于Chromes NaCl内的OpenGL的最佳方式是什么?在NaCl中加载OpenGL图像的最佳方式
是否有可以做到这一点的PPAPI功能?我不认为有。
我正在考虑使用javaScript加载图像数据并将其传回NaCl。这可能吗?如果是的话,你用什么javaScript方法将图像数据传递给NaCl,因为我不认为postMessage是我想要的吗?
令人沮丧的是,必须将图像加载到Chrome的后端,但无法通过NaCl访问它。
有3种方法。
This new pepper_21 demo ...它需要不停止的异步加载吗?或者你可以停止主线程来加载图像数据...这对于我来说是最大的问题,因为它无法阻止主线程加载数据文件。使跨平台应用程序变得非常痛苦,但要做到。我已经通过抛出列表中所有需要的文件对象,然后使用普通流从那里读取内存(所以它伪造真正的系统IO),找到了一种异步方法。虽然这对于NaCl中缺少的特征只是一个破解。 – zezba9000 2012-07-23 09:30:33
实际上在任何情况下都没有直接的方法来停止主线程。由于文件必须从服务器加载,所以实际上无法停止主线程,这会使浏览器挂起一段时间。但是你可以使用一个线程和一个isImagesLoaded布尔值来轻松地伪装它。 – codetiger 2012-07-23 15:52:10
如果您使用Javascript中的文件,您也可以创建一个blob url,然后使用GetUrl从NaCL加载,如上所述。
ya,当我再次开始在NaCl中做更多的时候,我可能会使用javaScript来加载.png,.jpg文件ects ...现在写我制作了我自己的图像格式,名为.bmpc,基本上是一个带有alpha的压缩.bmp文件频道取代.png。在大多数情况下,其尺寸几乎与.png相同。我也使用我自己的加载器.dds/dxt文件。 – zezba9000 2012-12-18 23:42:58
注意:我也做了我自己的格式,它占用了大约一个.png文件。只需将原始的rgba数据压缩为zip并将其加载回来是处理不占用太多纹理的无损图像的最简单方法。 – zezba9000 2013-01-21 06:29:14