summaryrefslogtreecommitdiffstats
path: root/client/pixels_source.h
diff options
context:
space:
mode:
Diffstat (limited to 'client/pixels_source.h')
-rw-r--r--client/pixels_source.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/client/pixels_source.h b/client/pixels_source.h
new file mode 100644
index 00000000..2fe09eab
--- /dev/null
+++ b/client/pixels_source.h
@@ -0,0 +1,59 @@
+/*
+ Copyright (C) 2009 Red Hat, Inc.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _H_PIXELS_SOURCE
+#define _H_PIXELS_SOURCE
+
+#include "draw.h"
+
+#define PIXELES_SOURCE_OPAQUE_SIZE (20 * sizeof(void*))
+
+class PixelsSource {
+public:
+ PixelsSource();
+ virtual ~PixelsSource();
+
+ virtual Point get_size() = 0;
+ void set_origin(int x, int y) { _origin.x = x; _origin.y = y;}
+ const Point& get_origin() { return _origin;}
+
+protected:
+ const uint8_t* get_opaque() const { return _opaque;}
+
+private:
+ Point _origin;
+ uint8_t _opaque[PIXELES_SOURCE_OPAQUE_SIZE];
+
+ friend class RedDrawable;
+};
+
+class ImageFromRes: public PixelsSource {
+public:
+ ImageFromRes(int res_id);
+ virtual ~ImageFromRes();
+ virtual Point get_size();
+};
+
+class AlphaImageFromRes: public PixelsSource {
+public:
+ AlphaImageFromRes(int res_id);
+ virtual ~AlphaImageFromRes();
+ virtual Point get_size();
+};
+
+#endif
+