提示:
这是由于 Portable Perl V5.24 携带的OpenGL模块有故障。This program requires support for GLSL shaders.
Press 'Q' or 'Esc' to exit, or any other key to toggle shader.
[Finished in 0.3s]
此时需要 OpenGL-0.70.tar.gz ,解压,用 portableshell.bat 配置的环境进入该目录
依次执行
perl Makefile.PL
dmake
dmake install
安装成功后可以试运行 D:\temp\OpenGL-0.70 里面的 test.plD:\temp\OpenGL-0.70>perl Makefile.PL
> run as `perl Makefile.PL help` to show user options
> $verbose set to 0 - enable by running as `perl Makefile.PL verbose`
>
> This looks like OpenGL Version: 4.5.0 NVIDIA 369.30
> Found FreeGLUT v20801
>
> Using interface: FREEGLUT
>
> Checking if your kit is complete...
> Looks good
> Generating a dmake-style Makefile
> Writing Makefile for OpenGL
> Writing MYMETA.yml and MYMETA.json
以及 D:\temp\OpenGL-Shader-1.01 里面的 shader-test.pl
执行以下程序可以查看支持的着色器类型:
代码: 全选
use Data::Dumper;
use OpenGL qw/ :all /;
use OpenGL::Shader;
glutInit();
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE );
our $WinID = glutCreateWindow("title");
my $shaders = OpenGL::Shader->GetTypes();
glutDestroyWindow($WinID);
print Dumper $shaders;
代码: 全选
$VAR1 = {
'ARB' => {
'name' => 'ARB',
'module' => 'OpenGL::Shader::ARB',
'description' => 'ARBfp1.0 and ARBvp1.0 Assembly',
'version' => '1.0'
},
'GLSL' => {
'description' => 'OpenGL Shader Language',
'version' => '4.50',
'name' => 'GLSL',
'module' => 'OpenGL::Shader::GLSL'
},
'CG' => {
'module' => 'OpenGL::Shader::CG',
'name' => 'CG',
'version' => '1.00',
'description' => 'nVidia\'s Cg Shader Language'
}
};
代码: 全选
my $shdr = new OpenGL::Shader('GLSL');