+/*
+ * Frame.h
+ *
+ * Created on: Aug 7, 2012
+ * Author: holy
+ */
+
+#ifndef GRAPHICS_FRAME_H_
+#define GRAPHICS_FRAME_H_
+
+#include "../geometry/Point.h"
+
+#include <SDL.h>
+
+namespace graphics {
+
+class Frame {
+
+public:
+ Frame(SDL_Surface *s, int borderWidth, int borderHeight, int repeatWidth = 1, int repeatHeight = 1, int xOffset = 0, int yOffset = 0)
+ : surface(s), borderWidth(borderWidth), borderHeight(borderHeight), repeatWidth(repeatWidth), repeatHeight(repeatHeight), xOffset(xOffset), yOffset(yOffset) { }
+
+public:
+ int MinWidth() const { return 2 * borderWidth; }
+ int MinHeight() const { return 2 * borderHeight; }
+ void Draw(SDL_Surface *dest, geometry::Point<int> position, int width, int height) const;
+
+private:
+ SDL_Surface *surface;
+ int borderWidth;
+ int borderHeight;
+ int repeatWidth;
+ int repeatHeight;
+ int xOffset;
+ int yOffset;
+
+};
+
+}
+
+#endif /* GRAPHICS_FRAME_H_ */