View::View( uint32_t viewWidth, uint32_t viewHeight, bool is2D, RenderCallback preRender, RenderCallback postRender ) : callbackPreRender( preRender ), callbackPostRender( postRender ), is2D( is2D ), width( viewWidth ), height( viewHeight ) { if ( !viewWidth || !viewHeight ) { width = rdState.window.width; height = rdState.window.height; } perFrameData = new Backend::Buffer( BufferType::Uniform, nullptr, 4 * 1024 * 1024 ); #ifdef USE_FBO fbo = new Framebuffer(); fbo->Bind(); colourTexture = new Texture( width, height ); fbo->AttachColourTexture( colourTexture, 0 ); if ( is2D ) { depthTexture = new Texture( width, height, InternalFormat::Depth24Stencil8 ); fbo->AttachDepthStencilTexture( depthTexture ); } else { depthTexture = new Texture( width, height, InternalFormat::Depth24Stencil8 ); fbo->AttachDepthStencilTexture( depthTexture ); } #else fbo = nullptr; colourTexture = nullptr; depthTexture = nullptr; #endif RegisterView( this ); }
void GraphController::SetNodePanel(NodePanel& panel) { if (m_view) { UnregisterView(m_view); } // TODO: don't clear but rebuild Clear(); m_view = &panel; RegisterView(m_view); }