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
1da66b06
Commit
1da66b06
authored
Sep 03, 2021
by
Nikolay Igotti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simple wrapper for one function.
parent
81ed0544
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
66 additions
and
5 deletions
+66
-5
build.gradle.kts
skiko/build.gradle.kts
+0
-1
BackendRenderTarget.cc
skiko/src/jsMain/cpp/BackendRenderTarget.cc
+58
-0
wrapper.cc
skiko/src/jsMain/cpp/wrapper.cc
+3
-1
BackendRenderTarget.cc
skiko/src/macosX64Main/cpp/common/BackendRenderTarget.cc
+5
-3
No files found.
skiko/build.gradle.kts
View file @
1da66b06
...
@@ -556,7 +556,6 @@ val skikoJvmRuntimeJar by project.tasks.registering(Jar::class) {
...
@@ -556,7 +556,6 @@ val skikoJvmRuntimeJar by project.tasks.registering(Jar::class) {
project
.
tasks
.
register
<
Jar
>(
"skikoJsJar"
)
{
project
.
tasks
.
register
<
Jar
>(
"skikoJsJar"
)
{
// We produce jar that contains .js of wrapper/bindings and .wasm with Skia + bindings.
// We produce jar that contains .js of wrapper/bindings and .wasm with Skia + bindings.
from
(
kotlin
.
js
().
compilations
[
"main"
].
output
.
allOutputs
)
from
(
project
.
tasks
.
named
(
"wasmCompile"
).
get
().
outputs
)
from
(
project
.
tasks
.
named
(
"wasmCompile"
).
get
().
outputs
)
from
(
project
.
tasks
.
named
(
"jsJar"
).
get
().
outputs
)
from
(
project
.
tasks
.
named
(
"jsJar"
).
get
().
outputs
)
archiveBaseName
.
set
(
"skiko-wasm"
)
archiveBaseName
.
set
(
"skiko-wasm"
)
...
...
skiko/src/jsMain/cpp/BackendRenderTarget.cc
0 → 100644
View file @
1da66b06
#include "GrBackendSurface.h"
#include <emscripten.h>
typedef
int32_t
jint
;
typedef
int64_t
jlong
;
static
void
deleteBackendRenderTarget
(
GrBackendRenderTarget
*
rt
)
{
delete
rt
;
}
EMSCRIPTEN_KEEPALIVE
extern
"C"
long
BackendRenderTarget_nGetFinalizer
()
{
return
static_cast
<
jlong
>
(
reinterpret_cast
<
uintptr_t
>
(
&
deleteBackendRenderTarget
));
}
EMSCRIPTEN_KEEPALIVE
extern
"C"
long
BackendRenderTarget_nMakeGL
(
jint
width
,
jint
height
,
jint
sampleCnt
,
jint
stencilBits
,
jint
fbId
,
jint
fbFormat
)
{
GrGLFramebufferInfo
glInfo
=
{
static_cast
<
unsigned
int
>
(
fbId
),
static_cast
<
unsigned
int
>
(
fbFormat
)
};
GrBackendRenderTarget
*
instance
=
new
GrBackendRenderTarget
(
width
,
height
,
sampleCnt
,
stencilBits
,
glInfo
);
return
reinterpret_cast
<
jlong
>
(
instance
);
}
EMSCRIPTEN_KEEPALIVE
extern
"C"
long
BackendRenderTarget_nMakeMetal
(
jint
width
,
jint
height
,
jlong
texturePtr
)
{
#ifdef SK_METAL
GrMTLHandle
texture
=
reinterpret_cast
<
GrMTLHandle
>
(
static_cast
<
uintptr_t
>
(
texturePtr
));
GrMtlTextureInfo
fbInfo
;
fbInfo
.
fTexture
.
retain
(
texture
);
GrBackendRenderTarget
*
instance
=
new
GrBackendRenderTarget
(
width
,
height
,
fbInfo
);
return
reinterpret_cast
<
jlong
>
(
instance
);
#else
return
0
;
#endif
}
#ifdef SK_DIRECT3D
#include "d3d/GrD3DTypes.h"
#endif
EMSCRIPTEN_KEEPALIVE
extern
"C"
jlong
BackendRenderTarget_MakeDirect3D
(
jint
width
,
jint
height
,
jlong
texturePtr
,
jint
format
,
jint
sampleCnt
,
jint
levelCnt
)
{
#ifdef SK_DIRECT3D
GrD3DTextureResourceInfo
texResInfo
=
{};
ID3D12Resource
*
resource
=
reinterpret_cast
<
ID3D12Resource
*>
(
static_cast
<
uintptr_t
>
(
texturePtr
));
texResInfo
.
fResource
.
retain
(
resource
);
texResInfo
.
fResourceState
=
D3D12_RESOURCE_STATE_COMMON
;
texResInfo
.
fFormat
=
static_cast
<
DXGI_FORMAT
>
(
format
);
texResInfo
.
fSampleCount
=
static_cast
<
uint32_t
>
(
sampleCnt
);
texResInfo
.
fLevelCount
=
static_cast
<
uint32_t
>
(
levelCnt
);
GrBackendRenderTarget
*
instance
=
new
GrBackendRenderTarget
(
width
,
height
,
texResInfo
);
return
reinterpret_cast
<
jlong
>
(
instance
);
#else
return
0
;
#endif
}
\ No newline at end of file
skiko/src/jsMain/cpp/wrapper.cc
View file @
1da66b06
#include "GrBackendSurface.h"
#include "GrBackendSurface.h"
#include "GrDirectContext.h"
#include "GrDirectContext.h"
#include <emscripten.h>
void
*
init_surface
()
{
EMSCRIPTEN_KEEPALIVE
extern
"C"
void
*
init_surface
()
{
return
nullptr
;
return
nullptr
;
}
}
...
...
skiko/src/macosX64Main/cpp/common/BackendRenderTarget.cc
View file @
1da66b06
#include <iostream>
#include <iostream>
#include <
jni
.h>
#include <
stdint
.h>
#include "GrBackendSurface.h"
#include "GrBackendSurface.h"
typedef
jint
int32_t
;
typedef
jlong
int64_t
;
static
void
deleteBackendRenderTarget
(
GrBackendRenderTarget
*
rt
)
{
static
void
deleteBackendRenderTarget
(
GrBackendRenderTarget
*
rt
)
{
delete
rt
;
delete
rt
;
}
}
...
@@ -29,14 +32,13 @@ extern "C" jlong BackendRenderTarget_nMakeMetal
...
@@ -29,14 +32,13 @@ extern "C" jlong BackendRenderTarget_nMakeMetal
return
0
;
return
0
;
#endif
#endif
}
}
#endif
#ifdef SK_DIRECT3D
#ifdef SK_DIRECT3D
#include "d3d/GrD3DTypes.h"
#include "d3d/GrD3DTypes.h"
#endif
#endif
extern
"C"
jlong
BackendRenderTarget_MakeDirect3D
extern
"C"
jlong
BackendRenderTarget_MakeDirect3D
(
jint
width
,
jint
height
,
jlong
texturePtr
,
jint
format
,
jint
sampleCnt
,
jint
levelCnt
)
{
#
ifdef
SK_DIRECT3D
(
jint
width
,
jint
height
,
jlong
texturePtr
,
jint
format
,
jint
sampleCnt
,
jint
levelCnt
)
{
#ifdef SK_DIRECT3D
#ifdef SK_DIRECT3D
GrD3DTextureResourceInfo
texResInfo
=
{};
GrD3DTextureResourceInfo
texResInfo
=
{};
ID3D12Resource
*
resource
=
reinterpret_cast
<
ID3D12Resource
*>
(
static_cast
<
uintptr_t
>
(
texturePtr
));
ID3D12Resource
*
resource
=
reinterpret_cast
<
ID3D12Resource
*>
(
static_cast
<
uintptr_t
>
(
texturePtr
));
...
...
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