CmGLRenderWindowManager.cpp 898 B

123456789101112131415161718192021222324252627282930
  1. #include "CmGLRenderWindowManager.h"
  2. #include "CmGLRenderSystem.h"
  3. #include "CmGLSupport.h"
  4. #include "CmAsyncOp.h"
  5. namespace CamelotEngine
  6. {
  7. GLRenderWindowManager::GLRenderWindowManager(GLRenderSystem* renderSystem)
  8. :mRenderSystem(renderSystem)
  9. {
  10. assert(mRenderSystem != nullptr);
  11. }
  12. void GLRenderWindowManager::createImpl(const String& name, UINT32 width, UINT32 height,
  13. bool fullScreen, const map<String, String>::type& miscParams, AsyncOp& asyncOp)
  14. {
  15. GLSupport* glSupport = mRenderSystem->getGLSupport();
  16. // Create the window
  17. RenderWindow* win = glSupport->newWindow(name, width, height, fullScreen, &miscParams);
  18. mRenderSystem->attachRenderTarget(*win);
  19. GLContext* context;
  20. win->getCustomAttribute("GLCONTEXT", &context);
  21. mRenderSystem->registerContext(context);
  22. RenderWindowPtr winPtr(win);
  23. asyncOp.completeOperation(winPtr);
  24. }
  25. }