• R/O
  • SSH
  • HTTPS

qrobosdk: コミット


コミットメタ情報

リビジョン1762 (tree)
日時2010-04-11 05:06:52
作者satofumi

ログメッセージ

Layer::alpha() を追加

変更サマリ

差分

--- trunk/libs/lua/luabindGui.cpp (revision 1761)
+++ trunk/libs/lua/luabindGui.cpp (revision 1762)
@@ -92,6 +92,7 @@
9292 .def("push_back", &Layer::push_back)
9393 .def("remove", &Layer::remove)
9494 .def("setAlpha", &Layer::setAlpha)
95+ .def("alpha", &Layer::alpha)
9596 .def("draw", &Layer::draw),
9697
9798 class_<Font>("Font")
--- trunk/libs/gui/MultiSurface.cpp (revision 1761)
+++ trunk/libs/gui/MultiSurface.cpp (revision 1762)
@@ -29,6 +29,7 @@
2929 Surface& base_surface_;
3030 Surfaces surfaces_;
3131 Points offsets_;
32+ vector<float> alphas_;
3233
3334
3435 pImpl(Surface& base_surface) : base_surface_(base_surface)
@@ -80,11 +81,12 @@
8081
8182 void MultiSurface::setAlpha(float alpha)
8283 {
83- (void)alpha;
84-
8584 #if 1
86- // !!! 各サーフェスの alpha 値に指定された alpha 値を掛けた値に
87- // !!! 設定するように修正する
85+ size_t n = pimpl->surfaces_.size();
86+ for (size_t i = 0; i < n; ++i) {
87+ float surface_alpha = alpha * pimpl->alphas_[i];
88+ pimpl->surfaces_[i]->setAlpha(surface_alpha);
89+ }
8890
8991 #else
9092 pimpl->base_surface_.setAlpha(alpha);
@@ -119,4 +121,5 @@
119121 {
120122 pimpl->surfaces_.push_back(&surface);
121123 pimpl->offsets_.push_back(offset);
124+ pimpl->alphas_.push_back(surface.alpha());
122125 }
--- trunk/libs/gui/Layer.h (revision 1761)
+++ trunk/libs/gui/Layer.h (revision 1762)
@@ -31,6 +31,7 @@
3131 void push_back(Component* component);
3232 void remove(Component* component);
3333 void setAlpha(float alpha);
34+ float alpha(void) const;
3435 void draw(void);
3536
3637 private:
--- trunk/libs/gui/Layer.cpp (revision 1761)
+++ trunk/libs/gui/Layer.cpp (revision 1762)
@@ -28,9 +28,10 @@
2828 {
2929 Components components_;
3030 Rect<long> draw_area_;
31+ float alpha_;
3132
3233
33- pImpl(void)
34+ pImpl(void) : alpha_(1.0)
3435 {
3536 Screen screen;
3637 draw_area_ = screen.rect();
@@ -41,9 +42,16 @@
4142 {
4243 for_each(components_.begin(), components_.end(),
4344 bind(&Component::setAlpha, _1, alpha));
45+ alpha_ = alpha;
4446 }
4547
4648
49+ float alpha(void) const
50+ {
51+ return alpha_;
52+ }
53+
54+
4755 void draw(void)
4856 {
4957 for_each(components_.begin(), components_.end(),
@@ -92,6 +100,12 @@
92100 }
93101
94102
103+float Layer::alpha(void) const
104+{
105+ return pimpl->alpha();
106+}
107+
108+
95109 void Layer::draw(void)
96110 {
97111 pimpl->draw();
旧リポジトリブラウザで表示