- Merged revision 5195-5197 from trunk.
Following features are still unavailable in ogl-es branch since rev 5181: * OpenGL ES1 * Support for iOS * Support for OSX (If you need one of those features please use rev 5180) git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@5198 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
4d03349573
commit
58cba0b3c6
|
@ -8,6 +8,7 @@ Changes in ogl-es (not yet released - will be merged with trunk at some point)
|
|||
--------------------------
|
||||
Changes in 1.9 (not yet released)
|
||||
|
||||
- Fix: Add missing serialization to CSceneNodeAnimatorCameraFPS and CSceneNodeAnimatorCameraMaya
|
||||
- Fix: File-open dialog now restores the original locale after modifying it internally
|
||||
- Fix first calculation of the camerascenenode boundingsphere.
|
||||
- Fix bug with ignored opening brace in .X files with DeclData section. Thx @Alin for bugreport and patch.
|
||||
|
@ -130,6 +131,7 @@ Changes in 1.9 (not yet released)
|
|||
|
||||
--------------------------
|
||||
Changes in 1.8.4
|
||||
- Fix serialization of the InputReceiverEnabled flag in CCameraSceneNode
|
||||
- Fix pasting text from X11 applications to Irrlicht. Thanks @est31 for the patch.
|
||||
- Tests give now a warning when stabilizing screenshots failed. Aslo trying more often now (a hack as taking screenshots otherwise fails often in windowed mode on some systems).
|
||||
|
||||
|
|
|
@ -337,7 +337,7 @@ void CCameraSceneNode::deserializeAttributes(io::IAttributes* in, io::SAttribute
|
|||
ZFar = in->getAttributeAsFloat("ZFar");
|
||||
TargetAndRotationAreBound = in->getAttributeAsBool("Binding");
|
||||
if ( in->findAttribute("ReceiveInput") )
|
||||
InputReceiverEnabled = in->getAttributeAsBool("InputReceiverEnabled");
|
||||
InputReceiverEnabled = in->getAttributeAsBool("ReceiveInput");
|
||||
|
||||
recalculateProjectionMatrix();
|
||||
recalculateViewArea();
|
||||
|
|
|
@ -1660,7 +1660,7 @@ IImage* CNullDriver::createImage(ITexture* texture, const core::position2d<s32>&
|
|||
if (!src)
|
||||
return 0;
|
||||
IImage* image = new CImage(texture->getColorFormat(), clamped.getSize());
|
||||
u8* dst = static_cast<u8*>(image->lock());
|
||||
u8* dst = static_cast<u8*>(image->getData());
|
||||
src += clamped.UpperLeftCorner.Y * texture->getPitch() + image->getBytesPerPixel() * clamped.UpperLeftCorner.X;
|
||||
for (u32 i=0; i<clamped.getHeight(); ++i)
|
||||
{
|
||||
|
@ -1668,7 +1668,6 @@ IImage* CNullDriver::createImage(ITexture* texture, const core::position2d<s32>&
|
|||
src += texture->getPitch();
|
||||
dst += image->getPitch();
|
||||
}
|
||||
image->unlock();
|
||||
texture->unlock();
|
||||
return image;
|
||||
}
|
||||
|
|
|
@ -15,8 +15,10 @@
|
|||
#elif defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
|
||||
#include <GLES2/gl2.h>
|
||||
#include <GLES2/gl2ext.h>
|
||||
#include <EGL/eglplatform.h>
|
||||
#else
|
||||
#include <GLES2/gl2.h>
|
||||
#include <EGL/eglplatform.h>
|
||||
typedef char GLchar;
|
||||
#if defined(_IRR_OGLES2_USE_EXTPOINTER_)
|
||||
#include "gles2-ext.h"
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#include "COGLES2NormalMapRenderer.h"
|
||||
#include "COGLES2ParallaxMapRenderer.h"
|
||||
#include "COGLES2Renderer2D.h"
|
||||
|
||||
#include "EVertexAttributes.h"
|
||||
#include "CImage.h"
|
||||
#include "os.h"
|
||||
#include "EProfileIDs.h"
|
||||
|
@ -2580,10 +2582,9 @@ COGLES2Driver::~COGLES2Driver()
|
|||
if (!newImage)
|
||||
return 0;
|
||||
|
||||
u8* pixels = static_cast<u8*>(newImage->lock());
|
||||
u8* pixels = static_cast<u8*>(newImage->getData());
|
||||
if (!pixels)
|
||||
{
|
||||
newImage->unlock();
|
||||
newImage->drop();
|
||||
return 0;
|
||||
}
|
||||
|
@ -2605,8 +2606,6 @@ COGLES2Driver::~COGLES2Driver()
|
|||
}
|
||||
delete [] tmpBuffer;
|
||||
|
||||
newImage->unlock();
|
||||
|
||||
if (testGLError())
|
||||
{
|
||||
newImage->drop();
|
||||
|
|
|
@ -3,14 +3,13 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in Irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COGLES2ExtensionHandler.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "COGLES2ExtensionHandler.h"
|
||||
#include "COGLES2Driver.h"
|
||||
#include "fast_atof.h"
|
||||
#include "irrString.h"
|
||||
#include "SMaterial.h"
|
||||
#include "fast_atof.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
#include "EDriverFeatures.h"
|
||||
#include "irrTypes.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COGLES2Common.h"
|
||||
|
||||
#include "COGLCoreFeature.h"
|
||||
|
||||
namespace irr
|
||||
|
|
|
@ -2,11 +2,10 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in Irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COGLES2FixedPipelineRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "COGLES2FixedPipelineRenderer.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "SLight.h"
|
||||
|
||||
|
|
|
@ -2,24 +2,21 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COGLES2MaterialRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "COGLES2Common.h"
|
||||
#include "EVertexAttributes.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COGLES2Driver.h"
|
||||
|
||||
#include "COGLCoreTexture.h"
|
||||
#include "COGLCoreCacheHandler.h"
|
||||
|
||||
#include "COGLES2MaterialRenderer.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "os.h"
|
||||
#include "COGLES2Driver.h"
|
||||
#include "COGLES2MaterialRenderer.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -9,23 +9,15 @@
|
|||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#if defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
|
||||
#include <OpenGLES/ES2/gl.h>
|
||||
#include <OpenGLES/ES2/glext.h>
|
||||
#else
|
||||
#include <GLES2/gl2.h>
|
||||
#include <EGL/eglplatform.h>
|
||||
#endif
|
||||
|
||||
#include "EMaterialTypes.h"
|
||||
#include "EVertexAttributes.h"
|
||||
#include "IMaterialRenderer.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "irrArray.h"
|
||||
#include "irrString.h"
|
||||
|
||||
#include "COGLES2Common.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -2,13 +2,16 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COGLES2NormalMapRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "COGLES2NormalMapRenderer.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "SLight.h"
|
||||
#include "os.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "vector3d.h"
|
||||
#include "SColor.h"
|
||||
#include "IMaterialRenderer.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
|
||||
#include "COGLES2Common.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
|
|
@ -2,14 +2,16 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COGLES2ParallaxMapRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "COGLES2ParallaxMapRenderer.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "SLight.h"
|
||||
#include "irrMath.h"
|
||||
#include "os.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "vector3d.h"
|
||||
#include "SColor.h"
|
||||
#include "IMaterialRenderer.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
|
||||
#include "COGLES2Common.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
|
|
@ -2,20 +2,19 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in Irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COGLES2Renderer2D.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
|
||||
#include "COGLES2Common.h"
|
||||
|
||||
#include "COGLCoreTexture.h"
|
||||
#include "COGLCoreCacheHandler.h"
|
||||
|
||||
#include "COGLES2Renderer2D.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COGLES2Driver.h"
|
||||
|
||||
#include "COGLCoreFeature.h"
|
||||
#include "COGLCoreTexture.h"
|
||||
#include "COGLCoreCacheHandler.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLCommon.h"
|
||||
|
||||
#include "COGLCoreFeature.h"
|
||||
#include "COGLCoreTexture.h"
|
||||
#include "COGLCoreCacheHandler.h"
|
||||
|
|
|
@ -169,8 +169,6 @@ typedef char GLchar;
|
|||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
// Irrlicht's OpenGL version.
|
||||
|
||||
#define IRR_OPENGL_VERSION 14
|
||||
|
|
|
@ -3,14 +3,12 @@
|
|||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "COpenGLDriver.h"
|
||||
// needed here also because of the create methods' parameters
|
||||
#include "CNullDriver.h"
|
||||
#include "IContextManager.h"
|
||||
#include "CNullDriver.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COGLCoreTexture.h"
|
||||
#include "COGLCoreRenderTarget.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COpenGLCacheHandler.h"
|
||||
#include "COpenGLMaterialRenderer.h"
|
||||
|
@ -18,13 +16,26 @@
|
|||
#include "COpenGLSLMaterialRenderer.h"
|
||||
#include "COpenGLNormalMapRenderer.h"
|
||||
#include "COpenGLParallaxMapRenderer.h"
|
||||
#include "os.h"
|
||||
#include "IrrlichtDevice.h"
|
||||
|
||||
#include "COGLCoreTexture.h"
|
||||
#include "COGLCoreRenderTarget.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
|
||||
#include "MacOSX/CIrrDeviceMacOSX.h"
|
||||
#endif
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#include <SDL/SDL.h>
|
||||
#endif
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
|
||||
// If You use MacOSX SDK which support MacOSX 10.6 "__MAC_10_6" and
|
||||
// custom XCode project for build Irrlicht make sure that
|
||||
// COpenGLDriver.cpp is signed as "Objective-C++ Source"
|
||||
// in "Identity and Type" section in XCode.
|
||||
#include "MacOSX/CIrrDeviceMacOSX.h"
|
||||
#endif
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
@ -3942,7 +3953,7 @@ IImage* COpenGLDriver::createScreenShot(video::ECOLOR_FORMAT format, video::E_RE
|
|||
|
||||
u8* pixels = 0;
|
||||
if (newImage)
|
||||
pixels = static_cast<u8*>(newImage->lock());
|
||||
pixels = static_cast<u8*>(newImage->getData());
|
||||
if (pixels)
|
||||
{
|
||||
GLenum tgt=GL_FRONT;
|
||||
|
@ -4001,7 +4012,6 @@ IImage* COpenGLDriver::createScreenShot(video::ECOLOR_FORMAT format, video::E_RE
|
|||
|
||||
if (newImage)
|
||||
{
|
||||
newImage->unlock();
|
||||
if (testGLError() || !pixels)
|
||||
{
|
||||
os::Printer::log("createScreenShot failed", ELL_ERROR);
|
||||
|
|
|
@ -19,9 +19,9 @@ namespace irr
|
|||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "CNullDriver.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
#include "COpenGLCommon.h"
|
||||
#include "CNullDriver.h"
|
||||
|
||||
#include "COpenGLExtensionHandler.h"
|
||||
#include "IContextManager.h"
|
||||
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COpenGLExtensionHandler.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLExtensionHandler.h"
|
||||
#include "irrString.h"
|
||||
#include "SMaterial.h" // for MATERIAL_MAX_TEXTURES
|
||||
#include "SMaterial.h"
|
||||
#include "fast_atof.h"
|
||||
|
||||
namespace irr
|
||||
|
|
|
@ -12,7 +12,9 @@
|
|||
#include "EDriverFeatures.h"
|
||||
#include "irrTypes.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COpenGLCommon.h"
|
||||
|
||||
#include "COGLCoreFeature.h"
|
||||
|
||||
namespace irr
|
||||
|
|
|
@ -8,9 +8,10 @@
|
|||
#include "IrrCompileConfig.h"
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "IMaterialRenderer.h"
|
||||
|
||||
#include "COpenGLDriver.h"
|
||||
#include "COpenGLCacheHandler.h"
|
||||
#include "IMaterialRenderer.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COpenGLNormalMapRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLNormalMapRenderer.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COpenGLDriver.h"
|
||||
|
||||
namespace irr
|
||||
|
|
|
@ -6,11 +6,13 @@
|
|||
#define __C_OPENGL_NORMAL_MAP_RENDERER_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLShaderMaterialRenderer.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
|
||||
#include "COpenGLShaderMaterialRenderer.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -2,16 +2,17 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COpenGLParallaxMapRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLParallaxMapRenderer.h"
|
||||
#include "COpenGLDriver.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COpenGLDriver.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -6,11 +6,13 @@
|
|||
#define __C_OPENGL_PARALLAX_MAP_RENDERER_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLShaderMaterialRenderer.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
|
||||
#include "COpenGLShaderMaterialRenderer.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -10,19 +10,22 @@
|
|||
// After Irrlicht 0.12, Michael Zoech did some improvements to this renderer, I
|
||||
// merged this into Irrlicht 0.14, thanks to him for his work.
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COpenGLSLMaterialRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLSLMaterialRenderer.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COpenGLDriver.h"
|
||||
#include "COpenGLCacheHandler.h"
|
||||
#include "COpenGLMaterialRenderer.h"
|
||||
|
||||
#include "COGLCoreFeature.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -6,30 +6,9 @@
|
|||
#define __C_OPENGL_SHADER_LANGUAGE_MATERIAL_RENDERER_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#ifdef _IRR_WINDOWS_API_
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <GL/gl.h>
|
||||
#include "glext.h"
|
||||
#else
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
#define GL_GLEXT_LEGACY 1
|
||||
#else
|
||||
#define GL_GLEXT_PROTOTYPES 1
|
||||
#endif
|
||||
#if defined(_IRR_OSX_PLATFORM_)
|
||||
#include <OpenGL/gl.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
#include "glext.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#include "EMaterialTypes.h"
|
||||
#include "IMaterialRenderer.h"
|
||||
#include "IMaterialRendererServices.h"
|
||||
|
@ -37,6 +16,8 @@
|
|||
#include "irrArray.h"
|
||||
#include "irrString.h"
|
||||
|
||||
#include "COpenGLCommon.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
#include "COpenGLShaderMaterialRenderer.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#include "COpenGLShaderMaterialRenderer.h"
|
||||
#include "IGPUProgrammingServices.h"
|
||||
#include "IShaderConstantSetCallBack.h"
|
||||
#include "IVideoDriver.h"
|
||||
#include "os.h"
|
||||
|
||||
#include "COpenGLDriver.h"
|
||||
#include "COpenGLCacheHandler.h"
|
||||
#include "COpenGLMaterialRenderer.h"
|
||||
|
|
|
@ -6,29 +6,13 @@
|
|||
#define __C_OPENGL_SHADER_MATERIAL_RENDERER_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_OPENGL_
|
||||
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
#define GL_GLEXT_LEGACY 1
|
||||
#else
|
||||
#define GL_GLEXT_PROTOTYPES 1
|
||||
#endif
|
||||
#ifdef _IRR_WINDOWS_API_
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <GL/gl.h>
|
||||
#elif defined(_IRR_OSX_PLATFORM_)
|
||||
#include <OpenGL/gl.h>
|
||||
#elif defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
|
||||
#define NO_SDL_GLEXT
|
||||
#include <SDL/SDL_video.h>
|
||||
#include <SDL/SDL_opengl.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
|
||||
#include "IMaterialRenderer.h"
|
||||
|
||||
#include "COpenGLCommon.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
|
|
|
@ -19,10 +19,10 @@ namespace scene
|
|||
CSceneNodeAnimatorCameraFPS::CSceneNodeAnimatorCameraFPS(gui::ICursorControl* cursorControl,
|
||||
f32 rotateSpeed, f32 moveSpeed, f32 jumpSpeed,
|
||||
SKeyMap* keyMapArray, u32 keyMapSize, bool noVerticalMovement, bool invertY)
|
||||
: CursorControl(cursorControl), MaxVerticalAngle(88.0f),
|
||||
: CursorControl(cursorControl), MaxVerticalAngle(88.0f), NoVerticalMovement(noVerticalMovement),
|
||||
MoveSpeed(moveSpeed), RotateSpeed(rotateSpeed), JumpSpeed(jumpSpeed),
|
||||
MouseYDirection(invertY ? -1.0f : 1.0f),
|
||||
LastAnimationTime(0), firstUpdate(true), firstInput(true), NoVerticalMovement(noVerticalMovement)
|
||||
LastAnimationTime(0), firstUpdate(true), firstInput(true)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
setDebugName("CCameraSceneNodeAnimatorFPS");
|
||||
|
@ -350,6 +350,56 @@ ISceneNodeAnimator* CSceneNodeAnimatorCameraFPS::createClone(ISceneNode* node, I
|
|||
return newAnimator;
|
||||
}
|
||||
|
||||
void CSceneNodeAnimatorCameraFPS::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const
|
||||
{
|
||||
ISceneNodeAnimator::serializeAttributes(out, options);
|
||||
|
||||
out->addFloat("MaxVerticalAngle", MaxVerticalAngle);
|
||||
out->addBool("NoVerticalMovement", NoVerticalMovement);
|
||||
out->addFloat("MoveSpeed", MoveSpeed);
|
||||
out->addFloat("RotateSpeed", RotateSpeed);
|
||||
out->addFloat("JumpSpeed", JumpSpeed);
|
||||
out->addFloat("MouseYDirection", MouseYDirection);
|
||||
|
||||
out->addInt("KeyMapSize", (s32)KeyMap.size());
|
||||
for ( u32 i=0; i < KeyMap.size(); ++i )
|
||||
{
|
||||
core::stringc name("Action");
|
||||
name += core::stringc(i);
|
||||
out->addInt(name.c_str(), (int)KeyMap[i].Action);
|
||||
name = core::stringc("KeyCode") + core::stringc(i);
|
||||
out->addInt(name.c_str(), (int)KeyMap[i].KeyCode);
|
||||
}
|
||||
}
|
||||
|
||||
void CSceneNodeAnimatorCameraFPS::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
|
||||
{
|
||||
ISceneNodeAnimator::deserializeAttributes(in, options);
|
||||
|
||||
MaxVerticalAngle = in->getAttributeAsFloat("MaxVerticalAngle", MaxVerticalAngle);
|
||||
NoVerticalMovement = in->getAttributeAsBool("NoVerticalMovement", NoVerticalMovement);
|
||||
MoveSpeed = in->getAttributeAsFloat("MoveSpeed", MoveSpeed);
|
||||
RotateSpeed = in->getAttributeAsFloat("RotateSpeed", RotateSpeed);
|
||||
JumpSpeed = in->getAttributeAsFloat("JumpSpeed", JumpSpeed);
|
||||
MouseYDirection = in->getAttributeAsFloat("MouseYDirection", MouseYDirection);
|
||||
|
||||
if ( in->findAttribute("KeyMapSize") )
|
||||
{
|
||||
KeyMap.clear();
|
||||
s32 keyMapSize = in->getAttributeAsInt("KeyMapSize");
|
||||
for ( u32 i=0; i < (u32)keyMapSize; ++i )
|
||||
{
|
||||
SKeyMap keyMapEntry;
|
||||
core::stringc name("Action");
|
||||
name += core::stringc(i);
|
||||
keyMapEntry.Action = static_cast<EKEY_ACTION>(in->getAttributeAsInt(name.c_str()));
|
||||
name = core::stringc("KeyCode") + core::stringc(i);
|
||||
keyMapEntry.KeyCode = static_cast<EKEY_CODE>(in->getAttributeAsInt(name.c_str()));
|
||||
KeyMap.push_back(keyMapEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace scene
|
||||
} // namespace irr
|
||||
|
|
|
@ -91,12 +91,20 @@ namespace scene
|
|||
done with it. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Writes attributes of the scene node animator.
|
||||
virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const _IRR_OVERRIDE_;
|
||||
|
||||
//! Reads attributes of the scene node animator.
|
||||
virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) _IRR_OVERRIDE_;
|
||||
|
||||
|
||||
private:
|
||||
void allKeysUp();
|
||||
|
||||
gui::ICursorControl *CursorControl;
|
||||
|
||||
f32 MaxVerticalAngle;
|
||||
bool NoVerticalMovement;
|
||||
|
||||
f32 MoveSpeed;
|
||||
f32 RotateSpeed;
|
||||
|
@ -113,7 +121,6 @@ namespace scene
|
|||
|
||||
bool firstUpdate;
|
||||
bool firstInput;
|
||||
bool NoVerticalMovement;
|
||||
};
|
||||
|
||||
} // end namespace scene
|
||||
|
|
|
@ -330,6 +330,28 @@ ISceneNodeAnimator* CSceneNodeAnimatorCameraMaya::createClone(ISceneNode* node,
|
|||
return newAnimator;
|
||||
}
|
||||
|
||||
void CSceneNodeAnimatorCameraMaya::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const
|
||||
{
|
||||
ISceneNodeAnimator::serializeAttributes(out, options);
|
||||
|
||||
out->addFloat("TargetMinDistance", TargetMinDistance);
|
||||
out->addFloat("ZoomSpeed", ZoomSpeed);
|
||||
out->addFloat("RotateSpeed", RotateSpeed);
|
||||
out->addFloat("TranslateSpeed", TranslateSpeed);
|
||||
out->addFloat("CurrentZoom", CurrentZoom);
|
||||
}
|
||||
|
||||
void CSceneNodeAnimatorCameraMaya::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
|
||||
{
|
||||
ISceneNodeAnimator::deserializeAttributes(in, options);
|
||||
|
||||
TargetMinDistance = in->getAttributeAsFloat("TargetMinDistance", TargetMinDistance);
|
||||
ZoomSpeed = in->getAttributeAsFloat("ZoomSpeed", ZoomSpeed);
|
||||
RotateSpeed = in->getAttributeAsFloat("RotateSpeed", RotateSpeed);
|
||||
TranslateSpeed = in->getAttributeAsFloat("TranslateSpeed", TranslateSpeed);
|
||||
CurrentZoom = in->getAttributeAsFloat("CurrentZoom", CurrentZoom);
|
||||
}
|
||||
|
||||
} // end namespace
|
||||
} // end namespace
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace scene
|
|||
|
||||
//! Special scene node animator for FPS cameras
|
||||
/** This scene node animator can be attached to a camera to make it act
|
||||
like a 3d modelling tool camera
|
||||
like a 3d modeling tool camera
|
||||
*/
|
||||
class CSceneNodeAnimatorCameraMaya : public ISceneNodeAnimatorCameraMaya
|
||||
{
|
||||
|
@ -88,6 +88,12 @@ namespace scene
|
|||
this. */
|
||||
virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) _IRR_OVERRIDE_;
|
||||
|
||||
//! Writes attributes of the scene node animator.
|
||||
virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const _IRR_OVERRIDE_;
|
||||
|
||||
//! Reads attributes of the scene node animator.
|
||||
virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) _IRR_OVERRIDE_;
|
||||
|
||||
private:
|
||||
|
||||
void allKeysUp();
|
||||
|
|
|
@ -38,7 +38,7 @@ IRRMESHOBJ = $(IRRMESHLOADER) $(IRRMESHWRITER) \
|
|||
IRROBJ = CBillboardSceneNode.o CCameraSceneNode.o CDummyTransformationSceneNode.o CEmptySceneNode.o CGeometryCreator.o CLightSceneNode.o CMeshManipulator.o CMetaTriangleSelector.o COctreeSceneNode.o COctreeTriangleSelector.o CSceneCollisionManager.o CSceneManager.o CShadowVolumeSceneNode.o CSkyBoxSceneNode.o CSkyDomeSceneNode.o CTerrainSceneNode.o CTerrainTriangleSelector.o CVolumeLightSceneNode.o CCubeSceneNode.o CSphereSceneNode.o CTextSceneNode.o CTriangleBBSelector.o CTriangleSelector.o CWaterSurfaceSceneNode.o CMeshCache.o CDefaultSceneNodeAnimatorFactory.o CDefaultSceneNodeFactory.o CSceneLoaderIrr.o
|
||||
IRRPARTICLEOBJ = CParticleAnimatedMeshSceneNodeEmitter.o CParticleBoxEmitter.o CParticleCylinderEmitter.o CParticleMeshEmitter.o CParticlePointEmitter.o CParticleRingEmitter.o CParticleSphereEmitter.o CParticleAttractionAffector.o CParticleFadeOutAffector.o CParticleGravityAffector.o CParticleRotationAffector.o CParticleSystemSceneNode.o CParticleScaleAffector.o
|
||||
IRRANIMOBJ = CSceneNodeAnimatorCameraFPS.o CSceneNodeAnimatorCameraMaya.o CSceneNodeAnimatorCollisionResponse.o CSceneNodeAnimatorDelete.o CSceneNodeAnimatorFlyCircle.o CSceneNodeAnimatorFlyStraight.o CSceneNodeAnimatorFollowSpline.o CSceneNodeAnimatorRotation.o CSceneNodeAnimatorTexture.o
|
||||
IRRDRVROBJ = CNullDriver.o COpenGLCacheHandler.o COpenGLDriver.o COpenGLNormalMapRenderer.o COpenGLParallaxMapRenderer.o COpenGLShaderMaterialRenderer.o COpenGLSLMaterialRenderer.o COpenGLExtensionHandler.o CD3D9Driver.o CD3D9HLSLMaterialRenderer.o CD3D9NormalMapRenderer.o CD3D9ParallaxMapRenderer.o CD3D9ShaderMaterialRenderer.o CD3D9Texture.o COGLESDriver.o COGLESTexture.o COGLESExtensionHandler.o COGLES2Driver.o COGLES2ExtensionHandler.o COGLES2FixedPipelineRenderer.o COGLES2MaterialRenderer.o COGLES2NormalMapRenderer.o COGLES2ParallaxMapRenderer.o COGLES2Renderer2D.o COGLES2Texture.o CEGLManager.o CEGLManager.o CWGLManager.o CGLXManager.o
|
||||
IRRDRVROBJ = CNullDriver.o COpenGLCacheHandler.o COpenGLDriver.o COpenGLNormalMapRenderer.o COpenGLParallaxMapRenderer.o COpenGLShaderMaterialRenderer.o COpenGLSLMaterialRenderer.o COpenGLExtensionHandler.o CD3D9Driver.o CD3D9HLSLMaterialRenderer.o CD3D9NormalMapRenderer.o CD3D9ParallaxMapRenderer.o CD3D9ShaderMaterialRenderer.o CD3D9Texture.o COGLESDriver.o COGLESExtensionHandler.o COGLES2Driver.o COGLES2ExtensionHandler.o COGLES2FixedPipelineRenderer.o COGLES2MaterialRenderer.o COGLES2NormalMapRenderer.o COGLES2ParallaxMapRenderer.o COGLES2Renderer2D.o CEGLManager.o CEGLManager.o CWGLManager.o CGLXManager.o
|
||||
IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderDDS.o CImageLoaderJPG.o CImageLoaderPCX.o CImageLoaderPNG.o CImageLoaderPSD.o CImageLoaderPVR.o CImageLoaderTGA.o CImageLoaderPPM.o CImageLoaderWAL.o CImageLoaderRGB.o \
|
||||
CImageWriterBMP.o CImageWriterJPG.o CImageWriterPCX.o CImageWriterPNG.o CImageWriterPPM.o CImageWriterPSD.o CImageWriterTGA.o
|
||||
IRRVIDEOOBJ = CVideoModeList.o CFPSCounter.o $(IRRDRVROBJ) $(IRRIMAGEOBJ)
|
||||
|
|
Loading…
Reference in New Issue