resource loading fixes on Android
This commit is contained in:
@@ -73,6 +73,9 @@ class PolyvoxFilamentPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Lo
|
|||||||
|
|
||||||
private lateinit var activity:Activity
|
private lateinit var activity:Activity
|
||||||
|
|
||||||
|
private var loadResourceWrapper:LoadFilamentResourceFromOwnerImpl = LoadFilamentResourceFromOwnerImpl(this)
|
||||||
|
private var freeResourceWrapper:FreeFilamentResourceFromOwnerImpl = FreeFilamentResourceFromOwnerImpl(this)
|
||||||
|
|
||||||
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
|
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
|
||||||
this.flutterPluginBinding = flutterPluginBinding
|
this.flutterPluginBinding = flutterPluginBinding
|
||||||
channel = MethodChannel(flutterPluginBinding.binaryMessenger, CHANNEL_NAME)
|
channel = MethodChannel(flutterPluginBinding.binaryMessenger, CHANNEL_NAME)
|
||||||
@@ -86,7 +89,7 @@ class PolyvoxFilamentPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Lo
|
|||||||
activity.window.setFormat(PixelFormat.RGBA_8888)
|
activity.window.setFormat(PixelFormat.RGBA_8888)
|
||||||
}
|
}
|
||||||
|
|
||||||
val _resources:MutableMap<Int,Memory> = mutableMapOf();
|
val _resources:MutableMap<ResourceBuffer,Memory> = mutableMapOf();
|
||||||
var _lastId = 1
|
var _lastId = 1
|
||||||
|
|
||||||
override fun loadResourceFromOwner(path: String?, owner: Pointer?): ResourceBuffer {
|
override fun loadResourceFromOwner(path: String?, owner: Pointer?): ResourceBuffer {
|
||||||
@@ -120,7 +123,7 @@ class PolyvoxFilamentPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Lo
|
|||||||
rb.data = dataPtr
|
rb.data = dataPtr
|
||||||
rb.size = data.size
|
rb.size = data.size
|
||||||
rb.id = _lastId
|
rb.id = _lastId
|
||||||
_resources[rb.id] = dataPtr;
|
_resources[rb] = dataPtr;
|
||||||
_lastId++
|
_lastId++
|
||||||
} else {
|
} else {
|
||||||
rb.id = 0
|
rb.id = 0
|
||||||
@@ -136,11 +139,11 @@ class PolyvoxFilamentPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Lo
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun freeResourceFromOwner(rb: ResourceBuffer, owner: Pointer?) {
|
override fun freeResourceFromOwner(rb: ResourceBuffer, owner: Pointer?) {
|
||||||
_resources.remove(rb.id)
|
_resources.remove(rb)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun renderCallback() {
|
fun renderCallback() {
|
||||||
Log.e("polyvox_filament", "Rdner callacbk", null)
|
// noop, log or check surface.valid() is you want
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -182,7 +185,7 @@ class PolyvoxFilamentPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Lo
|
|||||||
result.success(resultList)
|
result.success(resultList)
|
||||||
}
|
}
|
||||||
"getResourceLoaderWrapper" -> {
|
"getResourceLoaderWrapper" -> {
|
||||||
val resourceLoader = _lib.make_resource_loader(LoadFilamentResourceFromOwnerImpl(this), FreeFilamentResourceFromOwnerImpl(this), Pointer(0))
|
val resourceLoader = _lib.make_resource_loader(loadResourceWrapper, freeResourceWrapper, Pointer(0))
|
||||||
result.success(Pointer.nativeValue(resourceLoader))
|
result.success(Pointer.nativeValue(resourceLoader))
|
||||||
}
|
}
|
||||||
"getRenderCallback" -> {
|
"getRenderCallback" -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user