dwmkerr / sharpgl

Use OpenGL in .NET applications. SharpGL wraps all modern OpenGL features and offers a powerful scene graph to aid development.
MIT License
753 stars 300 forks source link

Version 2.4.1.1 breaks the build #160

Open nzain opened 5 years ago

nzain commented 5 years ago

Upgrading from nuget package SharpGL.WPF 2.4.0 to 2.4.1.1 introduces several compiler errors, eventually due to a missing or inaccessible dll.

The type or namespace name 'SceneGraph' does not exist in the namespace 'SharpGL' (are you missing an assembly reference?)
The type or namespace name 'ShaderProgram' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'SceneGraph' does not exist in the namespace 'SharpGL' (are you missing an assembly reference?)
The type or namespace name 'GLColor' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'OpenGLEventArgs' could not be found (are you missing a using directive or an assembly reference?)
The type 'OpenGLEventHandler' is defined in an assembly that is not referenced. You must add a reference to assembly 'SharpGL.SceneGraph, Version=2.4.1.1, Culture=neutral, PublicKeyToken=27fc851303210b27'.

159 seems to be related.

I don't use scenegraph as 95% of my scenario is based on low level OpenGL API. The remaining 5% are simple line/quads drawings.

nzain commented 5 years ago

Only when I install SharpGL.SceneGraph explicitely, the code compiles again. SharpGL.WPF depends on SharpGL.SceneGraph but does not reference it properly:

https://github.com/dwmkerr/sharpgl/blob/master/release/Specs/SharpGL.WPF.nuspec

Only SharpGL is defined as a dependency. Maybe those core objects should move to the SharpGL package instead? If they are WPF specific, they could be moved to the SharpGL.WPF package. If both is not possible, then scenegraph should be added as a dependency at least.

dwmkerr commented 5 years ago

Got it, I'll take a look into this an either add the explicit dependency, or move the code which is dependent into the core package, will keep you posted