From debc9599032c7036006ec124f4ef8f44b8935568 Mon Sep 17 00:00:00 2001 From: scuri Date: Thu, 17 Jun 2010 19:32:24 +0000 Subject: *** empty log message *** --- html/en/screenshots_src_c.html | 865 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 865 insertions(+) create mode 100644 html/en/screenshots_src_c.html (limited to 'html/en/screenshots_src_c.html') diff --git a/html/en/screenshots_src_c.html b/html/en/screenshots_src_c.html new file mode 100644 index 0000000..bf33397 --- /dev/null +++ b/html/en/screenshots_src_c.html @@ -0,0 +1,865 @@ + + + + +Screenshots C Source Code + + + + + + +

Screenshots C Source Code

+ + + + +

void SimpleDraw(cdCanvas* +canvas)

+

{ +

+
+

+int w, +h; +

+

int *dashes; +

+

int irect[8]; +

double drect[8]; +

+

 

+

/* Get size in pixels to be +used for computing coordinates. */

+cdCanvasGetSize(canvas, +&w, +&h, +NULL, NULL); +

+/* Clear the background to be white */

+cdCanvasBackground(canvas, +CD_WHITE); +

+cdCanvasClear(canvas); +

+

 

+/* Draw a reactangle and a polyline at +the bottom-left area,

+

    using a thick line with transparency.

+

    Notice that transparency is only supported in a few drivers,

+

    and line join is not supported in the IMAGERGB driver. */

+cdCanvasLineWidth(canvas, +3); +

+cdCanvasLineStyle(canvas, +CD_CONTINUOUS); +

+cdCanvasForeground(canvas, +cdEncodeAlpha(CD_DARK_MAGENTA, +128)); +

+cdCanvasRect(canvas, +100, +200, +100, +200); +

+cdCanvasBegin(canvas, +CD_OPEN_LINES); +

+cdCanvasVertex(canvas, +300, +250); +

+cdCanvasVertex(canvas, +320, +270); +

+cdCanvasVertex(canvas, +350, +260); +

+cdCanvasVertex(canvas, +340, +200); +

+cdCanvasVertex(canvas, +310, +210); +

+cdCanvasEnd(canvas); +

+ +

/* Draw the red diagonal line with a +custom line style.

+

    Notice that line styles are not supported in the IMAGERGB driver. */

+cdCanvasForeground(canvas, +CD_RED); +

+cdCanvasLineWidth(canvas, +3); +

+

dashes += +{20, +15, +5, +5}; +

+cdCanvasLineStyleDashes(canvas, +dashes, +4); +

+

+cdCanvasLineStyle(canvas, +CD_CUSTOM); +

+cdCanvasLine(canvas, +0, +0, +w-1, +h-1); +

+

 

+/* Draw the blue diagonal line with a +pre-defined line style.

+

    Notice that the pre-defined line style is dependent on the driver. */

+cdCanvasForeground(canvas, +CD_BLUE); +

+cdCanvasLineWidth(canvas, +10); +

+cdCanvasLineStyle(canvas, +CD_DOTTED); +

+cdCanvasLine(canvas, +0, +h-1, +w-1, +0); +

 

+

/* Reset line style and width */

+cdCanvasLineStyle(canvas, +CD_CONTINUOUS); +

+cdCanvasLineWidth(canvas, +1); +

+ +

/* Draw an arc at bottom-left, and a +sector at bottom-right.

+

    Notice that counter-clockwise orientation of both. */

+cdCanvasInteriorStyle(canvas, +CD_SOLID); +

+cdCanvasForeground(canvas, +CD_MAGENTA); +

+cdCanvasSector(canvas, +w-100, +100, +100, +100, +50, +180); +

+cdCanvasForeground(canvas, +CD_RED); +

+cdCanvasArc(canvas, +100, +100, +100, +100, +50, +180); +

+

 

+/* Draw a solid filled rectangle at +center. */

+cdCanvasForeground(canvas, +CD_YELLOW); +

+cdCanvasBox(canvas, +w/2 +- +100, +w/2 ++ +100, +h/2 +- +100, +h/2 ++ +100);

+

 

+ +

/* Prepare font for text. */

+cdCanvasTextAlignment(canvas, +CD_CENTER); +

+cdCanvasTextOrientation(canvas, +70); +

+cdCanvasFont(canvas, +"Times", +CD_BOLD, +24); +

+

 

+/* Draw text at center, with +orientation,

+

    and draw its bounding box.

+

    Notice that in some drivers the bounding box is not precise. */

+

+cdCanvasGetTextBounds(canvas, +w/2, +h/2, +"cdMin Draw ()", +irect); +

+cdCanvasForeground(canvas, +CD_RED); +

+cdCanvasBegin(canvas, +CD_CLOSED_LINES); +

+cdCanvasVertex(canvas, +irect[0], +irect[1]); +

+cdCanvasVertex(canvas, +irect[2], +irect[3]); +

+cdCanvasVertex(canvas, +irect[4], +irect[5]); +

+cdCanvasVertex(canvas, +irect[6], +irect[7]); +

+cdCanvasEnd(canvas); +

+

+cdCanvasForeground(canvas, +CD_BLUE); +

+cdCanvasText(canvas, +w/2, +h/2, +"cdMin Draw ()"); +

+

 

+/* Prepare World Coordinates */

+wdCanvasViewport(canvas, +0,w-1,0,h-1); +

+if +(w>h) +

+    +wdCanvasWindow(canvas, +0,(double)w/(double)h,0,1); +

+else

+    +wdCanvasWindow(canvas, +0,1,0,(double)h/(double)w); +

+

 

+/* Draw a filled blue rectangle in WC +*/

+wdCanvasBox(canvas, +0.20, +0.30, +0.40, +0.50); +

+cdCanvasForeground(canvas, +CD_RED); +

+

 

+/* Draw the diagonal of that rectangle +in WC */

+wdCanvasLine(canvas, +0.20, +0.40, +0.30, +0.50); +

+

 

+/* Prepare Vector Text in WC. */

+wdCanvasVectorCharSize(canvas, +0.07); +

 

+

/* Draw vector text, and draw its +bounding box.

+

    We also use this text to show when we are using a contextplus driver. */

+

+cdCanvasForeground(canvas, +CD_RED); +

+if +(contextplus) +

+    +wdCanvasGetVectorTextBounds(canvas, +"WDj-Plus", +0.25, +0.35, +drect); +

+else

+    +wdCanvasGetVectorTextBounds(canvas, +"WDj", +0.25, +0.35, +drect); +

+cdCanvasBegin(canvas, +CD_CLOSED_LINES); +

+wdCanvasVertex(canvas, +drect[0], +drect[1]); +

+wdCanvasVertex(canvas, +drect[2], +drect[3]); +

+wdCanvasVertex(canvas, +drect[4], +drect[5]); +

+wdCanvasVertex(canvas, +drect[6], +drect[7]); +

+cdCanvasEnd(canvas); +

+cdCanvasLineWidth(canvas, +2); +

+cdCanvasLineStyle(canvas, +CD_CONTINUOUS); +

+if +(contextplus) +

+    +wdCanvasVectorText(canvas, +0.25, +0.35, +"WDj-Plus"); +

+else

+    +wdCanvasVectorText(canvas, +0.25, +0.35, +"WDj"); +

+

 

/* Reset line width +*/

+

+cdCanvasLineWidth(canvas, +1); +

 

+/* Draw a filled path at center-right +(looks like a weird fish).

+

    Notice that in PDF the arc is necessarily a circle arc, and not an ellipse. +*/

+cdCanvasForeground(canvas, +CD_GREEN); +

+cdCanvasBegin(canvas, +CD_PATH); +

+cdCanvasPathSet(canvas, +CD_PATH_MOVETO); +

+cdCanvasVertex(canvas, +w/2 ++ +200, +h/2); +

+cdCanvasPathSet(canvas, +CD_PATH_LINETO); +

+cdCanvasVertex(canvas, +w/2 ++ +230, +h/2 ++ +50); +

+cdCanvasPathSet(canvas, +CD_PATH_LINETO); +

+cdCanvasVertex(canvas, +w/2 ++ +250, +h/2 ++ +50); +

+cdCanvasPathSet(canvas, +CD_PATH_CURVETO); +

+cdCanvasVertex(canvas, +w/2+150+150, +h/2+200-50); +/* control point for start */

+cdCanvasVertex(canvas, +w/2+150+180, +h/2+250-50); +/* control point for end */

+cdCanvasVertex(canvas, +w/2+150+180, +h/2+200-50); +/* end point */

+cdCanvasPathSet(canvas, +CD_PATH_CURVETO); +

+cdCanvasVertex(canvas, +w/2+150+180, +h/2+150-50);

+ +

cdCanvasVertex(canvas, +w/2+150+150, +h/2+100-50);

+ +

cdCanvasVertex(canvas, +w/2+150+300, +h/2+100-50);

+ +

cdCanvasPathSet(canvas, +CD_PATH_LINETO); +

+cdCanvasVertex(canvas, +w/2+150+300, +h/2-50); +

+cdCanvasPathSet(canvas, +CD_PATH_ARC); +

+cdCanvasVertex(canvas, +w/2+300, +h/2); +/* center */

+cdCanvasVertex(canvas, +200, +100); +/* width, height */

+cdCanvasVertex(canvas, +-30*1000, +-170*1000); +/* start angle, end angle (degrees / 1000) +*/

+ +

+cdCanvasPathSet(canvas, +CD_PATH_FILL); +

+

+cdCanvasEnd(canvas); +

+

 

+/* Draw 3 pixels at center left. */

+cdCanvasPixel(canvas, +10, +h/2+0, +CD_RED); +

+cdCanvasPixel(canvas, +11, +h/2+1, +CD_GREEN); +

+cdCanvasPixel(canvas, +12, +h/2+2, +CD_BLUE); +

+

 

+/* Draw 4 mark types, distributed near +each corner. */

+cdCanvasForeground(canvas, +CD_RED); +

+cdCanvasMarkSize(canvas, +30); +

+cdCanvasMarkType(canvas, +CD_PLUS); +

+cdCanvasMark(canvas, +200, +200); +

+cdCanvasMarkType(canvas, +CD_CIRCLE); +

+cdCanvasMark(canvas, +w - +200, +200); +

+cdCanvasMarkType(canvas, +CD_HOLLOW_CIRCLE); +

+cdCanvasMark(canvas, +200, +h - +200); +

+cdCanvasMarkType(canvas, +CD_DIAMOND); +

+cdCanvasMark(canvas, +w - +200, +h - +200); +

+

 

+/* Draw all the line style +possibilities at bottom.

+

    Notice that they have some small differences between drivers. */

+cdCanvasLineWidth(canvas, +1); +

+cdCanvasLineStyle(canvas, +CD_CONTINUOUS); +

+cdCanvasLine(canvas, +0, +10, +w, +10); +

+cdCanvasLineStyle(canvas, +CD_DASHED); +

+cdCanvasLine(canvas, +0, +20, +w, +20); +

+cdCanvasLineStyle(canvas, +CD_DOTTED); +

+cdCanvasLine(canvas, +0, +30, +w, +30); +

+cdCanvasLineStyle(canvas, +CD_DASH_DOT); +

+cdCanvasLine(canvas, +0, +40, +w, +40); +

+cdCanvasLineStyle(canvas, +CD_DASH_DOT_DOT); +

+cdCanvasLine(canvas, +0, +50, +w, +50); +

+

 

+/* Draw all the hatch style +possibilities in the top-left corner.

+

    Notice that they have some small differences between drivers. */

+cdCanvasHatch(canvas, +CD_VERTICAL);

+ +

cdCanvasBox(canvas, +0, +50, +h - +60, +h); +

+cdCanvasHatch(canvas, +CD_FDIAGONAL);

+ +

cdCanvasBox(canvas, +50, +100, +h - +60, +h); +

+cdCanvasHatch(canvas, +CD_BDIAGONAL);

+ +

cdCanvasBox(canvas, +100, +150, +h - +60, +h); +

+cdCanvasHatch(canvas, +CD_CROSS);

+ +

cdCanvasBox(canvas, +150, +200, +h - +60, +h); +

+cdCanvasHatch(canvas, +CD_HORIZONTAL);

+ +

cdCanvasBox(canvas, +200, +250, +h - +60, +h); +

+cdCanvasHatch(canvas, +CD_DIAGCROSS);

+ +

cdCanvasBox(canvas, +250, +300, +h - +60, +h); +

+

 

+/* Draw 4 regions, in diamond shape,

+

    at top, bottom, left, right,

+

    using different interior styles. +*/

+

 

+

/* At top, not filled polygon, notice that the last line style is used. */

+cdCanvasBegin(canvas, +CD_CLOSED_LINES); +

+cdCanvasVertex(canvas, +w/2, +h - +100);

+ +

cdCanvasVertex(canvas, +w/2 ++ +50, +h - +150);

+ +

cdCanvasVertex(canvas, +w/2, +h - +200);

+ +

cdCanvasVertex(canvas, +w/2 +- +50, +h - +150);

+ +

cdCanvasEnd(canvas); +

+

 

+/* At left, hatch filled polygon */

+cdCanvasHatch(canvas, +CD_DIAGCROSS);

+ +

cdCanvasBegin(canvas, +CD_FILL); +

+cdCanvasVertex(canvas, +100, +h/2);

+ +

cdCanvasVertex(canvas, +150, +h/2 ++ +50);

+ +

cdCanvasVertex(canvas, +200, +h/2);

+ +

cdCanvasVertex(canvas, +150, +h/2 +- +50);

+ +

cdCanvasEnd(canvas); +

+

 

+/* At right, pattern filled polygon */

+cdCanvasPattern(canvas, +STYLE_SIZE, +STYLE_SIZE, +pattern); +

+cdCanvasBegin(canvas, +CD_FILL); +

+cdCanvasVertex(canvas, +w - +100, +h/2);

+ +

cdCanvasVertex(canvas, +w - +150, +h/2 ++ +50);

+ +

cdCanvasVertex(canvas, +w - +200, +h/2);

+ +

cdCanvasVertex(canvas, +w - +150, +h/2 +- +50);

+ +

cdCanvasEnd(canvas); +

+ +

/* At bottom, stipple filled polygon */

+cdCanvasStipple(canvas, +STYLE_SIZE, +STYLE_SIZE, +stipple); +

+cdCanvasBegin(canvas, +CD_FILL); +

+cdCanvasVertex(canvas, +w/2, +100);

+ +

cdCanvasVertex(canvas, +w/2 ++ +50, +150);

+ +

cdCanvasVertex(canvas, +w/2, +200);

+ +

cdCanvasVertex(canvas, +w/2 +- +50, +150);

+ +

cdCanvasEnd(canvas); +

+

 

+/* Draw two beziers at bottom-left */

+cdCanvasBegin(canvas, +CD_BEZIER); +

+cdCanvasVertex(canvas, +100, +100);

+ +

cdCanvasVertex(canvas, +150, +200);

+ +

cdCanvasVertex(canvas, +180, +250);

+ +

cdCanvasVertex(canvas, +180, +200);

+ +

cdCanvasVertex(canvas, +180, +150);

+ +

cdCanvasVertex(canvas, +150, +100);

+ +

cdCanvasVertex(canvas, +300, +100);

+ +

cdCanvasEnd(canvas); +

+

 

+

/* Draw the image on the top-right +corner but increasing its actual size, and uses its full area */

+cdCanvasPutImageRectRGBA(canvas, +IMAGE_SIZE, +IMAGE_SIZE, +red, green, +blue, alpha, +w - +400, +h - +310, +3*IMAGE_SIZE, +3*IMAGE_SIZE, +0, +0, +0, +0); +

+

 

+

/* Adds a new page, or

+

    flushes the file, or

+

    flushes the screen, or

+

    swap the double buffer. */

+cdCanvasFlush(canvas); +

+
+ +

} +

+ + + + + + + -- cgit v1.2.3