Does DirectXMath work on OSX and Linux with OpenGL? - directxmath

Is the DirectXMath library cross platform? Is it possible to use it with OpenGL and/or on OSX and Linux?

DirectXMath primarily relies on the Visual Studio compiler intrinsics support. As a header in the Windows 8.x SDK, it officially only supports Visual Studio 2010 - Visual Studio 2013, and Windows Vista or later. It only has a single Win32 API dependency (IsProcessorFeaturePresent), even that is optional.
It is technically possible to use it for Windows XP, but there's no official SDK configuration that would provide it in the headers that are supported on Windows XP.
There's no official support for other compilers, but it would probably work with the Intel compiler.
Otherwise DirectXMath is not actually tied to Direct3D in particular, so you could use it with OpenGL or whatever.
The main issue is going to be that the DirectXMath library is available in the Windows 8.x SDK, the Windows Phone 8.x SDK, the Xbox One XDK, and Xbox One ADK. You'd have to look at those EULAs--I'm not a lawyer and I cannot provide legal advice.

Related

What differences are there learning direct3d11 using the windows sdk as compared to the directx sdk?

One can use direct3d11 through either the windows 8 sdk or the directx sdk? As a learner it isn't clear what effects this choice has. What differences does it make whether one learns directx 11 using windows sdk or directx sdk?
directx sdk ( last was june 2010, three years ago ) is deprecated. Windows 8 kits contains an up to date version of the direct x headers and library.
Basic API and documentation are mostly the same, but recent changes are missing. D3DX is deprecated, maths move to directxmath.h and shader compilation move to d3dcompiler.h
Pix is not working anymore with recent windows, so you have to stick with VSGD shipped with visual 2012, but the PiX replacement is far from really useful in the state it is :( So a better tool is nsight for nvidia, and gpuperfstudio for AMD.
That's it.
For Direct3D 11, the best way to go is to use VS 2012 or VS 2013 with the integrated Windows 8.x SDK and avoid the complexities of using the legacy DirectX SDK (June 2010) at all until you determine you actually really need it (the one compelling case would be XAudio2.7 on Windows Vista or Windows 7 rather than using XAudio 2.8 on Windows 8 or later).
For Windows Store apps on Windows 8.x, there a lot of official tutorials and samples on MSDN and the MSDN Code Gallery for you to learn about Direct3D 11.
For Win32 desktop apps on Windows 7 or Windows 8.x, I've posted a lot of unofficial samples harvested from the legacy DirectX SDK that build just fine with the Windows 8.x SDK. See this blog post for an inventory and links to MSDN Code Gallery.
Many older tutorials and books do indeed assume you are using the now deprecated D3DX library, but for Direct3D 11 there are a lot of options that avoid it as covered here. Some recent books embrace these newer libraries as well.
BTW, I'm assuming from your question that you are asking about programming Direct3D 11 with C++ since that's what the DirectX SDK and the Windows 8.x SDK support. If you are looking for C#, then I suggest looking at SharpDX or SlimDX.

Does Windows 8 Desktop support c++/cli?

I found some information regarding Windows 8 Metro and c++/cli. Windows 8 Metro does not support c++/cli.
However I am having trouble finding explicit documentation that states whether Windows 8 Desktop supports c++/cli (the linked question is not explicit enough IMO). Does Windows 8 Desktop support c++/cli?
Please make sure to provide a link to your relevant source.
Windows 8 does not support C++/CLI.
It is the other way around, the support does not come from the Windows team (they did not ship a compiler) but from the Visual Studio team. Each Visual Studio version has a list of supported platforms that your application can target if you use that version of Visual Studio to build your app.
So does Microsoft support writing C++/CLI apps for Windows 8 Desktop? The answer is yes if you use the right version of Visual Studio*. Does the support come from Windows? The answer is no.
*You can continue test and provide support to your customers even without Microsoft's support to you, for example you can write C++/CLI code in Notepad then compile it using the cl.exe from VS2012 Express for Windows 8. There's really nothing to prevent this use case to work, despite Microsoft's statement that VS2012 Express for Windows 8 does not support desktop development (and I don't think there's any reason why Microsoft should provide support on this use case with VS2012 Express for Windows Desktop out there) .
The Windows 8 Desktop supports everything that Windows 7 supported. C++/cli included. There really isn't much that talks about this, but here is a link to VS 2012 support for C++/cli which implies the same thing.

ARM Assembly Language IDE on windows

Is there any ARM Assembly Language IDE on windows (Like Eclipse,...) that I can write my instructions and have it simulate those?
How about on other platforms?
And how can I use them in detail?
The Android SDK comes in a version for Windows, and that includes the Eclipse IDE; it includes a device simulator on which you can run the created code. If you add the Android NDK (Native Development Kit), you also get ARM crosscompilers. The Android simulator/emulator is actually a QEMU for ARM, it executes native ARM code.
In short: Get the Android SDK / NDK for Windows, and you'll have all of what you ask for - Eclipse IDE, ARM simulator, ARM crosscompiler/assembler.
Both Visual Studio 2005 and 2008 allow you to write ARM assembly code and interactively debug it on an emulator or device. The only limits are that the emu/device must be Windows CE 4/5/6 and the compilers only support the ARMv4 and ARMv5 instruction sets.
If you can wait for the official release of Visual Studio 2011, it will allow full ARMv7A development to target WoA (Windows on ARM) devices.
ARM and Keil provides IDE's that you can buy.
If you are talking about free ones, then I'm not aware of any.

Qt development in windows. Do I need pay for Microsoft tools?

Considering to develop a desktop application with Qt for Windows. It will be a free download application, but for a commecial SERVICE. (need an account with our commercial service to work).
I think we could use the Qt for Windows from Nokia (LGLP version) because its free app. But the lastest one version of Qt needs a C++ complier from Microsoft.
Which one?
Do I need to pay for an C++ compiler from Microsoft, or do they have a free version to use with Qt?
Reading info docs, googling and we still cann't understand what tools do I need.
If you want to use the Visual Studio compilers, you can download the free Windows SDK. The following link takes you to the SDK for Visual Studio 2008:
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
This includes all the C++ compilers and tools you need. (There is a more recent version available, but Visual Studio 2010 is not yet a "level 1 supported" platform for Qt.) We are using this on standalone build machines and it works fine.
Just a personal opinion, but we have found that using anything other than MSVC on Windows (for example, MinGW) causes a lot of problems. It is not that the other toolchains are bad, it is just that they are all treated as second-class citizens. We had lots of problems with third-party libraries not being able to build in MinGW or having nonexistent build instructions and having to do a lot of manual Makefile editing, etc. You are much more likely to have things "just work" if using MSVC.
For the most part (static linking), you cannot mix and match. You need to pick one toolchain and stick with it. If I were starting from scratch, I'd definitely go with MSVC.
Just our experience (we started with MinGW); your mileage may vary.
No, you do not need to pay for anything.
The Microsoft toolchain is available for free as part of the Microsoft Windows Software Development Kit.
Additionally, the following article may also be of interest to you:
Developing Windows Applications in C++: The tools you need
The alternative supported by Qt is MinGW. The runtime libraries are free from copyright, so you can do whatever you want with them.
It is basically the Windows counterpart of the GNU Compiler Collection (GCC) under Unix.

dll built with visual studio 2010 / windows 7 => usable on Windows 6?

Question from a Linux/Mac developer: I have compiled a 32-bit .dll (release flavor) under Windows 7 using Visual Studio 2010. Should this .dll be usable under all flavors of Windows 6 (a.k.a. Vista, if I'm not mistaken)?
Many thanks and RTFMs appreciated,
John Clements
In general: yes.
All current versions of the .Net framework run on both Vista and Win7.
Note that if you make calls into the native platform, either directly or via the Windows API Code Pack, you could have portability problems if you use functions available only in Win7. But for just straight .Net development, you should have no issue in running on any supported version of Windows.
Yes, the dll format didn't change for Windows 7. Only thing to remember is that if it's a .Net dll, the target system must have the proper .Net installed or the appropriate C/C++ runtime.
You're supposed to #define the _WIN32_WINNT macro to tell what version of Windows you want to support. The default in the SDK that ships with VS2010 is 0x600 which avoids you ever linking to an API function that is not available in Vista. So, yes, you're probably good to go.

Resources