Generate imaging and rendering API shims
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -86,6 +86,7 @@ name = "libremetaverse-rendering-simple"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"libremetaverse",
|
||||
"libremetaverse-imaging",
|
||||
"libremetaverse-types",
|
||||
]
|
||||
|
||||
|
||||
@@ -7,9 +7,10 @@ host, bind to, invoke, or ship the .NET implementation. The current
|
||||
stage is a compiling structural shell: crate boundaries mirror the .NET library
|
||||
projects, public C# type names have Rust declarations, every upstream NUnit case
|
||||
has a traceable placeholder, and every sample/tool project has a Rust binary
|
||||
target. The Types and StructuredData assemblies now have complete callable,
|
||||
failure-only signatures; the remaining assembly slices and semantic Rust test
|
||||
translations are still required before the public API shim is complete.
|
||||
target. Types, StructuredData, Imaging, PrimMesher, and both rendering adapters
|
||||
now have complete callable, failure-only signatures; the remaining assembly
|
||||
slices and semantic Rust test translations are still required before the public
|
||||
API shim is complete.
|
||||
|
||||
The source snapshot, compatibility rules, dependency research, and ordered
|
||||
implementation plan are in [RUSTREWRITE.md](RUSTREWRITE.md).
|
||||
|
||||
@@ -51,9 +51,9 @@ The current workspace is a structural baseline, not a working client:
|
||||
- compiled metadata records 3,066 public types and 30,789 public members with
|
||||
matching independent ECMA-335 counts, with all 142 external signature types
|
||||
resolved to cross-platform Rust or project-owned boundary types;
|
||||
- the Types and StructuredData slices expose 61 final Rust-facing types and all
|
||||
1,237 callable members with real fields/constants/enum values and standardized
|
||||
failing bodies;
|
||||
- the completed Types, StructuredData, Imaging, PrimMesher, and rendering slices
|
||||
expose 84 final Rust-facing types and all 1,487 callable members with real
|
||||
fields/constants/enum values and standardized failing bodies;
|
||||
- all 1,295 NUnit `[Test]`/`[TestCase]` invocations have compiling Rust test
|
||||
entries that intentionally panic with their source identity and body hash;
|
||||
- all nine sample/tool projects have compiling Rust binary targets;
|
||||
|
||||
@@ -11123,7 +11123,7 @@ M:LibreMetaverse.GridClient.DisposeAsync method System.Threading.Tasks.ValueTask
|
||||
M:LibreMetaverse.GridClient.ToString method System.String LibreMetaverse.GridClient.ToString() libremetaverse libremetaverse::GridClient::to_string pub fn to_string(&self) -> String shared_self sync infallible_placeholder direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridClientBakingTextureProvider.#ctor(LibreMetaverse.GridClient) constructor LibreMetaverse.GridClientBakingTextureProvider(LibreMetaverse.GridClient client) libremetaverse libremetaverse::GridClientBakingTextureProvider::new pub fn new(client: libremetaverse::GridClient) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridClientBakingTextureProvider.RequestTextureAsync(LibreMetaverse.UUID,System.Threading.CancellationToken) method System.Threading.Tasks.Task<LibreMetaverse.Assets.AssetTexture> LibreMetaverse.GridClientBakingTextureProvider.RequestTextureAsync(LibreMetaverse.UUID textureID, System.Threading.CancellationToken cancellationToken = default) libremetaverse libremetaverse::GridClientBakingTextureProvider::request_texture pub async fn request_texture(&self, texture_id: libremetaverse_types::UUID, cancellation_token: Option<libremetaverse_types::compat::CancellationToken>) -> Result<Option<libremetaverse::assets::AssetTexture>, crate::Error> shared_self,owned,optional_owned async Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridClientServiceCollectionExtensions.AddGridClient(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{LibreMetaverse.Settings}) method Microsoft.Extensions.DependencyInjection.IServiceCollection LibreMetaverse.GridClientServiceCollectionExtensions.AddGridClient(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<LibreMetaverse.Settings> configure = default) libremetaverse libremetaverse::GridClientServiceCollectionExtensions::add_grid_client pub fn add_grid_client(services: libremetaverse::services::IServiceCollection, configure: Option<Box<dyn Fn(libremetaverse::Settings) + Send + Sync>>) -> Result<libremetaverse::services::IServiceCollection, crate::Error> owned,optional_owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridClientServiceCollectionExtensions.AddGridClient(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{LibreMetaverse.Settings}) method Microsoft.Extensions.DependencyInjection.IServiceCollection LibreMetaverse.GridClientServiceCollectionExtensions.AddGridClient(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<LibreMetaverse.Settings> configure = default) libremetaverse libremetaverse::GridClientServiceCollectionExtensions::add_grid_client pub fn add_grid_client(services: Box<dyn libremetaverse::services::IServiceCollection>, configure: Option<Box<dyn Fn(libremetaverse::Settings) + Send + Sync>>) -> Result<Box<dyn libremetaverse::services::IServiceCollection>, crate::Error> owned,optional_owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridItemsEventArgs.#ctor(LibreMetaverse.GridItemType,System.Collections.Generic.List{LibreMetaverse.MapItem}) constructor LibreMetaverse.GridItemsEventArgs(LibreMetaverse.GridItemType type, System.Collections.Generic.List<LibreMetaverse.MapItem> items) libremetaverse libremetaverse::GridItemsEventArgs::new pub fn new(type_: libremetaverse::GridItemType, items: Vec<libremetaverse::MapItem>) -> Result<Self, crate::Error> owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridLayer.ContainsRegion(System.Int32,System.Int32) method System.Boolean LibreMetaverse.GridLayer.ContainsRegion(System.Int32 x, System.Int32 y) libremetaverse libremetaverse::GridLayer::contains_region pub fn contains_region(&self, x: i32, y: i32) -> Result<bool, crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.GridLayerEventArgs.#ctor(LibreMetaverse.GridLayer) constructor LibreMetaverse.GridLayerEventArgs(LibreMetaverse.GridLayer layer) libremetaverse libremetaverse::GridLayerEventArgs::new pub fn new(layer: libremetaverse::GridLayer) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
@@ -11282,8 +11282,8 @@ M:LibreMetaverse.Imaging.ManagedImage.ExportRaw method System.Byte[] LibreMetave
|
||||
M:LibreMetaverse.Imaging.ManagedImage.ResizeBilinear(System.Int32,System.Int32) method System.Void LibreMetaverse.Imaging.ManagedImage.ResizeBilinear(System.Int32 width, System.Int32 height) libremetaverse-imaging libremetaverse_imaging::ManagedImage::resize_bilinear pub fn resize_bilinear(&self, width: i32, height: i32) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImage.ResizeNearestNeighbor(System.Int32,System.Int32) method System.Void LibreMetaverse.Imaging.ManagedImage.ResizeNearestNeighbor(System.Int32 width, System.Int32 height) libremetaverse-imaging libremetaverse_imaging::ManagedImage::resize_nearest_neighbor pub fn resize_nearest_neighbor(&self, width: i32, height: i32) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImageCreator.#ctor constructor LibreMetaverse.Imaging.ManagedImageCreator() libremetaverse imaging libremetaverse::imaging::ManagedImageCreator::new pub fn new() -> Result<Self, crate::Error> none sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImageCreator.Create(System.Int32,System.Int32,System.Int32,System.Byte[]) method CoreJ2K.Util.IImage LibreMetaverse.Imaging.ManagedImageCreator.Create(System.Int32 width, System.Int32 height, System.Int32 numComponents, System.Byte[] bytes) libremetaverse imaging libremetaverse::imaging::ManagedImageCreator::create pub fn create(&self, width: i32, height: i32, num_components: i32, bytes: Vec<u8>) -> Result<libremetaverse_imaging::codec::IImage, crate::Error> shared_self,owned,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImageCreator.ToPortableImageSource(System.Object) method CoreJ2K.j2k.image.BlkImgDataSrc LibreMetaverse.Imaging.ManagedImageCreator.ToPortableImageSource(System.Object imageObject) libremetaverse imaging libremetaverse::imaging::ManagedImageCreator::to_portable_image_source pub fn to_portable_image_source(&self, image_object: libremetaverse_types::compat::Object) -> Result<libremetaverse_imaging::codec::BlkImgDataSrc, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImageCreator.Create(System.Int32,System.Int32,System.Int32,System.Byte[]) method CoreJ2K.Util.IImage LibreMetaverse.Imaging.ManagedImageCreator.Create(System.Int32 width, System.Int32 height, System.Int32 numComponents, System.Byte[] bytes) libremetaverse imaging libremetaverse::imaging::ManagedImageCreator::create pub fn create(&self, width: i32, height: i32, num_components: i32, bytes: Vec<u8>) -> Result<Box<dyn libremetaverse_imaging::codec::IImage>, crate::Error> shared_self,owned,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImageCreator.ToPortableImageSource(System.Object) method CoreJ2K.j2k.image.BlkImgDataSrc LibreMetaverse.Imaging.ManagedImageCreator.ToPortableImageSource(System.Object imageObject) libremetaverse imaging libremetaverse::imaging::ManagedImageCreator::to_portable_image_source pub fn to_portable_image_source(&self, image_object: libremetaverse_types::compat::Object) -> Result<Box<dyn libremetaverse_imaging::codec::BlkImgDataSrc>, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.ManagedImageInterleavedExtensions.ToManagedImage(CoreJ2K.Util.InterleavedImage) method LibreMetaverse.Imaging.ManagedImage LibreMetaverse.Imaging.ManagedImageInterleavedExtensions.ToManagedImage(CoreJ2K.Util.InterleavedImage image) libremetaverse imaging libremetaverse::imaging::ManagedImageInterleavedExtensions::to_managed_image pub fn to_managed_image(image: libremetaverse_imaging::codec::InterleavedImage) -> Result<libremetaverse_imaging::ManagedImage, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.#ctor constructor LibreMetaverse.Imaging.Skia.SkiaTextureCodec() libremetaverse-imaging-skia libremetaverse_imaging_skia::SkiaTextureCodec::new pub fn new() -> Result<Self, crate::Error> none sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.Decode(System.IO.Stream) method LibreMetaverse.Imaging.ManagedImage LibreMetaverse.Imaging.Skia.SkiaTextureCodec.Decode(System.IO.Stream stream) libremetaverse-imaging-skia libremetaverse_imaging_skia::SkiaTextureCodec::decode pub fn decode(&self, stream: Box<dyn libremetaverse_types::compat::ReadWrite + Send>) -> Result<libremetaverse_imaging::ManagedImage, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
@@ -11994,7 +11994,7 @@ M:LibreMetaverse.LoggedOutEventArgs.#ctor(System.Collections.Generic.List{LibreM
|
||||
M:LibreMetaverse.Logger.BeginClientScope(LibreMetaverse.GridClient) method System.IDisposable LibreMetaverse.Logger.BeginClientScope(LibreMetaverse.GridClient client) libremetaverse libremetaverse::Logger::begin_client_scope pub fn begin_client_scope(client: libremetaverse::GridClient) -> Result<libremetaverse_types::compat::Close, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.BeginRegionScope(LibreMetaverse.Simulator) method System.IDisposable LibreMetaverse.Logger.BeginRegionScope(LibreMetaverse.Simulator simulator) libremetaverse libremetaverse::Logger::begin_region_scope pub fn begin_region_scope(simulator: libremetaverse::Simulator) -> Result<libremetaverse_types::compat::Close, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.BeginScope(System.Object) method System.IDisposable LibreMetaverse.Logger.BeginScope(System.Object state) libremetaverse libremetaverse::Logger::begin_scope pub fn begin_scope(state: libremetaverse_types::compat::Object) -> Result<libremetaverse_types::compat::Close, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.CreateDefaultConsoleLoggerFactory method Microsoft.Extensions.Logging.ILoggerFactory LibreMetaverse.Logger.CreateDefaultConsoleLoggerFactory() libremetaverse libremetaverse::Logger::create_default_console_logger_factory pub fn create_default_console_logger_factory() -> Result<libremetaverse::logging::ILoggerFactory, crate::Error> none sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.CreateDefaultConsoleLoggerFactory method Microsoft.Extensions.Logging.ILoggerFactory LibreMetaverse.Logger.CreateDefaultConsoleLoggerFactory() libremetaverse libremetaverse::Logger::create_default_console_logger_factory pub fn create_default_console_logger_factory() -> Result<Box<dyn libremetaverse::logging::ILoggerFactory>, crate::Error> none sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.Critical(System.Object,LibreMetaverse.GridClient) method System.Void LibreMetaverse.Logger.Critical(System.Object message, LibreMetaverse.GridClient client = default) libremetaverse libremetaverse::Logger::critical_with_object_grid_client pub fn critical_with_object_grid_client(message: libremetaverse_types::compat::Object, client: Option<libremetaverse::GridClient>) -> Result<(), crate::Error> owned,optional_owned sync Result<_, crate::Error> descriptive_overload_name method mapped
|
||||
M:LibreMetaverse.Logger.Critical(System.Object,System.Exception,LibreMetaverse.GridClient) method System.Void LibreMetaverse.Logger.Critical(System.Object message, System.Exception exception, LibreMetaverse.GridClient client = default) libremetaverse libremetaverse::Logger::critical_with_object_exception_grid_client pub fn critical_with_object_exception_grid_client(message: libremetaverse_types::compat::Object, exception: libremetaverse_types::compat::ExternalError, client: Option<libremetaverse::GridClient>) -> Result<(), crate::Error> owned,owned,optional_owned sync Result<_, crate::Error> descriptive_overload_name method mapped
|
||||
M:LibreMetaverse.Logger.Critical(System.Object,System.Exception,System.String) method System.Void LibreMetaverse.Logger.Critical(System.Object message, System.Exception exception, System.String clientName) libremetaverse libremetaverse::Logger::critical_with_object_exception_string pub fn critical_with_object_exception_string(message: libremetaverse_types::compat::Object, exception: libremetaverse_types::compat::ExternalError, client_name: String) -> Result<(), crate::Error> owned,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
|
||||
@@ -12020,7 +12020,7 @@ M:LibreMetaverse.Logger.LogCallback.#ctor(System.Object,System.IntPtr) construct
|
||||
M:LibreMetaverse.Logger.LogCallback.BeginInvoke(System.Object,Microsoft.Extensions.Logging.LogLevel,System.AsyncCallback,System.Object) method System.IAsyncResult LibreMetaverse.Logger.LogCallback.BeginInvoke(System.Object message, Microsoft.Extensions.Logging.LogLevel level, System.AsyncCallback callback, System.Object object) libremetaverse libremetaverse::LoggerLogCallback::begin_invoke pub fn begin_invoke(&self, message: libremetaverse_types::compat::Object, level: libremetaverse::logging::LogLevel, callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>, object: libremetaverse_types::compat::Object) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> shared_self,owned,owned,owned,owned sync Result<_, crate::Error> direct_snake_case native_callback_replaces_delegate_apm intentional_difference
|
||||
M:LibreMetaverse.Logger.LogCallback.EndInvoke(System.IAsyncResult) method System.Void LibreMetaverse.Logger.LogCallback.EndInvoke(System.IAsyncResult result) libremetaverse libremetaverse::LoggerLogCallback::end_invoke pub fn end_invoke(&self, result: Box<dyn std::any::Any + Send + Sync>) -> Result<(), crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case native_callback_replaces_delegate_apm intentional_difference
|
||||
M:LibreMetaverse.Logger.LogCallback.Invoke(System.Object,Microsoft.Extensions.Logging.LogLevel) method System.Void LibreMetaverse.Logger.LogCallback.Invoke(System.Object message, Microsoft.Extensions.Logging.LogLevel level) libremetaverse libremetaverse::LoggerLogCallback::invoke pub fn invoke(&self, message: libremetaverse_types::compat::Object, level: libremetaverse::logging::LogLevel) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.SetLoggerFactory(Microsoft.Extensions.Logging.ILoggerFactory,System.String) method System.Void LibreMetaverse.Logger.SetLoggerFactory(Microsoft.Extensions.Logging.ILoggerFactory factory, System.String name) libremetaverse libremetaverse::Logger::set_logger_factory pub fn set_logger_factory(factory: libremetaverse::logging::ILoggerFactory, name: String) -> Result<(), crate::Error> owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.SetLoggerFactory(Microsoft.Extensions.Logging.ILoggerFactory,System.String) method System.Void LibreMetaverse.Logger.SetLoggerFactory(Microsoft.Extensions.Logging.ILoggerFactory factory, System.String name) libremetaverse libremetaverse::Logger::set_logger_factory pub fn set_logger_factory(factory: Box<dyn libremetaverse::logging::ILoggerFactory>, name: String) -> Result<(), crate::Error> owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
|
||||
M:LibreMetaverse.Logger.Shutdown method System.Void LibreMetaverse.Logger.Shutdown() libremetaverse libremetaverse::Logger::shutdown_with_method pub fn shutdown_with_method() -> Result<(), crate::Error> none sync Result<_, crate::Error> descriptive_overload_name method mapped
|
||||
M:LibreMetaverse.Logger.ShutdownAsync(System.Nullable{System.TimeSpan},System.Threading.CancellationToken) method System.Threading.Tasks.Task<System.Boolean> LibreMetaverse.Logger.ShutdownAsync(System.Nullable<System.TimeSpan> timeout = default, System.Threading.CancellationToken cancellationToken = default) libremetaverse libremetaverse::Logger::shutdown_with_nullable_cancellation_token pub async fn shutdown_with_nullable_cancellation_token(timeout: Option<Option<std::time::Duration>>, cancellation_token: Option<libremetaverse_types::compat::CancellationToken>) -> Result<bool, crate::Error> optional_owned,optional_owned async Result<_, crate::Error> descriptive_overload_name method mapped
|
||||
M:LibreMetaverse.Logger.Trace(System.Object,LibreMetaverse.GridClient) method System.Void LibreMetaverse.Logger.Trace(System.Object message, LibreMetaverse.GridClient client = default) libremetaverse libremetaverse::Logger::trace_with_object_grid_client pub fn trace_with_object_grid_client(message: libremetaverse_types::compat::Object, client: Option<libremetaverse::GridClient>) -> Result<(), crate::Error> owned,optional_owned sync Result<_, crate::Error> descriptive_overload_name method mapped
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -5,17 +5,17 @@ Generated by `python3 tools/generate_api_shims.py`; do not edit by hand.
|
||||
| Assembly | Types | Members | Status |
|
||||
|---|---:|---:|---|
|
||||
| `LibreMetaverse` | 2,711 | 27,281 | pending milestone issue |
|
||||
| `LibreMetaverse.Imaging.Abstractions` | 3 | 20 | pending milestone issue |
|
||||
| `LibreMetaverse.Imaging.Skia` | 1 | 3 | pending milestone issue |
|
||||
| `LibreMetaverse.Imaging.Abstractions` | 3 | 20 | callable failure-only shim |
|
||||
| `LibreMetaverse.Imaging.Skia` | 1 | 3 | callable failure-only shim |
|
||||
| `LibreMetaverse.LslTools` | 164 | 768 | pending milestone issue |
|
||||
| `LibreMetaverse.PrimMesher` | 17 | 207 | pending milestone issue |
|
||||
| `LibreMetaverse.PrimMesher` | 17 | 207 | callable failure-only shim |
|
||||
| `LibreMetaverse.RLV` | 28 | 499 | pending milestone issue |
|
||||
| `LibreMetaverse.Rendering.MeshFoundry` | 1 | 14 | pending milestone issue |
|
||||
| `LibreMetaverse.Rendering.Simple` | 1 | 6 | pending milestone issue |
|
||||
| `LibreMetaverse.Rendering.MeshFoundry` | 1 | 14 | callable failure-only shim |
|
||||
| `LibreMetaverse.Rendering.Simple` | 1 | 6 | callable failure-only shim |
|
||||
| `LibreMetaverse.StructuredData` | 16 | 295 | callable failure-only shim |
|
||||
| `LibreMetaverse.Types` | 45 | 942 | callable failure-only shim |
|
||||
| `LibreMetaverse.Utilities` | 3 | 13 | pending milestone issue |
|
||||
| `LibreMetaverse.Voice.Vivox` | 64 | 531 | pending milestone issue |
|
||||
| `LibreMetaverse.Voice.WebRTC` | 12 | 210 | pending milestone issue |
|
||||
|
||||
Current callable coverage: **61 types / 1,237 members**.
|
||||
Current callable coverage: **84 types / 1,487 members**.
|
||||
|
||||
@@ -1,11 +1,35 @@
|
||||
// @generated by tools/generate_surface.py; do not edit by hand.
|
||||
// Source: LibreMetaverse 2aa70bb68513b39795da5d13c88f31b86e85a3ba
|
||||
// @generated by tools/generate_api_shims.py; do not edit by hand.
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
#![allow(clippy::must_use_candidate)]
|
||||
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
/// `class` shim for C# `LibreMetaverse.Imaging.Skia.SkiaTextureCodec`; members remain intentionally unimplemented.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
/// C# type: `T:LibreMetaverse.Imaging.Skia.SkiaTextureCodec`.
|
||||
pub struct SkiaTextureCodec;
|
||||
impl SkiaTextureCodec {
|
||||
pub const CSHARP_NAME: &'static str = "LibreMetaverse.Imaging.Skia.SkiaTextureCodec";
|
||||
pub const CSHARP_KIND: &'static str = "class";
|
||||
/// C# member: `M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.#ctor`.
|
||||
pub fn new() -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.#ctor",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.Decode(System.IO.Stream)`.
|
||||
pub fn decode(
|
||||
&self,
|
||||
stream: Box<dyn libremetaverse_types::compat::ReadWrite + Send>,
|
||||
) -> Result<libremetaverse_imaging::ManagedImage, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.Decode(System.IO.Stream)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.ToManagedImage(SkiaSharp.SKBitmap)`.
|
||||
pub fn to_managed_image(
|
||||
bitmap: libremetaverse_imaging_skia::backend::SKBitmap,
|
||||
) -> Result<libremetaverse_imaging::ManagedImage, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.Skia.SkiaTextureCodec.ToManagedImage(SkiaSharp.SKBitmap)",
|
||||
)
|
||||
}
|
||||
}
|
||||
impl libremetaverse_imaging::ITextureCodec for SkiaTextureCodec {}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
//! Skia imaging adapter corresponding to `LibreMetaverse.Imaging.Skia`.
|
||||
|
||||
extern crate self as libremetaverse_imaging_skia;
|
||||
|
||||
pub mod backend {
|
||||
/// Project-owned bitmap boundary; no `SkiaSharp` API is copied.
|
||||
pub struct SKBitmap;
|
||||
}
|
||||
|
||||
mod generated;
|
||||
|
||||
pub use generated::*;
|
||||
|
||||
@@ -1,24 +1,100 @@
|
||||
// @generated by tools/generate_surface.py; do not edit by hand.
|
||||
// Source: LibreMetaverse 2aa70bb68513b39795da5d13c88f31b86e85a3ba
|
||||
// @generated by tools/generate_api_shims.py; do not edit by hand.
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
#![allow(clippy::must_use_candidate)]
|
||||
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
/// Shim for C# `LibreMetaverse.Imaging.ITextureCodec`.
|
||||
/// C# type: `T:LibreMetaverse.Imaging.ITextureCodec`.
|
||||
pub trait ITextureCodec {
|
||||
const CSHARP_NAME: &'static str = "LibreMetaverse.Imaging.ITextureCodec";
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ITextureCodec.Decode(System.IO.Stream)`.
|
||||
fn decode(
|
||||
&self,
|
||||
stream: Box<dyn libremetaverse_types::compat::ReadWrite + Send>,
|
||||
) -> Result<libremetaverse_imaging::ManagedImage, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.ITextureCodec.Decode(System.IO.Stream)",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// `enum` shim for C# `LibreMetaverse.Imaging.ImageChannels`; members remain intentionally unimplemented.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub struct ImageChannels;
|
||||
impl ImageChannels {
|
||||
pub const CSHARP_NAME: &'static str = "LibreMetaverse.Imaging.ImageChannels";
|
||||
pub const CSHARP_KIND: &'static str = "enum";
|
||||
/// C# type: `T:LibreMetaverse.Imaging.ManagedImage`.
|
||||
pub struct ManagedImage {
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Alpha`.
|
||||
pub alpha: Vec<u8>,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Blue`.
|
||||
pub blue: Vec<u8>,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Bump`.
|
||||
pub bump: Vec<u8>,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Channels`.
|
||||
pub channels: libremetaverse_imaging::ManagedImageImageChannels,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Green`.
|
||||
pub green: Vec<u8>,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Height`.
|
||||
pub height: i32,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Red`.
|
||||
pub red: Vec<u8>,
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.Width`.
|
||||
pub width: i32,
|
||||
data: Vec<u8>,
|
||||
}
|
||||
|
||||
/// `class` shim for C# `LibreMetaverse.Imaging.ManagedImage`; members remain intentionally unimplemented.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub struct ManagedImage;
|
||||
impl ManagedImage {
|
||||
pub const CSHARP_NAME: &'static str = "LibreMetaverse.Imaging.ManagedImage";
|
||||
pub const CSHARP_KIND: &'static str = "class";
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.#ctor(System.Int32,System.Int32,LibreMetaverse.Imaging.ManagedImage.ImageChannels)`.
|
||||
pub fn new(
|
||||
width: i32,
|
||||
height: i32,
|
||||
channels: libremetaverse_imaging::ManagedImageImageChannels,
|
||||
) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.ManagedImage.#ctor(System.Int32,System.Int32,LibreMetaverse.Imaging.ManagedImage.ImageChannels)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.Clear`.
|
||||
pub fn clear(&self) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Imaging.ManagedImage.Clear")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.Clone`.
|
||||
pub fn clone(&self) -> Result<libremetaverse_imaging::ManagedImage, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Imaging.ManagedImage.Clone")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.ConvertChannels(LibreMetaverse.Imaging.ManagedImage.ImageChannels)`.
|
||||
pub fn convert_channels(
|
||||
&self,
|
||||
channels: libremetaverse_imaging::ManagedImageImageChannels,
|
||||
) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.ManagedImage.ConvertChannels(LibreMetaverse.Imaging.ManagedImage.ImageChannels)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.ExportRaw`.
|
||||
pub fn export_raw(&self) -> Result<Vec<u8>, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Imaging.ManagedImage.ExportRaw")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.ResizeBilinear(System.Int32,System.Int32)`.
|
||||
pub fn resize_bilinear(&self, width: i32, height: i32) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.ManagedImage.ResizeBilinear(System.Int32,System.Int32)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Imaging.ManagedImage.ResizeNearestNeighbor(System.Int32,System.Int32)`.
|
||||
pub fn resize_nearest_neighbor(&self, width: i32, height: i32) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Imaging.ManagedImage.ResizeNearestNeighbor(System.Int32,System.Int32)",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// C# type: `T:LibreMetaverse.Imaging.ManagedImage.ImageChannels`.
|
||||
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
|
||||
#[repr(transparent)]
|
||||
pub struct ManagedImageImageChannels(pub i32);
|
||||
impl ManagedImageImageChannels {
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.ImageChannels.Alpha`.
|
||||
pub const ALPHA: Self = Self(4);
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.ImageChannels.Bump`.
|
||||
pub const BUMP: Self = Self(8);
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.ImageChannels.Color`.
|
||||
pub const COLOR: Self = Self(2);
|
||||
/// C# member: `F:LibreMetaverse.Imaging.ManagedImage.ImageChannels.Gray`.
|
||||
pub const GRAY: Self = Self(1);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
//! Imaging abstractions corresponding to `LibreMetaverse.Imaging.Abstractions`.
|
||||
|
||||
extern crate self as libremetaverse_imaging;
|
||||
|
||||
pub mod codec {
|
||||
pub trait IImage {}
|
||||
pub trait IImageCreator {}
|
||||
pub struct ImageCreator<T>(pub std::marker::PhantomData<T>);
|
||||
pub struct InterleavedImage;
|
||||
pub struct BlkImgDataSrc;
|
||||
}
|
||||
|
||||
mod generated;
|
||||
|
||||
pub use generated::*;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,7 @@
|
||||
//! Primitive mesher corresponding to `LibreMetaverse.PrimMesher`.
|
||||
|
||||
extern crate self as libremetaverse_prim_mesher;
|
||||
|
||||
mod generated;
|
||||
|
||||
pub use generated::*;
|
||||
|
||||
@@ -1,11 +1,154 @@
|
||||
// @generated by tools/generate_surface.py; do not edit by hand.
|
||||
// Source: LibreMetaverse 2aa70bb68513b39795da5d13c88f31b86e85a3ba
|
||||
// @generated by tools/generate_api_shims.py; do not edit by hand.
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
#![allow(clippy::must_use_candidate)]
|
||||
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
/// `class` shim for C# `LibreMetaverse.Rendering.MeshFoundry`; members remain intentionally unimplemented.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
/// C# type: `T:LibreMetaverse.Rendering.MeshFoundry`.
|
||||
pub struct MeshFoundry;
|
||||
impl MeshFoundry {
|
||||
pub const CSHARP_NAME: &'static str = "LibreMetaverse.Rendering.MeshFoundry";
|
||||
pub const CSHARP_KIND: &'static str = "class";
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.#ctor`.
|
||||
pub fn new() -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Rendering.MeshFoundry.#ctor")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_faceted_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[])`.
|
||||
pub fn generate_faceted_mesh_mesh_with_primitive_bytes(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
mesh_data: Vec<u8>,
|
||||
) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[])",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[],LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_faceted_mesh_mesh_with_primitive_bytes_detail_level(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
mesh_data: Vec<u8>,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[],LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_faceted_sculpt_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
sculpt_texture: libremetaverse_imaging::ManagedImage,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_simple_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMeshWithNormals(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_simple_mesh_with_normals(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMeshWithNormals(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_simple_sculpt_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
sculpt_texture: libremetaverse_imaging::ManagedImage,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[])`.
|
||||
pub fn mesh_sub_mesh_as_convex_hulls_with_primitive_bytes(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
compressed_mesh_data: Vec<u8>,
|
||||
) -> Result<Vec<Vec<libremetaverse_types::Vector3>>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[])",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[],System.Collections.Generic.List{LibreMetaverse.Vector3}@)`.
|
||||
pub fn mesh_sub_mesh_as_convex_hulls_with_primitive_bytes_list(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
compressed_mesh_data: Vec<u8>,
|
||||
bounding_hull: &mut Vec<libremetaverse_types::Vector3>,
|
||||
) -> Result<Vec<Vec<libremetaverse_types::Vector3>>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[],System.Collections.Generic.List{LibreMetaverse.Vector3}@)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsSimpleMesh(LibreMetaverse.Primitive,System.Byte[])`.
|
||||
pub fn mesh_sub_mesh_as_simple_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
compressed_mesh_data: Vec<u8>,
|
||||
) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsSimpleMesh(LibreMetaverse.Primitive,System.Byte[])",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.TerrainMesh(System.Single[0:,0:],System.Single,System.Single,System.Single,System.Single)`.
|
||||
pub fn terrain_mesh(
|
||||
&self,
|
||||
z_map: Vec<f32>,
|
||||
x_begin: f32,
|
||||
x_end: f32,
|
||||
y_begin: f32,
|
||||
y_end: f32,
|
||||
) -> Result<libremetaverse::rendering::Face, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.TerrainMesh(System.Single[0:,0:],System.Single,System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)`.
|
||||
pub fn transform_tex_coords(
|
||||
&self,
|
||||
vertices: Vec<libremetaverse::rendering::Vertex>,
|
||||
center: libremetaverse_types::Vector3,
|
||||
te_face: libremetaverse::PrimitiveTextureEntryFace,
|
||||
prim_scale: libremetaverse_types::Vector3,
|
||||
) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.UnpackMesh(System.Byte[])`.
|
||||
pub fn unpack_mesh(
|
||||
&self,
|
||||
asset_data: Vec<u8>,
|
||||
) -> Result<Option<libremetaverse_structured_data::OSDMap>, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.MeshFoundry.UnpackMesh(System.Byte[])",
|
||||
)
|
||||
}
|
||||
}
|
||||
impl libremetaverse::rendering::IRendering for MeshFoundry {}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
//! `MeshFoundry` renderer corresponding to `LibreMetaverse.Rendering.MeshFoundry`.
|
||||
|
||||
extern crate self as libremetaverse_rendering_mesh_foundry;
|
||||
|
||||
mod generated;
|
||||
|
||||
pub use generated::*;
|
||||
|
||||
@@ -9,6 +9,7 @@ description = "Simple renderer shims for the MetaCrate LibreMetaverse rewrite"
|
||||
|
||||
[dependencies]
|
||||
libremetaverse = { path = "../libremetaverse" }
|
||||
libremetaverse-imaging = { path = "../libremetaverse-imaging" }
|
||||
libremetaverse-types = { path = "../libremetaverse-types" }
|
||||
|
||||
[lints]
|
||||
|
||||
@@ -1,11 +1,70 @@
|
||||
// @generated by tools/generate_surface.py; do not edit by hand.
|
||||
// Source: LibreMetaverse 2aa70bb68513b39795da5d13c88f31b86e85a3ba
|
||||
// @generated by tools/generate_api_shims.py; do not edit by hand.
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
#![allow(clippy::must_use_candidate)]
|
||||
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
/// `class` shim for C# `LibreMetaverse.Rendering.SimpleRenderer`; members remain intentionally unimplemented.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
/// C# type: `T:LibreMetaverse.Rendering.SimpleRenderer`.
|
||||
pub struct SimpleRenderer;
|
||||
impl SimpleRenderer {
|
||||
pub const CSHARP_NAME: &'static str = "LibreMetaverse.Rendering.SimpleRenderer";
|
||||
pub const CSHARP_KIND: &'static str = "class";
|
||||
/// C# member: `M:LibreMetaverse.Rendering.SimpleRenderer.#ctor`.
|
||||
pub fn new() -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Rendering.SimpleRenderer.#ctor")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.SimpleRenderer.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_faceted_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<libremetaverse::rendering::FacetedMesh, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.SimpleRenderer.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.SimpleRenderer.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_faceted_sculpt_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
sculpt_texture: libremetaverse_imaging::ManagedImage,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<libremetaverse::rendering::FacetedMesh, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.SimpleRenderer.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.SimpleRenderer.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_simple_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<libremetaverse::rendering::SimpleMesh, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.SimpleRenderer.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.SimpleRenderer.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
|
||||
pub fn generate_simple_sculpt_mesh(
|
||||
&self,
|
||||
prim: libremetaverse::Primitive,
|
||||
sculpt_texture: libremetaverse_imaging::ManagedImage,
|
||||
lod: libremetaverse::rendering::DetailLevel,
|
||||
) -> Result<libremetaverse::rendering::SimpleMesh, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.SimpleRenderer.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Rendering.SimpleRenderer.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)`.
|
||||
pub fn transform_tex_coords(
|
||||
&self,
|
||||
vertices: Vec<libremetaverse::rendering::Vertex>,
|
||||
center: libremetaverse_types::Vector3,
|
||||
te_face: libremetaverse::PrimitiveTextureEntryFace,
|
||||
prim_scale: libremetaverse_types::Vector3,
|
||||
) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Rendering.SimpleRenderer.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
}
|
||||
impl libremetaverse::rendering::IRendering for SimpleRenderer {}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
//! Simple renderer corresponding to `LibreMetaverse.Rendering.Simple`.
|
||||
|
||||
extern crate self as libremetaverse_rendering_simple;
|
||||
|
||||
mod generated;
|
||||
|
||||
pub use generated::*;
|
||||
|
||||
@@ -54,6 +54,9 @@ pub struct IEqualityComparer<T>(pub PhantomData<fn(T)>);
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
pub struct StringReader(pub String);
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
pub struct StreamReader(pub Vec<u8>);
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
pub struct StringWriter(pub String);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
mod generated;
|
||||
|
||||
pub use TextureEntryFace as PrimitiveTextureEntryFace;
|
||||
pub use generated::*;
|
||||
pub use libremetaverse_imaging as imaging_abstractions;
|
||||
pub use libremetaverse_structured_data as structured_data;
|
||||
|
||||
42
tests/compat/tests/rendering_shims.rs
Normal file
42
tests/compat/tests/rendering_shims.rs
Normal file
@@ -0,0 +1,42 @@
|
||||
use libremetaverse::Primitive;
|
||||
use libremetaverse::rendering::{DetailLevel, SimpleMesh};
|
||||
use libremetaverse_prim_mesher::PrimMesh;
|
||||
use libremetaverse_rendering_mesh_foundry::MeshFoundry;
|
||||
use libremetaverse_rendering_simple::SimpleRenderer;
|
||||
|
||||
#[test]
|
||||
fn mesh_and_renderer_calls_compile_with_typed_elements() {
|
||||
let _: fn(i32, f32, f32, f32, i32) -> Result<PrimMesh, libremetaverse_prim_mesher::Error> =
|
||||
PrimMesh::new;
|
||||
let _: fn(
|
||||
&SimpleRenderer,
|
||||
Primitive,
|
||||
DetailLevel,
|
||||
) -> Result<SimpleMesh, libremetaverse_rendering_simple::Error> =
|
||||
SimpleRenderer::generate_simple_mesh;
|
||||
let _: fn(
|
||||
&MeshFoundry,
|
||||
Primitive,
|
||||
DetailLevel,
|
||||
) -> Result<Option<SimpleMesh>, libremetaverse_rendering_mesh_foundry::Error> =
|
||||
MeshFoundry::generate_simple_mesh;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn owned_constructors_fail_with_exact_member_ids() {
|
||||
let Err(prim_error) = PrimMesh::new(4, 0.0, 1.0, 0.0, 4) else {
|
||||
panic!("failure-only PrimMesh constructor unexpectedly returned a value");
|
||||
};
|
||||
assert_eq!(
|
||||
prim_error.csharp_member(),
|
||||
"M:LibreMetaverse.PrimMesher.PrimMesh.#ctor(System.Int32,System.Single,System.Single,System.Single,System.Int32)"
|
||||
);
|
||||
|
||||
let Err(renderer_error) = SimpleRenderer::new() else {
|
||||
panic!("failure-only renderer constructor unexpectedly returned a value");
|
||||
};
|
||||
assert_eq!(
|
||||
renderer_error.csharp_member(),
|
||||
"M:LibreMetaverse.Rendering.SimpleRenderer.#ctor"
|
||||
);
|
||||
}
|
||||
@@ -19,6 +19,11 @@ LEDGER = ROOT / "api/RUST-MAPPING.tsv"
|
||||
COVERAGE = ROOT / "api/SHIM-COVERAGE.md"
|
||||
|
||||
TARGETS = {
|
||||
"LibreMetaverse.Imaging.Abstractions": ROOT / "crates/libremetaverse-imaging/src/generated.rs",
|
||||
"LibreMetaverse.Imaging.Skia": ROOT / "crates/libremetaverse-imaging-skia/src/generated.rs",
|
||||
"LibreMetaverse.PrimMesher": ROOT / "crates/libremetaverse-prim-mesher/src/generated.rs",
|
||||
"LibreMetaverse.Rendering.MeshFoundry": ROOT / "crates/libremetaverse-rendering-mesh-foundry/src/generated.rs",
|
||||
"LibreMetaverse.Rendering.Simple": ROOT / "crates/libremetaverse-rendering-simple/src/generated.rs",
|
||||
"LibreMetaverse.Types": ROOT / "crates/libremetaverse-types/src/generated.rs",
|
||||
"LibreMetaverse.StructuredData": ROOT / "crates/libremetaverse-structured-data/src/generated.rs",
|
||||
}
|
||||
@@ -52,6 +57,7 @@ PRIVATE_LAYOUTS = {
|
||||
"T:LibreMetaverse.StructuredData.OSDString": [("value", "String")],
|
||||
"T:LibreMetaverse.StructuredData.OSDUUID": [("value", "libremetaverse_types::UUID")],
|
||||
"T:LibreMetaverse.StructuredData.OSDUri": [("value", "libremetaverse_types::compat::Uri")],
|
||||
"T:LibreMetaverse.Imaging.ManagedImage": [("data", "Vec<u8>")],
|
||||
}
|
||||
|
||||
|
||||
@@ -65,8 +71,10 @@ def format_rust(source: str) -> str:
|
||||
input=source,
|
||||
text=True,
|
||||
capture_output=True,
|
||||
check=True,
|
||||
check=False,
|
||||
)
|
||||
if result.returncode:
|
||||
raise ValueError(result.stderr.strip())
|
||||
return result.stdout
|
||||
|
||||
|
||||
@@ -183,7 +191,7 @@ def render_type(item: dict, type_row: dict, member_rows: dict[str, dict[str, str
|
||||
if not trait:
|
||||
for interface in item.get("interfaces", []):
|
||||
base, arguments, _ = mapping.type_parts(interface)
|
||||
if base not in mapper.interfaces:
|
||||
if base not in mapper.interfaces or not base.startswith("LibreMetaverse."):
|
||||
continue
|
||||
mapped_arguments = [mapper.type(argument, None, set(names)) for argument in arguments]
|
||||
trait_path = mapper.resolved[base] + generic_suffix(mapped_arguments)
|
||||
@@ -194,7 +202,14 @@ def render_type(item: dict, type_row: dict, member_rows: dict[str, dict[str, str
|
||||
def generate_sources(catalog: dict) -> tuple[dict[Path, str], dict[str, tuple[int, int]]]:
|
||||
type_rows, resolved = mapping.build_type_rows(catalog)
|
||||
type_by_id = {row["csharp_type_id"]: row for row in type_rows}
|
||||
interfaces = {mapping.type_parts(item["signature"])[0] for assembly in catalog["assemblies"] for item in assembly["types"] if item["kind"] == "interface"}
|
||||
interfaces = {
|
||||
*{mapping.type_parts(item["signature"])[0] for assembly in catalog["assemblies"] for item in assembly["types"] if item["kind"] == "interface"},
|
||||
*{
|
||||
mapping.type_parts(item["signature"])[0]
|
||||
for item in catalog["external_types"]
|
||||
if item["kind"] == "interface" and not item["assembly"]["name"].startswith("System")
|
||||
},
|
||||
}
|
||||
mapper = mapping.Mapper(resolved, interfaces)
|
||||
member_rows = {row["csharp_id"]: row for row in csv.DictReader(LEDGER.open(), delimiter="\t")}
|
||||
outputs = {}
|
||||
|
||||
@@ -826,7 +826,14 @@ def coverage_report(catalog: dict, type_rows: list[dict[str, str]], member_rows:
|
||||
def generate() -> dict[Path, str]:
|
||||
catalog = json.loads(CATALOG.read_text())
|
||||
type_rows, resolved = build_type_rows(catalog)
|
||||
interfaces = {type_parts(item["signature"])[0] for assembly in catalog["assemblies"] for item in assembly["types"] if item["kind"] == "interface"}
|
||||
interfaces = {
|
||||
*{type_parts(item["signature"])[0] for assembly in catalog["assemblies"] for item in assembly["types"] if item["kind"] == "interface"},
|
||||
*{
|
||||
type_parts(item["signature"])[0]
|
||||
for item in catalog["external_types"]
|
||||
if item["kind"] == "interface" and not item["assembly"]["name"].startswith("System")
|
||||
},
|
||||
}
|
||||
mapper = Mapper(resolved, interfaces)
|
||||
member_rows = build_member_rows(catalog, mapper)
|
||||
validate(catalog, type_rows, member_rows, mapper)
|
||||
|
||||
Reference in New Issue
Block a user