aboutsummaryrefslogtreecommitdiff
path: root/graphics/surface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/surface.cpp')
-rw-r--r--graphics/surface.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/graphics/surface.cpp b/graphics/surface.cpp
index 4d7cc713bf..b0585eab15 100644
--- a/graphics/surface.cpp
+++ b/graphics/surface.cpp
@@ -46,6 +46,25 @@ void Surface::drawLine(int x0, int y0, int x1, int y1, uint32 color) {
error("Surface::drawLine: bytesPerPixel must be 1 or 2");
}
+void Surface::create(uint16 width, uint16 height, uint8 bytesPP) {
+ free();
+
+ w = width;
+ h = height;
+ bytesPerPixel = bytesPP;
+ pitch = w * bytesPP;
+
+ pixels = calloc(width * height, bytesPP);
+ assert(pixels);
+}
+
+void Surface::free() {
+ ::free(pixels);
+ pixels = 0;
+ w = h = pitch = 0;
+ bytesPerPixel = 0;
+}
+
void Surface::hLine(int x, int y, int x2, uint32 color) {
// Clipping
if (y < 0 || y >= h)