Exemple #1
0
		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);
}