--- deliantra/Deliantra-Client/DC/UI.pm 2006/05/11 23:41:47 1.194 +++ deliantra/Deliantra-Client/DC/UI.pm 2006/05/11 23:54:31 1.195 @@ -26,7 +26,7 @@ $tip = $tip->($widget) if CODE:: eq ref $tip; - $TOOLTIP->set_markup ($widget->{tooltip}); + $TOOLTIP->set_markup ($widget->{tooltip}, $widget->{tooltip_font}); $TOOLTIP->show; @@ -1674,16 +1674,13 @@ $self->{fg} = $self->{active_fg}; } - glEnable GL_BLEND; - glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; glEnable GL_TEXTURE_2D; glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; glColor 0, 0, 0, 1; - $tex[0]->draw_quad (0, 0, $self->{w}, $self->{h}); + $tex[0]->draw_quad_alpha (0, 0, $self->{w}, $self->{h}); glDisable GL_TEXTURE_2D; - glDisable GL_BLEND; $self->SUPER::_draw; } @@ -1740,16 +1737,13 @@ glColor @{ $FOCUS == $self ? $self->{active_fg} : $self->{fg} }; - glEnable GL_BLEND; glEnable GL_TEXTURE_2D; - glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; my $tex = $self->{state} ? $tex[1] : $tex[0]; - $tex->draw_quad (0, 0, $s, $s); + $tex->draw_quad_alpha (0, 0, $s, $s); glDisable GL_TEXTURE_2D; - glDisable GL_BLEND; } ############################################################################# @@ -1802,14 +1796,11 @@ ($w, $h) = ($h, $w); } - glEnable GL_BLEND; - glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; glEnable GL_TEXTURE_2D; glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; - $tex->draw_quad (0, 0, $w, $h); + $tex->draw_quad_alpha (0, 0, $w, $h); - glDisable GL_BLEND; glDisable GL_TEXTURE_2D; } @@ -2111,18 +2102,15 @@ my $knob_a = $inner_pad_px + ($value - $page * 0.5); my $knob_b = $inner_pad_px + ($value + $page * 0.5); - glEnable GL_BLEND; - glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; glEnable GL_TEXTURE_2D; glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; # draw background - $tex[1]->draw_quad (0, 0, $w, $h); + $tex[1]->draw_quad_alpha (0, 0, $w, $h); # draw handle - $tex[0]->draw_quad ($knob_a, 0, $knob_b - $knob_a, $h); + $tex[0]->draw_quad_alpha ($knob_a, 0, $knob_b - $knob_a, $h); - glDisable GL_BLEND; glDisable GL_TEXTURE_2D; } @@ -2143,7 +2131,7 @@ #font => default_font @_, - layout => (new CFClient::Layout), + layout => (new CFClient::Layout 1), par => [], height => 0, children => [ @@ -2171,7 +2159,7 @@ $layout->set_height ($self->{fontsize} * $::FONTSIZE); $layout->set_width ($self->{children}[0]{w}); - $layout->set_text ($text); + $layout->set_markup ($text); ($layout->size)[1] } @@ -2237,8 +2225,6 @@ glClearColor 0, 0, 0, 0; glClear GL_COLOR_BUFFER_BIT; - glEnable GL_BLEND; - glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; glEnable GL_TEXTURE_2D; glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; @@ -2257,18 +2243,17 @@ my $h = $par->[0]; if ($y0 < $y + $h && $y < $y1) { - $layout->set_text ($par->[2]); + $layout->set_foreground (@{ $par->[1] }); + $layout->set_markup ($par->[2]); - glColor @{ $par->[1] }; my ($W, $H) = $layout->size; - CFClient::Texture->new_from_layout ($layout)->draw_quad (0, $y - $y0); + CFClient::Texture->new_from_layout ($layout)->draw_quad_alpha_premultiplied (0, $y - $y0); } $y += $h; } glDisable GL_TEXTURE_2D; - glDisable GL_BLEND; }; }); } @@ -2276,14 +2261,11 @@ sub _draw { my ($self) = @_; - glEnable GL_BLEND; - glBlendFunc GL_ONE, GL_ONE_MINUS_SRC_ALPHA; glEnable GL_TEXTURE_2D; glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; glColor 1, 1, 1, 1; - $self->{texture}->draw_quad (0, 0, $self->{children}[0]{w}, $self->{children}[0]{h}); + $self->{texture}->draw_quad_alpha_premultiplied (0, 0, $self->{children}[0]{w}, $self->{children}[0]{h}); glDisable GL_TEXTURE_2D; - glDisable GL_BLEND; $self->{children}[1]->draw; @@ -2388,9 +2370,14 @@ } sub set_markup { - my ($self, $text) = @_; + my ($self, $text, $font) = @_; - $self->{label} ||= new CFClient::UI::Label fontsize => 0.8, fg => [0, 0, 0]; + $self->{label} = new CFClient::UI::Label + fontsize => 0.8, + fg => [0, 0, 0], + font => ($font || $::FONT_PROP); + + $self->{label}->set_max_size ($::WIDTH * 0.3); $self->{label}->set_markup ($text); $self->add ($self->{label}); } @@ -2398,8 +2385,6 @@ sub size_request { my ($self) = @_; - $self->child->set_max_size ($::WIDTH * 0.3); - my ($w, $h) = @{$self->child}{qw(req_w req_h)}; ($w + 4, $h + 4) @@ -2470,14 +2455,11 @@ # TODO animation if ($tex) { - glEnable GL_BLEND; - glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; glEnable GL_TEXTURE_2D; glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; glColor 1, 1, 1, 1; - $tex->draw_quad (0, 0, $self->{w}, $self->{h}); + $tex->draw_quad_alpha (0, 0, $self->{w}, $self->{h}); glDisable GL_TEXTURE_2D; - glDisable GL_BLEND; } }