Haiku: create a GL context and initialize the audio and physics servers

This commit is contained in:
Kostadin Damyanov
2015-06-11 22:57:41 +03:00
parent c3f5df2ba8
commit fb823c9a7a
12 changed files with 385 additions and 8 deletions

45
haiku_direct_window.cpp Normal file
View File

@@ -0,0 +1,45 @@
#include "haiku_direct_window.h"
HaikuDirectWindow::HaikuDirectWindow(BRect p_frame)
: BDirectWindow(p_frame, "Godot", B_TITLED_WINDOW, 0)
{
// TODO: formatting
float minWidth = 0.0f;
float maxWidth = 0.0f;
float minHeight = 0.0f;
float maxHeight = 0.0f;
GetSizeLimits(&minWidth, &maxWidth, &minHeight, &maxHeight);
SetSizeLimits(50.0f, maxWidth, 50.0f, maxHeight);
}
HaikuDirectWindow::~HaikuDirectWindow()
{
delete update_runner;
}
void HaikuDirectWindow::SetHaikuGLView(HaikuGLView* p_view) {
view = p_view;
}
void HaikuDirectWindow::InitMessageRunner() {
update_runner = new BMessageRunner(BMessenger(view),
new BMessage(REDRAW_MSG), 1000000/60 /* 60 fps */);
}
bool HaikuDirectWindow::QuitRequested()
{
view->EnableDirectMode(false);
be_app->PostMessage(B_QUIT_REQUESTED);
return true;
}
void HaikuDirectWindow::DirectConnected(direct_buffer_info *info)
{
view->DirectConnected(info);
view->EnableDirectMode(true);
}