Moved GLRenderer instanciation at window attachment time, not GLView creation time.

Hardware GLRenderers will surely needs to check which screen device (so which window)
a GLView beg him to render to as fast as possible.
Unless such hardware is not serving this screen...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19464 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin
2006-12-12 00:59:23 +00:00
parent df3624c10e
commit fb2b8194c2
3 changed files with 5 additions and 41 deletions
-6
View File
@@ -35,12 +35,6 @@ public:
virtual status_t CopyPixelsOut(BPoint source, BBitmap *dest);
virtual status_t CopyPixelsIn(BBitmap *source, BPoint dest);
virtual void AttachedToWindow();
virtual void AllAttached();
virtual void DetachedFromWindow();
virtual void AllDetached();
virtual void FrameResized(float width, float height);
void DirectConnected( direct_buffer_info *info );
-23
View File
@@ -78,29 +78,6 @@ BGLRenderer::CopyPixelsIn(BBitmap *source, BPoint dest)
}
void
BGLRenderer::AttachedToWindow()
{
}
void
BGLRenderer::AllAttached()
{
}
void
BGLRenderer::DetachedFromWindow()
{
}
void
BGLRenderer::AllDetached()
{
}
void
BGLRenderer::FrameResized(float width, float height)
+5 -12
View File
@@ -35,10 +35,6 @@ BGLView::BGLView(BRect rect, char *name, ulong resizingMode, ulong mode, ulong o
fRenderer(NULL)
{
fRoster = new GLRendererRoster(this, options);
fRenderer = fRoster->GetRenderer();
if (!fRenderer) {
fprintf(stderr, "no renderer found! \n");
}
}
@@ -129,10 +125,10 @@ void BGLView::AttachedToWindow()
{
BView::AttachedToWindow();
fRenderer = fRoster->GetRenderer();
if (fRenderer) {
// Don't paint white window background when resized
SetViewColor(B_TRANSPARENT_32_BIT);
fRenderer->AttachedToWindow();
// Set default OpenGL viewport:
glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight());
@@ -140,6 +136,8 @@ void BGLView::AttachedToWindow()
return;
}
fprintf(stderr, "no renderer found! \n");
// No Renderer, no rendering. Setup a minimal "No Renderer" string drawing context
SetFont(be_bold_font);
// SetFontSize(16);
@@ -148,24 +146,19 @@ void BGLView::AttachedToWindow()
void BGLView::AllAttached()
{
BView::AllAttached();
if (fRenderer)
fRenderer->AllAttached();
}
void BGLView::DetachedFromWindow()
{
if (fRenderer)
fRenderer->DetachedFromWindow();
fRenderer->Release();
fRenderer = NULL;
BView::DetachedFromWindow();
}
void BGLView::AllDetached()
{
if (fRenderer)
fRenderer->AllDetached();
BView::AllDetached();
}