… | |
… | |
210 | } |
210 | } |
211 | |
211 | |
212 | sub new_from_opengl { |
212 | sub new_from_opengl { |
213 | my ($class, $w, $h, $cb) = @_; |
213 | my ($class, $w, $h, $cb) = @_; |
214 | |
214 | |
215 | $class->new (w => $w, h => $h, render_cb => $cb) |
215 | $class->new (w => $w || 1, h => $h || 1, render_cb => $cb) |
216 | } |
216 | } |
217 | |
217 | |
218 | sub topot { |
218 | sub topot { |
219 | (grep $_ >= $_[0], 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768)[0] |
219 | (grep $_ >= $_[0], 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768)[0] |
220 | } |
220 | } |
… | |
… | |
243 | = CFClient::load_image_inline $self->{image}; |
243 | = CFClient::load_image_inline $self->{image}; |
244 | } |
244 | } |
245 | |
245 | |
246 | my ($tw, $th) = @$self{qw(w h)}; |
246 | my ($tw, $th) = @$self{qw(w h)}; |
247 | |
247 | |
248 | unless ($tw && $th) { |
248 | unless ($tw > 0 && $th > 0) { |
249 | $tw = $th = 1; |
249 | $tw = $th = 1; |
250 | $data = "\x00" x 64; |
250 | $data = "\x00" x 64; |
251 | } |
251 | } |
252 | |
252 | |
253 | $self->{minified} = [CFClient::average $tw, $th, $data] |
253 | $self->{minified} = [CFClient::average $tw, $th, $data] |