我正在将 GLScene SVN 快照 6432 与 Delphi XE2 一起使用,它似乎无法从流中加载纹理图像。
我浏览了文档并搜索了互联网,但我能找到的只是声明 LoadFromFile,任何地方都没有 LoadFromStream。
我也查看了源代码,但我也找不到或理解处理文件加载过程的代码。
是否可以以某种方式将图像文件从 TMemoryStream 加载到 TGLTexture 或 TGLImage?
编辑:
我做了更多的研究:
确实有可用的 LoadFromStream 声明,它们似乎指向位于 GLScene 源目录中的文件 ApplicationFileIO.pas。
例如,从 TGLImage 调用 LoadFromStream 时,我收到错误消息“无法将 TGLImage 导入到 TMemoryStream。(C:\GLSeneLibraryPath\Source\ApplicationFileIO.pas,第 348 行)”。
收到上述消息时,我尝试了以下代码:
procedure TtestForm.Button1Click(Sender: TObject);
var ms: tmemorystream;
img: tglimage;
begin
ms:=TMemoryStream.Create;
img:=TGLImage.Create;
opd.Execute(Self.Handle);
ms.LoadFromFile(opd.FileName);
img.LoadFromStream(ms);
ms.Free;
img.Free;
end;
可能是因为我需要以某种方式使用 ApplicationFileIO.pas 单元来使其正常工作吗?
我已经尝试将该文件包含在任何地方的uses 子句中,但这并没有什么不同。