ForeshoreTechnology
Topic Author
Posts: 9
Joined: 25 May 2020, 13:47

libnoesis.so dependencies

27 May 2020, 18:16

Please can you confirm the contents / namespaces of the libnoesis.so under
NoesisGUI-NativeSDK-linux-3.0.0\Bin\linux_arm
I did not expect this library to have any dependencies on GL / GLES / X but it does appear to do so. Running ldd on it.

Also please could you explain in which .so file the following is implemented from the file src\core\RenderDevice.cs . I was expecting this in Noesis.App.so but this seems to indicate it is in noesis.so
 
 /// <summary>
    ///  Creates an OpenGL RenderDevice.
    /// </summary>
    public class RenderDeviceGL : RenderDevice
    {
        public RenderDeviceGL() :
            base(Noesis_RenderDevice_CreateGL(), true)
        {
        }

        #region Imports
        [DllImport(Library.Name)]
        static extern IntPtr Noesis_RenderDevice_CreateGL();
        #endregion
    } 
    
The Library.Name always just points to Noesis where I was expecting for this function it would be Noesis.App or something similar.

I apologies for all these questions about the libraries and where the functionality is, really I could just do with a an overview diagram of how the libraries (across all the different platforms) fit together.
Last edited by ForeshoreTechnology on 28 May 2020, 12:02, edited 1 time in total.
 
User avatar
jsantos
Site Admin
Posts: 2905
Joined: 20 Jan 2012, 17:18
Contact:

Re: libnoesis.so

28 May 2020, 11:31

I did not expect this library to have any dependencies on GL / GLES / X but it does appear to do so. Running ldd on it.
Managed and Native SDKs cannot be mixed. As said in another post, the managed library contains the renderers inside so that explains the dependency. We also have code managing the clipboard that using X, this is probably something we could move out of the core library. We will do that in the future.
Also please could you explain in which .so file the following is implemented from the file src\core\RenderDevice.cs . I was expecting this in Noesis.App.so but this seems to indicate it is in noesis.so
That's done internally in C++. For now, renderers cannot be created in C#.
 
ForeshoreTechnology
Topic Author
Posts: 9
Joined: 25 May 2020, 13:47

Re: libnoesis.so dependencies

28 May 2020, 12:09

Thanks for the reply.

With regards the GL / GLES and X dependencies I was only looking at the Native SDK. The Native C++ Noesis.so core library has dependencies on GL and also exposes functions to do with creating GL renderers. See output from nm below.
nm -D libNoesis.so

00441518 T Noesis_RenderDevice_CreateGL
I am still confused about why the core library has these references to renderers in it as all the documentation says that this should be in the native App framework. I'm no longer doing anything with the managed libraries and just using native C++ as it seems that is what is intended for properly integrating noesis on a different platform.
 
User avatar
jsantos
Site Admin
Posts: 2905
Joined: 20 Jan 2012, 17:18
Contact:

Re: libnoesis.so dependencies

28 May 2020, 12:59

Native library shouldn't have any reference to GL. I doubt it, but I will check it later.

Having custom implementations of renderers is something that can be done in C++, that's what you are reading in the docs. Regarding C#, it cannot be done and it is something we are debating here, because we don't know if we should expose it.
 
ForeshoreTechnology
Topic Author
Posts: 9
Joined: 25 May 2020, 13:47

Re: libnoesis.so dependencies

28 May 2020, 13:53

Hey,

Thanks for confirming my understanding of this. I have found my mistake, I double checked the libnoesis.so and found that the native lib does NOT have the references. So it is only the linux library in the managed SDK that does have these references. I guess I hadn't updated the .so properly from when I was trying to get the dotnet core app to work.

I guess you merge noesis and noesis.App in the managed linux noseis.so ? I still expected to only see core functions in the noesis.so even for the managed version but anyway this clears it up, thankyou.

My confusion was that when you referred to managed libraries I was thinking of the c# dlls but I think you mean't the noesis.so linux library in the managed SDK
 
User avatar
jsantos
Site Admin
Posts: 2905
Joined: 20 Jan 2012, 17:18
Contact:

Re: libnoesis.so dependencies

28 May 2020, 14:55

I guess you merge noesis and noesis.App in the managed linux noseis.so ? I still expected to only see core functions in the noesis.so even for the managed version but anyway this clears it up,
NoesisApp is implemented in C# (source here https://github.com/Noesis/Managed) for the Managed SDK. Yes, with the exception of renderers, that for now are embedded in C++.

Who is online

Users browsing this forum: No registered users and 1 guest