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:
@@ -35,12 +35,6 @@ public:
|
|||||||
virtual status_t CopyPixelsOut(BPoint source, BBitmap *dest);
|
virtual status_t CopyPixelsOut(BPoint source, BBitmap *dest);
|
||||||
virtual status_t CopyPixelsIn(BBitmap *source, BPoint 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);
|
virtual void FrameResized(float width, float height);
|
||||||
|
|
||||||
void DirectConnected( direct_buffer_info *info );
|
void DirectConnected( direct_buffer_info *info );
|
||||||
|
|||||||
@@ -78,29 +78,6 @@ BGLRenderer::CopyPixelsIn(BBitmap *source, BPoint dest)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BGLRenderer::AttachedToWindow()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BGLRenderer::AllAttached()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BGLRenderer::DetachedFromWindow()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BGLRenderer::AllDetached()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BGLRenderer::FrameResized(float width, float height)
|
BGLRenderer::FrameResized(float width, float height)
|
||||||
|
|||||||
@@ -35,10 +35,6 @@ BGLView::BGLView(BRect rect, char *name, ulong resizingMode, ulong mode, ulong o
|
|||||||
fRenderer(NULL)
|
fRenderer(NULL)
|
||||||
{
|
{
|
||||||
fRoster = new GLRendererRoster(this, options);
|
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();
|
BView::AttachedToWindow();
|
||||||
|
|
||||||
|
fRenderer = fRoster->GetRenderer();
|
||||||
if (fRenderer) {
|
if (fRenderer) {
|
||||||
// Don't paint white window background when resized
|
// Don't paint white window background when resized
|
||||||
SetViewColor(B_TRANSPARENT_32_BIT);
|
SetViewColor(B_TRANSPARENT_32_BIT);
|
||||||
fRenderer->AttachedToWindow();
|
|
||||||
|
|
||||||
// Set default OpenGL viewport:
|
// Set default OpenGL viewport:
|
||||||
glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight());
|
glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight());
|
||||||
@@ -140,6 +136,8 @@ void BGLView::AttachedToWindow()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "no renderer found! \n");
|
||||||
|
|
||||||
// No Renderer, no rendering. Setup a minimal "No Renderer" string drawing context
|
// No Renderer, no rendering. Setup a minimal "No Renderer" string drawing context
|
||||||
SetFont(be_bold_font);
|
SetFont(be_bold_font);
|
||||||
// SetFontSize(16);
|
// SetFontSize(16);
|
||||||
@@ -148,24 +146,19 @@ void BGLView::AttachedToWindow()
|
|||||||
void BGLView::AllAttached()
|
void BGLView::AllAttached()
|
||||||
{
|
{
|
||||||
BView::AllAttached();
|
BView::AllAttached();
|
||||||
|
|
||||||
if (fRenderer)
|
|
||||||
fRenderer->AllAttached();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BGLView::DetachedFromWindow()
|
void BGLView::DetachedFromWindow()
|
||||||
{
|
{
|
||||||
if (fRenderer)
|
if (fRenderer)
|
||||||
fRenderer->DetachedFromWindow();
|
fRenderer->Release();
|
||||||
|
fRenderer = NULL;
|
||||||
|
|
||||||
BView::DetachedFromWindow();
|
BView::DetachedFromWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BGLView::AllDetached()
|
void BGLView::AllDetached()
|
||||||
{
|
{
|
||||||
if (fRenderer)
|
|
||||||
fRenderer->AllDetached();
|
|
||||||
|
|
||||||
BView::AllDetached();
|
BView::AllDetached();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user