OK, using your download link from
here and Irrlicht 1.9 (SVN 5107) , I... could not compile either.
I get bunch of Warnings about deprecated shader calls (setPixelShaderConstant, setVertexShaderConstant, etc) and 3 errors (!).
I'll deal with your error first:
I am unsure if you have modified the PostProcessing framework because your pasted code doesn't match up with the code in the framework
but I think this is what happened:
In
PostProcessManager.cpp:85 in
void CPostProcessManager::render (just above
update() in my unmodified version linked to above)
Code: Select all
// bind output buffer
if( !postProcess->getRenderTarget().empty())
Device->getVideoDriver()->setRenderTarget(RenderTargetMap[postProcess->getRenderTarget()]);
else
Device->getVideoDriver()->setRenderTarget(video::ERT_FRAME_BUFFER, true, true);
It appears to check if the output buffer is empty, if it is
not 'empty' then sets the render target (ie: binds output buffer) using
RenderTargetMap as an argument.
If it
is 'empty' then it sets the Frame Buffer as the render target.
Device->getVideoDriver()->setRenderTarget(video::ERT_FRAME_BUFFER, true, true); gives me an error that *ITexture or *IRenderTarget should be the first arg, (no possible conversion yadayada) so this must be the error that you are seeing.
Either comment the offending line out (if you are using the unmodified version) or if you are using a modified version change it to:
Code: Select all
Device->getVideoDriver()->setRenderTarget(RenderTargetMap[postProcess->getRenderTarget()]);
TBH this is a wild stab in the dark as I would rather not download the 255MB IrrRPG + sources (or wherever this code is from) just to try this.
It would be nice if you could upload your modified (?) version PostProcessing framework somewhere, since I get other errors as well.
I also cannot compile (even after doing the above) because of an error associated with irrMap.h:
These are the relevant errors (including the above error mind):
Compiler is clang++ 3.6 on Ubuntu 15.04 64-bit (I get the same error from g++)
Code: Select all
In file included from PostProcessManager.cpp:1:
In file included from ./PostProcessManager.h:4:
In file included from ../../trunk/include/irrlicht.h:130:
../../trunk/include/irrMap.h:622:8: error: cannot define the implicit copy assignment operator for 'irr::core::map<irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >, irr::video::ITexture
*>::AccessClass', because non-static reference member 'Tree' can't use copy assignment operator
class AccessClass
^
../../trunk/include/irrMap.h:653:8: note: declared here
map& Tree;
^
PostProcessManager.cpp:54:27: note: implicit copy assignment operator for 'irr::core::map<irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >, irr::video::ITexture *>::AccessClass' first required
here
RenderTargetMap["auxIn"] = RenderTargetMap["auxOut"];
^
In file included from PostProcessManager.cpp:1:
In file included from ./PostProcessManager.h:4:
In file included from ../../trunk/include/irrlicht.h:130:
../../trunk/include/irrMap.h:622:8: error: cannot define the implicit copy assignment operator for 'irr::core::map<irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >, irr::video::ITexture
*>::AccessClass', because non-static reference member 'Key' can't use copy assignment operator
class AccessClass
^
../../trunk/include/irrMap.h:654:18: note: declared here
const KeyType& Key;
^
PostProcessManager.cpp:54:27: note: implicit copy assignment operator for 'irr::core::map<irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >, irr::video::ITexture *>::AccessClass' first required
here
RenderTargetMap["auxIn"] = RenderTargetMap["auxOut"];
^
PostProcessManager.cpp:89:31: error: no matching member function for call to 'setRenderTarget'
Device->getVideoDriver()->setRenderTarget(video::ERT_FRAME_BUFFER, true, true);
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../../trunk/include/IVideoDriver.h:591:16: note: candidate function not viable: no known conversion from 'irr::video::E_RENDER_TARGET' to 'video::ITexture *' for 1st argument
virtual bool setRenderTarget(video::ITexture* texture,
^
../../trunk/include/IVideoDriver.h:546:16: note: candidate function not viable: requires at least 5 arguments, but 3 were provided
virtual bool setRenderTarget(IRenderTarget* target, const core::array<u32>& activeTextureID, bool clearBackBuffer,
^
../../trunk/include/IVideoDriver.h:550:8: note: candidate function not viable: requires at least 5 arguments, but 3 were provided
bool setRenderTarget(IRenderTarget* target, u32 activeTextureID, bool clearBackBuffer, bool clearDepthBuffer,
I admit I am also eager for a solution to this problem(s) because this looks like a very good Postprocesser...