Fixed OGL-ES2 for win32 as well. Not yet properly running with my emulator, though. So setup might still be incomplete here.

git-svn-id: http://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@4597 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2013-10-26 12:13:26 +00:00
parent 0b9acb8f26
commit 119c12bdbb
5 changed files with 34 additions and 17 deletions

View File

@ -66,7 +66,13 @@ namespace irr
#endif
#ifdef _IRR_COMPILE_WITH_OGLES2_
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params, video::SExposedVideoData& data, io::IFileSystem* io);
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params, video::SExposedVideoData& data, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
);
#endif
}
} // end namespace irr
@ -1158,8 +1164,6 @@ void CIrrDeviceWin32::createDriver()
data.OpenGLWin32.HWnd=HWnd;
ContextManager = new video::CEGLManager(CreationParams,&data);
ContextManager->initialize();
ContextManager->createSurface();
switchToFullScreen();
VideoDriver = video::createOGLES1Driver(CreationParams, data, FileSystem, ContextManager);
@ -1179,9 +1183,10 @@ void CIrrDeviceWin32::createDriver()
video::SExposedVideoData data;
data.OpenGLWin32.HWnd=HWnd;
ContextManager = new video::CEGLManager(CreationParams,&data);
switchToFullScreen();
VideoDriver = video::createOGLES2Driver(CreationParams, data, FileSystem);
VideoDriver = video::createOGLES2Driver(CreationParams, data, FileSystem, ContextManager);
if (!VideoDriver)
{
os::Printer::log("Could not create OpenGL-ES2 driver.", ELL_ERROR);

View File

@ -39,7 +39,7 @@ namespace video
COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params,
const SExposedVideoData& data, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
, CEGLManager* eglManager
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
@ -48,7 +48,7 @@ COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params,
Transformation3DChanged(true), AntiAlias(params.AntiAlias), BridgeCalls(0),
RenderTargetTexture(0), CurrentRendertargetSize(0, 0), ColorFormat(ECF_R8G8B8)
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
, EGLManager(eglManager)
, ContextManager(contextManager)
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, Device(device), ViewFramebuffer(0),
ViewRenderbuffer(0), ViewDepthRenderbuffer(0)
@ -62,7 +62,13 @@ COGLES2Driver::COGLES2Driver(const SIrrlichtCreationParameters& params,
core::dimension2d<u32> WindowSize(0, 0);
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
EGLManager->createContext();
if (!ContextManager)
return;
ContextManager->grab();
ContextManager->initialize();
ContextManager->createSurface();
ContextManager->createContext();
WindowSize = params.WindowSize;
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
@ -110,7 +116,11 @@ COGLES2Driver::~COGLES2Driver()
delete BridgeCalls;
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
EGLManager->destroyContext();
if (ContextManager)
{
ContextManager->destroyContext();
ContextManager->drop();
}
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
if (0 != ViewFramebuffer)
{
@ -426,7 +436,8 @@ bool COGLES2Driver::endScene()
CNullDriver::endScene();
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
EGLManager->swapBuffers();
if (ContextManager)
ContextManager->swapBuffers();
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
glFlush();
glBindRenderbufferOES(GL_RENDERBUFFER_OES, ViewRenderbuffer);
@ -2857,13 +2868,13 @@ namespace video
{
#ifndef _IRR_COMPILE_WITH_OGLES2_
class CEGLManager;
class IContextManager;
#endif
IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params,
video::SExposedVideoData& data, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
, CEGLManager* eglManager
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
@ -2872,7 +2883,7 @@ IVideoDriver* createOGLES2Driver(const SIrrlichtCreationParameters& params,
#ifdef _IRR_COMPILE_WITH_OGLES2_
return new COGLES2Driver(params, data, io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
, eglManager
, contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, device
#endif

View File

@ -65,7 +65,7 @@ namespace video
COGLES2Driver(const SIrrlichtCreationParameters& params,
const SExposedVideoData& data, io::IFileSystem* io
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
, CEGLManager* eglManager
, IContextManager* contextManager
#elif defined(_IRR_COMPILE_WITH_IPHONE_DEVICE_)
, CIrrDeviceIPhone* device
#endif
@ -459,7 +459,7 @@ namespace video
GLuint ViewRenderbuffer;
GLuint ViewDepthRenderbuffer;
#elif defined(_IRR_COMPILE_WITH_X11_DEVICE_) || defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
CEGLManager* EGLManager;
IContextManager* ContextManager;
#endif
};
@ -534,4 +534,3 @@ namespace video
#endif // _IRR_COMPILE_WITH_OPENGL_
#endif

View File

@ -53,6 +53,8 @@ COGLES1Driver::COGLES1Driver(const SIrrlichtCreationParameters& params,
return;
ContextManager->grab();
ContextManager->initialize();
ContextManager->createSurface();
ContextManager->createContext();
WindowSize = params.WindowSize;
@ -3029,7 +3031,7 @@ namespace video
#ifndef _IRR_COMPILE_WITH_OGLES1_
class IVideoDriver;
class CEGLManager;
class IContextManager;
#endif
IVideoDriver* createOGLES1Driver(const SIrrlichtCreationParameters& params,

View File

@ -335,7 +335,7 @@
</ProjectReference>
<Link>
<AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;libEGL.lib;libgles_cm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;libEGL.lib;libglesv2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>..\..\bin\Win32-visualstudio\Irrlicht.dll</OutputFile>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>