Skip to content

Commit ac48aed

Browse files
committed
fix: lint, improve types compatibility with web, more properties in textmetrics
1 parent e252434 commit ac48aed

File tree

15 files changed

+78
-60
lines changed

15 files changed

+78
-60
lines changed

native/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.0.0)
1+
cmake_minimum_required(VERSION 3.10.0)
22
project(native_canvas VERSION 0.1.0)
33

44
set (CMAKE_CXX_STANDARD 17)

native/include/canvas.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44
#include "include/core/SkCanvas.h"
55
#include "include/core/SkSurface.h"
66
#include "include/core/SkData.h"
7-
#include "include/core/SkImageInfo.h"
87
#include "include/core/SkImageFilter.h"
98
#include "include/common.hpp"
109
#include "include/effects/SkImageFilters.h"
1110
#define SK_GL
12-
#include "include/gpu/GrBackendSurface.h"
1311
#include "include/gpu/GrDirectContext.h"
14-
#include "include/gpu/gl/GrGLInterface.h"
1512

1613
typedef enum sk_canvas_backend {
1714
kBackendCPU,

native/include/common.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ typedef struct sk_line_metrics {
114114
float width;
115115
float font_ascent;
116116
float font_descent;
117+
float alphabetic_baseline;
118+
float ideographic_baseline;
119+
float hanging_baseline;
117120
} sk_line_metrics;
118121

119122
#define DEGREES(radians) ((radians) * 180.0 / M_PI)

native/include/context2d.hpp

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,11 @@
11
#pragma once
22

3-
#include <iostream>
4-
#include <vector>
53
#include "include/core/SkCanvas.h"
6-
#include "include/core/SkEncodedImageFormat.h"
7-
#include "include/core/SkPath.h"
8-
#include "include/utils/SkParsePath.h"
9-
#include "include/core/SkMatrix.h"
10-
#include "include/core/SkPaint.h"
11-
#include "include/core/SkBitmap.h"
124
#include "include/core/SkFont.h"
13-
#include "include/core/SkFontMgr.h"
14-
#include "include/core/SkColorSpace.h"
15-
#include "include/core/SkBlurTypes.h"
16-
#include "modules/skparagraph/include/FontCollection.h"
17-
#include "modules/skparagraph/include/TypefaceFontProvider.h"
18-
#include "modules/skparagraph/include/ParagraphStyle.h"
19-
#include "modules/skparagraph/include/ParagraphBuilder.h"
20-
#include "modules/skparagraph/src/ParagraphBuilderImpl.h"
21-
#include "modules/skparagraph/src/ParagraphImpl.h"
22-
#include "include/effects/SkColorMatrix.h"
23-
#include "include/effects/SkDashPathEffect.h"
24-
#include "include/effects/SkImageFilters.h"
25-
#include "include/effects/SkTableColorFilter.h"
26-
#include "include/effects/SkTrimPathEffect.h"
27-
#include "include/core/SkPathEffect.h"
28-
#include "include/core/SkMaskFilter.h"
29-
#include "deps/csscolorparser.hpp"
5+
#include "include/core/SkPath.h"
306
#include "include/common.hpp"
31-
#include "include/font.hpp"
7+
#include "include/core/SkPathEffect.h"
328
#include "include/canvas.hpp"
33-
#include "include/path2d.hpp"
349
#include "include/gradient.hpp"
3510
#include "include/pattern.hpp"
3611

native/include/pdfdocument.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "include/common.hpp"
22
#include "include/context2d.hpp"
3+
#include "include/core/SkStream.h"
34
#include "include/docs/SkPDFDocument.h"
45

56
typedef struct sk_pdf_document {

native/src/canvas.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#include "include/canvas.hpp"
22
#include "include/context2d.hpp"
3+
#include "include/core/SkImageInfo.h"
4+
#include "include/core/SkStream.h"
5+
#include "include/gpu/GrBackendSurface.h"
6+
#include "include/gpu/gl/GrGLInterface.h"
37

48
extern "C" {
59
void sk_init() {

native/src/context2d.cpp

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
11
#include "include/context2d.hpp"
2+
#include "include/utils/SkParsePath.h"
3+
#include "include/core/SkMatrix.h"
4+
#include "include/core/SkPaint.h"
5+
#include "include/core/SkBitmap.h"
6+
#include <iostream>
7+
#include <vector>
8+
#include "include/core/SkFontMgr.h"
9+
#include "include/core/SkColorSpace.h"
10+
#include "include/core/SkBlurTypes.h"
11+
#include "modules/skparagraph/include/FontCollection.h"
12+
#include "modules/skparagraph/include/ParagraphStyle.h"
13+
#include "modules/skparagraph/include/ParagraphBuilder.h"
14+
#include "modules/skparagraph/src/ParagraphBuilderImpl.h"
15+
#include "modules/skparagraph/src/ParagraphImpl.h"
16+
#include "include/effects/SkColorMatrix.h"
17+
#include "include/effects/SkDashPathEffect.h"
18+
#include "include/effects/SkImageFilters.h"
19+
#include "include/path2d.hpp"
20+
#include "include/core/SkMaskFilter.h"
21+
#include "deps/csscolorparser.hpp"
222

323
#ifndef _USE_MATH_DEFINES
424
#define _USE_MATH_DEFINES
@@ -435,6 +455,9 @@ extern "C" {
435455
out_metrics->width = lineWidth;
436456
out_metrics->font_ascent = -font_metrics.fAscent + offset;
437457
out_metrics->font_descent = font_metrics.fDescent + offset;
458+
out_metrics->alphabetic_baseline = -font_metrics.fAscent + offset;
459+
out_metrics->ideographic_baseline = -paragraph->getIdeographicBaseline() + offset;
460+
out_metrics->hanging_baseline = -paragraph->getAlphabeticBaseline() + offset;
438461
} else {
439462
auto needScale = lineWidth > maxWidth;
440463
auto ratio = needScale ? maxWidth / lineWidth : 1.0;
@@ -499,9 +522,9 @@ extern "C" {
499522
return res;
500523
}
501524

502-
// Context.fillText() implementation in JS using sk_context_test
503-
// Context.strokeText() implementation in JS using sk_context_test
504-
// Context.measureText() implementation in JS using sk_context_test
525+
// Context.fillText() implementation in JS using sk_context_text
526+
// Context.strokeText() implementation in JS using sk_context_text
527+
// Context.measureText() implementation in JS using sk_context_text
505528

506529
/// Line styles
507530

native/src/font.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "include/font.hpp"
2-
#include "include/common.hpp"
32

43
int systemFontsLoaded = -1;
54
sk_sp<SkFontMgr> fontMgr = nullptr;

native/src/gradient.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "include/gradient.hpp"
2-
#include <iostream>
32

43
extern "C" {
54
sk_gradient* sk_gradient_create_linear(float startX, float startY, float endX, float endY) {

native/src/image.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "include/image.hpp"
2-
#include "include/common.hpp"
32

43
extern "C" {
54
SkImage* sk_image_from_encoded(void* data, size_t length) {

0 commit comments

Comments
 (0)