CmGLRenderWindowManager.cpp 775 B

1234567891011121314151617181920212223242526272829
  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 RENDER_WINDOW_DESC& desc, AsyncOp& asyncOp)
  13. {
  14. GLSupport* glSupport = mRenderSystem->getGLSupport();
  15. // Create the window
  16. RenderWindow* win = glSupport->newWindow(desc);
  17. mRenderSystem->attachRenderTarget(*win);
  18. GLContext* context;
  19. win->getCustomAttribute("GLCONTEXT", &context);
  20. mRenderSystem->registerContext(context);
  21. RenderWindowPtr winPtr(win);
  22. asyncOp.completeOperation(winPtr);
  23. }
  24. }