Mercurial > hg > orthanc-stone
diff Samples/Qt/BasicScene.cpp @ 883:30268a0cafca am-dev
basic scene Qt sample working
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Tue, 09 Jul 2019 14:34:56 +0200 |
parents | 12b591d5d63c |
children | 56e4e9281076 |
line wrap: on
line diff
--- a/Samples/Qt/BasicScene.cpp Tue Jul 09 11:46:43 2019 +0200 +++ b/Samples/Qt/BasicScene.cpp Tue Jul 09 14:34:56 2019 +0200 @@ -146,123 +146,6 @@ } -//void TakeScreenshot(const std::string& target, -// const Scene2D& scene, -// unsigned int canvasWidth, -// unsigned int canvasHeight) -//{ -// // Take a screenshot, then save it as PNG file -// CairoCompositor compositor(scene, canvasWidth, canvasHeight); -// compositor.SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, FONT_SIZE, Orthanc::Encoding_Latin1); -// compositor.Refresh(); - -// Orthanc::ImageAccessor canvas; -// compositor.GetCanvas().GetReadOnlyAccessor(canvas); - -// Orthanc::Image png(Orthanc::PixelFormat_RGB24, canvas.GetWidth(), canvas.GetHeight(), false); -// Orthanc::ImageProcessing::Convert(png, canvas); - -// Orthanc::PngWriter writer; -// writer.WriteToFile(target, png); -//} - - -//void HandleApplicationEvent(ViewportControllerPtr controller, -// const OpenGLCompositor& compositor, -// const SDL_Event& event, -// FlexiblePointerTrackerPtr& activeTracker) -//{ -// Scene2D& scene(*controller->GetScene()); -// if (event.type == SDL_MOUSEMOTION) -// { -// int scancodeCount = 0; -// const uint8_t* keyboardState = SDL_GetKeyboardState(&scancodeCount); - -// if (activeTracker.get() == NULL && -// SDL_SCANCODE_LCTRL < scancodeCount && -// keyboardState[SDL_SCANCODE_LCTRL]) -// { -// // The "left-ctrl" key is down, while no tracker is present - -// PointerEvent e; -// e.AddPosition(compositor.GetPixelCenterCoordinates(event.button.x, event.button.y)); - -// ScenePoint2D p = e.GetMainPosition().Apply(scene.GetCanvasToSceneTransform()); - -// char buf[64]; -// sprintf(buf, "(%0.02f,%0.02f)", p.GetX(), p.GetY()); - -// if (scene.HasLayer(LAYER_POSITION)) -// { -// TextSceneLayer& layer = -// dynamic_cast<TextSceneLayer&>(scene.GetLayer(LAYER_POSITION)); -// layer.SetText(buf); -// layer.SetPosition(p.GetX(), p.GetY()); -// } -// else -// { -// std::auto_ptr<TextSceneLayer> -// layer(new TextSceneLayer); -// layer->SetColor(0, 255, 0); -// layer->SetText(buf); -// layer->SetBorder(20); -// layer->SetAnchor(BitmapAnchor_BottomCenter); -// layer->SetPosition(p.GetX(), p.GetY()); -// scene.SetLayer(LAYER_POSITION, layer.release()); -// } -// } -// else -// { -// scene.DeleteLayer(LAYER_POSITION); -// } -// } -// else if (event.type == SDL_MOUSEBUTTONDOWN) -// { -// PointerEvent e; -// e.AddPosition(compositor.GetPixelCenterCoordinates(event.button.x, event.button.y)); - -// switch (event.button.button) -// { -// case SDL_BUTTON_MIDDLE: -// activeTracker = boost::make_shared<PanSceneTracker>(controller, e); -// break; - -// case SDL_BUTTON_RIGHT: -// activeTracker = boost::make_shared<ZoomSceneTracker>(controller, -// e, compositor.GetCanvasHeight()); -// break; - -// case SDL_BUTTON_LEFT: -// activeTracker = boost::make_shared<RotateSceneTracker>(controller, e); -// break; - -// default: -// break; -// } -// } -// else if (event.type == SDL_KEYDOWN && -// event.key.repeat == 0 /* Ignore key bounce */) -// { -// switch (event.key.keysym.sym) -// { -// case SDLK_s: -// controller->FitContent(compositor.GetCanvasWidth(), -// compositor.GetCanvasHeight()); -// break; - -// case SDLK_c: -// TakeScreenshot("screenshot.png", scene, -// compositor.GetCanvasWidth(), -// compositor.GetCanvasHeight()); -// break; - -// default: -// break; -// } -// } -//} - - static void GLAPIENTRY OpenGLMessageCallback(GLenum source, GLenum type, GLuint id, @@ -279,89 +162,6 @@ } } - -//void Run(ViewportControllerPtr controller) -//{ -// SdlOpenGLWindow window("Hello", 1024, 768); - -// controller->FitContent(window.GetCanvasWidth(), window.GetCanvasHeight()); - -// glEnable(GL_DEBUG_OUTPUT); -// glDebugMessageCallback(OpenGLMessageCallback, 0); - -// OpenGLCompositor compositor(window, *controller->GetScene()); -// compositor.SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, -// FONT_SIZE, Orthanc::Encoding_Latin1); - -// FlexiblePointerTrackerPtr tracker; - -// bool stop = false; -// while (!stop) -// { -// compositor.Refresh(); - -// SDL_Event event; -// while (!stop && -// SDL_PollEvent(&event)) -// { -// if (event.type == SDL_QUIT) -// { -// stop = true; -// break; -// } -// else if (event.type == SDL_MOUSEMOTION) -// { -// if (tracker) -// { -// PointerEvent e; -// e.AddPosition(compositor.GetPixelCenterCoordinates( -// event.button.x, event.button.y)); -// tracker->PointerMove(e); -// } -// } -// else if (event.type == SDL_MOUSEBUTTONUP) -// { -// if (tracker) -// { -// PointerEvent e; -// e.AddPosition(compositor.GetPixelCenterCoordinates( -// event.button.x, event.button.y)); -// tracker->PointerUp(e); -// if(!tracker->IsAlive()) -// tracker.reset(); -// } -// } -// else if (event.type == SDL_WINDOWEVENT && -// event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) -// { -// tracker.reset(); -// compositor.UpdateSize(); -// } -// else if (event.type == SDL_KEYDOWN && -// event.key.repeat == 0 /* Ignore key bounce */) -// { -// switch (event.key.keysym.sym) -// { -// case SDLK_f: -// window.GetWindow().ToggleMaximize(); -// break; - -// case SDLK_q: -// stop = true; -// break; - -// default: -// break; -// } -// } - -// HandleApplicationEvent(controller, compositor, event, tracker); -// } - -// SDL_Delay(1); -// } -//} - extern void InitGL(); #include <QApplication> @@ -397,67 +197,9 @@ compositor->SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, FONT_SIZE, Orthanc::Encoding_Latin1); + interactor->SetCompositor(compositor); window.GetOpenGlWidget().SetCompositor(compositor); return a.exec(); } - - - - - - - - - - - - -// StoneInitialize(); -// Orthanc::Logging::EnableInfoLevel(true); - -// QApplication app(argc, argv); - -// OrthancStone::Samples::BasicSceneWindow window; - -// QSurfaceFormat requestedFormat; -// requestedFormat.setVersion( 3, 3 ); - -// window.show(); - -// QOpenGLContext * context = new QOpenGLContext; -// context->setFormat( requestedFormat ); -// context->create(); - -// GLenum err = glewInit(); -// if( GLEW_OK != err ){ -// qDebug() << "[Error] GLEW failed to initialize. " << (const char*)glewGetErrorString(err); -// } - -// try -// { -// MessageBroker broker; -// ViewportControllerPtr controller = boost::make_shared<ViewportController>( -// boost::ref(broker)); -// PrepareScene(controller); - -// boost::shared_ptr<OpenGLCompositor> compositor(new OpenGLCompositor(window.GetOpenGlWidget(), *controller->GetScene())); - -// compositor->SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, -// FONT_SIZE, Orthanc::Encoding_Latin1); - -// window.SetCompositor(compositor); - -// app.exec(); -// } -// catch (Orthanc::OrthancException& e) -// { -// LOG(ERROR) << "EXCEPTION: " << e.What(); -// } - - - -// StoneFinalize(); - -// return 0; }