Hello,
I'm trying to use CEGUI with the DirectX81 Renderer.
I'm getting plenty of "unresolved external symbol ..." errors.
I've added CEGUIBase.lib to the needed libs and also tried to add the DirectX9GUIRenderer.lib / DirectX10GUIRenderer.lib but they aren't fixing the problem.
Is there a DirectX8GUIRenderer.lib available because every "unresolved external symbol" starts with CEGUI::DirectX81Renderer.
Thanks,
Alan
Edit:
Well I found the lib in the 0.5 vc7 SDK. I'm using vc9. Will it cause problems when I'm using the vc7 0.5 .lib/.dll while using vc9 and CEGUI 0.6.2?
When I launch the application I get a entrypoint "??0Exception@CEGUI@QAE@ABVSTRING@1@@Z" not found in "CEGUIBase.dll" error. Dunno if it has to do something with the vc7 lib/dll or not.
DirectX81Renderer.lib ?!
Moderators: CEGUI MVP, CEGUI Team
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: DirectX81Renderer.lib ?!
This library is not provided in the SDKs because, I believe with the newer MSVC++ versions, unless you have an ancient DirectX SDK kicking about you can't compile D3D8 code (the platform SDK that comes with VC7.1 and earlier has the DX8.1 SDK integrated, which I guess is why it was in that package). Since last I recall we did not have these old SDKs, we do not compile this library. The solution is that when wanting to use the obsolete SDK, you have to build CEGUI yourself, I'm afraid. Also, for your info, support for the obsolete D3D8.1 is dropped completely from the 0.7.0 release onwards.
Also, you can't mix and match between versions of MSVC++, nor can you mix and match between the CEGUI release series.
CE.
Also, you can't mix and match between versions of MSVC++, nor can you mix and match between the CEGUI release series.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: DirectX81Renderer.lib ?!
Well I switched back to 0.5 for testing reasons.
I tried to use the vc7 files in vc9 and it compiled fine.
-> is working fine too.
But as far as I try create the CEGUI::System object
I get a abnormal program termination.
I tried to use the vc7 files in vc9 and it compiled fine.
Code: Select all
CEGUI::DirectX81Renderer* myRenderer = new CEGUI::DirectX81Renderer( myD3DDevice);
-> is working fine too.
But as far as I try create the CEGUI::System object
Code: Select all
new CEGUI::System( myRenderer );
I get a abnormal program termination.
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: DirectX81Renderer.lib ?!
As I said, you can't mix and match libraries built with different versions of MSVC++. This is because the different libraries will be linked against different versions of the c++ runtime DLLs which causes lots of issues.
CE.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: DirectX81Renderer.lib ?!
Huhu.
Well, I've compiled my own CEGUIBase and DirectX81GUIRenderer dll/lib for CEGUI 0.6.2.
It's seems to work fine but new CEGUI::System (..) is still throwing an exception for me.
Edit: A debug build shows up: "Heap corruption detected after Normal Block (#172) .." etc. I'll see if that will help me somehow
Well, I've compiled my own CEGUIBase and DirectX81GUIRenderer dll/lib for CEGUI 0.6.2.
It's seems to work fine but new CEGUI::System (..) is still throwing an exception for me.
Code: Select all
CEGUI::DirectX81Renderer* myRenderer = new CEGUI::DirectX81Renderer( m_pmyD3Ddev );
try
{
new CEGUI::System( myRenderer );
}
catch (...)
{
add_log("exception");
}
Edit: A debug build shows up: "Heap corruption detected after Normal Block (#172) .." etc. I'll see if that will help me somehow
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: DirectX81Renderer.lib ?!
If it's a CEGUI::Exception type exception from the CEGUI::System, this usually indicates it can't find the XML parser module DLL.
This usually means that memory allocated on one module's heap is getting released on another module's heap; it's one of the 'issues' I mention as regards to mixing msvc runtimes; are you sure you did not get the dlls mixed up (use dependency walker to see which runtime is linked). Also ensure your main application project is correctly configured to use the multithreaded DLL versions of the c/c++ runtime.
CE.
AlanDa wrote:"Heap corruption detected after Normal Block (#172) .." etc. I'll see if that will help me somehow
This usually means that memory allocated on one module's heap is getting released on another module's heap; it's one of the 'issues' I mention as regards to mixing msvc runtimes; are you sure you did not get the dlls mixed up (use dependency walker to see which runtime is linked). Also ensure your main application project is correctly configured to use the multithreaded DLL versions of the c/c++ runtime.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: DirectX81Renderer.lib ?!
It was rly just a missing dll.. Thanks for the hint.
But I got another problem with the renderer (I think).
As far as I use:
in my Code minimizing the app will go crazy.
When I'm minimizing the app and then going back to it it's just a black screen. I can't even alt-tab to another window cause it's always popping back to the black screen of my app.
Another thing is that as far as I get CEGUI to render on EndScene with
some background colors are changing and I get some weird effects like clored dust or something.
I can make some screenshots if needed.
Alan
But I got another problem with the renderer (I think).
As far as I use:
Code: Select all
EGUI::DirectX81Renderer* myRenderer = new CEGUI::DirectX81Renderer( m_pmyD3Ddev);
in my Code minimizing the app will go crazy.
When I'm minimizing the app and then going back to it it's just a black screen. I can't even alt-tab to another window cause it's always popping back to the black screen of my app.
Another thing is that as far as I get CEGUI to render on EndScene with
Code: Select all
CEGUI::System::getSingleton().renderGUI();
some background colors are changing and I get some weird effects like clored dust or something.
I can make some screenshots if needed.
Alan
Re: DirectX81Renderer.lib ?!
AlanDa wrote:It was rly just a missing dll.. Thanks for the hint.
But I got another problem with the renderer (I think).
As far as I use:Code: Select all
EGUI::DirectX81Renderer* myRenderer = new CEGUI::DirectX81Renderer( m_pmyD3Ddev);
in my Code minimizing the app will go crazy.
When I'm minimizing the app and then going back to it it's just a black screen. I can't even alt-tab to another window cause it's always popping back to the black screen of my app.
I know that with the opengl renderer you need to use OpenGLRenderer::grabTextures() and OpenGLRenderer::restoreTextures() before/after minimizing from full-screen. I am assuming there are similar function(s) for the DirectX renderer?
Another thing is that as far as I get CEGUI to render on EndScene withCode: Select all
CEGUI::System::getSingleton().renderGUI();
some background colors are changing and I get some weird effects like clored dust or something.
I can make some screenshots if needed.
Alan
This sounds like issues with the DirectX state; typically you need to push/pop render states in OpenGL, and I believe you are supposed to do the same in DirectX. I think DirectX uses something like createStateBlock().
Sorry that may not be of much use...I use OpenGL :/
If somebody helps you by replying to your thread, upvote him/her as a thanks! Make sure to include your CEGUI.log and everything you tried when posting! And remember that we are not magicians!
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: DirectX81Renderer.lib ?!
Jamarr wrote:AlanDa wrote:minimizing the app will go crazy.
I know that with the opengl renderer you need to use OpenGLRenderer::grabTextures() and OpenGLRenderer::restoreTextures() before/after minimizing from full-screen. I am assuming there are similar function(s) for the DirectX renderer?
This is correct; with D3D8.1 and D3D9 you must surround your call that resets the D3D device with calls to the preD3DReset and postD3DReset functions on the renderer object.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: DirectX81Renderer.lib ?!
Hey.
I've fixed both problems. Thanks
I've fixed both problems. Thanks
Who is online
Users browsing this forum: No registered users and 1 guest