Commit 01a0042f authored by hybrid's avatar hybrid

Moved windowId and sourceRect parameters from endScene to beginScene in order...

Moved windowId and sourceRect parameters from endScene to beginScene in order to support several windows for OpenGL as well. This is not yet implemented, though, just made some preparations.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1591 dfc29bdd-3216-0410-991c-e03cc46cb475
parent bf2d25ae
......@@ -88,12 +88,6 @@ namespace video
be cleared. It is not nesesarry to do so if only 2d drawing is
used.
\param color The color used for back buffer clearing
\return False if failed. */
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color) = 0;
//! Presents the rendered image to the screen.
/** Applications must call this method after performing any
rendering.
\param windowId Handle of another window, if you want the
bitmap to be displayed on another window. If this is null,
everything will be displayed in the default window.
......@@ -103,8 +97,17 @@ namespace video
\param sourceRect Pointer to a rectangle defining the source
rectangle of the area to be presented. Set to null to present
everything. Note: not implemented in all devices.
\return False if failed. */
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0) = 0;
//! Presents the rendered image to the screen.
/** Applications must call this method after performing any
rendering.
\return False if failed and true if succeeded. */
virtual bool endScene( void* windowId=0, core::rect<s32>* sourceRect=0 ) = 0;
virtual bool endScene() = 0;
//! Queries the features of the driver.
/** Returns true if a feature is available
......
......@@ -31,6 +31,7 @@ CD3D8Driver::CD3D8Driver(const core::dimension2d<s32>& screenSize, HWND window,
: CNullDriver(io, screenSize), CurrentRenderMode(ERM_NONE),
ResetRenderStates(true), Transformation3DChanged(false), StencilBuffer(stencilbuffer),
D3DLibrary(0), pID3D(0), pID3DDevice(0), PrevRenderTarget(0),
WindowId(0), SceneSourceRect(0),
LastVertexType((video::E_VERTEX_TYPE)-1), MaxTextureUnits(0), MaxUserClipPlanes(0),
MaxLightDistance(sqrtf(FLT_MAX)), LastSetLight(-1), DeviceLost(false)
{
......@@ -382,14 +383,17 @@ bool CD3D8Driver::initDriver(const core::dimension2d<s32>& screenSize,
//! applications must call this method before performing any rendering. returns false if failed.
bool CD3D8Driver::beginScene(bool backBuffer, bool zBuffer, SColor color)
bool CD3D8Driver::beginScene(bool backBuffer, bool zBuffer, SColor color,
void* windowId, core::rect<s32>* sourceRect)
{
CNullDriver::beginScene(backBuffer, zBuffer, color);
HRESULT hr;
CNullDriver::beginScene(backBuffer, zBuffer, color, windowId, sourceRect);
WindowId = windowId;
SceneSourceRect = sourceRect;
if (!pID3DDevice)
return false;
HRESULT hr;
if (DeviceLost)
{
if(FAILED(hr = pID3DDevice->TestCooperativeLevel()))
......@@ -464,7 +468,7 @@ bool CD3D8Driver::reset()
//! applications must call this method after performing any rendering. returns false if failed.
bool CD3D8Driver::endScene(void* windowId, core::rect<s32>* sourceRect)
bool CD3D8Driver::endScene()
{
CNullDriver::endScene();
......@@ -477,16 +481,16 @@ bool CD3D8Driver::endScene(void* windowId, core::rect<s32>* sourceRect)
RECT* srcRct = 0;
RECT sourceRectData;
if ( sourceRect)
if ( SceneSourceRect)
{
srcRct = &sourceRectData;
sourceRectData.left = sourceRect->UpperLeftCorner.X;
sourceRectData.top = sourceRect->UpperLeftCorner.Y;
sourceRectData.right = sourceRect->LowerRightCorner.X;
sourceRectData.bottom = sourceRect->LowerRightCorner.Y;
sourceRectData.left = SceneSourceRect->UpperLeftCorner.X;
sourceRectData.top = SceneSourceRect->UpperLeftCorner.Y;
sourceRectData.right = SceneSourceRect->LowerRightCorner.X;
sourceRectData.bottom = SceneSourceRect->LowerRightCorner.Y;
}
hr = pID3DDevice->Present(srcRct, NULL, (HWND)windowId, NULL);
hr = pID3DDevice->Present(srcRct, NULL, (HWND)WindowId, NULL);
if (hr == D3DERR_DEVICELOST)
{
......
......@@ -40,10 +40,13 @@ namespace video
virtual ~CD3D8Driver();
//! applications must call this method before performing any rendering. returns false if failed.
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color);
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0);
//! applications must call this method after performing any rendering. returns false if failed.
virtual bool endScene(void* windowId=0, core::rect<s32>* sourceRect=0);
virtual bool endScene();
//! queries the features of the driver, returns true if feature is available
virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const;
......@@ -275,6 +278,9 @@ namespace video
IDirect3DSurface8* PrevRenderTarget;
core::dimension2d<s32> CurrentRendertargetSize;
void* WindowId,
core::rect<s32>* SceneSourceRect,
D3DCAPS8 Caps;
E_VERTEX_TYPE LastVertexType;
......
......@@ -30,6 +30,7 @@ CD3D9Driver::CD3D9Driver(const core::dimension2d<s32>& screenSize, HWND window,
: CNullDriver(io, screenSize), CurrentRenderMode(ERM_NONE),
ResetRenderStates(true), Transformation3DChanged(false), StencilBuffer(stencilbuffer),
D3DLibrary(0), pID3D(0), pID3DDevice(0), PrevRenderTarget(0),
WindowId(0), SceneSourceRect(0),
LastVertexType((video::E_VERTEX_TYPE)-1), MaxTextureUnits(0), MaxUserClipPlanes(0),
MaxLightDistance(sqrtf(FLT_MAX)), LastSetLight(-1), DeviceLost(false),
Fullscreen(fullscreen)
......@@ -450,14 +451,17 @@ bool CD3D9Driver::initDriver(const core::dimension2d<s32>& screenSize,
//! applications must call this method before performing any rendering. returns false if failed.
bool CD3D9Driver::beginScene(bool backBuffer, bool zBuffer, SColor color)
bool CD3D9Driver::beginScene(bool backBuffer, bool zBuffer, SColor color,
void* windowId, core::rect<s32>* sourceRect)
{
CNullDriver::beginScene(backBuffer, zBuffer, color);
HRESULT hr;
CNullDriver::beginScene(backBuffer, zBuffer, color, windowId, sourceRect);
WindowId = windowId;
SceneSourceRect = sourceRect;
if (!pID3DDevice)
return false;
HRESULT hr;
if (DeviceLost)
{
if(FAILED(hr = pID3DDevice->TestCooperativeLevel()))
......@@ -498,7 +502,7 @@ bool CD3D9Driver::beginScene(bool backBuffer, bool zBuffer, SColor color)
//! applications must call this method after performing any rendering. returns false if failed.
bool CD3D9Driver::endScene(void* windowId, core::rect<s32>* sourceRect)
bool CD3D9Driver::endScene()
{
if (DeviceLost)
return false;
......@@ -514,16 +518,16 @@ bool CD3D9Driver::endScene(void* windowId, core::rect<s32>* sourceRect)
RECT* srcRct = 0;
RECT sourceRectData;
if ( sourceRect )
if ( SceneSourceRect )
{
srcRct = &sourceRectData;
sourceRectData.left = sourceRect->UpperLeftCorner.X;
sourceRectData.top = sourceRect->UpperLeftCorner.Y;
sourceRectData.right = sourceRect->LowerRightCorner.X;
sourceRectData.bottom = sourceRect->LowerRightCorner.Y;
sourceRectData.left = SceneSourceRect->UpperLeftCorner.X;
sourceRectData.top = SceneSourceRect->UpperLeftCorner.Y;
sourceRectData.right = SceneSourceRect->LowerRightCorner.X;
sourceRectData.bottom = SceneSourceRect->LowerRightCorner.Y;
}
hr = pID3DDevice->Present(srcRct, NULL, (HWND)windowId, NULL);
hr = pID3DDevice->Present(srcRct, NULL, (HWND)WindowId, NULL);
if (hr == D3DERR_DEVICELOST)
{
......
......@@ -34,10 +34,13 @@ namespace video
virtual ~CD3D9Driver();
//! applications must call this method before performing any rendering. returns false if failed.
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color);
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0);
//! applications must call this method after performing any rendering. returns false if failed.
virtual bool endScene( void* windowId=0, core::rect<s32>* sourceRect=0 );
virtual bool endScene();
//! queries the features of the driver, returns true if feature is available
virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const;
......@@ -312,6 +315,9 @@ namespace video
IDirect3DSurface9* PrevRenderTarget;
core::dimension2d<s32> CurrentRendertargetSize;
void* WindowId;
core::rect<s32>* SceneSourceRect;
D3DCAPS9 Caps;
E_VERTEX_TYPE LastVertexType;
......
......@@ -927,12 +927,12 @@ void CIrrDeviceLinux::setWindowCaption(const wchar_t* text)
//! presents a surface in the client area
void CIrrDeviceLinux::present(video::IImage* image, void* windowId, core::rect<s32>* src )
bool CIrrDeviceLinux::present(video::IImage* image, void* windowId, core::rect<s32>* srcRect )
{
#ifdef _IRR_COMPILE_WITH_X11_
// this is only necessary for software drivers.
if (CreationParams.DriverType != video::EDT_SOFTWARE && CreationParams.DriverType != video::EDT_BURNINGSVIDEO)
return;
return true;
// thx to Nadav, who send me some clues of how to display the image
// to the X Server.
......@@ -954,7 +954,7 @@ void CIrrDeviceLinux::present(video::IImage* image, void* windowId, core::rect<s
case 32: destColor = video::ECF_A8R8G8B8; break;
default:
os::Printer::log("Unsupported screen depth.");
return;
return false;
}
u8* srcdata = reinterpret_cast<u8*>(image->lock());
......@@ -972,8 +972,12 @@ void CIrrDeviceLinux::present(video::IImage* image, void* windowId, core::rect<s
image->unlock();
GC gc = DefaultGC(display, DefaultScreen(display));
XPutImage(display, window, gc, SoftwareImage, 0, 0, 0, 0, destwidth, destheight);
Window myWindow=window;
if (windowId)
myWindow = static_cast<Window>(windowId);
XPutImage(display, myWindow, gc, SoftwareImage, 0, 0, 0, 0, destwidth, destheight);
#endif
return true;
}
......
......@@ -78,7 +78,7 @@ namespace irr
virtual video::ECOLOR_FORMAT getColorFormat() const;
//! presents a surface in the client area
virtual void present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0 );
virtual bool present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0 );
//! notifies the device that it should close itself
virtual void closeDevice();
......
......@@ -321,7 +321,7 @@ void CIrrDeviceSDL::setWindowCaption(const wchar_t* text)
//! presents a surface in the client area
void CIrrDeviceSDL::present(video::IImage* surface, void* windowId, core::rect<s32>* src)
bool CIrrDeviceSDL::present(video::IImage* surface, void* windowId, core::rect<s32>* src)
{
SDL_Rect srcClip;
SDL_Surface *sdlSurface = SDL_CreateRGBSurfaceFrom(
......@@ -341,6 +341,7 @@ void CIrrDeviceSDL::present(video::IImage* surface, void* windowId, core::rect<s
SDL_UpdateRect(Screen, 0, 0, surface->getDimension().Width, surface->getDimension().Height);
SDL_FreeSurface(sdlSurface);
surface->unlock();
return true;
}
......
......@@ -56,7 +56,7 @@ namespace irr
video::ECOLOR_FORMAT getColorFormat() const;
//! presents a surface in the client area
virtual void present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0);
virtual bool present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0);
//! notifies the device that it should close itself
virtual void closeDevice();
......
......@@ -618,7 +618,7 @@ void CIrrDeviceWin32::setWindowCaption(const wchar_t* text)
//! presents a surface in the client area
void CIrrDeviceWin32::present(video::IImage* image, void* windowId, core::rect<s32>* src)
bool CIrrDeviceWin32::present(video::IImage* image, void* windowId, core::rect<s32>* src)
{
HWND hwnd = HWnd;
if ( windowId )
......@@ -663,10 +663,10 @@ void CIrrDeviceWin32::present(video::IImage* image, void* windowId, core::rect<s
ReleaseDC(hwnd, dc);
}
return true;
}
//! notifies the device that it should close itself
void CIrrDeviceWin32::closeDevice()
{
......
......@@ -50,7 +50,7 @@ namespace irr
virtual bool isWindowMinimized() const;
//! presents a surface in the client area
virtual void present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0);
virtual bool present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0);
//! notifies the device that it should close itself
virtual void closeDevice();
......
......@@ -597,7 +597,7 @@ typedef struct {
//! presents a surface in the client area
void CIrrDeviceWinCE::present(video::IImage* image, void* windowId, core::rect<s32>* src)
bool CIrrDeviceWinCE::present(video::IImage* image, void* windowId, core::rect<s32>* src)
{
HWND hwnd = HWnd;
if ( windowId )
......@@ -643,6 +643,7 @@ void CIrrDeviceWinCE::present(video::IImage* image, void* windowId, core::rect<s
ReleaseDC(hwnd, dc);
}
return true;
}
......
......@@ -54,7 +54,7 @@ namespace irr
virtual bool isWindowMinimized() const;
//! presents a surface in the client area
virtual void present(video::IImage* surface, void* windowId = 0, core::rect<s32>* src=0 );
virtual bool present(video::IImage* surface, void* windowId = 0, core::rect<s32>* src=0 );
//! notifies the device that it should close itself
virtual void closeDevice();
......
......@@ -204,17 +204,17 @@ void CNullDriver::deleteAllTextures()
//! applications must call this method before performing any rendering. returns false if failed.
bool CNullDriver::beginScene(bool backBuffer, bool zBuffer, SColor color)
bool CNullDriver::beginScene(bool backBuffer, bool zBuffer, SColor color,
void* windowId, core::rect<s32>* sourceRect)
{
core::clearFPUException ();
core::clearFPUException();
PrimitivesDrawn = 0;
return true;
}
//! applications must call this method after performing any rendering. returns false if failed.
bool CNullDriver::endScene( void* windowId, core::rect<s32>* sourceRect )
bool CNullDriver::endScene()
{
FPSCounter.registerFrame(os::Timer::getRealTime(), PrimitivesDrawn);
updateAllHardwareBuffers();
......
......@@ -44,9 +44,12 @@ namespace video
//! destructor
virtual ~CNullDriver();
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color);
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0);
virtual bool endScene( void* windowId=0, core::rect<s32>* sourceRect=0 );
virtual bool endScene();
//! Disable a feature of the driver.
virtual void disableFeature(E_VIDEO_DRIVER_FEATURE feature, bool flag=true);
......
......@@ -434,7 +434,7 @@ void COpenGLDriver::createMaterialRenderers()
//! presents the rendered scene on the screen, returns false if failed
bool COpenGLDriver::endScene(void* windowId, core::rect<s32>* sourceRect)
bool COpenGLDriver::endScene()
{
CNullDriver::endScene();
......@@ -458,9 +458,10 @@ bool COpenGLDriver::endScene(void* windowId, core::rect<s32>* sourceRect)
//! clears the zbuffer
bool COpenGLDriver::beginScene(bool backBuffer, bool zBuffer, SColor color)
bool COpenGLDriver::beginScene(bool backBuffer, bool zBuffer, SColor color,
void* windowId, core::rect<s32>* sourceRect)
{
CNullDriver::beginScene(backBuffer, zBuffer, color);
CNullDriver::beginScene(backBuffer, zBuffer, color, windowId, sourceRect);
GLbitfield mask = 0;
......
......@@ -98,10 +98,13 @@ namespace video
virtual ~COpenGLDriver();
//! clears the zbuffer
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color);
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0);
//! presents the rendered scene on the screen, returns false if failed
virtual bool endScene( void* windowId, core::rect<s32>* sourceRect=0 );
virtual bool endScene();
//! sets transformation
virtual void setTransform(E_TRANSFORMATION_STATE state, const core::matrix4& mat);
......
......@@ -19,8 +19,8 @@ namespace video
//! constructor
CSoftwareDriver::CSoftwareDriver(const core::dimension2d<s32>& windowSize, bool fullscreen, io::IFileSystem* io, video::IImagePresenter* presenter)
: CNullDriver(io, windowSize), BackBuffer(0), Presenter(presenter),
RenderTargetTexture(0), RenderTargetSurface(0),
: CNullDriver(io, windowSize), BackBuffer(0), Presenter(presenter), WindowId(0),
SceneSourceRect(0), RenderTargetTexture(0), RenderTargetSurface(0),
CurrentTriangleRenderer(0), ZBuffer(0), Texture(0)
{
#ifdef _DEBUG
......@@ -154,19 +154,6 @@ void CSoftwareDriver::selectRightTriangleRenderer()
}
//! presents the rendered scene on the screen, returns false if failed
bool CSoftwareDriver::endScene( void* windowId, core::rect<s32>* sourceRect )
{
CNullDriver::endScene();
Presenter->present(BackBuffer, windowId, sourceRect );
return true;
}
//! queries the features of the driver, returns true if feature is available
bool CSoftwareDriver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
{
......@@ -228,12 +215,15 @@ void CSoftwareDriver::setMaterial(const SMaterial& material)
//! clears the zbuffer
bool CSoftwareDriver::beginScene(bool backBuffer, bool zBuffer, SColor color)
bool CSoftwareDriver::beginScene(bool backBuffer, bool zBuffer, SColor color,
void* windowId, core::rect<s32>* sourceRect)
{
CNullDriver::beginScene(backBuffer, zBuffer, color);
CNullDriver::beginScene(backBuffer, zBuffer, color, windowId, sourceRect);
WindowId=windowId;
SceneSourceRect = sourceRect;
if (backBuffer && BackBuffer)
BackBuffer->fill( color );
BackBuffer->fill(color);
if (ZBuffer && zBuffer)
ZBuffer->clear();
......@@ -242,6 +232,15 @@ bool CSoftwareDriver::beginScene(bool backBuffer, bool zBuffer, SColor color)
}
//! presents the rendered scene on the screen, returns false if failed
bool CSoftwareDriver::endScene()
{
CNullDriver::endScene();
return Presenter->present(BackBuffer, WindowId, SceneSourceRect);
}
//! sets a render target
bool CSoftwareDriver::setRenderTarget(video::ITexture* texture, bool clearBackBuffer,
bool clearZBuffer, SColor color)
......
......@@ -24,9 +24,6 @@ namespace video
//! destructor
virtual ~CSoftwareDriver();
//! presents the rendered scene on the screen, returns false if failed
virtual bool endScene( void* windowId=0, core::rect<s32>* sourceRect=0 );
//! queries the features of the driver, returns true if feature is available
virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const;
......@@ -43,7 +40,13 @@ namespace video
virtual void setViewPort(const core::rect<s32>& area);
//! clears the zbuffer
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color);
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0);
//! presents the rendered scene on the screen, returns false if failed
virtual bool endScene();
//! Only used by the internal engine. Used to notify the driver that
//! the window was resized.
......@@ -137,6 +140,8 @@ namespace video
video::CImage* BackBuffer;
video::IImagePresenter* Presenter;
void* WindowId;
core::rect<s32>* SceneSourceRect;
core::array<S2DVertex> TransformedPoints;
......
......@@ -27,6 +27,7 @@ namespace video
//! constructor
CBurningVideoDriver::CBurningVideoDriver(const core::dimension2d<s32>& windowSize, bool fullscreen, io::IFileSystem* io, video::IImagePresenter* presenter)
: CNullDriver(io, windowSize), BackBuffer(0), Presenter(presenter),
WindowId(0), SceneSourceRect(0),
RenderTargetTexture(0), RenderTargetSurface(0), CurrentShader(0),
DepthBuffer(0), CurrentOut ( 12 * 2, 128 ), Temp ( 12 * 2, 128 )
{
......@@ -377,19 +378,20 @@ void CBurningVideoDriver::setMaterial(const SMaterial& material)
material.getTextureMatrix(i));
}
setCurrentShader ();
setCurrentShader();
}
//! clears the zbuffer
bool CBurningVideoDriver::beginScene(bool backBuffer, bool zBuffer, SColor color)
bool CBurningVideoDriver::beginScene(bool backBuffer, bool zBuffer,
SColor color, void* windowId, core::rect<s32>* sourceRect)
{
CNullDriver::beginScene(backBuffer, zBuffer, color);
CNullDriver::beginScene(backBuffer, zBuffer, color, windowId, sourceRect);
WindowId = windowId;
SceneSourceRect = sourceRect;
if (backBuffer && BackBuffer)
BackBuffer->fill( color );
BackBuffer->fill(color);
if (DepthBuffer && zBuffer)
DepthBuffer->clear();
......@@ -397,19 +399,16 @@ bool CBurningVideoDriver::beginScene(bool backBuffer, bool zBuffer, SColor color
return true;
}
//! presents the rendered scene on the screen, returns false if failed
bool CBurningVideoDriver::endScene( void* windowId, core::rect<s32>* sourceRect )
bool CBurningVideoDriver::endScene()
{
CNullDriver::endScene();
Presenter->present(BackBuffer, windowId, sourceRect);
return true;
return Presenter->present(BackBuffer, WindowId, SceneSourceRect);
}
//! sets a render target
bool CBurningVideoDriver::setRenderTarget(video::ITexture* texture, bool clearBackBuffer,
bool clearZBuffer, SColor color)
......
......@@ -26,9 +26,6 @@ namespace video
//! destructor
virtual ~CBurningVideoDriver();
//! presents the rendered scene on the screen, returns false if failed
virtual bool endScene( void* windowId=0, core::rect<s32>* sourceRect=0 );
//! queries the features of the driver, returns true if feature is available
virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const;
......@@ -45,7 +42,13 @@ namespace video
virtual void setViewPort(const core::rect<s32>& area);
//! clears the zbuffer
virtual bool beginScene(bool backBuffer, bool zBuffer, SColor color);
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
SColor color=SColor(255,0,0,0),
void* windowId=0,
core::rect<s32>* sourceRect=0);
//! presents the rendered scene on the screen, returns false if failed
virtual bool endScene();
//! Only used by the internal engine. Used to notify the driver that
//! the window was resized.
......@@ -158,6 +161,9 @@ namespace video
video::CImage* BackBuffer;
video::IImagePresenter* Presenter;
void* WindowId;
core::rect<s32>* SceneSourceRect;
video::ITexture* RenderTargetTexture;
video::IImage* RenderTargetSurface;
core::dimension2d<s32> RenderTargetSize;
......
......@@ -26,7 +26,7 @@ namespace video
virtual ~IImagePresenter() {};
//! presents a surface in the client area
virtual void present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0 ) = 0;
virtual bool present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0 ) = 0;
};
} // end namespace video
......
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