diff --git a/include/EDriverTypes.h b/include/EDriverTypes.h index 71cea544..04097573 100644 --- a/include/EDriverTypes.h +++ b/include/EDriverTypes.h @@ -20,13 +20,6 @@ namespace video render and display any graphics. */ 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. /** Performs hardware accelerated rendering of 3D and 2D primitives. */ diff --git a/include/ITexture.h b/include/ITexture.h index 3976ba37..f975abd8 100644 --- a/include/ITexture.h +++ b/include/ITexture.h @@ -97,14 +97,6 @@ enum E_TEXTURE_CREATION_FLAG */ 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 these enumeration values to 32 bit. */ ETCF_FORCE_32_BIT_DO_NOT_USE = 0x7fffffff diff --git a/include/IVideoDriver.h b/include/IVideoDriver.h index ef8e38e1..d26d75a5 100644 --- a/include/IVideoDriver.h +++ b/include/IVideoDriver.h @@ -366,8 +366,7 @@ namespace video 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. - /** 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. The name can _not_ be empty. \param format The color format of the render target. Floating point formats are supported. diff --git a/include/SExposedVideoData.h b/include/SExposedVideoData.h index 5e86562b..17e2364d 100644 --- a/include/SExposedVideoData.h +++ b/include/SExposedVideoData.h @@ -5,12 +5,6 @@ #ifndef __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 video @@ -27,19 +21,6 @@ struct SExposedVideoData SExposedVideoData() {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=0;} 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(exposedData.D3D9.HWnd) */ - void* HWnd; - }; - struct SOpenGLWin32 { //! Private GDI Device Context. @@ -87,7 +68,6 @@ struct SExposedVideoData union { - SD3D9 D3D9; SOpenGLWin32 OpenGLWin32; SOpenGLLinux OpenGLLinux; SOpenGLOSX OpenGLOSX; diff --git a/include/SIrrCreationParameters.h b/include/SIrrCreationParameters.h index f57058ae..6e7b3abf 100644 --- a/include/SIrrCreationParameters.h +++ b/include/SIrrCreationParameters.h @@ -40,7 +40,6 @@ namespace irr Doublebuffer(true), IgnoreInput(false), Stereobuffer(false), - HighPrecisionFPU(false), EventReceiver(0), WindowId(0), #ifdef _DEBUG @@ -48,8 +47,6 @@ namespace irr #else LoggingLevel(ELL_INFORMATION), #endif - DisplayAdapter(0), - DriverMultithreaded(false), SDK_version_do_not_use(IRRLICHT_SDK_VERSION), PrivateData(0), #ifdef IRR_MOBILE_PATHS @@ -83,12 +80,9 @@ namespace irr Doublebuffer = other.Doublebuffer; IgnoreInput = other.IgnoreInput; Stereobuffer = other.Stereobuffer; - HighPrecisionFPU = other.HighPrecisionFPU; EventReceiver = other.EventReceiver; WindowId = other.WindowId; LoggingLevel = other.LoggingLevel; - DisplayAdapter = other.DisplayAdapter; - DriverMultithreaded = other.DriverMultithreaded; PrivateData = other.PrivateData; OGLES2ShaderPath = other.OGLES2ShaderPath; return *this; @@ -106,9 +100,6 @@ namespace irr E_DEVICE_TYPE DeviceType; //! 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; //! Size of the window or the video mode in fullscreen mode. Default: 800x600 @@ -217,15 +208,6 @@ namespace irr Default value: false */ 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. IEventReceiver* EventReceiver; @@ -290,16 +272,6 @@ namespace irr */ 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. /** Always set it to IRRLICHT_SDK_VERSION, which is done by default. This is needed for sdk version checks. */ diff --git a/include/irrlicht.h b/include/irrlicht.h index 46452f38..d941ca77 100644 --- a/include/irrlicht.h +++ b/include/irrlicht.h @@ -255,8 +255,7 @@ namespace irr //! 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, use the createDeviceEx() function. - \param driverType: Type of the video driver to use. This can currently be video::EDT_NULL, - video::EDT_SOFTWARE, video::EDT_BURNINGSVIDEO, video::EDT_DIRECT3D9 and video::EDT_OPENGL. + \param driverType: Type of the video driver to use. \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 fullscreen: Should be set to true if the device should run in fullscreen. Otherwise @@ -280,16 +279,6 @@ namespace irr bool vsync = false, IEventReceiver* receiver = 0); - //! typedef for Function Pointer - typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDevice )( - video::E_DRIVER_TYPE driverType, - const core::dimension2d& windowSize, - u32 bits, - bool fullscreen, - bool stencilbuffer, - bool vsync, - IEventReceiver* receiver); - //! Creates an Irrlicht device with the option to specify advanced parameters. /** Usually you should used createDevice() for creating an Irrlicht Engine device. @@ -302,10 +291,6 @@ namespace irr extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx( 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 // EXISTING ONLY FOR THE DOCUMENTATION SOFTWARE DOXYGEN. diff --git a/include/triangle3d.h b/include/triangle3d.h index 61d23a4b..9218ae25 100644 --- a/include/triangle3d.h +++ b/include/triangle3d.h @@ -100,8 +100,7 @@ namespace core //! Check if a point is inside the triangle (border-points count also as inside) /** This method uses a barycentric coordinate system. 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 - (which is for example set on default by Direct3D). + errors. \param p Point to test. Assumes that this point is already on the plane of the triangle. \return True if point is inside the triangle, otherwise false. */ diff --git a/source/Irrlicht/Android/CIrrDeviceAndroid.cpp b/source/Irrlicht/Android/CIrrDeviceAndroid.cpp index 43c5b0f3..db8386ae 100644 --- a/source/Irrlicht/Android/CIrrDeviceAndroid.cpp +++ b/source/Irrlicht/Android/CIrrDeviceAndroid.cpp @@ -535,11 +535,7 @@ void CIrrDeviceAndroid::createDriver() case video::EDT_NULL: VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize); break; - case video::EDT_SOFTWARE: - case video::EDT_BURNINGSVIDEO: 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); break; default: diff --git a/source/Irrlicht/CCameraSceneNode.cpp b/source/Irrlicht/CCameraSceneNode.cpp index 77d8c28f..7407788e 100644 --- a/source/Irrlicht/CCameraSceneNode.cpp +++ b/source/Irrlicht/CCameraSceneNode.cpp @@ -19,8 +19,7 @@ CCameraSceneNode::CCameraSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 i : 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 Target(lookat), UpVector(0.0f, 1.0f, 0.0f), ZNear(1.0f), ZFar(3000.0f), - InputReceiverEnabled(true), TargetAndRotationAreBound(false), - HasD3DStyleProjectionMatrix(true) + InputReceiverEnabled(true), TargetAndRotationAreBound(false) { #ifdef _DEBUG setDebugName("CCameraSceneNode"); @@ -36,7 +35,6 @@ CCameraSceneNode::CCameraSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 i if ( d->getCurrentRenderTargetSize().Height ) Aspect = (f32)d->getCurrentRenderTargetSize().Width / (f32)d->getCurrentRenderTargetSize().Height; - HasD3DStyleProjectionMatrix = d->getDriverType() != video::EDT_OPENGL; } ViewArea.setFarNearDistance(ZFar - ZNear); @@ -223,7 +221,7 @@ void CCameraSceneNode::setFOV(f32 f) 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; } @@ -296,7 +294,7 @@ void CCameraSceneNode::recalculateViewArea() core::matrix4 m(core::matrix4::EM4CONST_NOTHING); m.setbyproduct_nocheck(ViewArea.getTransform(video::ETS_PROJECTION), ViewArea.getTransform(video::ETS_VIEW)); - ViewArea.setFrom(m, HasD3DStyleProjectionMatrix); + ViewArea.setFrom(m, false); } diff --git a/source/Irrlicht/CCameraSceneNode.h b/source/Irrlicht/CCameraSceneNode.h index 80379f23..6f59b8c1 100644 --- a/source/Irrlicht/CCameraSceneNode.h +++ b/source/Irrlicht/CCameraSceneNode.h @@ -161,8 +161,6 @@ namespace scene bool InputReceiverEnabled; bool TargetAndRotationAreBound; - - bool HasD3DStyleProjectionMatrix; // true: projection from 0 to w; false: -w to w }; } // end namespace diff --git a/source/Irrlicht/CIrrDeviceLinux.cpp b/source/Irrlicht/CIrrDeviceLinux.cpp index dae3b04e..23c57390 100644 --- a/source/Irrlicht/CIrrDeviceLinux.cpp +++ b/source/Irrlicht/CIrrDeviceLinux.cpp @@ -633,11 +633,6 @@ void CIrrDeviceLinux::createDriver() os::Printer::log("No WebGL1 support compiled in.", ELL_ERROR); #endif 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: VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize); break; diff --git a/source/Irrlicht/CIrrDeviceOSX.mm b/source/Irrlicht/CIrrDeviceOSX.mm index 4069cf19..18b7df4f 100644 --- a/source/Irrlicht/CIrrDeviceOSX.mm +++ b/source/Irrlicht/CIrrDeviceOSX.mm @@ -758,8 +758,6 @@ void CIrrDeviceMacOSX::createDriver() #endif break; - case video::DEPRECATED_EDT_DIRECT3D8_NO_LONGER_EXISTS: - case video::EDT_DIRECT3D9: case video::EDT_OGLES1: case video::EDT_OGLES2: os::Printer::log("This driver is not available in OSX. Try OpenGL or Software renderer.", ELL_ERROR); diff --git a/source/Irrlicht/CIrrDeviceWin32.cpp b/source/Irrlicht/CIrrDeviceWin32.cpp index 9e92a8fa..3fc0cd99 100644 --- a/source/Irrlicht/CIrrDeviceWin32.cpp +++ b/source/Irrlicht/CIrrDeviceWin32.cpp @@ -41,10 +41,6 @@ namespace irr { 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_ IVideoDriver* createOpenGLDriver(const irr::SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager); #endif @@ -950,19 +946,6 @@ void CIrrDeviceWin32::createDriver() { 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: #ifdef _IRR_COMPILE_WITH_OPENGL_ switchToFullScreen();