diff options
author | rachytski <siarhei.rachytski@gmail.com> | 2011-01-02 19:40:46 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:08:59 +0300 |
commit | 7db84a359ff15fec29c663b41d2f644d160c4be1 (patch) | |
tree | e13d60700a08888795ce7c953f56e954deba31ed /qt_tstfrm | |
parent | c4087d382efc21fadb29922bbcfe29d32c108a3e (diff) |
Parasite Blitting Bug.
Diffstat (limited to 'qt_tstfrm')
-rw-r--r-- | qt_tstfrm/macros.hpp | 3 | ||||
-rw-r--r-- | qt_tstfrm/tstwidgets.cpp | 32 | ||||
-rw-r--r-- | qt_tstfrm/tstwidgets.hpp | 1 | ||||
-rw-r--r-- | qt_tstfrm/widgets_impl.hpp | 5 |
4 files changed, 18 insertions, 23 deletions
diff --git a/qt_tstfrm/macros.hpp b/qt_tstfrm/macros.hpp index a2ec2edced..7cede26627 100644 --- a/qt_tstfrm/macros.hpp +++ b/qt_tstfrm/macros.hpp @@ -109,7 +109,10 @@ public: virtual void DoDraw(shared_ptr<yg::gl::Screen> p) { + p->beginFrame(); + p->clear(); test.DoDraw(p); + p->endFrame(); } virtual void DoResize(int, int) { diff --git a/qt_tstfrm/tstwidgets.cpp b/qt_tstfrm/tstwidgets.cpp index e10ecfde4b..f0bbbccefb 100644 --- a/qt_tstfrm/tstwidgets.cpp +++ b/qt_tstfrm/tstwidgets.cpp @@ -46,39 +46,37 @@ void GLDrawWidget::initializeGL() 3000 * sizeof(yg::gl::Vertex), 5000 * sizeof(unsigned short), 100, - 2048, - 2048, + 10 * sizeof(yg::gl::AuxVertex), + 10 * sizeof(unsigned short), 30, 512, 256, 15, 2000000)); // m_resourceManager->addFont(GetPlatform().ReadPathForFile("dejavusans.ttf").c_str()); m_resourceManager->addFont(GetPlatform().ReadPathForFile("wqy-microhei.ttf").c_str()); -/* m_resourceManager = make_shared_ptr(new yg::ResourceManager( - 5000 * sizeof(yg::gl::Vertex), - 10000 * sizeof(unsigned short), - 20, - 256, 256, 10));*/ + + m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer()); yg::gl::Screen::Params params; params.m_resourceManager = m_resourceManager; - params.m_isAntiAliased = false; + params.m_isMultiSampled = false; + params.m_frameBuffer = m_frameBuffer; m_p = make_shared_ptr(new yg::gl::Screen(params)); m_primaryFrameBuffer = make_shared_ptr(new yg::gl::FrameBuffer(true)); - m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer()); - - m_p->setFrameBuffer(m_frameBuffer); - m_skin = shared_ptr<yg::Skin>(loadSkin(m_resourceManager, GetPlatform().SkinName())); m_p->setSkin(m_skin); + + params.m_frameBuffer = m_primaryFrameBuffer; + m_primaryScreen = make_shared_ptr(new yg::gl::Screen(params)); } void GLDrawWidget::resizeGL(int w, int h) { m_p->onSize(w, h); + m_primaryScreen->onSize(w, h); m_frameBuffer->onSize(w, h); m_primaryFrameBuffer->onSize(w, h); @@ -96,18 +94,16 @@ void GLDrawWidget::paintGL() { base_type::paintGL(); - m_p->setFrameBuffer(m_primaryFrameBuffer); +// m_renderTarget->dump("renderTarget.png"); - m_p->beginFrame(); + m_primaryScreen->beginFrame(); - m_p->immDrawTexturedRect( + m_primaryScreen->immDrawTexturedRect( m2::RectF(0, 0, m_renderTarget->width(), m_renderTarget->height()), m2::RectF(0, 0, 1, 1), m_renderTarget ); - m_p->endFrame(); - - m_p->setFrameBuffer(m_frameBuffer); + m_primaryScreen->endFrame(); } } diff --git a/qt_tstfrm/tstwidgets.hpp b/qt_tstfrm/tstwidgets.hpp index 054c743099..545140d1da 100644 --- a/qt_tstfrm/tstwidgets.hpp +++ b/qt_tstfrm/tstwidgets.hpp @@ -37,6 +37,7 @@ namespace tst shared_ptr<yg::gl::RenderBuffer> m_depthBuffer; shared_ptr<yg::Skin> m_skin; shared_ptr<qt::gl::RenderContext> m_primaryContext; + shared_ptr<yg::gl::Screen> m_primaryScreen; public: diff --git a/qt_tstfrm/widgets_impl.hpp b/qt_tstfrm/widgets_impl.hpp index a34c2168cf..5cbd0a49ef 100644 --- a/qt_tstfrm/widgets_impl.hpp +++ b/qt_tstfrm/widgets_impl.hpp @@ -14,12 +14,7 @@ namespace qt void GLDrawWidgetT<T>::paintGL() { if (m_p) - { - m_p->beginFrame(); - m_p->clear(); DoDraw(m_p); - m_p->endFrame(); - } } template <class T> |