00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00040 #ifndef BIGRAPHICSDEVICE_H
00041 #define BIGRAPHICSDEVICE_H
00042
00043 #include <stdint.h>
00044 #include "RGBA32Array.h"
00045
00046 namespace WebCore {
00047
00048 class Image;
00049 class IntPoint;
00050 class IntRect;
00051 class Color;
00052
00053 }
00054
00060 namespace BAL {
00061
00062 class BINativeImage;
00063 class BISurface;
00064 class BTWidget;
00065
00066 class BIGraphicsDevice {
00067 public:
00075 virtual void initialize(uint16_t width, uint16_t height, uint8_t depth) = 0;
00076
00080 virtual void finalize() = 0;
00081
00086 virtual BINativeImage* createNativeImage(const WebCore::IntSize size) = 0;
00087
00094 virtual BINativeImage* createNativeImage(RGBA32Array&, const WebCore::IntSize size) = 0;
00095
00104 virtual void copy(const BTWidget&, const BINativeImage&, WebCore::IntRect zone, WebCore::IntPoint, const uint8_t alphaChannel = 255) = 0;
00105
00114 virtual void drawArc(const BTWidget&, const WebCore::IntRect, uint16_t startAngle, uint16_t angleSpan, const WebCore::Color) = 0;
00115
00122 virtual void drawEllipse(const BTWidget&, WebCore::IntRect, const WebCore::Color) = 0;
00123
00131 virtual void drawLine(const BTWidget&, WebCore::IntPoint, WebCore::IntPoint, const WebCore::Color) = 0;
00132
00139 virtual void drawRect(const BTWidget&, WebCore::IntRect, const WebCore::Color) = 0;
00140
00150 virtual void fillConvexPolygon(const BTWidget&, size_t numPoints, const WebCore::IntPoint*, const WebCore::Color) = 0;
00151
00158 virtual void fillRect(const BTWidget&, WebCore::IntRect, const WebCore::Color) = 0;
00159
00165 virtual void setClip(const BTWidget&, WebCore::IntRect) = 0;
00166
00172 virtual WebCore::IntRect clip(const BTWidget&) = 0;
00173
00183 virtual void stretchBlit(const BTWidget&, const BINativeImage&, WebCore::IntRect src, WebCore::IntRect dst, const uint8_t alphaChannel = 255) = 0;
00184
00189 virtual WebCore::IntSize size() const = 0;
00190
00196 virtual void update(const BTWidget&, const WebCore::IntRect) = 0;
00197
00204 virtual void clear(const BTWidget&, const WebCore::IntRect) = 0;
00205
00209 virtual ~BIGraphicsDevice() {}
00210 };
00211
00212 }
00213
00214 #endif // BIGRAPHICSDEVICE_H
00215
00216