+++ /dev/null
-demo
-GLInfo
-sample
+++ /dev/null
-// Small app to display GL infos
-
-#include <stdio.h>
-#include <string.h>
-
-#include <Application.h>
-#include <Window.h>
-#include <OutlineListView.h>
-#include <ScrollView.h>
-#include <GLView.h>
-
-#include <String.h>
-
-#include <GL/gl.h>
-#include <GL/glu.h>
-
-#define GLUT_INFO 1
-#ifdef GLUT_INFO
- #include <GL/glut.h>
-#endif
-
-
-class GLInfoWindow : public BWindow
-{
-public:
- GLInfoWindow(BRect frame);
- virtual bool QuitRequested() { be_app->PostMessage(B_QUIT_REQUESTED); return true; }
-
-private:
- BGLView *gl;
- BOutlineListView *list;
- BScrollView *scroller;
-};
-
-
-class GLInfoApp : public BApplication
-{
-public:
- GLInfoApp();
-private:
- GLInfoWindow *window;
-};
-
-
-GLInfoApp::GLInfoApp()
- : BApplication("application/x-vnd.OBOS-GLInfo")
-{
- window = new GLInfoWindow(BRect(50, 50, 350, 350));
-}
-
-GLInfoWindow::GLInfoWindow(BRect frame)
- : BWindow(frame, "OpenGL Info", B_TITLED_WINDOW, 0)
-{
- BRect r = Bounds();
- char *s;
- BString l;
-
- // Add a outline list view
- r.right -= B_V_SCROLL_BAR_WIDTH;
- list = new BOutlineListView(r, "GLInfoList", B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL_SIDES);
- scroller = new BScrollView("GLInfoListScroller", list, B_FOLLOW_ALL_SIDES,
- B_WILL_DRAW | B_FRAME_EVENTS, false, true);
-
- gl = new BGLView(r, "opengl", B_FOLLOW_ALL_SIDES, 0, BGL_RGB | BGL_DOUBLE);
- gl->Hide();
- AddChild(gl);
- AddChild(scroller);
-
- Show();
-
- LockLooper();
-
- // gl->LockGL();
-
- list->AddItem(new BStringItem("OpenGL", 0));
-
- s = (char *) glGetString(GL_VENDOR);
- if (s) {
- l = ""; l << "Vendor Name: " << s;
- list->AddItem(new BStringItem(l.String(), 1));
- }
-
- s = (char *) glGetString(GL_VERSION);
- if (s) {
- l = ""; l << "Version: " << s;
- list->AddItem(new BStringItem(l.String(), 1));
- }
-
- s = (char *) glGetString(GL_RENDERER);
- if (s) {
- l = ""; l << "Renderer Name: " << s;
- list->AddItem(new BStringItem(l.String(), 1));
- }
-
- s = (char *) glGetString(GL_EXTENSIONS);
- if (s) {
- list->AddItem(new BStringItem("Extensions", 1));
- while (*s) {
- char extname[255];
- int n = strcspn(s, " ");
- strncpy(extname, s, n);
- extname[n] = 0;
- list->AddItem(new BStringItem(extname, 2));
- if (! s[n])
- break;
- s += (n + 1); // next !
- }
- }
-
- list->AddItem(new BStringItem("GLU", 0));
- s = (char *) gluGetString(GLU_VERSION);
- if (s) {
- l = ""; l << "Version: " << s;
- list->AddItem(new BStringItem(l.String(), 1));
- }
-
- s = (char *) gluGetString(GLU_EXTENSIONS);
- if (s) {
- list->AddItem(new BStringItem("Extensions", 1));
- while (*s) {
- char extname[255];
- int n = strcspn(s, " ");
- strncpy(extname, s, n);
- extname[n] = 0;
- list->AddItem(new BStringItem(extname, 2));
- if (! s[n])
- break;
- s += (n + 1); // next !
- }
- }
-
-#ifdef GLUT_INFO
- list->AddItem(new BStringItem("GLUT", 0));
- l = "API version: "; l << GLUT_API_VERSION;
- list->AddItem(new BStringItem(l.String(), 1));
-#endif
-
- // gl->UnlockGL();
-
- UnlockLooper();
-}
-
-
-
-int main(int argc, char *argv[])
-{
- GLInfoApp *app = new GLInfoApp;
- app->Run();
- delete app;
- return 0;
-}
+++ /dev/null
-# progs/beos/Makefile
-
-TOP = ../..
-include $(TOP)/configs/current
-
-# Makefile for BeOS demos
-
-# Written by Brian Paul
-# This file is in the public domain.
-#
-# Modified by Philippe Houdoin
-
-LDFLAGS += -soname=_APP_
-
-LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS)
-
-INCLUDES = -I. -I- -I../../include
-
-default: demo sample GLInfo
-
-clean:
- -rm -f demo sample GLInfo
- -rm -f *.o
-
-demo: demo.o
- $(LD) demo.o $(LDFLAGS) $(LIBS) -o $@
-
-sample: sample.o
- $(LD) sample.o $(LDFLAGS) $(LIBS) -o $@
-
-GTLInfo: GLInfo.o
- $(LD) GLInfo.o $(INCLUDES) $(LDFLAGS) $(LIBS) -o $@
-
-.cpp.o:
- $(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
+++ /dev/null
-
-// Simple BeOS GLView demo
-// Written by Brian Paul
-// Changes by Philippe Houdoin
-// This file is in the public domain.
-
-
-
-#include <stdio.h>
-#include <Application.h>
-#include <Window.h>
-#include <GLView.h>
-
-class MyGL : public BGLView
-{
-public:
- MyGL(BRect rect, char *name, ulong options);
-
- virtual void AttachedToWindow();
- virtual void Pulse();
- virtual void FrameResized(float w, float h);
-
-private:
- void Render();
- void Reshape(float w, float h);
- float mAngle;
-};
-
-
-class MyWindow : public BWindow
-{
-public:
- MyWindow(BRect frame);
- virtual bool QuitRequested();
-};
-
-
-MyWindow::MyWindow(BRect frame)
- : BWindow(frame, "demo", B_TITLED_WINDOW, B_NOT_ZOOMABLE)
-{
- // Make OpenGL view and put it in the window
- BRect r = Bounds();
- r.InsetBy(5, 5);
-
- MyGL *gl = new MyGL(r, "GL", BGL_RGB | BGL_DOUBLE);
- AddChild(gl);
- SetPulseRate(1000000 / 30);
-}
-
-bool MyWindow::QuitRequested()
-{
- be_app->PostMessage(B_QUIT_REQUESTED);
- return true;
-}
-
-
-
-MyGL::MyGL(BRect rect, char *name, ulong options)
- : BGLView(rect, name, B_FOLLOW_ALL_SIDES, B_PULSE_NEEDED, options)
-{
- mAngle = 0.0;
-}
-
-
-void MyGL::AttachedToWindow()
-{
- BGLView::AttachedToWindow();
-
- LockGL();
- glClearColor(0.7, 0.7, 0, 0);
- Reshape(Bounds().Width(), Bounds().Height());
- UnlockGL();
-}
-
-
-void MyGL::FrameResized(float w, float h)
-{
- BGLView::FrameResized(w, h);
-
- LockGL();
- Reshape(w, h);
- UnlockGL();
-
- Render();
-}
-
-
-void MyGL::Pulse()
-{
- mAngle += 1.0;
- Render();
-}
-
-
-void MyGL::Render()
-{
- LockGL();
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glPushMatrix();
-
- glRotated(mAngle, 0, 0, 1);
- glColor3f(0, 0, 1);
-
- glBegin(GL_POLYGON);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glPopMatrix();
-
- SwapBuffers();
-
- UnlockGL();
-}
-
-
-void MyGL::Reshape(float w, float h)
-{
- glViewport(0, 0, (int) (w + 1), (int) (h + 1));
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-1, 1, -1, 1, 10, 30);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0, 0, -18);
-}
-
-
-int main(int argc, char *argv[])
-{
- BApplication *app = new BApplication("application/demo");
-
- // make top-level window
- MyWindow *win = new MyWindow(BRect(100, 100, 500, 500));
- win->Show();
-
- app->Run();
-
- delete app;
-
- return 0;
-}
+++ /dev/null
-// 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;
-}