[Scummvm-cvs-logs] SF.net SVN: scummvm: [22738] scummvm/trunk/gui
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Mon May 29 07:02:53 CEST 2006
Revision: 22738
Author: lordhoto
Date: 2006-05-29 07:00:00 -0700 (Mon, 29 May 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22738&view=rev
Log Message:
-----------
- changes transparency parameter of Theme::drawSurface to alpha parameter.
- adds possibility to draw GraphicsWidgets with alpha values.
Modified Paths:
--------------
scummvm/trunk/gui/ThemeClassic.cpp
scummvm/trunk/gui/ThemeNew.cpp
scummvm/trunk/gui/launcher.cpp
scummvm/trunk/gui/theme.h
scummvm/trunk/gui/widget.cpp
scummvm/trunk/gui/widget.h
Modified: scummvm/trunk/gui/ThemeClassic.cpp
===================================================================
--- scummvm/trunk/gui/ThemeClassic.cpp 2006-05-29 13:24:49 UTC (rev 22737)
+++ scummvm/trunk/gui/ThemeClassic.cpp 2006-05-29 14:00:00 UTC (rev 22738)
@@ -219,7 +219,7 @@
addDirtyRect(r);
}
-void ThemeClassic::drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, bool transparency) {
+void ThemeClassic::drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, int alpha) {
if (!_initOk)
return;
Modified: scummvm/trunk/gui/ThemeNew.cpp
===================================================================
--- scummvm/trunk/gui/ThemeNew.cpp 2006-05-29 13:24:49 UTC (rev 22737)
+++ scummvm/trunk/gui/ThemeNew.cpp 2006-05-29 14:00:00 UTC (rev 22738)
@@ -624,7 +624,7 @@
addDirtyRect(r2);
}
-void ThemeNew::drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, bool transparency) {
+void ThemeNew::drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, int alpha) {
if (!_initOk)
return;
@@ -636,25 +636,12 @@
assert(surface.bytesPerPixel == sizeof(OverlayColor));
- if (transparency) {
- drawSurface(rect, &surface, false, false, 256);
- addDirtyRect(r);
- return;
- }
+ if (alpha != 256)
+ restoreBackground(rect);
- OverlayColor *src = (OverlayColor *)surface.pixels;
- OverlayColor *dst = (OverlayColor *)_screen.getBasePtr(rect.left, rect.top);
-
- int w = rect.width();
- int h = rect.height();
-
- while (h--) {
- memcpy(dst, src, surface.pitch);
- src += w;
- // FIXME: this should be pitch
- dst += _screen.w;
- }
- addDirtyRect(r);
+ drawSurface(rect, &surface, false, false, alpha);
+ addDirtyRect(rect);
+ return;
}
void ThemeNew::drawSlider(const Common::Rect &rr, int width, kState state) {
Modified: scummvm/trunk/gui/launcher.cpp
===================================================================
--- scummvm/trunk/gui/launcher.cpp 2006-05-29 13:24:49 UTC (rev 22737)
+++ scummvm/trunk/gui/launcher.cpp 2006-05-29 14:00:00 UTC (rev 22738)
@@ -452,7 +452,6 @@
if (g_gui.evaluator()->getVar("launcher_logo.visible") == 1) {
_logo = new GraphicsWidget(this, "launcher_logo");
ThemeNew *th = (ThemeNew *)g_gui.theme();
- _logo->useTransparency(true);
_logo->setGfx(th->getImageSurface(th->kThemeLogo));
@@ -782,7 +781,6 @@
if (!_logo)
_logo = new GraphicsWidget(this, "launcher_logo");
ThemeNew *th = (ThemeNew *)g_gui.theme();
- _logo->useTransparency(true);
_logo->setGfx(th->getImageSurface(th->kThemeLogo));
} else {
Modified: scummvm/trunk/gui/theme.h
===================================================================
--- scummvm/trunk/gui/theme.h 2006-05-29 13:24:49 UTC (rev 22737)
+++ scummvm/trunk/gui/theme.h 2006-05-29 14:00:00 UTC (rev 22738)
@@ -142,7 +142,7 @@
virtual void drawWidgetBackground(const Common::Rect &r, uint16 hints, kWidgetBackground background = kWidgetBackgroundPlain, kState state = kStateEnabled) = 0;
virtual void drawButton(const Common::Rect &r, const Common::String &str, kState state = kStateEnabled) = 0;
- virtual void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state = kStateEnabled, bool transparency = false) = 0;
+ virtual void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state = kStateEnabled, int alpha = 256) = 0;
virtual void drawSlider(const Common::Rect &r, int width, kState state = kStateEnabled) = 0;
virtual void drawCheckbox(const Common::Rect &r, const Common::String &str, bool checked, kState state = kStateEnabled) = 0;
virtual void drawTab(const Common::Rect &r, int tabHeight, int tabWidth, const Common::Array<Common::String> &tabs, int active, uint16 hints, kState state = kStateEnabled) = 0;
@@ -244,7 +244,7 @@
void drawWidgetBackground(const Common::Rect &r, uint16 hints, kWidgetBackground background, kState state);
void drawButton(const Common::Rect &r, const String &str, kState state);
- void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, bool transparency);
+ void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, int alpha);
void drawSlider(const Common::Rect &r, int width, kState state);
void drawCheckbox(const Common::Rect &r, const String &str, bool checked, kState state);
void drawTab(const Common::Rect &r, int tabHeight, int tabWidth, const Common::Array<String> &tabs, int active, uint16 hints, kState state);
@@ -321,7 +321,7 @@
void drawWidgetBackground(const Common::Rect &r, uint16 hints, kWidgetBackground background, kState state);
void drawButton(const Common::Rect &r, const String &str, kState state);
- void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, bool transparency);
+ void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, kState state, int alpha);
void drawSlider(const Common::Rect &r, int width, kState state);
void drawCheckbox(const Common::Rect &r, const String &str, bool checked, kState state);
void drawTab(const Common::Rect &r, int tabHeight, int tabWidth, const Common::Array<String> &tabs, int active, uint16 hints, kState state);
Modified: scummvm/trunk/gui/widget.cpp
===================================================================
--- scummvm/trunk/gui/widget.cpp 2006-05-29 13:24:49 UTC (rev 22737)
+++ scummvm/trunk/gui/widget.cpp 2006-05-29 14:00:00 UTC (rev 22738)
@@ -316,7 +316,7 @@
#pragma mark -
GraphicsWidget::GraphicsWidget(GuiObject *boss, int x, int y, int w, int h)
- : Widget(boss, x, y, w, h), _gfx(), _transparency(false) {
+ : Widget(boss, x, y, w, h), _gfx(), _alpha(256) {
_flags = WIDGET_ENABLED | WIDGET_CLEARBG;
_type = kGraphicsWidget;
// HACK: Don't save the background. We want to be sure that redrawing
@@ -326,7 +326,7 @@
}
GraphicsWidget::GraphicsWidget(GuiObject *boss, String name)
- : Widget(boss, name), _gfx(), _transparency(false) {
+ : Widget(boss, name), _gfx(), _alpha(256) {
_flags = WIDGET_ENABLED | WIDGET_CLEARBG;
_type = kGraphicsWidget;
// HACK: Don't save the background. We want to be sure that redrawing
@@ -352,7 +352,7 @@
void GraphicsWidget::drawWidget(bool hilite) {
if (sizeof(OverlayColor) == _gfx.bytesPerPixel && _gfx.pixels) {
- g_gui.theme()->drawSurface(Common::Rect(_x, _y, _x+_w, _y+_h), _gfx, Theme::kStateEnabled, _transparency);
+ g_gui.theme()->drawSurface(Common::Rect(_x, _y, _x+_w, _y+_h), _gfx, Theme::kStateEnabled, _alpha);
}
}
Modified: scummvm/trunk/gui/widget.h
===================================================================
--- scummvm/trunk/gui/widget.h 2006-05-29 13:24:49 UTC (rev 22737)
+++ scummvm/trunk/gui/widget.h 2006-05-29 14:00:00 UTC (rev 22738)
@@ -271,13 +271,13 @@
void setGfx(const Graphics::Surface *gfx);
- void useTransparency(bool state) { _transparency = state; }
+ void useAlpha(int alpha) { _alpha = alpha; }
protected:
void drawWidget(bool hilite);
Graphics::Surface _gfx;
- bool _transparency;
+ int _alpha;
};
/* ContainerWidget */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list