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
9d840af0
Commit
9d840af0
authored
Feb 16, 2021
by
Roman Sedaikin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactoring: BuffersCount, toJavaPointer, fromJavaPointer, directXRedrawer.
parent
e1188e24
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
40 additions
and
37 deletions
+40
-37
directXRedrawer.cc
skiko/src/jvmMain/cpp/windows/directXRedrawer.cc
+16
-13
SkiaLayer.kt
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/SkiaLayer.kt
+2
-2
SkikoProperties.kt
...src/jvmMain/kotlin/org/jetbrains/skiko/SkikoProperties.kt
+4
-2
ContextHandler.kt
...Main/kotlin/org/jetbrains/skiko/context/ContextHandler.kt
+4
-4
Direct3DContextHandler.kt
...lin/org/jetbrains/skiko/context/Direct3DContextHandler.kt
+5
-7
MetalContextHandler.kt
...kotlin/org/jetbrains/skiko/context/MetalContextHandler.kt
+3
-3
OpenGLContextHandler.kt
...otlin/org/jetbrains/skiko/context/OpenGLContextHandler.kt
+3
-3
SoftwareContextHandler.kt
...lin/org/jetbrains/skiko/context/SoftwareContextHandler.kt
+3
-3
No files found.
skiko/src/jvmMain/cpp/windows/directXRedrawer.cc
View file @
9d840af0
#ifdef SK_DIRECT3D
#ifdef SK_DIRECT3D
#include <windows.h>
#include <windows.h>
#include <jawt_md.h>
#include <jawt_md.h>
#include "jni_helpers.h"
#include "GrBackendSurface.h"
#include "GrBackendSurface.h"
#include "GrDirectContext.h"
#include "GrDirectContext.h"
#include "SkSurface.h"
#include "SkSurface.h"
...
@@ -11,6 +13,7 @@
...
@@ -11,6 +13,7 @@
#include <d3d12.h>
#include <d3d12.h>
#include <dxgi1_4.h>
#include <dxgi1_4.h>
#define GR_D3D_CALL_ERRCHECK(X) \
#define GR_D3D_CALL_ERRCHECK(X) \
do \
do \
{ \
{ \
...
@@ -22,7 +25,7 @@
...
@@ -22,7 +25,7 @@
} \
} \
} while (false)
} while (false)
extern
"C"
jboolean
Skiko_GetAWT
(
JNIEnv
*
env
,
JAWT
*
awt
)
;
const
int
BuffersCount
=
2
;
class
DirectXDevice
class
DirectXDevice
{
{
...
@@ -49,15 +52,15 @@ extern "C"
...
@@ -49,15 +52,15 @@ extern "C"
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_makeDirectXContext
(
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_makeDirectXContext
(
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
)
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
)
{
{
DirectXDevice
*
d3dDevice
=
reinterpret_cast
<
DirectXDevice
*>
(
static_cast
<
uintptr_t
>
(
devicePtr
)
);
DirectXDevice
*
d3dDevice
=
fromJavaPointer
<
DirectXDevice
*>
(
devicePtr
);
GrD3DBackendContext
backendContext
=
d3dDevice
->
backendContext
;
GrD3DBackendContext
backendContext
=
d3dDevice
->
backendContext
;
return
reinterpret_cast
<
jlong
>
(
GrDirectContext
::
MakeDirect3D
(
backendContext
).
release
());
return
toJavaPointer
(
GrDirectContext
::
MakeDirect3D
(
backendContext
).
release
());
}
}
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_makeDirectXRenderTarget
(
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_makeDirectXRenderTarget
(
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
,
jint
width
,
jint
height
)
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
,
jint
width
,
jint
height
)
{
{
DirectXDevice
*
d3dDevice
=
reinterpret_cast
<
DirectXDevice
*>
(
static_cast
<
uintptr_t
>
(
devicePtr
)
);
DirectXDevice
*
d3dDevice
=
fromJavaPointer
<
DirectXDevice
*>
(
devicePtr
);
d3dDevice
->
bufferIndex
=
d3dDevice
->
swapChain
->
GetCurrentBackBufferIndex
();
d3dDevice
->
bufferIndex
=
d3dDevice
->
swapChain
->
GetCurrentBackBufferIndex
();
ID3D12Resource
*
buffer
;
ID3D12Resource
*
buffer
;
GR_D3D_CALL_ERRCHECK
(
d3dDevice
->
swapChain
->
GetBuffer
(
d3dDevice
->
bufferIndex
,
IID_PPV_ARGS
(
&
buffer
)));
GR_D3D_CALL_ERRCHECK
(
d3dDevice
->
swapChain
->
GetBuffer
(
d3dDevice
->
bufferIndex
,
IID_PPV_ARGS
(
&
buffer
)));
...
@@ -69,7 +72,7 @@ extern "C"
...
@@ -69,7 +72,7 @@ extern "C"
1
,
1
,
0
);
0
);
GrBackendRenderTarget
*
renderTarget
=
new
GrBackendRenderTarget
(
width
,
height
,
info
);
GrBackendRenderTarget
*
renderTarget
=
new
GrBackendRenderTarget
(
width
,
height
,
info
);
return
reinterpret_cast
<
jlong
>
(
renderTarget
);
return
toJavaPointer
(
renderTarget
);
}
}
void
defineHardwareAdapter
(
IDXGIFactory4
*
pFactory
,
IDXGIAdapter1
**
ppAdapter
)
void
defineHardwareAdapter
(
IDXGIFactory4
*
pFactory
,
IDXGIAdapter1
**
ppAdapter
)
...
@@ -127,13 +130,13 @@ extern "C"
...
@@ -127,13 +130,13 @@ extern "C"
d3dDevice
->
device
=
device
;
d3dDevice
->
device
=
device
;
d3dDevice
->
queue
=
queue
;
d3dDevice
->
queue
=
queue
;
return
reinterpret_cast
<
jlong
>
(
d3dDevice
);
return
toJavaPointer
(
d3dDevice
);
}
}
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_createSwapChain
(
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_createSwapChain
(
JNIEnv
*
env
,
jobject
redrawer
,
jlong
windowHandle
,
jlong
devicePtr
)
JNIEnv
*
env
,
jobject
redrawer
,
jlong
windowHandle
,
jlong
devicePtr
)
{
{
DirectXDevice
*
d3dDevice
=
reinterpret_cast
<
DirectXDevice
*>
(
static_cast
<
uintptr_t
>
(
devicePtr
)
);
DirectXDevice
*
d3dDevice
=
fromJavaPointer
<
DirectXDevice
*>
(
devicePtr
);
// Make the swapchain
// Make the swapchain
HWND
fWindow
=
(
HWND
)
windowHandle
;
HWND
fWindow
=
(
HWND
)
windowHandle
;
...
@@ -142,7 +145,7 @@ extern "C"
...
@@ -142,7 +145,7 @@ extern "C"
GR_D3D_CALL_ERRCHECK
(
CreateDXGIFactory2
(
0
,
IID_PPV_ARGS
(
&
factory
)));
GR_D3D_CALL_ERRCHECK
(
CreateDXGIFactory2
(
0
,
IID_PPV_ARGS
(
&
factory
)));
DXGI_SWAP_CHAIN_DESC1
swapChainDesc
=
{};
DXGI_SWAP_CHAIN_DESC1
swapChainDesc
=
{};
swapChainDesc
.
BufferCount
=
2
;
swapChainDesc
.
BufferCount
=
BuffersCount
;
swapChainDesc
.
Format
=
DXGI_FORMAT_R8G8B8A8_UNORM
;
swapChainDesc
.
Format
=
DXGI_FORMAT_R8G8B8A8_UNORM
;
swapChainDesc
.
BufferUsage
=
DXGI_USAGE_RENDER_TARGET_OUTPUT
;
swapChainDesc
.
BufferUsage
=
DXGI_USAGE_RENDER_TARGET_OUTPUT
;
swapChainDesc
.
SwapEffect
=
DXGI_SWAP_EFFECT_FLIP_DISCARD
;
swapChainDesc
.
SwapEffect
=
DXGI_SWAP_EFFECT_FLIP_DISCARD
;
...
@@ -161,10 +164,10 @@ extern "C"
...
@@ -161,10 +164,10 @@ extern "C"
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_resizeBuffers
(
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_resizeBuffers
(
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
,
jint
width
,
jint
height
)
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
,
jint
width
,
jint
height
)
{
{
DirectXDevice
*
d3dDevice
=
reinterpret_cast
<
DirectXDevice
*>
(
static_cast
<
uintptr_t
>
(
devicePtr
)
);
DirectXDevice
*
d3dDevice
=
fromJavaPointer
<
DirectXDevice
*>
(
devicePtr
);
if
(
!
d3dDevice
->
isSizeEqualTo
(
width
,
height
))
if
(
!
d3dDevice
->
isSizeEqualTo
(
width
,
height
))
{
{
GR_D3D_CALL_ERRCHECK
(
d3dDevice
->
swapChain
->
ResizeBuffers
(
2
,
width
,
height
,
DXGI_FORMAT_R8G8B8A8_UNORM
,
0
));
GR_D3D_CALL_ERRCHECK
(
d3dDevice
->
swapChain
->
ResizeBuffers
(
BuffersCount
,
width
,
height
,
DXGI_FORMAT_R8G8B8A8_UNORM
,
0
));
d3dDevice
->
bufferWidth
=
width
;
d3dDevice
->
bufferWidth
=
width
;
d3dDevice
->
bufferHeight
=
height
;
d3dDevice
->
bufferHeight
=
height
;
}
}
...
@@ -173,11 +176,11 @@ extern "C"
...
@@ -173,11 +176,11 @@ extern "C"
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_finishFrame
(
JNIEXPORT
void
JNICALL
Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_finishFrame
(
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
,
jlong
contextPtr
,
jlong
surfacePtr
)
JNIEnv
*
env
,
jobject
redrawer
,
jlong
devicePtr
,
jlong
contextPtr
,
jlong
surfacePtr
)
{
{
DirectXDevice
*
d3dDevice
=
reinterpret_cast
<
DirectXDevice
*>
(
static_cast
<
uintptr_t
>
(
devicePtr
)
);
DirectXDevice
*
d3dDevice
=
fromJavaPointer
<
DirectXDevice
*>
(
devicePtr
);
SkSurface
*
surface
=
reinterpret_cast
<
SkSurface
*>
(
static_cast
<
uintptr_t
>
(
surfacePtr
)
);
SkSurface
*
surface
=
fromJavaPointer
<
SkSurface
*>
(
surfacePtr
);
surface
->
flushAndSubmit
();
surface
->
flushAndSubmit
();
GrDirectContext
*
fContext
=
reinterpret_cast
<
GrDirectContext
*>
(
static_cast
<
uintptr_t
>
(
contextPtr
)
);
GrDirectContext
*
fContext
=
fromJavaPointer
<
GrDirectContext
*>
(
contextPtr
);
surface
->
flush
(
SkSurface
::
BackendSurfaceAccess
::
kPresent
,
GrFlushInfo
());
surface
->
flush
(
SkSurface
::
BackendSurfaceAccess
::
kPresent
,
GrFlushInfo
());
fContext
->
flush
({});
fContext
->
flush
({});
fContext
->
submit
(
true
);
fContext
->
submit
(
true
);
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/SkiaLayer.kt
View file @
9d840af0
...
@@ -26,7 +26,7 @@ open class SkiaLayer : HardwareLayer() {
...
@@ -26,7 +26,7 @@ open class SkiaLayer : HardwareLayer() {
@Volatile
@Volatile
private
var
isDisposed
=
false
private
var
isDisposed
=
false
private
var
redrawer
:
Redrawer
?
=
null
internal
var
redrawer
:
Redrawer
?
=
null
@Volatile
@Volatile
private
var
picture
:
PictureHolder
?
=
null
private
var
picture
:
PictureHolder
?
=
null
...
@@ -103,7 +103,7 @@ open class SkiaLayer : HardwareLayer() {
...
@@ -103,7 +103,7 @@ open class SkiaLayer : HardwareLayer() {
override
fun
draw
()
{
override
fun
draw
()
{
check
(!
isDisposed
)
check
(!
isDisposed
)
contextHandler
.
apply
{
contextHandler
.
apply
{
if
(!
initContext
(
redrawer
!!
))
{
if
(!
initContext
())
{
fallbackToRaster
()
fallbackToRaster
()
return
return
}
}
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/SkikoProperties.kt
View file @
9d840af0
...
@@ -30,10 +30,12 @@ internal object SkikoProperties {
...
@@ -30,10 +30,12 @@ internal object SkikoProperties {
"SOFTWARE"
->
return
GraphicsApi
.
SOFTWARE
"SOFTWARE"
->
return
GraphicsApi
.
SOFTWARE
"OPENGL"
->
return
GraphicsApi
.
OPENGL
"OPENGL"
->
return
GraphicsApi
.
OPENGL
"DIRECT3D"
->
{
"DIRECT3D"
->
{
return
if
(
hostOs
==
OS
.
Windows
)
GraphicsApi
.
DIRECT3D
else
bestRenderApiForCurrentOS
()
return
if
(
hostOs
==
OS
.
Windows
)
GraphicsApi
.
DIRECT3D
else
throw
Exception
(
"$hostOs does not support DirectX rendering API."
)
}
}
"METAL"
->
{
"METAL"
->
{
return
if
(
hostOs
==
OS
.
MacOS
)
GraphicsApi
.
METAL
else
bestRenderApiForCurrentOS
()
return
if
(
hostOs
==
OS
.
MacOS
)
GraphicsApi
.
METAL
else
throw
Exception
(
"$hostOs does not support Metal rendering API."
)
}
}
else
->
return
bestRenderApiForCurrentOS
()
else
->
return
bestRenderApiForCurrentOS
()
}
}
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/context/ContextHandler.kt
View file @
9d840af0
...
@@ -6,13 +6,13 @@ import org.jetbrains.skija.DirectContext
...
@@ -6,13 +6,13 @@ import org.jetbrains.skija.DirectContext
import
org.jetbrains.skija.Picture
import
org.jetbrains.skija.Picture
import
org.jetbrains.skija.Surface
import
org.jetbrains.skija.Surface
import
org.jetbrains.skiko.GraphicsApi
import
org.jetbrains.skiko.GraphicsApi
import
org.jetbrains.skiko.
Hardware
Layer
import
org.jetbrains.skiko.
Skia
Layer
import
org.jetbrains.skiko.OS
import
org.jetbrains.skiko.OS
import
org.jetbrains.skiko.SkikoProperties
import
org.jetbrains.skiko.SkikoProperties
import
org.jetbrains.skiko.hostOs
import
org.jetbrains.skiko.hostOs
import
org.jetbrains.skiko.redrawer.Redrawer
import
org.jetbrains.skiko.redrawer.Redrawer
internal
fun
createContextHandler
(
layer
:
Hardware
Layer
):
ContextHandler
{
internal
fun
createContextHandler
(
layer
:
Skia
Layer
):
ContextHandler
{
return
when
(
SkikoProperties
.
renderApi
)
{
return
when
(
SkikoProperties
.
renderApi
)
{
GraphicsApi
.
SOFTWARE
->
SoftwareContextHandler
(
layer
)
GraphicsApi
.
SOFTWARE
->
SoftwareContextHandler
(
layer
)
GraphicsApi
.
OPENGL
->
OpenGLContextHandler
(
layer
)
GraphicsApi
.
OPENGL
->
OpenGLContextHandler
(
layer
)
...
@@ -21,14 +21,14 @@ internal fun createContextHandler(layer: HardwareLayer): ContextHandler {
...
@@ -21,14 +21,14 @@ internal fun createContextHandler(layer: HardwareLayer): ContextHandler {
}
}
}
}
internal
abstract
class
ContextHandler
(
val
layer
:
Hardware
Layer
)
{
internal
abstract
class
ContextHandler
(
val
layer
:
Skia
Layer
)
{
open
val
bleachConstant
=
if
(
hostOs
==
OS
.
MacOS
)
0
else
-
1
open
val
bleachConstant
=
if
(
hostOs
==
OS
.
MacOS
)
0
else
-
1
var
context
:
DirectContext
?
=
null
var
context
:
DirectContext
?
=
null
var
renderTarget
:
BackendRenderTarget
?
=
null
var
renderTarget
:
BackendRenderTarget
?
=
null
var
surface
:
Surface
?
=
null
var
surface
:
Surface
?
=
null
var
canvas
:
Canvas
?
=
null
var
canvas
:
Canvas
?
=
null
abstract
fun
initContext
(
redrawer
:
Redrawer
):
Boolean
abstract
fun
initContext
():
Boolean
abstract
fun
initCanvas
()
abstract
fun
initCanvas
()
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/context/Direct3DContextHandler.kt
View file @
9d840af0
...
@@ -7,19 +7,17 @@ import org.jetbrains.skija.Surface
...
@@ -7,19 +7,17 @@ import org.jetbrains.skija.Surface
import
org.jetbrains.skija.SurfaceColorFormat
import
org.jetbrains.skija.SurfaceColorFormat
import
org.jetbrains.skija.SurfaceOrigin
import
org.jetbrains.skija.SurfaceOrigin
import
org.jetbrains.skija.impl.Native
import
org.jetbrains.skija.impl.Native
import
org.jetbrains.skiko.HardwareLayer
import
org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.redrawer.Direct3DRedrawer
import
org.jetbrains.skiko.redrawer.Direct3DRedrawer
import
org.jetbrains.skiko.redrawer.Redrawer
import
org.jetbrains.skiko.redrawer.Redrawer
internal
class
Direct3DContextHandler
(
layer
:
HardwareLayer
)
:
ContextHandler
(
layer
)
{
internal
class
Direct3DContextHandler
(
layer
:
SkiaLayer
)
:
ContextHandler
(
layer
)
{
lateinit
var
directXRedrawer
:
Direct3DRedrawer
val
directXRedrawer
:
Direct3DRedrawer
get
()
=
layer
.
redrawer
!!
as
Direct3DRedrawer
var
device
:
Long
=
0
var
device
:
Long
=
0
override
fun
initContext
(
redrawer
:
Redrawer
):
Boolean
{
override
fun
initContext
():
Boolean
{
try
{
try
{
if
(!
this
::
directXRedrawer
.
isInitialized
)
{
directXRedrawer
=
redrawer
as
Direct3DRedrawer
}
if
(
context
==
null
)
{
if
(
context
==
null
)
{
device
=
directXRedrawer
.
createDevice
()
device
=
directXRedrawer
.
createDevice
()
directXRedrawer
.
createSwapChain
(
layer
.
windowHandle
,
device
)
directXRedrawer
.
createSwapChain
(
layer
.
windowHandle
,
device
)
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/context/MetalContextHandler.kt
View file @
9d840af0
...
@@ -5,13 +5,13 @@ import org.jetbrains.skija.Surface
...
@@ -5,13 +5,13 @@ import org.jetbrains.skija.Surface
import
org.jetbrains.skija.SurfaceColorFormat
import
org.jetbrains.skija.SurfaceColorFormat
import
org.jetbrains.skija.SurfaceOrigin
import
org.jetbrains.skija.SurfaceOrigin
import
org.jetbrains.skiko.GraphicsApi
import
org.jetbrains.skiko.GraphicsApi
import
org.jetbrains.skiko.
Hardware
Layer
import
org.jetbrains.skiko.
Skia
Layer
import
org.jetbrains.skiko.makeMetalContext
import
org.jetbrains.skiko.makeMetalContext
import
org.jetbrains.skiko.makeMetalRenderTarget
import
org.jetbrains.skiko.makeMetalRenderTarget
import
org.jetbrains.skiko.redrawer.Redrawer
import
org.jetbrains.skiko.redrawer.Redrawer
internal
class
MetalContextHandler
(
layer
:
Hardware
Layer
)
:
ContextHandler
(
layer
)
{
internal
class
MetalContextHandler
(
layer
:
Skia
Layer
)
:
ContextHandler
(
layer
)
{
override
fun
initContext
(
redrawer
:
Redrawer
):
Boolean
{
override
fun
initContext
():
Boolean
{
try
{
try
{
if
(
context
==
null
)
{
if
(
context
==
null
)
{
context
=
makeMetalContext
()
context
=
makeMetalContext
()
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/context/OpenGLContextHandler.kt
View file @
9d840af0
...
@@ -6,14 +6,14 @@ import org.jetbrains.skija.Picture
...
@@ -6,14 +6,14 @@ import org.jetbrains.skija.Picture
import
org.jetbrains.skija.Surface
import
org.jetbrains.skija.Surface
import
org.jetbrains.skija.SurfaceColorFormat
import
org.jetbrains.skija.SurfaceColorFormat
import
org.jetbrains.skija.SurfaceOrigin
import
org.jetbrains.skija.SurfaceOrigin
import
org.jetbrains.skiko.
Hardware
Layer
import
org.jetbrains.skiko.
Skia
Layer
import
org.jetbrains.skiko.makeGLContext
import
org.jetbrains.skiko.makeGLContext
import
org.jetbrains.skiko.makeGLRenderTarget
import
org.jetbrains.skiko.makeGLRenderTarget
import
org.jetbrains.skiko.OpenGLApi
import
org.jetbrains.skiko.OpenGLApi
import
org.jetbrains.skiko.redrawer.Redrawer
import
org.jetbrains.skiko.redrawer.Redrawer
internal
class
OpenGLContextHandler
(
layer
:
Hardware
Layer
)
:
ContextHandler
(
layer
)
{
internal
class
OpenGLContextHandler
(
layer
:
Skia
Layer
)
:
ContextHandler
(
layer
)
{
override
fun
initContext
(
redrawer
:
Redrawer
):
Boolean
{
override
fun
initContext
():
Boolean
{
try
{
try
{
if
(
context
==
null
)
{
if
(
context
==
null
)
{
context
=
makeGLContext
()
context
=
makeGLContext
()
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skiko/context/SoftwareContextHandler.kt
View file @
9d840af0
...
@@ -14,12 +14,12 @@ import java.awt.image.Raster
...
@@ -14,12 +14,12 @@ import java.awt.image.Raster
import
org.jetbrains.skija.Bitmap
import
org.jetbrains.skija.Bitmap
import
org.jetbrains.skija.ColorAlphaType
import
org.jetbrains.skija.ColorAlphaType
import
org.jetbrains.skija.Canvas
import
org.jetbrains.skija.Canvas
import
org.jetbrains.skiko.
Hardware
Layer
import
org.jetbrains.skiko.
Skia
Layer
import
org.jetbrains.skija.ImageInfo
import
org.jetbrains.skija.ImageInfo
import
org.jetbrains.skija.Picture
import
org.jetbrains.skija.Picture
import
org.jetbrains.skiko.redrawer.Redrawer
import
org.jetbrains.skiko.redrawer.Redrawer
internal
class
SoftwareContextHandler
(
layer
:
Hardware
Layer
)
:
ContextHandler
(
layer
)
{
internal
class
SoftwareContextHandler
(
layer
:
Skia
Layer
)
:
ContextHandler
(
layer
)
{
override
val
bleachConstant
=
-
1
// it looks like java.awt.Canvas doesn't support transparency
override
val
bleachConstant
=
-
1
// it looks like java.awt.Canvas doesn't support transparency
val
colorModel
=
ComponentColorModel
(
val
colorModel
=
ComponentColorModel
(
...
@@ -34,7 +34,7 @@ internal class SoftwareContextHandler(layer: HardwareLayer) : ContextHandler(lay
...
@@ -34,7 +34,7 @@ internal class SoftwareContextHandler(layer: HardwareLayer) : ContextHandler(lay
var
imageData
:
ByteArray
?
=
null
var
imageData
:
ByteArray
?
=
null
var
raster
:
WritableRaster
?
=
null
var
raster
:
WritableRaster
?
=
null
override
fun
initContext
(
redrawer
:
Redrawer
):
Boolean
{
override
fun
initContext
():
Boolean
{
// Raster does not need context
// Raster does not need context
return
true
return
true
}
}
...
...
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