diff options
Diffstat (limited to 'progs/beos/sample.cpp')
-rw-r--r-- | progs/beos/sample.cpp | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/progs/beos/sample.cpp b/progs/beos/sample.cpp deleted file mode 100644 index a86a118747..0000000000 --- a/progs/beos/sample.cpp +++ /dev/null @@ -1,225 +0,0 @@ -// sample BGLView app from the Be Book - - -#include <stdio.h> -#include <Application.h> -#include <Window.h> -#include <GLView.h> - - -class SampleGLView : public BGLView -{ -public: - SampleGLView(BRect frame, uint32 type); - virtual void AttachedToWindow(void); - virtual void FrameResized(float newWidth, float newHeight); - virtual void ErrorCallback(GLenum which); - - void Render(void); - -private: - void gInit(void); - void gDraw(void); - void gReshape(int width, int height); - - float width; - float height; -}; - - - -class SampleGLWindow : public BWindow -{ -public: - SampleGLWindow(BRect frame, uint32 type); - virtual bool QuitRequested() { be_app->PostMessage(B_QUIT_REQUESTED); return true; } - -private: - SampleGLView *theView; -}; - - -class SampleGLApp : public BApplication -{ -public: - SampleGLApp(); -private: - SampleGLWindow *theWindow; -}; - - -SampleGLApp::SampleGLApp() - : BApplication("application/x-vnd.sample") -{ - BRect windowRect; - uint32 type = BGL_RGB|BGL_DOUBLE; - - windowRect.Set(50, 50, 350, 350); - - theWindow = new SampleGLWindow(windowRect, type); -} - - - -SampleGLWindow::SampleGLWindow(BRect frame, uint32 type) - : BWindow(frame, "OpenGL Test", B_TITLED_WINDOW, 0) -{ - theView = new SampleGLView(Bounds(), type); - AddChild(theView); - Show(); - theView->Render(); -} - - - -SampleGLView::SampleGLView(BRect frame, uint32 type) - : BGLView(frame, "SampleGLView", B_FOLLOW_ALL_SIDES, 0, type) -{ - width = frame.right-frame.left; - height = frame.bottom-frame.top; -} - - -void SampleGLView::AttachedToWindow(void) -{ - LockGL(); - BGLView::AttachedToWindow(); - gInit(); - gReshape(width, height); - UnlockGL(); -} - - -void SampleGLView::FrameResized(float newWidth, float newHeight) -{ - BGLView::FrameResized(newWidth, newHeight); - - LockGL(); - - width = newWidth; - height = newHeight; - - gReshape(width,height); - - UnlockGL(); - Render(); -} - - -void SampleGLView::ErrorCallback(GLenum whichError) -{ -// fprintf(stderr, "Unexpected error occured (%d):\\n", whichError); -// fprintf(stderr, " %s\\n", gluErrorString(whichError)); -} - - - -// globals -GLenum use_stipple_mode; // GL_TRUE to use dashed lines -GLenum use_smooth_mode; // GL_TRUE to use anti-aliased lines -GLint linesize; // Line width -GLint pointsize; // Point diameter - -float pntA[3] = { - -160.0, 0.0, 0.0 -}; -float pntB[3] = { - -130.0, 0.0, 0.0 -}; - - - -void SampleGLView::gInit(void) -{ - glClearColor(0.0, 0.0, 0.0, 0.0); - glLineStipple(1, 0xF0E0); - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - use_stipple_mode = GL_FALSE; - use_smooth_mode = GL_TRUE; - linesize = 2; - pointsize = 6; -} - - - -void SampleGLView::gDraw(void) -{ - GLint i; - - glClear(GL_COLOR_BUFFER_BIT); - glLineWidth(linesize); - -/* - - if (use_stipple_mode) { - glEnable(GL_LINE_STIPPLE); - } else { - glDisable(GL_LINE_STIPPLE); - } -*/ - - glDisable(GL_POINT_SMOOTH); - - - glPushMatrix(); - - glPointSize(pointsize); // Set size for point - - for (i = 0; i < 360; i += 5) { - glRotatef(5.0, 0,0,1); // Rotate right 5 degrees - - if (use_smooth_mode) { - glEnable(GL_LINE_SMOOTH); - glEnable(GL_BLEND); - } else { - glDisable(GL_LINE_SMOOTH); - glDisable(GL_BLEND); - } - - glColor3f(1.0, 1.0, 0.0); // Set color for line - glBegin(GL_LINE_STRIP); // And create the line - glVertex3fv(pntA); - glVertex3fv(pntB); - glEnd(); - - glDisable(GL_POINT_SMOOTH); - glDisable(GL_BLEND); - - glColor3f(0.0, 1.0, 0.0); // Set color for point - glBegin(GL_POINTS); - glVertex3fv(pntA); // Draw point at one end - glVertex3fv(pntB); // Draw point at other end - glEnd(); - } - - glPopMatrix(); // Done with matrix -} - - -void SampleGLView::gReshape(int width, int height) -{ - glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-175, 175, -175, 175, -1, 1); - glMatrixMode(GL_MODELVIEW); -} - - -void SampleGLView::Render(void) -{ - LockGL(); - gDraw(); - SwapBuffers(); - UnlockGL(); -} - - - -int main(int argc, char *argv[]) -{ - SampleGLApp *app = new SampleGLApp; - app->Run(); - delete app; - return 0; -} |