Commit 16695666 authored by nadro's avatar nadro

- Prepared OpenGL RenderTarget class for new architecture of Irrlicht's shared...

- Prepared OpenGL RenderTarget class for new architecture of Irrlicht's shared OpenGL drivers code (new architecture will allow us to adopt new OpenGL drivers faster and makes different drivers easier to maintain).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5163 dfc29bdd-3216-0410-991c-e03cc46cb475
parent b5b6bcbb
// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __C_OGLCORE_COMMON_H_INCLUDED__
#define __C_OGLCORE_COMMON_H_INCLUDED__
#include "IrrCompileConfig.h"
#if defined(_IRR_COMPILE_WITH_OPENGL_) || defined(_IRR_COMPILE_WITH_OGLES1_) || defined(_IRR_COMPILE_WITH_OGLES2_)
#include "irrTypes.h"
namespace irr
{
namespace video
{
class COGLCoreFeature
{
public:
COGLCoreFeature() : ColorAttachment(0), MultipleRenderTarget(0)
{
}
virtual ~COGLCoreFeature()
{
}
u8 ColorAttachment;
u8 MultipleRenderTarget;
};
}
}
#endif
#endif
// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __C_OGLCORE_RENDER_TARGET_H_INCLUDED__
#define __C_OGLCORE_RENDER_TARGET_H_INCLUDED__
#include "IrrCompileConfig.h"
#if defined(_IRR_COMPILE_WITH_OPENGL_) || defined(_IRR_COMPILE_WITH_OGLES1_) || defined(_IRR_COMPILE_WITH_OGLES2_)
#include "IRenderTarget.h"
#include "dimension2d.h"
namespace irr
{
namespace video
{
template <class TOGLDriver, class TOGLTexture>
class COGLCoreRenderTarget : public IRenderTarget
{
public:
COGLCoreRenderTarget(TOGLDriver* driver) : AssignedDepth(false), AssignedStencil(false), RequestTextureUpdate(false), RequestDepthStencilUpdate(false),
BufferID(0), ColorAttachment(0), MultipleRenderTarget(0), Driver(driver)
{
#ifdef _DEBUG
setDebugName("COGLCoreRenderTarget");
#endif
DriverType = Driver->getDriverType();
Size = Driver->getScreenSize();
ColorAttachment = Driver->getFeature().ColorAttachment;
MultipleRenderTarget = Driver->getFeature().MultipleRenderTarget;
if (ColorAttachment > 0)
Driver->irrGlGenFramebuffers(1, &BufferID);
AssignedTexture.set_used(static_cast<u32>(ColorAttachment));
for (u32 i = 0; i < AssignedTexture.size(); ++i)
AssignedTexture[i] = GL_NONE;
}
virtual ~COGLCoreRenderTarget()
{
if (ColorAttachment > 0 && BufferID != 0)
Driver->irrGlDeleteFramebuffers(1, &BufferID);
for (u32 i = 0; i < Texture.size(); ++i)
{
if (Texture[i])
Texture[i]->drop();
}
if (DepthStencil)
DepthStencil->drop();
}
virtual void setTexture(const core::array<ITexture*>& texture, ITexture* depthStencil) _IRR_OVERRIDE_
{
bool textureUpdate = (Texture != texture) ? true : false;
bool depthStencilUpdate = (DepthStencil != depthStencil) ? true : false;
if (textureUpdate || depthStencilUpdate)
{
// Set color attachments.
if (textureUpdate)
{
for (u32 i = 0; i < Texture.size(); ++i)
{
if (Texture[i])
Texture[i]->drop();
}
if (texture.size() > static_cast<u32>(ColorAttachment))
{
core::stringc message = "This GPU supports up to ";
message += static_cast<u32>(ColorAttachment);
message += " textures per render target.";
os::Printer::log(message.c_str(), ELL_WARNING);
}
Texture.set_used(core::min_(texture.size(), static_cast<u32>(ColorAttachment)));
for (u32 i = 0; i < Texture.size(); ++i)
{
GLuint textureID = (texture[i] && texture[i]->getDriverType() == DriverType) ? static_cast<TOGLTexture*>(texture[i])->getOpenGLTextureName() : 0;
if (textureID != 0)
{
Texture[i] = texture[i];
Texture[i]->grab();
}
else
{
Texture[i] = 0;
}
}
RequestTextureUpdate = true;
}
// Set depth and stencil attachments.
if (depthStencilUpdate)
{
GLuint textureID = (depthStencil && depthStencil->getDriverType() == DriverType) ? static_cast<TOGLTexture*>(depthStencil)->getOpenGLTextureName() : 0;
const ECOLOR_FORMAT textureFormat = (textureID != 0) ? depthStencil->getColorFormat() : ECF_UNKNOWN;
if (IImage::isDepthFormat(textureFormat))
{
DepthStencil = depthStencil;
DepthStencil->grab();
}
else
{
if (DepthStencil)
DepthStencil->drop();
DepthStencil = 0;
}
RequestDepthStencilUpdate = true;
}
// Set size required for a viewport.
ITexture* firstTexture = getTexture();
if (firstTexture)
Size = firstTexture->getSize();
else
{
if (DepthStencil)
Size = DepthStencil->getSize();
else
Size = Driver->getScreenSize();
}
}
}
void update()
{
if (RequestTextureUpdate || RequestDepthStencilUpdate)
{
// Set color attachments.
if (RequestTextureUpdate)
{
// Set new color textures.
const u32 textureSize = core::min_(Texture.size(), AssignedTexture.size());
for (u32 i = 0; i < textureSize; ++i)
{
GLuint textureID = (Texture[i]) ? static_cast<TOGLTexture*>(Texture[i])->getOpenGLTextureName() : 0;
if (textureID != 0)
{
AssignedTexture[i] = GL_COLOR_ATTACHMENT0 + i;
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, AssignedTexture[i], GL_TEXTURE_2D, textureID, 0);
}
else if (AssignedTexture[i] != GL_NONE)
{
AssignedTexture[i] = GL_NONE;
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, AssignedTexture[i], GL_TEXTURE_2D, 0, 0);
os::Printer::log("Error: Could not set render target.", ELL_ERROR);
}
}
// Reset other render target channels.
for (u32 i = textureSize; i < AssignedTexture.size(); ++i)
{
if (AssignedTexture[i] != GL_NONE)
{
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, AssignedTexture[i], GL_TEXTURE_2D, 0, 0);
AssignedTexture[i] = GL_NONE;
}
}
RequestTextureUpdate = false;
}
// Set depth and stencil attachments.
if (RequestDepthStencilUpdate)
{
const ECOLOR_FORMAT textureFormat = (DepthStencil) ? DepthStencil->getColorFormat() : ECF_UNKNOWN;
if (IImage::isDepthFormat(textureFormat))
{
GLuint textureID = static_cast<TOGLTexture*>(DepthStencil)->getOpenGLTextureName();
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, textureID, 0);
if (textureFormat == ECF_D24S8)
{
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, textureID, 0);
AssignedStencil = true;
}
else
{
if (AssignedStencil)
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
AssignedStencil = false;
}
AssignedDepth = true;
}
else
{
if (AssignedDepth)
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
if (AssignedStencil)
Driver->irrGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
AssignedDepth = false;
AssignedStencil = false;
}
RequestDepthStencilUpdate = false;
}
// Configure drawing operation.
if (ColorAttachment > 0 && BufferID != 0)
{
const u32 textureSize = Texture.size();
if (textureSize == 0)
glDrawBuffer(GL_NONE);
else if (textureSize == 1 || MultipleRenderTarget == 0)
glDrawBuffer(GL_COLOR_ATTACHMENT0);
else
{
const u32 bufferCount = core::min_(MultipleRenderTarget, core::min_(textureSize, AssignedTexture.size()));
Driver->irrGlDrawBuffers(bufferCount, AssignedTexture.pointer());
}
}
#ifdef _DEBUG
checkFBO(Driver);
#endif
}
}
GLuint getBufferID() const
{
return BufferID;
}
const core::dimension2d<u32>& getSize() const
{
return Size;
}
ITexture* getTexture() const
{
for (u32 i = 0; i < Texture.size(); ++i)
{
if (Texture[i])
return Texture[i];
}
return 0;
}
protected:
bool checkFBO(TOGLDriver* driver)
{
if (ColorAttachment == 0)
return true;
GLenum status = driver->irrGlCheckFramebufferStatus(GL_FRAMEBUFFER);
switch (status)
{
case GL_FRAMEBUFFER_COMPLETE:
return true;
case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER:
os::Printer::log("FBO has invalid read buffer", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:
os::Printer::log("FBO has invalid draw buffer", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
os::Printer::log("FBO has one or several incomplete image attachments", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_FORMATS:
os::Printer::log("FBO has one or several image attachments with different internal formats", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
os::Printer::log("FBO has one or several image attachments with different dimensions", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
os::Printer::log("FBO missing an image attachment", ELL_ERROR);
break;
case GL_FRAMEBUFFER_UNSUPPORTED:
os::Printer::log("FBO format unsupported", ELL_ERROR);
break;
default:
os::Printer::log("FBO error", ELL_ERROR);
break;
}
return false;
}
core::array<GLenum> AssignedTexture;
bool AssignedDepth;
bool AssignedStencil;
bool RequestTextureUpdate;
bool RequestDepthStencilUpdate;
GLuint BufferID;
core::dimension2d<u32> Size;
u32 ColorAttachment;
u32 MultipleRenderTarget;
TOGLDriver* Driver;
};
}
}
#endif
#endif
......@@ -134,7 +134,7 @@ COpenGLCacheHandler::COpenGLCacheHandler(COpenGLDriver* driver) :
ClientActiveTexture(GL_TEXTURE0_ARB), ClientStateVertex(false), ClientStateNormal(false),ClientStateColor(false),
ClientStateTexCoord0(false), ViewportX(0), ViewportY(0)
{
FrameBufferCount = core::max_(static_cast<GLuint>(1), static_cast<GLuint>(Driver->MaxMultipleRenderTargets));
FrameBufferCount = core::max_(static_cast<GLuint>(1), static_cast<GLuint>(Driver->getFeature().MultipleRenderTarget));
BlendEquation = new GLenum[FrameBufferCount];
BlendSourceRGB = new GLenum[FrameBufferCount];
......@@ -507,9 +507,8 @@ void COpenGLCacheHandler::setFBO(GLuint id)
{
if (FrameBufferID != id)
{
#if defined(GL_EXT_framebuffer_object)
Driver->extGlBindFramebuffer(GL_FRAMEBUFFER_EXT, id);
#endif
Driver->irrGlBindFramebuffer(GL_FRAMEBUFFER, id);
FrameBufferID = id;
}
}
......
......@@ -8,9 +8,10 @@
#ifdef _IRR_COMPILE_WITH_OPENGL_
#include "COGLCoreRenderTarget.h"
#include "COpenGLCacheHandler.h"
#include "COpenGLTexture.h"
#include "COpenGLRenderTarget.h"
#include "COpenGLMaterialRenderer.h"
#include "COpenGLShaderMaterialRenderer.h"
#include "COpenGLSLMaterialRenderer.h"
......@@ -681,7 +682,7 @@ bool COpenGLDriver::genericDriverInit()
DriverAttributes->setAttribute("MaxAnisotropy", MaxAnisotropy);
DriverAttributes->setAttribute("MaxUserClipPlanes", MaxUserClipPlanes);
DriverAttributes->setAttribute("MaxAuxBuffers", MaxAuxBuffers);
DriverAttributes->setAttribute("MaxMultipleRenderTargets", MaxMultipleRenderTargets);
DriverAttributes->setAttribute("MaxMultipleRenderTargets", Feature.MultipleRenderTarget);
DriverAttributes->setAttribute("MaxIndices", (s32)MaxIndices);
DriverAttributes->setAttribute("MaxTextureSize", (s32)MaxTextureSize);
DriverAttributes->setAttribute("MaxGeometryVerticesOut", (s32)MaxGeometryVerticesOut);
......@@ -4199,11 +4200,7 @@ bool COpenGLDriver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor
return false;
}
bool supportForFBO = false;
#if defined(GL_VERSION_3_0) || defined(GL_ARB_framebuffer_object) || defined(GL_EXT_framebuffer_object)
supportForFBO = FeatureAvailable[IRR_EXT_framebuffer_object] || FeatureAvailable[IRR_ARB_framebuffer_object];
#endif
bool supportForFBO = (getFeature().ColorAttachment > 0);
core::dimension2d<u32> destRenderTargetSize(0, 0);
......
......@@ -29,8 +29,14 @@ namespace irr
namespace video
{
template <class TOGLDriver, class TOGLTexture>
class COGLCoreRenderTarget;
class COpenGLCacheHandler;
class COpenGLTexture;
class COpenGLDriver;
typedef COGLCoreRenderTarget<COpenGLDriver, COpenGLTexture> COpenGLRenderTarget;
class COpenGLDriver : public CNullDriver, public IMaterialRendererServices, public COpenGLExtensionHandler
{
......
......@@ -20,8 +20,7 @@ COpenGLExtensionHandler::COpenGLExtensionHandler() :
StencilBuffer(false), MultiTextureExtension(false),
TextureCompressionExtension(false),
MaxSupportedTextures(1), MaxTextureUnits(1), MaxLights(1),
MaxAnisotropy(1), MaxUserClipPlanes(0), MaxAuxBuffers(0),
MaxMultipleRenderTargets(1), MaxColorAttachments(1), MaxIndices(65535),
MaxAnisotropy(1), MaxUserClipPlanes(0), MaxAuxBuffers(0), MaxIndices(65535),
MaxTextureSize(1), MaxGeometryVerticesOut(0),
MaxTextureLODBias(0.f), Version(0), ShaderLanguageVersion(0),
OcclusionQuerySupport(false)
......@@ -642,7 +641,7 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer)
if (FeatureAvailable[IRR_ARB_draw_buffers])
{
glGetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &num);
MaxMultipleRenderTargets = static_cast<u8>(num);
Feature.MultipleRenderTarget = static_cast<u8>(num);
}
#endif
#if defined(GL_ATI_draw_buffers)
......@@ -652,16 +651,27 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer)
if (FeatureAvailable[IRR_ATI_draw_buffers])
{
glGetIntegerv(GL_MAX_DRAW_BUFFERS_ATI, &num);
MaxMultipleRenderTargets = static_cast<u8>(num);
Feature.MultipleRenderTarget = static_cast<u8>(num);
}
#endif
#if defined(GL_EXT_framebuffer_object)
if (FeatureAvailable[IRR_EXT_framebuffer_object])
#ifdef GL_ARB_framebuffer_object
if (FeatureAvailable[IRR_ARB_framebuffer_object])
{
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &num);
MaxColorAttachments = static_cast<u8>(num);
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &num);
Feature.ColorAttachment = static_cast<u8>(num);
}
#endif
#if defined(GL_EXT_framebuffer_object)
#ifdef GL_ARB_framebuffer_object
else
#endif
if (FeatureAvailable[IRR_EXT_framebuffer_object])
{
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &num);
Feature.ColorAttachment = static_cast<u8>(num);
}
#endif
glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, DimAliasedLine);
glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, DimAliasedPoint);
glGetFloatv(GL_SMOOTH_LINE_WIDTH_RANGE, DimSmoothedLine);
......@@ -746,6 +756,11 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer)
#endif
}
const COGLCoreFeature& COpenGLExtensionHandler::getFeature() const
{
return Feature;
}
bool COpenGLExtensionHandler::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
{
switch (feature)
......
......@@ -77,6 +77,45 @@ typedef unsigned int GLhandleARB;
typedef char GLchar;
#endif
// FBO definitions.
#if !defined(GL_VERSION_3_0) && !defined(GL_ARB_framebuffer_object)
#ifdef GL_EXT_framebuffer_object
#define GL_FRAMEBUFFER GL_FRAMEBUFFER_EXT
#define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_EXT
#define GL_DEPTH_ATTACHMENT GL_DEPTH_ATTACHMENT_EXT
#define GL_STENCIL_ATTACHMENT GL_STENCIL_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_UNSUPPORTED GL_FRAMEBUFFER_UNSUPPORTED_EXT
#else
#define GL_FRAMEBUFFER 0
#define GL_COLOR_ATTACHMENT0 0
#define GL_DEPTH_ATTACHMENT 0
#define GL_STENCIL_ATTACHMENT 0
#define GL_FRAMEBUFFER_COMPLETE 0
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 1
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 2
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 3
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 4
#define GL_FRAMEBUFFER_UNSUPPORTED 5
#endif
#endif
#ifdef GL_EXT_framebuffer_object
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#else
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS 6
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 7
#endif
#include "COGLCoreFeature.h"
namespace irr
{
......@@ -1058,6 +1097,8 @@ class COpenGLExtensionHandler
// deferred initialization
void initExtensions(bool stencilBuffer);
const COGLCoreFeature& getFeature() const;
//! queries the features of the driver, returns true if feature is available
bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const;
......@@ -1090,10 +1131,6 @@ class COpenGLExtensionHandler
u8 MaxUserClipPlanes;
//! Number of auxiliary buffers
u8 MaxAuxBuffers;
//! Number of rendertargets available as MRTs
u8 MaxMultipleRenderTargets;
//! Number of color attachments available in FBO
u8 MaxColorAttachments;
//! Optimal number of indices per meshbuffer
u32 MaxIndices;
//! Maximal texture dimension
......@@ -1195,19 +1232,19 @@ class COpenGLExtensionHandler
void extGlGetActiveUniform(GLuint program, GLuint index, GLsizei maxlength, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
// framebuffer objects
void extGlBindFramebuffer(GLenum target, GLuint framebuffer);
void extGlDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
void extGlGenFramebuffers(GLsizei n, GLuint *framebuffers);
GLenum extGlCheckFramebufferStatus(GLenum target);
void extGlFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void extGlBindRenderbuffer(GLenum target, GLuint renderbuffer);
void extGlDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
void extGlGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
void extGlRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
void extGlFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void extGlGenerateMipmap(GLenum target);
void extGlActiveStencilFace(GLenum face);
void extGlDrawBuffers(GLsizei n, const GLenum *bufs);
void irrGlBindFramebuffer(GLenum target, GLuint framebuffer);
void irrGlDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
void irrGlGenFramebuffers(GLsizei n, GLuint *framebuffers);
GLenum irrGlCheckFramebufferStatus(GLenum target);
void irrGlFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void irrGlBindRenderbuffer(GLenum target, GLuint renderbuffer);
void irrGlDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
void irrGlGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
void irrGlRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
void irrGlFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void irrGlGenerateMipmap(GLenum target);
void irrGlActiveStencilFace(GLenum face);
void irrGlDrawBuffers(GLsizei n, const GLenum *bufs);
// vertex buffer object
void extGlGenBuffers(GLsizei n, GLuint *buffers);
......@@ -1254,6 +1291,8 @@ class COpenGLExtensionHandler
bool FeatureAvailable[IRR_OpenGL_Feature_Count];
protected:
COGLCoreFeature Feature;
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
PFNGLACTIVETEXTUREARBPROC pGlActiveTextureARB;
PFNGLCLIENTACTIVETEXTUREARBPROC pGlClientActiveTextureARB;
......@@ -2103,7 +2142,7 @@ inline void COpenGLExtensionHandler::extGlCompressedTexSubImage2D(GLenum target,
#endif
}
inline void COpenGLExtensionHandler::extGlBindFramebuffer(GLenum target, GLuint framebuffer)
inline void COpenGLExtensionHandler::irrGlBindFramebuffer(GLenum target, GLuint framebuffer)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlBindFramebuffer)
......@@ -2119,7 +2158,7 @@ inline void COpenGLExtensionHandler::extGlBindFramebuffer(GLenum target, GLuint
#endif
}
inline void COpenGLExtensionHandler::extGlDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
inline void COpenGLExtensionHandler::irrGlDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlDeleteFramebuffers)
......@@ -2135,7 +2174,7 @@ inline void COpenGLExtensionHandler::extGlDeleteFramebuffers(GLsizei n, const GL
#endif
}
inline void COpenGLExtensionHandler::extGlGenFramebuffers(GLsizei n, GLuint *framebuffers)
inline void COpenGLExtensionHandler::irrGlGenFramebuffers(GLsizei n, GLuint *framebuffers)
{
if (framebuffers)
memset(framebuffers,0,n*sizeof(GLuint));
......@@ -2153,7 +2192,7 @@ inline void COpenGLExtensionHandler::extGlGenFramebuffers(GLsizei n, GLuint *fra
#endif
}
inline GLenum COpenGLExtensionHandler::extGlCheckFramebufferStatus(GLenum target)
inline GLenum COpenGLExtensionHandler::irrGlCheckFramebufferStatus(GLenum target)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlCheckFramebufferStatus)
......@@ -2172,7 +2211,7 @@ inline GLenum COpenGLExtensionHandler::extGlCheckFramebufferStatus(GLenum target
#endif
}
inline void COpenGLExtensionHandler::extGlFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
inline void COpenGLExtensionHandler::irrGlFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlFramebufferTexture2D)
......@@ -2188,7 +2227,7 @@ inline void COpenGLExtensionHandler::extGlFramebufferTexture2D(GLenum target, GL
#endif
}
inline void COpenGLExtensionHandler::extGlBindRenderbuffer(GLenum target, GLuint renderbuffer)
inline void COpenGLExtensionHandler::irrGlBindRenderbuffer(GLenum target, GLuint renderbuffer)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlBindRenderbuffer)
......@@ -2204,7 +2243,7 @@ inline void COpenGLExtensionHandler::extGlBindRenderbuffer(GLenum target, GLuint
#endif
}
inline void COpenGLExtensionHandler::extGlDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
inline void COpenGLExtensionHandler::irrGlDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlDeleteRenderbuffers)
......@@ -2220,7 +2259,7 @@ inline void COpenGLExtensionHandler::extGlDeleteRenderbuffers(GLsizei n, const G
#endif
}
inline void COpenGLExtensionHandler::extGlGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
inline void COpenGLExtensionHandler::irrGlGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
{
if (renderbuffers)
memset(renderbuffers,0,n*sizeof(GLuint));
......@@ -2238,7 +2277,7 @@ inline void COpenGLExtensionHandler::extGlGenRenderbuffers(GLsizei n, GLuint *re
#endif
}
inline void COpenGLExtensionHandler::extGlRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
inline void COpenGLExtensionHandler::irrGlRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlRenderbufferStorage)
......@@ -2254,7 +2293,7 @@ inline void COpenGLExtensionHandler::extGlRenderbufferStorage(GLenum target, GLe
#endif
}
inline void COpenGLExtensionHandler::extGlFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
inline void COpenGLExtensionHandler::irrGlFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlFramebufferRenderbuffer)
......@@ -2270,7 +2309,7 @@ inline void COpenGLExtensionHandler::extGlFramebufferRenderbuffer(GLenum target,
#endif
}
inline void COpenGLExtensionHandler::extGlGenerateMipmap(GLenum target)
inline void COpenGLExtensionHandler::irrGlGenerateMipmap(GLenum target)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlGenerateMipmap)
......@@ -2286,7 +2325,7 @@ inline void COpenGLExtensionHandler::extGlGenerateMipmap(GLenum target)
#endif
}
inline void COpenGLExtensionHandler::extGlActiveStencilFace(GLenum face)
inline void COpenGLExtensionHandler::irrGlActiveStencilFace(GLenum face)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlActiveStencilFaceEXT)
......@@ -2298,7 +2337,7 @@ inline void COpenGLExtensionHandler::extGlActiveStencilFace(GLenum face)
#endif
}
inline void COpenGLExtensionHandler::extGlDrawBuffers(GLsizei n, const GLenum *bufs)
inline void COpenGLExtensionHandler::irrGlDrawBuffers(GLsizei n, const GLenum *bufs)
{
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (pGlDrawBuffersARB)
......
// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#include "COpenGLRenderTarget.h"
#ifdef _IRR_COMPILE_WITH_OPENGL_
#include "IImage.h"
#include "irrMath.h"
#include "irrString.h"
#include "COpenGLDriver.h"
#include "COpenGLTexture.h"
#if !defined(GL_VERSION_3_0) && !defined(GL_ARB_framebuffer_object)
#ifdef GL_EXT_framebuffer_object
#define GL_FRAMEBUFFER GL_FRAMEBUFFER_EXT
#define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_EXT
#define GL_DEPTH_ATTACHMENT GL_DEPTH_ATTACHMENT_EXT
#define GL_STENCIL_ATTACHMENT GL_STENCIL_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_UNSUPPORTED GL_FRAMEBUFFER_UNSUPPORTED_EXT
#else
#define GL_FRAMEBUFFER 0
#define GL_COLOR_ATTACHMENT0 0
#define GL_DEPTH_ATTACHMENT 0
#define GL_STENCIL_ATTACHMENT 0
#define GL_FRAMEBUFFER_COMPLETE 0
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 1
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 2
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 3
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 4
#define GL_FRAMEBUFFER_UNSUPPORTED 5
#endif
#endif
#ifdef GL_EXT_framebuffer_object
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#else
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS 6
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 7
#endif
namespace irr
{
namespace video
{
bool checkFBOStatus(COpenGLDriver* Driver)
{
GLenum status = Driver->extGlCheckFramebufferStatus(GL_FRAMEBUFFER);
switch (status)
{
case GL_FRAMEBUFFER_COMPLETE:
return true;
case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER:
os::Printer::log("FBO has invalid read buffer", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:
os::Printer::log("FBO has invalid draw buffer", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
os::Printer::log("FBO has one or several incomplete image attachments", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_FORMATS:
os::Printer::log("FBO has one or several image attachments with different internal formats", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
os::Printer::log("FBO has one or several image attachments with different dimensions", ELL_ERROR);
break;
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
os::Printer::log("FBO missing an image attachment", ELL_ERROR);
break;
case GL_FRAMEBUFFER_UNSUPPORTED:
os::Printer::log("FBO format unsupported", ELL_ERROR);
break;
default:
os::Printer::log("FBO error", ELL_ERROR);
break;
}
return false;
}
COpenGLRenderTarget::COpenGLRenderTarget(COpenGLDriver* driver) : AssignedDepth(false), AssignedStencil(false), RequestTextureUpdate(false), RequestDepthStencilUpdate(false),
BufferID(0), SupportForFBO(false), SupportForMRT(false), Driver(driver)
{
#ifdef _DEBUG
setDebugName("COpenGLRenderTarget");
#endif
DriverType = EDT_OPENGL;
Size = Driver->getScreenSize();
#if defined(GL_VERSION_3_0) || defined(GL_ARB_framebuffer_object) || defined(GL_EXT_framebuffer_object)
SupportForFBO = Driver->FeatureAvailable[COpenGLDriver::IRR_EXT_framebuffer_object] || Driver->FeatureAvailable[COpenGLDriver::IRR_ARB_framebuffer_object];
#endif
SupportForMRT = SupportForFBO && Driver->MaxMultipleRenderTargets > 1 && (Driver->Version >= 200 || Driver->FeatureAvailable[COpenGLDriver::IRR_ARB_draw_buffers] ||
Driver->FeatureAvailable[COpenGLDriver::IRR_ATI_draw_buffers]);
if (SupportForFBO)
Driver->extGlGenFramebuffers(1, &BufferID);
AssignedTexture.set_used(static_cast<u32>(Driver->MaxColorAttachments));
for (u32 i = 0; i < AssignedTexture.size(); ++i)
AssignedTexture[i] = GL_NONE;
}
COpenGLRenderTarget::~COpenGLRenderTarget()
{
if (SupportForFBO && BufferID != 0)
Driver->extGlDeleteFramebuffers(1, &BufferID);
for (u32 i = 0; i < Texture.size(); ++i)
{
if (Texture[i])
Texture[i]->drop();
}
if (DepthStencil)
DepthStencil->drop();
}
void COpenGLRenderTarget::setTexture(const core::array<ITexture*>& texture, ITexture* depthStencil)
{
bool textureUpdate = (Texture != texture) ? true : false;
bool depthStencilUpdate = (DepthStencil != depthStencil) ? true : false;
if (textureUpdate || depthStencilUpdate)
{
// Set color attachments.
if (textureUpdate)
{
for (u32 i = 0; i < Texture.size(); ++i)
{
if (Texture[i])
Texture[i]->drop();
}
if (texture.size() > static_cast<u32>(Driver->MaxColorAttachments))
{
core::stringc message = "This GPU supports up to ";
message += static_cast<u32>(Driver->MaxColorAttachments);
message += " textures per render target.";
os::Printer::log(message.c_str(), ELL_WARNING);
}
Texture.set_used(core::min_(texture.size(), static_cast<u32>(Driver->MaxColorAttachments)));
for (u32 i = 0; i < Texture.size(); ++i)
{
GLuint textureID = (texture[i] && texture[i]->getDriverType() == EDT_OPENGL) ? static_cast<COpenGLTexture*>(texture[i])->getOpenGLTextureName() : 0;
if (textureID != 0)
{
Texture[i] = texture[i];
Texture[i]->grab();
}
else
{
Texture[i] = 0;
}
}
RequestTextureUpdate = true;
}
// Set depth and stencil attachments.
if (depthStencilUpdate)
{
GLuint textureID = (depthStencil && depthStencil->getDriverType() == EDT_OPENGL) ? static_cast<COpenGLTexture*>(depthStencil)->getOpenGLTextureName() : 0;
const ECOLOR_FORMAT textureFormat = (textureID != 0) ? depthStencil->getColorFormat() : ECF_UNKNOWN;
if (IImage::isDepthFormat(textureFormat))
{
DepthStencil = depthStencil;
DepthStencil->grab();
}
else
{
if (DepthStencil)
DepthStencil->drop();
DepthStencil = 0;
}
RequestDepthStencilUpdate = true;
}
// Set size required for a viewport.
ITexture* firstTexture = getTexture();
if (firstTexture)
Size = firstTexture->getSize();
else
{
if (DepthStencil)
Size = DepthStencil->getSize();
else
Size = Driver->getScreenSize();
}
}
}
void COpenGLRenderTarget::update()
{
if (RequestTextureUpdate || RequestDepthStencilUpdate)
{
// Set color attachments.
if (RequestTextureUpdate)
{
// Set new color textures.
const u32 textureSize = core::min_(Texture.size(), AssignedTexture.size());
for (u32 i = 0; i < textureSize; ++i)
{
GLuint textureID = (Texture[i]) ? static_cast<COpenGLTexture*>(Texture[i])->getOpenGLTextureName() : 0;
if (textureID != 0)
{
AssignedTexture[i] = GL_COLOR_ATTACHMENT0 + i;
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, AssignedTexture[i], GL_TEXTURE_2D, textureID, 0);
}
else if (AssignedTexture[i] != GL_NONE)
{
AssignedTexture[i] = GL_NONE;
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, AssignedTexture[i], GL_TEXTURE_2D, 0, 0);
os::Printer::log("Error: Could not set render target.", ELL_ERROR);
}
}
// Reset other render target channels.
for (u32 i = textureSize; i < AssignedTexture.size(); ++i)
{
if (AssignedTexture[i] != GL_NONE)
{
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, AssignedTexture[i], GL_TEXTURE_2D, 0, 0);
AssignedTexture[i] = GL_NONE;
}
}
RequestTextureUpdate = false;
}
// Set depth and stencil attachments.
if (RequestDepthStencilUpdate)
{
const ECOLOR_FORMAT textureFormat = (DepthStencil) ? DepthStencil->getColorFormat() : ECF_UNKNOWN;
if (IImage::isDepthFormat(textureFormat))
{
GLuint textureID = static_cast<COpenGLTexture*>(DepthStencil)->getOpenGLTextureName();
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, textureID, 0);
if (textureFormat == ECF_D24S8)
{
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, textureID, 0);
AssignedStencil = true;
}
else
{
if (AssignedStencil)
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
AssignedStencil = false;
}
AssignedDepth = true;
}
else
{
if (AssignedDepth)
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
if (AssignedStencil)
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
AssignedDepth = false;
AssignedStencil = false;
}
RequestDepthStencilUpdate = false;
}
// Configure drawing operation.
if (SupportForFBO && BufferID != 0)
{
const u32 textureSize = Texture.size();
if (textureSize == 0)
glDrawBuffer(GL_NONE);
else if (textureSize == 1 || !SupportForMRT)
glDrawBuffer(GL_COLOR_ATTACHMENT0);
else
{
Driver->extGlDrawBuffers(core::min_(textureSize, AssignedTexture.size()), AssignedTexture.pointer());
}
}
#ifdef _DEBUG
checkFBOStatus(Driver);
#endif
}
}
GLuint COpenGLRenderTarget::getBufferID() const
{
return BufferID;
}
const core::dimension2d<u32>& COpenGLRenderTarget::getSize() const
{
return Size;
}
ITexture* COpenGLRenderTarget::getTexture() const
{
for (u32 i = 0; i < Texture.size(); ++i)
{
if (Texture[i])
return Texture[i];
}
return 0;
}
}
}
#endif
// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __C_OPEN_GL_RENDER_TARGET_H_INCLUDED__
#define __C_OPEN_GL_RENDER_TARGET_H_INCLUDED__
#include "IrrCompileConfig.h"
#ifdef _IRR_COMPILE_WITH_OPENGL_
#include "IRenderTarget.h"
#include "dimension2d.h"
#include "COpenGLExtensionHandler.h"
namespace irr
{
namespace video
{
class COpenGLDriver;
class COpenGLCacheHandler;
class COpenGLRenderTarget : public IRenderTarget
{
public:
COpenGLRenderTarget(COpenGLDriver* driver);
virtual ~COpenGLRenderTarget();
virtual void setTexture(const core::array<ITexture*>& texture, ITexture* depthStencil) _IRR_OVERRIDE_;
void update();
GLuint getBufferID() const;
const core::dimension2d<u32>& getSize() const;
ITexture* getTexture() const;
protected:
core::array<GLenum> AssignedTexture;
bool AssignedDepth;
bool AssignedStencil;
bool RequestTextureUpdate;
bool RequestDepthStencilUpdate;
GLuint BufferID;
core::dimension2d<u32> Size;
bool SupportForFBO;
bool SupportForMRT;
COpenGLDriver* Driver;
};
}
}
#endif
#endif
......@@ -798,7 +798,7 @@ void COpenGLTexture::regenerateMipMapLevels(void* mipmapData)
// hardware moethods for generate mipmaps.
if (!mipmapData && AutomaticMipmapUpdate && !MipmapLegacyMode)
{
Driver->extGlGenerateMipmap(GL_TEXTURE_2D);
Driver->irrGlGenerateMipmap(GL_TEXTURE_2D);
cacheHandler->TextureCache.set(0, prevTexture);
......
......@@ -841,8 +841,6 @@
<Unit filename="COpenGLNormalMapRenderer.h" />
<Unit filename="COpenGLParallaxMapRenderer.cpp" />
<Unit filename="COpenGLParallaxMapRenderer.h" />
<Unit filename="COpenGLRenderTarget.cpp" />
<Unit filename="COpenGLRenderTarget.h" />
<Unit filename="COpenGLSLMaterialRenderer.cpp" />
<Unit filename="COpenGLSLMaterialRenderer.h" />
<Unit filename="COpenGLShaderMaterialRenderer.cpp" />
......
......@@ -1008,7 +1008,17 @@
<ClInclude Include="CGeometryCreator.h" />
<ClInclude Include="CMeshCache.h" />
<ClInclude Include="CMeshManipulator.h" />
<ClInclude Include="COpenGLRenderTarget.h" />
<ClInclude Include="COGLCoreFeature.h" />
<ClInclude Include="COGLCoreRenderTarget.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="CProfiler.h" />
<ClInclude Include="CSceneManager.h" />
<ClInclude Include="Octree.h" />
......@@ -1102,18 +1112,7 @@
<ClInclude Include="IZBuffer.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="S2DVertex.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="glext.h" />
<ClInclude Include="SB3DStructs.h" />
<ClInclude Include="wglext.h" />
<ClInclude Include="CColorConverter.h" />
<ClInclude Include="CFPSCounter.h" />
<ClInclude Include="CImage.h" />
......@@ -1257,7 +1256,14 @@
<ClCompile Include="CGeometryCreator.cpp" />
<ClCompile Include="CMeshCache.cpp" />
<ClCompile Include="CMeshManipulator.cpp" />
<ClCompile Include="COpenGLRenderTarget.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CSceneManager.cpp" />
<ClCompile Include="C3DSMeshFileLoader.cpp" />
<ClCompile Include="CSMFMeshFileLoader.cpp" />
......@@ -1352,14 +1358,6 @@
<ClCompile Include="CTRTextureGouraudNoZ.cpp" />
<ClCompile Include="CTRTextureGouraudWire.cpp" />
<ClCompile Include="CZBuffer.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CColorConverter.cpp" />
<ClCompile Include="CFPSCounter.cpp" />
<ClCompile Include="CImage.cpp" />
......
......@@ -100,6 +100,9 @@
<Filter Include="Irrlicht\gui">
<UniqueIdentifier>{da421793-4674-481c-be46-f7a44e78aee5}</UniqueIdentifier>
</Filter>
<Filter Include="Irrlicht\video\OpenGL Core">
<UniqueIdentifier>{2c9c6ef7-5662-4f11-83cd-921c717d3ab0}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\IEventReceiver.h">
......@@ -849,39 +852,6 @@
<ClInclude Include="S2DVertex.h">
<Filter>Irrlicht\video\Software</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="glext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="wglext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CColorConverter.h">
<Filter>Irrlicht\video\Null</Filter>
</ClInclude>
......@@ -1309,15 +1279,45 @@
<ClInclude Include="CD3D9RenderTarget.h">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClInclude>
<ClInclude Include="COpenGLRenderTarget.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CB3DMeshWriter.h">
<Filter>Irrlicht\scene\writers</Filter>
</ClInclude>
<ClInclude Include="SB3DStructs.h">
<Filter>Irrlicht\scene</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COGLCoreFeature.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
<ClInclude Include="COGLCoreRenderTarget.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\changes.txt">
......@@ -1619,30 +1619,6 @@
<ClCompile Include="CZBuffer.cpp">
<Filter>Irrlicht\video\Software</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CColorConverter.cpp">
<Filter>Irrlicht\video\Null</Filter>
</ClCompile>
......@@ -2246,12 +2222,33 @@
<ClCompile Include="CD3D9RenderTarget.cpp">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClCompile>
<ClCompile Include="COpenGLRenderTarget.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Irrlicht.rc" />
......
......@@ -1001,14 +1001,24 @@
<ClInclude Include="..\..\include\IGUIToolbar.h" />
<ClInclude Include="..\..\include\IGUITreeView.h" />
<ClInclude Include="..\..\include\IGUIWindow.h" />
<ClInclude Include="CB3DMeshWriter.h" />
<ClInclude Include="CB3DMeshWriter.h" />
<ClInclude Include="CD3D9RenderTarget.h" />
<ClInclude Include="CDefaultSceneNodeAnimatorFactory.h" />
<ClInclude Include="CDefaultSceneNodeFactory.h" />
<ClInclude Include="CGeometryCreator.h" />
<ClInclude Include="CMeshCache.h" />
<ClInclude Include="CMeshManipulator.h" />
<ClInclude Include="COpenGLRenderTarget.h" />
<ClInclude Include="COGLCoreFeature.h" />
<ClInclude Include="COGLCoreRenderTarget.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="CSceneManager.h" />
<ClInclude Include="Octree.h" />
<ClInclude Include="CSMFMeshFileLoader.h" />
......@@ -1101,18 +1111,7 @@
<ClInclude Include="IZBuffer.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="S2DVertex.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="glext.h" />
<ClInclude Include="SB3DStructs.h" />
<ClInclude Include="wglext.h" />
<ClInclude Include="SB3DStructs.h" />
<ClInclude Include="CColorConverter.h" />
<ClInclude Include="CFPSCounter.h" />
<ClInclude Include="CImage.h" />
......@@ -1250,14 +1249,21 @@
<None Include="..\..\readme.txt" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="CB3DMeshWriter.cpp" />
<ClCompile Include="CB3DMeshWriter.cpp" />
<ClCompile Include="CD3D9RenderTarget.cpp" />
<ClCompile Include="CDefaultSceneNodeAnimatorFactory.cpp" />
<ClCompile Include="CDefaultSceneNodeFactory.cpp" />
<ClCompile Include="CGeometryCreator.cpp" />
<ClCompile Include="CMeshCache.cpp" />
<ClCompile Include="CMeshManipulator.cpp" />
<ClCompile Include="COpenGLRenderTarget.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CSceneManager.cpp" />
<ClCompile Include="C3DSMeshFileLoader.cpp" />
<ClCompile Include="CSMFMeshFileLoader.cpp" />
......@@ -1352,14 +1358,6 @@
<ClCompile Include="CTRTextureGouraudNoZ.cpp" />
<ClCompile Include="CTRTextureGouraudWire.cpp" />
<ClCompile Include="CZBuffer.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CColorConverter.cpp" />
<ClCompile Include="CFPSCounter.cpp" />
<ClCompile Include="CImage.cpp" />
......
......@@ -100,6 +100,9 @@
<Filter Include="Irrlicht\gui">
<UniqueIdentifier>{da421793-4674-481c-be46-f7a44e78aee5}</UniqueIdentifier>
</Filter>
<Filter Include="Irrlicht\video\OpenGL Core">
<UniqueIdentifier>{bc1d03a2-7534-4b2f-857f-be5e0ab41dde}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\IEventReceiver.h">
......@@ -855,39 +858,6 @@
<ClInclude Include="S2DVertex.h">
<Filter>Irrlicht\video\Software</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="glext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="wglext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CColorConverter.h">
<Filter>Irrlicht\video\Null</Filter>
</ClInclude>
......@@ -1309,15 +1279,45 @@
<ClInclude Include="CD3D9RenderTarget.h">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClInclude>
<ClInclude Include="COpenGLRenderTarget.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CB3DMeshWriter.h">
<ClInclude Include="CB3DMeshWriter.h">
<Filter>Irrlicht\scene\writers</Filter>
</ClInclude>
<ClInclude Include="SB3DStructs.h">
<Filter>Irrlicht\scene</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COGLCoreFeature.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
<ClInclude Include="COGLCoreRenderTarget.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\changes.txt">
......@@ -1619,30 +1619,6 @@
<ClCompile Include="CZBuffer.cpp">
<Filter>Irrlicht\video\Software</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CColorConverter.cpp">
<Filter>Irrlicht\video\Null</Filter>
</ClCompile>
......@@ -2246,11 +2222,32 @@
<ClCompile Include="CD3D9RenderTarget.cpp">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClCompile>
<ClCompile Include="COpenGLRenderTarget.cpp">
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
......
......@@ -1008,7 +1008,17 @@
<ClInclude Include="CGeometryCreator.h" />
<ClInclude Include="CMeshCache.h" />
<ClInclude Include="CMeshManipulator.h" />
<ClInclude Include="COpenGLRenderTarget.h" />
<ClInclude Include="COGLCoreFeature.h" />
<ClInclude Include="COGLCoreRenderTarget.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="CSceneManager.h" />
<ClInclude Include="Octree.h" />
<ClInclude Include="CSMFMeshFileLoader.h" />
......@@ -1101,18 +1111,7 @@
<ClInclude Include="IZBuffer.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="S2DVertex.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="glext.h" />
<ClInclude Include="SB3DStructs.h" />
<ClInclude Include="wglext.h" />
<ClInclude Include="CColorConverter.h" />
<ClInclude Include="CFPSCounter.h" />
<ClInclude Include="CImage.h" />
......@@ -1257,7 +1256,14 @@
<ClCompile Include="CGeometryCreator.cpp" />
<ClCompile Include="CMeshCache.cpp" />
<ClCompile Include="CMeshManipulator.cpp" />
<ClCompile Include="COpenGLRenderTarget.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CSceneManager.cpp" />
<ClCompile Include="C3DSMeshFileLoader.cpp" />
<ClCompile Include="CSMFMeshFileLoader.cpp" />
......@@ -1352,14 +1358,6 @@
<ClCompile Include="CTRTextureGouraudNoZ.cpp" />
<ClCompile Include="CTRTextureGouraudWire.cpp" />
<ClCompile Include="CZBuffer.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CColorConverter.cpp" />
<ClCompile Include="CFPSCounter.cpp" />
<ClCompile Include="CImage.cpp" />
......
......@@ -100,6 +100,9 @@
<Filter Include="Irrlicht\gui">
<UniqueIdentifier>{da421793-4674-481c-be46-f7a44e78aee5}</UniqueIdentifier>
</Filter>
<Filter Include="Irrlicht\video\OpenGL Core">
<UniqueIdentifier>{d6b83fe4-204d-4a95-aeb7-5b8ebdec7e5d}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\IEventReceiver.h">
......@@ -855,39 +858,6 @@
<ClInclude Include="S2DVertex.h">
<Filter>Irrlicht\video\Software</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="glext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="wglext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CColorConverter.h">
<Filter>Irrlicht\video\Null</Filter>
</ClInclude>
......@@ -1309,15 +1279,45 @@
<ClInclude Include="CD3D9RenderTarget.h">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClInclude>
<ClInclude Include="COpenGLRenderTarget.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CB3DMeshWriter.h">
<ClInclude Include="CB3DMeshWriter.h">
<Filter>Irrlicht\scene\writers</Filter>
</ClInclude>
<ClInclude Include="SB3DStructs.h">
<Filter>Irrlicht\scene</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COGLCoreFeature.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
<ClInclude Include="COGLCoreRenderTarget.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\changes.txt">
......@@ -1619,30 +1619,6 @@
<ClCompile Include="CZBuffer.cpp">
<Filter>Irrlicht\video\Software</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CColorConverter.cpp">
<Filter>Irrlicht\video\Null</Filter>
</ClCompile>
......@@ -2246,11 +2222,32 @@
<ClCompile Include="CD3D9RenderTarget.cpp">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClCompile>
<ClCompile Include="COpenGLRenderTarget.cpp">
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
......
......@@ -1018,7 +1018,17 @@
<ClInclude Include="CGeometryCreator.h" />
<ClInclude Include="CMeshCache.h" />
<ClInclude Include="CMeshManipulator.h" />
<ClInclude Include="COpenGLRenderTarget.h" />
<ClInclude Include="COGLCoreFeature.h" />
<ClInclude Include="COGLCoreRenderTarget.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="CSceneManager.h" />
<ClInclude Include="Octree.h" />
<ClInclude Include="CSMFMeshFileLoader.h" />
......@@ -1111,18 +1121,7 @@
<ClInclude Include="IZBuffer.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="S2DVertex.h" />
<ClInclude Include="COpenGLCacheHandler.h" />
<ClInclude Include="COpenGLDriver.h" />
<ClInclude Include="COpenGLExtensionHandler.h" />
<ClInclude Include="COpenGLMaterialRenderer.h" />
<ClInclude Include="COpenGLNormalMapRenderer.h" />
<ClInclude Include="COpenGLParallaxMapRenderer.h" />
<ClInclude Include="COpenGLShaderMaterialRenderer.h" />
<ClInclude Include="COpenGLSLMaterialRenderer.h" />
<ClInclude Include="COpenGLTexture.h" />
<ClInclude Include="glext.h" />
<ClInclude Include="SB3DStructs.h" />
<ClInclude Include="wglext.h" />
<ClInclude Include="CColorConverter.h" />
<ClInclude Include="CFPSCounter.h" />
<ClInclude Include="CImage.h" />
......@@ -1267,7 +1266,14 @@
<ClCompile Include="CGeometryCreator.cpp" />
<ClCompile Include="CMeshCache.cpp" />
<ClCompile Include="CMeshManipulator.cpp" />
<ClCompile Include="COpenGLRenderTarget.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CSceneManager.cpp" />
<ClCompile Include="C3DSMeshFileLoader.cpp" />
<ClCompile Include="CSMFMeshFileLoader.cpp" />
......@@ -1362,14 +1368,6 @@
<ClCompile Include="CTRTextureGouraudNoZ.cpp" />
<ClCompile Include="CTRTextureGouraudWire.cpp" />
<ClCompile Include="CZBuffer.cpp" />
<ClCompile Include="COpenGLCacheHandler.cpp" />
<ClCompile Include="COpenGLDriver.cpp" />
<ClCompile Include="COpenGLExtensionHandler.cpp" />
<ClCompile Include="COpenGLNormalMapRenderer.cpp" />
<ClCompile Include="COpenGLParallaxMapRenderer.cpp" />
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp" />
<ClCompile Include="COpenGLSLMaterialRenderer.cpp" />
<ClCompile Include="COpenGLTexture.cpp" />
<ClCompile Include="CColorConverter.cpp" />
<ClCompile Include="CFPSCounter.cpp" />
<ClCompile Include="CImage.cpp" />
......
......@@ -100,6 +100,9 @@
<Filter Include="Irrlicht\gui">
<UniqueIdentifier>{da421793-4674-481c-be46-f7a44e78aee5}</UniqueIdentifier>
</Filter>
<Filter Include="Irrlicht\video\OpenGL Core">
<UniqueIdentifier>{628de03e-6872-4682-b1f6-d3cc453c9d55}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\IEventReceiver.h">
......@@ -855,39 +858,6 @@
<ClInclude Include="S2DVertex.h">
<Filter>Irrlicht\video\Software</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="glext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="wglext.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CColorConverter.h">
<Filter>Irrlicht\video\Null</Filter>
</ClInclude>
......@@ -1309,15 +1279,45 @@
<ClInclude Include="CD3D9RenderTarget.h">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClInclude>
<ClInclude Include="COpenGLRenderTarget.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="CB3DMeshWriter.h">
<ClInclude Include="CB3DMeshWriter.h">
<Filter>Irrlicht\scene\writers</Filter>
</ClInclude>
<ClInclude Include="SB3DStructs.h">
<Filter>Irrlicht\scene</Filter>
</ClInclude>
<ClInclude Include="COpenGLCacheHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLDriver.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLExtensionHandler.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLNormalMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLParallaxMapRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLShaderMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLSLMaterialRenderer.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COpenGLTexture.h">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClInclude>
<ClInclude Include="COGLCoreFeature.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
<ClInclude Include="COGLCoreRenderTarget.h">
<Filter>Irrlicht\video\OpenGL Core</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\changes.txt">
......@@ -1619,30 +1619,6 @@
<ClCompile Include="CZBuffer.cpp">
<Filter>Irrlicht\video\Software</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CColorConverter.cpp">
<Filter>Irrlicht\video\Null</Filter>
</ClCompile>
......@@ -2246,11 +2222,32 @@
<ClCompile Include="CD3D9RenderTarget.cpp">
<Filter>Irrlicht\video\Direct3D9</Filter>
</ClCompile>
<ClCompile Include="COpenGLRenderTarget.cpp">
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
</ClCompile>
<ClCompile Include="COpenGLCacheHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="CB3DMeshWriter.cpp">
<Filter>Irrlicht\scene\writers</Filter>
<ClCompile Include="COpenGLDriver.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLExtensionHandler.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLNormalMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLParallaxMapRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLShaderMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLSLMaterialRenderer.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
<ClCompile Include="COpenGLTexture.cpp">
<Filter>Irrlicht\video\OpenGL</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
......
......@@ -2231,14 +2231,6 @@
RelativePath="COpenGLParallaxMapRenderer.h"
>
</File>
<File
RelativePath="COpenGLRenderTarget.cpp"
>
</File>
<File
RelativePath="COpenGLRenderTarget.h"
>
</File>
<File
RelativePath="COpenGLShaderMaterialRenderer.cpp"
>
......@@ -2272,6 +2264,18 @@
>
</File>
</Filter>
<Filter
Name="OpenGL Core"
>
<File
RelativePath="COGLCoreFeature.h"
>
</File>
<File
RelativePath="COGLCoreRenderTarget.h"
>
</File>
</Filter>
<Filter
Name="Null"
>
......
......@@ -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 COpenGLRenderTarget.o COpenGLShaderMaterialRenderer.o COpenGLTexture.o COpenGLSLMaterialRenderer.o COpenGLExtensionHandler.o CD3D9Driver.o CD3D9HLSLMaterialRenderer.o CD3D9NormalMapRenderer.o CD3D9ParallaxMapRenderer.o CD3D9ShaderMaterialRenderer.o CD3D9Texture.o
IRRDRVROBJ = CNullDriver.o COpenGLCacheHandler.o COpenGLDriver.o COpenGLNormalMapRenderer.o COpenGLParallaxMapRenderer.o COpenGLShaderMaterialRenderer.o COpenGLTexture.o COpenGLSLMaterialRenderer.o COpenGLExtensionHandler.o CD3D9Driver.o CD3D9HLSLMaterialRenderer.o CD3D9NormalMapRenderer.o CD3D9ParallaxMapRenderer.o CD3D9ShaderMaterialRenderer.o CD3D9Texture.o
IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderDDS.o CImageLoaderJPG.o CImageLoaderPCX.o CImageLoaderPNG.o CImageLoaderPSD.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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment