haiku/src/kits/opengl/GLRenderer.cpp
Philippe Houdoin fb2b8194c2 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
2006-12-12 00:59:23 +00:00

106 lines
1.5 KiB
C++

/*
* Copyright 2006, Philippe Houdoin. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#include "GLDispatcher.h"
#include "GLRenderer.h"
BGLRenderer::BGLRenderer(BGLView *view, ulong bgl_options, BGLDispatcher *dispatcher)
: fRefCount(1),
fView(view),
fOptions(bgl_options),
fDispatcher(dispatcher)
{
}
BGLRenderer::~BGLRenderer()
{
delete fDispatcher;
}
void
BGLRenderer::Acquire()
{
atomic_add(&fRefCount, 1);
}
void
BGLRenderer::Release()
{
if (atomic_add(&fRefCount, -1) < 1)
delete this;
}
void
BGLRenderer::LockGL()
{
fView->LockLooper();
}
void
BGLRenderer::UnlockGL()
{
if (fView->Looper()->IsLocked())
fView->UnlockLooper();
}
void
BGLRenderer::SwapBuffers(bool VSync)
{
}
void
BGLRenderer::Draw(BRect updateRect)
{
}
status_t
BGLRenderer::CopyPixelsOut(BPoint source, BBitmap *dest)
{
return B_OK;
}
status_t
BGLRenderer::CopyPixelsIn(BBitmap *source, BPoint dest)
{
return B_OK;
}
void
BGLRenderer::FrameResized(float width, float height)
{
}
void
BGLRenderer::DirectConnected(direct_buffer_info *info)
{
}
void
BGLRenderer::EnableDirectMode(bool enabled)
{
}
status_t BGLRenderer::_Reserved_Renderer_0(int32 n, void *p) { return B_ERROR; }
status_t BGLRenderer::_Reserved_Renderer_1(int32 n, void *p) { return B_ERROR; }
status_t BGLRenderer::_Reserved_Renderer_2(int32 n, void *p) { return B_ERROR; }
status_t BGLRenderer::_Reserved_Renderer_3(int32 n, void *p) { return B_ERROR; }
status_t BGLRenderer::_Reserved_Renderer_4(int32 n, void *p) { return B_ERROR; }