gpt4 book ai didi

png - 在 TGLCompositeImage 中添加 PNGImage 时出现 SIGSEGV 错误

转载 作者:行者123 更新时间:2023-12-01 05:09:21 26 4
gpt4 key购买 nike

我正在使用 Lazarus 1.2.4 和 GLSCENE svn 6462(1.2 svn 版本)

我在下面添加具有此功能的 Material

function AddMaterial(aMatLib: TGlMaterialLibrary; aFileName, aMaterialName: string):     TGlLibMaterial; overload;
begin
result := aMatLib.Materials.Add;
with result do
begin
with Material do
begin
if aFileName= 'Fast_Blur' then
begin
MaterialOptions:= [moNoLighting];
Texture.Disabled:= true;
Texture.TextureMode:= tmDecal;
BlendingMode:= bmModulate;
end
else
begin
MaterialOptions := [moIgnoreFog, moNoLighting];
Texture.Disabled := false;
Texture.TextureMode:= tmModulate;
BlendingMode := bmTransparency;
end;
with FrontProperties do
begin
Ambient.SetColor(1, 1, 1, 1);
if aFileName= 'Fast_Blur' then
Diffuse.SetColor(204,204,204,1)
else
Diffuse.SetColor(1, 1, 1, 1);
Emission.SetColor(1, 1, 1, 1);
Specular.SetColor(1, 1, 1, 1);
end;
Texture.ImageClassName:= 'TGLCompositeImage';

if aFileName<> 'Fast_Blur' then
begin
if ExtractFileExt(aFileName) = '.bmp' then
TGLCompositeImage(Texture.Image).LoadFromFile(aFileName)
else if ExtractFileExt(aFileName) = '.tga' then
begin
TGLCompositeImage(Texture.Image).LoadFromFile(aFileName);
end
else if ExtractFileExt(aFileName) = '' then
TGLCompositeImage(Texture.Image).LoadFromFile(aFileName + '.png');
end;
end;
Name := aMaterialName;
end;
end;

当我运行它时,我收到以下错误
Project One raised exception class "External : SIGSEGV"

尝试挖掘发现当 pngimage 尝试从流中加载时
177

CODE
if _png_sig_cmp(@sig, 0, 8) <> 0 then

在执行 raise EInvalidRasterFile.Create('Invalid PNG file');

获取 SIGSEGV ..

所以任何人都可以帮助...

Ps...如果我用 TGLPictureImage 更改 TGLComposite 图像然后工作完美,但我没有图像的透明度..

Ps2 ...经过更多挖掘,我发现所有错误都来自外部LIBPNG
所以不能很好地配合 GLPNGFILE 和 LIBPNG

最佳答案

我对 *.png 纹理的设置:

  • 类名:TGLCompositeImage
  • 阿尔法:tiaDefault
  • 纹理模式:tmAdd
  • 关于png - 在 TGLCompositeImage 中添加 PNGImage 时出现 SIGSEGV 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26191601/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com