0

我正在将 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 子句中,但这并没有什么不同。

4

0 回答 0