[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.1/kdelibs/khtml
From: Harri Porten <porten () kde ! org>
Date: 2008-11-04 21:52:11
Message-ID: 1225835531.333189.25450.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 880185 by porten:
Merged revision 880184:
Implement createImageData() canvas function.
M +9 -0 ecma/kjs_context2d.cpp
M +1 -1 ecma/kjs_context2d.h
M +16 -0 html/html_canvasimpl.cpp
M +1 -0 html/html_canvasimpl.h
--- branches/KDE/4.1/kdelibs/khtml/ecma/kjs_context2d.cpp #880184:880185
@@ -121,6 +121,7 @@
# pixel ops.
getImageData Context2D::GetImageData DontDelete|Function 4
putImageData Context2D::PutImageData DontDelete|Function 3
+ createImageData Context2D::CreateImageData DontDelete|Function 2
@end
*/
@@ -473,6 +474,14 @@
ctx->putImageData(id.get(), args[1]->toFloat(exec), args[2]->toFloat(exec), exception);
break;
}
+ case Context2D::CreateImageData: {
+ KJS_REQUIRE_ARGS(2);
+ KJS_CHECK_FLOAT_ARGS(0, 1);
+ CanvasImageDataImpl* id = ctx->createImageData(args[0]->toFloat(exec),
+ args[1]->toFloat(exec),
+ exception);
+ return getWrapper<CanvasImageData>(exec, id);
+ }
}
--- branches/KDE/4.1/kdelibs/khtml/ecma/kjs_context2d.h #880184:880185
@@ -105,7 +105,7 @@
BeginPath, ClosePath, MoveTo, LineTo, QuadraticCurveTo, BezierCurveTo, ArcTo, Rect, Arc,
Fill, Stroke, Clip, IsPointInPath, // paths
DrawImage, // do we want backwards compat for drawImageFromRect?
- GetImageData, PutImageData // pixel ops. ewww.
+ GetImageData, PutImageData, CreateImageData // pixel ops. ewww.
};
};
--- branches/KDE/4.1/kdelibs/khtml/html/html_canvasimpl.cpp #880184:880185
@@ -1584,4 +1584,20 @@
p.drawImage(x, y, id->data);
}
+CanvasImageDataImpl* CanvasContext2DImpl::createImageData(float sw, float sh, int& exceptionCode)
+{
+ int w = qRound(qAbs(sw));
+ int h = qRound(qAbs(sh));
+
+ if (w == 0 || h == 0) {
+ exceptionCode = DOMException::INDEX_SIZE_ERR;
+ return 0;
+ }
+
+ CanvasImageDataImpl* id = new CanvasImageDataImpl(w, h);
+ id->data.fill(Qt::transparent);
+
+ return id;
+}
+
// kate: indent-width 4; replace-tabs on; tab-width 4; space-indent on;
--- branches/KDE/4.1/kdelibs/khtml/html/html_canvasimpl.h #880184:880185
@@ -282,6 +282,7 @@
// Pixel ops
CanvasImageDataImpl* getImageData(float sx, float sy, float sw, float sh, int& exceptionCode);
void putImageData(CanvasImageDataImpl* data, float dx, float dy, int& exceptionCode);
+ CanvasImageDataImpl* createImageData(float sw, float sh, int& exceptionCode);
private:
friend class HTMLCanvasElementImpl;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic