… | |
… | |
181 | |
181 | |
182 | sub size_request { |
182 | sub size_request { |
183 | my ($self) = @_; |
183 | my ($self) = @_; |
184 | my $chld = $self->get |
184 | my $chld = $self->get |
185 | or return (0, 0); |
185 | or return (0, 0); |
|
|
186 | |
|
|
187 | $chld->move (2, 2); |
|
|
188 | |
186 | map { $_ + 4 } $chld->size_request; |
189 | map { $_ + 4 } $chld->size_request; |
187 | } |
190 | } |
188 | |
191 | |
189 | sub _draw { |
192 | sub _draw { |
190 | my ($self) = @_; |
193 | my ($self) = @_; |
191 | |
194 | |
192 | my $chld = $self->get; |
195 | my $chld = $self->get; |
193 | |
196 | |
194 | $chld->move (2, 2, 0); #TODO:move to size_request |
|
|
195 | |
|
|
196 | my ($w, $h) = $chld->size_request; |
197 | my ($w, $h) = $chld->size_request; |
197 | |
198 | |
198 | glColor 1, 0, 0; |
|
|
199 | glBegin GL_QUADS; |
199 | glBegin GL_QUADS; |
|
|
200 | glColor 0, 0, 0; |
200 | glTexCoord 0, 0; glVertex 0 , 0; |
201 | glTexCoord 0, 0; glVertex 0 , 0; |
201 | glTexCoord 0, 1; glVertex 0 , $h + 4; |
202 | glTexCoord 0, 1; glVertex 0 , $h + 4; |
202 | glTexCoord 1, 1; glVertex $w + 4 , $h + 4; |
203 | glTexCoord 1, 1; glVertex $w + 4 , $h + 4; |
203 | glTexCoord 1, 0; glVertex $w + 4 , 0; |
204 | glTexCoord 1, 0; glVertex $w + 4 , 0; |
204 | glEnd; |
205 | glEnd; |
… | |
… | |
367 | |
368 | |
368 | my $tex = $self->{texture}; |
369 | my $tex = $self->{texture}; |
369 | |
370 | |
370 | glEnable GL_BLEND; |
371 | glEnable GL_BLEND; |
371 | glEnable GL_TEXTURE_2D; |
372 | glEnable GL_TEXTURE_2D; |
|
|
373 | glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; |
372 | glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE; |
374 | glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE; |
373 | glBindTexture GL_TEXTURE_2D, $tex->{name}; |
375 | glBindTexture GL_TEXTURE_2D, $tex->{name}; |
374 | |
376 | |
375 | glColor 1, 1, 1, 0.8; |
377 | glColor 1, 1, 1, 0.8; |
376 | |
378 | |