Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wxLfPanel::wxLfPanel(wxWindow* parent, wxWindowID id, bool withScene) : wxControl(parent, id, wxDefaultPosition, wxDefaultSize)
- {
- timerUpdate.SetOwner(this);
- Connect(timerUpdate.GetId(), wxEVT_TIMER, wxTimerEventHandler(wxLfPanel::OnTimer));
- wxStaticText* main = new wxStaticText(this, wxID_ANY, wxEmptyString, GetPosition(), GetSize());
- main->SetBackgroundStyle(wxBG_STYLE_CUSTOM);
- s32 creationFlags = render::EWCF_OPPL_PIPELINE | render::EWCF_AUTOCLOSE | render::EWCF_VISIBLE | (withScene ? 0 : render::EWCF_NO_DEFAULT_SCENE);
- lf::render::SPlatformHandle platform_handle;
- // initialize LFRenderWindow in this window
- #ifdef LINUX
- GtkWidget* handle = main->GetHandle();
- gtk_widget_realize(handle);
- if (!handle || !handle->window)
- return;
- platform_handle.window_handle = (long)(GDK_WINDOW_XWINDOW(handle->window));
- platform_handle.display_handle = (long)(GDK_WINDOW_XDISPLAY(handle->window)); // ignored!
- platform_handle.screen_handle = DefaultScreen(platform_handle.display_handle);
- #else
- platform_handle.window_handle = reinterpret_cast<long>(main->GetHandle());
- #endif
- CLFLog::getInstance().log(log::ELS_USER1, log::ELL_INFO, "Creating new render window ---");
- _rwin = lf::CLFRender::getInstancePtr()->useExternalRenderWindow(platform_handle, creationFlags, 0);
- //_rFirstWin = _rwin; // todo: replace 0 by _rwin to use shared context again
- _rwin->setVisible(true);
- if(withScene)
- {
- _rwin->getRenderLayer3D()->addCamera(new scene::C3DCamera());
- _rwin->getRenderLayer3D()->getCamera(0)->setBackgroundColor(core::CColorI(91,95,107,255));
- _rwin->getRenderLayer3D()->getCamera(0)->setPosition(core::vector3df(-10,20,-50));
- _rwin->getRenderLayer3D()->getCamera(0)->setTarget(core::vector3df(0,0,0));
- _rwin->getRenderLayer3D()->getCamera(0)->setFarValue(1000.f);
- _rwin->getRenderLayer3D()->getCamera(0)->setRendererPipeline(0, _rwin->getForwardMultiPassRendererPipeline());
- _rwin->getRenderLayer3D()->getCamera(0)->drop();
- }
- // sanity check
- assert(_rwin && "Cannot create render window!");
- _rwin->addFrameListener(this);
- timerUpdate.Start(30);
- CLFLog::getInstance().log(log::ELS_USER1, log::ELL_INFO, "rwin count: %i", CLFRender::getInstance().getRenderWindowCount());
- }
- wxLfPanel::~wxLfPanel()
- {
- _rwin->removeFrameListener(this);
- _rwin->closeWindow();
- _rwin->drop();
- CLFLog::getInstance().log(log::ELS_USER1, log::ELL_INFO, "rwin count: %i", CLFRender::getInstance().getRenderWindowCount());
- CLFLog::getInstance().log(log::ELS_USER1, log::ELL_INFO, "Removing render window ---");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement