diff options
Diffstat (limited to 'graphics/surface.cpp')
-rw-r--r-- | graphics/surface.cpp | 19 |
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) |