Wanderer
Topic Author
Posts: 168
Joined: 08 May 2017, 18:36

Noesis documentation and few question about 2.1.0 verison (C++)

10 Dec 2017, 16:08

1. Will be Noesis documentation updated to v2.1.0, when final version will be released?

2. I downloaded beta 2.1.0b10 and check samples. I saw very strange code here:
namespace
{

#include "App.xaml.bin.h"
#include "LogoResources.xaml.bin.h"
#include "MainWindow.xaml.bin.h"
#include "Aero Matics Regular.ttf.bin.h"
#include "Image0.png.bin.h"
#include "Image1.png.bin.h"
#include "Image2.png.bin.h"

}
I can't find any document like Image0.png.bin.h, and intelisense in VS2015 underline this include as wrong or unknown. If I delete .bin.h then intelisense check it as ok.
Btw. project is builded without any warning or problem.

3. I read inside changelog that VGContext is not needed, that means OpenGLRenderer is not needed (if I will be use some OpenGL Rendering like GLFW)? I check glut sample, and there is no OpenGLRenderer if I watch correctly.
 
User avatar
jsantos
Site Admin
Posts: 2909
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis documentation and few question about 2.1.0 verison (C++)

11 Dec 2017, 12:34

1. Yes, we are working on it these days.

2. Those headers are automatically generated by our bin2h tool. We are using it to embed files in the executable. For example, if you click on 'Image0.png' in Visual Studio you will see there is an attached custom build for that file.

3. Exactly the same as in 2.0, you need a RenderDevice implementation. In the GLUT example we are using GLRenderDevice whose source code is included in the SDK.
 
Wanderer
Topic Author
Posts: 168
Joined: 08 May 2017, 18:36

Re: Noesis documentation and few question about 2.1.0 verison (C++)

11 Dec 2017, 15:36

Thanks.

2. That means, it pack all resources (xaml, pictures, fonts etc...) in to exe? Is this tool available for public?

3. I apologize, this was bad question. I want to ask, if I need old GLRenderDevice include in to my project with v 2.1.0 or can I use this?
// Renderer initialization with an OpenGL device
    Noesis::Ptr<Noesis::RenderDevice> device = NoesisApp::GLFactory::CreateDevice();
    _view->GetRenderer()->Init(device.GetPtr());
It is from GLUT sample from SDK.
 
User avatar
jsantos
Site Admin
Posts: 2909
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis documentation and few question about 2.1.0 verison (C++)

13 Dec 2017, 01:23

2. That means, it pack all resources (xaml, pictures, fonts etc...) in to exe? Is this tool available for public?
Yes, it is a resource provider for assets stored in memory. The implementation is part of the AppFramework, please, have a look at the source code (XamlEmbeddedProvider). The tool (bin2h.exe) is stored next to the project (inside the /Build directory).
3. I apologize, this was bad question. I want to ask, if I need old GLRenderDevice include in to my project with v 2.1.0 or can I use this?
Yes, this part is exactly the same. That code is creating our GLRenderDevice, you can customize it or provide your own implementation. But, if you don't want to go that low-level, we provide a framework for applications that you can use. Please, have a look at the HelloWorld sample (or whatever sample, not IntegrationGLU or Integration, those are low-level samples).
 
Wanderer
Topic Author
Posts: 168
Joined: 08 May 2017, 18:36

Re: Noesis documentation and few question about 2.1.0 verison (C++)

14 Dec 2017, 10:56

If I want integrate Noesis in to some render engine (Urho3D), can I use framework app or I have to use low level?
 
User avatar
jsantos
Site Admin
Posts: 2909
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis documentation and few question about 2.1.0 verison (C++)

15 Dec 2017, 22:49

For integration you only need Noesis core. The app framework is for developing full applications.
 
Wanderer
Topic Author
Posts: 168
Joined: 08 May 2017, 18:36

Re: Noesis documentation and few question about 2.1.0 verison (C++)

16 Dec 2017, 11:27

To be sure, only core? No need of RenderingDevice (GL, DX11)?

Btw. I found Noesis Ogre integration, can I follow this example for integrating in to Urho3D Engine?
 
User avatar
jsantos
Site Admin
Posts: 2909
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis documentation and few question about 2.1.0 verison (C++)

16 Dec 2017, 20:03

To be sure, only core? No need of RenderingDevice (GL, DX11)?
RenderDevice is an abstract class you need to implement in your project. Or, you can use one of our reference implementations (they are in NoesisApp, not in core).
Btw. I found Noesis Ogre integration, can I follow this example for integrating in to Urho3D Engine?
That integration is quite old and outdated. Not sure if you want to start from that. If I were you I would start from our basic integration samples (Integration and IntegrationGLUT).
 
Wanderer
Topic Author
Posts: 168
Joined: 08 May 2017, 18:36

Re: Noesis documentation and few question about 2.1.0 verison (C++)

17 Dec 2017, 02:10

I followed IntegrationGLUT sample, problem is, when I compile it throw lot of errors
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void * __cdecl NsSafeAlloc(unsigned int)" (__imp_?NsSafeAlloc@@YAPAXI@Z) referenced in function "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl NsSafeDealloc(void *)" (__imp_?NsSafeDealloc@@YAXPAX@Z) referenced in function "void __cdecl operator delete(void *)" (??3@YAXPAX@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall Noesis::BaseRefCounted::AddReference(void)const " (__imp_?AddReference@BaseRefCounted@Noesis@@QBEHXZ) referenced in function "public: __thiscall Noesis::Ptr<class Noesis::RenderDevice>::Ptr<class Noesis::RenderDevice>(class Noesis::Ptr<class Noesis::RenderDevice> const &)" (??0?$Ptr@VRenderDevice@Noesis@@@Noesis@@QAE@ABV01@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall Noesis::BaseRefCounted::Release(void)const " (__imp_?Release@BaseRefCounted@Noesis@@QBEHXZ) referenced in function "public: __thiscall Noesis::Ptr<class Noesis::BaseComponent>::~Ptr<class Noesis::BaseComponent>(void)" (??1?$Ptr@VBaseComponent@Noesis@@@Noesis@@QAE@XZ)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) bool __cdecl Noesis::InvokeAssertHandler(char const *,unsigned int,char const *)" (__imp_?InvokeAssertHandler@Noesis@@YA_NPBDI0@Z) referenced in function "public: struct Noesis::IView * __thiscall Noesis::Ptr<struct Noesis::IView>::operator->(void)const " (??C?$Ptr@UIView@Noesis@@@Noesis@@QBEPAUIView@1@XZ)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl Noesis::InvokeErrorHandler(char const *,unsigned int,bool,char const *,...)" (__imp_?InvokeErrorHandler@Noesis@@YAXPBDI_N0ZZ) referenced in function "class Noesis::Ptr<class Noesis::FrameworkElement> __cdecl Noesis::GUI::LoadXaml<class Noesis::FrameworkElement>(char const *)" (??$LoadXaml@VFrameworkElement@Noesis@@@GUI@Noesis@@YA?AV?$Ptr@VFrameworkElement@Noesis@@@1@PBD@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void * __cdecl Noesis::Reflection::Cast(class Noesis::TypeClass const *,class Noesis::BaseObject *)" (__imp_?Cast@Reflection@Noesis@@YAPAXPBVTypeClass@2@PAVBaseObject@2@@Z) referenced in function "public: static class Noesis::FrameworkElement * __cdecl Noesis::Reflection::DynamicCast::Apply<class Noesis::FrameworkElement,class Noesis::BaseComponent>(class Noesis::BaseComponent *)" (??$Apply@VFrameworkElement@Noesis@@VBaseComponent@2@@DynamicCast@Reflection@Noesis@@SAPAVFrameworkElement@2@PAVBaseComponent@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall Noesis::RenderDevice::SetVGContext(struct Noesis::IVGLContext *)" (__imp_?SetVGContext@RenderDevice@Noesis@@QAEXPAUIVGLContext@2@@Z) referenced in function "void __cdecl MyNoesisINI(class Noesis::Ptr<struct Noesis::IView>,class Noesis::Ptr<class Noesis::RenderDevice>)" (?MyNoesisINI@@YAXV?$Ptr@UIView@Noesis@@@Noesis@@V?$Ptr@VRenderDevice@Noesis@@@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: struct Noesis::IVGLContext * __thiscall Noesis::RenderDevice::GetVGContext(void)const " (__imp_?GetVGContext@RenderDevice@Noesis@@QBEPAUIVGLContext@2@XZ) referenced in function "void __cdecl MyNoesisINI(class Noesis::Ptr<struct Noesis::IView>,class Noesis::Ptr<class Noesis::RenderDevice>)" (?MyNoesisINI@@YAXV?$Ptr@UIView@Noesis@@@Noesis@@V?$Ptr@VRenderDevice@Noesis@@@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class Noesis::TypeClass const * __cdecl Noesis::FrameworkElement::StaticGetClassType(struct Noesis::T2T<class Noesis::FrameworkElement> *)" (__imp_?StaticGetClassType@FrameworkElement@Noesis@@SAPBVTypeClass@2@PAU?$T2T@VFrameworkElement@Noesis@@@2@@Z) referenced in function "public: static class Noesis::FrameworkElement * __cdecl Noesis::Reflection::DynamicCast::Apply<class Noesis::FrameworkElement,class Noesis::BaseComponent>(class Noesis::BaseComponent *)" (??$Apply@VFrameworkElement@Noesis@@VBaseComponent@2@@DynamicCast@Reflection@Noesis@@SAPAVFrameworkElement@2@PAVBaseComponent@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl Noesis::GUI::Init(void (__cdecl*)(char const *,unsigned int,char const *,bool),void (__cdecl*)(char const *,unsigned int,unsigned int,char const *,char const *),class Noesis::MemoryAllocator *)" (__imp_?Init@GUI@Noesis@@YAXP6AXPBDI0_N@ZP6AX0II00@ZPAVMemoryAllocator@2@@Z) referenced in function "void __cdecl MyNoesisINI(class Noesis::Ptr<struct Noesis::IView>,class Noesis::Ptr<class Noesis::RenderDevice>)" (?MyNoesisINI@@YAXV?$Ptr@UIView@Noesis@@@Noesis@@V?$Ptr@VRenderDevice@Noesis@@@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class Noesis::Ptr<class Noesis::BaseComponent> __cdecl Noesis::GUI::LoadXaml(char const *)" (__imp_?LoadXaml@GUI@Noesis@@YA?AV?$Ptr@VBaseComponent@Noesis@@@2@PBD@Z) referenced in function "class Noesis::Ptr<class Noesis::FrameworkElement> __cdecl Noesis::GUI::LoadXaml<class Noesis::FrameworkElement>(char const *)" (??$LoadXaml@VFrameworkElement@Noesis@@@GUI@Noesis@@YA?AV?$Ptr@VFrameworkElement@Noesis@@@1@PBD@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class Noesis::Ptr<struct Noesis::IView> __cdecl Noesis::GUI::CreateView(class Noesis::FrameworkElement *)" (__imp_?CreateView@GUI@Noesis@@YA?AV?$Ptr@UIView@Noesis@@@2@PAVFrameworkElement@2@@Z) referenced in function "void __cdecl MyNoesisINI(class Noesis::Ptr<struct Noesis::IView>,class Noesis::Ptr<class Noesis::RenderDevice>)" (?MyNoesisINI@@YAXV?$Ptr@UIView@Noesis@@@Noesis@@V?$Ptr@VRenderDevice@Noesis@@@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl Noesis::GUI::Shutdown(void)" (__imp_?Shutdown@GUI@Noesis@@YAXXZ) referenced in function "void __cdecl Noesis_Shutdown(class Noesis::Ptr<struct Noesis::IView>,class Noesis::Ptr<class Noesis::RenderDevice>)" (?Noesis_Shutdown@@YAXV?$Ptr@UIView@Noesis@@@Noesis@@V?$Ptr@VRenderDevice@Noesis@@@2@@Z)
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class Noesis::Ptr<class NoesisApp::RenderContext> __cdecl NoesisApp::FindBestRenderContext(void)" (__imp_?FindBestRenderContext@NoesisApp@@YA?AV?$Ptr@VRenderContext@NoesisApp@@@Noesis@@XZ) referenced in function "void __cdecl MyNoesisINI(class Noesis::Ptr<struct Noesis::IView>,class Noesis::Ptr<class Noesis::RenderDevice>)" (?MyNoesisINI@@YAXV?$Ptr@UIView@Noesis@@@Noesis@@V?$Ptr@VRenderDevice@Noesis@@@2@@Z)
2>D:\Programi\Development\Urho 3d\Test1B\bin\MyTest1_d.exe : fatal error LNK1120: 15 unresolved externals
because Urho3D is MDd and Noesis MTd (in MSVC). If MDd is changed in to MTd, instead Noesis errors I got Urho3D errors. How can I compile Noesis with MDd mode? Is it possible?
Btw, I tried precomile headers. I am not sure how to use pch.h but I add Noesis_pch.h. But after compile with MDd and run project I got program crash. I think because Noesis_pch.h don't have NoesisApp inside.
 
Wanderer
Topic Author
Posts: 168
Joined: 08 May 2017, 18:36

Re: Noesis documentation and few question about 2.1.0 verison (C++)

17 Dec 2017, 12:54

I rebuild Urho to MTd, without succes with Noesis. It still throw errors.

EDIT:
Ok I didn't have library specified in Linker. Now it compile without problem, but another problem appear. If I run program, it never run, only in Debuging, it throw breakpoint and this is what I get:
 	Noesis.dll!5609e1e2()	Unknown
>	Urho-Noesis_d.exe!operator delete[](void * ptr) Line 106	C++
		ptr	0x005440a0	void *
//it select this code in Memory.h
inline void operator delete[](void* ptr) throw()
{
    return NsSafeDealloc(ptr); // ->
}
 	Urho-Noesis_d.exe!Urho3D::HashBase::AllocateBuckets(unsigned int size, unsigned int numBuckets) Line 33	C++
 	Urho-Noesis_d.exe!Urho3D::HashMap<Urho3D::StringHash,Urho3D::String>::InsertNode(const Urho3D::StringHash & key, const Urho3D::String & value, bool findExisting) Line 678	C++
 	Urho-Noesis_d.exe!Urho3D::HashMap<Urho3D::StringHash,Urho3D::String>::operator[](const Urho3D::StringHash & key) Line 329	C++
 	Urho-Noesis_d.exe!Urho3D::EventNameRegistrar::RegisterEventName(const char * eventName) Line 538	C++
 	Urho-Noesis_d.exe!Urho3D::`dynamic initializer for 'E_INPUTBEGIN''() Line 238	C++
 	Urho-Noesis_d.exe!_initterm(void(*)() * first, void(*)() * last) Line 22	C++

Who is online

Users browsing this forum: Google [Bot] and 1 guest