diff options
author | Cary Clark <caryclark@skia.org> | 2017-10-31 15:44:45 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-31 20:09:25 +0000 |
commit | bef063af14d0608a5c40fe4473fbfaf1db591603 (patch) | |
tree | 9bd7cb9535b0e6f0d37182ba468b2c25ebab0140 /docs | |
parent | 43fd6d848583b554316c84956df0d5908402981c (diff) | |
download | skqp-bef063af14d0608a5c40fe4473fbfaf1db591603.tar.gz |
cataloger
Docs-Preview: https://skia.org/?cl=64900
Bug: skia:6898
Change-Id: Ifbaf909854680a88060f16b1559863cc124aaa7a
Reviewed-on: https://skia-review.googlesource.com/64900
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/SkBitmap_Reference.bmh | 2 | ||||
-rw-r--r-- | docs/SkMatrix_Reference.bmh | 58 | ||||
-rw-r--r-- | docs/catalogHeader.txt | 9 | ||||
-rw-r--r-- | docs/catalogTrailer.txt | 217 |
4 files changed, 280 insertions, 6 deletions
diff --git a/docs/SkBitmap_Reference.bmh b/docs/SkBitmap_Reference.bmh index 75cd57ed99..78677655e8 100644 --- a/docs/SkBitmap_Reference.bmh +++ b/docs/SkBitmap_Reference.bmh @@ -21,7 +21,7 @@ Declaring SkBitmap const prevents altering Image_Info: the Bitmap height, width, and so on cannot change. It does not affect Pixel_Ref: a caller may write its pixels. Declaring SkBitmap const affects Bitmap configuration, not its contents. -Bitmap is not thread safe. Each thread must have its own copy if Bitmap fields, +Bitmap is not thread safe. Each thread must have its own copy of Bitmap fields, although threads may share the underlying pixel array. #Topic Row_Bytes diff --git a/docs/SkMatrix_Reference.bmh b/docs/SkMatrix_Reference.bmh index e0d3987d17..54d21c8fff 100644 --- a/docs/SkMatrix_Reference.bmh +++ b/docs/SkMatrix_Reference.bmh @@ -47,6 +47,7 @@ improve performance. Matrix is not thread safe unless getType is called first. # Concat # Returns the concatenation of Matrix pair. ## # I # Returns a reference to a const identity Matrix. ## # InvalidMatrix # Returns a reference to a const invalid Matrix. ## +# MakeAll # Constructs all nine values. ## # MakeRectToRect # Constructs from source Rect to destination Rect. ## # MakeScale # Constructs from scale in x and y. ## # MakeTrans # Constructs from translate in x and y. ## @@ -221,6 +222,53 @@ for (int i = 0; i < 4; ++i) { # ------------------------------------------------------------------------------ +#Method static SkMatrix SK_WARN_UNUSED_RESULT MakeAll(SkScalar scaleX, SkScalar skewX, SkScalar transX, + SkScalar skewY, SkScalar scaleY, SkScalar transY, + SkScalar pers0, SkScalar pers1, SkScalar pers2) + + +Sets Matrix to: + +#Code +#Literal +| scaleX skewX transX | +| skewY scaleY transY | +| pers0 pers1 pers2 | +## + +#Param scaleX horizontal scale factor ## +#Param skewX horizontal skew factor ## +#Param transX horizontal translation ## +#Param skewY vertical skew factor ## +#Param scaleY vertical scale factor ## +#Param transY vertical translation ## +#Param pers0 input x perspective factor ## +#Param pers1 input y perspective factor ## +#Param pers2 perspective scale factor ## + +#Return Matrix constructed from parameters ## + +#Example + SkPaint p; + p.setAntiAlias(true); + p.setTextSize(64); + for (SkScalar sx : { -1, 1 } ) { + for (SkScalar sy : { -1, 1 } ) { + SkAutoCanvasRestore autoRestore(canvas, true); + SkMatrix m = SkMatrix::MakeAll(sx, 1, 128, 0, sy, 128, 0, 0, 1); + canvas->concat(m); + canvas->drawString("K", 0, 0, p); + } + } +## + +#SeeAlso setAll set9 postConcat preConcat + +## + + +# ------------------------------------------------------------------------------ + #Enum TypeMask #Code @@ -551,7 +599,7 @@ paint.setTextSize(48); canvas->drawString(string, 0, source.bounds().height() + 48, paint); ## -#SeeAlso setAll set9 +#SeeAlso setAll set9 MakeAll ## @@ -1267,7 +1315,7 @@ for (SkScalar perspX : { -.003f, 0.f, .003f, .012f } ) { } ## -#SeeAlso getPerspX set setAll set9 +#SeeAlso getPerspX set setAll set9 MakeAll #Method ## @@ -1294,7 +1342,7 @@ for (SkScalar perspX : { -.003f, 0.f, .003f, .012f } ) { } ## -#SeeAlso getPerspY set setAll set9 +#SeeAlso getPerspY set setAll set9 MakeAll #Method ## @@ -1338,7 +1386,7 @@ Sets all values from parameters. Sets matrix to: } ## -#SeeAlso set9 +#SeeAlso set9 MakeAll #Method ## @@ -1402,7 +1450,7 @@ canvas->concat(m); canvas->drawBitmap(source, 0, 0); ## -#SeeAlso setAll get9 +#SeeAlso setAll get9 MakeAll #Method ## diff --git a/docs/catalogHeader.txt b/docs/catalogHeader.txt new file mode 100644 index 0000000000..0ca0568cd2 --- /dev/null +++ b/docs/catalogHeader.txt @@ -0,0 +1,9 @@ +<!DOCTYPE html> + +<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta charset="utf-8" /> + <title></title> + +<script type="text/javascript"> + diff --git a/docs/catalogTrailer.txt b/docs/catalogTrailer.txt new file mode 100644 index 0000000000..0bfb8b7584 --- /dev/null +++ b/docs/catalogTrailer.txt @@ -0,0 +1,217 @@ + +var canvas +var context +var getFromWeb = true +var mouseDown = false +var scale = .6 +var outset = 15 +var columnWidth = 256 +var maxHeight = 256 +var lastLink = null +var lastLinkStr = null +var labelback = {} +var loadedImages = 0 +var images = {} +var imagesLength = 0; + +function recContains(rec, value) { + if (!value.length)
+ return 0
+ var lc = value.toLowerCase()
+ if (rec.name.toLowerCase().indexOf(lc) >= 0)
+ return 1
+ if (rec.code.toLowerCase().indexOf(lc) >= 0)
+ return 2
+ return 3
+} + +function setLink(recstr) { + var under + var link = recstr + if (!link.startsWith("Sk")) {
+ under = link.indexOf('_') + link = link.substring(under + 1)
+ } + under = link.lastIndexOf('_') + var len = link.length + if (under == len - 2) {
+ var letter = link[len - 1] + if ('a' <= letter && letter <= 'z') {
+ link = link.substr(0, len - 2)
+ } else if ('0' <= letter && letter <= '9') {
+ link = link.substr(0, len - 2)
+ }
+ } + lastLinkStr = link
+} + +function showLink() {
+ var link = lastLink.file + '#' + lastLinkStr
+ context.save()
+ context.font = "normal 16px Arial"; + labelback.w = Math.max(labelback.w, context.measureText(link).width + 8)
+ context.beginPath()
+ context.rect(labelback.x, labelback.y, labelback.w, labelback.h)
+ context.fillStyle = "rgba(232,180,220, 1)"
+ context.fill()
+ context.fillStyle = "rgba(64,32,48, 1)"
+ context.fillText(link, labelback.x + 4, labelback.y + 16)
+ context.restore()
+} + +function imageIterator(callout, state) {
+ var row = outset + 30 + var column = outset + for (var recstr in pngs) { + var rec = pngs[recstr] + var contains = recContains(rec, input.value) + if (3 == contains)
+ continue;
+ var height = rec.height < maxHeight ? rec.height : maxHeight + if (callout(state, column, row, height, contains, recstr)) + break; + row += height + outset + if (row >= canvas.height / scale) { + row = 0 + column += columnWidth + outset + if (column >= canvas.width / scale) { + break + } + } + } +} + +function handleMouseOver(event) { + var callout = function(state, column, row, height, contains, recstr) { + if (state.x >= column && state.x <= column + columnWidth && + state.y >= row && state.y <= row + height) { + document.body.style.cursor = "pointer" + lastLink = pngs[recstr] + setLink(recstr) + showLink() + return true + } + return false + } + var state = { + x: (event.clientX - 5) / scale, + y: (event.clientY - 7) / scale + } + document.body.style.cursor = "" + lastLink = null + imageIterator(callout, state) +} + +function handleMouseClick() { + if (null != lastLink) { + var link = 'https://skia.org/user/api/' + lastLink.file + '#' + lastLinkStr + window.location = link + } +} + +function doKeyPress(evt) {
+ idiv.style.height = 20 + input.focus() +} + +function drawImage(hash, x, y, w, h, contains) {
+ context.save() + context.transform(scale, 0, 0, scale, 0, 0) + context.save() + context.beginPath() + context.rect(x, y, w, h) + context.clip() + context.drawImage(images[hash], x, y) + context.restore() + context.beginPath() + context.rect(x, y, w, h) + context.strokeStyle = 1 == contains ? "red" : "black" + context.stroke() + context.restore() +} + +function draw() { + var callout = function(state, column, row, height, contains, recstr) { + drawImage(pngs[recstr].hash, column, row, columnWidth, height, contains) + return false
+ } + imageIterator(callout, null) +} + +function sleep(ms) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+}
+
+async function redraw() {
+ context.strokeStyle = "white"
+ context.beginPath() + context.fillStyle = "white" + context.rect(0, 30, canvas.width, canvas.height) + context.fill() + context.rect((256 + outset) * scale, 0, canvas.width, 30) + context.fill()
+ for (var image in images) {
+ image.drawn = false
+ }
+ do {
+ draw();
+ if (loadedImages >= imagesLength)
+ break;
+ console.debug(" loadedImages:" + loadedImages + " imagesLength:" + imagesLength)
+ await sleep(1000);
+ } while (true)
+} + +function resize() { + setSize() + redraw() +} + +function setSize() { + canvas.width = window.innerWidth - 20 + canvas.height = window.innerHeight - 20 + labelback.x = 0 + labelback.y = canvas.height - 20 + labelback.w = 0 + labelback.h = 20 +} + +function loadImages() {
+ for (var recstr in pngs) {
+ var rec = pngs[recstr] + var image = new Image() + images[rec.hash] = image
+ if (getFromWeb) + image.src = 'https://fiddle.skia.org/i/' + image.src += rec.hash + '_raster.png' + image.onload = function () {
+ loadedImages += 1
+ }
+ imagesLength += 1;
+ }
+} + +function start() {
+ loadImages() + window.addEventListener('keypress', doKeyPress, true); + window.addEventListener('keydown', doKeyPress, true); + canvas = document.getElementById('canvas') + context = canvas.getContext('2d') + resize() +} + +</script> +</head> + +<body onLoad="start()" onresize="resize()"> +<div style="height:0" id="idiv">
+<input type="text" id="input" onkeypress="redraw()" onkeydown="redraw()"/>
+</div> +<canvas id="canvas" width="750" height="500" +onmousedown="mouseDown = true" +onmouseup="mouseDown = false" +onmousemove="handleMouseOver(event)" +onclick="handleMouseClick()" +></canvas > +</body> +</html> |