#! /usr/bin/env perl
my
$ctx
=
eval
{ make_context(
visible
=> 0) };
plan
skip_all
=>
"Can't create an OpenGL context: $@"
unless
$ctx
;
my
$res
= OpenGL::Sandbox::ResMan->default_instance;
OpenGL::Sandbox->
import
(
-resources
=> {
path
=> catdir(
$FindBin::Bin
,
'data'
) });
is(
$res
->path, catdir(
$FindBin::Bin
,
'data'
),
'path was changed'
);
$res
->tex_path(
'tex'
);
$res
->shader_path(
'shader'
);
$res
->font_path(
'font'
);
$res
->tex_config({
default
=>
'8x8'
,
});
my
$imported_res
=
eval
'package Test::Ns1; use OpenGL::Sandbox q{$res}; $res'
;
is(
$imported_res
,
$res
,
'can import resource manager'
)
or diag $@;
isa_ok(
$res
->tex(
'default'
),
'OpenGL::Sandbox::Texture'
,
'load default tex'
);
is(
$res
->tex(
'8x8'
),
$res
->tex(
'default'
),
'8x8 is default'
);
$res
->tex(
'8x8'
)->load;
is(
$res
->tex(
'8x8'
)->width, 8,
'width=8'
);
SKIP: {
isa_ok(
$res
->shader(
'zero.frag'
),
'OpenGL::Sandbox::Shader'
,
'load a shader'
);
isa_ok(
$res
->program(
'zero'
),
'OpenGL::Sandbox::Program'
,
'load a shader program'
);
like(
$res
->program(
'zero'
)->shaders->{vert}->filename,
qr/zero.vert$/
,
'found vert shader of prog "zero"'
);
like(
$res
->program(
'zero'
)->shaders->{frag}->filename,
qr/zero.frag$/
,
'found frag shader of prog "zero"'
);
}
SKIP: {
isa_ok(
$res
->new_buffer(
'foo'
),
'OpenGL::Sandbox::Buffer'
,
'create a buffer'
);
is(
eval
{
$res
->buffer(
'bar'
) },
undef
,
'can\'t access non-existent buffer'
);
$res
->buffer_config->{bar}= { };
ok(
eval
{
$res
->buffer(
'bar'
) },
'can auto-create object as long as it is configured'
);
}
done_testing;