diff --git a/src/apps/glteapot/ObjectView.cpp b/src/apps/glteapot/ObjectView.cpp index 6e51058d0c..4368c7b896 100644 --- a/src/apps/glteapot/ObjectView.cpp +++ b/src/apps/glteapot/ObjectView.cpp @@ -22,17 +22,17 @@ float displayScale = 1.0; float depthOfView = 30.0; float zRatio = 10.0; -float white[3] = {1.0,1.0,1.0}; -float dimWhite[3] = {0.25,0.25,0.25}; -float black[3] = {0.0,0.0,0.0}; -float foggy[3] = {0.4,0.4,0.4}; -float blue[3] = {0.0,0.0,1.0}; -float dimBlue[3] = {0.0,0.0,0.5}; -float yellow[3] = {1.0,1.0,0.0}; -float dimYellow[3] = {0.5,0.5,0.0}; -float green[3] = {0.0,1.0,0.0}; -float dimGreen[3] = {0.0,0.5,0.0}; -float red[3] = {1.0,0.0,0.0}; +float white[3] = {1.0, 1.0, 1.0}; +float dimWhite[3] = {0.25, 0.25, 0.25}; +float black[3] = {0.0, 0.0, 0.0}; +float foggy[3] = {0.4, 0.4, 0.4}; +float blue[3] = {0.0, 0.0, 1.0}; +float dimBlue[3] = {0.0, 0.0, 0.5}; +float yellow[3] = {1.0, 1.0, 0.0}; +float dimYellow[3] = {0.5, 0.5, 0.0}; +float green[3] = {0.0, 1.0, 0.0}; +float dimGreen[3] = {0.0, 0.5, 0.0}; +float red[3] = {1.0, 0.0, 0.0}; float* bgColor = black; @@ -96,26 +96,26 @@ waitEvent(sem_id event) static int32 simonThread(void* cookie) { - ObjectView* ov = (ObjectView*)cookie; + ObjectView* objectView = reinterpret_cast(cookie); int noPause = 0; - while (acquire_sem_etc(ov->quittingSem, 1, B_TIMEOUT, 0) == B_NO_ERROR) { - if (ov->SpinIt()) { - ov->DrawFrame(noPause); - release_sem(ov->quittingSem); + while (acquire_sem_etc(objectView->quittingSem, 1, B_TIMEOUT, 0) == B_NO_ERROR) { + if (objectView->SpinIt()) { + objectView->DrawFrame(noPause); + release_sem(objectView->quittingSem); noPause = 1; } else { - release_sem(ov->quittingSem); + release_sem(objectView->quittingSem); noPause = 0; - waitEvent(ov->drawEvent); + waitEvent(objectView->drawEvent); } } return 0; } -ObjectView::ObjectView(BRect r, char *name, ulong resizingMode, ulong options) - : BGLView(r,name,resizingMode,0,options), +ObjectView::ObjectView(BRect rect, char *name, ulong resizingMode, ulong options) + : BGLView(rect, name, resizingMode, 0, options), fHistEntries(0), fOldestEntry(0), fFps(true), @@ -147,9 +147,9 @@ ObjectView::ObjectView(BRect r, char *name, ulong resizingMode, ulong options) fTrackingInfo.lastDx = 0.0f; fTrackingInfo.lastDy = 0.0f; - fLastObjectDistance = fObjectDistance = depthOfView/8; - quittingSem = create_sem(1,"quitting sem"); - drawEvent = create_sem(0,"draw event"); + fLastObjectDistance = fObjectDistance = depthOfView / 8; + quittingSem = create_sem(1, "quitting sem"); + drawEvent = create_sem(0, "draw event"); char findDir[PATH_MAX]; find_directory(B_BEOS_ETC_DIRECTORY, -1, true, findDir, PATH_MAX); @@ -173,12 +173,12 @@ ObjectView::AttachedToWindow() float position[] = {0.0, 3.0, 3.0, 0.0}; float position1[] = {-3.0, -3.0, 3.0, 0.0}; float position2[] = {3.0, 0.0, 0.0, 0.0}; - float local_view[] = {0.0,0.0}; + float local_view[] = {0.0, 0.0}; // float ambient[] = {0.1745, 0.03175, 0.03175}; // float diffuse[] = {0.61424, 0.10136, 0.10136}; // float specular[] = {0.727811, 0.626959, 0.626959}; -// rgb_color black = {0,0,0,255}; - BRect r = Bounds(); +// rgb_color black = {0, 0, 0, 255}; + BRect bounds = Bounds(); BGLView::AttachedToWindow(); Window()->SetPulseRate(100000); @@ -193,8 +193,8 @@ ObjectView::AttachedToWindow() glShadeModel(GL_SMOOTH); glLightfv(GL_LIGHT0, GL_POSITION, position); - glLightfv(GL_LIGHT0+1, GL_POSITION, position1); - glLightfv(GL_LIGHT0+2, GL_POSITION, position2); + glLightfv(GL_LIGHT0 + 1, GL_POSITION, position1); + glLightfv(GL_LIGHT0 + 2, GL_POSITION, position2); glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view); glEnable(GL_LIGHT0); @@ -211,26 +211,25 @@ ObjectView::AttachedToWindow() glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); - glMaterialf(GL_FRONT, GL_SHININESS, 0.6*128.0); + glMaterialf(GL_FRONT, GL_SHININESS, 0.6 * 128.0); - glClearColor(bgColor[0],bgColor[1],bgColor[2], 1.0); + glClearColor(bgColor[0], bgColor[1], bgColor[2], 1.0); glColor3f(1.0, 1.0, 1.0); - glViewport(0, 0, (GLint)r.IntegerWidth()+1, (GLint)r.IntegerHeight()+1); + glViewport(0, 0, (GLint)bounds.IntegerWidth() + 1, + (GLint)bounds.IntegerHeight() + 1); glMatrixMode(GL_PROJECTION); glLoadIdentity(); - float scale=displayScale; - // glOrtho (0.0, 16.0, 0, 16.0*(GLfloat)300/(GLfloat)300, - // -10.0, 10.0); - glOrtho(-scale, scale, -scale, scale, -scale*depthOfView, - scale*depthOfView); + + float scale = displayScale; + glOrtho(-scale, scale, -scale, scale, -scale * depthOfView, + scale * depthOfView); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); UnlockGL(); - fDrawThread = spawn_thread(simonThread, - "Simon", B_NORMAL_PRIORITY, this); + fDrawThread = spawn_thread(simonThread, "Simon", B_NORMAL_PRIORITY, this); resume_thread(fDrawThread); fForceRedraw = true; setEvent(drawEvent); @@ -264,12 +263,13 @@ void ObjectView::Pulse() { Window()->Lock(); - BRect p = Parent()->Bounds(); - BRect b = Bounds(); - p.OffsetTo(0,0); - b.OffsetTo(0,0); - if (b != p) { - ResizeTo(p.right - p.left, p.bottom - p.top); + BRect parentBounds = Parent()->Bounds(); + BRect bounds = Bounds(); + parentBounds.OffsetTo(0, 0); + bounds.OffsetTo(0, 0); + if (bounds != parentBounds) { + ResizeTo(parentBounds.right - parentBounds.left, + parentBounds.bottom - parentBounds.top); } Window()->Unlock(); } @@ -278,98 +278,94 @@ ObjectView::Pulse() void ObjectView::MessageReceived(BMessage* msg) { -// msg->PrintToStream(); - BMenuItem* i; - bool* b; + BMenuItem* item = NULL; + bool toggleItem = false; switch (msg->what) { - case bmsgFPS: + case kMsgFPS: fFps = (fFps) ? false : true; - msg->FindPointer("source", (void**)&i); - i->SetMarked(fFps); + msg->FindPointer("source", reinterpret_cast(&item)); + item->SetMarked(fFps); fForceRedraw = true; setEvent(drawEvent); break; - case bmsgAddModel: + case kMsgAddModel: fObjListLock.Lock(); fObjects.AddItem(new TriangleObject(this, teapotPath)); fObjListLock.Unlock(); setEvent(drawEvent); break; - case bmsgLights: + case kMsgLights: { - msg->FindPointer("source", (void**)&i); + msg->FindPointer("source", reinterpret_cast(&item)); long lightNum = msg->FindInt32("num"); long color = msg->FindInt32("color"); - BMenu *m = i->Menu(); - long index = m->IndexOf(i); - m->ItemAt(index)->SetMarked(true); - for (int i = 0; i < m->CountItems(); i++) { + BMenu *menu = item->Menu(); + long index = menu->IndexOf(item); + menu->ItemAt(index)->SetMarked(true); + for (int i = 0; i < menu->CountItems(); i++) { if (i != index) - m->ItemAt(i)->SetMarked(false); + menu->ItemAt(i)->SetMarked(false); } LockGL(); if (color != lightNone) { - glEnable(GL_LIGHT0+lightNum - 1); - glLightfv(GL_LIGHT0+lightNum - 1, GL_SPECULAR, + glEnable(GL_LIGHT0 + lightNum - 1); + glLightfv(GL_LIGHT0 + lightNum - 1, GL_SPECULAR, lights[color].specular); - glLightfv(GL_LIGHT0+lightNum - 1, GL_DIFFUSE, + glLightfv(GL_LIGHT0 + lightNum - 1, GL_DIFFUSE, lights[color].diffuse); - glLightfv(GL_LIGHT0+lightNum - 1, GL_AMBIENT, + glLightfv(GL_LIGHT0 + lightNum - 1, GL_AMBIENT, lights[color].ambient); } else { - glDisable(GL_LIGHT0+lightNum - 1); + glDisable(GL_LIGHT0 + lightNum - 1); } UnlockGL(); fForceRedraw = true; setEvent(drawEvent); break; } - case bmsgGouraud: - b = &fGouraud; - goto stateChange; - case bmsgZBuffer: - b = &fZbuf; - goto stateChange; - case bmsgCulling: - b = &fCulling; - goto stateChange; - case bmsgLighting: - b = &fLighting; - goto stateChange; - case bmsgFilled: - b = &fFilled; - goto stateChange; - case bmsgPerspective: - b = &fPersp; - goto stateChange; - case bmsgFog: - b = &fFog; - goto stateChange; - stateChange: - if (msg->FindPointer("source", (void**)&i) < B_OK) - i = NULL; - - if (!i) - return; - - if (*b) { - i->SetMarked(*b = false); - } else { - i->SetMarked(*b = true); - } - - setEvent(drawEvent); + case kMsgGouraud: + fGouraud = !fGouraud; + toggleItem = true; break; - default: - BGLView::MessageReceived(msg); + case kMsgZBuffer: + fZbuf = !fZbuf; + toggleItem = true; + break; + case kMsgCulling: + fCulling = !fCulling; + toggleItem = true; + break; + case kMsgLighting: + fLighting = !fLighting; + toggleItem = true; + break; + case kMsgFilled: + fFilled = !fFilled; + toggleItem = true; + break; + case kMsgPerspective: + fPersp = !fPersp; + toggleItem = true; + break; + case kMsgFog: + fFog = !fFog; + toggleItem = true; + break; } + + if (toggleItem && msg->FindPointer("source", reinterpret_cast(&item)) == B_OK){ + item->SetMarked(!item->IsMarked()); + setEvent(drawEvent); + } + + BGLView::MessageReceived(msg); } int -ObjectView::ObjectAtPoint(BPoint p) +ObjectView::ObjectAtPoint(const BPoint &point) { LockGL(); glShadeModel(GL_FLAT); @@ -378,16 +374,17 @@ ObjectView::ObjectAtPoint(BPoint p) glClearColor(black[0], black[1], black[2], 1.0); glClear(GL_COLOR_BUFFER_BIT | (fZbuf ? GL_DEPTH_BUFFER_BIT : 0)); - float f[3]; - f[1] = f[2] = 0; + float idColor[3]; + idColor[1] = idColor[2] = 0; for (int i = 0; i < fObjects.CountItems(); i++) { - // to take into account 16 bits colorspaces, only use the 5 highest bits of the red channel - f[0] = (255 - (i << 3)) / 255.0; - ((GLObject*)fObjects.ItemAt(i))->Draw(true, f); + // to take into account 16 bits colorspaces, + // only use the 5 highest bits of the red channel + idColor[0] = (255 - (i << 3)) / 255.0; + reinterpret_cast(fObjects.ItemAt(i))->Draw(true, idColor); } glReadBuffer(GL_BACK); uchar pixel[256]; - glReadPixels((GLint)p.x, (GLint)(Bounds().bottom - p.y), 1, 1, + glReadPixels((GLint)point.x, (GLint)(Bounds().bottom - point.y), 1, 1, GL_RGB, GL_UNSIGNED_BYTE, pixel); int objNum = pixel[0]; objNum = (255 - objNum) >> 3; @@ -406,7 +403,7 @@ ObjectView::MouseDown(BPoint point) BMessage *msg = Window()->CurrentMessage(); uint32 buttons = msg->FindInt32("buttons"); - object = ((GLObject*)fObjects.ItemAt(ObjectAtPoint(point))); + object = reinterpret_cast(fObjects.ItemAt(ObjectAtPoint(point))); if (object != NULL){ if (buttons == B_PRIMARY_MOUSE_BUTTON || buttons == B_SECONDARY_MOUSE_BUTTON) { @@ -506,17 +503,16 @@ ObjectView::MouseMoved(BPoint point, uint32 transit, const BMessage *msg) void -ObjectView::FrameResized(float w, float h) +ObjectView::FrameResized(float width, float height) { LockGL(); - BGLView::FrameResized(w, h); - - BRect b = Bounds(); - w = b.Width(); - h = b.Height(); - fYxRatio = h / w; - glViewport(0, 0, (GLint)w + 1, (GLint)h + 1); + BGLView::FrameResized(width, height); + + width = Bounds().Width(); + height = Bounds().Height(); + fYxRatio = height / width; + glViewport(0, 0, (GLint)width + 1, (GLint)height + 1); // To prevent weird buffer contents glClear(GL_COLOR_BUFFER_BIT); @@ -590,6 +586,7 @@ void ObjectView::EnforceState() { glShadeModel(fGouraud ? GL_SMOOTH : GL_FLAT); + if (fZbuf) glEnable(GL_DEPTH_TEST); else @@ -605,11 +602,10 @@ ObjectView::EnforceState() else glDisable(GL_LIGHTING); - if (fFilled) { + if (fFilled) glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } else { - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - } + else + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); if (fFog) { glFogf(GL_FOG_START, 10.0); @@ -708,7 +704,7 @@ ObjectView::SpinIt() fForceRedraw = false; for (int i = 0; i < fObjects.CountItems(); i++) { - bool hack = ((GLObject*)fObjects.ItemAt(i))->SpinIt(); + bool hack = reinterpret_cast(fObjects.ItemAt(i))->SpinIt(); changed = changed || hack; } @@ -724,15 +720,15 @@ ObjectView::DrawFrame(bool noPause) fObjListLock.Lock(); for (int i = 0; i < fObjects.CountItems(); i++) { - GLObject *o = ((GLObject*)fObjects.ItemAt(i)); - if (o->solidity == 0) - o->Draw(false, NULL); + GLObject *object = reinterpret_cast(fObjects.ItemAt(i)); + if (object->solidity == 0) + object->Draw(false, NULL); } EnforceState(); for (int i = 0; i < fObjects.CountItems(); i++) { - GLObject *o = ((GLObject*)fObjects.ItemAt(i)); - if (o->solidity != 0) - o->Draw(false, NULL); + GLObject *object = reinterpret_cast(fObjects.ItemAt(i)); + if (object->solidity != 0) + object->Draw(false, NULL); } fObjListLock.Unlock(); @@ -741,24 +737,26 @@ ObjectView::DrawFrame(bool noPause) if (noPause) { uint64 now = system_time(); - float f = 1.0 / ((now - fLastFrame) / 1000000.0); + float fps = 1.0 / ((now - fLastFrame) / 1000000.0); fLastFrame = now; - int e; + int entry; if (fHistEntries < HISTSIZE) { - e = (fOldestEntry + fHistEntries) % HISTSIZE; + entry = (fOldestEntry + fHistEntries) % HISTSIZE; fHistEntries++; } else { - e = fOldestEntry; + entry = fOldestEntry; fOldestEntry = (fOldestEntry + 1) % HISTSIZE; } - fFpsHistory[e] = f; + fFpsHistory[entry] = fps; if (fHistEntries > 5) { - f = 0; + fps = 0; for (int i = 0; i < fHistEntries; i++) - f += fFpsHistory[(fOldestEntry + i) % HISTSIZE]; - f = f/fHistEntries; + fps += fFpsHistory[(fOldestEntry + i) % HISTSIZE]; + + fps /= fHistEntries; + if (fFps) { glPushAttrib(GL_ENABLE_BIT | GL_LIGHTING_BIT); glPushMatrix(); @@ -774,7 +772,7 @@ ObjectView::DrawFrame(bool noPause) glLoadIdentity(); glMatrixMode(GL_MODELVIEW); - FPS::drawCounter(f); + FPS::drawCounter(fps); glMatrixMode(GL_PROJECTION); glPopMatrix(); diff --git a/src/apps/glteapot/ObjectView.h b/src/apps/glteapot/ObjectView.h index 86dbde72a4..1e38c62845 100644 --- a/src/apps/glteapot/ObjectView.h +++ b/src/apps/glteapot/ObjectView.h @@ -9,17 +9,17 @@ #include #include -#define bmsgFPS 'fps ' -#define bmsgAddModel 'addm' -#define bmsgGouraud 'gour' -#define bmsgZBuffer 'zbuf' -#define bmsgCulling 'cull' -#define bmsgTextured 'txtr' -#define bmsgFog 'fog ' -#define bmsgLighting 'lite' -#define bmsgLights 'lits' -#define bmsgFilled 'fill' -#define bmsgPerspective 'prsp' +#define kMsgFPS 'fps ' +#define kMsgAddModel 'addm' +#define kMsgGouraud 'gour' +#define kMsgZBuffer 'zbuf' +#define kMsgCulling 'cull' +#define kMsgTextured 'txtr' +#define kMsgFog 'fog ' +#define kMsgLighting 'lite' +#define kMsgLights 'lits' +#define kMsgFilled 'fill' +#define kMsgPerspective 'prsp' enum lights { lightNone = 0, @@ -36,23 +36,23 @@ class ResScroll; class GLObject; struct TrackingInfo { - float lastX; - float lastY; - float lastDx; - float lastDy; - bool isTracking; - GLObject *pickedObject; - uint32 buttons; + float lastX; + float lastY; + float lastDx; + float lastDy; + bool isTracking; + GLObject *pickedObject; + uint32 buttons; }; class ObjectView : public BGLView { public: - ObjectView(BRect r, char* name, ulong resizingMode, + ObjectView(BRect rect, char* name, ulong resizingMode, ulong options); ~ObjectView(); - virtual void MouseDown(BPoint p); - virtual void MouseUp(BPoint p); + virtual void MouseDown(BPoint point); + virtual void MouseUp(BPoint point); virtual void MouseMoved(BPoint point, uint32 transit, const BMessage *msg); virtual void MessageReceived(BMessage* msg); @@ -60,7 +60,7 @@ class ObjectView : public BGLView { virtual void DetachedFromWindow(); virtual void FrameResized(float width, float height); bool SpinIt(); - int ObjectAtPoint(BPoint p); + int ObjectAtPoint(const BPoint &point); virtual void DrawFrame(bool noPause); virtual void Pulse(); void EnforceState(); @@ -82,7 +82,7 @@ class ObjectView : public BGLView { bool fLastPersp, fPersp, fLastTextured, fTextured; bool fLastFog, fFog, fForceRedraw; float fLastYXRatio, fYxRatio, fFpsHistory[HISTSIZE]; - float fObjectDistance,fLastObjectDistance; + float fObjectDistance, fLastObjectDistance; TrackingInfo fTrackingInfo; }; diff --git a/src/apps/glteapot/TeapotWindow.cpp b/src/apps/glteapot/TeapotWindow.cpp index cdb08eff97..dd5276413a 100644 --- a/src/apps/glteapot/TeapotWindow.cpp +++ b/src/apps/glteapot/TeapotWindow.cpp @@ -11,154 +11,151 @@ #include "TeapotWindow.h" TeapotWindow::TeapotWindow(BRect rect, char* name, window_type wt, ulong something) - : BDirectWindow(rect,name,wt,something) + : BDirectWindow(rect, name, wt, something) { GLenum type = BGL_RGB | BGL_DEPTH | BGL_DOUBLE; - BRect r = rect; - r.OffsetTo(BPoint(100,100)); - Lock(); - r = Bounds(); - r.bottom = r.top + 14; - BMenuBar* mb = new BMenuBar(r,"main menu"); + BRect bounds = Bounds(); + bounds.bottom = bounds.top + 14; + BMenuBar* menuBar = new BMenuBar(bounds, "main menu"); - BMenu* m; - BMessage msg (bmsgAddModel); + BMenu* menu; + BMessage msg(kMsgAddModel); - mb->AddItem(m = new BMenu("File")); - AddChild(mb); + menuBar->AddItem(menu = new BMenu("File")); + AddChild(menuBar); - mb->ResizeToPreferred(); + menuBar->ResizeToPreferred(); - r = Bounds(); - r.top = mb->Bounds().bottom+1; - BView *sv = new BView(r,"subview",B_FOLLOW_ALL,0); - AddChild(sv); + bounds = Bounds(); + bounds.top = menuBar->Bounds().bottom + 1; + BView *subView = new BView(bounds, "subview", B_FOLLOW_ALL, 0); + AddChild(subView); - r = sv->Bounds(); - fObjectView = new ObjectView(r,"objectView", B_FOLLOW_ALL_SIDES,type); - sv->AddChild(fObjectView); + bounds = subView->Bounds(); + fObjectView = new ObjectView(bounds, "objectView", B_FOLLOW_ALL_SIDES, type); + subView->AddChild(fObjectView); fObjectView = fObjectView; BMenuItem* item; - msg.AddInt32("num",256); - m->AddItem(item = new BMenuItem("Add a teapot",new BMessage(msg), 'N')); + msg.AddInt32("num", 256); + menu->AddItem(item = new BMenuItem("Add a teapot", new BMessage(msg), 'N')); item->SetTarget(fObjectView); - m->AddSeparatorItem(); - m->AddItem(item = new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); + menu->AddSeparatorItem(); + menu->AddItem(item = new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); item->SetTarget(be_app); msg.RemoveName("num"); - mb->AddItem(m = new BMenu("Options")); - m->AddItem(item = new BMenuItem("Perspective",new BMessage(bmsgPerspective))); + menuBar->AddItem(menu = new BMenu("Options")); + menu->AddItem(item = new BMenuItem("Perspective", new BMessage(kMsgPerspective))); item->SetTarget(fObjectView); item->SetMarked(false); - m->AddItem(item = new BMenuItem("FPS Display",new BMessage(bmsgFPS))); + menu->AddItem(item = new BMenuItem("FPS Display", new BMessage(kMsgFPS))); item->SetTarget(fObjectView); item->SetMarked(true); - m->AddItem(item = new BMenuItem("Filled polygons",new BMessage(bmsgFilled))); + menu->AddItem(item = new BMenuItem("Filled polygons", new BMessage(kMsgFilled))); item->SetTarget(fObjectView); item->SetMarked(true); - m->AddItem(item = new BMenuItem("Lighting",new BMessage(bmsgLighting))); + menu->AddItem(item = new BMenuItem("Lighting", new BMessage(kMsgLighting))); item->SetTarget(fObjectView); item->SetMarked(true); - m->AddItem(item = new BMenuItem("Backface culling",new BMessage(bmsgCulling))); + menu->AddItem(item = new BMenuItem("Backface culling", new BMessage(kMsgCulling))); item->SetTarget(fObjectView); item->SetMarked(true); - m->AddItem(item = new BMenuItem("Z-buffered",new BMessage(bmsgZBuffer))); + menu->AddItem(item = new BMenuItem("Z-buffered", new BMessage(kMsgZBuffer))); item->SetTarget(fObjectView); item->SetMarked(true); - m->AddItem(item = new BMenuItem("Gouraud shading",new BMessage(bmsgGouraud))); + menu->AddItem(item = new BMenuItem("Gouraud shading", new BMessage(kMsgGouraud))); item->SetTarget(fObjectView); item->SetMarked(true); -// m->AddItem(item = new BMenuItem("Texture mapped",new BMessage(bmsgTextured))); +// menu->AddItem(item = new BMenuItem("Texture mapped", new BMessage(kMsgTextured))); // item->SetTarget(fObjectView); - m->AddItem(item = new BMenuItem("Fog",new BMessage(bmsgFog))); + menu->AddItem(item = new BMenuItem("Fog", new BMessage(kMsgFog))); item->SetTarget(fObjectView); - BMenu *sm; - mb->AddItem(m = new BMenu("Lights")); - msg.what = bmsgLights; + BMenu *subMenu; + menuBar->AddItem(menu = new BMenu("Lights")); + msg.what = kMsgLights; - msg.AddInt32("num",1); - m->AddItem(item = new BMenuItem(sm = new BMenu("Upper center"),NULL)); + msg.AddInt32("num", 1); + menu->AddItem(item = new BMenuItem(subMenu = new BMenu("Upper center"), NULL)); item->SetTarget(fObjectView); - msg.AddInt32("color",lightNone); - sm->AddItem(item = new BMenuItem("Off",new BMessage(msg))); + msg.AddInt32("color", lightNone); + subMenu->AddItem(item = new BMenuItem("Off", new BMessage(msg))); item->SetTarget(fObjectView); - sm->AddSeparatorItem(); - msg.ReplaceInt32("color",lightWhite); - sm->AddItem(item = new BMenuItem("White",new BMessage(msg))); + subMenu->AddSeparatorItem(); + msg.ReplaceInt32("color", lightWhite); + subMenu->AddItem(item = new BMenuItem("White", new BMessage(msg))); item->SetTarget(fObjectView); item->SetMarked(true); - msg.ReplaceInt32("color",lightYellow); - sm->AddItem(item = new BMenuItem("Yellow",new BMessage(msg))); + msg.ReplaceInt32("color", lightYellow); + subMenu->AddItem(item = new BMenuItem("Yellow", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightBlue); - sm->AddItem(item = new BMenuItem("Blue",new BMessage(msg))); + msg.ReplaceInt32("color", lightBlue); + subMenu->AddItem(item = new BMenuItem("Blue", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightRed); - sm->AddItem(item = new BMenuItem("Red",new BMessage(msg))); + msg.ReplaceInt32("color", lightRed); + subMenu->AddItem(item = new BMenuItem("Red", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightGreen); - sm->AddItem(item = new BMenuItem("Green",new BMessage(msg))); + msg.ReplaceInt32("color", lightGreen); + subMenu->AddItem(item = new BMenuItem("Green", new BMessage(msg))); item->SetTarget(fObjectView); msg.RemoveName("color"); - msg.ReplaceInt32("num",2); - m->AddItem(item = new BMenuItem(sm = new BMenu("Lower left"),NULL)); + msg.ReplaceInt32("num", 2); + menu->AddItem(item = new BMenuItem(subMenu = new BMenu("Lower left"), NULL)); item->SetTarget(fObjectView); - msg.AddInt32("color",lightNone); - sm->AddItem(item = new BMenuItem("Off",new BMessage(msg))); + msg.AddInt32("color", lightNone); + subMenu->AddItem(item = new BMenuItem("Off", new BMessage(msg))); item->SetTarget(fObjectView); - sm->AddSeparatorItem(); - msg.ReplaceInt32("color",lightWhite); - sm->AddItem(item = new BMenuItem("White",new BMessage(msg))); + subMenu->AddSeparatorItem(); + msg.ReplaceInt32("color", lightWhite); + subMenu->AddItem(item = new BMenuItem("White", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightYellow); - sm->AddItem(item = new BMenuItem("Yellow",new BMessage(msg))); + msg.ReplaceInt32("color", lightYellow); + subMenu->AddItem(item = new BMenuItem("Yellow", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightBlue); - sm->AddItem(item = new BMenuItem("Blue",new BMessage(msg))); + msg.ReplaceInt32("color", lightBlue); + subMenu->AddItem(item = new BMenuItem("Blue", new BMessage(msg))); item->SetTarget(fObjectView); item->SetMarked(true); - msg.ReplaceInt32("color",lightRed); - sm->AddItem(item = new BMenuItem("Red",new BMessage(msg))); + msg.ReplaceInt32("color", lightRed); + subMenu->AddItem(item = new BMenuItem("Red", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightGreen); - sm->AddItem(item = new BMenuItem("Green",new BMessage(msg))); + msg.ReplaceInt32("color", lightGreen); + subMenu->AddItem(item = new BMenuItem("Green", new BMessage(msg))); item->SetTarget(fObjectView); msg.RemoveName("color"); - msg.ReplaceInt32("num",3); - m->AddItem(item = new BMenuItem(sm = new BMenu("Right"),NULL)); + msg.ReplaceInt32("num", 3); + menu->AddItem(item = new BMenuItem(subMenu = new BMenu("Right"), NULL)); item->SetTarget(fObjectView); - msg.AddInt32("color",lightNone); - sm->AddItem(item = new BMenuItem("Off",new BMessage(msg))); + msg.AddInt32("color", lightNone); + subMenu->AddItem(item = new BMenuItem("Off", new BMessage(msg))); item->SetTarget(fObjectView); item->SetMarked(true); - sm->AddSeparatorItem(); - msg.ReplaceInt32("color",lightWhite); - sm->AddItem(item = new BMenuItem("White",new BMessage(msg))); + subMenu->AddSeparatorItem(); + msg.ReplaceInt32("color", lightWhite); + subMenu->AddItem(item = new BMenuItem("White", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightYellow); - sm->AddItem(item = new BMenuItem("Yellow",new BMessage(msg))); + msg.ReplaceInt32("color", lightYellow); + subMenu->AddItem(item = new BMenuItem("Yellow", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightBlue); - sm->AddItem(item = new BMenuItem("Blue",new BMessage(msg))); + msg.ReplaceInt32("color", lightBlue); + subMenu->AddItem(item = new BMenuItem("Blue", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightRed); - sm->AddItem(item = new BMenuItem("Red",new BMessage(msg))); + msg.ReplaceInt32("color", lightRed); + subMenu->AddItem(item = new BMenuItem("Red", new BMessage(msg))); item->SetTarget(fObjectView); - msg.ReplaceInt32("color",lightGreen); - sm->AddItem(item = new BMenuItem("Green",new BMessage(msg))); + msg.ReplaceInt32("color", lightGreen); + subMenu->AddItem(item = new BMenuItem("Green", new BMessage(msg))); item->SetTarget(fObjectView); - float f = mb->Bounds().IntegerHeight()+1; - SetSizeLimits(32,1024,32+f,1024+f); - + float f = menuBar->Bounds().IntegerHeight() + 1; + SetSizeLimits(32, 1024, 32 + f, 1024 + f); + //TODO: verify, adding an height to x seems strange Unlock(); } @@ -167,7 +164,7 @@ bool TeapotWindow::QuitRequested() { // printf("closing \n"); - fObjectView->EnableDirectMode( false ); + fObjectView->EnableDirectMode(false); be_app->PostMessage(B_QUIT_REQUESTED); return true; } @@ -177,8 +174,8 @@ void TeapotWindow::DirectConnected(direct_buffer_info* info) { if (fObjectView) - fObjectView->DirectConnected( info ); - fObjectView->EnableDirectMode( true ); + fObjectView->DirectConnected(info); + fObjectView->EnableDirectMode(true); }