Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
skiko
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuqiang
skiko
Commits
36c350d8
Unverified
Commit
36c350d8
authored
Nov 02, 2021
by
Aleksandr Veselov
Committed by
GitHub
Nov 02, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement native methods of InvalidationController (#339)
parent
9939833d
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
27 deletions
+60
-27
InvalidationController.kt
.../kotlin/org/jetbrains/skia/sksg/InvalidationController.kt
+15
-15
InvalidationControllerTest.kt
...lin/org/jetbrains/skia/sksg/InvalidationControllerTest.kt
+18
-0
InvalidationController.cc
skiko/src/jvmMain/cpp/common/sksg/InvalidationController.cc
+3
-3
InvalidationController.cc
skiko/src/nativeJsMain/cpp/sksg/InvalidationController.cc
+24
-9
No files found.
skiko/src/commonMain/kotlin/org/jetbrains/skia/sksg/InvalidationController.kt
View file @
36c350d8
...
@@ -2,10 +2,7 @@ package org.jetbrains.skia.sksg
...
@@ -2,10 +2,7 @@ package org.jetbrains.skia.sksg
import
org.jetbrains.skia.impl.Library.Companion.staticLoad
import
org.jetbrains.skia.impl.Library.Companion.staticLoad
import
org.jetbrains.skia.*
import
org.jetbrains.skia.*
import
org.jetbrains.skia.impl.Managed
import
org.jetbrains.skia.impl.*
import
org.jetbrains.skia.impl.NativePointer
import
org.jetbrains.skia.impl.Stats
import
org.jetbrains.skia.impl.reachabilityBarrier
import
kotlin.jvm.JvmStatic
import
kotlin.jvm.JvmStatic
/**
/**
...
@@ -29,21 +26,24 @@ class InvalidationController internal constructor(ptr: NativePointer) : Managed(
...
@@ -29,21 +26,24 @@ class InvalidationController internal constructor(ptr: NativePointer) : Managed(
fun
invalidate
(
left
:
Float
,
top
:
Float
,
right
:
Float
,
bottom
:
Float
,
matrix
:
Matrix33
?):
InvalidationController
{
fun
invalidate
(
left
:
Float
,
top
:
Float
,
right
:
Float
,
bottom
:
Float
,
matrix
:
Matrix33
?):
InvalidationController
{
Stats
.
onNativeCall
()
Stats
.
onNativeCall
()
interopScope
{
val
mat
=
matrix
?.
mat
?:
Matrix33
.
IDENTITY
.
mat
InvalidationController_nInvalidate
(
InvalidationController_nInvalidate
(
_ptr
,
_ptr
,
left
,
left
,
top
,
top
,
right
,
right
,
bottom
,
bottom
,
matrix
?.
mat
?:
Matrix33
.
IDENTITY
.
mat
toInterop
(
mat
)
)
)
}
return
this
return
this
}
}
val
bounds
:
Rect
val
bounds
:
Rect
get
()
=
try
{
get
()
=
try
{
Stats
.
onNativeCall
()
Stats
.
onNativeCall
()
InvalidationController_nGetBounds
(
_ptr
)
Rect
.
fromInteropPointer
{
InvalidationController_nGetBounds
(
_ptr
,
it
)
}
}
finally
{
}
finally
{
reachabilityBarrier
(
this
)
reachabilityBarrier
(
this
)
}
}
...
@@ -61,8 +61,8 @@ private external fun InvalidationController_nGetFinalizer(): NativePointer
...
@@ -61,8 +61,8 @@ private external fun InvalidationController_nGetFinalizer(): NativePointer
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nMake"
)
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nMake"
)
private
external
fun
InvalidationController_nMake
():
NativePointer
private
external
fun
InvalidationController_nMake
():
NativePointer
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nInvalidate"
)
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nInvalidate"
)
private
external
fun
InvalidationController_nInvalidate
(
ptr
:
NativePointer
,
left
:
Float
,
top
:
Float
,
right
:
Float
,
bottom
:
Float
,
matrix
:
FloatArray
?
)
private
external
fun
InvalidationController_nInvalidate
(
ptr
:
NativePointer
,
left
:
Float
,
top
:
Float
,
right
:
Float
,
bottom
:
Float
,
matrix
:
InteropPointer
)
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nGetBounds"
)
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nGetBounds"
)
private
external
fun
InvalidationController_nGetBounds
(
ptr
:
NativePointer
):
Rect
private
external
fun
InvalidationController_nGetBounds
(
ptr
:
NativePointer
,
result
:
InteropPointer
)
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nReset"
)
@ExternalSymbolName
(
"org_jetbrains_skia_sksg_InvalidationController_nReset"
)
private
external
fun
InvalidationController_nReset
(
ptr
:
NativePointer
)
private
external
fun
InvalidationController_nReset
(
ptr
:
NativePointer
)
skiko/src/commonTest/kotlin/org/jetbrains/skia/sksg/InvalidationControllerTest.kt
0 → 100644
View file @
36c350d8
package
org.jetbrains.skia.sksg
import
org.jetbrains.skia.Rect
import
org.jetbrains.skia.tests.assertCloseEnough
import
kotlin.test.Test
import
kotlin.test.assertTrue
class
InvalidationControllerTest
{
@Test
fun
canCreateWithBounds
()
{
val
controller
=
InvalidationController
()
assertTrue
(
controller
.
bounds
.
isEmpty
)
controller
.
invalidate
(
1.0f
,
1.0f
,
10.0f
,
10.0f
,
null
)
assertCloseEnough
(
Rect
(
1.0f
,
1.0f
,
10.0f
,
10.0f
),
controller
.
bounds
)
controller
.
reset
()
assertTrue
(
controller
.
bounds
.
isEmpty
)
}
}
\ No newline at end of file
skiko/src/jvmMain/cpp/common/sksg/InvalidationController.cc
View file @
36c350d8
...
@@ -27,10 +27,10 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_sksg_InvalidationContr
...
@@ -27,10 +27,10 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_sksg_InvalidationContr
instance
->
inval
(
bounds
,
*
matrix
.
get
());
instance
->
inval
(
bounds
,
*
matrix
.
get
());
}
}
extern
"C"
JNIEXPORT
jobject
JNICALL
Java_org_jetbrains_skia_sksg_InvalidationControllerKt_InvalidationController_1nGetBounds
extern
"C"
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skia_sksg_InvalidationControllerKt_InvalidationController_1nGetBounds
(
JNIEnv
*
env
,
jclass
jclass
,
jlong
ptr
)
{
(
JNIEnv
*
env
,
jclass
jclass
,
jlong
ptr
,
jfloatArray
result
)
{
InvalidationController
*
instance
=
reinterpret_cast
<
InvalidationController
*>
(
static_cast
<
uintptr_t
>
(
ptr
));
InvalidationController
*
instance
=
reinterpret_cast
<
InvalidationController
*>
(
static_cast
<
uintptr_t
>
(
ptr
));
return
skija
::
Rect
::
fromSkRect
(
env
,
instance
->
bounds
()
);
skija
::
Rect
::
copyToInterop
(
env
,
instance
->
bounds
(),
result
);
}
}
extern
"C"
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skia_sksg_InvalidationControllerKt_InvalidationController_1nReset
extern
"C"
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skia_sksg_InvalidationControllerKt_InvalidationController_1nReset
...
...
skiko/src/nativeJsMain/cpp/sksg/InvalidationController.cc
View file @
36c350d8
#include "SkSGInvalidationController.h"
#include "SkSGInvalidationController.h"
#include "common.h"
#include "common.h"
#include "../common.h"
using
sksg
::
InvalidationController
;
static
void
deleteInvalidationController
(
InvalidationController
*
controller
)
{
delete
controller
;
}
SKIKO_EXPORT
KNativePointer
org_jetbrains_skia_sksg_InvalidationController_nGetFinalizer
()
{
SKIKO_EXPORT
KNativePointer
org_jetbrains_skia_sksg_InvalidationController_nGetFinalizer
()
{
TODO
(
"implement org_jetbrains_skia_sksg_InvalidationController_nGetFinalizer"
);
return
reinterpret_cast
<
KNativePointer
>
(
&
deleteInvalidationController
);
}
}
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nMake
()
{
SKIKO_EXPORT
KNativePointer
org_jetbrains_skia_sksg_InvalidationController_nMake
()
{
TODO
(
"implement org_jetbrains_skia_sksg_InvalidationController_nMake"
);
InvalidationController
*
instance
=
new
InvalidationController
();
return
reinterpret_cast
<
KNativePointer
>
(
instance
);
}
}
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nInvalidate
()
{
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nInvalidate
TODO
(
"implement org_jetbrains_skia_sksg_InvalidationController_nInvalidate"
);
(
KNativePointer
ptr
,
KFloat
left
,
KFloat
top
,
KFloat
right
,
KFloat
bottom
,
KFloat
*
matrixArr
)
{
InvalidationController
*
instance
=
reinterpret_cast
<
InvalidationController
*>
(
ptr
);
SkRect
bounds
{
left
,
top
,
right
,
bottom
};
std
::
unique_ptr
<
SkMatrix
>
matrix
=
skMatrix
(
matrixArr
);
instance
->
inval
(
bounds
,
*
matrix
.
get
());
}
}
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nGetBounds
()
{
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nGetBounds
TODO
(
"implement org_jetbrains_skia_sksg_InvalidationController_nGetBounds"
);
(
KNativePointer
ptr
,
KInteropPointer
result
)
{
InvalidationController
*
instance
=
reinterpret_cast
<
InvalidationController
*>
(
ptr
);
skija
::
Rect
::
copyToInterop
(
instance
->
bounds
(),
result
);
}
}
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nReset
()
{
SKIKO_EXPORT
void
org_jetbrains_skia_sksg_InvalidationController_nReset
(
KNativePointer
ptr
)
{
TODO
(
"implement org_jetbrains_skia_sksg_InvalidationController_nReset"
);
InvalidationController
*
instance
=
reinterpret_cast
<
InvalidationController
*>
(
ptr
);
instance
->
reset
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment