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;
 }