Esempio n. 1
0
SpectraDocumentCanvas::SpectraDocumentCanvas(
  wxEvtHandler* handler, wxWindow* parent)
  : wxGLCanvas(
      parent, wxID_ANY, SpectraGLConfig(), wxDefaultPosition, wxDefaultSize)
  , evt_handler(handler) {
    Connect(
      wxEVT_MOTION, wxMouseEventHandler(SpectraDocumentCanvas::OnMouseEvent));
    Connect(
      wxEVT_MOUSEWHEEL,
      wxMouseEventHandler(SpectraDocumentCanvas::OnMouseEvent));
}
Esempio n. 2
0
SpectraMainFrame::SpectraMainFrame(SpectraApp& app)
 : wxFrame(
	(wxWindow*)nullptr,
	wxID_ANY,
	wxT("OGLplus Spectra"),
	wxDefaultPosition,
	wxSize(300, 400)
), parent_app(app)
 , main_menu(new wxMenuBar())
 , status_bar(new wxStatusBar(this))
 , gl_canvas(
	new wxGLCanvas(
		(wxWindow*)this,
		wxID_ANY,
		SpectraGLConfig(),
		wxDefaultPosition,
		wxDefaultSize
	)
), gl_context(gl_canvas)
 , gl_api_init()
 , shared_objects()
 , coroutine_exec()
{
	InitMainMenu();
	InitComponents();
	Show();

	coroutine_exec = std::make_shared<SpectraCoroutineExecutor>(
		parent_app,
		this //TODO progress panel + sizer
	);

	SetStatus(wxGetTranslation(wxT("Initializing GL"), wxT("Status")));

	gl_context.SetCurrent(*gl_canvas);
	gl_api_init.reset(new oglplus::GLAPIInitializer());
	gl_canvas->Hide();

	gl_vendor->SetLabel(wxString(
		(const char*)glGetString(GL_VENDOR),
		wxConvUTF8
	));
	gl_renderer->SetLabel(wxString(
		(const char*)glGetString(GL_RENDERER),
		wxConvUTF8
	));
	gl_version->SetLabel(wxString(
		(const char*)glGetString(GL_VERSION),
		wxConvUTF8
	));
	sl_version->SetLabel(wxString(
		(const char*)glGetString(GL_SHADING_LANGUAGE_VERSION),
		wxConvUTF8
	));

	SetStatus(wxGetTranslation(wxT("Creating shared objects"), wxT("Status")));

	shared_objects = std::make_shared<SpectraSharedObjects>(&gl_context, gl_canvas);

	SetStatus(wxGetTranslation(wxT("Ready"), wxT("Status")));

	ConnectEventHandlers();

	SetStatus(wxGetTranslation(wxT("Running"), wxT("Status")));
}