Remove leftovers from D3D

This commit is contained in:
sfan5 2023-09-01 12:36:33 +02:00
parent ddecc0fae2
commit e609f5f263
13 changed files with 6 additions and 118 deletions

@ -20,13 +20,6 @@ namespace video
render and display any graphics. */ render and display any graphics. */
EDT_NULL, EDT_NULL,
// obsolete constants to make some code happy
// TODO delete
EDT_SOFTWARE,
EDT_BURNINGSVIDEO,
DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS,
EDT_DIRECT3D9,
//! OpenGL device, available on most platforms. //! OpenGL device, available on most platforms.
/** Performs hardware accelerated rendering of 3D and 2D /** Performs hardware accelerated rendering of 3D and 2D
primitives. */ primitives. */

@ -97,14 +97,6 @@ enum E_TEXTURE_CREATION_FLAG
*/ */
ETCF_AUTO_GENERATE_MIP_MAPS = 0x00000100, ETCF_AUTO_GENERATE_MIP_MAPS = 0x00000100,
//! Enable support for vertex shader texture sampling on some drivers
/** Default is false.
This adds a small costs to all texture switches.
Currently only affects D3D9.
On OpenGL vertex shaders use the same texture unit as pixel shaders, so support there only depends on GL version and not on this flag
*/
ETCF_SUPPORT_VERTEXT_TEXTURE = 0x00000200,
/** This flag is never used, it only forces the compiler to compile /** This flag is never used, it only forces the compiler to compile
these enumeration values to 32 bit. */ these enumeration values to 32 bit. */
ETCF_FORCE_32_BIT_DO_NOT_USE = 0x7fffffff ETCF_FORCE_32_BIT_DO_NOT_USE = 0x7fffffff

@ -366,8 +366,7 @@ namespace video
const io::path& name = "rt", const ECOLOR_FORMAT format = ECF_UNKNOWN) =0; const io::path& name = "rt", const ECOLOR_FORMAT format = ECF_UNKNOWN) =0;
//! Adds a new render target texture with 6 sides for a cubemap map to the texture cache. //! Adds a new render target texture with 6 sides for a cubemap map to the texture cache.
/** NOTE: Only supported on D3D9 so far. /** \param sideLen Length of one cubemap side.
\param sideLen Length of one cubemap side.
\param name A name for the texture. Later calls of getTexture() with this name will return this texture. \param name A name for the texture. Later calls of getTexture() with this name will return this texture.
The name can _not_ be empty. The name can _not_ be empty.
\param format The color format of the render target. Floating point formats are supported. \param format The color format of the render target. Floating point formats are supported.

@ -5,12 +5,6 @@
#ifndef __S_EXPOSED_VIDEO_DATA_H_INCLUDED__ #ifndef __S_EXPOSED_VIDEO_DATA_H_INCLUDED__
#define __S_EXPOSED_VIDEO_DATA_H_INCLUDED__ #define __S_EXPOSED_VIDEO_DATA_H_INCLUDED__
// forward declarations for internal pointers
struct IDirect3D9;
struct IDirect3DDevice9;
struct IDirect3D8;
struct IDirect3DDevice8;
namespace irr namespace irr
{ {
namespace video namespace video
@ -27,19 +21,6 @@ struct SExposedVideoData
SExposedVideoData() {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=0;} SExposedVideoData() {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=0;}
explicit SExposedVideoData(void* Window) {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=Window;} explicit SExposedVideoData(void* Window) {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=Window;}
struct SD3D9
{
//! Pointer to the IDirect3D9 interface
IDirect3D9* D3D9;
//! Pointer to the IDirect3DDevice9 interface
IDirect3DDevice9* D3DDev9;
//! Window handle.
/** Get with for example HWND h = reinterpret_cast<HWND>(exposedData.D3D9.HWnd) */
void* HWnd;
};
struct SOpenGLWin32 struct SOpenGLWin32
{ {
//! Private GDI Device Context. //! Private GDI Device Context.
@ -87,7 +68,6 @@ struct SExposedVideoData
union union
{ {
SD3D9 D3D9;
SOpenGLWin32 OpenGLWin32; SOpenGLWin32 OpenGLWin32;
SOpenGLLinux OpenGLLinux; SOpenGLLinux OpenGLLinux;
SOpenGLOSX OpenGLOSX; SOpenGLOSX OpenGLOSX;

@ -40,7 +40,6 @@ namespace irr
Doublebuffer(true), Doublebuffer(true),
IgnoreInput(false), IgnoreInput(false),
Stereobuffer(false), Stereobuffer(false),
HighPrecisionFPU(false),
EventReceiver(0), EventReceiver(0),
WindowId(0), WindowId(0),
#ifdef _DEBUG #ifdef _DEBUG
@ -48,8 +47,6 @@ namespace irr
#else #else
LoggingLevel(ELL_INFORMATION), LoggingLevel(ELL_INFORMATION),
#endif #endif
DisplayAdapter(0),
DriverMultithreaded(false),
SDK_version_do_not_use(IRRLICHT_SDK_VERSION), SDK_version_do_not_use(IRRLICHT_SDK_VERSION),
PrivateData(0), PrivateData(0),
#ifdef IRR_MOBILE_PATHS #ifdef IRR_MOBILE_PATHS
@ -83,12 +80,9 @@ namespace irr
Doublebuffer = other.Doublebuffer; Doublebuffer = other.Doublebuffer;
IgnoreInput = other.IgnoreInput; IgnoreInput = other.IgnoreInput;
Stereobuffer = other.Stereobuffer; Stereobuffer = other.Stereobuffer;
HighPrecisionFPU = other.HighPrecisionFPU;
EventReceiver = other.EventReceiver; EventReceiver = other.EventReceiver;
WindowId = other.WindowId; WindowId = other.WindowId;
LoggingLevel = other.LoggingLevel; LoggingLevel = other.LoggingLevel;
DisplayAdapter = other.DisplayAdapter;
DriverMultithreaded = other.DriverMultithreaded;
PrivateData = other.PrivateData; PrivateData = other.PrivateData;
OGLES2ShaderPath = other.OGLES2ShaderPath; OGLES2ShaderPath = other.OGLES2ShaderPath;
return *this; return *this;
@ -106,9 +100,6 @@ namespace irr
E_DEVICE_TYPE DeviceType; E_DEVICE_TYPE DeviceType;
//! Type of video driver used to render graphics. //! Type of video driver used to render graphics.
/** This can currently be video::EDT_NULL, video::EDT_SOFTWARE,
video::EDT_BURNINGSVIDEO, video::EDT_DIRECT3D9, and video::EDT_OPENGL.
Default: EDT_BURNINGSVIDEO. */
video::E_DRIVER_TYPE DriverType; video::E_DRIVER_TYPE DriverType;
//! Size of the window or the video mode in fullscreen mode. Default: 800x600 //! Size of the window or the video mode in fullscreen mode. Default: 800x600
@ -217,15 +208,6 @@ namespace irr
Default value: false */ Default value: false */
bool Stereobuffer; bool Stereobuffer;
//! Specifies if the device should use high precision FPU setting
/** This is only relevant for DirectX Devices, which switch to
low FPU precision by default for performance reasons. However,
this may lead to problems with the other computations of the
application. In this case setting this flag to true should help
- on the expense of performance loss, though.
Default value: false */
bool HighPrecisionFPU;
//! A user created event receiver. //! A user created event receiver.
IEventReceiver* EventReceiver; IEventReceiver* EventReceiver;
@ -290,16 +272,6 @@ namespace irr
*/ */
ELOG_LEVEL LoggingLevel; ELOG_LEVEL LoggingLevel;
//! Allows to select which graphic card is used for rendering when more than one card is in the system.
/** So far only supported on D3D */
u32 DisplayAdapter;
//! Create the driver multithreaded.
/** Default is false. Enabling this can slow down your application.
Note that this does _not_ make Irrlicht threadsafe, but only the underlying driver-API for the graphiccard.
So far only supported on D3D. */
bool DriverMultithreaded;
//! Don't use or change this parameter. //! Don't use or change this parameter.
/** Always set it to IRRLICHT_SDK_VERSION, which is done by default. /** Always set it to IRRLICHT_SDK_VERSION, which is done by default.
This is needed for sdk version checks. */ This is needed for sdk version checks. */

@ -255,8 +255,7 @@ namespace irr
//! Creates an Irrlicht device. The Irrlicht device is the root object for using the engine. //! Creates an Irrlicht device. The Irrlicht device is the root object for using the engine.
/** If you need more parameters to be passed to the creation of the Irrlicht Engine device, /** If you need more parameters to be passed to the creation of the Irrlicht Engine device,
use the createDeviceEx() function. use the createDeviceEx() function.
\param driverType: Type of the video driver to use. This can currently be video::EDT_NULL, \param driverType: Type of the video driver to use.
video::EDT_SOFTWARE, video::EDT_BURNINGSVIDEO, video::EDT_DIRECT3D9 and video::EDT_OPENGL.
\param windowSize: Size of the window or the video mode in fullscreen mode. \param windowSize: Size of the window or the video mode in fullscreen mode.
\param bits: Bits per pixel in fullscreen mode. Ignored if windowed mode. \param bits: Bits per pixel in fullscreen mode. Ignored if windowed mode.
\param fullscreen: Should be set to true if the device should run in fullscreen. Otherwise \param fullscreen: Should be set to true if the device should run in fullscreen. Otherwise
@ -280,16 +279,6 @@ namespace irr
bool vsync = false, bool vsync = false,
IEventReceiver* receiver = 0); IEventReceiver* receiver = 0);
//! typedef for Function Pointer
typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDevice )(
video::E_DRIVER_TYPE driverType,
const core::dimension2d<u32>& windowSize,
u32 bits,
bool fullscreen,
bool stencilbuffer,
bool vsync,
IEventReceiver* receiver);
//! Creates an Irrlicht device with the option to specify advanced parameters. //! Creates an Irrlicht device with the option to specify advanced parameters.
/** Usually you should used createDevice() for creating an Irrlicht Engine device. /** Usually you should used createDevice() for creating an Irrlicht Engine device.
@ -302,10 +291,6 @@ namespace irr
extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx( extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(
const SIrrlichtCreationParameters& parameters); const SIrrlichtCreationParameters& parameters);
//! typedef for Function Pointer
typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDeviceEx )( const SIrrlichtCreationParameters& parameters );
// THE FOLLOWING IS AN EMPTY LIST OF ALL SUB NAMESPACES // THE FOLLOWING IS AN EMPTY LIST OF ALL SUB NAMESPACES
// EXISTING ONLY FOR THE DOCUMENTATION SOFTWARE DOXYGEN. // EXISTING ONLY FOR THE DOCUMENTATION SOFTWARE DOXYGEN.

@ -100,8 +100,7 @@ namespace core
//! Check if a point is inside the triangle (border-points count also as inside) //! Check if a point is inside the triangle (border-points count also as inside)
/** This method uses a barycentric coordinate system. /** This method uses a barycentric coordinate system.
It is faster than isPointInside but is more susceptible to floating point rounding It is faster than isPointInside but is more susceptible to floating point rounding
errors. This will especially be noticeable when the FPU is in single precision mode errors.
(which is for example set on default by Direct3D).
\param p Point to test. Assumes that this point is already \param p Point to test. Assumes that this point is already
on the plane of the triangle. on the plane of the triangle.
\return True if point is inside the triangle, otherwise false. */ \return True if point is inside the triangle, otherwise false. */

@ -535,11 +535,7 @@ void CIrrDeviceAndroid::createDriver()
case video::EDT_NULL: case video::EDT_NULL:
VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize); VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize);
break; break;
case video::EDT_SOFTWARE:
case video::EDT_BURNINGSVIDEO:
case video::EDT_OPENGL: case video::EDT_OPENGL:
case video::DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS:
case video::EDT_DIRECT3D9:
os::Printer::log("This driver is not available in Android. Try OpenGL ES 1.0 or ES 2.0.", ELL_ERROR); os::Printer::log("This driver is not available in Android. Try OpenGL ES 1.0 or ES 2.0.", ELL_ERROR);
break; break;
default: default:

@ -19,8 +19,7 @@ CCameraSceneNode::CCameraSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 i
: ICameraSceneNode(parent, mgr, id, position), : ICameraSceneNode(parent, mgr, id, position),
BoundingBox(core::vector3df(0, 0, 0)), // Camera has no size. Still not sure if FLT_MAX might be the better variant BoundingBox(core::vector3df(0, 0, 0)), // Camera has no size. Still not sure if FLT_MAX might be the better variant
Target(lookat), UpVector(0.0f, 1.0f, 0.0f), ZNear(1.0f), ZFar(3000.0f), Target(lookat), UpVector(0.0f, 1.0f, 0.0f), ZNear(1.0f), ZFar(3000.0f),
InputReceiverEnabled(true), TargetAndRotationAreBound(false), InputReceiverEnabled(true), TargetAndRotationAreBound(false)
HasD3DStyleProjectionMatrix(true)
{ {
#ifdef _DEBUG #ifdef _DEBUG
setDebugName("CCameraSceneNode"); setDebugName("CCameraSceneNode");
@ -36,7 +35,6 @@ CCameraSceneNode::CCameraSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 i
if ( d->getCurrentRenderTargetSize().Height ) if ( d->getCurrentRenderTargetSize().Height )
Aspect = (f32)d->getCurrentRenderTargetSize().Width / Aspect = (f32)d->getCurrentRenderTargetSize().Width /
(f32)d->getCurrentRenderTargetSize().Height; (f32)d->getCurrentRenderTargetSize().Height;
HasD3DStyleProjectionMatrix = d->getDriverType() != video::EDT_OPENGL;
} }
ViewArea.setFarNearDistance(ZFar - ZNear); ViewArea.setFarNearDistance(ZFar - ZNear);
@ -223,7 +221,7 @@ void CCameraSceneNode::setFOV(f32 f)
void CCameraSceneNode::recalculateProjectionMatrix() void CCameraSceneNode::recalculateProjectionMatrix()
{ {
ViewArea.getTransform ( video::ETS_PROJECTION ).buildProjectionMatrixPerspectiveFovLH(Fovy, Aspect, ZNear, ZFar, HasD3DStyleProjectionMatrix); ViewArea.getTransform ( video::ETS_PROJECTION ).buildProjectionMatrixPerspectiveFovLH(Fovy, Aspect, ZNear, ZFar, false);
IsOrthogonal = false; IsOrthogonal = false;
} }
@ -296,7 +294,7 @@ void CCameraSceneNode::recalculateViewArea()
core::matrix4 m(core::matrix4::EM4CONST_NOTHING); core::matrix4 m(core::matrix4::EM4CONST_NOTHING);
m.setbyproduct_nocheck(ViewArea.getTransform(video::ETS_PROJECTION), m.setbyproduct_nocheck(ViewArea.getTransform(video::ETS_PROJECTION),
ViewArea.getTransform(video::ETS_VIEW)); ViewArea.getTransform(video::ETS_VIEW));
ViewArea.setFrom(m, HasD3DStyleProjectionMatrix); ViewArea.setFrom(m, false);
} }

@ -161,8 +161,6 @@ namespace scene
bool InputReceiverEnabled; bool InputReceiverEnabled;
bool TargetAndRotationAreBound; bool TargetAndRotationAreBound;
bool HasD3DStyleProjectionMatrix; // true: projection from 0 to w; false: -w to w
}; };
} // end namespace } // end namespace

@ -633,11 +633,6 @@ void CIrrDeviceLinux::createDriver()
os::Printer::log("No WebGL1 support compiled in.", ELL_ERROR); os::Printer::log("No WebGL1 support compiled in.", ELL_ERROR);
#endif #endif
break; break;
case video::DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS:
case video::EDT_DIRECT3D9:
os::Printer::log("This driver is not available in Linux. Try OpenGL or Software renderer.",
ELL_ERROR);
break;
case video::EDT_NULL: case video::EDT_NULL:
VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize); VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize);
break; break;

@ -758,8 +758,6 @@ void CIrrDeviceMacOSX::createDriver()
#endif #endif
break; break;
case video::DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS:
case video::EDT_DIRECT3D9:
case video::EDT_OGLES1: case video::EDT_OGLES1:
case video::EDT_OGLES2: case video::EDT_OGLES2:
os::Printer::log("This driver is not available in OSX. Try OpenGL or Software renderer.", ELL_ERROR); os::Printer::log("This driver is not available in OSX. Try OpenGL or Software renderer.", ELL_ERROR);

@ -41,10 +41,6 @@ namespace irr
{ {
namespace video namespace video
{ {
#ifdef _IRR_COMPILE_WITH_DIRECT3D_9_
IVideoDriver* createDirectX9Driver(const irr::SIrrlichtCreationParameters& params, io::IFileSystem* io, HWND window);
#endif
#ifdef _IRR_COMPILE_WITH_OPENGL_ #ifdef _IRR_COMPILE_WITH_OPENGL_
IVideoDriver* createOpenGLDriver(const irr::SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager); IVideoDriver* createOpenGLDriver(const irr::SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager);
#endif #endif
@ -950,19 +946,6 @@ void CIrrDeviceWin32::createDriver()
{ {
switch(CreationParams.DriverType) switch(CreationParams.DriverType)
{ {
case video::DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS:
os::Printer::log("DIRECT3D8 Driver is no longer supported in Irrlicht. Try another one.", ELL_ERROR);
break;
case video::EDT_DIRECT3D9:
#ifdef _IRR_COMPILE_WITH_DIRECT3D_9_
VideoDriver = video::createDirectX9Driver(CreationParams, FileSystem, HWnd);
if (!VideoDriver)
os::Printer::log("Could not create DIRECT3D9 Driver.", ELL_ERROR);
#else
os::Printer::log("DIRECT3D9 Driver was not compiled into this dll. Try another one.", ELL_ERROR);
#endif
break;
case video::EDT_OPENGL: case video::EDT_OPENGL:
#ifdef _IRR_COMPILE_WITH_OPENGL_ #ifdef _IRR_COMPILE_WITH_OPENGL_
switchToFullScreen(); switchToFullScreen();