aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorCary Clark <caryclark@skia.org>2017-10-31 15:44:45 -0400
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2017-10-31 20:09:25 +0000
commitbef063af14d0608a5c40fe4473fbfaf1db591603 (patch)
tree9bd7cb9535b0e6f0d37182ba468b2c25ebab0140 /docs
parent43fd6d848583b554316c84956df0d5908402981c (diff)
downloadskqp-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.bmh2
-rw-r--r--docs/SkMatrix_Reference.bmh58
-rw-r--r--docs/catalogHeader.txt9
-rw-r--r--docs/catalogTrailer.txt217
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>