File Coverage

blib/lib/SDLx/Surface/TiedMatrix.pm
Criterion Covered Total %
statement 24 24 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod 0 1 0.0
total 34 35 97.1


line stmt bran cond sub pod time code
1             package SDLx::Surface::TiedMatrix;
2 10     10   59 use strict;
  10         19  
  10         337  
3 10     10   55 use warnings;
  10         21  
  10         261  
4 10     10   5310 use SDLx::Surface::TiedMatrixRow;
  10         27  
  10         252  
5 10     10   56 use base 'Tie::Array';
  10         18  
  10         2731  
6              
7             sub new {
8 5     5 0 9 my $class = shift;
9 5         8 my $matrix = shift;
10 5         21 my $self = {
11             matrix => $matrix,
12             rows => [],
13             };
14 5         23 return bless $self, $class;
15             }
16              
17             sub TIEARRAY {
18 5     5   21 return SDLx::Surface::TiedMatrix->new( $_[1] );
19             }
20              
21             sub FETCH {
22 70     70   114 my ( $self, $y ) = @_;
23              
24 70 100       311 unless ( $self->{rows}[$y] ) {
25 10         82 tie my @row, 'SDLx::Surface::TiedMatrixRow', $self->{matrix}, $y;
26 10         36 $self->{rows}[$y] = \@row;
27             }
28 70         569 return $self->{rows}[$y];
29             }
30              
31             sub FETCHSIZE {
32 4     4   7 my ( $self, $x ) = @_;
33 4         18 return $self->{matrix}->surface->h;
34             }
35              
36             1;