fix some btgui issues on Mac OSX
This commit is contained in:
@@ -103,6 +103,7 @@ Base::~Base()
|
||||
|
||||
extern int avoidUpdate;
|
||||
|
||||
|
||||
void Base::Invalidate()
|
||||
{
|
||||
|
||||
|
||||
@@ -204,13 +204,13 @@ bool TreeControl::OnKeyDown( bool bDown )
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
extern int avoidUpdate;
|
||||
|
||||
bool TreeControl::OnKeyRight( bool bDown )
|
||||
{
|
||||
if (bDown)
|
||||
{
|
||||
extern int avoidUpdate;
|
||||
|
||||
avoidUpdate = -3;
|
||||
ForceUpdateScrollBars();
|
||||
iterate(ITERATE_ACTION_OPEN,0,0);
|
||||
@@ -250,7 +250,7 @@ bool TreeControl::OnKeyLeft( bool bDown )
|
||||
{
|
||||
if (bDown)
|
||||
{
|
||||
extern int avoidUpdate;
|
||||
|
||||
avoidUpdate = -3;
|
||||
|
||||
ForceUpdateScrollBars();
|
||||
|
||||
@@ -296,6 +296,8 @@ void keyCallback(int key, int value)
|
||||
}
|
||||
}
|
||||
|
||||
extern int avoidUpdate;
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -306,8 +308,9 @@ int main()
|
||||
b3gWindowConstructionInfo wci;
|
||||
wci.m_width = sWidth;
|
||||
wci.m_height = sHeight;
|
||||
|
||||
window->createWindow(wci);
|
||||
wci.m_resizeCallback = MyResizeCallback;
|
||||
window->createWindow(wci);
|
||||
|
||||
window->setResizeCallback(MyResizeCallback);
|
||||
window->setWindowTitle("render test");
|
||||
#ifndef __APPLE__
|
||||
@@ -456,7 +459,7 @@ int main()
|
||||
|
||||
|
||||
pCanvas->RenderCanvas();
|
||||
extern int avoidUpdate;
|
||||
|
||||
if (avoidUpdate<=0)
|
||||
avoidUpdate++;
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ float loop;
|
||||
|
||||
// Get view dimensions in pixels
|
||||
// glViewport(0,0,10,10);
|
||||
|
||||
if (m_resizeCallback)
|
||||
{
|
||||
(*m_resizeCallback)(width,height);
|
||||
@@ -329,6 +330,7 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
|
||||
m_internalData->m_myview = [TestView alloc];
|
||||
|
||||
[m_internalData->m_myview setResizeCallback:0];
|
||||
///ci.m_resizeCallback];
|
||||
|
||||
[m_internalData->m_myview initWithFrame: frame];
|
||||
|
||||
@@ -366,6 +368,8 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
|
||||
[m_internalData->m_window makeKeyAndOrderFront: nil];
|
||||
|
||||
[m_internalData->m_myview MakeCurrent];
|
||||
m_internalData->m_width = m_internalData->m_myview.GetWindowWidth;
|
||||
m_internalData->m_height = m_internalData->m_myview.GetWindowHeight;
|
||||
|
||||
glGenBuffers(n, vbo);
|
||||
checkError("glGenBuffers");
|
||||
@@ -589,32 +593,32 @@ int getAsciiCodeFromVirtualKeycode(int virtualKeyCode)
|
||||
switch (virtualKeyCode)
|
||||
{
|
||||
|
||||
case kVK_ANSI_A : {keycode = 'A'; break;}
|
||||
case kVK_ANSI_B : {keycode = 'B'; break;}
|
||||
case kVK_ANSI_C : {keycode = 'C'; break;}
|
||||
case kVK_ANSI_D : {keycode = 'D';break;}
|
||||
case kVK_ANSI_E : {keycode = 'E'; break;}
|
||||
case kVK_ANSI_F : {keycode = 'F'; break;}
|
||||
case kVK_ANSI_G : {keycode = 'G'; break;}
|
||||
case kVK_ANSI_H : {keycode = 'H'; break;}
|
||||
case kVK_ANSI_I : {keycode = 'I'; break;}
|
||||
case kVK_ANSI_J : {keycode = 'J'; break;}
|
||||
case kVK_ANSI_K : {keycode = 'K'; break;}
|
||||
case kVK_ANSI_L : {keycode = 'L'; break;}
|
||||
case kVK_ANSI_M : {keycode = 'M'; break;}
|
||||
case kVK_ANSI_N : {keycode = 'N'; break;}
|
||||
case kVK_ANSI_O : {keycode = 'O'; break;}
|
||||
case kVK_ANSI_P : {keycode = 'P'; break;}
|
||||
case kVK_ANSI_Q : {keycode = 'Q'; break;}
|
||||
case kVK_ANSI_R : {keycode = 'R'; break;}
|
||||
case kVK_ANSI_S : {keycode = 'S';break;}
|
||||
case kVK_ANSI_T : {keycode = 'T'; break;}
|
||||
case kVK_ANSI_U : {keycode = 'U'; break;}
|
||||
case kVK_ANSI_V : {keycode = 'V'; break;}
|
||||
case kVK_ANSI_W : {keycode = 'W'; break;}
|
||||
case kVK_ANSI_X : {keycode = 'X'; break;}
|
||||
case kVK_ANSI_Y : {keycode = 'Y'; break;}
|
||||
case kVK_ANSI_Z : {keycode = 'Z'; break;}
|
||||
case kVK_ANSI_A : {keycode = 'a'; break;}
|
||||
case kVK_ANSI_B : {keycode = 'b'; break;}
|
||||
case kVK_ANSI_C : {keycode = 'c'; break;}
|
||||
case kVK_ANSI_D : {keycode = 'd';break;}
|
||||
case kVK_ANSI_E : {keycode = 'e'; break;}
|
||||
case kVK_ANSI_F : {keycode = 'f'; break;}
|
||||
case kVK_ANSI_G : {keycode = 'g'; break;}
|
||||
case kVK_ANSI_H : {keycode = 'h'; break;}
|
||||
case kVK_ANSI_I : {keycode = 'i'; break;}
|
||||
case kVK_ANSI_J : {keycode = 'j'; break;}
|
||||
case kVK_ANSI_K : {keycode = 'k'; break;}
|
||||
case kVK_ANSI_L : {keycode = 'l'; break;}
|
||||
case kVK_ANSI_M : {keycode = 'm'; break;}
|
||||
case kVK_ANSI_N : {keycode = 'n'; break;}
|
||||
case kVK_ANSI_O : {keycode = 'o'; break;}
|
||||
case kVK_ANSI_P : {keycode = 'p'; break;}
|
||||
case kVK_ANSI_Q : {keycode = 'q'; break;}
|
||||
case kVK_ANSI_R : {keycode = 'r'; break;}
|
||||
case kVK_ANSI_S : {keycode = 's';break;}
|
||||
case kVK_ANSI_T : {keycode = 't'; break;}
|
||||
case kVK_ANSI_U : {keycode = 'u'; break;}
|
||||
case kVK_ANSI_V : {keycode = 'v'; break;}
|
||||
case kVK_ANSI_W : {keycode = 'w'; break;}
|
||||
case kVK_ANSI_X : {keycode = 'x'; break;}
|
||||
case kVK_ANSI_Y : {keycode = 'y'; break;}
|
||||
case kVK_ANSI_Z : {keycode = 'z'; break;}
|
||||
|
||||
case kVK_ANSI_1 : {keycode = '1'; break;}
|
||||
case kVK_ANSI_2 : {keycode = '2'; break;}
|
||||
@@ -1012,6 +1016,10 @@ void MacOpenGLWindow::getMouseCoordinates(int& x, int& y)
|
||||
void MacOpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback)
|
||||
{
|
||||
[m_internalData->m_myview setResizeCallback:resizeCallback];
|
||||
if (resizeCallback)
|
||||
{
|
||||
(resizeCallback)(m_internalData->m_width,m_internalData->m_height);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ struct b3gWindowConstructionInfo
|
||||
void* m_windowHandle;
|
||||
const char* m_title;
|
||||
int m_openglVersion;
|
||||
|
||||
|
||||
b3gWindowConstructionInfo(int width=1024, int height=768)
|
||||
:m_width(width),
|
||||
|
||||
Reference in New Issue
Block a user