DirectX11 renderer dependency on D3DX ?

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

Nyast
Just popping in
Just popping in
Posts: 12
Joined: Mon Sep 15, 2014 17:37

DirectX11 renderer dependency on D3DX ?

Postby Nyast » Mon Sep 15, 2014 17:45

Hello,

Sorry if my question seems stupid, I'm new to CEGUI and I've followed all the steps to install/compile the library in Visual Studio 2013 64 bits, so far pretty successfully.

My app utilizes a D3D11 device, so I've been trying to use the DXD11 renderer module. But unless I'm missing something, it just doesn't work. There seems to be something very wrong in the latest CEGUI 0.8.4 version. It includes <d3dx11.h> in cegui-0.8.4\cegui\include\CEGUI\RendererModules\Direct3D11, but D3DX11 is officially no longer part of the D3D library, Microsoft removed it quite some time ago. In fact d3dx11 isn't even present in the Windows Kit 8.X, which is the platform SDK for Windows from MS.

However just quickly browsing at the forums, it seems people don't particularly seem to have trouble working with the DX11 renderer. What am I missing ? What should I do to make it working ?

Thanks,

-Nyast

User avatar
Ident
CEGUI Team
Posts: 1894
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: DirectX11 renderer dependency on D3DX ?

Postby Ident » Mon Sep 15, 2014 18:23

Nyast wrote:Hello,

Sorry if my question seems stupid, I'm new to CEGUI and I've followed all the steps to install/compile the library in Visual Studio 2013 64 bits, so far pretty successfully.

My app utilizes a D3D11 device, so I've been trying to use the DXD11 renderer module. But unless I'm missing something, it just doesn't work. There seems to be something very wrong in the latest CEGUI 0.8.4 version. It includes <d3dx11.h> in cegui-0.8.4\cegui\include\CEGUI\RendererModules\Direct3D11, but D3DX11 is officially no longer part of the D3D library, Microsoft removed it quite some time ago. In fact d3dx11 isn't even present in the Windows Kit 8.X, which is the platform SDK for Windows from MS.

However just quickly browsing at the forums, it seems people don't particularly seem to have trouble working with the DX11 renderer. What am I missing ? What should I do to make it working ?

Thanks,

-Nyast

This has been discussed many times before. I assume you use Windows 8? In that case maybe below link helps you:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Otherwise install the DirectX June 2010 SDK

Please tell me which path you chose and if this worked for you.

Also:
Some months ago I took myself some days to redo the Direct3D11 Renderer and remove all additional dependencies from it. I made the whole thing smaller, cleaner, and most of all: more similar to the OpenGL Renderer for better maintainment. You can read the related news here:
http://cegui.org.uk/news/created-new-ba ... l-existing

This above change only happened in default branch. Default branch should generally work fine but it is under regular development and you might encounter bugs or you might notice that it will be temporarily broken at some point when you update it later on. Right now it should work. It is still a bit risky to use but if you find a bug we will always try to fix it fast if you report it to us in the forums (this is also true for v0-8 branch of course). If you dont wanna risk it: use one of the stable release or v0-8 branch and get the effects library. Unfortunately I can't fix that Renderer in v0-8 due to ABI compatibility constraints that we follow for our users.
CrazyEddie: "I don't like GUIs"

Nyast
Just popping in
Just popping in
Posts: 12
Joined: Mon Sep 15, 2014 17:37

Re: DirectX11 renderer dependency on D3DX ?

Postby Nyast » Mon Sep 15, 2014 19:04

Hi, and thanks for the reply :)

No, I'm using Windows 7.

Installing the DX June SDK might be tricky, cause my current app's code works with Windows Kit 8.1. Obviously it uses DX11 too, so there might be a conflict of version if I try to setup them both for the same app... I'll try, but I'm pretty sure I'm gonna be screwed :(

For default-branch, I just gave a quick try, but I'm getting a cmake error:

Code: Select all

CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
  Could NOT find GLM (missing: GLM_H_PATH)
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindGLM.cmake:9 (find_package_handle_standard_args)
  CMakeLists.txt:84 (find_package)


I'm not sure what GLM is, since I didn't have a problem with cmake when I built 0.8.4.

lucebac
Just can't stay away
Just can't stay away
Posts: 193
Joined: Sat May 24, 2014 21:55

Re: DirectX11 renderer dependency on D3DX ?

Postby lucebac » Mon Sep 15, 2014 19:16

Please download and compile the dependencies package. Your GLM error will vanish then. For further info, please look here:
http://cegui.org.uk/wiki/Building_from_source

EDIT: and please use CMake 2.8.XX
Last edited by lucebac on Mon Sep 15, 2014 19:34, edited 1 time in total.

User avatar
Ident
CEGUI Team
Posts: 1894
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: DirectX11 renderer dependency on D3DX ?

Postby Ident » Mon Sep 15, 2014 19:33

So which SDK do you use? Lucebac's suggestion is definitely a good start though.
CrazyEddie: "I don't like GUIs"

Nyast
Just popping in
Just popping in
Posts: 12
Joined: Mon Sep 15, 2014 17:37

Re: DirectX11 renderer dependency on D3DX ?

Postby Nyast » Mon Sep 15, 2014 21:07

@Ident: as I mentionned above, the SDK I use is Windows Kit 8.1

I switched to CMake 2.8.12.2 and got the default branch from mercurial.

I think something is wrong with the dependencies. I'm still using the download page's dependencies from the Windows 0.8.4 version, since I couldn't find any link that seems to contain the dependencies for the default branch. I assumed they were the same, but I guess not, cause when I compile CEGUI, I get errors like this:

Code: Select all

1>  Quaternion.cpp
1>..\..\..\cegui\src\Quaternion.cpp(57): error C2039: 'slerp' : is not a member of 'glm'
1>..\..\..\cegui\src\Quaternion.cpp(57): error C3861: 'slerp': identifier not found
1>..\..\..\cegui\src\Quaternion.cpp(70): error C2039: 'slerp' : is not a member of 'glm'
1>..\..\..\cegui\src\Quaternion.cpp(70): error C3861: 'slerp': identifier not found


Please note that building the CEGUI-Deps themselves works without error ( for the 28 projects ). That only happens when compiling CEGUI itself.

So yeah, the page that lucebac linked above contains the list of library dependencies, but I'm not gonna update them one-by-one if the reason I'm getting that error is because of a disprecency between the default branch and the 0.8.4 deps. There are a shitton of projects, it'd take many hours... is there any other place where they're available to download/build as one ?

lucebac
Just can't stay away
Just can't stay away
Posts: 193
Joined: Sat May 24, 2014 21:55

Re: DirectX11 renderer dependency on D3DX ?

Postby lucebac » Mon Sep 15, 2014 21:17

I switched to CMake 2.8.12.2 and got the default branch from mercurial.

Please: don't use default branch if you want to create a somewhat stable application. Use v0-8 branch instead.

Nyast wrote:I think something is wrong with the dependencies. I'm still using the download page's dependencies from the Windows 0.8.4 version, since I couldn't find any link that seems to contain the dependencies for the default branch. I assumed they were the same, but I guess not, cause when I compile CEGUI, I get errors like this:

Code: Select all

1>  Quaternion.cpp
1>..\..\..\cegui\src\Quaternion.cpp(57): error C2039: 'slerp' : is not a member of 'glm'
1>..\..\..\cegui\src\Quaternion.cpp(57): error C3861: 'slerp': identifier not found
1>..\..\..\cegui\src\Quaternion.cpp(70): error C2039: 'slerp' : is not a member of 'glm'
1>..\..\..\cegui\src\Quaternion.cpp(70): error C3861: 'slerp': identifier not found


This disappears when you use v0-8 branch.

And: don't mix dependencies for v0-8 with CEGUI default branch and vice versa!

Nyast
Just popping in
Just popping in
Posts: 12
Joined: Mon Sep 15, 2014 17:37

Re: DirectX11 renderer dependency on D3DX ?

Postby Nyast » Mon Sep 15, 2014 21:21

lucebac wrote:
I switched to CMake 2.8.12.2 and got the default branch from mercurial.

Please: don't use default branch if you want to create a somewhat stable application. Use v0-8 branch instead.


Right, but the root of my issues is that I can't use the 0.8 branch. It uses an obsolete DX11 renderer that has a dependency on D3DX11, which does not exist anymore.

lucebac wrote:
I switched to CMake 2.8.12.2 and got the default branch from mercurial.

And: don't mix dependencies for v0-8 with CEGUI default branch and vice versa!


Well, I have to use the default branch, but the dependencies for 0.8 don't work, so what am I supposed to do ?

At this point, I feel like I'm stuck and can't do anything to make it work.. sigh..

User avatar
Ident
CEGUI Team
Posts: 1894
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: DirectX11 renderer dependency on D3DX ?

Postby Ident » Tue Sep 16, 2014 06:05

Nyast wrote:Right, but the root of my issues is that I can't use the 0.8 branch. It uses an obsolete DX11 renderer that has a dependency on D3DX11, which does not exist anymore.

Even if you wanted to use 0.8, it is definitely possible to do a workaround here. It is not like you are the only one affected by this change.
These links might help if you want to go that path:
http://stackoverflow.com/questions/1254 ... tudio-2012
https://fx11.codeplex.com/


Nyast wrote:I think something is wrong with the dependencies. I'm still using the download page's dependencies from the Windows 0.8.4 version, since I couldn't find any link that seems to contain the dependencies for the default branch.

Please read the responses next time more thoroughly and follow what is suggested to you. Lucebac said everything right and linked you to the API docu which mentions to the place you can find the latest dependencies:
https://bitbucket.org/cegui/cegui-dependencies

Simply download this and build it. The repository version currently works with both 0.8.X and the default branch. I use it myself all the time and I can run D3D11 Renderer on default without issues.
Tell us if this worked for you.
CrazyEddie: "I don't like GUIs"

Nyast
Just popping in
Just popping in
Posts: 12
Joined: Mon Sep 15, 2014 17:37

Re: DirectX11 renderer dependency on D3DX ?

Postby Nyast » Tue Sep 16, 2014 18:54

Okay thanks, I finally got it working :)

User avatar
Ident
CEGUI Team
Posts: 1894
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: DirectX11 renderer dependency on D3DX ?

Postby Ident » Tue Sep 16, 2014 19:01

Nyast wrote:Okay thanks, I finally got it working :)

Default or v0-8?
CrazyEddie: "I don't like GUIs"

Nyast
Just popping in
Just popping in
Posts: 12
Joined: Mon Sep 15, 2014 17:37

Re: DirectX11 renderer dependency on D3DX ?

Postby Nyast » Wed Sep 17, 2014 21:13

V0.8 for now, but I'll eventually switch to default since it should work too.

Btw, do you have plans to update the DX11 renderer into the future version ? Like in 0.9 ?

User avatar
Ident
CEGUI Team
Posts: 1894
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: DirectX11 renderer dependency on D3DX ?

Postby Ident » Thu Sep 18, 2014 06:50

Nyast wrote:V0.8 for now, but I'll eventually switch to default since it should work too.

Btw, do you have plans to update the DX11 renderer into the future version ? Like in 0.9 ?

There won't be a 0.9
The next Release will be major. It will happen early 2015 and it will be version 1.0 and contain the new D3D11 Renderer, the old ones were removed as stated in the CEGUI news, which also stated reasons for this step.
Since it generally doesn't make sense for us to backport the new D3D11 Renderer to v0-8, we will not do it. If you want us to backport this Renderer then we can offer you to do it as paid support : http://cegui.org.uk/paid-support
CrazyEddie: "I don't like GUIs"


Return to “Help”

Who is online

Users browsing this forum: No registered users and 1 guest