[SOLVED] Operating System Rendering Issues

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Operating System Rendering Issues

Postby CrazyEddie » Sat Aug 08, 2009 07:42

ReGeX wrote:Excellent; works perfectly on XP now! Thank you for all your help,

Cool, no problem - glad you now have it working.

ReGeX wrote:and I do apologize any accusations I might have unintentionally implied towards your DirectX81Renderer.

Not at all. It's perfectly feasible that there might have been a bug, nobody writes perfect - bug free - software and I'm no different to anybody else in this regard. The only advantage I have here is an intimate familiarity with the CEGUI code, though again, I'm not always right by any stretch of the imagination ;)

CE.

Jamarr
CEGUI MVP
CEGUI MVP
Posts: 812
Joined: Tue Jun 03, 2008 23:59
Location: USA

Re: [SOLVED] Operating System Rendering Issues

Postby Jamarr » Mon Aug 10, 2009 17:46

So the problem was that the renderer did not have the correct viewport size, and thus was fixed by manually calling setDisplaySize()? I'm not very familiar with the DX renderers, but doesn't the constructor for that renderer try to automatically query the viewport size? For this to fail would have to mean 1) dx was not yet initialized 2) the dx viewport state was mangled or 3) the dx driver is f* up.

Considering it worked on other systems, and assuming you where using the same exact code, it would have to either be #2 or #3, as #1 would fail on any system. As you said that the samples ran fine on all systems, it seems unlikely #3 is the sole cause. Leaving only the dx state and possibly slight differences in driver implementation to blame.

I am curious because although a "solution" was found, it is more of a "work around" because the underlying problem remains a mystery. Unless I have overlooked something?
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!

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: [SOLVED] Operating System Rendering Issues

Postby CrazyEddie » Tue Aug 11, 2009 10:28

Interesting question.

The fact is that the call can fail for whatever reason. I can't recall what the docs used to say about this, and since 8.1 is obsolete I couldn't find what I wanted on MSDN either(!).

However, it's a situation we knew could come up, and as such the CEGUI renderer constructor code for this module contains this (the catch comment is the important bit):

Code: Select all

   try
   {
      size = getViewportSize();
   }
   catch (std::exception&)
   {
      // we'll allow things to continue here, and assume that the user will
      // be calling DirectX81Renderer::setDisplaySize afterwards.
      size.d_height = size.d_width = 0.0f;
   }

Having said this, it's first time I ever saw this behaviour in the wild :)

CE.


Return to “Help”

Who is online

Users browsing this forum: No registered users and 3 guests