Files
vcmi/client/gui/CCanvas.h
T

40 lines
1.1 KiB
C++
Raw Normal View History

2022-11-25 11:46:47 +02:00
/*
* CCanvas.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
2022-11-25 16:32:23 +02:00
struct SDL_Color;
2022-11-25 11:46:47 +02:00
struct SDL_Surface;
struct Point;
class IImage;
/// Class that represents surface for drawing on
class CCanvas
{
SDL_Surface * surface;
public:
// constructs canvas using existing surface. Caller maintains ownership on the surface
CCanvas(SDL_Surface * surface);
CCanvas(const Point & size);
~CCanvas();
// renders image onto this canvas
void draw(std::shared_ptr<IImage> image, const Point & pos);
// renders another canvas onto this canvas
void draw(std::shared_ptr<CCanvas> image, const Point & pos);
2022-11-25 16:32:23 +02:00
// renders continuous, 1-pixel wide line with color gradient
void drawLine(const Point & from, const Point & dest, const SDL_Color & colorFrom, const SDL_Color & colorDest);
2022-11-25 11:46:47 +02:00
// for compatibility, copies content of this canvas onto SDL_Surface
void copyTo(SDL_Surface * to, const Point & pos);
};