Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(443)

Side by Side Diff: experimental/sk_surface.cpp

Issue 624973004: experimental c api (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« experimental/sk_surface.h ('K') | « experimental/sk_surface.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #include "sk_surface.h"
2
3 #include "SkCanvas.h"
4 #include "SkImage.h"
5 #include "SkMatrix.h"
6 #include "SkPaint.h"
7 #include "SkPath.h"
8 #include "SkSurface.h"
9
10 void sk_matrix_set_identity(sk_matrix_t* cmatrix) {
11 sk_bzero(cmatrix->mat, sizeof(9 * sizeof(float)));
12 cmatrix->mat[0] = cmatrix->mat[4] = cmatrix->mat[8] = 1;
13 }
14
15 static SkImageInfo make(const sk_image_info& cinfo) {
16 return SkImageInfo::Make(cinfo.width, cinfo.height,
17 (SkColorType)cinfo.colorType, (SkAlphaType)cinfo.al phaType);
18 }
19
robertphillips 2014/10/07 16:26:43 Shouldn't these be as_rect, etc. ?
20 static const SkRect& AsRect(const sk_rect_t& crect) { return static_cast<const S kRect&>(crect); }
21
22 static const SkPaint& AsPaint(const sk_paint_t& cpaint) {
23 return static_cast<const SkPaint&>(cpaint);
24 }
25
26 static const SkPaint* AsPaint(const sk_paint_t* cpaint) {
27 return static_cast<const SkPaint*>(cpaint);
28 }
29
30 static SkCanvas* AsCanvas(sk_canvas_t* ccanvas) { return static_cast<SkCanvas*>( ccanvas); }
31
32 //////////////////////////////////////////////////////////////////////////////// ///////////
33
34 void sk_canvas_save(sk_canvas_t* ccanvas) {
35 AsCanvas(ccanvas)->save();
36 }
37
38 void sk_canvas_save_layer(sk_canvas_t* ccanvas, const sk_rect_t* crect, const sk _paint_t* cpaint) {
39 AsCanvas(ccanvas)->drawRect(AsRect(*crect), AsPaint(*cpaint));
40 }
41
42 void sk_canvas_restore(sk_canvas_t* ccanvas) {
43 AsCanvas(ccanvas)->restore();
44 }
45
46 void sk_canvas_translate(sk_canvas_t* ccanvas, float dx, float dy) {
47 AsCanvas(ccanvas)->translate(dx, dy);
48 }
49
50 void sk_canvas_scale(sk_canvas_t* ccanvas, float sx, float sy) {
51 AsCanvas(ccanvas)->scale(dx, dy);
52 }
53
54 void sk_canvas_concat(sk_canvas_t* ccanvas, const sk_matrix_t* cmatrix) {
55 AsCanvas(ccanvas)->concat(AsMatrix(*cmatrix));
56 }
57
58 void sk_canvas_draw_paint(sk_canvas_t* ccanvas, const sk_paint_t* cpaint) {
59 AsCanvas(ccanvas)->drawPaint(AsPaint(*cpaint));
60 }
61
62 void sk_canvas_draw_rect(sk_canvas_t* ccanvas, const sk_rect_t* crect, const sk_ paint_t* cpaint) {
63 AsCanvas(ccanvas)->drawRect(AsRect(*crect), AsPaint(*cpaint));
64 }
65
66 void sk_canvas_draw_oval(sk_canvas_t* ccanvas, const sk_rect_t* crect, const sk_ paint_t* cpaint) {
67 AsCanvas(ccanvas)->drawOval(AsRect(*crect), AsPaint(*cpaint));
68 }
69
70 void sk_canvas_draw_path(sk_canvas_t* ccanvas, const sk_path_t* cpath, const sk_ paint_t* cpaint) {
71 AsCanvas(ccanvas)->drawPath(AsPath(*cpath), AsPaint(*cpaint));
72 }
73
74 void sk_canvas_draw_image(sk_canvas_t* ccanvas, const sk_image_t* cimage, float x, float y,
75 const sk_paint_t* cpaint) {
76 AsCanvas(ccanvas)->drawImage(AsImage(cimage), x, y, AsPaint(cpaint));
77 }
78
79 //////////////////////////////////////////////////////////////////////////////// ///////////
80
81 sk_image_t* sk_image_new_raster_copy(const sk_image_info_t* cinfo, const void* p ixels,
82 size_t rowBytes) {
83 return (sk_image_t*)SkImage::NewRasterCopy(make(*cinfo), pixels, rowBytes);
84 }
85
86 int sk_image_get_width(const sk_image_t* cimage) {
87 return ((const SkImage*)cimage)->width();
88 }
89
90 int sk_image_get_height(const sk_image_t* cimage) {
91 return ((const SkImage*)cimage)->height();
92 }
93
94 uint32_t sk_image_get_unique_id(const sk_image_t* cimage) {
95 return ((const SkImage*)cimage)->uniqueID();
96 }
97
98 //////////////////////////////////////////////////////////////////////////////// ///////////
99
100 sk_surface_t* sk_surface_new_raster(const sk_image_info_t* cinfo) {
101 return (sk_surface_t*)SkSurface::NewRaster(make(*cinfo));
102 }
103
104 sk_surface_t* sk_surface_new_raster_direct(const sk_image_info_t* cinfo, void* p ixels,
105 size_t rowBytes) {
106 return (sk_surface_t*)SkSurface::NewRasterDirect(make(*cinfo), pixels, rowBy tes);
107 }
108
109 void sk_surface_delete(sk_surface_t* csurf) {
110 SkSurface* surf = (SkSurface*)csurf;
111 SkSafeUnref(surf);
112 }
113
114 sk_canvas_t* sk_surface_get_canvas(sk_surface_t* csurf) {
115 SkSurface* surf = (SkSurface*)csurf;
116 return surf->getCanvas();
117 }
118
119 sk_image_t* sk_surface_new_image_snapshot(sk_surface_t* csurf) {
120 SkSurface* surf = (SkSurface*)csurf;
121 return surf->newImageSnapshot();
122 }
123
124
OLDNEW
« experimental/sk_surface.h ('K') | « experimental/sk_surface.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698